/* Nenhum texto do sistema utiliza sublinhado. */
a,a:visited,a:hover,a:focus,a:active,button,u,ins{text-decoration:none!important}

/* 1. TOKENS */
:root {
  color-scheme:light;
  --forest-950:#071b17; --forest-900:#0d2d27; --forest-800:#16463d;
  --water-700:#087f82; --water-500:#1fb5b0; --water-200:#bce7df;
  --sand-50:#fbf8f1; --sand-100:#f3ecdd; --sand-200:#e6d7bb;
  --bronze-700:#895d31; --bronze-500:#bd8750; --bronze-300:#ddb581;
  --ink:#18302b; --muted:#5d6d67; --white:#fffdf8; --danger:#a53d38; --success:#267452;
  --surface-page:var(--sand-50); --surface-card:rgba(255,253,248,.94); --surface-soft:var(--sand-100);
  --surface-box:#eee3cf; --surface-box-highlight:#f6edde;
  --surface-dark:var(--forest-900); --surface-darkest:var(--forest-950);
  --color-heading:var(--forest-900); --color-body:var(--ink); --color-subtle:var(--muted);
  --color-accent:var(--bronze-500); --color-accent-strong:var(--bronze-700); --color-accent-soft:var(--bronze-300);
  --color-interactive:var(--water-700); --color-interactive-soft:var(--water-200);
  --border-light:rgba(137,93,49,.2); --border-dark:rgba(221,181,129,.2);
  --font-display:"Playfair Display", Georgia, serif; --font-body:"DM Sans", system-ui, sans-serif;
  --page-gutter:clamp(.75rem,3vw,2rem); --content-max:1280px;
  --space-1:.5rem; --space-2:.875rem; --space-3:1.25rem; --space-4:1.75rem;
  --space-5:2.5rem; --space-6:3.5rem; --space-7:5rem; --space-8:7rem;
  --radius-sm:.75rem; --radius-md:1.25rem; --radius-lg:2rem; --radius-pill:999px;
  --shadow-sm:0 10px 30px rgba(7,27,23,.08); --shadow-md:0 22px 60px rgba(7,27,23,.14);
  --shadow-lg:0 35px 90px rgba(7,27,23,.24); --border:1px solid rgba(137,93,49,.2);
  --ease:cubic-bezier(.22,1,.36,1); --ease-reveal:cubic-bezier(.16,1,.3,1); --transition:300ms var(--ease);
  --container:1200px; --header-h:78px; --z-header:50; --z-float:70; --z-modal:100; --z-loader:200;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --surface-page:#061511;
  --surface-card:rgba(18,47,40,.96);
  --surface-soft:#102f29;
  --surface-box:#12382f;
  --surface-box-highlight:#19483d;
  --color-heading:#f4ead8;
  --color-body:#e4ece7;
  --color-subtle:#b7c7c0;
  --border-light:rgba(221,181,129,.25);
  --shadow-sm:0 10px 30px rgba(0,0,0,.22);
  --shadow-md:0 22px 60px rgba(0,0,0,.32);
  --shadow-lg:0 35px 90px rgba(0,0,0,.46);
  --border:1px solid rgba(221,181,129,.22);
}
/* 2. RESET / BASE */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 1rem)}
body{margin:0;background:var(--sand-50);color:var(--ink);font-family:var(--font-body);line-height:1.7}
body,.section,.box-glass,.faq-section,input,textarea,select,.reservation-access-card,.reviews-widget{transition:background-color var(--transition),background var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition)}
body.menu-open,body.modal-open{overflow:hidden}
img{display:block;max-width:100%} a{color:inherit} button,input,textarea,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
.container{width:min(calc(100% - 2rem),var(--container));margin-inline:auto}
.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:999;transform:translateY(-180%);padding:.75rem 1rem;background:var(--white);border-radius:.5rem}
.skip-link:focus{transform:none}
:focus-visible{outline:3px solid #f0b45f;outline-offset:4px}.zoomable[role="button"]{cursor:zoom-in}.zoomable[role="button"]:focus-visible{outline-offset:6px}
/* 3. TYPOGRAPHY */
h1,h2,h3,p{margin-top:0} h1,h2,h3{font-family:var(--font-display);line-height:1.08;color:var(--forest-900)}
h1{font-size:clamp(2.9rem,7vw,6.8rem);letter-spacing:-.045em}
h2{font-size:clamp(2.2rem,4.4vw,4.35rem);letter-spacing:-.035em;margin-bottom:1rem}
p{max-width:68ch}.eyebrow{font:700 clamp(.7rem,.9vw,.82rem)/1.2 var(--font-body);letter-spacing:.19em;text-transform:uppercase;color:var(--bronze-700);margin-bottom:1rem}
.section-heading{margin-bottom:clamp(2rem,5vw,4rem)}.split-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem}.split-heading>p,.section-copy{max-width:34rem;color:var(--muted)}.section-copy p{margin:0;color:inherit}.section-copy p+p{margin-top:.75rem}
/* 4. LAYOUT */
.section{padding-block:clamp(4rem,9vw,8rem);position:relative}.box-glass{padding:clamp(1.5rem,5vw,4rem);border-radius:var(--radius-lg)}
.liquid-glass{position:relative;background:linear-gradient(145deg,rgba(255,253,248,.9),rgba(243,236,221,.72));border:var(--border);box-shadow:var(--shadow-md);backdrop-filter:blur(18px) saturate(125%)}
.liquid-glass::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--glass-x,20%) var(--glass-y,10%),rgba(255,255,255,.75),transparent 30%);opacity:var(--glass-opacity,.35)}
.parallax-layer,[data-scroll-depth]{--depth-y:0px;transform:translate3d(0,var(--depth-y),0);will-change:transform}
/* 5. HEADER */
.header{position:fixed;inset:0 0 auto;z-index:var(--z-header);height:var(--header-h);color:var(--white);transition:background var(--transition),box-shadow var(--transition),color var(--transition)}
.header.scrolled,.header.menu-active{background:rgba(7,27,23,.88);backdrop-filter:blur(18px) saturate(130%);border-bottom:1px solid rgba(255,255,255,.12);box-shadow:0 12px 35px rgba(0,0,0,.16)}
.header-inner{height:100%;display:flex;align-items:center;gap:1rem}.logo{position:relative;z-index:2;width:74px;flex:none;transition:width var(--transition),transform var(--transition)}.logo img{width:74px;height:74px;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(0,0,0,.28));transition:width var(--transition),height var(--transition),filter var(--transition)}
.nav{margin-left:auto}.nav ul{display:flex;align-items:center;gap:clamp(.2rem,1.2vw,1.1rem);padding:0;margin:0;list-style:none}
.nav-link{position:relative;text-decoration:none;font-size:.79rem;font-weight:600;padding:.6rem .2rem;white-space:nowrap}
.nav-link::after{content:"";position:absolute;left:0;right:100%;bottom:.2rem;height:1px;background:var(--bronze-300);transition:right var(--transition)}.nav-link:hover::after,.nav-link.active::after{right:0}
.nav-cta{padding:.7rem 1rem;border:1px solid var(--bronze-300);border-radius:var(--radius-pill);background:rgba(189,135,80,.15)}.nav-cta::after{display:none}
.client-area-link{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:42px;padding:.55rem .8rem;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-pill);color:inherit;text-decoration:none;font-size:.76rem;font-weight:700;white-space:nowrap;transition:var(--transition)}.client-area-link:hover{background:rgba(189,135,80,.24);border-color:var(--bronze-300)}.client-logout-button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:38px;padding:.45rem .7rem;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-pill);background:rgba(7,27,23,.22);color:inherit;font:700 .72rem var(--font-body);cursor:pointer;white-space:nowrap;transition:var(--transition)}.client-logout-button[hidden]{display:none}.client-logout-button:hover{border-color:rgba(221,181,129,.65);background:rgba(189,135,80,.18)}.client-logout-button:disabled{opacity:.58;cursor:wait}.admin-link-header{flex:none}.admin-link{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.25);border-radius:50%;transition:var(--transition)}.admin-link:hover{background:var(--bronze-500);border-color:var(--bronze-500)}
.theme-toggle{position:relative;z-index:3;flex:none;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(7,27,23,.2);color:inherit;cursor:pointer;transition:transform var(--transition),background var(--transition),border-color var(--transition)}.theme-toggle:hover{transform:translateY(-2px);background:rgba(189,135,80,.24);border-color:var(--bronze-300)}.theme-icon{grid-area:1/1;transition:opacity var(--transition),transform var(--transition)}.theme-icon-sun{opacity:1;transform:scale(1) rotate(0)}.theme-icon-moon{opacity:0;transform:scale(.55) rotate(-35deg)}html[data-theme="dark"] .theme-icon-sun{opacity:0;transform:scale(.55) rotate(35deg)}html[data-theme="dark"] .theme-icon-moon{opacity:1;transform:scale(1) rotate(0)}
.menu-toggle{display:none;width:44px;height:44px;padding:10px;border:0;background:transparent;color:inherit}.menu-toggle span{display:block;height:2px;margin:5px 0;background:currentColor;border-radius:2px;transition:var(--transition)}
/* 6. HERO */
.hero{isolation:isolate;position:relative;min-height:100svh;display:flex;align-items:center;color:var(--white);overflow:hidden;background:var(--forest-950)}
.hero-bg{position:absolute;z-index:-3;inset:-8%;background-image:url("img/IMG_4901.jpg");background-image:image-set(url("img/optimized/hero-1600.webp") type("image/webp"),url("img/IMG_4901.jpg") type("image/jpeg"));background-position:center 54%;background-size:cover;background-repeat:no-repeat;animation:hero-breathe 16s ease-out both;will-change:transform}
.hero::before{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,rgba(5,22,18,.88) 0%,rgba(5,22,18,.5) 55%,rgba(5,22,18,.2)),linear-gradient(0deg,rgba(5,22,18,.7),transparent 48%)}
.hero-glow{position:absolute;z-index:-1;inset:45% -10% -30%;background:radial-gradient(ellipse at 70% 50%,rgba(31,181,176,.2),transparent 55%);filter:blur(20px);animation:water-light 8s ease-in-out infinite alternate}
.hero-content{padding-top:calc(var(--header-h) + 3rem);padding-bottom:7rem}.hero-content>*{opacity:0;transform:translateY(28px);animation:hero-enter .9s var(--ease) forwards}.hero-content .eyebrow{color:var(--bronze-300);animation-delay:.25s}.hero h1{max-width:990px;color:var(--white);margin-bottom:1.5rem;animation-delay:.35s}.hero h1 em{font-weight:600;color:var(--sand-200)}.hero-lead{font-size:clamp(1.05rem,2vw,1.4rem);max-width:620px;color:rgba(255,253,248,.84);animation-delay:.48s}.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem;animation-delay:.6s}
.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.35rem;border:1px solid transparent;border-radius:var(--radius-pill);text-decoration:none;font-weight:700;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition),background var(--transition)}
.button:hover{transform:translateY(-3px)}.button:active{transform:translateY(0)}.button-primary{background:linear-gradient(135deg,var(--bronze-500),var(--bronze-700));color:var(--white);box-shadow:0 12px 30px rgba(137,93,49,.3)}.button-primary:hover{box-shadow:0 18px 36px rgba(137,93,49,.4)}
.button-secondary{border-color:rgba(255,255,255,.5);color:var(--white);background:rgba(255,255,255,.08);backdrop-filter:blur(10px)}.button-secondary:hover{background:rgba(255,255,255,.16)}
.scroll-cue{position:absolute;bottom:2rem;left:50%;display:grid;justify-items:center;gap:.55rem;color:rgba(255,255,255,.72);font-size:.72rem;text-decoration:none;letter-spacing:.16em;text-transform:uppercase;transform:translateX(-50%)}.scroll-cue i{display:block;width:1px;height:38px;background:linear-gradient(var(--bronze-300),transparent)}
/* 7. DIVIDERS / ABOUT */
.editorial-divider{
  --word-opacity:1;
  --word-blur:0px;
  --word-scale:1;
  --word-light:1;
  position:relative;
  isolation:isolate;
  width:100%;
  min-height:clamp(180px,26vw,340px);
  margin:0;
  padding:clamp(2rem,5vw,4.5rem) max(1rem,calc((100vw - var(--container))/2));
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 18% 50%,rgba(31,181,176,.1),transparent 34%),
    radial-gradient(circle at 82% 40%,rgba(189,135,80,.09),transparent 32%),
    rgba(7,27,23,.82);
  border-top:1px solid rgba(255,255,255,.1);
  border-bottom:1px solid rgba(221,181,129,.16);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    0 14px 38px rgba(0,0,0,.12);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  backdrop-filter:blur(18px) saturate(130%);
}
.editorial-divider::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.035),transparent);
}
.editorial-divider img{
  width:auto;
  max-width:min(100%,1080px);
  height:auto;
  max-height:clamp(150px,24vw,300px);
  object-fit:contain;
  filter:drop-shadow(0 12px 28px rgba(0,0,0,.32));
}
.editorial-divider.scroll-word-divider img{
  opacity:var(--word-opacity);
  transform:translate3d(0,var(--depth-y,0px),0) scale(var(--word-scale));
  filter:
    blur(var(--word-blur))
    brightness(var(--word-light))
    drop-shadow(0 12px 28px rgba(0,0,0,.32));
  transform-origin:center;
  will-change:transform,filter,opacity;
}
.editorial-divider.scroll-word-divider-static img{
  opacity:1;
  transform:none;
  filter:drop-shadow(0 12px 28px rgba(0,0,0,.32));
  will-change:auto;
}
.editorial-divider-wide img{max-width:min(100%,1200px)}
.divider-rancho{min-height:clamp(260px,34vw,440px);margin-top:0}
.divider-rancho img{max-width:min(96%,1180px);max-height:clamp(220px,30vw,360px)}
.divider-vem{min-height:clamp(260px,35vw,440px);margin-bottom:0}
.divider-vem img{max-height:clamp(220px,30vw,360px)}
.about{background:radial-gradient(circle at 100% 20%,rgba(31,181,176,.09),transparent 34%)}.about-layout{display:grid;grid-template-columns:.75fr 1.35fr;gap:clamp(2rem,6vw,6rem)}.about-logo{display:block;width:clamp(165px,17vw,220px);height:auto;margin:1.25rem auto 0;object-fit:contain;filter:drop-shadow(0 10px 20px rgba(7,27,23,.16))}.about-copy>p{font-size:1.06rem;color:var(--muted)}.about-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:2rem}.about-highlights div{padding:1rem;border-top:1px solid var(--bronze-300)}.about-highlights strong,.about-highlights span{display:block}.about-highlights strong{font-family:var(--font-display);font-size:1.35rem;color:var(--forest-800)}.about-highlights span{font-size:.78rem;color:var(--muted)}
/* 8. GALLERY / ROOMS */
.gallery,.testimonials{background:var(--forest-900);color:var(--sand-100)}.gallery h2,.gallery .split-heading>p,.testimonials h2{color:var(--white)}.gallery .box-glass,.testimonials .box-glass{background:linear-gradient(145deg,rgba(22,70,61,.88),rgba(7,27,23,.82));border-color:rgba(221,181,129,.2)}
.grid-gallery{display:grid;grid-auto-flow:column;grid-template-rows:clamp(245px,29vw,380px);grid-auto-columns:clamp(330px,43vw,510px);gap:1rem;padding:.85rem .55rem 1rem;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:none;-ms-overflow-style:none}.grid-gallery::-webkit-scrollbar{display:none;width:0;height:0}.grid-gallery .gallery-media,.room-grid .gallery-media{display:block;width:100%;height:100%;min-width:0;overflow:hidden;border-radius:var(--radius-md)}.grid-gallery img,.room-grid img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-md);cursor:zoom-in;box-shadow:var(--shadow-sm);transition:transform .65s var(--ease),filter .4s ease,box-shadow .4s ease}.grid-gallery img{grid-column:auto;grid-row:auto;aspect-ratio:4/3}.grid-gallery img:hover,.room-grid img:hover{transform:translateY(-5px) scale(1.015);filter:saturate(1.08);box-shadow:var(--shadow-lg)}
.room-grid{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-template-rows:clamp(245px,29vw,380px);grid-auto-columns:clamp(330px,43vw,510px);gap:1rem;padding:.85rem .55rem 1rem;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:none;-ms-overflow-style:none}.room-grid::-webkit-scrollbar{display:none;width:0;height:0}.room-grid img{grid-column:auto;grid-row:auto;aspect-ratio:4/3}
/* 9. FAQ */
.faq-section{width:min(calc(100% - 2rem),1000px);margin:clamp(4rem,8vw,7rem) auto;padding:clamp(1.5rem,5vw,4rem);background:var(--sand-100);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.faq-list{border-top:1px solid rgba(137,93,49,.22)}.faq-item{border-bottom:1px solid rgba(137,93,49,.22)}.faq-question{width:100%;min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.1rem 0;border:0;background:none;text-align:left;color:var(--forest-900);font-weight:700;cursor:pointer}.faq-question .icon{position:relative;display:grid;place-items:center;width:36px;height:36px;flex:none;border:1px solid var(--bronze-500);border-radius:50%;font-size:0;line-height:0;transition:transform var(--transition),background var(--transition)}.faq-question .icon::before,.faq-question .icon::after{content:"";position:absolute;top:50%;left:50%;width:14px;height:2px;border-radius:999px;background:currentColor;transform:translate(-50%,-50%)}.faq-question .icon::after{width:2px;height:14px}.faq-item.active .icon{transform:rotate(45deg);background:var(--bronze-500);color:white}.faq-answer{max-height:0;overflow:hidden;opacity:0;color:var(--muted);transition:max-height .5s var(--ease),opacity .35s ease,padding .5s var(--ease)}.faq-item.active .faq-answer{opacity:1;padding-bottom:1.5rem}
/* 10. MAP / REVIEWS */
.mapa-info{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(2rem,5vw,4rem);align-items:center}.mapa-text p{color:var(--muted)}.map-frame{aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid rgba(137,93,49,.25)}.map-frame iframe{width:100%;height:100%;border:0}.reviews-widget{position:relative;z-index:1;padding:clamp(1rem,3vw,2rem);background:var(--white);border-radius:var(--radius-md);color:var(--ink);min-height:200px}
/* 11. FORMS */
.contact{background:linear-gradient(180deg,var(--sand-50),var(--sand-100))}.form-shell{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(2rem,6vw,5rem)}.form-intro p{color:var(--muted)}.reserva-box{align-items:start}.reserva-box>.form-intro{width:100%;text-align:left}.reserva-box>.form-intro h2{margin-bottom:1rem}.reserva-box .reserva-descricao{margin:.6rem 0;line-height:1.58}.reserva-box>.reservation-access-card,.reserva-box>.reservation-authenticated{width:100%;margin:0}.contact-form,.booking-form{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field{display:flex;flex-direction:column;gap:.45rem}.field-full,.reserva-datas-row,.form-status{grid-column:1/-1}.field label,.reserva-data-field label{font-size:.84rem;font-weight:700;color:var(--forest-800)}.field label span{font-weight:400;color:var(--muted)}
.reservation-important{margin-top:1rem!important;padding:.8rem 1rem;border-left:3px solid var(--bronze-500);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:rgba(229,201,165,.22);text-align:left}.reservation-access-card{position:relative;z-index:1;align-self:start;display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:clamp(1.25rem,3vw,2rem);border:1px solid rgba(189,135,80,.28);border-radius:var(--radius-md);background:linear-gradient(145deg,rgba(255,253,248,.92),rgba(236,226,207,.8));box-shadow:var(--shadow-sm)}.reservation-access-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--forest-900);color:var(--bronze-300)}.reservation-access-card h3{margin:0 0 .65rem;color:var(--forest-900);font:700 clamp(1.35rem,2.5vw,1.85rem)/1.15 var(--font-display)}.reservation-access-card p{margin:0;color:var(--muted);line-height:1.6}.reservation-access-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.25rem}.reservation-access-actions .button{min-height:44px;padding:.7rem 1rem}.access-secondary{border:1px solid var(--bronze-500);color:var(--forest-900);background:rgba(255,253,248,.6)}[hidden]{display:none!important}
.reservation-authenticated{min-width:0}.reservation-authenticated[hidden]{display:none!important}.reservation-panel{animation:reservation-panel-in .4s var(--ease)}.field small{color:var(--muted);font-size:.76rem}@keyframes reservation-panel-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.reservation-calendar-shell{margin-bottom:1.25rem}.reservation-calendar-shell .availability-legend{justify-content:center}
input,textarea,select{width:100%;min-height:52px;border:1px solid rgba(13,45,39,.25);border-radius:var(--radius-sm);background:rgba(255,253,248,.86);color:var(--ink);padding:.8rem 1rem;transition:border var(--transition),box-shadow var(--transition),background var(--transition)}textarea{min-height:130px;resize:vertical}input::placeholder,textarea::placeholder{color:#7c8c86}input:focus,textarea:focus,select:focus{outline:0;border-color:var(--water-700);background:var(--white);box-shadow:0 0 0 4px rgba(31,181,176,.13)}input:user-invalid,textarea:user-invalid{border-color:var(--danger)}.reserva-datas-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-status{min-height:1.5rem;font-weight:600}.form-status.success{color:var(--success)}.form-status.error{color:var(--danger)}
/* 12. FOOTER / FLOATS */
.footer{padding:clamp(3rem,7vw,5rem) 0 calc(1.5rem + env(safe-area-inset-bottom));background:var(--forest-950);color:rgba(255,253,248,.72);text-align:center}
.footer-grid{width:min(calc(100% - 2rem),760px);display:grid;justify-items:center;gap:clamp(1.75rem,4vw,2.75rem)}
.footer-grid>div{min-width:0}
.footer-details{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}
.footer-column{min-width:0;min-height:132px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:1.5rem clamp(1rem,4vw,2rem);text-align:center}.footer-column+ .footer-column{border-left:1px solid rgba(255,255,255,.1)}
.footer h2{min-height:1.2rem;margin:0 0 1rem;font-family:var(--font-body);font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;color:var(--bronze-300)}
.footer a{display:block;max-width:100%;margin:.3rem 0;overflow-wrap:anywhere;text-decoration:none}
.footer a:hover{color:var(--bronze-300)}
.footer-brand{display:flex;flex-direction:column;align-items:center}.footer-brand img{width:108px;height:108px;margin-bottom:.75rem;object-fit:contain;filter:drop-shadow(0 8px 15px rgba(0,0,0,.3))}
.footer-brand p{max-width:100%;margin:0 auto;white-space:nowrap;font-size:clamp(.65rem,2.6vw,1rem)}
.social-icons{display:flex!important;flex-direction:row!important;align-items:center;justify-content:center;gap:.8rem}
.social-icons a{width:52px;height:52px;display:grid;place-items:center;margin:0;border:1px solid rgba(255,255,255,.18);border-radius:50%;transition:transform var(--transition),background var(--transition),border-color var(--transition)}
.social-icons a:hover{transform:translateY(-3px);background:rgba(189,135,80,.16);border-color:var(--bronze-300)}
.social-icon{width:29px;height:29px;object-fit:contain}
.footer-bottom{width:min(calc(100% - 2rem),760px);display:flex;justify-content:center;gap:.65rem 1.5rem;flex-wrap:wrap;margin-top:1.75rem;padding-top:0;font-size:.8rem}
.footer-bottom p{margin:0}
.botao-whatsapp,#back-to-top{position:fixed;z-index:var(--z-float);right:clamp(1rem,2vw,1.75rem);display:grid;place-items:center;width:52px;height:52px;border-radius:50%;box-shadow:var(--shadow-md);transition:transform var(--transition),opacity var(--transition)}.botao-whatsapp{bottom:calc(1rem + env(safe-area-inset-bottom));background:#1f9b61}.botao-whatsapp img{width:32px;height:32px;object-fit:contain}.botao-whatsapp:hover,#back-to-top:hover{transform:translateY(-4px) scale(1.04)}#back-to-top{bottom:calc(4.8rem + env(safe-area-inset-bottom));border:1px solid rgba(255,255,255,.25);background:var(--forest-900);color:white;opacity:0;visibility:hidden;cursor:pointer}#back-to-top.show{opacity:1;visibility:visible}.mobile-actions{display:none}
.scroll-progress{position:fixed;z-index:calc(var(--z-header) + 1);top:0;left:0;width:100%;height:2px}.scroll-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--bronze-300),var(--water-500));transform:scaleX(var(--scroll-progress,0));transform-origin:left}
/* 13. LIGHTBOX */
.lightbox[hidden]{display:none}.lightbox{position:fixed;z-index:var(--z-modal);inset:0;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,4rem);background:rgba(3,14,12,.94);backdrop-filter:blur(14px)}.lightbox-content{max-width:min(100%,1200px);max-height:86dvh;object-fit:contain;border-radius:var(--radius-sm);box-shadow:0 30px 100px rgba(0,0,0,.55);transition:opacity .2s ease}.close,.carousel-nav{position:absolute;display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(255,255,255,.1);color:white;cursor:pointer}.close{top:max(1rem,env(safe-area-inset-top));right:1rem;font-size:2rem}.carousel-nav{top:50%;transform:translateY(-50%);font-size:1.5rem}.carousel-nav:hover,.close:hover{background:var(--bronze-500)}#carousel-prev{left:1rem}#carousel-next{right:1rem}
.reservation-success-modal[hidden]{display:none}.reservation-success-modal{position:fixed;z-index:var(--z-modal);inset:0;display:grid;place-items:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:rgba(3,23,20,.72);backdrop-filter:blur(12px)}.reservation-success-card{width:min(100%,480px);padding:clamp(1.8rem,5vw,3rem);border:1px solid rgba(183,122,62,.38);border-radius:var(--radius-lg);background:linear-gradient(145deg,var(--sand-50),var(--sand-100));color:var(--ink);text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.65);animation:reservation-confirm-in .42s var(--ease) both}.reservation-success-icon{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 1.2rem;border:1px solid rgba(183,122,62,.5);border-radius:50%;background:linear-gradient(145deg,var(--water-700),var(--forest-900));color:white;font-size:1.8rem;box-shadow:0 12px 30px rgba(13,69,61,.24)}.reservation-success-card h2{margin:.35rem 0 .75rem;color:var(--forest-900);font-size:clamp(1.65rem,5vw,2.25rem)}.reservation-success-card>p:not(.eyebrow){margin:0 auto 1.6rem;max-width:34ch;color:var(--muted);line-height:1.65}.reservation-success-card .button{min-width:160px}@keyframes reservation-confirm-in{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
.guest-selector{min-width:0;margin:0;padding:1rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background:rgba(255,253,248,.42)}.guest-selector legend{padding:0 .35rem;color:var(--color-heading);font-weight:800}.guest-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--border-light)}.guest-row>span:first-child{display:grid;gap:.15rem}.guest-row small{color:var(--color-subtle);font-size:.75rem}.guest-stepper{display:grid;grid-template-columns:42px 38px 42px;align-items:center;flex:none}.guest-stepper button{width:42px;height:42px;padding:0;border:1px solid var(--color-accent);border-radius:50%;background:var(--surface-card);color:var(--color-heading);font:700 1.2rem var(--font-body);cursor:pointer}.guest-stepper button:disabled{opacity:.35;cursor:not-allowed}.guest-stepper output{text-align:center;color:var(--color-heading);font-weight:800;font-variant-numeric:tabular-nums}.guest-total{margin:.9rem 0 0;color:var(--color-heading);font-weight:800}.guest-error{margin:.5rem 0 0;color:#9b2c2c;font-size:.82rem}.guest-error[hidden]{display:none}html[data-theme="dark"] .guest-selector{background:rgba(4,24,20,.32)}
#ripple-container{display:none;pointer-events:none}
/* 14. COLOUR SYSTEM — semantic consistency */
body{
  background-color:var(--surface-page);
  background-image:
    linear-gradient(rgba(7,27,23,.58),rgba(7,27,23,.72)),
    url("img/IMG_4901.jpg");
  background-image:
    linear-gradient(rgba(7,27,23,.58),rgba(7,27,23,.72)),
    image-set(url("img/optimized/hero-1600.webp") type("image/webp"),url("img/IMG_4901.jpg") type("image/jpeg"));
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  background-attachment:fixed;
  color:var(--color-body);
}
.contact{
  background:linear-gradient(180deg,rgba(7,27,23,.08),rgba(7,27,23,.2));
}
h1,h2,h3,.location-title{color:var(--color-heading)}
.eyebrow{color:var(--color-accent-strong)}
.liquid-glass{background:linear-gradient(145deg,var(--surface-card),rgba(243,236,221,.78));border-color:var(--border-light)}
.gallery,.testimonials{
  background-color:transparent;
  background-image:none;
  color:var(--color-body);
}
.gallery .box-glass,.testimonials .box-glass{background:linear-gradient(145deg,rgba(22,70,61,.94),rgba(7,27,23,.92));border-color:var(--border-dark)}
.gallery .eyebrow,.testimonials .eyebrow,.hero .eyebrow{color:var(--color-accent-soft)}
.button-primary,.nav-cta,.mobile-actions a:first-child{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-strong));color:var(--white)}
.button-secondary{border-color:rgba(255,255,255,.5);color:var(--white)}
.nav-link.active,.nav-link:hover{color:var(--color-accent-soft)}
.faq-section{background:var(--surface-soft);border:1px solid var(--border-light)}
.faq-list,.faq-item{border-color:var(--border-light)}
.faq-question{color:var(--color-heading)}
.faq-question .icon{border-color:var(--color-accent);color:var(--color-accent-strong)}
.faq-item.active .icon{background:var(--color-accent);color:var(--white)}
.faq-answer,.about-copy>p,.mapa-text p,.form-intro p,.split-heading>p{color:var(--color-subtle)}
input,textarea,select{background:var(--surface-card);color:var(--color-body)}
input::placeholder,textarea::placeholder{color:var(--color-subtle)}
input:focus,textarea:focus,select:focus{border-color:var(--color-interactive);box-shadow:0 0 0 4px rgba(8,127,130,.13)}
.map-frame{border-color:var(--border-light)}
.footer,.lightbox,#preloader{background-color:var(--surface-darkest)}
.footer h2{color:var(--color-accent-soft)}
.close:hover,.carousel-nav:hover{background:var(--color-accent)}
/* Unified box surface */
.box-glass,
.faq-section{
  color:var(--color-body);
  background-color:var(--surface-box);
  background-image:none;
  border:1px solid rgba(137,93,49,.24);
  box-shadow:
    0 22px 60px rgba(7,27,23,.13),
    inset 0 1px 0 rgba(255,255,255,.72);
}
.gallery .box-glass,
.testimonials .box-glass{
  color:var(--color-body);
  background-color:var(--surface-box);
  background-image:none;
  border-color:rgba(137,93,49,.24);
}
.gallery .box-glass h2,
.gallery .box-glass .split-heading>p,
.testimonials .box-glass h2{
  color:var(--color-heading);
}
.gallery .box-glass .eyebrow,
.testimonials .box-glass .eyebrow{
  color:var(--color-accent-strong);
}
.testimonials .testimonials-glass.box-glass{
  background-color:var(--surface-box);
  background-image:none;
  border-color:rgba(137,93,49,.24);
}
.testimonials .reviews-widget{
  background:var(--surface-box);
  color:var(--color-body);
  box-shadow:none;
  min-width:0;
  overflow:hidden;
}
/* Mantém os cartões do widget com altura estável ao trocar de avaliação. */
.testimonials .reviews-widget .swiper{
  overflow:hidden!important;
}
.testimonials .reviews-widget .swiper-wrapper{
  align-items:stretch!important;
  height:350px!important;
}
.testimonials .reviews-widget .swiper-slide{
  display:flex!important;
  height:100%!important;
  min-height:0!important;
}
.testimonials .reviews-widget .swiper-slide > *{
  width:100%;
  height:100%;
  min-height:0;
  box-sizing:border-box;
}
.header .logo{
  transform:translateY(3px);
}
.header.scrolled .logo{
  width:60px;
  transform:translateY(2px);
}
.header.scrolled .logo img{
  width:60px;
  height:60px;
  filter:drop-shadow(0 5px 9px rgba(0,0,0,.24));
}
/* 15. LIGHT / DARK THEME */
html[data-theme="dark"] body{
  background-color:var(--surface-page);
  background-image:
    linear-gradient(rgba(2,12,10,.82),rgba(3,17,14,.9)),
    url("img/IMG_4901.jpg");
  background-image:
    linear-gradient(rgba(2,12,10,.82),rgba(3,17,14,.9)),
    image-set(url("img/optimized/hero-1600.webp") type("image/webp"),url("img/IMG_4901.jpg") type("image/jpeg"));
  color:var(--color-body);
}
html[data-theme="dark"] .about{
  background:radial-gradient(circle at 100% 20%,rgba(31,181,176,.1),transparent 36%);
}
html[data-theme="dark"] .contact{
  background:linear-gradient(180deg,rgba(3,18,15,.32),rgba(3,18,15,.62));
}
html[data-theme="dark"] .liquid-glass,
html[data-theme="dark"] .box-glass,
html[data-theme="dark"] .faq-section,
html[data-theme="dark"] .gallery .box-glass,
html[data-theme="dark"] .testimonials .box-glass,
html[data-theme="dark"] .testimonials .testimonials-glass.box-glass{
  color:var(--color-body);
  background:linear-gradient(145deg,rgba(24,65,55,.96),rgba(11,39,33,.94));
  border-color:var(--border-light);
  box-shadow:var(--shadow-md),inset 0 1px 0 rgba(255,255,255,.07);
}
html[data-theme="dark"] .liquid-glass::before{
  background:radial-gradient(circle at var(--glass-x,20%) var(--glass-y,10%),rgba(188,231,223,.13),transparent 32%);
}
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] .location-title,
html[data-theme="dark"] .gallery .box-glass h2,
html[data-theme="dark"] .gallery .box-glass .split-heading>p,
html[data-theme="dark"] .testimonials .box-glass h2,
html[data-theme="dark"] .faq-question,
html[data-theme="dark"] .about-highlights strong,
html[data-theme="dark"] .field label,
html[data-theme="dark"] .reserva-data-field label,
html[data-theme="dark"] .reservation-access-card h3{
  color:var(--color-heading);
}
html[data-theme="dark"] .section-copy,
html[data-theme="dark"] .section-copy p,
html[data-theme="dark"] .split-heading>p,
html[data-theme="dark"] .about-copy>p,
html[data-theme="dark"] .about-highlights span,
html[data-theme="dark"] .faq-answer,
html[data-theme="dark"] .mapa-text p,
html[data-theme="dark"] .form-intro p,
html[data-theme="dark"] .reservation-access-card p,
html[data-theme="dark"] .field label span,
html[data-theme="dark"] .field small{
  color:var(--color-subtle);
}
html[data-theme="dark"] .reservation-access-card{
  background:linear-gradient(145deg,rgba(25,66,56,.96),rgba(12,42,35,.94));
  border-color:var(--border-light);
}
html[data-theme="dark"] .reservation-access-icon{
  background:var(--bronze-500);
  color:#081b17;
}
html[data-theme="dark"] .access-secondary{
  border-color:var(--bronze-300);
  background:rgba(255,255,255,.04);
  color:var(--color-heading);
}
html[data-theme="dark"] .reservation-important{
  background:rgba(189,135,80,.12);
}
html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select{
  background:#0c2a23;
  border-color:rgba(188,231,223,.28);
  color:var(--color-body);
}
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder{
  color:#9eb3aa;
}
html[data-theme="dark"] input:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] select:focus{
  background:#10372e;
  border-color:var(--water-500);
  box-shadow:0 0 0 4px rgba(31,181,176,.18);
}
html[data-theme="dark"] input[type="date"]{
  color-scheme:dark;
}
html[data-theme="dark"] .testimonials .reviews-widget{
  background:var(--surface-box);
  color:var(--color-body);
}
html[data-theme="dark"] .map-frame{
  border-color:rgba(221,181,129,.28);
  box-shadow:var(--shadow-md);
}
html[data-theme="dark"] .editorial-divider{
  background:
    radial-gradient(circle at 18% 50%,rgba(31,181,176,.12),transparent 34%),
    radial-gradient(circle at 82% 40%,rgba(189,135,80,.1),transparent 32%),
    rgba(3,18,15,.9);
}
html[data-theme="dark"] .skip-link{
  background:var(--surface-box-highlight);
  color:var(--color-heading);
}
/* 14. ANIMATIONS */
.fade-in,.reveal-mask{opacity:0;transform:translate3d(0,20px,0) scale(.992);transition:opacity 1.05s var(--ease-reveal),transform 1.05s var(--ease-reveal);transition-delay:var(--reveal-delay,0ms)}.fade-in.visible,.reveal-mask.visible{opacity:1;transform:translate3d(0,0,0) scale(1)}.grid-gallery img,.room-grid img{opacity:0;transform:translate3d(0,16px,0) scale(.985);transition:opacity .9s var(--ease-reveal),transform .9s var(--ease-reveal),filter .45s ease,box-shadow .45s ease}.visible .grid-gallery img,.visible .room-grid img{opacity:1;transform:translate3d(0,0,0) scale(1)}.visible img:nth-child(2){transition-delay:.045s}.visible img:nth-child(3){transition-delay:.09s}.visible img:nth-child(4){transition-delay:.135s}.visible img:nth-child(5){transition-delay:.18s}.visible img:nth-child(6){transition-delay:.225s}.visible img:nth-child(7){transition-delay:.27s}.visible img:nth-child(8){transition-delay:.315s}.visible .grid-gallery img:nth-child(4n+9){transition-delay:.045s}.visible .grid-gallery img:nth-child(4n+10){transition-delay:.09s}.visible .grid-gallery img:nth-child(4n+11){transition-delay:.135s}.visible .grid-gallery img:nth-child(4n+12){transition-delay:.18s}
@keyframes hero-breathe{from{transform:scale(1.1)}to{transform:scale(1)}}@keyframes hero-enter{to{opacity:1;transform:none}}@keyframes water-light{to{transform:translate3d(-4%,2%,0) scale(1.08)}}@keyframes ripple-out{to{width:150px;height:150px;opacity:0}}@keyframes preloader-pulse{50%{transform:scale(1.04);opacity:.8}}
#preloader{position:fixed;z-index:var(--z-loader);inset:0;display:grid;place-content:center;justify-items:center;gap:1rem;background:var(--forest-950);color:var(--bronze-300);font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;transition:opacity .6s ease,visibility .6s ease}#preloader img{width:150px;height:150px;object-fit:contain;animation:preloader-pulse 1.8s ease-in-out infinite}
/* 15. RESPONSIVE */
@media(max-width:1180px){.client-area-link span,.client-logout-button span{display:none}.client-area-link,.client-logout-button{width:42px;padding:0;border-radius:50%}}@media(max-width:1080px){.nav-link{font-size:.72rem}.nav ul{gap:.45rem}.logo,.logo img{width:64px;height:64px}}
@media(max-width:1250px){
  :root{--header-h:70px}.header-inner{gap:.55rem}.menu-toggle{display:flex;flex:none;flex-direction:column;align-items:stretch;justify-content:center;min-width:44px;margin-left:auto;position:relative;z-index:3;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(7,27,23,.36)}.menu-toggle span{width:100%;flex:none}.admin-link-header{position:relative;z-index:3}.nav{position:fixed;inset:0 0 0 auto;width:min(86vw,390px);padding:calc(var(--header-h) + 2rem) 1.5rem 2rem;background:rgba(7,27,23,.97);backdrop-filter:blur(18px);transform:translateX(105%);visibility:hidden;transition:transform .45s var(--ease),visibility .45s}.nav.open{transform:none;visibility:visible}.nav ul{display:grid;align-content:start;gap:.3rem}.nav-link{display:block;padding:.85rem .5rem;font-size:1rem;border-bottom:1px solid rgba(255,255,255,.08)}.nav-cta{margin-top:1rem;text-align:center;border:1px solid var(--bronze-300)}.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav{
    isolation:isolate;
    height:100dvh;
    min-height:100svh;
    overflow-y:auto;
    color:var(--white);
    background:var(--forest-950);
    border-left:1px solid rgba(221,181,129,.22);
    box-shadow:-24px 0 70px rgba(0,0,0,.48);
    -webkit-backdrop-filter:blur(26px) saturate(120%);
    backdrop-filter:blur(26px) saturate(120%);
  }
  .nav::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    width:100%;
    min-height:100%;
    background:
      radial-gradient(circle at 100% 0,rgba(31,181,176,.16),transparent 32%),
      linear-gradient(155deg,#16463d 0%,#071b17 58%,#04110e 100%);
    opacity:1;
    pointer-events:none;
  }
  .nav ul{position:relative;z-index:1}
  .nav-link{color:var(--white);text-shadow:0 1px 2px rgba(0,0,0,.45)}
  .nav-link:hover,.nav-link.active{color:var(--bronze-300);background:rgba(255,255,255,.055)}
}
@media(max-width:900px){.about-layout,.mapa-info,.form-shell{grid-template-columns:1fr}.split-heading{display:block}.grid-gallery,.room-grid{grid-template-columns:none;grid-template-rows:280px;grid-auto-rows:auto;grid-auto-columns:min(68vw,390px)}}
@media(max-width:600px){
  body{background-attachment:scroll;background-position:center top}
  .editorial-divider{
    background-color:rgba(7,27,23,.86);
    -webkit-backdrop-filter:blur(12px) saturate(115%);
    backdrop-filter:blur(12px) saturate(115%);
  }
  .section{padding-block:4rem}.box-glass{padding:1.25rem;border-radius:var(--radius-md)}.hero-content{padding-bottom:6rem}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .button{width:100%}.hero-bg{inset:0;background-position:62% center;transform:none!important}.hero-glow{display:none}.scroll-cue{bottom:1.1rem}
  .about-highlights{grid-template-columns:1fr}.grid-gallery,.room-grid{grid-template-columns:none;grid-template-rows:230px;grid-auto-rows:auto;grid-auto-columns:min(86vw,330px);gap:.7rem}.grid-gallery img,.room-grid img{grid-column:auto;grid-row:auto;aspect-ratio:4/3}.contact-form,.booking-form{grid-template-columns:1fr}.field,.field-full,.reserva-datas-row,.form-status{grid-column:1}.reserva-datas-row{grid-template-columns:1fr}.reservation-access-card{grid-template-columns:1fr}.reservation-access-actions{display:grid}.reservation-access-actions .button{width:100%}
  .footer-grid{grid-template-columns:1fr;gap:2rem}.footer-details{grid-template-columns:1fr}.footer-column{min-height:auto;padding:1.35rem .75rem}.footer-column+ .footer-column{border-left:0;border-top:1px solid rgba(255,255,255,.1)}.footer h2{min-height:0;margin-bottom:.65rem}.footer-bottom{display:flex;flex-direction:column;gap:.3rem}.mobile-actions{position:fixed;z-index:65;left:50%;bottom:calc(.65rem + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;width:min(calc(100% - 1.25rem),390px);padding:.35rem;background:rgba(7,27,23,.94);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-pill);box-shadow:var(--shadow-lg);backdrop-filter:blur(14px);transform:translateX(-50%)}.mobile-actions a{min-height:44px;display:grid;place-items:center;border-radius:var(--radius-pill);color:white;text-decoration:none;font-weight:700}.mobile-actions a:first-child{background:var(--bronze-500)}.botao-whatsapp{display:none}#back-to-top{right:.75rem;bottom:calc(4.9rem + env(safe-area-inset-bottom));width:46px;height:46px}.footer{padding-bottom:calc(6rem + env(safe-area-inset-bottom))}.carousel-nav{top:auto;bottom:calc(1rem + env(safe-area-inset-bottom))}#carousel-prev{left:calc(50% - 58px)}#carousel-next{right:calc(50% - 58px)}
  .testimonials .reviews-widget .swiper-wrapper{height:420px!important}
}
@media(max-width:360px){h1{font-size:2.65rem}.container{width:min(calc(100% - 1.25rem),var(--container))}.header-inner{gap:.35rem}.menu-toggle{width:38px;height:38px;padding:7px}.admin-link,.client-area-link,.client-logout-button,.theme-toggle{width:38px;height:38px;min-height:38px}.logo,.logo img{width:54px;height:54px}}
@media(hover:hover) and (pointer:fine){.grid-gallery,.room-grid{perspective:1100px;perspective-origin:50% 45%}.grid-gallery .zoomable,.room-grid .zoomable{backface-visibility:hidden;transform-style:preserve-3d}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.fade-in,.reveal-mask,.grid-gallery img,.room-grid img{opacity:1!important;transform:none!important}.hero-bg{transform:none!important}}
@media(prefers-reduced-motion:reduce){.parallax-layer,[data-scroll-depth]{transform:none!important;will-change:auto}.editorial-divider.scroll-word-divider img{opacity:1!important;transform:none!important;filter:drop-shadow(0 12px 28px rgba(0,0,0,.32))!important;will-change:auto}}

/* 18. RESPONSIVE CONSISTENCY */
img,video,svg,canvas,iframe{max-inline-size:100%}
img,video{block-size:auto}
main,section,article,aside,header,footer,nav,form,.container,.box-glass{min-inline-size:0}
p,li,dd,td,th,a,button,label,.form-status{overflow-wrap:anywhere}
.container{width:min(calc(100% - (2 * var(--page-gutter))),var(--container,var(--content-max)))}
.button,.menu-toggle,.admin-link,.client-area-link,.client-logout-button,.theme-toggle{min-block-size:44px}
.field,.reserva-data-field,.contact-form>*,.booking-form>*{min-width:0}
.map-frame,.reviews-widget,.form-shell,.about-layout,.mapa-info{max-width:100%}
.map-frame iframe{display:block;width:100%}

@media(max-width:900px){
  .header-inner{width:min(calc(100% - (2 * var(--page-gutter))),var(--container,var(--content-max)))}
  .nav{max-width:100%;padding-inline:clamp(1rem,5vw,1.5rem)}
  .about-layout,.mapa-info,.form-shell{gap:clamp(1.5rem,5vw,3rem)}
}

@media(max-width:600px){
  :root{--page-gutter:.625rem}
  .section{padding-block:clamp(3.25rem,12vw,4rem)}
  .section-heading,.split-heading{margin-bottom:clamp(1.25rem,6vw,2rem)}
  .box-glass{padding:clamp(1rem,5vw,1.25rem)}
  .button{width:100%;white-space:nowrap;text-align:center}
  .header .button,.header button,.header a,.faq-question,.carousel-nav,.close,.mobile-actions a{width:auto}
  .guest-selector{padding:.85rem}.guest-row{gap:.65rem}.guest-stepper{grid-template-columns:40px 34px 40px}.guest-stepper button{width:40px;height:40px}
  .footer-contact a,.footer-details a{overflow-wrap:anywhere}
  .lightbox{padding:.75rem}
  .lightbox-content{max-height:calc(100dvh - 7rem)}
}

@media(max-width:360px){
  :root{--page-gutter:.625rem}
  h1{font-size:clamp(2.15rem,13vw,2.65rem)}
  .header-inner{gap:.25rem}
  .logo,.logo img{width:50px;height:50px}
  .menu-toggle,.admin-link,.client-area-link,.client-logout-button,.theme-toggle{width:38px;min-width:38px}
}

/* Controles móveis preservam a área de toque sem comprimir o conteúdo. */
@media(min-width:1251px){
  .header-inner{gap:clamp(.5rem,.75vw,.75rem)}
  .nav ul{gap:clamp(.2rem,.75vw,.75rem)}
  .client-logout-button{flex:0 0 42px;width:42px;height:42px;min-width:42px;min-height:42px;padding:0;border-radius:50%;gap:0}
  .client-logout-button span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
}
@media(max-width:600px){
  .header-inner>*{flex-shrink:0}
  .client-area-link,.client-logout-button{width:44px;min-width:44px;padding:0;gap:0}
  .client-area-link span,.client-logout-button span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
}
@media(max-width:360px){
  .header-inner{justify-content:space-between}
  .client-area-link,.client-logout-button{width:38px;min-width:38px}
}

/* Cabeçalho móvel: controles simétricos e resistentes à compressão. */
@media(max-width:600px){
  .header-inner{
    justify-content:flex-start;
    gap:clamp(4px,1.8vw,8px);
  }
  .menu-toggle,
  .client-area-link,
  .client-logout-button,
  .theme-toggle,
  .admin-link,
  .admin-link-header{
    flex:0 0 44px;
    width:44px;
    min-width:44px;
    max-width:44px;
  }
  .menu-toggle,
  .client-area-link,
  .client-logout-button,
  .theme-toggle,
  .admin-link{
    height:44px;
    min-height:44px;
    max-height:44px;
    aspect-ratio:1;
    border-radius:50%;
  }
  .menu-toggle{margin-left:auto}
  .admin-link-header{height:44px}
}

@media(max-width:360px){
  .menu-toggle,
  .client-area-link,
  .client-logout-button,
  .theme-toggle,
  .admin-link,
  .admin-link-header{
    flex-basis:42px;
    width:42px;
    min-width:42px;
    max-width:42px;
  }
  .menu-toggle,
  .client-area-link,
  .client-logout-button,
  .theme-toggle,
  .admin-link,
  .admin-link-header{
    height:42px;
    min-height:42px;
    max-height:42px;
  }
}
/* Campo-isca anti-bot: não participa do fluxo visual nem da navegação por teclado. */
.form-honeypot {
  position: absolute !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

/* Cupom de desconto */
.coupon-field{padding:14px;border:1px solid rgba(184,131,77,.3);border-radius:14px;background:rgba(255,255,255,.24)}
.coupon-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.coupon-input-row input{text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.coupon-input-row .coupon-apply{min-width:112px;min-height:48px;margin:0;padding:10px 18px}
.coupon-feedback{min-height:20px;margin-top:8px;color:var(--muted);font-size:.82rem;line-height:1.45}
.coupon-feedback.success{color:#176044}.coupon-feedback.error{color:#8a3531}
.coupon-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:9px}
.coupon-summary span{padding:8px;border-radius:9px;background:rgba(23,101,90,.08);text-align:center}.coupon-summary strong{display:block;color:var(--primary-dark)}
html[data-theme="dark"] .coupon-field{background:rgba(4,24,20,.35);border-color:rgba(221,181,129,.25)}
@media(max-width:560px){.coupon-input-row{grid-template-columns:1fr}.coupon-input-row .coupon-apply{width:100%}.coupon-summary{grid-template-columns:1fr}}
.reservation-price-preview{padding:clamp(16px,3vw,24px);border:1px solid rgba(23,101,90,.28);border-radius:18px;background:linear-gradient(135deg,rgba(255,253,248,.92),rgba(226,241,234,.82));box-shadow:0 14px 36px rgba(11,52,43,.08)}
.price-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.price-preview-heading>div{display:grid;gap:4px}.price-preview-heading span{color:var(--color-subtle);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.price-preview-heading strong{color:var(--color-heading);font:700 clamp(1.2rem,3vw,1.65rem)/1.15 var(--font-display)}.price-preview-state{padding:7px 10px;border-radius:999px;background:rgba(96,108,103,.11)}.reservation-price-preview[data-state="calculated"] .price-preview-state{background:rgba(32,132,87,.14);color:#176044}.reservation-price-preview[data-state="error"]{border-color:rgba(155,44,44,.32)}.reservation-price-preview[data-state="error"] .price-preview-state{background:rgba(155,44,44,.12);color:#8a3531}.price-preview-content>p{margin:12px 0 0;color:var(--color-subtle);line-height:1.5}.price-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:15px 0 0}.price-preview-grid div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;background:rgba(23,101,90,.07)}.price-preview-grid dt{color:var(--color-subtle);font-size:.78rem}.price-preview-grid dd{margin:0;color:var(--color-heading);font-weight:800;text-align:right}.price-preview-discount{padding-top:10px;border-top:1px solid var(--border-light);color:#176044!important;font-weight:800}html[data-theme="dark"] .reservation-price-preview{background:linear-gradient(135deg,rgba(9,38,31,.92),rgba(15,55,46,.88));border-color:rgba(221,181,129,.24)}html[data-theme="dark"] .price-preview-grid div{background:rgba(255,255,255,.055)}
@media(max-width:560px){.price-preview-heading{align-items:flex-start;flex-direction:column}.price-preview-grid{grid-template-columns:1fr}.price-preview-state{align-self:flex-start}}

/* Textos de ações permanecem inteiros; no mobile o layout empilha em vez de comprimir. */
.button,.menu-toggle,.client-area-link,.client-logout-button,.theme-toggle,.coupon-apply{white-space:nowrap;overflow-wrap:normal;word-break:normal}

/* Menu lateral mobile: evolução visual sem interferir na navegação desktop. */
.nav-drawer-header,.nav-drawer-utilities,.nav-drawer-footer,.nav-backdrop,.nav-icon{display:none}
@media(max-width:1250px){
  .nav-backdrop{
    position:fixed;
    z-index:-1;
    inset:0;
    display:block;
    width:100%;
    height:100dvh;
    padding:0;
    border:0;
    background:rgba(2,12,10,.62);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    -webkit-backdrop-filter:blur(3px);
    backdrop-filter:blur(3px);
    transition:opacity .35s var(--ease),visibility .35s;
  }
  .header.menu-active .nav-backdrop{z-index:0;opacity:1;visibility:visible;pointer-events:auto}
  .nav{
    z-index:2;
    display:flex;
    flex-direction:column;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(221,181,129,.4) transparent;
    padding:max(1rem,env(safe-area-inset-top)) clamp(1rem,5vw,1.4rem) max(1.25rem,env(safe-area-inset-bottom));
  }
  .nav::-webkit-scrollbar{width:4px}.nav::-webkit-scrollbar-thumb{background:rgba(221,181,129,.4);border-radius:999px}
  .nav-drawer-header{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    min-height:58px;
    padding-bottom:.9rem;
    border-bottom:1px solid rgba(221,181,129,.18);
  }
  .nav-drawer-heading{display:grid;gap:.1rem;line-height:1.1}.nav-drawer-heading strong{font:600 1.55rem/1 var(--font-display);color:var(--white)}
  .nav-drawer-eyebrow{color:var(--bronze-300);font-size:.65rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase}
  .nav-close{
    display:grid;
    place-items:center;
    flex:0 0 46px;
    width:46px;
    height:46px;
    padding:0;
    border:1px solid rgba(221,181,129,.3);
    border-radius:50%;
    background:rgba(255,255,255,.07);
    color:var(--white);
    cursor:pointer;
    transition:transform var(--transition),background var(--transition),border-color var(--transition);
  }
  .nav-close:hover,.nav-close:focus-visible{background:rgba(189,135,80,.22);border-color:var(--bronze-300);transform:rotate(4deg)}
  .nav-drawer-utilities{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.5rem;
    padding:1rem 0 .85rem;
  }
  .nav-utility{
    min-width:0;
    min-height:58px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.28rem;
    padding:.5rem .25rem;
    border:1px solid rgba(255,255,255,.12);
    border-radius:var(--radius-sm);
    background:rgba(255,255,255,.055);
    color:rgba(255,253,248,.9);
    font-size:.68rem;
    font-weight:700;
    line-height:1.15;
    text-decoration:none;
    cursor:pointer;
    transition:transform var(--transition),background var(--transition),border-color var(--transition),color var(--transition);
  }
  button.nav-utility{width:100%;font-family:var(--font-body)}
  .nav-utility:hover,.nav-utility:focus-visible{color:var(--white);background:rgba(189,135,80,.15);border-color:rgba(221,181,129,.42);transform:translateY(-2px)}
  .nav-theme-toggle{position:relative}.nav-theme-toggle .theme-icon{grid-area:auto;position:absolute;top:9px}.nav-theme-toggle span{padding-top:25px}
  .nav ul{width:100%;align-content:start;gap:.18rem;padding:.1rem 0 .65rem}
  .nav li{min-width:0}
  .nav-link{
    min-height:50px;
    display:flex;
    align-items:center;
    gap:.8rem;
    padding:.68rem .72rem;
    border:1px solid transparent;
    border-bottom-color:rgba(255,255,255,.075);
    border-radius:.7rem;
    color:rgba(255,253,248,.88);
    font-size:.9rem;
    font-weight:650;
    line-height:1.2;
    text-shadow:none;
    transition:transform var(--transition),background var(--transition),border-color var(--transition),color var(--transition);
  }
  .nav-link::after{display:none}
  .nav-icon{display:block;flex:0 0 21px;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:var(--bronze-300);opacity:.86}
  .nav-link:hover,.nav-link:focus-visible{color:var(--white);background:rgba(255,255,255,.065);border-color:rgba(221,181,129,.16);transform:translateX(3px)}
  .nav-link.active,.nav-link[aria-current="location"]{color:var(--white);background:linear-gradient(90deg,rgba(189,135,80,.2),rgba(255,255,255,.045));border-color:rgba(221,181,129,.3);box-shadow:inset 3px 0 0 var(--bronze-300)}
  .nav-link.active .nav-icon,.nav-link[aria-current="location"] .nav-icon{color:var(--bronze-300);opacity:1}
  .nav-cta{margin-top:.65rem;justify-content:center;min-height:52px;border-color:rgba(221,181,129,.6);background:linear-gradient(135deg,var(--bronze-500),var(--bronze-700));box-shadow:0 12px 28px rgba(0,0,0,.2);color:var(--white)}
  .nav-cta .nav-icon{color:var(--white)}.nav-cta:hover,.nav-cta:focus-visible{background:linear-gradient(135deg,#c7935e,var(--bronze-700));transform:translateY(-2px)}
  .nav-drawer-footer{position:relative;z-index:2;display:grid;gap:.55rem;margin-top:auto;padding-top:.75rem;border-top:1px solid rgba(221,181,129,.16)}
  .nav-whatsapp{min-height:48px;display:flex;align-items:center;justify-content:center;gap:.65rem;padding:.7rem 1rem;border:1px solid rgba(96,210,145,.36);border-radius:var(--radius-pill);background:rgba(31,155,97,.16);color:#dff7e9;text-decoration:none;font-size:.82rem;font-weight:800;transition:background var(--transition),border-color var(--transition),transform var(--transition)}
  .nav-whatsapp:hover,.nav-whatsapp:focus-visible{background:rgba(31,155,97,.26);border-color:rgba(96,210,145,.6);transform:translateY(-2px)}
  .nav-drawer-footer small{text-align:center;color:rgba(255,253,248,.55);font-size:.63rem;letter-spacing:.025em}
  .header.menu-active>.header-inner>.menu-toggle,.header.menu-active>.header-inner>.client-area-link,.header.menu-active>.header-inner>.client-logout-button,.header.menu-active>.header-inner>.theme-toggle,.header.menu-active>.header-inner>.admin-link-header{visibility:hidden;pointer-events:none}
  body.menu-open .mobile-actions{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,12px)}
  .mobile-actions{transition:opacity var(--transition),visibility var(--transition),transform var(--transition)}
}
@media(max-width:380px){
  .nav{width:min(92vw,390px);padding-inline:.9rem}.nav-drawer-utilities{gap:.35rem}.nav-utility{font-size:.64rem}.nav-link{min-height:48px;padding:.62rem .65rem;font-size:.86rem}.nav-drawer-footer small{display:none}
}
@media(prefers-reduced-motion:reduce){
  .nav,.nav-backdrop,.nav-link,.nav-utility,.nav-close,.nav-whatsapp,.mobile-actions{transition-duration:.01ms!important}
  .nav-link:hover,.nav-link:focus-visible,.nav-utility:hover,.nav-utility:focus-visible,.nav-close:hover,.nav-close:focus-visible,.nav-whatsapp:hover,.nav-whatsapp:focus-visible{transform:none}
}

/* Imagens responsivas: variantes modernas com fallback preservado. */
@media(max-width:700px){
  .hero-bg{background-image:url("img/IMG_4901.jpg");background-image:image-set(url("img/optimized/hero-960.webp") type("image/webp"),url("img/IMG_4901.jpg") type("image/jpeg"))}
  body{
    background-image:linear-gradient(rgba(7,27,23,.46),rgba(7,27,23,.62)),url("img/IMG_4901.jpg");
    background-image:linear-gradient(rgba(7,27,23,.46),rgba(7,27,23,.62)),image-set(url("img/optimized/hero-960.webp") type("image/webp"),url("img/IMG_4901.jpg") type("image/jpeg"));
    background-position:center top;
    background-size:auto 100svh;
    background-repeat:repeat-y;
    background-attachment:scroll;
  }
  html[data-theme="dark"] body{
    background-image:linear-gradient(rgba(2,14,11,.68),rgba(3,18,15,.8)),url("img/IMG_4901.jpg");
    background-image:linear-gradient(rgba(2,14,11,.68),rgba(3,18,15,.8)),image-set(url("img/optimized/hero-960.webp") type("image/webp"),url("img/IMG_4901.jpg") type("image/jpeg"));
  }
}
@media(min-width:1800px){
  .hero-bg{background-image:url("img/IMG_4901.jpg");background-image:image-set(url("img/optimized/hero-2400.webp") type("image/webp"),url("img/IMG_4901.jpg") type("image/jpeg"))}
}
