@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-600.ttf") format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-700.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("../fonts/ibm-plex-sans-400.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("../fonts/ibm-plex-sans-500.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("../fonts/ibm-plex-sans-600.ttf") format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"Ballet Harmony";src:url("../fonts/ballet-harmony.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
:root{--primary:#274223;--primary-dark:#182819;--accent:#91c34a;--background:#f4f0e3;--surface:#fff;--text:#1c1d19;--muted:#56605a;--border:#d8d2c2;--whatsapp:#1e7a42;--focus:#96530d;--shell:min(calc(100% - 32px),1280px);--shadow:0 24px 60px rgba(24,40,25,.12);--header-h:76px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--background);color:var(--text);font-family:"IBM Plex Sans",sans-serif;font-size:16px;line-height:1.62;overflow-x:hidden}body.menu-open{overflow:hidden}img{display:block;width:100%;height:auto}picture{display:block}figure,p,h1,h2,h3,dl,dd{margin:0}a{color:inherit}a,button{min-width:44px;min-height:44px;touch-action:manipulation}button{font:inherit;color:inherit}h1,h2{font-family:"Fraunces",serif;font-weight:600;line-height:.98;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(3.15rem,7vw,6.6rem)}h2{font-size:clamp(2.35rem,5vw,4.7rem)}h3{font-size:1.75rem;line-height:1.1}.shell{width:var(--shell);margin-inline:auto}.section{padding:88px 0}.skip-link{position:fixed;top:8px;left:8px;z-index:1000;padding:10px 14px;background:#fff;transform:translateY(-150%)}.skip-link:focus{transform:none}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.scroll-progress{position:fixed;top:0;left:0;z-index:1001;width:100%;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left}.site-header{position:fixed;top:0;left:0;z-index:100;width:100%;padding:12px 0;transition:padding .25s ease}.header-bar{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 10px 8px 16px;background:rgba(244,240,227,.94);border:1px solid rgba(216,210,194,.9);box-shadow:0 12px 32px rgba(24,40,25,.1);transition:background-color .25s ease,min-height .25s ease,box-shadow .25s ease}.site-header.is-scrolled{padding-top:6px}.site-header.is-scrolled .header-bar{min-height:56px;background:rgba(244,240,227,.76);box-shadow:0 10px 24px rgba(24,40,25,.13)}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;color:var(--primary);white-space:nowrap}.brand-logo{width:42px;height:42px;overflow:hidden;border-radius:8px;background:#fff}.brand-logo img{height:100%;object-fit:contain}.main-nav{display:flex;align-items:center;gap:22px}.main-nav>a:not(.button){text-decoration:none;font-weight:600;font-size:.9rem}.main-nav>a:not(.button):hover{text-decoration:underline;text-underline-offset:5px}.menu-toggle{display:none;border:0;background:transparent;padding:8px}.menu-toggle span{display:block;width:24px;height:2px;margin:5px;background:var(--primary)}.button{display:inline-flex;align-items:center;justify-content:center;padding:11px 18px;border:1px solid transparent;border-radius:8px;text-decoration:none;font-weight:600;line-height:1.2;text-align:center;transition:transform .18s ease,background-color .18s ease,color .18s ease}.button:hover{transform:translateY(-2px)}.button--nav,.button--primary{background:var(--primary);color:#fff}.button--accent{background:var(--accent);color:var(--primary-dark)}.button--outline-light{border-color:rgba(255,255,255,.55);color:#fff}.button--outline{border-color:var(--primary);color:var(--primary)}.button--whatsapp{background:var(--whatsapp);color:#fff;width:100%}.button-row{display:flex;flex-wrap:wrap;gap:12px}.text-link{display:inline-flex;align-items:center;min-height:44px;font-weight:600;text-underline-offset:5px}.eyebrow,.section-index{font-weight:600;font-size:.82rem;letter-spacing:.05em;color:var(--focus)}
.hero{min-height:790px;padding:120px 0 76px;background:var(--primary);color:#fff;overflow:hidden}.hero-grid{display:grid;grid-template-columns:repeat(12,1fr);align-items:center;gap:32px}.hero-copy{grid-column:span 5;position:relative;z-index:2}.hero h1{margin:22px 0 26px}.hero h1 span{display:block;color:#dce8cc}.hero-lead{max-width:560px;font-size:1.15rem;color:rgba(255,255,255,.82)}.hero .button-row{margin-top:30px}.microcopy{margin-top:14px;color:rgba(255,255,255,.67);font-size:.86rem}.hero-proof{display:grid;grid-template-columns:repeat(3,1fr);margin-top:34px;border-top:1px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(255,255,255,.25)}.hero-proof div{display:flex;flex-direction:column-reverse;padding:16px 10px;border-right:1px solid rgba(255,255,255,.2)}.hero-proof div:last-child{border:0}.hero-proof dt{font-size:.72rem;color:rgba(255,255,255,.64)}.hero-proof dd{font-weight:600}.hero-visual{grid-column:span 7;position:relative;padding:18px 18px 18px 0}.hero-visual::before{content:"";position:absolute;inset:0 0 0 28px;border:1px solid rgba(145,195,74,.8);border-radius:18px}.hero-visual picture{position:relative;overflow:hidden;border-radius:14px;background:#d8d2c2;box-shadow:var(--shadow)}.hero-visual img{height:590px;object-fit:cover;object-position:50% 45%}.hero-visual figcaption{position:absolute;right:0;bottom:0;display:flex;flex-direction:column;max-width:340px;padding:19px 24px;background:rgba(244,240,227,.96);color:var(--primary-dark);border-radius:12px 0 0 0}.hero-visual figcaption span{font-size:.84rem;color:var(--muted)}
.hotel{background:var(--surface)}.hotel-grid{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:9vw}.hotel-photo{position:relative}.hotel-photo picture{overflow:hidden;border-radius:12px}.hotel-photo img{aspect-ratio:4/3;object-fit:cover}.hotel-photo figcaption{position:absolute;right:-35px;bottom:-26px;width:min(300px,70%);padding:18px;background:var(--accent);font-weight:600}.hotel-copy h2{margin:18px 0 28px}.hotel-copy>p:not(.section-index){max-width:580px;color:var(--muted);font-size:1.08rem}.hotel-copy .text-link{margin-top:22px}
.benefits{background:var(--background)}.section-heading--split{display:grid;grid-template-columns:1.4fr .6fr;align-items:end;gap:10vw;margin-bottom:44px}.section-heading h2{max-width:850px;margin-top:14px}.section-heading>p{max-width:430px;color:var(--muted)}.benefits-board{display:grid;grid-template-columns:.8fr 1.2fr;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.benefit-services{padding:36px 8vw 36px 0;border-right:1px solid var(--border)}.benefit-services>p{font-weight:600;margin-bottom:15px}.benefit-services ul{display:flex;flex-wrap:wrap;gap:7px 22px;margin:0;padding:0;list-style:none}.benefit-services li{position:relative;padding-left:16px}.benefit-services li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--accent)}.route-list{margin:0;padding:0 0 0 42px;list-style:none}.route-list li{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:19px 0;border-bottom:1px solid var(--border)}.route-list li:last-child{border:0}.route-list strong{color:var(--primary);font-size:1.08rem}
.rooms{background:var(--surface)}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.room-card{display:flex;flex-direction:column;border:1px solid var(--border);background:var(--background)}.room-card picture{overflow:hidden}.room-card picture img{aspect-ratio:4/3;object-fit:cover}.room-body{display:flex;flex:1;flex-direction:column;padding:27px}.room-bed{margin-top:7px;font-weight:600;color:var(--primary)}.room-body ul{margin:18px 0 24px;padding-left:20px;color:var(--muted)}.room-body .text-link{margin-top:auto}.room-card--dark{background:var(--primary-dark);color:#fff;border-color:var(--primary-dark)}.room-card--dark .room-bed,.room-card--dark .room-body ul{color:#dce8cc}
.gallery{background:#edf1e8}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.gallery-heading h2{margin-top:14px}.gallery-controls{display:flex;align-items:center;gap:12px}.gallery-controls button{width:48px;border:1px solid var(--border);background:var(--surface);border-radius:50%;cursor:pointer}.gallery-controls span{min-width:52px;text-align:center;font-weight:600}.gallery-stage{position:relative;overflow:hidden;border-radius:14px;background:var(--primary-dark)}.gallery-stage img{aspect-ratio:16/9;object-fit:cover}.gallery-stage figcaption{position:absolute;left:18px;bottom:18px;padding:10px 16px;background:var(--background);border-radius:8px;font-family:"Fraunces",serif;font-size:1.35rem;font-weight:600}.gallery-thumbnails{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:12px}.gallery-thumbnails button{position:relative;padding:0;border:2px solid transparent;background:var(--surface);border-radius:10px;overflow:hidden;cursor:pointer}.gallery-thumbnails button[aria-pressed="true"]{border-color:var(--primary)}.gallery-thumbnails img{aspect-ratio:16/10;object-fit:cover;opacity:1}.gallery-thumbnails span{position:absolute;left:7px;bottom:7px;padding:4px 7px;background:rgba(24,40,25,.85);color:#fff;border-radius:5px;font-size:.72rem}
.locations{background:var(--background)}.location-tabs{display:flex;gap:8px;margin-bottom:16px}.location-tabs button{padding:10px 20px;border:1px solid var(--border);background:transparent;border-radius:8px;cursor:pointer;font-weight:600}.location-tabs button[aria-selected="true"]{background:var(--primary);color:#fff;border-color:var(--primary)}.location-panel{display:grid;grid-template-columns:.65fr .75fr 1.1fr;min-height:390px;background:var(--surface);border:1px solid var(--border)}.location-panel+ .location-panel{margin-top:24px}.js .location-panel[hidden]{display:none}.location-panel figure{overflow:hidden}.location-panel figure img{height:100%;object-fit:cover}.location-details{display:flex;flex-direction:column;justify-content:center;padding:30px}.location-details>p:first-child{font-size:.8rem;font-weight:600;color:var(--focus)}.location-details h3{margin:8px 0 18px}.location-details address{font-style:normal}.location-details>.button-row{margin-top:22px}.location-map iframe{display:block;width:100%;height:100%;min-height:390px;border:0}
.contact{background:var(--surface)}.contact-band{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;padding:58px;background:var(--primary);color:#fff}.contact-band h2{margin:14px 0 20px}.contact-band p{color:rgba(255,255,255,.75)}.contact-actions{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px}.contact-actions>a:not(.button){min-height:36px;font-size:1.05rem;text-underline-offset:4px}.contact-actions .button{margin-bottom:12px}.site-footer{padding:46px 0;background:var(--primary-dark);color:#fff}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr .8fr;gap:48px;align-items:start}.footer-grid>div{display:flex;flex-direction:column}.footer-grid strong{margin-bottom:8px}.footer-grid a,.footer-grid span{color:rgba(255,255,255,.72)}.footer-brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-weight:600}.footer-brand picture{width:58px;height:58px;overflow:hidden;border-radius:9px;background:#fff}.footer-brand img{height:100%;object-fit:contain}.whatsapp-widget{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:90}.whatsapp-toggle{display:grid;place-items:center;width:56px;min-width:56px;height:56px;padding:0;border:0;border-radius:50%;background:var(--accent);color:var(--primary-dark);box-shadow:0 10px 26px rgba(24,40,25,.22);cursor:pointer;font-size:1.6rem}.whatsapp-panel{position:absolute;right:0;bottom:68px;width:min(310px,calc(100vw - 36px));padding:20px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,18px,0) scale(.94);transform-origin:bottom right;transition:opacity 220ms ease,transform 360ms cubic-bezier(.16,1,.3,1),visibility 0s linear 360ms}.whatsapp-panel[aria-hidden="false"]{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}.whatsapp-panel p{margin:8px 0 16px;color:var(--muted);font-size:.9rem}
.contact-actions>a:not(.button){display:inline-flex;align-items:center;min-height:44px}
@media (prefers-reduced-motion:no-preference){.js [data-reveal]{opacity:.9;transform:translate3d(0,10px,0)}.js [data-reveal].is-visible{opacity:1;transform:none;transition:opacity .4s ease,transform .4s cubic-bezier(.2,.7,.2,1)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media (min-width:600px) and (max-width:1199px){.room-grid{grid-template-columns:repeat(2,1fr)}.room-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.room-card:last-child picture img{height:100%}.gallery-stage img{aspect-ratio:4/3}.location-panel{grid-template-columns:1fr 1fr}.location-map{grid-column:1/-1}.location-map iframe{min-height:320px}}
@media (max-width:1199px){:root{--header-h:70px}.site-header{padding:8px 0}.menu-toggle{display:block}.main-nav{position:fixed;inset:0 0 0 auto;width:min(360px,88vw);height:100dvh;flex-direction:column;align-items:stretch;justify-content:center;gap:4px;padding:80px 28px;background:var(--background);box-shadow:-24px 0 60px rgba(24,40,25,.18);transform:translateX(105%);transition:transform .25s ease}.main-nav.is-open{transform:none}.main-nav>a{padding:9px}.main-nav .button{margin-top:12px}.hero{min-height:auto;padding-top:118px}.hero-grid{grid-template-columns:1fr}.hero-copy,.hero-visual{grid-column:auto}.hero-copy{max-width:780px}.hero-visual img{height:min(62vw,560px)}.section{padding:76px 0}.hotel-grid{gap:7vw}.section-heading--split{gap:6vw}.location-panel{grid-template-columns:1fr 1fr}.location-map{grid-column:1/-1}.location-map iframe{min-height:320px}}
@media (min-width:1200px){h1{font-size:clamp(4.2rem,5.2vw,4.7rem)}.hero{min-height:720px;padding:104px 0 58px}.hero-visual img{height:540px}.main-nav{display:flex!important}.main-nav[aria-hidden="true"]{visibility:visible}.hero-copy{padding-top:18px}}
@media (max-width:767px){:root{--shell:min(calc(100% - 24px),1280px)}body{font-size:16px}h1{font-size:clamp(2.85rem,14.5vw,4.2rem)}h2{font-size:clamp(2.15rem,11vw,3.2rem)}.brand span{font-size:.9rem}.brand-logo{width:38px;height:38px}.hero{padding:104px 0 58px}.hero h1{margin:18px 0 22px}.hero-lead{font-size:1.02rem}.hero-visual{padding:12px 12px 12px 0}.hero-visual::before{left:18px}.hero-visual img{height:auto;aspect-ratio:4/3}.hero-visual figcaption{position:relative;right:auto;bottom:auto;max-width:none;border-radius:0;padding:14px 16px}.hero-proof{grid-template-columns:1fr;margin-top:26px}.hero-proof div{flex-direction:row;justify-content:space-between;border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.section{padding:64px 0}.hotel-grid,.section-heading--split,.benefits-board,.contact-band,.footer-grid{grid-template-columns:1fr}.hotel-grid{gap:52px}.hotel-photo figcaption{right:10px;bottom:-20px}.hotel-copy h2{margin-top:12px}.section-heading--split{align-items:start;gap:18px;margin-bottom:30px}.benefit-services{padding:28px 0;border-right:0;border-bottom:1px solid var(--border)}.route-list{padding:0}.route-list li{grid-template-columns:105px 1fr;gap:12px}.room-grid{grid-template-columns:1fr}.room-card:last-child{display:flex}.room-body{padding:23px}.gallery-heading{align-items:flex-start;flex-direction:column}.gallery-stage img{aspect-ratio:4/3}.gallery-thumbnails{display:flex;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none;scroll-snap-type:x proximity}.gallery-thumbnails::-webkit-scrollbar{display:none}.gallery-thumbnails button{flex:0 0 115px;scroll-snap-align:start}.location-tabs button{flex:1}.location-panel{grid-template-columns:1fr;min-height:0}.location-panel figure img{aspect-ratio:16/10}.location-details{padding:24px}.location-details .button{flex:1}.location-map{grid-column:auto}.location-map iframe{min-height:310px}.contact-band{gap:30px;padding:34px 24px}.footer-grid{gap:30px}.whatsapp-widget{right:12px}.button-row .button{width:100%}}
@media (max-width:380px){.brand span{max-width:135px;white-space:normal;line-height:1.15}.header-bar{padding-left:10px}.hero-proof dd{font-size:.9rem}.route-list li{grid-template-columns:92px 1fr}.location-details .button-row{flex-direction:column}.contact-actions a{overflow-wrap:anywhere}}
@media (max-width:767px){.hero-proof div{padding-right:70px}}
.hero .eyebrow{color:var(--accent)}
.whatsapp-toggle svg{width:26px;height:26px;fill:currentColor}
@media (max-width:1199px){html:not(.js) .menu-toggle,html:not(.js) .main-nav{display:none}}
@media (max-width:767px){.whatsapp-toggle{width:48px;min-width:48px;height:48px}.whatsapp-panel{bottom:60px}}
.location-map{position:relative;overflow:hidden;background:var(--primary-dark);color:#fff}
.map-fallback{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;padding:32px;background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff}
.map-fallback strong{font-family:"Fraunces",serif;font-size:1.7rem}.map-fallback span{max-width:28ch;color:rgba(255,255,255,.72)}
.location-map iframe{position:relative;z-index:2;background:#fff;transition:opacity .2s ease}
.js .location-map:not(.is-map-loaded) iframe{opacity:0}.js .location-map:not(.is-map-loaded) .map-fallback{z-index:3}.location-map.is-map-loaded .map-fallback{visibility:hidden}

/* Refined rhythm, typography, atmosphere and motion */
:root{--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:40px;--space-6:48px;--space-8:64px;--space-10:80px;--space-12:96px;--motion-enter:920ms;--motion-fast:220ms;--motion-header:520ms;--motion-ease:cubic-bezier(.16,1,.3,1)}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}.ui-icon{display:inline-block;flex:0 0 auto;width:1.2em;height:1.2em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
body{background-color:var(--background);background-image:linear-gradient(rgba(39,66,35,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(39,66,35,.022) 1px,transparent 1px);background-size:32px 32px}
.site-header{padding-top:var(--space-2);transition:padding var(--motion-header) var(--motion-ease)}.header-bar{width:min(calc(100% - 32px),1280px);min-height:66px;padding:var(--space-1) 12px var(--space-1) var(--space-2);border-radius:30px;background:rgba(244,240,227,.93);border-color:rgba(255,255,255,.66);box-shadow:0 14px 38px rgba(24,40,25,.14);transition:width var(--motion-header) var(--motion-ease),min-height var(--motion-header) var(--motion-ease),padding var(--motion-header) var(--motion-ease),background-color var(--motion-header) ease,box-shadow var(--motion-header) ease}
.site-header.is-scrolled{padding-top:var(--space-1)}.site-header.is-scrolled .header-bar{width:min(calc(100% - 32px),1120px);min-height:58px;padding-block:6px;border-radius:30px;background:rgba(244,240,227,.82);box-shadow:0 12px 32px rgba(24,40,25,.16)}
.main-nav{gap:var(--space-3)}.main-nav>a:not(.button),.brand,.button,.section-index,.eyebrow,.hero-visual figcaption,.hotel-photo figcaption{font-family:"IBM Plex Sans",sans-serif}.section{position:relative;isolation:isolate;padding:var(--space-12) 0;overflow:hidden}.section>.shell,.section>div{position:relative;z-index:2}
h2{font-size:clamp(2.75rem,4vw,3.75rem);line-height:1.02;letter-spacing:-.032em}.section-heading h2{max-width:760px;margin-top:var(--space-2)}.section-heading--split{gap:var(--space-10);margin-bottom:var(--space-6)}.section-heading>p{font-size:1rem;line-height:1.65}.section-index,.eyebrow{font-size:.78rem;letter-spacing:.07em}.hero{position:relative;padding-top:140px;background-color:var(--primary);background-image:radial-gradient(circle at 82% 18%,rgba(145,195,74,.18),transparent 26%),linear-gradient(115deg,transparent 0 58%,rgba(255,255,255,.045) 58% 58.25%,transparent 58.25% 68%,rgba(145,195,74,.08) 68% 68.2%,transparent 68.2%)}
.hero::before{content:"";position:absolute;right:-110px;top:82px;width:440px;height:440px;border:1px solid rgba(145,195,74,.34);border-radius:50%;box-shadow:0 0 0 46px rgba(145,195,74,.045),0 0 0 96px rgba(145,195,74,.03)}.hero::after{content:"";position:absolute;left:0;bottom:28px;width:34%;height:1px;background:linear-gradient(90deg,var(--accent),transparent)}.hero-grid{position:relative;z-index:2;gap:var(--space-5)}.hero h1{margin:var(--space-3) 0}.hero .button-row{margin-top:var(--space-4)}.hero-proof{margin-top:var(--space-4)}.hero-visual figcaption{font-size:.98rem;line-height:1.45}.hero-visual figcaption strong{font-family:inherit;font-weight:600}.hero-visual figcaption span{margin-top:3px}
.hotel::before{content:"";position:absolute;left:-150px;top:80px;width:420px;height:420px;border:1px solid rgba(39,66,35,.1);border-radius:50%;box-shadow:0 0 0 58px rgba(145,195,74,.05)}.hotel-grid{gap:clamp(64px,8vw,120px)}.hotel-copy h2{margin:var(--space-2) 0 var(--space-4)}
.benefits{background-color:var(--background);background-image:linear-gradient(120deg,rgba(145,195,74,.085),transparent 30%),repeating-linear-gradient(90deg,transparent 0 95px,rgba(39,66,35,.035) 95px 96px)}.benefits::after{content:"";position:absolute;right:7%;top:72px;width:120px;height:120px;border:1px solid rgba(39,66,35,.18);transform:rotate(45deg)}
.benefit-services ul{gap:var(--space-2) var(--space-3)}.benefit-services li{display:inline-flex;align-items:center;gap:8px;padding-left:0}.benefit-services li::before{display:none}.benefit-services .ui-icon{color:var(--primary);font-size:1.15rem}.route-list li{grid-template-columns:28px 130px 1fr;align-items:center;gap:var(--space-2)}.route-list .ui-icon{color:var(--accent);font-size:1.3rem}
.rooms{background-color:var(--surface);background-image:radial-gradient(circle at 94% 8%,rgba(145,195,74,.12),transparent 20%)}.room-grid{gap:var(--space-3)}.room-body{padding:var(--space-4)}.room-card h3,.location-details h3{display:flex;align-items:center;gap:10px;font-family:"IBM Plex Sans",sans-serif;font-size:1.55rem}.room-card h3 .ui-icon{color:var(--accent)}.text-link{gap:8px}.text-link .ui-icon{width:1em;transition:transform var(--motion-fast) ease}.text-link:hover .ui-icon{transform:translateX(5px)}
.gallery{background-color:#edf1e8;background-image:radial-gradient(circle at 88% 12%,rgba(145,195,74,.24),transparent 24%),linear-gradient(135deg,transparent 0 76%,rgba(39,66,35,.055) 76% 76.2%,transparent 76.2%)}.gallery-stage figcaption{font-family:"IBM Plex Sans",sans-serif;font-size:1rem}.gallery-thumbnails button{transition:transform var(--motion-fast) ease,border-color var(--motion-fast) ease}.gallery-thumbnails button:hover{transform:translateY(-5px)}
.locations{background-color:var(--background);background-image:linear-gradient(35deg,rgba(39,66,35,.04) 12%,transparent 12.2% 87%,rgba(145,195,74,.08) 87.2%)}.location-details h3 .ui-icon{color:var(--accent)}.location-details .button{gap:8px}.contact{background:linear-gradient(90deg,var(--surface),#f0f4ea)}.contact-band{position:relative;overflow:hidden}.contact-band::after{content:"";position:absolute;right:-70px;bottom:-95px;width:260px;height:260px;border:1px solid rgba(145,195,74,.34);border-radius:50%;box-shadow:0 0 0 42px rgba(145,195,74,.05)}.contact-band>div{position:relative;z-index:1}.contact-actions>a:not(.button){gap:10px}.contact-actions .ui-icon{color:var(--accent)}
@media (prefers-reduced-motion:no-preference){.js [data-reveal]{opacity:.04;will-change:transform,opacity}.js [data-reveal].reveal-up{transform:translate3d(0,88px,0)}.js [data-reveal].reveal-left{transform:translate3d(-80px,28px,0)}.js [data-reveal].reveal-right{transform:translate3d(80px,28px,0)}.js [data-reveal] picture img{transform:scale(1.085);transition:transform 1200ms var(--motion-ease)}.js [data-reveal].is-visible{opacity:1;transform:none;will-change:auto;transition:opacity var(--motion-enter) ease,transform var(--motion-enter) var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}.js [data-reveal].is-visible picture img{transform:scale(1)}.js .section-heading::after,.js .gallery-heading::after{content:"";display:block;grid-column:1/-1;width:100%;height:2px;margin-top:var(--space-3);background:linear-gradient(90deg,var(--accent),rgba(39,66,35,.12));transform:scaleX(0);transform-origin:left;transition:transform 900ms var(--motion-ease) 180ms}.js .section-heading.is-visible::after,.js .gallery-heading.is-visible::after{transform:scaleX(1)}.room-card:nth-child(2){--reveal-delay:110ms!important}.room-card:nth-child(3){--reveal-delay:220ms!important}}
@media (max-width:1199px){.section{padding:var(--space-10) 0}.site-header.is-scrolled .header-bar{width:min(calc(100% - 96px),760px)}.main-nav{gap:var(--space-1)}.hero{padding-top:128px}.hero-grid{gap:var(--space-6)}}
@media (max-width:767px){:root{--space-12:72px;--space-10:64px}.header-bar{width:min(calc(100% - 24px),720px);border-radius:24px}.site-header.is-scrolled .header-bar{width:min(calc(100% - 64px),720px);border-radius:24px}.section{padding:var(--space-10) 0}.section-heading--split{gap:var(--space-2);margin-bottom:var(--space-4)}h2{font-size:clamp(2.25rem,10.5vw,2.8rem)}.hero{padding-top:116px}.hero::before{right:-190px;top:110px}.route-list li{grid-template-columns:24px 94px 1fr;gap:10px}.room-body{padding:var(--space-3)}.contact-band{gap:var(--space-4)}}
@media (prefers-reduced-motion:no-preference){.js [data-reveal].reveal-up{transform:translate3d(0,88px,0)}.js [data-reveal].reveal-left{transform:translate3d(-80px,28px,0)}.js [data-reveal].reveal-right{transform:translate3d(80px,28px,0)}.js [data-reveal].is-visible{transform:none}}

/* Keep the primary links centered on the header axis while the brand and CTA anchor its edges. */
.nav-links{display:flex;align-items:center;gap:var(--space-3)}
.nav-links>a{font-family:"IBM Plex Sans",sans-serif;font-size:.9rem;font-weight:600;text-decoration:none}
.nav-links>a:hover{text-decoration:underline;text-underline-offset:5px}
@media (min-width:1200px){.header-bar{position:relative}.main-nav{margin-left:auto}.nav-links{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}
@media (max-width:1199px){.nav-links{flex-direction:column;align-items:stretch;gap:var(--space-1)}.nav-links>a{padding:9px}}

/* Refined header alignment and glass treatment. */
.nav-links>a{display:inline-flex;align-items:center;justify-content:center;line-height:1.1}
.button--nav{min-height:46px;padding:10px 22px;border-radius:999px;border-color:rgba(255,255,255,.2);background:linear-gradient(135deg,var(--primary),#355d2f);box-shadow:0 7px 18px rgba(24,40,25,.18)}
.button--nav:hover{box-shadow:0 10px 24px rgba(24,40,25,.24)}
.brand{gap:0}.brand-logo{width:132px;height:56px;flex:0 0 132px;overflow:hidden;border-radius:0;background:transparent;box-shadow:none;transition:width var(--motion-header) var(--motion-ease),height var(--motion-header) var(--motion-ease),flex-basis var(--motion-header) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.brand-logo img{width:100%;height:100%;object-fit:contain;object-position:center}.site-header.is-scrolled .brand-logo{width:106px;height:44px;flex-basis:106px}
.site-header.is-scrolled .header-bar{background-color:rgba(244,240,227,.52);background-image:linear-gradient(105deg,rgba(255,255,255,.36),rgba(244,240,227,.12));border-color:rgba(255,255,255,.72);box-shadow:0 10px 28px rgba(24,40,25,.11)}
@media (max-width:767px){.brand-logo{width:118px;height:50px;flex-basis:118px}.site-header.is-scrolled .brand-logo{width:96px;height:40px;flex-basis:96px}.button--nav{border-radius:999px}}

/* Resilient controls and purposeful pointer feedback. */
html:not(.js) .route-list li{grid-template-columns:130px minmax(0,1fr)}
.location-panel[hidden]{display:none}
.whatsapp-fallback{display:grid;place-items:center;width:56px;min-width:56px;height:56px;border-radius:50%;background:var(--accent);color:var(--primary-dark);box-shadow:0 10px 26px rgba(24,40,25,.22);text-decoration:none}
.whatsapp-fallback svg{width:26px;height:26px;fill:currentColor}
.whatsapp-toggle{display:none}
.js .whatsapp-toggle{display:grid}
.js .whatsapp-fallback{display:none}
.room-card,.gallery-controls button,.location-tabs button,.brand-logo{transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) ease,border-color var(--motion-fast) ease,background-color var(--motion-fast) ease}
.room-card picture img,.gallery-thumbnails img{transition:transform 620ms var(--motion-ease)}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .js .room-card.is-visible:hover{transform:translateY(-10px);border-color:rgba(39,66,35,.38);box-shadow:0 22px 44px rgba(24,40,25,.15)}
  .room-card:hover picture img{transform:scale(1.045)}
  .gallery-controls button:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:0 9px 20px rgba(24,40,25,.14)}
  .gallery-thumbnails button:hover{box-shadow:0 12px 24px rgba(24,40,25,.14)}
  .gallery-thumbnails button:hover img{transform:scale(1.055)}
  .location-tabs button:hover:not([aria-selected="true"]){transform:translateY(-2px);border-color:var(--primary);background:rgba(145,195,74,.12)}
  .brand:hover .brand-logo{transform:translateY(-2px) scale(1.025);box-shadow:0 8px 18px rgba(24,40,25,.13)}
  .contact-actions>a:not(.button):hover{transform:translateX(5px);color:var(--accent)}
}
@media (max-width:767px){html:not(.js) .route-list li{grid-template-columns:94px minmax(0,1fr)}.whatsapp-fallback{width:48px;min-width:48px;height:48px}}

/* WhatsApp contact: compact, recognizable and deliberately animated. */
.whatsapp-widget{isolation:isolate}
.whatsapp-toggle,.whatsapp-fallback{position:relative;border:2px solid rgba(255,255,255,.82);background:linear-gradient(145deg,#a7d85d 0%,var(--accent) 48%,#6da62d 100%);color:var(--primary-dark);box-shadow:0 12px 26px rgba(24,40,25,.25),0 3px 0 rgba(39,66,35,.2),inset 0 1px 0 rgba(255,255,255,.7)}
.whatsapp-toggle::before,.whatsapp-fallback::before{content:"";position:absolute;inset:-8px;z-index:-1;border:1px solid rgba(145,195,74,.65);border-radius:50%;animation:whatsapp-presence 2.8s cubic-bezier(.16,1,.3,1) infinite}
.whatsapp-toggle svg,.whatsapp-fallback svg{position:relative;z-index:1;filter:drop-shadow(0 1px 0 rgba(255,255,255,.45));transition:transform var(--motion-fast) var(--motion-ease)}
.whatsapp-toggle{transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) ease,background-color var(--motion-fast) ease}
.whatsapp-toggle-label{position:absolute;right:calc(100% + 12px);top:50%;min-width:auto;min-height:auto;padding:7px 11px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:var(--primary-dark);color:#fff;font-size:.78rem;font-weight:600;line-height:1;white-space:nowrap;box-shadow:0 8px 20px rgba(24,40,25,.18);opacity:0;visibility:hidden;transform:translate3d(8px,-50%,0);transition:opacity 180ms ease,transform 260ms var(--motion-ease),visibility 0s linear 260ms}
.whatsapp-toggle[aria-expanded="true"]{transform:scale(.94);box-shadow:0 8px 18px rgba(24,40,25,.22),inset 0 2px 4px rgba(24,40,25,.12)}
.whatsapp-toggle[aria-expanded="true"]::before{animation:none;opacity:0}
.whatsapp-toggle[aria-expanded="true"] svg{transform:rotate(-9deg) scale(.92)}
.whatsapp-panel{overflow:hidden;padding:23px;border-color:rgba(39,66,35,.18);border-radius:20px;background:linear-gradient(145deg,#fff 0%,#fbfcf7 68%,#eef5e6 100%);box-shadow:0 24px 58px rgba(24,40,25,.2),0 8px 18px rgba(24,40,25,.09)}
.whatsapp-panel::before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:4px;background:linear-gradient(90deg,var(--accent),var(--whatsapp))}
.whatsapp-panel::after{content:"";position:absolute;right:-58px;bottom:-76px;width:160px;height:160px;border:1px solid rgba(145,195,74,.25);border-radius:50%;box-shadow:0 0 0 26px rgba(145,195,74,.045);pointer-events:none}
.whatsapp-panel>*{position:relative;z-index:1}
.whatsapp-panel>strong{display:block;margin-top:7px;font-family:"Fraunces",serif;font-size:1.42rem;line-height:1.05;color:var(--primary-dark)}
.whatsapp-kicker{display:flex;align-items:center;gap:7px;color:var(--primary);font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.whatsapp-kicker>span{width:8px;min-width:8px;height:8px;min-height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(145,195,74,.16)}
.whatsapp-panel .button--whatsapp{justify-content:space-between;gap:12px;border-radius:11px;background:linear-gradient(135deg,var(--whatsapp),#166834);box-shadow:0 9px 18px rgba(30,122,66,.2)}
.whatsapp-panel .button--whatsapp>span{font-size:1.05rem;transition:transform var(--motion-fast) var(--motion-ease)}
@keyframes whatsapp-presence{0%,52%,100%{opacity:0;transform:scale(.88)}18%{opacity:.52}44%{opacity:0;transform:scale(1.32)}}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .whatsapp-toggle:hover{transform:translateY(-5px) scale(1.04);box-shadow:0 18px 34px rgba(24,40,25,.3),0 4px 0 rgba(39,66,35,.18),inset 0 1px 0 rgba(255,255,255,.7)}
  .whatsapp-toggle:hover svg{transform:rotate(-8deg) scale(1.08)}
  .whatsapp-toggle:hover .whatsapp-toggle-label,.whatsapp-toggle:focus-visible .whatsapp-toggle-label{opacity:1;visibility:visible;transform:translate3d(0,-50%,0);transition-delay:0s}
  .whatsapp-panel .button--whatsapp:hover>span{transform:translate(3px,-3px)}
}
@media (prefers-reduced-motion:reduce){.whatsapp-toggle::before,.whatsapp-fallback::before{animation:none}.whatsapp-toggle-label{display:none}}

/* Brand manual: LOGO.pdf */
:root{--primary:#1f6234;--primary-dark:#173f24;--secondary:#759b39;--accent:#95c945;--text:#231f20;--whatsapp:#1f6234;--focus:#759b39;--font-display:"Ballet Harmony","Lucida Calligraphy",cursive;--font-body:"IBM Plex Sans",sans-serif}
body{font-family:var(--font-body)}
h1,h2{font-family:var(--font-display);font-weight:400;line-height:.92;letter-spacing:0}
.hero h1{font-size:clamp(3.15rem,5.4vw,5.2rem)}
.section-heading h2,.hotel-copy h2,.gallery-heading h2,.purpose-heading h2{font-size:clamp(3.35rem,5vw,5rem);line-height:.9}
.button--nav,.button--primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark))}
.button--accent{background:var(--accent)}
.scroll-progress{background:linear-gradient(90deg,var(--secondary),var(--accent))}
.hero{background-color:var(--primary);background-image:radial-gradient(circle at 82% 18%,rgba(149,201,69,.2),transparent 26%),linear-gradient(115deg,transparent 0 58%,rgba(255,255,255,.045) 58% 58.25%,transparent 58.25% 68%,rgba(117,155,57,.13) 68% 68.2%,transparent 68.2%)}
.hero::before{border-color:rgba(149,201,69,.42);box-shadow:0 0 0 46px rgba(149,201,69,.05),0 0 0 96px rgba(117,155,57,.035)}
.room-card--dark,.site-footer{background:var(--primary-dark)}
.gallery{background-color:#f1f5ea;background-image:radial-gradient(circle at 88% 12%,rgba(149,201,69,.24),transparent 24%),linear-gradient(135deg,transparent 0 76%,rgba(31,98,52,.065) 76% 76.2%,transparent 76.2%)}
.locations{background-image:linear-gradient(35deg,rgba(31,98,52,.045) 12%,transparent 12.2% 87%,rgba(149,201,69,.1) 87.2%)}
.purpose{background-color:var(--primary-dark);color:#fff;background-image:radial-gradient(circle at 8% 20%,rgba(149,201,69,.18),transparent 25%),linear-gradient(125deg,transparent 0 70%,rgba(117,155,57,.16) 70% 70.2%,transparent 70.2%)}
.purpose-heading{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:var(--space-8);margin-bottom:var(--space-6)}
.purpose-heading .section-index{grid-column:1/-1;color:var(--accent)}
.purpose-heading h2{max-width:760px}
.purpose-heading>p:last-child{max-width:340px;color:rgba(255,255,255,.72)}
.purpose-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:var(--space-3);align-items:stretch}
.purpose-card{position:relative;overflow:hidden;padding:clamp(30px,4vw,54px);border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.055)}
.purpose-card--mission{border-top:4px solid var(--accent)}
.purpose-card--vision{background:var(--accent);color:var(--primary-dark);border-color:var(--accent)}
.purpose-card .section-index{margin-bottom:var(--space-2);color:var(--accent)}
.purpose-card--vision .section-index{color:var(--primary)}
.purpose-card h3{position:relative;z-index:1;max-width:19ch;margin-bottom:var(--space-3);font-size:clamp(1.6rem,2.2vw,2.2rem)}
.purpose-card>p:not(.section-index){position:relative;z-index:1;max-width:70ch;color:rgba(255,255,255,.78)}
.purpose-card>p+p{margin-top:var(--space-2)}
.purpose-card--vision>p:not(.section-index){color:rgba(23,63,36,.86)}
.purpose-number{position:absolute;right:20px;top:8px;color:rgba(255,255,255,.07);font-family:var(--font-display);font-size:8rem;line-height:1}
.purpose-card--vision .purpose-number{color:rgba(31,98,52,.12)}
.location-phone{display:inline-flex;align-items:center;width:max-content;min-height:44px;margin-top:8px;color:var(--primary);font-weight:600;text-underline-offset:4px}
.contact-actions>a:not(.button){transition:transform var(--motion-fast) var(--motion-ease),color var(--motion-fast) ease}
.whatsapp-toggle,.whatsapp-fallback{background:linear-gradient(145deg,var(--accent),var(--secondary))}
.whatsapp-panel .button--whatsapp{background:linear-gradient(135deg,var(--primary),var(--primary-dark))}
@media (max-width:767px){
  .hero h1{font-size:clamp(2.6rem,12.5vw,3.4rem)}
  .section-heading h2,.hotel-copy h2,.gallery-heading h2,.purpose-heading h2{font-size:clamp(2.9rem,14vw,4rem)}
  .purpose-heading,.purpose-grid{grid-template-columns:1fr}
  .purpose-heading{gap:var(--space-2);margin-bottom:var(--space-4)}
  .purpose-card{padding:var(--space-4) var(--space-3)}
}

/* Verified social profiles. */
.footer-meta{padding-inline-end:76px}
.footer-social{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;margin-top:18px}
.footer-social a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 13px;border:1px solid rgba(255,255,255,.24);border-radius:999px;color:#fff;text-decoration:none;font-size:.9rem;font-weight:600;transition:transform var(--motion-fast) var(--motion-ease),color var(--motion-fast) ease,background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}
.footer-social a span{color:inherit}
.footer-social svg{width:20px;height:20px;flex:0 0 20px;fill:currentColor;stroke:none}
.footer-social a[href*="instagram"] svg{fill:none;stroke:currentColor;stroke-width:1.8}
.footer-social .social-icon-dot{fill:currentColor;stroke:none}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .footer-social a:hover{transform:translateY(-4px) scale(1.025);border-color:var(--accent);background:var(--accent);color:var(--primary-dark);box-shadow:0 10px 24px rgba(0,0,0,.18)}
}

/* Organic closing flow, FAQ and privacy controls. */
.travel-note{margin-top:9px;color:rgba(255,255,255,.58);font-size:.72rem}
.faq{position:relative;background:var(--surface);overflow:hidden}
.faq::before{content:"";position:absolute;right:-110px;top:48px;width:340px;height:340px;border:1px solid rgba(117,155,57,.2);border-radius:50%;box-shadow:0 0 0 46px rgba(149,201,69,.05);pointer-events:none}
.faq-heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.55fr);align-items:end;gap:var(--space-8);margin-bottom:var(--space-5)}
.faq-heading .section-index{grid-column:1/-1}
.faq-heading h2{max-width:770px;font-size:clamp(3.35rem,5vw,5rem);line-height:.9}
.faq-heading>p:last-child{max-width:390px;color:var(--muted)}
.faq-list{position:relative;z-index:1;border-top:1px solid var(--border)}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item summary{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:var(--space-3);min-height:78px;padding:12px 0;font-size:clamp(1.08rem,1.8vw,1.35rem);font-weight:600;cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary span{display:grid;place-items:center;width:38px;min-width:38px;height:38px;min-height:38px;border:1px solid rgba(31,98,52,.32);border-radius:50%;color:var(--primary);font-size:1.45rem;font-weight:400;transition:transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,color var(--motion-fast) ease}
.faq-item[open] summary span{transform:rotate(45deg);background:var(--primary);color:#fff}
.faq-item>div{max-width:760px;padding:0 64px var(--space-4) 0;color:var(--muted)}
.faq-item a{color:var(--primary);font-weight:600;text-underline-offset:4px}

.contact{position:relative;isolation:isolate;overflow:hidden;padding:clamp(150px,13vw,210px) 0 clamp(86px,9vw,126px);background:linear-gradient(132deg,var(--primary) 0%,#236b39 58%,var(--secondary) 150%);color:#fff}
.contact::before{content:"";position:absolute;z-index:0;left:-8%;right:-8%;top:-72px;height:142px;background:var(--surface);border-radius:0 0 52% 48% / 0 0 86% 74%;transform:rotate(-1.8deg)}
.contact::after{content:"";position:absolute;z-index:-1;inset:auto -14vw -36vw auto;width:62vw;height:62vw;border:1px solid rgba(149,201,69,.48);border-radius:50%;box-shadow:0 0 0 5vw rgba(149,201,69,.045),0 0 0 12vw rgba(117,155,57,.04)}
.contact>.contact-orbit{position:absolute;z-index:-1;left:-15vw;top:18%;width:48vw;height:48vw;border:1px solid rgba(255,255,255,.09);border-radius:46% 54% 62% 38%;transform:rotate(22deg);animation:closing-orbit 18s ease-in-out infinite alternate}
.contact-orbit::before,.contact-orbit::after{content:"";position:absolute;border:1px solid rgba(149,201,69,.2);border-radius:50%}
.contact-orbit::before{inset:10% -16% -8% 14%}.contact-orbit::after{inset:28% 8% -26% 28%}
.contact-band{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(400px,.95fr);gap:clamp(56px,9vw,132px);align-items:end;padding:0;background:transparent;color:inherit}
.contact-copy{max-width:720px}
.contact-band h2{max-width:9.2ch;margin:var(--space-2) 0 var(--space-3);font-size:clamp(4rem,7vw,7rem);line-height:.82}
.contact-band p{max-width:620px;color:rgba(255,255,255,.78)}
.contact-band .section-index{color:var(--accent)}
.contact-privacy{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid rgba(255,255,255,.19);font-size:.84rem}
.inline-legal-link{display:inline-flex;min-width:0;min-height:44px;align-items:center;padding:0;border:0;background:transparent;color:var(--primary);font:inherit;font-weight:600;text-align:left;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.inline-legal-link--light,.contact-privacy .inline-legal-link{color:#fff}
.contact-actions{display:block}
.contact-whatsapp{justify-content:space-between;width:100%;margin:0 0 var(--space-4);padding:16px 20px;border-radius:999px;font-size:1rem}
.contact-whatsapp span{font-size:1.1rem;transition:transform var(--motion-fast) var(--motion-ease)}
.contact-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.2)}
.contact-directory>a{display:flex;min-width:0;min-height:84px;flex-direction:column;justify-content:center;gap:2px;padding:14px 16px 14px 0;border-bottom:1px solid rgba(255,255,255,.2);color:#fff;text-decoration:none;transition:padding-left var(--motion-fast) var(--motion-ease),color var(--motion-fast) ease,background-color var(--motion-fast) ease}
.contact-directory>a:nth-child(odd){border-right:1px solid rgba(255,255,255,.2)}
.contact-directory>a:nth-child(even){padding-left:16px}
.contact-directory>a span{overflow-wrap:anywhere;color:rgba(255,255,255,.72);font-size:.86rem}
.contact-directory .ui-icon{margin-bottom:5px;color:var(--accent)}
@keyframes closing-orbit{to{transform:rotate(31deg) translate3d(3vw,-2vw,0)}}

.site-footer{position:relative;overflow:hidden;padding:0 0 56px;background:linear-gradient(180deg,var(--primary) 0%,var(--primary-dark) 31%,#12331e 100%);color:#fff}
.site-footer::before{content:"";position:absolute;left:47%;top:-190px;width:520px;height:520px;border:1px solid rgba(149,201,69,.13);border-radius:50%;pointer-events:none}
.footer-curve{height:clamp(54px,7vw,92px);border-top:1px solid rgba(149,201,69,.38);border-radius:55% 45% 0 0 / 85% 62% 0 0;transform:scaleX(1.12)}
.footer-grid{position:relative;display:grid;grid-template-columns:1.15fr 1.15fr .9fr 1fr;gap:clamp(34px,5vw,72px);align-items:start;padding-top:var(--space-5);border-top:1px solid rgba(255,255,255,.15)}
.footer-grid>div,.footer-legal{display:flex;min-width:0;flex-direction:column;align-items:flex-start}
.footer-grid strong{margin-bottom:10px;color:#fff}
.footer-grid a,.footer-grid span,.footer-grid address,.footer-legal button{color:rgba(255,255,255,.72)}
.footer-grid a,.footer-legal button{text-underline-offset:4px}
.footer-identity p{margin-top:var(--space-3);font-size:.86rem;color:rgba(255,255,255,.67)}
.footer-identity p strong{display:block;margin-bottom:4px}
.footer-brand{display:block;min-width:0;text-decoration:none}
.footer-brand picture{width:min(210px,100%);height:auto;overflow:visible;border-radius:0;background:transparent}
.footer-brand img{height:auto;object-fit:contain;filter:brightness(0) invert(1);opacity:.94}
.footer-locations address{margin:0 0 4px;font-style:normal;color:rgba(255,255,255,.7)}
.footer-locations address a{display:inline-flex;align-items:center;min-height:44px}
.footer-locations address+ a{display:inline-flex;align-items:center;min-height:44px;margin-bottom:var(--space-3);font-weight:600}
.footer-legal a,.footer-legal button{display:flex;align-items:center;min-height:44px;padding:4px 0;border:0;background:transparent;text-align:left;font:inherit;cursor:pointer}
.footer-meta{padding-inline-end:78px}
.footer-social{margin:var(--space-3) 0}
.footer-social a{color:#fff}
.back-to-top{display:flex;align-items:center;justify-content:space-between;width:100%;margin:4px 0 12px;padding:8px 0;border-top:1px solid rgba(255,255,255,.16);text-decoration:none;font-weight:600}
.back-to-top span{font-size:1.1rem}

.privacy-banner[hidden]{display:none!important}
.privacy-banner{position:fixed;z-index:220;left:50%;bottom:max(16px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(24px,5vw,64px);width:min(calc(100% - 32px),1180px);padding:24px 26px;border:1px solid rgba(149,201,69,.38);border-radius:24px;background:linear-gradient(135deg,#fff 0%,#f4f8ee 100%);color:var(--text);box-shadow:0 30px 80px rgba(23,63,36,.28);transform:translateX(-50%)}
.privacy-banner h2{margin:4px 0 7px;font-size:clamp(2rem,3vw,3rem);line-height:.9;color:var(--primary-dark)}
.privacy-banner p{max-width:760px;color:var(--muted);font-size:.92rem}
.privacy-banner a,.privacy-banner .inline-legal-link{color:var(--primary);font-weight:600;text-underline-offset:4px}
.privacy-kicker{color:var(--secondary)!important;font-size:.76rem!important;font-weight:600;letter-spacing:.05em}
.privacy-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.privacy-actions .button{white-space:nowrap}
.privacy-actions .button--outline-light{border-color:rgba(31,98,52,.42);background:#fff;color:var(--primary-dark)}
body.privacy-choice-open .whatsapp-widget{opacity:0;visibility:hidden;pointer-events:none}
.whatsapp-widget{transition:opacity var(--motion-fast) ease,visibility var(--motion-fast) ease}
.map-fallback{background:radial-gradient(circle at 86% 14%,rgba(149,201,69,.22),transparent 27%),linear-gradient(145deg,#eef3e8,#dce8cc)}
.map-fallback-mark{display:grid;place-items:center;width:54px;min-width:54px;height:54px;min-height:54px;margin-bottom:4px;border-radius:50%;background:var(--primary);color:#fff}
.map-fallback-mark svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.6}
.location-map.is-map-loaded .map-fallback{visibility:hidden;opacity:0}

/* Single-page legal modal. */
body.legal-modal-open{overflow:hidden}
.legal-modal{width:min(calc(100% - 32px),1120px);max-width:none;height:min(88dvh,820px);max-height:none;margin:auto;padding:0;border:0;border-radius:30px;background:#f7f8f2;color:var(--text);box-shadow:0 36px 110px rgba(9,34,18,.46);overflow:hidden}
.legal-modal[open]{animation:legal-modal-in 360ms var(--motion-ease)}
.legal-modal::backdrop{background:rgba(10,34,18,.72);backdrop-filter:blur(7px)}
.legal-modal-shell{display:grid;height:100%;grid-template-rows:auto minmax(0,1fr)}
.legal-modal-header{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-5);padding:30px 84px 26px 34px;background:radial-gradient(circle at 92% 10%,rgba(149,201,69,.24),transparent 31%),linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff}
.legal-modal-header .section-index{color:var(--accent)}
.legal-modal-header h2{margin-top:6px;font-size:clamp(2.8rem,5vw,5rem);line-height:.85}
.legal-updated{flex:0 0 auto;color:rgba(255,255,255,.7);font-size:.78rem}
.legal-modal-close{position:absolute;top:20px;right:22px;display:grid;width:48px;min-width:48px;height:48px;min-height:48px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;transition:transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease}
.legal-modal-close span{font-size:2rem;font-weight:300;line-height:1}
.legal-modal-body{display:grid;min-height:0;grid-template-columns:230px minmax(0,1fr)}
.legal-modal-tabs{display:flex;min-height:0;flex-direction:column;gap:4px;padding:22px 14px;background:#e9efe2;overflow-y:auto}
.legal-modal-tabs button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:50px;padding:10px 14px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-weight:600;text-align:left;cursor:pointer}
.legal-modal-tabs button[aria-selected="true"]{background:var(--primary);color:#fff;box-shadow:0 8px 22px rgba(23,63,36,.16)}
.legal-modal-content{min-height:0;padding:clamp(26px,4vw,48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-color:var(--secondary) transparent}
.legal-modal-content [hidden]{display:none!important}
.legal-modal-content article{max-width:720px;margin-inline:auto}
.legal-modal-content h3{margin-bottom:8px;font-family:var(--font-display);font-size:clamp(3rem,5vw,5rem);font-weight:400;line-height:.88;color:var(--primary-dark)}
.legal-intro{margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border);color:var(--muted);font-size:1.05rem}
.legal-modal-content section+section{margin-top:var(--space-5)}
.legal-modal-content h4{margin:0 0 var(--space-2);font-size:1.25rem;line-height:1.25;color:var(--primary)}
.legal-modal-content p,.legal-modal-content li{color:#465249}
.legal-modal-content p+p{margin-top:var(--space-2)}
.legal-modal-content ul,.legal-modal-content ol{padding-left:22px}
.legal-modal-content li+li{margin-top:8px}
.legal-modal-content a{color:var(--primary);font-weight:600;text-underline-offset:4px}
.legal-callout{margin-top:var(--space-3);padding:var(--space-3);border-left:4px solid var(--accent);background:#eef4e6}
@keyframes legal-modal-in{from{opacity:0;transform:translate3d(0,24px,0) scale(.97)}to{opacity:1;transform:none}}

@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .faq-item summary:hover span{transform:rotate(12deg);background:var(--accent);border-color:var(--accent)}
  .faq-item[open] summary:hover span{transform:rotate(45deg)}
  .contact-directory>a:hover{padding-left:10px;background:rgba(255,255,255,.045);color:var(--accent)}
  .contact-directory>a:nth-child(even):hover{padding-left:26px}
  .contact-whatsapp:hover span{transform:translate(3px,-3px)}
  .footer-legal a:hover,.footer-legal button:hover,.footer-locations a:hover,.footer-meta>a:hover,.back-to-top:hover{color:var(--accent)}
  .legal-modal-close:hover{transform:rotate(8deg);background:rgba(255,255,255,.18)}
  .legal-modal-tabs button:not([aria-selected="true"]):hover{background:rgba(31,98,52,.08);color:var(--primary)}
}

@media (max-width:1000px){
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-meta{padding-inline-end:82px}
  .legal-modal-body{grid-template-columns:200px minmax(0,1fr)}
}
@media (max-width:767px){
  .faq-heading,.contact-band{grid-template-columns:1fr}
  .faq-heading{gap:var(--space-2)}
  .faq-heading h2{font-size:clamp(2.9rem,14vw,4rem)}
  .faq-item summary{min-height:72px;font-size:1rem}
  .faq-item>div{padding-right:48px}
  .contact{padding-top:130px}
  .contact::before{top:-62px;height:112px}
  .contact-band{gap:var(--space-5)}
  .contact-band h2{font-size:clamp(3.5rem,17vw,5.2rem)}
  .contact-directory{grid-template-columns:1fr}
  .contact-directory>a,.contact-directory>a:nth-child(even){padding-left:0;border-right:0}
  .footer-grid{grid-template-columns:1fr;gap:var(--space-5)}
  .footer-brand picture{width:190px}
  .footer-meta{padding-inline-end:66px}
  .privacy-banner{grid-template-columns:1fr;gap:18px;padding:21px;border-radius:20px}
  .privacy-banner h2{font-size:2.35rem}
  .privacy-actions{justify-content:stretch}
  .privacy-actions .button{width:100%}
  .legal-modal{width:calc(100% - 16px);height:calc(100dvh - 16px);border-radius:22px}
  .legal-modal-header{align-items:flex-start;padding:24px 68px 19px 20px}
  .legal-modal-header h2{font-size:clamp(2.25rem,11vw,3.2rem)}
  .legal-updated{display:none}
  .legal-modal-close{top:16px;right:16px}
  .legal-modal-body{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .legal-modal-tabs{flex-direction:row;padding:10px 12px;border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:none}
  .legal-modal-tabs::-webkit-scrollbar{display:none}
  .legal-modal-tabs button{width:auto;min-width:max-content;min-height:46px;scroll-snap-align:start}
  .legal-modal-content{padding:26px 20px 38px}
  .legal-modal-content h3{font-size:clamp(2.8rem,14vw,4rem)}
}

@media (prefers-reduced-motion:reduce){
  .contact-orbit,.legal-modal[open]{animation:none}
  .faq-item summary span,.contact-whatsapp span,.contact-directory>a,.legal-modal-close{transition:none}
}

@media print{
  body:has(.legal-modal[open])>header,body:has(.legal-modal[open])>main,body:has(.legal-modal[open])>footer,.privacy-banner,.whatsapp-widget,.scroll-progress{display:none!important}
  .legal-modal[open]{position:static;display:block;width:100%;height:auto;max-height:none;border-radius:0;box-shadow:none}
  .legal-modal-header{padding:0 0 18pt;background:#fff;color:#000}
  .legal-modal-header .section-index,.legal-modal-header h2{color:#000}
  .legal-modal-close,.legal-modal-tabs{display:none!important}
  .legal-modal-body{display:block}
  .legal-modal-content{padding:0;overflow:visible}
  .legal-modal-content section{break-inside:avoid}
  .legal-modal-content a{color:#000}
}
