:root{
    --ink:#0b2340;
    --ink-soft:#48607a;
    --sand:#f4efe2;
    --sand-deep:#e9e0c9;
    --teal:#014177;
    --teal-deep:#012c50;
    --coral:#d9835c;
    --gold:#c99a41;
    --white:#fffdf8;
    --line: rgba(11,35,64,0.14);
    --radius: 14px;
    --shadow: 0 12px 30px -12px rgba(11,35,64,0.28);
    --maxw: 1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--sand);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces',serif;
    font-weight:600;
    margin:0;
    letter-spacing:-0.01em;
  }
  .mono{ font-family:'JetBrains Mono',monospace; }
  p{ line-height:1.6; color:var(--ink-soft); margin:0; }
  a{ color:inherit; }
  img{max-width:100%; display:block;}
  button{font-family:inherit; cursor:pointer;}
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }
  :focus-visible{ outline:2px solid var(--teal); outline-offset:3px; }

  /* ---------- NAV ---------- */
  header.site-nav{
    position:sticky; top:0; z-index:50;
    background:rgba(244,239,226,0.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    max-width:var(--maxw); margin:0 auto; padding:16px 28px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .nav-left{
  display:flex;
  align-items:center;
}
  .brand{ display:flex; align-items:center; gap:10px; }
  .brand-logo{
  height:44px;
  width:auto;
  display:block;
}
  .brand-name{ font-family:'Fraunces',serif; font-size:19px; font-weight:600; }
  nav.menu{
  display:flex; gap:6px;
  position:relative;
  margin-left:8px;
  padding-left:24px;
}
nav.menu::before{
  content:'';
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  width:1px;
  height:45px;
  background:var(--line);
}
  nav.menu button{
    background:none; border:none; color:var(--ink-soft);
    font-size:14.5px; padding:9px 14px; border-radius:100px;
    transition:.18s;
  }
  nav.menu button:hover{ background:var(--sand-deep); color:var(--ink); }
  nav.menu button.active{ background:var(--teal); color:var(--white); }
  .nav-cta{
    display:flex; align-items:center; gap:14px;
  }
  .btn-whatsapp-mini{
    background:var(--ink); color:var(--white); border:none;
    padding:10px 16px; border-radius:100px; font-size:13.5px; font-weight:600;
    display:flex; align-items:center; gap:6px; white-space:nowrap;
  }
  .hamburger{ display:none; background:none; border:1px solid var(--line); border-radius:8px; padding:8px 10px; }
  .mobile-menu{ display:none; flex-direction:column; padding:0 28px 16px; gap:4px; }
  .mobile-menu.open{ display:flex; }
  .mobile-menu button{
    text-align:left; background:none; border:none; padding:10px 6px;
    font-size:15px; color:var(--ink-soft); border-bottom:1px solid var(--line);
  }
  .mobile-menu button.active{ color:var(--teal); font-weight:700; }

  @media (max-width:880px){
    nav.menu{ display:none; }
    .hamburger{ display:block; }
  }

  /* ---------- WAVE DIVIDER (signature element) ---------- */
  .wave{ display:block; width:100%; height:56px; margin-top:-1px; }

  /* ---------- HERO ---------- */
  .hero{
    position:relative; background:var(--ink); color:var(--white);
    padding-bottom:0;
  }
  .hero::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:70px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0,24 C300,64 520,4 780,34 C1060,66 1260,0 1440,26 L1440,70 L0,70 Z' fill='%23f4efe2'/%3E%3C/svg%3E");
  background-size:100% 100%;
  background-repeat:no-repeat;
  pointer-events:none;
  z-index:3;
}
  .carousel{
    position:relative; height:64vh; min-height:420px; overflow:hidden;
  }
  .carousel::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to right,
    var(--ink) 0%,
    var(--ink) 20%,
    rgba(11,35,64,0.88) 28%,
    rgba(11,35,64,0.6) 38%,
    rgba(11,35,64,0.3) 48%,
    rgba(11,35,64,0.08) 60%,
    rgba(11,35,64,0) 72%
  );
  z-index:1;
  pointer-events:none;
}
  .slide{
    position:absolute; inset:0; opacity:0; transition:opacity 1.5s ease;
    display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:10px;
  }
  .slide.active{ opacity:1; }
  .slide .ph-icon{ font-size:44px; opacity:.85; }
  .slide .ph-label{
    font-family:'JetBrains Mono',monospace; font-size:12.5px;
    letter-spacing:.06em; text-transform:uppercase; opacity:.7;
  }
  .hero-overlay{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(11,35,64,0.15) 0%, rgba(11,35,64,0.72) 100%);
    display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
    padding:0 28px;
    z-index:2;
  }
  .hero-overlay-inner{ max-width:var(--maxw); width:100%; margin:0; padding-left:2vw; }
  .eyebrow{
    font-family:'JetBrains Mono',monospace; font-size:12.5px; letter-spacing:.12em;
    text-transform:uppercase; color:var(--gold); margin-bottom:14px; display:block;
  }
  .hero h1{ font-size:clamp(34px,5.2vw,58px); max-width:680px; color:var(--white); line-height:1.05; }
  .hero .lead{ color:rgba(255,253,248,0.86); max-width:520px; margin-top:16px; font-size:16.5px; }
  .carousel-controls{
    position:absolute; bottom:84px; left:0; right:0;
    display:flex; justify-content:center; gap:8px; z-index:5;
  }
  .dot{ width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,0.4); border:none; padding:0; }
  .dot.active{ background:var(--gold); width:20px; border-radius:5px; transition:.25s; }
  .arrow{
    position:absolute; top:50%; transform:translateY(-50%); z-index:5;
    background:rgba(255,253,248,0.14); border:1px solid rgba(255,253,248,0.3);
    color:var(--white); width:38px; height:38px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; font-size:16px;
  }
  .arrow:hover{ background:rgba(255,253,248,0.28); }
  .arrow.prev{ left:20px; } .arrow.next{ right:20px; }

  /* ---------- BOOKING CARD ---------- */
  .booking-card{
    background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow);
    margin:-64px auto 0; position:relative; z-index:10;
    max-width:calc(var(--maxw) - 56px);
    padding:26px 26px 24px;
    display:grid; grid-template-columns:1fr 1fr 1.4fr auto; gap:18px; align-items:end;
    border:1px solid var(--line);
  }
  .field label{
    display:block; font-family:'JetBrains Mono',monospace; font-size:11px;
    text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); margin-bottom:7px;
  }
  .field input[type=date]{
    width:100%; padding:11px 12px; border-radius:9px; border:1px solid var(--line);
    font-family:'Inter',sans-serif; font-size:14.5px; background:var(--sand);
  }
  .guest-field{ display:flex; flex-direction:column; gap:8px; }
  .stepper-row{
    display:flex; align-items:center; justify-content:space-between;
    background:var(--sand); border:1px solid var(--line); border-radius:9px; padding:7px 10px;
  }
  .stepper-row + .stepper-row{ margin-top:6px; }
  .stepper-label{ font-size:13.5px; }
  .stepper-sub{ font-size:11px; color:var(--ink-soft); display:block; }
  .stepper-controls{ display:flex; align-items:center; gap:10px; }
  .stepper-controls button{
    width:24px; height:24px; border-radius:50%; border:1px solid var(--line);
    background:var(--white); font-size:14px; line-height:1;
  }
  .stepper-controls button:disabled{
    background:var(--sand); color:var(--ink-soft); border-color:var(--line);
    opacity:.5; cursor:not-allowed;
  }
  .stepper-controls span{ min-width:16px; text-align:center; font-weight:600; font-size:14px; }
  .guest-summary-toggle{
    padding:11px 12px; border-radius:9px; border:1px solid var(--line); background:var(--sand);
    font-size:14px; text-align:left; position:relative; cursor:pointer;
  }
  .guest-panel{
    position:absolute; top:calc(100% + 8px); left:0; background:var(--white);
    border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow);
    padding:14px; width:280px; z-index:20; display:none;
  }
  .guest-panel.open{ display:block; }
  .cta-col{ display:flex; flex-direction:column; gap:8px; }
  .price-preview{ font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--ink-soft); text-align: center;}
  .price-preview b{ color:var(--teal-deep); font-size:15px; }
  .btn-primary{
    background:var(--coral); color:var(--white); border:none; padding:14px 20px;
    border-radius:10px; font-weight:700; font-size:14.5px; white-space:nowrap;
    display:flex; align-items:center; justify-content:center; gap:8px;
    box-shadow:0 10px 20px -8px rgba(217,131,92,0.55);
  }
  .btn-primary:not(:disabled):hover{
  filter:brightness(1.04);
}

.btn-primary:disabled{
  background:#b8b1a7;
  color:rgba(255,253,248,0.75);
  box-shadow:none;
  cursor:not-allowed;
}
  .booking-note{ font-size:11.5px; color:var(--ink-soft); margin-top:6px; }

  @media (max-width:960px){
    .booking-card{ grid-template-columns:1fr 1fr; margin:-40px 18px 0; }
    .cta-col{ grid-column:1/-1; }
  }

  /* ---------- SECTIONS ---------- */
  main{ padding-top:70px; }
  .page-section{ display:none; padding:0 0 90px; }
  .page-section.active{
  display:block;
  animation:section-enter .35s ease both;
}

@keyframes section-enter{
  from{
    opacity:0;
    transform:translateY(12px);
  }

  to{
    opacity:1;
    transform:translateY(0);
  }
}
  .section-head{ max-width:640px; margin:0 auto 46px; text-align:center; }
  .section-eyebrow{
    font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--coral); display:block; margin-bottom:10px;
  }
  .section-head h2{ font-size:clamp(26px,3.4vw,36px); }
  .section-head p{ margin-top:12px; }

  .placeholder-box{
    background:linear-gradient(135deg,var(--sand-deep), var(--sand));
    border:1px dashed var(--line);
    border-radius:12px; display:flex; flex-direction:column; align-items:center;
    justify-content:center; gap:6px; color:var(--ink-soft);
    font-family:'JetBrains Mono',monospace; font-size:11px; text-align:center; padding:14px;
  }
  .placeholder-box .ico{ font-size:26px; }

  /* História */
  .historia-grid{
    display:grid; grid-template-columns:0.9fr 1.1fr; gap:52px; align-items:center;
    max-width:var(--maxw); margin:0 auto; padding:0 28px;
  }
  .historia-grid .placeholder-box{ height:420px; }
  .historia-text p + p{ margin-top:14px; }
  .historia-text .quote{
    border-left:3px solid var(--coral); padding-left:16px; margin:22px 0;
    font-family:'Fraunces',serif; font-style:italic; font-size:18px; color:var(--ink);
  }
  @media (max-width:860px){ .historia-grid{ grid-template-columns:1fr; } .historia-grid .placeholder-box{height:280px;} }

  /* Cômodos */
  .rooms-grid{
    display:grid; grid-template-columns:repeat(6,1fr); gap:22px;
    max-width:var(--maxw); margin:0 auto; padding:0 28px;
  }
  .rooms-grid > .room-card{ grid-column:span 2; }

  /* Centraliza os 2 últimos cards quando sobram 2 numa linha de 3 */
  .rooms-grid > .room-card:nth-last-child(2):nth-child(3n+1){
    grid-column:2 / span 2;
  }
  .rooms-grid > .room-card:nth-last-child(1):nth-child(3n+2){
    grid-column:4 / span 2;
  }
  .rooms-panel{
  display:none;
}
.rooms-panel.active{
  display:block;
  animation:section-enter .35s ease both;
}
  .room-card .placeholder-box{ height:190px; border-radius:12px 12px 0 0; border-bottom:none; }
  .room-card{ background:var(--white); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
  .room-card-body{ padding:16px 18px 18px; }
  .room-card-body h3{ font-size:17px; margin-bottom:6px; }
  .room-card-body p{ font-size:13.5px; }
  @media (max-width:860px){ .rooms-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .rooms-grid{ grid-template-columns:1fr; } }

  /* Carrossel dentro do card de cômodo */
  .room-photo{
    position:relative;
    height:190px;
    border-radius:12px 12px 0 0;
    overflow:hidden;
    background:var(--sand-deep);
  }
  .room-photo-slide{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    opacity:0;
    cursor:pointer;
    transition:opacity .5s ease, transform .5s ease;
  }
  .room-photo-slide.active{ opacity:1; }
  .room-card:hover .room-photo-slide.active{ transform:scale(1.08); }
  .room-card:hover .room-photo{ box-shadow:var(--shadow); }

  .room-photo-arrow{
    position:absolute; top:50%; transform:translateY(-50%);
    width:30px; height:30px; border-radius:50%;
    background:rgba(11,35,64,0.55); color:var(--white); border:none;
    display:flex; align-items:center; justify-content:center;
    font-size:15px; opacity:0; transition:opacity .2s ease, background .2s ease;
    z-index:3;
  }
  .room-photo-arrow:hover{ background:rgba(11,35,64,0.85); }
  .room-photo-arrow.prev{ left:8px; }
  .room-photo-arrow.next{ right:8px; }
  .room-card:hover .room-photo-arrow{ opacity:1; }

  .room-photo-dots{
    position:absolute; bottom:8px; left:0; right:0;
    display:flex; justify-content:center; gap:5px; z-index:3;
  }
  .room-photo-dot{
    width:5px; height:5px; border-radius:50%; background:rgba(255,253,248,0.55);
    transition:.2s;
  }
  .room-photo-dot.active{ background:var(--white); width:14px; border-radius:4px; }

  /* Lightbox — visualização em tela cheia */
  .lightbox-overlay{
    position:fixed; inset:0; z-index:999;
    background:rgba(20,20,20,0.85);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    display:none; align-items:center; justify-content:center;
    padding:40px;
  }
  .lightbox-overlay.open{ display:flex; }
  .lightbox-content{
    max-width:90vw; max-height:85vh;
    display:flex; flex-direction:column; align-items:center; gap:12px;
  }
  .lightbox-img{
    max-width:90vw; max-height:78vh;
    object-fit:contain; border-radius:8px;
    box-shadow:0 20px 60px rgba(0,0,0,0.4);
  }
  .lightbox-caption{
    color:var(--white); display:flex; gap:14px; align-items:center; font-size:14px;
  }
  .lightbox-close{
    position:absolute; top:20px; right:24px;
    background:none; border:none; color:var(--white);
    font-size:28px; cursor:pointer; line-height:1;
  }
  .lightbox-arrow{
    position:absolute; top:50%; transform:translateY(-50%);
    background:rgba(255,255,255,0.12); border:none; color:var(--white);
    width:48px; height:48px; border-radius:50%; font-size:28px; cursor:pointer;
  }
  .lightbox-arrow:hover{ background:rgba(255,255,255,0.25); }
  .lightbox-arrow.prev{ left:20px; }
  .lightbox-arrow.next{ right:20px; }
  @media (max-width:640px){
    .lightbox-arrow{ width:40px; height:40px; font-size:22px; }
    .lightbox-close{ top:14px; right:14px; }
  }

  /* Equipe */
  .team-grid{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:22px;
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 28px;
}

.team-card{
  flex:0 1 calc((100% - 66px) / 4);
  text-align:center;
}
  .avatar-ph{
    width:120px; height:120px; border-radius:50%; margin:0 auto 14px;
    background:linear-gradient(135deg,var(--teal),var(--teal-deep));
    display:flex; align-items:center; justify-content:center; color:var(--white); font-size:26px;
  }
  .team-card h3{ font-size:15.5px; }
  .team-card .role{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--coral); text-transform:uppercase; letter-spacing:.05em; margin:5px 0 8px; }
  .team-card p{ font-size:13px; }
  .partner-image{
  width:120px;
  height:120px;
  display:block;
  object-fit:cover;
  object-position:center 15%;
  margin:0 auto 14px;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--white);
  transition:transform .25s ease, box-shadow .25s ease;
}

.partner-image:hover{
  transform:scale(1.08);
  box-shadow:var(--shadow);
}

.partner-image-contain{
  object-fit:contain;
  width:140px;
  height:140px;
  padding:0;
  border-radius:18px;
  border:none;
  background:transparent;
  filter:drop-shadow(0 6px 10px rgba(11,35,64,0.18));
}

.partner-contact{
  display:inline-block;
  margin-top:12px;
  color:var(--teal-deep);
  font-size:13px;
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:3px;
}
 @media (max-width:860px){
  .team-card{
    flex-basis:calc((100% - 22px) / 2);
  }
}

@media (max-width:560px){
  .team-card{
    flex-basis:100%;
  }
}
  .team-panel{
  display:none;
}

.team-panel.active{
  display:block;
  animation:section-enter .35s ease both;
}

  /* Avaliações */
    .reviews-carousel{
    display:flex; align-items:center; justify-content:center; gap:14px;
    max-width:var(--maxw); margin:0 auto; padding:0 28px;
    min-height:var(--reviews-h, auto);
  }
    .reviews-grid{
    display:flex; align-items:center; justify-content:center; gap:20px;
    flex:1; min-width:0;
    transition:transform .3s ease, opacity .3s ease;
    transform:translateX(0); opacity:1;
  }
  .reviews-grid.exit-to-left{ transform:translateX(-40px); opacity:0; }
  .reviews-grid.exit-to-right{ transform:translateX(40px); opacity:0; }
  .reviews-grid.enter-from-right{ transform:translateX(40px); opacity:0; }
  .reviews-grid.enter-from-left{ transform:translateX(-40px); opacity:0; }
    .review-card{
    background:var(--white); border:1px solid var(--line); border-radius:12px; padding:20px;
    flex:1; min-width:0; max-width:340px;
    opacity:.6; transform:scale(.92);
    transition:opacity .35s ease, transform .35s ease, box-shadow .35s ease;
  }
  .review-card.featured{
    opacity:1; transform:scale(1.06);
    box-shadow:var(--shadow); border-color:var(--teal);
    position:relative; z-index:2;
  }
  .stars{ color:var(--gold); font-size:18px; letter-spacing:2px; margin-bottom:10px; }
  .review-card p.quote-text{ font-size:15px; color:var(--ink); font-style:italic; }
  .review-meta{ margin-top:14px; display:flex; align-items:center; justify-content:space-between; }
  .review-meta .name{ font-weight:600; font-size:13.5px; }
  .review-meta .src{ font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--ink-soft); text-transform:uppercase; }

  .reviews-arrow{
    flex:none; width:38px; height:38px; border-radius:50%;
    background:var(--white); border:1px solid var(--line); color:var(--ink);
    display:flex; align-items:center; justify-content:center; font-size:16px;
  }
  .reviews-arrow:hover{ background:var(--sand-deep); }

  /* Selos de reconhecimento */
  .badges-grid{
    display:flex; justify-content:center; flex-wrap:wrap; gap:18px;
    max-width:var(--maxw); margin:0 auto 44px; padding:0 28px;
  }
  .badge-card{
    background:var(--white); border:1px solid var(--line); border-radius:12px;
    padding:22px 20px; max-width:270px; text-align:center;
  }
  .badge-icon{ margin-bottom:12px; display:flex; justify-content:center; }
  .badge-icon i{ width:28px; height:28px; color:var(--teal); stroke-width:1.75; }
  .badge-card h3{ font-size:15px; margin-bottom:8px; }
  .badge-card p{ font-size:13px; }
  .badge-card p.badge-sub{ margin-top:8px; font-size:11.5px; color:var(--ink-soft); }

  @media (max-width:860px){
    .badge-card{ max-width:none; width:100%; }
  }

  @media (max-width:860px){
    .reviews-grid{ flex-direction:column; }
    .review-card{ max-width:none; width:100%; opacity:1; transform:none; }
    .review-card.featured{ transform:none; }
  }

  /* Cidade */
  .city-tabs{ display:flex; justify-content:center; gap:10px; margin-bottom:36px; flex-wrap:wrap; }
  .city-tab-btn{
    background:var(--white); border:1px solid var(--line); padding:9px 18px;
    border-radius:100px; font-size:13.5px; color:var(--ink-soft);
    display:inline-flex; align-items:center; gap:7px;
    transition:.18s;
  }
  .city-tab-btn .tab-ico{ width:15px; height:15px; stroke-width:2; }
  .city-tab-btn.active{ background:var(--teal); color:var(--white); border-color:var(--teal); }
  .city-panel{ display:none; max-width:var(--maxw); margin:0 auto; padding:0 28px; }
  .city-panel.active{
    display:block;
    animation:section-enter .35s ease both;
  }
  .city-list{ display:grid; grid-template-columns:repeat(6,1fr); gap:18px; }
  .city-list > .city-item{ grid-column:span 2; }

  /* Centraliza os 2 últimos cards quando sobram 2 numa linha de 3 */
  .city-list > .city-item:nth-last-child(2):nth-child(3n+1){
    grid-column:2 / span 2;
  }
  .city-list > .city-item:nth-last-child(1):nth-child(3n+2){
    grid-column:4 / span 2;
  }
  .city-item{
    background:var(--white); border:1px solid var(--line); border-radius:12px; padding:18px;
    transition:transform .25s ease, box-shadow .25s ease;
    display:flex; flex-direction:column; height:100%;
  }
  .city-item:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow);
  }
  .city-item .ico{ width:26px; height:26px; margin-bottom:10px; color:var(--teal); stroke-width:1.75; }
  .city-item h3{ font-size:15px; margin-bottom:6px; }
  .city-item p{ font-size:13px; }
  .city-bottom{
    margin-top:auto; padding-top:14px;
    display:flex; flex-direction:column; gap:12px;
  }
  .city-tags{ display:flex; flex-wrap:wrap; gap:6px; }
  .city-tag{
    background:var(--sand-deep); color:var(--ink-soft);
    font-family:'JetBrains Mono',monospace; font-size:10.5px; text-transform:uppercase;
    padding:4px 9px; border-radius:100px;
  }
  .city-map-link{
    display:inline-flex; align-items:center; gap:4px;
    color:var(--teal); font-weight:600; font-size:13px;
    text-decoration:none;
  }
  .city-map-link:hover{ text-decoration:underline; }
  .city-map-link .city-map-icon{ width:14px; height:14px; }
  .city-map-link:hover{ text-decoration:underline; }
  @media (max-width:860px){ .city-list{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .city-list{ grid-template-columns:1fr; } }

  /* FAQ */
  .faq-search-wrap{ position:relative; width:380px; max-width:100%; margin:0 auto 40px; }
  .faq-search-icon{
    position:absolute; left:17px; top:50%; transform:translateY(-50%);
    width:18px; height:18px; color:var(--ink-soft); pointer-events:none;
  }
  .faq-search-input{
    width:100%; height:43px; padding:0 16px 0 46px; border-radius:100px;
    border:1.5px solid var(--line); background:var(--white);
    font-family:'Inter',sans-serif; font-size:14.5px; color:var(--ink);
    box-shadow:0 4px 14px -6px rgba(11,35,64,0.12);
    transition:border-color .2s ease, box-shadow .2s ease;
  }
  .faq-search-input:focus{
    outline:none; border-color:var(--teal);
    box-shadow:0 4px 16px -4px rgba(1,65,119,0.25);
  }

  #faqGroups{ max-width:620px; margin:0 auto; }

  .faq-group{
    background:var(--white); border:1px solid var(--line); border-radius:14px;
    padding:8px 24px; margin-bottom:28px;
  }
  .faq-group-title{
    font-size:12px; font-family:'JetBrains Mono',monospace; text-transform:uppercase;
    letter-spacing:.08em; color:var(--coral); padding:16px 0 6px;
  }
  .faq-item{ border-top:1px solid var(--line); }
  .faq-item:first-of-type{ border-top:none; }

  .faq-question{
    width:100%; background:none; border:none; text-align:left;
    padding:16px 0; display:flex; align-items:center; justify-content:space-between; gap:16px;
    font-family:'Fraunces',serif; font-size:15.5px; color:var(--ink); font-weight:600;
  }

  .faq-toggle-icon{ position:relative; width:16px; height:16px; flex:none; }
  .faq-toggle-icon::before, .faq-toggle-icon::after{
    content:''; position:absolute; background:var(--ink-soft); border-radius:2px;
    transition:transform .25s ease, opacity .25s ease;
  }
  .faq-toggle-icon::before{ top:50%; left:0; right:0; height:2px; transform:translateY(-50%); }
  .faq-toggle-icon::after{ left:50%; top:0; bottom:0; width:2px; transform:translateX(-50%); }
  .faq-item.open .faq-toggle-icon::after{ opacity:0; transform:translateX(-50%) rotate(90deg); }
  .faq-item.open .faq-question{ color:var(--teal); }

  .faq-answer-wrap{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s ease; }
  .faq-item.open .faq-answer-wrap{ grid-template-rows:1fr; }
  .faq-answer-inner{ overflow:hidden; }
  .faq-answer-inner p{
    padding:13px 0 18px; font-size:13.5px; line-height:1.65;
    font-family:'Inter',sans-serif; color:var(--ink-soft);
  }

  .faq-cta{
    text-align:center; margin-top:68px;
    display:flex; flex-direction:column; align-items:center; gap:14px;
  }
  .faq-cta p{ font-size:14.5px; margin:0; }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--ink); color:rgba(255,253,248,0.82); padding:52px 0 26px; }
  .footer-inner{
    max-width:var(--maxw); margin:0 auto; padding:0 28px;
    display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap;
  }
  footer h4{ color:var(--white); font-size:16px; margin-bottom:12px; }

  /* -------- FOOTER BRAND ------- */

 .footer-brand-block{
  position:relative;
  padding-left:72px;
}

.footer-brand{
  margin-bottom:4px;
}

.footer-logo{
  position:absolute;
  left:0;
  top:0;
  height:44px;
  width:auto;
  display:block;
  filter:brightness(0) invert(1);
  opacity:.75;
}

.footer-brand h4{
  margin:0;
  line-height:1.15;
}

.footer-brand-block p{
  margin:0 0 14px;
  line-height:1.6;
}

.footer-whatsapp-btn{
  margin-top:0;
  margin-left:-48px;
}
  footer p, footer a{ font-size:13.5px; color:rgba(255,253,248,0.72); }
  
  /* -------- FOOTER NAVIGATION ------ */
  
 .footer-navigation{
  display:flex;
  flex-direction:column;
  align-items:center;
  list-style:none;
  margin:0 auto;
  padding:0;
  width:fit-content;
}

.footer-navigation li{
  margin-bottom:8px;
}

.footer-navigation li:last-child{
  margin-bottom:0;
}
  .footer-bottom{
    max-width:var(--maxw); margin:34px auto 0; padding:18px 28px 0; border-top:1px solid rgba(255,253,248,0.14);
    font-size:12px; color:rgba(255,253,248,0.5); font-family:'JetBrains Mono',monospace;
  }
  .footer-bottom a{
  color:var(--white);
  font-size:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
}
  .footer-whatsapp{
    background:var(--coral); color:var(--white); border:none; padding:12px 20px; border-radius:10px;
    font-weight:700; font-size:14px; margin-top:10px;
  }

  /* -------- FOOTER CONTACT ------- */

.footer-navigation-block,
.footer-contact-block{
  text-align:center;
}
.footer-contact-line{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:0 0 10px;
  text-decoration:none;
  transition:opacity .2s ease;
}
.footer-contact-line:hover{
  opacity:.8;
}
p.footer-contact-line:hover{
  opacity:1;
}

.footer-contact-line:last-child{
  margin-bottom:0;
}

.footer-contact-icon{
  width:16px;
  height:16px;
  flex:0 0 16px;
  fill:none;
  stroke:var(--white);
  stroke-width:1.8;
  opacity:.75;
}
.footer-contact-icon-fill{
  fill:var(--white);
  stroke:none;
}

/* ---------- SELETOR DE CHECK-OUT ---------- */
.checkout-select-toggle{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  padding:11px 14px; border-radius:9px; border:1px solid var(--line); background:var(--sand);
  font-size:14.5px; font-family:'Inter',sans-serif; color:var(--ink);
}
.checkout-select-toggle .chevron{ color:var(--ink-soft); transition:transform .2s; display:inline-block; }
.checkout-select-toggle.open .chevron{ transform:rotate(180deg); }

.checkout-panel{
  position:absolute; top:calc(100% + 8px); left:0; right:0; background:var(--white);
  border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow);
  padding:6px; z-index:20;
  opacity:0; transform:translateY(-6px); pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
}
.checkout-panel.open{ opacity:1; transform:translateY(0); pointer-events:auto; }

.checkout-option{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 12px; border-radius:8px; font-size:14px; cursor:pointer;
}
.checkout-option:hover{ background:var(--sand); }
.checkout-option .fee{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--ink-soft); }
.checkout-option.selected{ background:var(--sand-deep); font-weight:600; }

.checkout-confirm{
  opacity:0; transform:translateY(6px);
  transition:opacity .25s ease, transform .25s ease;
}
.checkout-confirm.show{ opacity:1; transform:translateY(0); }

.breakdown-line-fade{ animation:fadeInLine .25s ease forwards; }
@keyframes fadeInLine{ from{ opacity:0; } to{ opacity:1; } }
