/* ============================================================
     CABRÓN BARBEARIA — token system
     Color   : ink #0c0b0a, graphite #1b1814, graphite-2 #262219,
               bone #ece5d6, bone-dim #9c9484, amber #b8541f, amber-2 #e08a3c
     Type    : Instrument Serif (display serif, editorial statements)
               Inter (interface, labels, navigation, running text)
               Fraunces reserved only for the wordmark fallback text —
               never reassigned, per brand lock.
     Layout  : full-bleed cinematic sections on a near-black ground,
               hairline hairlines in amber, asymmetric editorial grid,
               generous negative space between statements.
     Single committed dark world — colors painted explicitly so the
     page holds regardless of viewer theme.
  ============================================================ */

  @import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Bodoni+Moda:wght@500;600&family=Inter:wght@400;500;600;700&family=Fraunces:wght@700&display=swap');

  :root{
    --ink:#0c0b0a;
    --graphite:#1a1712;
    --graphite-2:#28241a;
    --graphite-3:#3a3426;
    --bone:#ece5d6;
    --bone-dim:#a89f8c;
    --amber:#b8541f;
    --amber-2:#e08a3c;
    --line: rgba(236,229,214,0.14);
    --line-amber: rgba(184,84,31,0.55);
    --serif:'Instrument Serif', Georgia, 'Times New Roman', serif;
    --brand-serif:'Fraunces', Georgia, 'Times New Roman', serif;
    --sans-x:'Inter', Arial, sans-serif;
    --sans:'Inter', Arial, Helvetica, sans-serif;
    color-scheme: dark;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

  body{
    background:var(--ink);
    color:var(--bone);
    font-family:var(--sans);
    font-size:16px;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  h1,h2,h3,h4{margin:0;font-weight:400;text-wrap:balance;}
  p{margin:0;}
  ul{margin:0;padding:0;list-style:none;}
  button{font-family:inherit;border:none;background:none;color:inherit;cursor:pointer;}

  .wrap{
    max-width:1360px;
    margin:0 auto;
    padding-inline:clamp(20px,5vw,64px);
  }

  .eyebrow{
    font-family:var(--sans-x);
    font-weight:500;
    font-size:11px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--amber-2);
  }

  .hairline{
    height:1px;
    width:100%;
    background:var(--line);
  }

  /* ---------- reveal-on-scroll ---------- */
  [data-reveal]{
    opacity:1;
    transform:none;
  }
  @media (prefers-reduced-motion: no-preference){
    [data-reveal]{
      opacity:0;
      transform:translateY(28px);
      transition:opacity .9s cubic-bezier(.16,.8,.24,1), transform .9s cubic-bezier(.16,.8,.24,1);
      transition-delay:var(--d,0ms);
    }
    [data-reveal].is-visible{ opacity:1; transform:translateY(0); }
  }

  /* ============================================================
     NAV
  ============================================================ */
  .nav{
    position:fixed;
    top:0; left:0; right:0;
    z-index:100;
    padding-top:calc(env(safe-area-inset-top,0px) + 18px);
    padding-bottom:18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    transition:background .5s ease, padding .4s ease, border-color .5s ease;
    border-bottom:1px solid transparent;
  }
  .nav.scrolled{
    background:rgba(12,11,10,0.86);
    backdrop-filter:blur(10px);
    padding-top:calc(env(safe-area-inset-top,0px) + 10px);
    padding-bottom:10px;
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    width:100%;
    max-width:1360px;
    margin:0 auto;
    padding-inline:clamp(20px,5vw,64px);
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .brand-mark{
    display:flex;
    align-items:center;
    gap:10px;
    font-family:var(--brand-serif);
    font-weight:700;
    font-size:20px;
    letter-spacing:.02em;
    color:var(--bone);
  }
  .brand-mark img{height:22px;width:auto;opacity:.92;}
  .brand-mark .b-icon{ height:28px; width:auto; opacity:.85; }
  .brand-mark .b-word{ height:19px; width:auto; opacity:.95; }
  .brand-mark sup{
    font-family:var(--sans-x);
    font-size:9px;
    font-weight:600;
    letter-spacing:.18em;
    color:var(--amber-2);
    margin-left:6px;
    text-transform:uppercase;
    top:-2px;
  }
  .nav-links{
    display:flex;
    align-items:center;
    gap:38px;
    font-family:var(--sans-x);
    font-size:12px;
    letter-spacing:.04em;
    text-transform:uppercase;
    font-weight:500;
  }
  .nav-links a{
    position:relative;
    padding-bottom:4px;
    color:var(--bone-dim);
    transition:color .3s ease;
  }
  .nav-links a::after{
    content:'';
    position:absolute; left:0; bottom:0;
    width:0%; height:1px;
    background:var(--amber-2);
    transition:width .35s ease;
  }
  .nav-links a:hover{color:var(--bone);}
  .nav-links a:hover::after{width:100%;}
  .nav-cta{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:5px 18px 5px 5px;
    clip-path:polygon(6% 0%, 94% 0%, 100% 50%, 94% 100%, 6% 100%, 0% 50%);
    background:rgba(12,11,10,.4);
    box-shadow:inset 0 0 0 1.5px var(--amber);
    color:var(--bone);
    transition:background .3s ease,color .3s ease,box-shadow .3s ease;
    white-space:nowrap;
  }
  .nav-cta .btn-icon{ width:26px; height:26px; border:1px solid var(--amber); color:var(--amber-2); }
  .nav-cta .btn-icon svg{ width:12px; height:12px; }
  .nav-cta .btn-divider{ width:1px; height:15px; background:var(--amber); }
  .nav-cta .btn-label{ font-family:var(--sans-x); font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; }
  .nav-cta:hover{background:var(--amber);box-shadow:inset 0 0 0 1.5px var(--amber);}
  .nav-cta:hover .btn-label{ color:var(--ink); }
  .nav-cta:hover .btn-icon{ border-color:var(--ink); color:var(--ink); }
  .burger{
    display:none;
    width:34px;height:34px;
    position:relative;
    z-index:210;
  }
  .burger span{
    position:absolute;left:6px;right:6px;height:1px;background:var(--bone);
    transition:transform .35s ease, opacity .3s ease, top .35s ease;
  }
  .burger span:nth-child(1){top:12px;}
  .burger span:nth-child(2){top:17px;}
  .burger span:nth-child(3){top:22px;}
  .burger.open span:nth-child(1){top:17px;transform:rotate(45deg);}
  .burger.open span:nth-child(2){opacity:0;}
  .burger.open span:nth-child(3){top:17px;transform:rotate(-45deg);}

  .mobile-menu{
    position:fixed;inset:0;
    z-index:190;
    background:var(--ink);
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:26px;
    padding:0 32px;
    transform:translateY(-100%);
    transition:transform .5s cubic-bezier(.16,.8,.24,1);
  }
  .mobile-menu.open{transform:translateY(0);}
  .mobile-menu a{
    font-family:var(--sans);
    font-size:clamp(28px,9vw,42px);
    font-weight:600;
    letter-spacing:-.01em;
    color:var(--bone);
    border-bottom:1px solid var(--line);
    padding-bottom:14px;
  }
  .mobile-menu .mm-cta{
    margin-top:10px;
    font-family:var(--sans-x);
    font-size:13px;
    font-weight:600;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--amber-2);
    border:none;
  }

  /* ============================================================
     HERO
  ============================================================ */
  .hero{
    position:relative;
    min-height:100vh;
    min-height:100svh;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    overflow:hidden;
    isolation:isolate;
  }
  .hero-media{
    position:absolute;inset:0;
    z-index:-2;
    overflow:hidden;
  }
  .hero-media img{
    width:100%;height:100%;
    object-fit:cover;
    object-position:center 62%;
    filter:grayscale(.05) contrast(1.06) brightness(.88);
    transform:scale(1.08) translateY(0);
    will-change:transform;
  }
  .hero::after{
    content:'';
    position:absolute;inset:0;
    z-index:-1;
    background:
      linear-gradient(180deg, rgba(12,11,10,.55) 0%, rgba(12,11,10,.15) 30%, rgba(12,11,10,.35) 62%, rgba(12,11,10,.98) 100%),
      linear-gradient(90deg, rgba(12,11,10,.82) 0%, rgba(12,11,10,.58) 32%, rgba(12,11,10,.28) 66%, rgba(12,11,10,.08) 100%);
  }
  .hero-top{
    padding-top:calc(env(safe-area-inset-top,0px) + 108px);
    padding-inline:clamp(20px,5vw,64px);
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
  }
  .hero-tag{
    font-family:var(--sans-x);
    font-weight:500;
    font-size:11px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--bone-dim);
    text-align:right;
    line-height:1.8;
  }
  .hero-seal{
    margin-top:18px;
    width:clamp(96px,11vw,150px);
    height:auto;
    opacity:.68;
    filter:drop-shadow(0 4px 18px rgba(0,0,0,.4));
  }
  .hero-seal svg{ display:block; width:100%; height:100%; }
  .hero-title{
    padding-inline:clamp(16px,5vw,64px);
    margin-top:auto;
  }
  .hero-title h1{
    font-family:var(--serif);
    font-weight:400;
    font-size:clamp(64px,17vw,220px);
    line-height:.86;
    letter-spacing:-.01em;
    color:var(--bone);
  }
  .hero-title h1 span{ color:var(--amber); font-style:italic; font-weight:400; }
  .hero-title img{
    width:clamp(260px,56vw,740px);
    height:auto;
    display:block;
    filter:drop-shadow(0 16px 46px rgba(0,0,0,.55));
  }
  .hero-sub{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    align-items:flex-end;
    gap:18px;
    padding-inline:clamp(16px,5vw,64px);
    padding-top:18px;
    padding-bottom:calc(env(safe-area-inset-bottom,0px) + 34px);
    border-top:1px solid var(--line);
    margin-top:clamp(64px,9vw,108px);
  }
  .hero-loc{
    font-family:var(--sans-x);
    font-weight:500;
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--bone-dim);
    display:flex;
    gap:22px;
    flex-wrap:wrap;
  }
  .hero-loc b{color:var(--bone);font-weight:600;}
  .hero-ctas{
    display:flex;
    gap:14px;
    flex-wrap:wrap;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:14px;
    padding:7px 26px 7px 7px;
    clip-path:polygon(4.5% 0%, 95.5% 0%, 100% 50%, 95.5% 100%, 4.5% 100%, 0% 50%);
    transition:transform .3s ease, background .3s ease, color .3s ease, box-shadow .3s ease;
  }
  .btn-icon{
    display:flex; align-items:center; justify-content:center;
    width:34px; height:34px;
    border-radius:50%;
    flex-shrink:0;
  }
  .btn-icon svg{ width:15px; height:15px; }
  .btn-divider{ width:1px; height:20px; flex-shrink:0; }
  .btn-label{
    font-family:var(--sans-x);
    font-size:12px;
    letter-spacing:.12em;
    text-transform:uppercase;
    font-weight:600;
    white-space:nowrap;
  }
  .btn-solid{ background:var(--amber); }
  .btn-solid .btn-icon{ border:1px solid rgba(12,11,10,.35); color:var(--ink); }
  .btn-solid .btn-divider{ background:rgba(12,11,10,.35); }
  .btn-solid .btn-label{ color:var(--ink); }
  .btn-solid:hover{ background:var(--amber-2); transform:translateY(-2px); }
  .btn-ghost{ background:rgba(12,11,10,.4); box-shadow:inset 0 0 0 1.5px var(--line); }
  .btn-ghost .btn-icon{ border:1px solid var(--line); color:var(--bone); }
  .btn-ghost .btn-divider{ background:var(--line); }
  .btn-ghost .btn-label{ color:var(--bone); }
  .btn-ghost:hover{ box-shadow:inset 0 0 0 1.5px var(--bone); transform:translateY(-2px); }

  .scroll-cue{
    position:absolute;
    left:clamp(16px,5vw,64px);
    bottom:calc(env(safe-area-inset-bottom,0px) + 128px);
    display:flex;
    align-items:center;
    gap:10px;
    font-family:var(--sans-x);
    font-weight:500;
    font-size:10px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--bone-dim);
    z-index:2;
  }
  .scroll-cue .line{
    width:1px;height:34px;
    background:linear-gradient(var(--bone-dim), transparent);
  }
  @media (prefers-reduced-motion: no-preference){
    .scroll-cue .line{ animation:cue 1.8s ease-in-out infinite; }
  }
  @keyframes cue{ 0%,100%{ transform:scaleY(1); opacity:.7;} 50%{ transform:scaleY(.4); opacity:1;} }

  /* ============================================================
     STATEMENT (breather) — light break in the black
  ============================================================ */
  .statement{
    background:var(--bone);
    padding-block:clamp(64px,9vw,110px);
  }
  .statement-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:clamp(30px,6vw,90px);
    flex-wrap:wrap;
  }
  .statement h2{
    font-family:'Bodoni Moda', var(--serif);
    font-weight:600;
    font-size:clamp(32px,5.8vw,68px);
    line-height:.98;
    letter-spacing:-.01em;
    text-transform:uppercase;
    color:var(--ink);
    max-width:14ch;
  }
  .statement-side{ max-width:270px; flex-shrink:0; }
  .statement-side p{
    font-family:var(--sans);
    font-weight:400;
    font-size:13.5px;
    line-height:1.75;
    color:rgba(12,11,10,.62);
  }
  .statement-side .rule{
    display:block;
    width:46px;
    height:2px;
    background:var(--amber);
    margin-top:20px;
  }

  /* ============================================================
     SERVICES — editorial index
  ============================================================ */
  .services{ padding-block:clamp(70px,12vw,130px); }
  .services-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:24px;
    margin-bottom:clamp(40px,7vw,70px);
    flex-wrap:wrap;
  }
  .services-head h2{
    font-family:var(--serif);
    font-size:clamp(38px,6.5vw,70px);
    font-weight:400;
    line-height:1;
  }
  .services-head p{
    max-width:36ch;
    color:var(--bone-dim);
    font-size:14px;
    line-height:1.7;
  }
  .menu-list{ border-top:1px solid var(--line); }
  .menu-item{
    position:relative;
    display:grid;
    grid-template-columns:64px 1fr auto;
    align-items:center;
    gap:28px;
    padding:clamp(26px,4vw,40px) 4px;
    border-bottom:1px solid var(--line);
    overflow:hidden;
    isolation:isolate;
  }
  .menu-item::before{
    content:'';
    position:absolute; inset:0;
    z-index:-1;
    background-image:var(--bg-img);
    background-size:cover;
    background-position:center;
    opacity:0;
    filter:grayscale(.1) brightness(.85) contrast(1.05);
    transform:scale(1.06);
    transition:opacity .5s ease, transform .8s ease;
  }
  .menu-item::after{
    content:'';
    position:absolute;inset:0;z-index:-1;
    background:linear-gradient(90deg, rgba(12,11,10,.88) 0%, rgba(12,11,10,.4) 100%);
    opacity:0;
    transition:opacity .5s ease;
  }
  .menu-item:hover::before{ opacity:1; transform:scale(1); }
  .menu-item:hover::after{ opacity:1; }
  /* touch devices have no hover — keep the photo visible by default */
  @media (hover:none){
    .menu-item::before{ opacity:.8; transform:scale(1); }
    .menu-item::after{ opacity:1; }
  }
  .menu-num{
    font-family:var(--sans-x);
    font-weight:500;
    font-size:11px;
    color:var(--amber-2);
    letter-spacing:.16em;
  }
  .menu-name{
    font-family:var(--sans);
    font-size:clamp(15px,1.7vw,18px);
    font-weight:600;
    letter-spacing:-.005em;
    transition:transform .4s ease;
  }
  .menu-item:hover .menu-name{ transform:translateX(10px); }
  .menu-price{
    font-family:var(--sans-x);
    font-size:clamp(16px,2.4vw,22px);
    font-weight:600;
    color:var(--bone);
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }
  .menu-price small{
    display:block;
    font-family:var(--sans);
    font-size:10px;
    font-weight:400;
    color:var(--bone-dim);
    text-transform:uppercase;
    letter-spacing:.12em;
    margin-top:3px;
  }
  .services-foot{
    margin-top:clamp(40px,6vw,64px);
    display:flex;
    justify-content:center;
  }

  /* ============================================================
     CASA / EXPERIÊNCIA
  ============================================================ */
  .casa{
    background:var(--graphite);
    padding-block:clamp(80px,12vw,140px);
  }
  .casa-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:clamp(30px,6vw,80px);
    align-items:center;
  }
  .casa-media{
    aspect-ratio:4/5;
    overflow:hidden;
    position:relative;
  }
  .casa-media img{
    width:100%;height:100%;object-fit:cover;
    filter:contrast(1.05) saturate(.94);
  }
  .casa-text h2{
    font-family:var(--serif);
    font-size:clamp(34px,5.5vw,58px);
    font-weight:400;
    line-height:1.05;
    margin-bottom:22px;
  }
  .casa-text p{
    color:var(--bone-dim);
    font-size:15px;
    line-height:1.75;
    max-width:44ch;
  }
  .casa-text p + p{ margin-top:16px; }
  .casa-addr{
    margin-top:34px;
    padding-top:24px;
    border-top:1px solid var(--line);
    font-family:var(--sans-x);
    font-weight:500;
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    line-height:2;
    color:var(--bone-dim);
  }
  .casa-addr b{ color:var(--bone); display:block; font-size:13px; font-weight:600; margin-bottom:4px; }

  /* ============================================================
     GALLERY — asymmetric
  ============================================================ */
  .gallery{ padding-block:clamp(80px,12vw,140px); }
  .gallery-head{
    display:flex; justify-content:space-between; align-items:baseline;
    margin-bottom:clamp(40px,6vw,64px); gap:20px; flex-wrap:wrap;
  }
  .gallery-head h2{ font-family:var(--serif); font-size:clamp(32px,5vw,54px); font-weight:400; }
  .g-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:clamp(10px,1.6vw,18px);
  }
  .g-item{ position:relative; overflow:hidden; }
  .g-item img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 1.1s cubic-bezier(.16,.8,.24,1), filter .6s ease;
    transform:scale(1.001);
  }
  .g-item:hover img{ transform:scale(1.06); }
  .g-cap{
    position:absolute; left:16px; bottom:16px; right:16px;
    font-family:var(--sans-x);
    font-weight:500;
    font-size:10px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--bone);
    opacity:0;
    transform:translateY(8px);
    transition:opacity .4s ease, transform .4s ease;
    text-shadow:0 2px 10px rgba(0,0,0,.6);
  }
  .g-item:hover .g-cap{ opacity:1; transform:translateY(0); }
  .g-item.tall{ grid-column:span 2; grid-row:span 2; aspect-ratio:3/4; }
  .g-item.wide{ grid-column:span 4; aspect-ratio:16/9; }
  .g-item.sq{ grid-column:span 2; aspect-ratio:1/1; }
  .g-item.mark{
    grid-column:span 2;
    display:flex; align-items:center; justify-content:center;
    background:var(--graphite-2);
  }
  .g-item.mark img{
    width:44%;height:auto;object-fit:contain;object-position:center;
    filter:none;
    opacity:.85;
  }

  /* ============================================================
     EQUIPE
  ============================================================ */
  .equipe{ background:var(--graphite); padding-block:clamp(80px,12vw,140px); }
  .equipe-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(30px,6vw,70px);
    align-items:center;
  }
  .equipe-media{ overflow:hidden; aspect-ratio:1205/774; }
  .equipe-media img{ width:100%;height:100%;object-fit:cover; object-position:50% 50%; }
  .equipe-text h2{
    font-family:var(--serif); font-size:clamp(34px,5.5vw,58px); font-weight:400; line-height:1.05; margin-bottom:20px;
  }
  .equipe-text p{ color:var(--bone-dim); font-size:15px; line-height:1.75; max-width:46ch; }
  .equipe-names{
    display:flex; gap:40px; margin-top:34px; padding-top:26px; border-top:1px solid var(--line);
  }
  .equipe-name b{
    display:block; font-family:var(--serif); font-size:24px; font-weight:400; color:var(--bone);
  }
  .equipe-name span{
    display:block; font-family:var(--sans-x); font-weight:500; font-size:10px; letter-spacing:.14em;
    text-transform:uppercase; color:var(--amber-2); margin-top:4px;
  }

  /* ============================================================
     DEPOIMENTOS
  ============================================================ */
  .depo{ padding-block:clamp(90px,14vw,150px); }
  .depo-head{
    display:flex; flex-direction:column; align-items:center; text-align:center;
    margin-bottom:clamp(50px,8vw,80px);
  }
  .depo-rating{
    display:flex; align-items:baseline; gap:10px; margin-top:10px;
  }
  .depo-rating .num{ font-family:var(--sans); font-weight:600; font-size:38px; color:var(--bone); }
  .depo-rating .stars{ color:var(--amber-2); font-size:18px; letter-spacing:2px; }
  .depo-rating .count{ font-family:var(--sans-x); font-weight:500; font-size:11px; letter-spacing:.12em; color:var(--bone-dim); text-transform:uppercase; }
  .depo-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .depo-card{
    background:var(--ink);
    padding:clamp(30px,4vw,42px);
    display:flex; flex-direction:column; gap:22px;
  }
  .depo-quote{
    font-family:var(--serif);
    font-size:clamp(17px,1.6vw,20px);
    font-weight:400;
    font-style:italic;
    line-height:1.5;
    color:var(--bone);
  }
  .depo-quote::before{ content:'“'; color:var(--amber); font-size:16px; display:block; line-height:.4; margin-bottom:4px; font-style:normal;}
  .depo-name{
    margin-top:auto;
    font-family:var(--sans-x);
    font-weight:500;
    font-size:11px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--bone-dim);
    padding-top:16px;
    border-top:1px solid var(--line);
  }
  .depo-name b{ color:var(--bone); font-weight:600; }

  /* ============================================================
     STATEMENT FINAL / IMPACT BREAK
  ============================================================ */
  .impact{
    position:relative;
    min-height:70vh;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    overflow:hidden;
    isolation:isolate;
  }
  .impact-media{ position:absolute; inset:0; z-index:-2; }
  .impact-media img{ width:100%;height:100%;object-fit:cover; filter:grayscale(1) contrast(1.15) brightness(.55); }
  .impact::after{
    content:'';
    position:absolute; inset:0; z-index:-1;
    background:linear-gradient(180deg, rgba(12,11,10,.75), rgba(12,11,10,.88));
  }
  .impact h2{
    font-family:var(--serif);
    font-size:clamp(38px,7.5vw,100px);
    font-weight:400;
    line-height:.95;
    letter-spacing:-.01em;
    max-width:16ch;
    padding-block:clamp(70px,10vw,110px);
  }
  .impact h2 em{ color:var(--amber-2); font-style:italic; }

  /* ============================================================
     LOCAL / HORÁRIOS / CTA
  ============================================================ */
  .local{ padding-block:clamp(80px,12vw,140px); }
  .local-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(40px,6vw,90px);
  }
  .local-block h3{
    font-family:var(--sans-x); font-weight:500; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
    color:var(--amber-2); margin-bottom:22px;
  }
  .local-addr{
    font-family:var(--sans);
    font-size:16px;
    font-weight:500;
    line-height:1.6;
    margin-bottom:22px;
  }
  .local-note{ color:var(--bone-dim); font-size:14px; line-height:1.7; max-width:38ch; }
  .hours-list{ border-top:1px solid var(--line); }
  .hours-row{
    display:flex; justify-content:space-between; gap:20px;
    padding:16px 0; border-bottom:1px solid var(--line);
    font-family:var(--sans-x); font-size:13px; letter-spacing:.06em;
  }
  .hours-row span:first-child{ color:var(--bone-dim); font-weight:500; text-transform:uppercase; letter-spacing:.14em; font-size:11px; }
  .hours-row span:last-child{ color:var(--bone); font-variant-numeric:tabular-nums; }
  .hours-row.pending span:last-child{ color:var(--bone-dim); font-style:italic; font-family:var(--sans); font-size:12.5px; }
  .cta-block{
    margin-top:40px;
    display:flex; flex-direction:column; gap:18px; align-items:flex-start;
  }
  .local-map{
    margin-top:clamp(50px,7vw,80px);
    aspect-ratio:16/6.5;
    overflow:hidden;
    position:relative;
    filter:grayscale(.15) contrast(1.05) brightness(.97);
  }
  .local-map iframe{ width:100%; height:100%; border:0; display:block; }
  .local-map #map{ width:100%; height:100%; background:var(--graphite); }
  .local-map .leaflet-control-attribution{
    background:rgba(12,11,10,.7) !important;
    color:var(--bone-dim) !important;
    font-family:var(--sans) !important;
    font-size:10px !important;
  }
  .local-map .leaflet-control-attribution a{ color:var(--amber-2) !important; }
  .local-map .leaflet-control-zoom a{
    background:var(--graphite) !important;
    color:var(--bone) !important;
    border-color:var(--line) !important;
  }
  .local-map .cabron-map-pin{
    filter:drop-shadow(0 2px 6px rgba(0,0,0,.55)) drop-shadow(0 0 10px rgba(0,0,0,.35));
  }
  .local-map .leaflet-popup-content-wrapper{
    background:var(--graphite) !important;
    color:var(--bone) !important;
    border:1px solid var(--line);
    border-radius:4px !important;
  }
  .local-map .leaflet-popup-content{
    font-family:var(--sans) !important;
    font-size:13px !important;
    line-height:1.4 !important;
    margin:10px 12px !important;
  }
  .local-map .leaflet-popup-content b{ font-family:var(--sans-x); color:var(--amber-2); }
  .local-map .leaflet-popup-tip{ background:var(--graphite) !important; }

  /* ============================================================
     PAGE HEAD — inner pages (Galeria, Contato)
  ============================================================ */
  .page-head{
    padding-top:calc(env(safe-area-inset-top,0px) + 150px);
    padding-bottom:clamp(50px,8vw,74px);
    background:var(--graphite);
    border-bottom:1px solid var(--line);
  }
  .page-head .eyebrow{ display:block; margin-bottom:16px; }
  .page-head h1{
    font-family:var(--serif);
    font-size:clamp(42px,7.5vw,88px);
    font-weight:400;
    line-height:.98;
    letter-spacing:-.01em;
  }
  .page-head p{
    color:var(--bone-dim);
    font-size:16px;
    line-height:1.7;
    max-width:48ch;
    margin-top:20px;
  }
  .page-head .crumb{
    font-family:var(--sans-x);
    font-weight:500;
    font-size:11px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--bone-dim);
    margin-top:26px;
  }
  .page-head .crumb a{ color:var(--amber-2); }
  .page-head .crumb a:hover{ text-decoration:underline; }

  /* ============================================================
     FOOTER
  ============================================================ */
  footer{
    background:var(--graphite);
    padding-top:clamp(70px,10vw,110px);
    padding-bottom:calc(env(safe-area-inset-bottom,0px) + 40px);
  }
  .foot-top{
    display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap;
    padding-bottom:clamp(50px,8vw,80px);
    border-bottom:1px solid var(--line);
  }
  .foot-brand{ max-width:340px; }
  .foot-brand .brand-mark{ font-size:30px; margin-bottom:16px; }
  .foot-brand .brand-mark .b-icon{ height:42px; opacity:.85; }
  .foot-brand .brand-mark .b-word{ height:28px; opacity:.95; }
  .foot-brand p{ color:var(--bone-dim); font-size:13px; line-height:1.7; }
  .foot-cols{ display:flex; gap:60px; flex-wrap:wrap; }
  .foot-col h4{
    font-family:var(--sans-x); font-weight:500; font-size:10px; letter-spacing:.16em; text-transform:uppercase;
    color:var(--amber-2); margin-bottom:16px;
  }
  .foot-col a, .foot-col p{
    display:block; color:var(--bone-dim); font-size:13.5px; line-height:2.1;
    transition:color .3s ease;
  }
  .foot-col a:hover{ color:var(--bone); }
  .foot-bottom{
    display:flex; justify-content:space-between; align-items:center; gap:20px;
    flex-wrap:wrap;
    padding-top:24px;
    font-family:var(--sans-x); font-size:11px; letter-spacing:.05em; color:var(--bone-dim);
  }
  .foot-bottom .sig{ color:var(--bone-dim); }
  .foot-bottom .sig b{ color:var(--amber-2); font-weight:600; }

  /* ---------- mobile sticky whatsapp ---------- */
  .sticky-wa{
    position:fixed;
    left:16px; right:16px;
    bottom:calc(env(safe-area-inset-bottom,0px) + 16px);
    z-index:150;
    background:var(--amber);
    color:var(--ink);
    font-family:var(--sans-x);
    font-weight:600;
    font-size:12px;
    letter-spacing:.12em;
    text-transform:uppercase;
    text-align:center;
    padding:15px 0;
    display:none;
    box-shadow:0 8px 30px rgba(0,0,0,.45);
  }

  /* ============================================================
     RESPONSIVE
  ============================================================ */
  @media (max-width:980px){
    .nav-links{ display:none; }
    .burger{ display:block; }
    .casa-grid, .equipe-grid, .local-grid{ grid-template-columns:1fr; }
    .equipe-media{ order:-1; }
    .depo-grid{ grid-template-columns:1fr; }
    .g-item.wide{ grid-column:span 6; }
    .g-item.tall{ grid-column:span 3; }
    .g-item.sq{ grid-column:span 3; }
    .g-item.mark{ grid-column:span 6; aspect-ratio:16/6; }
    .sticky-wa{ display:block; }
    body{ padding-bottom:78px; }
    .hero-sub{ flex-direction:column; align-items:flex-start; }
    .page-head{ padding-top:calc(env(safe-area-inset-top,0px) + 120px); }
  }
  @media (max-width:620px){
    .g-grid{ grid-template-columns:repeat(2,1fr); }
    .g-item.tall{ grid-column:span 1; aspect-ratio:3/4; }
    .g-item.wide{ grid-column:span 2; }
    .g-item.sq{ grid-column:span 1; }
    .g-item.mark{ grid-column:span 2; }
    .depo-grid{ grid-template-columns:1fr; }
    .menu-item{ grid-template-columns:34px 1fr; row-gap:8px; }
    .menu-price{ grid-column:2; justify-self:start; }
    .foot-cols{ gap:36px; }
  }
