/**
Theme Name: Astra Child
Author: Tara D
Author URI: https://equaweb.com/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* Chonchos Hideaway: brand tokens (spec section 21) */
@font-face {
  font-family: "Fraunces";
  src: url("fonts/fraunces-latin-var.woff2") format("woff2");
  font-weight: 500 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Work Sans";
  src: url("fonts/work-sans-latin-var.woff2") format("woff2");
  font-weight: 400 600; font-style: normal; font-display: swap;
}

:root {
  /* Sand */
  --sand-50:#F7F2E8; --sand-100:#E6D9BF; --sand-300:#C6A56B; --sand-600:#8A6A3E; --sand-800:#4A3826;
  /* Jungle */
  --jungle-50:#E9ECEA; --jungle-100:#C0D8C7; --jungle-300:#6E9A7B; --jungle-600:#446F50; --jungle-800:#213627;
  /* Ocean */
  --ocean-100:#9CC7C9; --ocean-400:#3E8A90; --ocean-700:#1F5A61;
  /* Darkened for small text on those fills (spec section 12) */
  --ocean-400-aa:#327176; --jungle-300-aa:#55785F;
  /* Type */
  --font-display:"Fraunces", Georgia, serif;
  --font-body:"Work Sans", system-ui, sans-serif;
}

body { background:var(--sand-50); color:var(--sand-800); font-family:var(--font-body); }
h1,h2,h3,h4,h5,h6 { font-family:var(--font-display); }

/* ---- Chonchos chrome: header, dropdowns, mobile panel, footer ---- */
#ch-bungalows, #bungalows { scroll-margin-top: 70px; }

#masthead { position: sticky; top: 0; z-index: 100; }
#masthead .main-header-bar, #masthead .ast-primary-header-bar {
  background: rgba(33,54,39,.95); backdrop-filter: blur(8px); border-bottom: 1px solid rgba(247,242,232,.12);
}
#masthead .site-title a, #masthead .site-title a:hover { color: var(--sand-50); font-family: var(--font-display); font-size: 18px; font-weight: 500; line-height: 1.1; }
#masthead .main-header-menu > .menu-item > .menu-link { color: var(--sand-50); font-size: 15px; padding: 12px 0; margin-right: 26px; }
#masthead .main-header-menu > .menu-item > .menu-link:hover,
#masthead .main-header-menu > .menu-item:hover > .menu-link { color: var(--sand-300); background: transparent; }
#masthead .ast-header-button-1 .ast-custom-button { background: var(--sand-300); color: var(--jungle-800); border-radius: 999px; padding: 12px 24px; font-size: 15px; font-weight: 600; transition: background .25s ease, color .25s ease; }
#masthead .ast-header-button-1 .ast-custom-button:hover { background: #6C5237; color: var(--sand-50); }
#masthead .secondary-navigation .menu-link { color: rgba(247,242,232,.72); font-size: 14.5px; }

/* dropdown panel */
.ast-desktop #masthead .main-header-menu .sub-menu {
  background: #fff; border: 0; border-radius: 18px; box-shadow: 0 26px 60px rgba(20,30,22,.34);
  padding: 10px; width: 352px; left: -18px; top: 100%;
}
.ast-desktop #masthead .main-header-menu .sub-menu .menu-item { border: 0; }
.ast-desktop #masthead .main-header-menu .sub-menu .menu-link {
  display: flex; align-items: center; gap: 14px; padding: 11px 12px; border: 0; border-radius: 12px;
  color: var(--sand-800); background: transparent; transition: background .18s ease, transform .24s cubic-bezier(.2,.7,.3,1);
}
.ast-desktop #masthead .main-header-menu .sub-menu .menu-link:hover { background: var(--sand-50); transform: translateX(6px); }
.ch-ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; }
.ch-tx { display: flex; flex-direction: column; flex-grow: 1; }
.ch-t { font-size: 15px; font-weight: 600; color: var(--sand-800); }
.ch-d { font-size: 13px; color: var(--sand-600); font-weight: 400; }
.ch-arrow { transition: transform .24s cubic-bezier(.2,.7,.3,1); }
.menu-link:hover .ch-arrow { transform: translateX(4px); }
.ast-desktop #masthead .main-header-menu .sub-menu .ch-all .menu-link {
  justify-content: space-between; margin-top: 8px; padding: 13px 16px; background: var(--ocean-700); color: var(--sand-50); font-size: 15px; font-weight: 500;
}
.ast-desktop #masthead .main-header-menu .sub-menu .ch-all .menu-link:hover { background: #144349; }
.ast-desktop #masthead .main-header-menu .ch-drop-parent .sub-menu .ch-all .menu-link { background: var(--jungle-600); }
.ast-desktop #masthead .main-header-menu .ch-drop-parent .sub-menu .ch-all .menu-link:hover { background: var(--jungle-800); }
.ast-desktop #masthead .main-header-menu .sub-menu .menu-description { display: none; }

/* burger + mobile panel */
.ch-burger { display: none; width: 44px; height: 44px; border: 0; border-radius: 12px; background: rgba(247,242,232,.1); color: var(--sand-50); align-items: center; justify-content: center; cursor: pointer; }
.ch-burger .ch-close, .ch-burger[aria-expanded="true"] .ch-open { display: none; }
.ch-burger[aria-expanded="true"] .ch-close { display: block; }
.ch-panel { position: fixed; inset: 0; z-index: 90; background: var(--jungle-800); display: flex; flex-direction: column; padding-top: 72px; }
.ch-panel[hidden] { display: none; }
.ch-locked, .ch-locked body { overflow: hidden; }
.ch-panel-scroll { flex-grow: 1; overflow: auto; padding: 12px 20px 20px; }
.ch-eyebrow { margin: 0 0 14px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--sand-300); font-weight: 600; }
.ch-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 8px; }
.ch-cards a { border-radius: 16px; padding: 15px 16px; display: flex; flex-direction: column; gap: 3px; text-decoration: none; min-height: 86px; justify-content: center; }
.ch-card-t { font-family: var(--font-display); font-size: 17px; line-height: 1.15; }
.ch-card-d { font-size: 12.5px; opacity: .82; }
.ch-compare { display: flex; align-items: center; justify-content: space-between; margin: 10px 0 20px; padding: 13px 16px; border-radius: 14px; background: rgba(247,242,232,.08); border: 1px solid rgba(247,242,232,.2); text-decoration: none; font-size: 15px; color: var(--sand-50); min-height: 44px; }
.ch-big, .ch-acc summary { display: flex; align-items: center; justify-content: space-between; padding: 17px 0; border-bottom: 1px solid rgba(247,242,232,.14); text-decoration: none; font-family: var(--font-display); font-size: 21px; color: var(--sand-50); cursor: pointer; list-style: none; min-height: 44px; }
.ch-acc summary::-webkit-details-marker { display: none; }
.ch-acc { border-bottom: 1px solid rgba(247,242,232,.14); }
.ch-acc summary { border-bottom: 0; }
.ch-acc[open] .ch-chev { transform: rotate(180deg); }
.ch-chev { transition: transform .22s ease; }
.ch-mrow { display: flex; align-items: center; gap: 13px; padding: 13px 4px; text-decoration: none; border-bottom: 1px solid rgba(247,242,232,.1); min-height: 44px; }
.ch-mrow .ch-t { font-size: 16px; font-weight: 500; color: var(--sand-50); }
.ch-mrow .ch-d { font-size: 13px; color: rgba(247,242,232,.55); }
.ch-dot { flex-shrink: 0; width: 9px; height: 9px; border-radius: 50%; }
.ch-panel-foot { flex-shrink: 0; padding: 18px 20px 26px; border-top: 1px solid rgba(247,242,232,.16); background: #1B2D20; display: flex; flex-direction: column; gap: 14px; }
.ch-cta { display: block; text-align: center; background: var(--sand-300); color: var(--jungle-800); text-decoration: none; padding: 16px; border-radius: 999px; font-size: 16px; font-weight: 600; }
.ch-panel-foot div { display: flex; align-items: center; justify-content: space-between; }
.ch-panel-foot div a { font-size: 15px; color: rgba(247,242,232,.75); text-decoration: none; min-height: 44px; display: inline-flex; align-items: center; }
.ch-panel-foot .ch-mail { font-size: 14px; color: var(--sand-300); }
@media (max-width: 899px) { .ch-burger { display: inline-flex; } }
@media (min-width: 900px) { .ch-panel { display: none; } }
@media (prefers-reduced-motion: reduce) { .ch-chev, .ch-arrow, .ast-desktop #masthead .sub-menu .menu-link { transition: none; transform: none !important; } }

/* footer */
.ch-foot { background: var(--sand-800); color: rgba(247,242,232,.8); padding: 60px 40px 32px; }
.ch-foot-grid, .ch-foot-bar { max-width: 1180px; margin: 0 auto; }
.ch-foot-grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1.2fr; gap: 44px; }
.ch-foot-name { display: flex; align-items: center; gap: 12px; font-family: var(--font-display); font-size: 19px; color: var(--sand-50); }
.ch-foot-name img { width: 46px; height: 46px; border-radius: 50%; }
.ch-foot p { margin: 16px 0 0; font-size: 15px; line-height: 1.7; max-width: 34ch; }
.ch-foot h3 { margin: 0 0 4px; font-family: var(--font-body); font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--sand-300); font-weight: 500; }
.ch-foot nav, .ch-foot-touch { display: flex; flex-direction: column; gap: 12px; }
.ch-foot a { color: rgba(247,242,232,.8); text-decoration: none; font-size: 15px; min-height: 24px; }
.ch-foot a:hover { color: var(--sand-300); }
.ch-foot .ch-mail { color: var(--sand-300); word-break: break-all; }
.ch-foot-touch p { margin: 0; font-size: 14px; line-height: 1.6; color: rgba(247,242,232,.55); }
.ch-foot-bar { margin-top: 44px; padding-top: 26px; border-top: 1px solid rgba(247,242,232,.16); display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; font-size: 14px; color: rgba(247,242,232,.55); }
.ch-foot-links { display: flex; gap: 20px; flex-wrap: wrap; }
.ch-foot-links a { font-size: 14px; color: rgba(247,242,232,.62); }
@media (max-width: 899px) { .ch-foot-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { .ch-foot { padding: 48px 16px 28px; } .ch-foot-grid { grid-template-columns: 1fr; } }

/* ---- chrome fixes round 1 ---- */
#masthead .ast-primary-header-bar .ast-builder-grid-row { grid-template-columns: auto 1fr auto; column-gap: 36px; }
#masthead .ast-primary-header-bar .site-header-primary-section-center { justify-content: flex-start; }
#masthead .main-header-menu { flex-wrap: nowrap; white-space: nowrap; }
.ch-foot { text-align: left; }
.ch-foot ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ch-foot li { margin: 0; padding: 0; }
.site-footer .ast-container, .site-footer .site-primary-footer-wrap, .site-footer .ast-builder-grid-row { max-width: none; padding-left: 0; padding-right: 0; }
.site-footer .site-primary-footer-wrap { padding-top: 0; padding-bottom: 0; }
.site-footer .ast-builder-layout-element { width: 100%; }

/* ---- chrome fixes round 2 ---- */
#masthead .ast-primary-header-bar .ast-builder-grid-row { grid-template-columns: auto 1fr auto !important; column-gap: 36px; }
#masthead .site-header-primary-section-right { gap: 22px; white-space: nowrap; }
#masthead .secondary-navigation .menu-link, #masthead .ast-custom-button { white-space: nowrap; }

/* ---- chrome fixes round 3 ---- */
body.ast-separate-container { background-color: var(--sand-50) !important; }
#masthead .ast-site-title-wrap { flex-shrink: 0; }
#masthead .site-title a { display: block; width: min-content; white-space: normal; }
.site-footer .ast-builder-footer-grid-columns { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.site-footer .site-primary-footer-wrap { background: transparent !important; }

/* ---- chrome fixes round 4 ---- */
#masthead .ast-site-identity { flex-wrap: nowrap; flex-shrink: 0; }
#masthead .ast-site-title-wrap, #masthead .site-title { flex-shrink: 0; }
#masthead .site-title a { width: 5.6em; white-space: normal; }

/* ---- chrome fixes round 5 ---- */
.ast-desktop #masthead .main-header-menu .sub-menu, .ast-desktop #masthead .main-header-menu .sub-menu .menu-link { white-space: normal; }
.ast-desktop #masthead .main-header-menu .sub-menu .menu-link { min-width: 0; }
.ch-tx { min-width: 0; }

/* ---- chrome fixes round 6 (mobile header) ---- */
.ch-burger svg { width: 22px; height: 22px; flex-shrink: 0; }
.ch-burger { width: 44px; min-width: 44px; padding: 0; }
@media (max-width: 899px) {
  #masthead .ast-primary-header-bar .ast-builder-grid-row { grid-template-columns: 1fr auto !important; padding-left: 16px; padding-right: 16px; }
  #masthead .site-header-primary-section-right { justify-content: flex-end; }
}

/* ---- footer Cookies button (reopens the cookie choices) ---- */
.ch-linkbtn { background: none; border: 0; padding: 0; margin: 0; font: inherit; font-size: 14px; color: rgba(247,242,232,.62); cursor: pointer; text-decoration: none; }
.ch-linkbtn:hover, .ch-linkbtn:focus-visible { color: var(--sand-300); }

/* ---- CookieYes banner in brand colors (its design is served from CookieYes's cloud, so this overrides it) ---- */
.cky-btn-revisit-wrapper { display: none !important; }
.cky-consent-container, .cky-modal .cky-preference-center { background-color: var(--sand-50) !important; border-color: var(--sand-100) !important; font-family: var(--font-body) !important; }
.cky-consent-container .cky-title, .cky-preference-title { color: var(--jungle-800) !important; font-family: var(--font-display) !important; }
.cky-consent-container .cky-notice-des, .cky-consent-container .cky-notice-des p, .cky-preference-center .cky-preference-content-wrapper, .cky-preference-center .cky-accordion-header-des { color: var(--sand-800) !important; }
.cky-btn-accept, .cky-btn-reject, .cky-btn-preferences { background-color: var(--jungle-600) !important; border-color: var(--jungle-600) !important; color: #fff !important; }
.cky-btn-accept:hover, .cky-btn-reject:hover, .cky-btn-preferences:hover { background-color: var(--jungle-800) !important; border-color: var(--jungle-800) !important; }
.cky-btn-customize { background-color: transparent !important; border-color: var(--jungle-600) !important; color: var(--jungle-600) !important; }
.cky-btn-customize:hover { background-color: rgba(68,111,80,.08) !important; }
.cky-consent-container [style*="1863DC" i], .cky-preference-center [style*="1863DC" i] { border-color: var(--jungle-600) !important; }
.cky-switch input[type="checkbox"]:checked { background-color: var(--jungle-600) !important; }
.cky-consent-container a, .cky-preference-center a { color: var(--jungle-600) !important; }

/* ---- Bungalow page (single-bungalow.php). Values from the design canvas, Version 88. ---- */
body.ch-page .site-content > .ast-container { max-width: none; padding: 0; display: block; }
body.ch-page #primary, body.ch-page #content { margin: 0; padding: 0; width: 100%; }
body.ch-page #secondary { display: none; }
.cb { background: var(--sand-50); color: var(--sand-800); }
.cb h1, .cb h2, .cb h3 { font-family: var(--font-display); font-weight: 400; margin: 0; }
.cb p { margin: 0; }
.cb ul, .cb ol { list-style: none; margin: 0; padding: 0; }
.cb img { display: block; max-width: 100%; }

/* hero (spec section 5: min-height, not a fixed height) */
.cb-hero { position: relative; min-height: 560px; overflow: hidden; background: var(--jungle-800); }
.cb-hero picture, .cb-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; }
.cb-hero-img { object-fit: cover; }
.cb-hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(33,54,39,.52) 0%, rgba(33,54,39,.14) 38%, rgba(33,54,39,.8) 100%); }
.cb-hero-in { position: relative; max-width: 1260px; margin: 0 auto; padding: 112px 40px 152px; display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.cb-back { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: rgba(247,242,232,.82); text-decoration: none; min-height: 44px; }
.cb-back:hover { color: var(--sand-50); }
.cb-hero h1 { font-size: 72px; line-height: 1.02; color: var(--sand-50); letter-spacing: -.02em; }
.cb-tag { font-family: var(--font-display); font-size: 26px; line-height: 1.3; color: var(--sand-300); max-width: 30ch; }
.cb-chips { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.cb-chips span { background: rgba(247,242,232,.14); border: 1px solid rgba(247,242,232,.3); color: var(--sand-50); font-size: 14px; padding: 8px 16px; border-radius: 999px; }
.cb-chips .cb-chip-gold { background: var(--sand-300); border-color: var(--sand-300); color: var(--jungle-800); font-weight: 600; }
.cb-wave { position: absolute; bottom: -1px; left: 0; width: 100%; height: 120px; display: block; }

/* description + booking */
.cb-main { position: relative; padding: 56px 40px 92px; overflow: hidden; }
.cb-frond { position: absolute; pointer-events: none; height: auto; }
.cb-frond-l { top: -40px; left: max(-180px, calc(50% - 900px)); width: 640px; opacity: .34; }
.cb-frond-r { bottom: 40px; right: max(-170px, calc(50% - 890px)); width: 680px; opacity: .36; }
.cb-grid { position: relative; max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1.45fr 1fr; gap: 56px; align-items: start; }
.cb-col { display: flex; flex-direction: column; gap: 34px; min-width: 0; }
.cb-text { display: flex; flex-direction: column; gap: 18px; }
.cb-lede { font-size: 20px; line-height: 1.7; color: var(--sand-800); }
.cb-body { display: flex; flex-direction: column; gap: 18px; }
.cb-body p { font-size: 18px; line-height: 1.78; color: #6C5237; }
.cb-different { display: flex; flex-direction: column; gap: 16px; }
.cb-different h2 { font-size: 30px; color: var(--sand-800); }
.cb-different ul { display: grid; grid-template-columns: 1fr 1fr; column-gap: 36px; }
.cb-different li { display: flex; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--sand-100); }
.cb-ic { flex-shrink: 0; color: var(--jungle-600); }
.cb-different li span { font-size: 16px; color: var(--sand-800); }
.cb-card { background: #fff; border: 1px solid var(--sand-100); border-radius: 18px; padding: 24px 28px 26px; display: flex; flex-direction: column; gap: 14px; }
.cb-card h3 { font-family: var(--font-body); font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--sand-600); font-weight: 600; }
.cb-card ul { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; row-gap: 10px; }
.cb-card li { display: flex; align-items: center; gap: 10px; font-size: 15.5px; color: var(--sand-800); }
.cb-card li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--jungle-600); flex-shrink: 0; }
.cb-times { background: var(--sand-100); border-radius: 18px; padding: 24px 28px 26px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 22px; }
.cb-times > div { display: flex; flex-direction: column; gap: 4px; }
.cb-lab { font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--sand-600); font-weight: 600; }
.cb-val { font-size: 17px; color: var(--sand-800); }
.cb-times p { grid-column: 1 / -1; font-size: 15px; line-height: 1.7; color: #6C5237; }

/* booking card */
.cb-book { position: sticky; top: 92px; background: #fff; border-radius: 22px; box-shadow: 0 18px 48px rgba(74,56,38,.14); padding: 28px 28px 30px; display: flex; flex-direction: column; gap: 20px; }
.cb-price { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.cb-price-n { font-family: var(--font-display); font-size: 34px; color: var(--sand-800); }
.cb-price-note { font-size: 14px; color: var(--sand-600); text-align: right; }
.cb-dev { font-size: 13px; line-height: 1.6; color: var(--sand-600); background: var(--sand-50); border: 1px dashed var(--sand-300); border-radius: 12px; padding: 12px 14px; }
.cb-steps { padding-top: 16px; border-top: 1px solid var(--sand-100); display: flex; flex-direction: column; gap: 10px; }
.cb-steps li { display: flex; gap: 11px; font-size: 14px; line-height: 1.5; color: #6C5237; }
.cb-steps li span { flex-shrink: 0; width: 21px; height: 21px; border-radius: 50%; background: var(--jungle-600); color: #fff; font-size: 12px; font-weight: 600; display: flex; align-items: center; justify-content: center; }

/* gallery */
.cb-gallery { background: #fff; padding: 84px 40px 92px; }
.cb-gallery-in { max-width: 1260px; margin: 0 auto; display: flex; flex-direction: column; gap: 34px; }
.cb-gallery-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.cb-gallery-head h2 { font-size: 42px; color: var(--sand-800); letter-spacing: -.015em; }
.cb-gallery-head p { font-size: 16px; color: var(--sand-600); }
.cb-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.cb-tile { margin: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 6px 22px rgba(74,56,38,.1); }
.cb-wide { grid-column: span 2; }
.cb-tile a { display: block; cursor: zoom-in; }
.cb-tile img { width: 100%; height: 300px; object-fit: cover; transition: transform .8s ease; }
.cb-tile:hover img { transform: scale(1.04); }

/* arriving */
.cb-arrive { background: var(--jungle-800); color: var(--sand-50); padding: 72px 40px 78px; }
.cb-arrive-in { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.cb-arrive-text { display: flex; flex-direction: column; gap: 16px; }
.cb-eyebrow { font-size: 13px; letter-spacing: .22em; text-transform: uppercase; color: var(--sand-300); font-weight: 500; }
.cb-arrive h2 { font-size: 38px; line-height: 1.15; }
.cb-arrive-text p:not(.cb-eyebrow) { font-size: 18px; line-height: 1.75; color: rgba(247,242,232,.82); }
.cb-arrive-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.cb-arrive-cards > div { background: rgba(247,242,232,.07); border: 1px solid rgba(247,242,232,.18); border-radius: 16px; padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 6px; }
.cb-arrive-cards .cb-lab { color: var(--sand-300); }
.cb-arrive-cards .cb-val { font-family: var(--font-display); font-size: 27px; color: var(--sand-50); }
.cb-sub { font-size: 14px; color: rgba(247,242,232,.68); }
.cb-span { grid-column: 1 / -1; }

/* other bungalows */
.cb-others { position: relative; background: var(--sand-50); padding: 80px 40px 92px; overflow: hidden; }
.cb-others-in { position: relative; max-width: 1260px; margin: 0 auto; display: flex; flex-direction: column; gap: 30px; }
.cb-others h2 { font-size: 38px; color: var(--sand-800); letter-spacing: -.015em; }
.cb-others-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.cb-other { text-decoration: none; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 6px 22px rgba(74,56,38,.09); display: flex; flex-direction: column; transition: transform .35s ease, box-shadow .35s ease; }
.cb-other:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(74,56,38,.18); }
.cb-other-img { overflow: hidden; }
.cb-other-img img { width: 100%; height: 150px; object-fit: cover; }
.cb-other-t { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 5px; flex-grow: 1; }
.cb-other-n { font-family: var(--font-display); font-size: 19px; color: var(--sand-800); }
.cb-other-d { font-size: 13.5px; color: var(--sand-600); }
.cb-other-bar { height: 5px; }
.cb-buyout { background: var(--sand-100); border-radius: 18px; padding: 26px 32px; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.cb-buyout p { font-size: 17px; line-height: 1.7; color: #6C5237; max-width: 66ch; }
.cb-btn { background: var(--sand-800); color: var(--sand-50); text-decoration: none; padding: 14px 28px; border-radius: 999px; font-size: 16px; font-weight: 500; white-space: nowrap; transition: background .25s ease; }
.cb-btn:hover { background: #6C5237; color: var(--sand-50); }

/* mobile price bar */
.cb-pricebar { display: none; }

/* photo viewer */
.cb-lb { position: fixed; inset: 0; z-index: 200; background: rgba(20,32,24,.94); display: flex; align-items: center; justify-content: center; }
.cb-lb[hidden] { display: none; }
.cb-lb img { max-width: 92vw; max-height: 88vh; object-fit: contain; border-radius: 8px; }
.cb-lb button { position: absolute; background: rgba(247,242,232,.12); color: var(--sand-50); border: 0; border-radius: 50%; width: 48px; height: 48px; font-size: 28px; line-height: 1; cursor: pointer; }
.cb-lb button:hover, .cb-lb button:focus-visible { background: rgba(247,242,232,.28); }
.cb-lb-x { top: 18px; right: 18px; }
.cb-lb-p { left: 18px; top: 50%; transform: translateY(-50%); }
.cb-lb-n { right: 18px; top: 50%; transform: translateY(-50%); }
.ch-locked-photo { overflow: hidden; }

/* tablet: 3-column grids become 2, then 1 (spec section 12) */
@media (max-width: 1199px) { .cb-others-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 899px) {
  .cb-hero-in { padding: 72px 24px 112px; }
  .cb-main, .cb-gallery, .cb-arrive, .cb-others { padding-left: 24px; padding-right: 24px; }
  .cb-grid, .cb-arrive-in { grid-template-columns: 1fr; gap: 40px; }
  .cb-book { position: static; }
  .cb-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cb-wide { grid-column: span 2; }
  .cb-others-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cb-pricebar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: #fff; box-shadow: 0 -8px 28px rgba(74,56,38,.16); padding: 10px 16px; align-items: center; justify-content: space-between; gap: 12px; }
  .cb-pricebar > div { display: flex; flex-direction: column; }
  .cb-pb-n { font-family: var(--font-display); font-size: 24px; color: var(--sand-800); line-height: 1.1; }
  .cb-pb-d { font-size: 12.5px; color: var(--sand-600); }
  .cb-pricebar a { background: var(--jungle-600); color: #fff; text-decoration: none; padding: 13px 24px; border-radius: 999px; font-size: 16px; font-weight: 500; min-height: 44px; display: inline-flex; align-items: center; }
  .cb { padding-bottom: 78px; }
}
@media (max-width: 599px) {
  .cb-hero { min-height: 420px; }
  .cb-hero-in { padding: 72px 16px 96px; }
  .cb-hero h1 { font-size: 44px; }
  .cb-tag { font-size: 21px; }
  .cb-main, .cb-gallery, .cb-arrive, .cb-others { padding-left: 16px; padding-right: 16px; }
  .cb-different ul, .cb-card ul { grid-template-columns: 1fr; }
  .cb-times { grid-template-columns: 1fr 1fr; }
  .cb-gallery-head h2 { font-size: 32px; }
  .cb-tile img { height: 200px; }
  .cb-arrive h2 { font-size: 30px; }
  .cb-arrive-cards { grid-template-columns: 1fr; }
  .cb-others h2 { font-size: 30px; }
  .cb-buyout { padding: 22px 20px; }
}
@media (prefers-reduced-motion: reduce) { .cb-tile img, .cb-other, .cb-btn { transition: none; } .cb-tile:hover img, .cb-other:hover { transform: none; } }

/* ---- bungalow page fixes round 1 ---- */
.cb-arrive h2 { color: var(--sand-50); }
.cb-hero h1 { color: var(--sand-50); }
.cb-main { overflow: clip; }
.cb-others { overflow: clip; }

/* ---- bungalow page fixes round 2 (phone) ---- */
body.ch-page .site-content > .ast-container { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; }
@media (max-width: 599px) {
  .cb-hero-shade { background: linear-gradient(180deg, rgba(33,54,39,.62) 0%, rgba(33,54,39,.3) 38%, rgba(33,54,39,.9) 100%); }
  .cb-hero h1, .cb-tag, .cb-back, .cb-chips span { text-shadow: 0 2px 14px rgba(20,32,24,.55); }
}
#ast-scroll-top { display: none !important; }

/* Bungalow page, phone layout (follows the MobileBungalow canvas, 390 wide). Phone-only pieces are hidden above 599px. */
.cb-pill, .cb-ask, .cb-m-only, .cb-seeall, .cb-other-m { display: none; }
.cb-others .cb-frond-m { display: none; }
.cb-beds, .cb-book-in { display: contents; }
@media (max-width: 599px) {
	#masthead .main-header-bar, #masthead .ast-primary-header-bar { min-height: 56px !important; }
	#masthead .site-branding { padding-top: 0 !important; padding-bottom: 0 !important; }
	#masthead .site-title a { font-size: 15px; font-weight: 500; line-height: 1.05; }

	.cb-hero { min-height: 0; height: 330px; }
	.cb-hero-shade { background: linear-gradient(180deg, rgba(33,54,39,.74) 0%, rgba(33,54,39,.46) 48%, rgba(33,54,39,.88) 100%); }
	.cb-hero-in { padding: 40px 20px 0; gap: 10px; }
	.cb-back, .cb-chips, .cb-wave { display: none; }
	.cb-pill { display: inline-block; align-self: flex-start; background: #446F50; color: #fff; font-size: 12px; font-weight: 600; padding: 5px 13px; border-radius: 999px; }
	.cb-hero h1 { font-size: 40px; line-height: 1.05; }
	.cb-tag { font-family: 'Work Sans', system-ui, sans-serif; font-size: 16px; line-height: 1.55; color: rgba(247,242,232,.9); max-width: none; }
	.cb-hero h1, .cb-hero p, .cb-hero span { text-shadow: 0 2px 14px rgba(20,32,24,.55); }

	.cb { padding-bottom: 0; }
	.cb-pricebar { display: flex; position: sticky; top: 56px; bottom: auto; left: auto; right: auto; z-index: 80; background: #fff; border-bottom: 1px solid #E6D9BF; box-shadow: 0 4px 14px rgba(74,56,38,.07); padding: 12px 20px; gap: 12px; align-items: center; justify-content: space-between; }
	.cb-pb-n { font-size: 22px; line-height: 1; }
	.cb-pb-d { font-size: 12px; color: #8A6A3E; }
	.cb-pricebar a { background: #446F50; padding: 12px 22px; font-size: 15px; font-weight: 600; white-space: nowrap; }

	/* intro: heading, wording, list */
	.cb-main { padding: 0; }
	.cb-frond-l { display: none; }
	.cb-grid { gap: 0; max-width: none; }
	.cb-col { display: flex; flex-direction: column; gap: 0; }
	.cb-different { display: contents; }
	.cb-different h2 { order: 1; padding: 34px 20px 0; font-size: 27px; line-height: 1.15; }
	.cb-text { order: 2; padding: 14px 20px 0; }
	.cb-lede, .cb-body p { font-size: 16px; line-height: 1.75; color: #6C5237; }
	.cb-lede { margin-bottom: 14px; }
	.cb-different ul { order: 3; display: block; padding: 4px 20px 38px; margin: 0; }
	.cb-different li { align-items: flex-start; gap: 10px; padding: 9px 0; }
	.cb-different li svg { display: none; }
	.cb-different li::before { content: ""; flex-shrink: 0; width: 7px; height: 7px; border-radius: 50%; background: #446F50; margin-top: 8px; }
	.cb-different li span { font-size: 15.5px; line-height: 1.6; }

	/* beds and bathrooms: white band, boxed "in every bungalow" */
	.cb-beds { display: block; order: 4; background: #fff; padding: 30px 20px 34px; }
	.cb-beds .cb-card:first-child { background: none; border: 0; border-radius: 0; padding: 0; }
	.cb-beds .cb-card h3 { font-size: 12.5px; }
	.cb-beds .cb-card ul { grid-template-columns: 1fr 1fr; column-gap: 18px; row-gap: 10px; }
	.cb-beds .cb-card li { font-size: 14.5px; align-items: center; }
	.cb-beds .cb-card li::before { width: 5px; height: 5px; }
	.cb-beds .cb-card + .cb-card { margin-top: 14px; background: #F7F2E8; border-radius: 16px; padding: 18px; }
	.cb-beds .cb-card + .cb-card ul { column-gap: 14px; row-gap: 9px; }
	.cb-times { order: 5; margin: 28px 20px; }

	/* request: dark band, white card */
	.cb-book { position: static; background: #213627; box-shadow: none; border-radius: 0; padding: 36px 20px 42px; gap: 16px; }
	.cb-ask { display: block; font-size: 28px; line-height: 1.14; color: #F7F2E8; }
	.cb-book-in { display: flex; flex-direction: column; gap: 16px; background: #fff; border-radius: 20px; padding: 20px; }
	.cb-price { display: none; }

	/* gallery: four photographs, the rest on request */
	.cb-gallery { padding: 34px 20px 40px; }
	.cb-gallery-in { gap: 14px; }
	.cb-gallery-head { display: block; }
	.cb-gallery-head h2 { font-size: 27px; letter-spacing: 0; line-height: 1.2; }
	.cb-gallery-head p { display: none; }
	.cb-m-only { display: inline; }
	.cb-tiles { gap: 10px; }
	.cb-wide { grid-column: auto; }
	.cb-tile { border-radius: 12px; box-shadow: none; }
	.cb-tile img { height: 150px; }
	.cb-tiles:not(.is-open) .cb-tile:nth-child(n+5) { display: none; }
	.cb-seeall { display: inline-flex; align-items: center; align-self: flex-start; min-height: 44px; background: none; border: 0; padding: 0; font-family: inherit; font-size: 15px; font-weight: 500; color: #1F5A61; cursor: pointer; }
	.cb-seeall[hidden] { display: none; }

	/* the arriving band keeps its desktop content, stacked */
	.cb-arrive { padding: 40px 20px 44px; }

	/* other bungalows: colour tiles */
	.cb-others { padding: 34px 20px 40px; }
	.cb-others-in { gap: 14px; }
	.cb-others h2 { font-size: 27px; letter-spacing: 0; }
	.cb-frond-r { display: none; }
	.cb-others .cb-frond-m { display: block; bottom: -40px; left: -140px; width: 360px; opacity: .3; }
	.cb-others-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
	.cb-other { background: #446F50; color: #fff; border-radius: 16px; box-shadow: none; padding: 15px 16px; min-height: 86px; justify-content: center; gap: 3px; }
	.cb-other:hover { transform: none; box-shadow: none; }
	.cb-other-img, .cb-other-t, .cb-other-bar { display: none; }
	.cb-other-m { display: flex; flex-direction: column; gap: 3px; }
	.cb-other-mn { font-family: var(--font-display); font-size: 17px; line-height: 1.15; }
	.cb-other-md { font-size: 12.5px; opacity: .82; }
	.cb-c-casa-sonido-del-mar { background: #1F5A61; }
	.cb-c-casa-palmas { background: #446F50; }
	.cb-c-casa-huesos { background: #8A6A3E; }
	.cb-c-casa-zadro { background: #327176; }
	.cb-c-casa-sara { background: #55785F; }
	.cb-c-casa-cactus { background: #C6A56B; color: #213627; }
	.cb-buyout { padding: 22px 20px; }
}

/* Brand safety net: Astra's default blue must never show. Colours, fonts and focus follow the brand guidelines. */
button, input, select, textarea { font-family: var(--font-body); }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid var(--ocean-700); outline-offset: 2px; }
.cb-seeall, .cb-seeall:hover, .cb-seeall:focus, .cb-seeall:active { background: none; color: var(--ocean-700); box-shadow: none; text-decoration: none; }
.cb-seeall:hover { color: #144349; text-decoration: underline; }
.cb-other, .cb-other:hover, .cb-other:focus, .cb-other:visited { text-decoration: none; }
.cb-other-mn, .cb-other-md { color: inherit; }
.cb-btn, .cb-btn:hover, .cb-btn:focus { text-decoration: none; }
::selection { background: var(--jungle-100); color: var(--sand-800); }
.cky-show-desc-btn, .cky-show-desc-btn:hover, .cky-show-desc-btn:focus-visible { color: var(--ocean-700) !important; outline-color: var(--ocean-700) !important; }
.cky-consent-container a, .cky-modal a { color: var(--ocean-700) !important; }
.cky-switch input:checked { background-color: var(--jungle-600) !important; }
/* Phone wave dividers (the desktop hero wave, reused between phone sections) */
@media (max-width: 599px) {
	.cb-wave { display: block; height: 36px; }
	.cb-wave path:last-child { fill: #fff; }
	.cb-book, .cb-arrive { position: relative; }
	.cb-book { padding-top: 64px; }
	.cb-arrive { padding-top: 70px; }
	.cb-book::before, .cb-arrive::before { content: ''; position: absolute; top: -1px; left: 0; width: 100%; height: 36px; background-size: 100% 100%; background-repeat: no-repeat; pointer-events: none; }
	.cb-book::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cg transform='translate(0,120) scale(1,-1)'%3E%3Cpath d='M0,74 C240,116 480,30 720,60 C960,90 1200,126 1440,88 L1440,120 L0,120 Z' fill='%23E6D9BF' opacity='.5'/%3E%3Cpath d='M0,94 C260,130 500,50 760,80 C1000,106 1220,132 1440,104 L1440,120 L0,120 Z' fill='%23F7F2E8'/%3E%3C/g%3E%3C/svg%3E"); }
	.cb-arrive::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cg transform='translate(0,120) scale(1,-1)'%3E%3Cpath d='M0,74 C240,116 480,30 720,60 C960,90 1200,126 1440,88 L1440,120 L0,120 Z' fill='%23E6D9BF' opacity='.5'/%3E%3Cpath d='M0,94 C260,130 500,50 760,80 C1000,106 1220,132 1440,104 L1440,120 L0,120 Z' fill='%23FFFFFF'/%3E%3C/g%3E%3C/svg%3E"); }
}

/* Homepage (front-page.php). Class names follow the design canvas with an hp- prefix. */
html { scroll-behavior: smooth; }
.hp [id] { scroll-margin-top: 90px; }
.hp a { color: #1F5A61; }
.hp a:hover { color: #144349; }

  .hp-kenburns { animation: hpzoom 30s ease-in-out infinite alternate; }
  @keyframes hpzoom { from { transform: scale(1.02); } to { transform: scale(1.13); } }

  /* ---- drifting word ribbon ---- */
  .hp-marquee { overflow: hidden; position: relative; }
  .hp-track { display: flex; width: max-content; animation: hpdrift 64s linear infinite; }
  .hp-marquee:hover .hp-track { animation-play-state: paused; }
  @keyframes hpdrift { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  .hp-word { animation: hpbob 5.2s ease-in-out infinite; will-change: transform; }
  @keyframes hpbob { 0%, 100% { transform: translateY(6px) rotate(-.5deg); } 50% { transform: translateY(-9px) rotate(.5deg); } }
  .hp-word:nth-child(6n+1) { animation-delay: 0s; }
  .hp-word:nth-child(6n+2) { animation-delay: -.85s; }
  .hp-word:nth-child(6n+3) { animation-delay: -1.7s; }
  .hp-word:nth-child(6n+4) { animation-delay: -2.6s; }
  .hp-word:nth-child(6n+5) { animation-delay: -3.45s; }
  .hp-word:nth-child(6n+6) { animation-delay: -4.3s; }

  .hp-card { transition: transform .35s ease, box-shadow .35s ease; }
  .hp-card:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(74,56,38,.18); }
  .hp-btn { transition: background .25s ease, color .25s ease, border-color .25s ease; }
  .hp-btn-solid:hover { background: #6C5237 !important; }
  .hp-btn-ghost:hover { background: rgba(247,242,232,.16) !important; }
  .hp-btn-ocean:hover { background: #144349 !important; }
  .hp-media img { transition: transform .8s ease; }
  .hp-media:hover img { transform: scale(1.04); }

  details.hp-faq > summary { list-style: none; cursor: pointer; }
  details.hp-faq > summary::-webkit-details-marker { display: none; }
  details.hp-faq > summary .hp-plus { transition: transform .3s ease; }
  details.hp-faq[open] > summary .hp-plus { transform: rotate(45deg); }
  details.hp-faq { border-bottom: 1px solid #E6D9BF; }

  .hp-share { transition: transform .2s ease, background .2s ease, border-color .2s ease; }
  .hp-share:hover { transform: translateY(-3px); background: #4A3826; border-color: #4A3826; color: #F7F2E8; }
  .hp-share:hover svg { stroke: #F7F2E8; }

  @media (prefers-reduced-motion: reduce) {
    .hp-kenburns, .hp-track, .hp-word { animation: none; }
    .hp-card, .hp-btn, .hp-media img, .hp-panel, .hp-share { transition: none; }
  }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.hp h1, .hp h2, .hp h3, .hp h4, .hp h5, .hp h6 { color: inherit; font-weight: 400; margin: 0; }
.hp p { margin-bottom: 0; }
.hp ul, .hp ol { margin: 0; }
.hp blockquote { margin: 0; }
/* PHONE-VARS-START (generated: one block for every canvas-built page) */
@media (max-width: 599px) {
.hp {
  --sh780: 562px;
  --sy132: 63px;
  --sx40: 20px;
  --sf86: 42px;
  --sf30: 25px;
  --sf21: 19px;
  --sx32: 20px;
  --sx26: 20px;
  --sh150: 108px;
  --sy42: 20px;
  --sy46: 22px;
  --sx30: 20px;
  --sf27: 22px;
  --sy78: 37px;
  --sy92: 44px;
  --sg42: 25px;
  --sf56: 34px;
  --sg52: 31px;
  --gc7230: 1fr;
  --sf18: 17px;
  --sy32: 15px;
  --sf34: 28px;
  --sy96: 46px;
  --sg56: 34px;
  --gc6158: 1fr;
  --sf68: 41px;
  --sf19: 17px;
  --sf17: 16px;
  --gc5182: 1fr;
  --sy28: 13px;
  --sy30: 14px;
  --gspan: auto;
  --sf24: 22px;
  --sy34: 16px;
  --sy36: 17px;
  --gc7646: 1fr;
  --sf62: 37px;
  --gc6384: 1fr;
  --sf32: 26px;
  --sh520: 374px;
  --sg54: 32px;
  --sf54: 32px;
  --sy26: 12px;
  --sx28: 20px;
  --sf22: 20px;
  --sy80: 38px;
  --sy100: 48px;
  --sg46: 28px;
  --sg40: 24px;
  --sg30: 18px;
  --gc8931: 1fr;
  --sy24: 12px;
  --sx38: 20px;
  --sg32: 19px;
  --sf26: 21px;
  --sg74: 44px;
  --sg60: 36px;
  --sy74: 36px;
  --sf50: 30px;
  --sy86: 41px;
  --sg34: 20px;
  --sg44: 26px;
  --sf48: 35px;
  --sy38: 18px;
  --sx44: 22px;
  --sy40: 19px;
  --sf31: 25px;
  --sg38: 23px;
  --sf20: 18px;
  --sy82: 39px;
  --sy88: 42px;
  --sf44: 32px;
  --gc5869: 1fr;
  --sy66: 32px;
  --sy70: 34px;
  --sf36: 26px;
  --sg64: 38px;
  --gc6717: 1fr;
  --sh540: 389px;
  --sy118: 57px;
  --sf72: 43px;
  --sy56: 27px;
  --sy84: 40px;
  --sf42: 30px;
  --gc180a89: 1fr;
  --gcc493aa: 1fr;
  --sx72: 36px;
  --sh440: 317px;
  --sy76: 36px;
  --sf40: 29px;
  --sh500: 360px;
  --sy104: 50px;
  --sy152: 73px;
  --sy54: 26px;
  --sy44: 21px;
  --sf46: 33px;
  --sy90: 43px;
  --sg58: 35px;
  --gc0846df: 1fr;
  --sg70: 42px;
  --gc68cd3f: 1fr;
  --sy72: 35px;
  --gc4ea933: 1fr;
  --gce716d4: 1fr;
  --sf38: 27px;
  --sf25: 22px;
  --sy112: 54px;
  --sf23: 21px;
  --gc826d74: 1fr;
  --sx24: 20px;
  --sy48: 23px;
  --gca09b2a: 1fr;
  --sy60: 29px;
  --sf28: 23px;
  --sf66: 40px;
  --sf52: 31px;
  --sy64: 31px;
  --sy94: 45px;
  --gcbc9e2a: 1fr;
  --sx36: 20px;
  --sy62: 30px;
  --sy68: 33px;
  --sh180: 130px;
  --gc8c34f0: 1fr;
  --sy58: 28px;
  --gc14fae3: 1fr;
}
}
/* PHONE-VARS-END */





















/* Homepage, phone layout (MobileHome canvas): the sizes come from the variables above; these are the changes variables cannot make. */
.hp-facts { display: none; }
.hp { overflow-x: clip; }
@media (max-width: 599px) {
	.hp-facts { display: block; background: #1B2D20; padding: 20px; }
	.hp-facts > div { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
	.hp-facts > div > div { display: flex; flex-direction: column; gap: 2px; }
	.hp-fact-n { font-family: var(--font-display); font-size: 27px; color: #F7F2E8; line-height: 1; }
	.hp-fact-l { font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: rgba(247,242,232,.65); }

	#top > div[style*="linear-gradient"] { background: linear-gradient(180deg, rgba(33,54,39,.80) 0%, rgba(33,54,39,.55) 45%, rgba(33,54,39,.92) 100%) !important; }
	#top > div[style*="max-width: 1260px"] { padding-top: 48px !important; padding-bottom: 96px !important; gap: 14px !important; }
	#top p:first-child { font-size: 11.5px !important; letter-spacing: .2em !important; font-weight: 600 !important; }
	#top h1 { line-height: 1.04 !important; }
	#top h2 { font-size: 20px !important; line-height: 1.3 !important; }
	#top p { line-height: 1.6; }
	#top p:nth-of-type(2) { font-size: 16px !important; }

	.hp img[aria-hidden="true"] { width: 360px !important; opacity: .3 !important; }
	#enquire img[aria-hidden="true"] { opacity: .10 !important; }
	.hp [style*="border-right: 1px solid"] { padding-right: 0 !important; border-right: 0 !important; }
	.hp-btn, .hp [href][style*="border-radius: 999px"] { min-height: 44px; }
	.hp-card:hover { transform: none; }
}
.hp .hp-share[hidden] { display: none !important; }
.hp button.hp-share { padding: 0; min-width: 52px; line-height: 0; color: #8A6A3E; }
.hp .hp-share svg { flex-shrink: 0; }
/* Content-page heroes on phones: room for the wave under the text */
@media (max-width: 599px) {
	.hp > section:first-child:not(#top) > div:nth-last-child(2) { padding-top: 64px !important; padding-bottom: 104px !important; }
}
/* Guest stories (reviews, palapa filter chips, "read more" expanders) */
.hp-rev { transition: transform .25s ease, box-shadow .25s ease; }
.hp-rev:hover { transform: translateY(-4px); box-shadow: 0 16px 38px rgba(74,56,38,.15); }
.hp-leg { transition: border-color .2s ease, background .2s ease; }
.hp-leg:hover { border-color: #C6A56B; background: #FFFDF8; }
.hp-more summary { cursor: pointer; list-style: none; }
.hp-more summary::-webkit-details-marker { display: none; }
.hp-more summary:hover { color: #3E8A90; }
.hp-more .hp-l-less { display: none; }
.hp-more[open] .hp-l-more { display: none; }
.hp-more[open] .hp-l-less { display: inline; }
.hp-more[open] .hp-chev { transform: rotate(180deg); }
.hp-chev { transition: transform .22s ease; }
@media (prefers-reduced-motion: reduce) { .hp-rev, .hp-leg, .hp-chev { transition: none; } }
/* A palm frond that pokes out of a band must never widen the page */
.hp section { position: relative; overflow-x: clip; }

/* Booking request card (bungalow pages) and the private review page */
.cb-form { display: flex; flex-direction: column; gap: 16px; }
.cb-form label { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; font-weight: 600; color: var(--sand-800); }
.cb-form input[type="text"], .cb-form input[type="email"], .cb-form input[type="number"], .cb-form textarea { border: 1px solid var(--sand-100); border-radius: 10px; padding: 11px; font: inherit; font-size: 14.5px; font-weight: 400; color: var(--sand-800); width: 100%; background: #fff; }
.cb-form input:focus, .cb-form textarea:focus { border-color: var(--ocean-700); outline: 2px solid var(--ocean-700); outline-offset: 1px; }
.cb-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding-top: 14px; border-top: 1px solid var(--sand-100); }
.cb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.cb-consent { flex-direction: row !important; align-items: flex-start; gap: 10px !important; font-size: 13px !important; font-weight: 400 !important; line-height: 1.55; color: #6C5237 !important; }
.cb-consent input { flex-shrink: 0; width: 16px; height: 16px; margin-top: 2px; accent-color: var(--jungle-600); }
.cb-submit { background: var(--jungle-600); color: #fff; border: 0; border-radius: 999px; padding: 15px; font: inherit; font-size: 15.5px; font-weight: 600; width: 100%; cursor: pointer; min-height: 48px; }
.cb-submit:hover, .cb-submit:focus { background: var(--jungle-800); color: #fff; }
.cb-fine { margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--sand-600); text-align: center; }
.cb-msg { margin: 0; padding: 12px 14px; border-radius: 12px; font-size: 14px; line-height: 1.55; }
.cb-msg.is-ok { background: #E9ECEA; color: #213627; border: 1px solid #C0D8C7; }
.cb-msg.is-err { background: #F7E9DD; color: #6C5237; border: 1px solid #E6D9BF; }
.cb-cal-head { display: flex; align-items: center; justify-content: space-between; }
.cb-cal-title { font-family: var(--font-display); font-size: 17px; color: var(--sand-800); }
.cb-cal-prev, .cb-cal-next { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--sand-100); background: #fff; color: var(--sand-800); font-size: 18px; line-height: 1; padding: 0; cursor: pointer; }
.cb-cal-prev:disabled, .cb-cal-next:disabled { opacity: .35; cursor: default; }
.cb-cal-dow, .cb-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; text-align: center; }
.cb-cal-dow { margin-top: 12px; font-size: 11.5px; color: var(--sand-600); }
.cb-cal-grid { margin-top: 6px; }
.cb-day { height: 42px; border-radius: 10px; border: 1px solid var(--sand-100); background: #fff; font: inherit; font-size: 15px; color: var(--sand-800); padding: 0; cursor: pointer; }
.cb-day:hover:not(:disabled) { border-color: var(--jungle-600); }
.cb-day.is-taken { color: #B9AA93; text-decoration: line-through; background: #fff; }
.cb-day.is-past { color: #D5CBB9; background: #FAF7F0; border-color: #F1EADB; cursor: default; }
.cb-day.is-range { background: #E9ECEA; border-color: #C0D8C7; }
.cb-day.is-pick, .cb-day.is-pick:hover { background: var(--jungle-600); border-color: var(--jungle-600); color: #fff; text-decoration: none; }
.cb-cal-note { margin: 10px 0 0; font-size: 12.5px; color: var(--sand-600); }
.cb-cal-msg { margin: 0; min-height: 1.2em; font-size: 13px; color: var(--ocean-700); }

.rv-form { display: flex; flex-direction: column; gap: 18px; }
.rv-form label, .rv-form legend { font-size: 14px; font-weight: 600; color: var(--sand-800); }
.rv-form label { display: flex; flex-direction: column; gap: 6px; }
.rv-form input[type="text"], .rv-form textarea { border: 1px solid var(--sand-100); border-radius: 10px; padding: 12px; font: inherit; font-size: 16px; font-weight: 400; background: #fff; color: var(--sand-800); width: 100%; }
.rv-form button { background: var(--jungle-600); color: #fff; border: 0; border-radius: 999px; padding: 15px 28px; font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; align-self: flex-start; min-height: 48px; }
.rv-form button:hover, .rv-form button:focus { background: var(--jungle-800); color: #fff; }
.rv-stars { border: 0; padding: 0; margin: 0; display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.rv-stars legend { padding: 0; margin-bottom: 8px; }
.rv-stars label { flex-direction: row; align-items: center; gap: 6px; font-weight: 500; }
.rv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.rv-fine, .rv-for { margin: 0; font-size: 14px; color: var(--sand-600); }
.rv-msg { margin: 0 0 18px; padding: 14px 16px; border-radius: 12px; font-size: 16px; line-height: 1.6; }
.rv-msg.is-ok { background: #E9ECEA; color: #213627; border: 1px solid #C0D8C7; }
.rv-msg.is-err { background: #F7E9DD; color: #6C5237; border: 1px solid #E6D9BF; }

/* Guest stories: the review columns follow the width of the screen */
@media (max-width: 1199px) { .hp [style*="column-count: 3"] { column-count: 2 !important; } }
@media (max-width: 767px) { .hp [style*="column-count: 3"] { column-count: 1 !important; } }
.cb-msg strong, .rv-msg strong { display: block; margin-bottom: 4px; font-family: var(--font-display); font-size: 17px; font-weight: 400; color: inherit; }
.cb-msg, .rv-msg { white-space: normal; }
.rv-form select, .rv-form input[type="month"] { border: 1px solid var(--sand-100); border-radius: 10px; padding: 12px; font: inherit; font-size: 16px; font-weight: 400; background: #fff; color: var(--sand-800); width: 100%; }
/* Tablets (600 to 1199 wide): the card grids step down instead of squeezing */
@media (min-width: 600px) and (max-width: 1199px) {
	.hp [style*="repeat(3, minmax(0, 1fr))"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (min-width: 600px) and (max-width: 899px) {
	.hp [style*="1fr 1.05fr"], .hp [style*="1.15fr 1fr"], .hp [style*="1.55fr 1fr 1fr"], .hp [style*="auto 1fr"] { grid-template-columns: 1fr !important; }
	.hp [style*="border-right: 1px solid"] { padding-right: 0 !important; border-right: 0 !important; }
	.hp [style*="gap: var(--sg74"], .hp [style*="gap: var(--sg64"], .hp [style*="gap: var(--sg60"] { gap: 40px !important; }
}
/* Tablets (600 to 1199 wide): the card grids step down instead of squeezing */
@media (min-width: 600px) and (max-width: 1199px) {
	.hp [style*="repeat(3, minmax(0, 1fr))"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (min-width: 600px) and (max-width: 899px) {
	.hp [style*="1fr 1.05fr"], .hp [style*="1.15fr 1fr"], .hp [style*="1.55fr 1fr 1fr"], .hp [style*="auto 1fr"] { grid-template-columns: 1fr !important; }
	.hp [style*="border-right: 1px solid"] { padding-right: 0 !important; border-right: 0 !important; }
}

/* Narrow desktops and landscape tablets (900 to 1279 wide): a tighter header so everything fits on one line */
@media (min-width: 900px) and (max-width: 1279px) {
	#masthead .main-header-menu > .menu-item > .menu-link { font-size: 14px !important; margin-right: 10px !important; padding-left: 0 !important; padding-right: 0 !important; }
	#masthead .site-header-primary-section-right { gap: 6px; }
	#masthead .ast-header-button-1 a, #masthead .ast-header-button-1 .ast-custom-button { padding: 10px 14px !important; font-size: 14px !important; }
	#masthead .site-title a { font-size: 15px !important; }
	#masthead .site-logo-img { padding-right: 8px !important; }
	#masthead .ast-primary-header-bar .ast-builder-grid-row { padding-left: 10px !important; padding-right: 10px !important; }
}
/* Narrower still: hide the header Contact link below 1100 (it stays in the menu and the footer) and the written logo name below 1000 */
@media (min-width: 900px) and (max-width: 1099px) { #masthead .ast-builder-menu-2 { display: none !important; } }
@media (min-width: 900px) and (max-width: 999px) { #masthead .site-title, #masthead .ast-site-title-wrap { display: none !important; } #masthead .main-header-menu > .menu-item > .menu-link { margin-right: 6px !important; font-size: 13.5px !important; } }
/* Helper line under a request-form field */
.cb-form .cb-help { display: block; margin-top: 6px; font-size: 13px; line-height: 1.5; font-weight: 400; color: #8A6A3E; }
