/* ==========================================================================
   Island Investments: global
   Design tokens, header, footer and shared control styling. Loaded on EVERY
   page. The page specific sheets assume the tokens defined here, so this must
   always load first.
   ========================================================================== */

:root{
--isl-ink:#1f2124;--isl-body:#55595e;--isl-muted:#8a8f94;--isl-ground:#f7f6f4;
--isl-card:#fff;--isl-line:#e8e5e0;--isl-line-soft:#f0eeeb;
--isl-accent:#e43c48;--isl-accent-dp:#c42f3a;--isl-accent-tint:#fdf1f2;
--isl-green:#3c7818;--isl-green-dp:#2f5f13;--isl-green-tint:#f2f7ed;
--isl-radius:4px;--isl-shadow:0 1px 2px rgba(31,33,36,.04);--isl-max:1180px;
}

/* --- header --------------------------------------------------------------
   The logo carries the name. Astra was rendering the text title beside it as
   well, which wrapped to 'Islan d Inves tmen ts' at header width. This was
   previously in the accommodation sheet, so it only applied on rental pages and
   every other page still showed it. It belongs here. */
.site-title,.site-description,.ast-site-identity .site-title{display:none !important;}
.custom-logo-link img,.astra-logo-svg{max-height:66px;width:auto;}
.main-header-menu .menu-link,.ast-header-break-point .main-header-menu .menu-link{font-family:Montserrat,-apple-system,sans-serif;font-size:14.5px;font-weight:500;letter-spacing:.01em;color:var(--isl-ink);}
.main-header-menu .menu-item:hover>.menu-link,.main-header-menu .current-menu-item>.menu-link,.main-header-menu .current_page_item>.menu-link{color:var(--isl-accent);}
@media (max-width:921px){.custom-logo-link img{max-height:52px;}}
@media (max-width:600px){.custom-logo-link img{max-height:44px;}}

/* --- shared page frame --------------------------------------------------- */
body{background:var(--isl-ground);}
.site-content .ast-container{margin-left:auto;margin-right:auto;}

/* --- buttons: Astra's blue has no place on this site ---------------------- */
.entry-content .button:not(.mphb-view-details-button),
.entry-content button:not(.islrd-gal-nav):not(.islrd-lb-nav):not(.islrd-lb-close),
.entry-content input[type=submit],
.mphb-button,.mphb_sc_search-form button,.mphb-booking-form button{
background:var(--isl-accent);background-color:var(--isl-accent);color:#fff;border:0;border-radius:var(--isl-radius);
font-family:Montserrat,sans-serif;font-size:14px;font-weight:600;letter-spacing:.02em;cursor:pointer;}
.entry-content .button:hover,.entry-content button:hover,.mphb-button:hover{background:var(--isl-accent-dp);background-color:var(--isl-accent-dp);color:#fff;}

/* --- shared form controls ------------------------------------------------- */
.entry-content input[type=text],.entry-content input[type=email],.entry-content input[type=tel],
.entry-content input[type=number],.entry-content select,.entry-content textarea{
font-family:Montserrat,sans-serif;font-size:14.5px;color:var(--isl-ink);background:#fff;
border:1px solid var(--isl-line);border-radius:var(--isl-radius);padding:11px 14px;box-shadow:none;width:100%;}
.entry-content input:focus,.entry-content select:focus,.entry-content textarea:focus{
outline:none;border-color:var(--isl-accent);box-shadow:0 0 0 3px rgba(228,60,72,.12);}
.entry-content label{font-family:Montserrat,sans-serif;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--isl-muted);display:block;margin:0 0 7px;}
.entry-content a{color:var(--isl-green);}
.entry-content a:hover{color:var(--isl-green-dp);}


/* Site footer, loaded on every page. */
.islrd-footer{background:var(--isl-ink,#1f2124);color:rgba(255,255,255,.72);font-family:Montserrat,-apple-system,sans-serif;padding:56px 24px 0;}
.islrd-footer-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;}
.islrd-foot-col h3{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin:0 0 16px;}
.islrd-foot-col ul{list-style:none;margin:0;padding:0;}
.islrd-foot-col li{margin:0 0 10px;font-size:14px;line-height:1.6;}
.islrd-foot-col a{color:rgba(255,255,255,.72);text-decoration:none;}
.islrd-foot-col a:hover{color:#fff;}
.islrd-foot-brand p{font-size:14px;line-height:1.7;margin:16px 0 0;max-width:300px;}
.islrd-foot-logo{max-width:190px;height:auto;filter:brightness(0) invert(1);opacity:.92;}
.islrd-footer-base{max-width:1180px;margin:44px auto 0;padding:20px 0;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:16px;font-size:12.5px;}
.islrd-footer-base p{margin:0;}
.islrd-footer-base a{color:rgba(255,255,255,.72);text-decoration:none;}
.islrd-footer-base a:hover{color:#fff;}
/* Astra's own copyright bar would repeat this */
.ast-small-footer,.site-below-footer-wrap,.ast-footer-copyright{display:none !important;}
@media (max-width:860px){.islrd-footer-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;}}
@media (max-width:520px){.islrd-footer-inner{grid-template-columns:1fr;}.islrd-footer-base{flex-direction:column;gap:8px;}}


/* ==========================================================================
   Responsive pass. Two breakpoints do the work: 1024 drops the sidebar and the
   four-up grids, 640 goes single column. Anything that scrolls sideways on a
   phone is a bug, so wide things get their own scroll container rather than
   pushing the page.
   ========================================================================== */

/* overflow-x:hidden here would create a scroll container and silently kill
   position:sticky on the booking card. clip prevents the same sideways scroll
   without becoming a scroll container. Do not change this back. */
html,body{overflow-x:clip;}
.entry-content table{display:block;max-width:100%;overflow-x:auto;}

@media (max-width:1024px){
  .islrd{padding-left:20px;padding-right:20px;}
  .islrd-sec{padding:56px 20px;}
  .islrd-footer-inner{gap:32px;}
}

@media (max-width:782px){
  .islrd-head{padding:16px 0 28px;}
  .islrd-card{padding:24px 20px;}
  .islrd-card-title{font-size:18px;}
  .islrd-facts{grid-template-columns:1fr;}
  .islrd-lrow{padding:14px;gap:14px;}
  .islrd-lrow-body .mphb-room-type-title{font-size:17px;}
  .islrd-sec>h2{font-size:24px;}
  .islrd-sec .islrd-sec-sub{font-size:15.5px;}
  .islrd-hero{padding:48px 20px;}
  .islrd-stakes{padding:36px 20px 0;}
  .islrd-booking-card{position:static;}
}

@media (max-width:640px){
  .islrd{padding-left:16px;padding-right:16px;}
  .islrd-sec{padding:44px 16px;}
  .islrd-card{padding:20px 16px;}
  .islrd-lrow{padding:12px;}
  .islrd-lrow-aside{padding-top:14px;}
  .islrd-lrow-aside .button,.islrd-lrow-aside .mphb-book-button,.islrd-lrow-aside .mphb-view-details-button{width:100%;}
  .islrd-hero .islrd-hero-title{font-size:30px;}
  /* two months side by side never fits a phone */
  .islrd .datepick-month-row,.datepick-popup .datepick-month-row{flex-direction:column;gap:20px;}
  .datepick-popup{left:8px !important;right:8px !important;width:auto !important;max-height:78vh;overflow-y:auto;padding:14px;}
  .islrd-footer{padding:40px 16px 0;}
  .islrd-lb-figure figcaption{font-size:12px;}
}

/* touch targets: 44px minimum on anything tappable */
@media (hover:none){
  .islrd-lrow-aside .button,.islrd-near-links a,.islrd-textlink{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
  .islrd-gal-nav{opacity:1 !important;}
  .islrd-lrow-media .flex-direction-nav a{opacity:1;}
}

/* --- control sizing ------------------------------------------------------
   Fields were 40px tall with 22px of padding, leaving a 16px content box for a
   24px line. The digit in Adults and Children was being clipped top and bottom.
   Height and padding are set together so the content box can always hold the
   line, and every control on the site matches. */
.entry-content input[type=text],.entry-content input[type=email],.entry-content input[type=tel],
.entry-content input[type=number],.entry-content input[type=password],.entry-content select{
height:48px;padding:0 14px;line-height:normal;box-sizing:border-box;}
.entry-content textarea{padding:12px 14px;line-height:1.6;min-height:120px;}
.entry-content select{appearance:none;-webkit-appearance:none;background-image:url(icons/chevron-down.svg);background-repeat:no-repeat;background-position:right 14px center;background-size:14px 14px;padding-right:38px;}
/* the datepicker inputs are read-only triggers, so make that legible */
.entry-content input.mphb-datepick{cursor:pointer;}

/* --- scroll to top -------------------------------------------------------
   Astra ships this in its own blue. Green rather than red: red is reserved for
   booking actions, and a scroll control is navigation, not a commitment. */
#ast-scroll-top,.ast-scroll-top-icon{background-color:var(--isl-green) !important;color:#fff !important;border-radius:4px;}
#ast-scroll-top:hover{background-color:var(--isl-green-dp) !important;}
#ast-scroll-top .ast-icon,#ast-scroll-top svg{fill:#fff !important;color:#fff !important;}

/* --- mobile header and off-canvas menu -----------------------------------
   Astra's mobile toggle and drawer ship in its own blue. Set here rather than
   left to the theme so the branding holds even if theme options are reset. */
.ast-mobile-menu-trigger-fill,.ast-mobile-menu-trigger-outline,.menu-toggle{background:transparent !important;color:var(--isl-ink) !important;border-color:var(--isl-line) !important;}
.menu-toggle .ast-mobile-svg,.ast-mobile-menu-buttons svg{fill:var(--isl-accent) !important;color:var(--isl-accent) !important;}
.ast-mobile-popup-drawer .ast-mobile-popup-inner{background:#fff;}
.ast-mobile-popup-drawer .menu-item>.menu-link,.ast-mobile-popup-drawer a{font-family:Montserrat,sans-serif;font-size:16px;font-weight:500;color:var(--isl-ink) !important;}
.ast-mobile-popup-drawer .menu-item>.menu-link:hover,.ast-mobile-popup-drawer .current-menu-item>.menu-link{color:var(--isl-accent) !important;}
.ast-mobile-popup-drawer .menu-item{border-bottom:1px solid var(--isl-line-soft);}
.ast-mobile-popup-drawer .menu-toggle-close{color:var(--isl-ink) !important;}
/* pagination and any other stray theme blue */
.page-numbers.current,.ast-pagination .page-numbers.current{background:var(--isl-accent) !important;color:#fff !important;border-color:var(--isl-accent) !important;}
.page-numbers:hover{color:var(--isl-green) !important;}
