/* = Hedro Base – main.css (limpo) ====================================== */
/* Design tokens */
:root{
  --max: 1360px;
  --gap: 24px;
  --gutter: 1rem;

  --text:#1f2328;          /* legível no fundo claro */
  --muted:#667085;

  --brand:#1b4cff;
  --brand-dark:#0e2a8a;
  --brand-gold:#d6b86b;
  --brand-gold-strong:#a89255;

  --bg:#ffffff;
  --bg-soft:#f7f9ff;

  --footer-bg:#8d8781;
  --footer-line:rgba(255,255,255,.18);

  --header-safe:72px;                     /* offset do menu no topo */
  --hero-bottom:clamp(24px,8vh,88px);     /* distância do conteúdo no hero */
  --menu-gap:clamp(16px,5vw,56px);       /* espaço entre itens do menu */
}

/* Reset mínimo */
*{ box-sizing:border-box }
html,body{ margin:0; padding:0 }
img{ max-width:100%; height:auto; display:block }
a{ color:var(--brand); text-decoration:none }
a:hover{ color:var(--brand-gold) }

/* Tipografia base */
body{
  font-family:Lato, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}
h1,h2,h3{ margin:0 0 .6rem }
h1{ font:800 clamp(28px,4.2vw,44px)/1.2 "Playfair Display", serif }
h2{ font:800 clamp(22px,3.2vw,32px)/1.25 "Playfair Display", serif }
p{ color:var(--muted); margin:0 0 1rem }

/* Helpers */
.container{ width:min(100% - var(--gutter)*2, var(--max)); margin-inline:auto }
.sec{ padding:clamp(48px,6vw,96px) 0 }
.btn{ display:inline-block; padding:12px 18px; border-radius:10px; background:var(--brand-gold); color:#fff; font-weight:700 border: none;}

/* =================== HEADER (global) =================================== */
header.site-header{
  position:absolute !important;      /* aparece no topo, some ao rolar */
  top:0; left:0; right:0; z-index:999;
  background:transparent !important;
  border:0 !important; box-shadow:none !important;
  padding-top:var(--header-safe);
  padding-bottom:8px;
}
.admin-bar header.site-header{ margin-top:32px }
@media (max-width:782px){ .admin-bar header.site-header{ margin-top:46px } }

.nav__row{ display:flex; align-items:center; justify-content:space-between; gap:18px }
.logo__img{ width:160px; height:auto; display:block; filter:drop-shadow(0 2px 12px rgba(0,0,0,.35)) }
/* ===== Header empilhado: logo em cima, menu embaixo ==================== */
header.site-header .nav__row{
  display:flex;
  flex-direction: column;     /* <- empilha */
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding-block: 8px;
}

/* o “container” do menu ocupa toda a largura do header */
header.site-header .nav__panel{
  width: 100%;
}

/* a lista do menu fica larga e “espalha” os itens */
header.site-header .nav__list{
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;      /* distribui pela largura */
  gap: var(--menu-gap);
}

/* ===== Header (MOBILE): logo centro + menu lateral direita ============ */
@media (max-width: 980px){
  /* empilha em grid: [esquerda][logo][toggle à direita] */
  header.site-header .nav__row{
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 0;
    padding-block: 8px;
  }

  /* LOGO centralizada */
  header.site-header .logo{
    grid-column: 2;
    justify-self: center;
  }
  header.site-header .logo .logo__img{
    width: 140px; height: auto;
  }

  /* Botão hamburguer no canto direito */
  header.site-header .nav__toggle{
    grid-column: 3;
    justify-self: end;
    display: block;      /* garante que aparece no mobile */
  }

  /* Painel do menu como GAVETA da direita (overlay) */
  header.site-header .nav__panel{
    position: fixed;               /* prende ao viewport */
    inset: 0 0 0 auto;             /* encosta à direita */
    width: min(84vw, 360px);
    height: 100vh;
    z-index: 1001;

    /* visual da gaveta */
    background: rgba(0,0,0,.90);
    backdrop-filter: blur(10px);
    padding: clamp(16px, 2vh, 24px);
    padding-top: calc(max(16px, env(safe-area-inset-top)) + 8px);

    /* animação de entrada */
    transform: translateX(100%);
    transition: transform .25s ease;

    display: block;  /* não usamos display:none; o slide controla a visibilidade */
  }
  header.site-header.nav-open .nav__panel{
    transform: translateX(0);
  }

  /* Lista vertical no painel */
  header.site-header .nav__list{
    flex-direction: column;
    gap: 18px;
  }

  /* SCRIM (fundo escurecido) clicável atrás da gaveta */
  header.site-header::after{
    content:"";
    position: fixed;
    inset: 0;
    z-index: 1000;                 /* logo abaixo do painel */
    background: rgba(0,0,0,.35);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
  }
  header.site-header.nav-open::after{
    opacity: 1;
    pointer-events: auto;          /* recebe clique para fechar */
  }
}




.nav__panel{ display:block }
.nav__list{ list-style:none; margin:0; padding:0; display:flex; gap:32px }
.nav__list a{
  font-family:"Playfair Display", serif; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  color:#fff; padding:6px 2px; transition:color .15s ease;
  text-shadow:0 2px 6px rgba(0,0,0,.45);
}
.nav__list a:hover,.nav__list a:focus{ color:var(--brand-gold-strong) }

.nav__toggle{
  display:none; position:relative; width:38px; height:34px; border:0; background:transparent; cursor:pointer
}
.nav__bar{ position:absolute; left:7px; right:7px; height:2px; background:#fff; border-radius:2px; box-shadow:0 1px 4px rgba(0,0,0,.25) }
.nav__bar:nth-child(1){ top:9px } .nav__bar:nth-child(2){ top:16px } .nav__bar:nth-child(3){ top:23px }

@media (max-width:980px){
  .nav__toggle{ display:block }
  header.site-header .nav__panel{
    position:absolute; top:calc(var(--header-safe) + 40px); left:0; right:0; display:none;
    background:rgba(0,0,0,.55); backdrop-filter:blur(6px)
  }
  header.site-header.nav-open .nav__panel{ display:block }
  .nav__list{ flex-direction:column; gap:18px; padding:16px 24px; border-top:1px solid rgba(255,255,255,.12) }
}

/* =================== MAIN (sem faixas extras) ========================== */
.site-main{ padding-top:0 !important; padding-bottom:0 !important }
.site-main > *:last-child{ margin-bottom:0 !important; padding-bottom:0 !important }

/* =================== HERO (Home) ======================================= */
.hero{ position:relative; min-height:92vh; overflow:hidden }
@supports (min-height:100svh){ .hero{ min-height:100svh } }
.hero--video{ background:#0a0f19 }
.hero__bg,.hero__video,.hero__overlay{ position:absolute; inset:0 }
.hero__video{ width:100%; height:100%; object-fit:cover; pointer-events:none }
.hero__overlay{
  background:radial-gradient(1200px 600px at 20% 20%, rgb(0 0 0 / 14%), rgb(0 0 0 / 30%)), 
             linear-gradient(180deg, rgba(0, 0, 0, .20), rgba(0, 0, 0, .50) 25%, rgb(0 0 0 / 39%));
  pointer-events:none
}

/* Nav do hero (se usar localmente em alguma página) */
.home .hero__nav{ display:none !important; }

.hero__nav{ position:absolute; top:max(0px, env(safe-area-inset-top)); left:0; right:0; z-index:10 }
.admin-bar .hero__nav{ top:calc(max(0px, env(safe-area-inset-top)) + 32px) }
@media (max-width:782px){ .admin-bar .hero__nav{ top:calc(max(0px, env(safe-area-inset-top)) + 46px) } }
.nav__row.hero{ flex-direction:column; gap:12px; padding-block:8px }
.logo__text{ font:900 28px/1 "Playfair Display", serif; color:#fff; text-shadow:0 2px 10px rgba(0,0,0,.6); letter-spacing:.04em; text-transform:uppercase }

.nav__list{ flex-wrap:wrap; justify-content:space-between; gap:var(--menu-gap); width:100% }
.nav__list > li{ flex:0 0 auto }

.hero__content{ position:absolute; left:0; right:0; bottom:var(--hero-bottom); z-index:8 }
.hero__content .container{ display:flex; flex-direction:column; align-items:center; justify-content:flex-end; text-align:center; gap:12px }
.hero__title{
  color:#fff; text-shadow:0 3px 10px rgba(0,0,0,.55);
  font:800 clamp(42px,7vw,82px)/1 "Playfair Display", serif; letter-spacing:.02em; margin:0 0 12px
}
.hero__subtitle{
  color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.55);
  font:800 clamp(18px,3vw,34px)/1.15 "Playfair Display", serif; text-transform:uppercase; letter-spacing:.06em;
  max-width:28ch; margin:0 0 18px
}
.hero__divider{ border:0; height:1px; background:rgba(255,255,255,.85) }
.hero__divider--long{ width:min(1100px, 90vw); margin:14px auto 20px }
.link-cta{ color:#fff; font-weight:800; text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:2px; text-shadow:0 2px 8px rgba(0,0,0,.55); text-transform: uppercase;
    
}
.link-cta:hover{ color:var(--brand-gold) }

@media (max-width:980px){ .nav__list{ gap:clamp(12px,4vw,28px) } }
@media (max-width:680px){ .nav__list{ display:none } }

/* ===== S2 — 50% imagem + 50% painel =================================== */
.s2{ position:relative; display:grid; grid-template-columns:1fr 1fr; min-height:92vh }
@supports (min-height:100svh){ .s2{ min-height:100svh } }
.s2__media{ margin:0; position:relative; overflow:hidden }
.s2__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter: brightness(.7);}
.s2__panel{ position:relative; background:var(--panel-bg, #bfbfbf); display:flex; align-items:center; justify-content:center }
.container--narrow{ width:min(100% - 3rem, 760px); margin-inline:auto }
.s2__inner{ display:flex; flex-direction:column; gap:clamp(28px,5vw,56px) }
.s2__title{
  font:800 clamp(28px,4.6vw,56px)/1.12 "Playfair Display", serif; text-transform:uppercase; letter-spacing:.04em;
  color:#fff; margin:0 0 10px; text-shadow:0 2px 8px rgba(0,0,0,.25)
}
.s2__rule{ border:0; height:1px; width:90%; background:#fff; margin:12px 0 }
.s2__text{ color:#fff; max-width:60ch; margin:0; text-transform:uppercase }
.s2--dark .s2__panel{ --panel-bg:#2f343a }
@media (max-width:880px){
  .s2{ grid-template-columns:1fr; min-height:100svh }
  .s2__media{ height:44vh } .s2__img{ position:relative; height:100% }
  .s2__panel{ min-height:56vh }
}

/* ===== S3 — Full BG + texto à esquerda ================================ */
.s3{ position:relative; min-height:92vh; display:grid }
@supports (min-height:100svh){ .s3{ min-height:100svh } }
.s3__bg{ position:absolute; inset:0; overflow:hidden; z-index:1 }
.s3__bg-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
.s3__overlay{
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.35) 40%, rgba(0,0,0,.12) 68%, rgba(0,0,0,0) 100%),
             linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.35) 70%, rgba(0,0,0,.5)); pointer-events:none
}
.s3__content{ position:relative; z-index:2; display:grid; align-items:center }
.s3__inner{
  width:min(100% - 2rem, var(--max));
  margin-left:max(1rem, calc((100vw - var(--max))/2)); margin-right:auto;
  display:flex; flex-direction:column; gap:clamp(28px,5vw,56px); align-items:flex-start; text-align:left;
  padding-block:clamp(32px,8vh,80px); max-width:760px
}
.s3__title{
  font:800 clamp(28px,4.6vw,56px)/1.12 "Playfair Display", serif; text-transform:uppercase; letter-spacing:.04em;
  color:#fff; margin:0 0 8px; text-shadow:0 3px 10px rgba(0,0,0,.5)
}
.s3__rule{ border:0; height:1px; width:min(540px,60%); background:rgba(255,255,255,.55); margin:12px 0 }
.s3__text{ color:#fff; text-transform:uppercase; letter-spacing:.06em; max-width:60ch; margin:0; text-shadow:0 2px 8px rgba(0,0,0,.35) }

/* ===== S4 — Serviços (cards) ========================================== */
.s4{ background:#8d8781; min-height:92vh; display:flex; align-items:stretch; --s4-accent:#fff }
@supports (min-height:100svh){ .s4{ min-height:100svh } }
.s4 .container{
  width:min(100% - 2rem, var(--max)); margin-inline:auto;
  padding-top:clamp(24px,5vh,56px); padding-bottom:clamp(48px,8vh,96px);
  display:flex; flex-direction:column; gap:clamp(28px,4vw,56px)
}
.s4__heading{
  margin-left:auto; text-align:right; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.25);
  font:800 clamp(34px,5.4vw,68px)/1.06 "Playfair Display", serif; max-width:22ch; letter-spacing:.02em
}
.s4__grid{ list-style:none; margin:0; margin-top:auto; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,3vw,32px) }
@media (max-width:980px){ .s4__grid{ grid-template-columns:1fr } }
.s4__card{ display:flex; flex-direction:column }
.s4__media{ margin:0; position:relative; overflow:hidden; aspect-ratio:3/2; background:#ddd }
.s4__img{ width:100%; height:100%; object-fit:cover; display:block }
.s4__cta{
  display:block; color:var(--s4-accent); text-decoration:none;
  font:800 clamp(14px,1.6vw,18px)/1 Lato, sans-serif; letter-spacing:.08em; text-transform:uppercase; padding-top:12px
}
.s4__cta::after{ content:""; display:block; height:2px; width:100%; margin-top:10px; background:var(--s4-accent) }
.s4__cta:hover{ color:var(--brand-gold) } .s4__cta:hover::after{ background:var(--brand-gold) }

/* ===== S5 — Vídeo BG, conteúdo canto inf. ESQ ========================= */
.s5{ position:relative; min-height:92vh }
@supports (min-height:100svh){ .s5{ min-height:100svh } }
.s5__bg,.s5__video,.s5__overlay{ position:absolute; inset:0 }
.s5__video{ width:100%; height:100%; object-fit:cover; pointer-events:none; filter:brightness(.74) }
.s5__overlay{
  background:radial-gradient(800px 520px at 14% 84%, rgba(0,0,0,.55), rgba(0,0,0,.05) 70%, rgba(0,0,0,0) 100%),
             linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.45) 70%, rgba(0,0,0,.55));
  pointer-events:none; z-index:2
}
.s5__content{ position:absolute; left:0; right:0; bottom:clamp(24px,7vh,96px); z-index:3 }
.s5__inner{
  width:min(100% - var(--gutter)*2, var(--max));
  margin-left:max(var(--gutter), calc((100vw - var(--max))/2)); margin-right:auto;
  max-width:1040px; display:flex; flex-direction:column; gap:10px; align-items:flex-start; text-align:left
}
.s5__title{ color:#fff; text-shadow:0 3px 10px rgba(0,0,0,.55); font:800 clamp(30px,5vw,64px)/1.08 "Playfair Display", serif; letter-spacing:.02em; margin:0 0 6px }
.s5__text{ color:#fff; text-transform:uppercase; letter-spacing:.06em; margin:0 0 8px; text-shadow:0 2px 8px rgba(0,0,0,.35) }

/* ===== S6 — Como Funciona (split) ===================================== */
.s6{ position:relative; display:grid; grid-template-columns:1fr 1fr; min-height:92vh }
@supports (min-height:100svh){ .s6{ min-height:100svh } }
.s6__panel{ background:#8d8781; color:#fff; display:flex; align-items:center }
.s6__inner{
  width:min(100% - var(--gutter)*2, var(--max));
  margin-right:auto; padding-left:125px; /* como pediu: mais “colado” à esquerda */
  max-width:900px; padding-block:clamp(32px,8vh,84px);
  display:flex; flex-direction:column; gap:clamp(22px,3.2vh,32px)
}
.s6__title{ color:#fff; text-shadow:0 3px 10px rgba(0,0,0,.45); font:800 clamp(36px,5.2vw,72px)/1.08 "Playfair Display", serif }
.s6__timeline{
  position:relative; list-style:none; margin:0; padding:0 0 0 41px;
  display:flex; flex-direction:column; justify-content:space-between; min-height:clamp(360px,62vh,680px)
}
.s6__timeline::before{ content:""; position:absolute; left:22px; top:0; bottom:0; width:2px; background:rgba(255,255,255,.75) }
.s6__timeline li{ position:relative; margin:0 }
.s6__timeline li::before{
  content:""; position:absolute; left:-26px; top:.45em; width:12px; height:12px; border-radius:50%;
  background:#8d8781; border:2px solid #fff; box-shadow:0 0 0 2px rgba(0,0,0,.08) inset
}
.s6__timeline span{
  display:block; color:#fff; text-transform:uppercase; letter-spacing:.08em; font-weight:800;
  font-size:clamp(16px,1.9vw,22px); text-shadow:0 2px 8px rgba(0,0,0,.30)
}
.s6__media{ margin:0; position:relative; overflow:hidden }
.s6__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;    filter: brightness(0.8); }
@media (max-width:980px){
  .s6{ grid-template-columns:1fr }
  .s6__media{ order:2; height:42vh } .s6__img{ position:relative; height:100% }
  .s6__panel{ order:1 } .s6__timeline{ min-height:auto; gap:18px }
}

/* ===== S7 — Depoimentos =============================================== */
.s7{ background:#c8bcb0; color:#fff; min-height:92vh }
@supports (min-height:100svh){ .s7{ min-height:100svh } }
.s7__wrap{ min-height:inherit; display:flex; flex-direction:column; gap:clamp(16px,3vh,28px); padding-block:clamp(36px,7vh,80px) }
.s7__rule{ border:0; height:1px; width:min(720px,60%); background:rgba(255,255,255,.75); margin:0 0 10px }
.s7__title{ font:800 clamp(36px,6vw,96px)/1.02 "Playfair Display", serif; text-transform:uppercase; letter-spacing:.04em; margin:0; text-shadow:0 2px 8px rgba(0,0,0,.25) }
.s7__grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,36px); margin-top:auto; padding-bottom:clamp(28px,6vh,72px) }
@media (max-width:1100px){ .s7__grid{ grid-template-columns:1fr 1fr } }
@media (max-width:680px){ .s7__grid{ grid-template-columns:1fr } }
.s7__quote{ margin:0 }
.s7__quote p{ margin:0 0 10px; color:rgba(255,255,255,.92); font:600 clamp(16px,1.6vw,20px)/1.6 Lato, sans-serif; text-shadow:0 2px 6px rgba(0,0,0,.25) }
.s7__cite{ display:block; font-style:italic; color:rgba(255,255,255,.85) }
.s7__cite::before{ content:"★★★★★"; display:block; font-style:normal; color:#fff; letter-spacing:.22em; font-size:clamp(14px,1.6vw,18px); line-height:1; margin-bottom:8px; text-shadow:0 1px 4px rgba(0,0,0,.25) }

/* ===== S8 — Blog (2 cards) ============================================ */
.s8{ background:#3b3b3b; color:#fff; min-height:92vh }
@supports (min-height:100svh){ .s8{ min-height:100svh } }
.s8__wrap{ min-height:inherit; display:flex; flex-direction:column; gap:clamp(20px,4vh,36px); padding-block:clamp(36px,7vh,80px) }
.s8__grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(24px,3.5vw,40px); margin-top:auto }
@media (max-width:980px){ .s8__grid{ grid-template-columns:1fr } }
.s8__card{ display:block; color:#fff; padding:clamp(8px,1vw,12px); background:transparent }
.s8__title{ font:800 clamp(18px,2.2vw,26px)/1.15 Lato, sans-serif; letter-spacing:.08em; text-transform:uppercase; margin:0 0 8px }
.s8__rule{ display:block; height:2px; width:min(520px,60%); background:rgba(255,255,255,.7); margin-bottom:clamp(14px,2.2vw,22px) }
.s8__media{ margin:0; position:relative; overflow:hidden; aspect-ratio:16/10; background:#444; border-radius:4px }
.s8__img{ width:100%; height:100%; object-fit:cover; display:block }
.s8__more{ align-self:flex-start; margin-top:clamp(12px,2vh,20px) }

/* =================== Footer (completo) ================================= */
.site-footer--hedro{ background:var(--footer-bg); border:0; color:#fff }
.site-footer--hedro .footer__inner{
  width:min(100% - var(--gutter)*2, var(--max)); margin-inline:auto;
  padding-block:clamp(36px,7vh,92px); display:flex; flex-direction:column; gap:clamp(24px,4vh,40px)
}
.site-footer--hedro .footer__grid{
  display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:clamp(20px,3vw,40px); align-items:start
}
@media (max-width:980px){ .site-footer--hedro .footer__grid{ grid-template-columns:1fr } }
.site-footer--hedro .footer__logo img{ width:160px; height:auto; display:block; filter:drop-shadow(0 6px 18px rgba(0,0,0,.35)) }
.site-footer--hedro .footer__brand{ font:900 28px/1 "Playfair Display", serif; letter-spacing:.04em; text-transform:uppercase }
.site-footer--hedro .footer__tag{ margin-top:10px; color:rgba(255,255,255,.9) }
.site-footer--hedro .footer__title{ font:800 14px/1 "Playfair Display", serif; letter-spacing:.18em; text-transform:uppercase; margin:0 0 12px; color:#fff }
.site-footer--hedro .footer__menu{ list-style:none; margin:0; padding:0; display:grid; gap:8px }
.site-footer--hedro .footer__menu a{ color:#fff; text-decoration:none }
.site-footer--hedro .footer__menu a:hover{ color:#eaeaea; text-decoration:underline }
.site-footer--hedro .footer__addr{ font-style:normal; color:#fff; margin:0 0 8px }
.site-footer--hedro .footer__contact a{ color:#fff; text-decoration:none; border-bottom:1px solid transparent }
.site-footer--hedro .footer__contact a:hover{ border-color:#fff }
.site-footer--hedro .footer__bar{ border-top:1px solid var(--footer-line); display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:16px }
@media (max-width:680px){ .site-footer--hedro .footer__bar{ flex-direction:column; align-items:flex-start } }
.site-footer--hedro .footer__bar small{ color:rgba(255,255,255,.9) }
.site-footer--hedro .footer__dev a{ color:#fff; text-decoration:none; font-weight:800; border-bottom:1px solid rgba(255,255,255,.4) }
.site-footer--hedro .footer__dev a:hover{ border-color:#fff }

/* =================== SOBRE (template) ================================== */
.a-hero{ position:relative; min-height:64vh }
@supports (min-height:100svh){ .a-hero{ min-height:72svh } }
.a-hero__bg,.a-hero__img,.a-hero__overlay{ position:absolute; inset:0 }
.a-hero__img{ width:100%; height:100%; object-fit:cover; filter:brightness(.72) }
.a-hero__overlay{ background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55) 70%, rgba(0,0,0,.65)) }
.a-hero__content{ position:absolute; left:0; right:0; bottom:clamp(20px,8vh,88px) }
.a-hero__title{ color:#fff; text-shadow:0 3px 12px rgba(0,0,0,.55); font:800 clamp(36px,5.4vw,72px)/1.08 "Playfair Display", serif; letter-spacing:.02em }
.a-sec{ padding-block:clamp(40px,8vw,96px) }
.container--narrow{ width:min(100% - var(--gutter)*2, 920px); margin-inline:auto }
.a-sec__subtitle{ font:800 clamp(22px,3.2vw,34px)/1.12 "Playfair Display", serif; letter-spacing:.04em; text-transform:uppercase; margin:0 0 14px }
.a-sec--history p{ margin:0 0 14px }
.a-sec--purpose{ background:#bfbfbf }
.a-sec--purpose .a-sec__subtitle, .a-sec--purpose p{ color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.25) }
.a-list{ list-style:none; margin:8px 0 0; padding:0 0 0 44px; position:relative }
.a-list::before{ content:""; position:absolute; left:20px; top:0; bottom:0; width:2px; background:rgba(0,0,0,.15) }
.a-list li{ position:relative; margin:0 0 12px }
.a-list li::before{ content:""; position:absolute; left:-26px; top:.48em; width:10px; height:10px; border-radius:50%; background:#8d8781; box-shadow:0 0 0 2px #fff }
.a-sec--commit{ background:#f4f4f6 }
.a-cta{ position:relative; min-height:56vh }
@supports (min-height:100svh){ .a-cta{ min-height:64svh } }
.a-cta__bg,.a-cta__img,.a-cta__overlay{ position:absolute; inset:0 }
.a-cta__img{ width:100%; height:100%; object-fit:cover; filter:brightness(.74) }
.a-cta__overlay{ background:radial-gradient(800px 520px at 14% 84%, rgba(0,0,0,.55), rgba(0,0,0,.05) 70%, rgba(0,0,0,0) 100%), linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.5) 70%, rgba(0,0,0,.6)) }
.a-cta__content{ position:absolute; left:0; right:0; bottom:clamp(20px,7vh,88px) }
.a-cta__title{ color:#fff; text-shadow:0 3px 10px rgba(0,0,0,.55); font:800 clamp(22px,3.6vw,40px)/1.15 "Playfair Display", serif; margin:0 0 6px }
.a-cta__text{ color:#fff; text-transform:uppercase; letter-spacing:.06em; margin:0 0 8px; text-shadow:0 2px 8px rgba(0,0,0,.35) }

/* =================== SERVIÇOS (template) =============================== */
.svc-hero{ position:relative; min-height:56vh }
@supports (min-height:100svh){ .svc-hero{ min-height:64svh } }
.svc-hero__bg,.svc-hero__img,.svc-hero__overlay{ position:absolute; inset:0 }
.svc-hero__img{ width:100%; height:100%; object-fit:cover; filter:brightness(.72) }
.svc-hero__overlay{ background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55) 70%, rgba(0,0,0,.65)) }
.svc-hero__content{ position:absolute; left:0; right:0; bottom:clamp(20px,7vh,80px) }
.svc-hero__title{ color:#fff; text-shadow:0 3px 12px rgba(0,0,0,.55); font:800 clamp(32px,5vw,64px)/1.08 "Playfair Display", serif; margin:0 }
.svc-intro{ padding-block:clamp(32px,7vw,88px); background:#f4f4f6 }
.svc-intro p{ margin:0 0 12px }
.svc-block{ padding-block:clamp(38px,8vw,96px); background:#fff }
.svc-block--alt{ background:#f7f9ff }
.svc-block__wrap{ display:flex; flex-direction:column; gap:16px }
.svc-block__title{ font:800 clamp(22px,3.2vw,34px)/1.12 "Playfair Display", serif; text-transform:uppercase; letter-spacing:.06em; margin:0 0 8px; color:#1f2328 }
.svc-rule{ display:block; height:2px; width:min(560px,60%); background:var(--brand-gold); margin-bottom:14px }
.svc-block__body{ display:flex; flex-direction:column; gap:12px; max-width:900px }
.svc-block__body p{ color:#667085; margin:0 }
.faq{ border-top:1px solid rgba(0,0,0,.08); padding-top:12px; margin-top:12px }
.faq + .faq{ margin-top:8px }
.faq__q{ cursor:pointer; list-style:none; font-weight:800; text-transform:uppercase; letter-spacing:.06em }
.faq__q::-webkit-details-marker{ display:none }
.faq__q::after{ content:"+"; float:right; font-weight:800 }
.faq[open] .faq__q::after{ content:"–" }
.faq__a{ margin-top:8px; color:#5b6673 }
.svc-cta{ position:relative; min-height:46vh }
@supports (min-height:100svh){ .svc-cta{ min-height:54svh } }
.svc-cta__bg,.svc-cta__img,.svc-cta__overlay{ position:absolute; inset:0 }
.svc-cta__img{ width:100%; height:100%; object-fit:cover; filter:brightness(.74) }
.svc-cta__overlay{ background:radial-gradient(800px 520px at 14% 84%, rgba(0,0,0,.55), rgba(0,0,0,.05) 70%, rgba(0,0,0,0) 100%), linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.5) 70%, rgba(0,0,0,.6)) }
.svc-cta__content{ position:absolute; left:0; right:0; bottom:clamp(16px,7vh,88px) }
.svc-cta__title{ color:#fff; text-shadow:0 3px 10px rgba(0,0,0,.55); font:800 clamp(22px,3.6vw,40px)/1.15 "Playfair Display", serif; margin:0 0 6px }
.svc-cta__text{ color:#fff; text-transform:uppercase; letter-spacing:.06em; margin:0 0 8px; text-shadow:0 2px 8px rgba(0,0,0,.35) }

@media (max-width:980px){ .svc-block__body{ max-width:none } }


/* ===== GALERIA ========================================================= */

/* HERO da Galeria */
.gal-hero{ position:relative; min-height:56vh }
@supports (min-height:100svh){ .gal-hero{ min-height:64svh } }
.gal-hero__bg,.gal-hero__img,.gal-hero__overlay{ position:absolute; inset:0 }
.gal-hero__img{ width:100%; height:100%; object-fit:cover; filter:brightness(.72) }
.gal-hero__overlay{
  background: linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55) 70%, rgba(0,0,0,.65));
  pointer-events:none;
}
.gal-hero__content{ position:absolute; left:0; right:0; bottom: clamp(20px, 7vh, 80px) }
.gal-hero__title{
  color:#fff; text-shadow:0 3px 12px rgba(0,0,0,.55);
  font:800 clamp(32px,5vw,64px)/1.08 "Playfair Display", serif; margin:0;
}

/* Intro */
.gal-intro{ background:#f4f4f6; padding-block: clamp(32px, 7vw, 88px) }
.gal-intro p{ margin:0 0 12px }

/* Seções (título + descrição + comparador) */
.gal-sec{ padding-block: clamp(38px, 8vw, 96px); background:#fff }
.gal-sec--alt{ background:#f7f9ff }
.gal-sec__wrap{ display:flex; flex-direction:column; gap:16px }
.gal-sec__title{
  font:800 clamp(22px,3.2vw,34px)/1.12 "Playfair Display", serif;
  text-transform:uppercase; letter-spacing:.06em; margin:0 0 6px; color:#1f2328;
}
.gal-sec__desc{ color:#667085; margin:0 0 10px }

/* ===== Comparador Antes & Depois ====================================== */
.gal-compare{
  --pos: 50%;             /* 0% = só Antes | 100% = só Depois */
  display:grid; gap:10px;
}
.gal-compare__frame{
  position:relative; overflow:hidden;
  width:100%; aspect-ratio: 16/10; border-radius: 6px;
  background:#ddd;
}
.gal-compare__img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  pointer-events:none; /* deixa arrastar no frame */
}
.gal-compare__img--after{
  /* recorta pela direita para mostrar só até --pos */
  clip-path: inset(0 calc(100% - var(--pos)) 0 0);
}
.gal-compare__divider{
  position:absolute; top:0; bottom:0; left: var(--pos);
  width:2px; transform: translateX(-1px);
  background: #fff;
  box-shadow: 0 0 0 1px rgba(0,0,0,.20), 0 0 10px rgba(0,0,0,.30);
  pointer-events:none;
}

/* Slider */
.gal-compare__slider{
  appearance:none; width:100%; height:4px; border-radius:999px;
  background: linear-gradient(90deg, rgba(0,0,0,.18), rgba(0,0,0,.18));
  outline:none; cursor:pointer;
}
.gal-compare__slider::-webkit-slider-thumb{
  appearance:none; width:18px; height:18px; border-radius:50%;
  background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.25), inset 0 0 0 2px rgba(0,0,0,.15);
}
.gal-compare__slider::-moz-range-thumb{
  width:18px; height:18px; border:0; border-radius:50%;
  background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.25), inset 0 0 0 2px rgba(0,0,0,.15);
}

/* CTA final da galeria */
.gal-cta{ position:relative; min-height:46vh }
@supports (min-height:100svh){ .gal-cta{ min-height:54svh } }
.gal-cta__bg,.gal-cta__img,.gal-cta__overlay{ position:absolute; inset:0 }
.gal-cta__img{ width:100%; height:100%; object-fit:cover; filter:brightness(.74) }
.gal-cta__overlay{
  background:
    radial-gradient(800px 520px at 14% 84%, rgba(0,0,0,.55), rgba(0,0,0,.05) 70%, rgba(0,0,0,0) 100%),
    linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.5) 70%, rgba(0,0,0,.6));
  pointer-events:none;
}
.gal-cta__content{ position:absolute; left:0; right:0; bottom: clamp(16px, 7vh, 88px) }
.gal-cta__lead{ color:#fff; margin:0 0 8px; text-shadow:0 2px 8px rgba(0,0,0,.35) }
.gal-cta__title{
  color:#fff; text-shadow:0 3px 10px rgba(0,0,0,.55);
  font:800 clamp(22px, 3.6vw, 40px)/1.15 "Playfair Display", serif; margin:0 0 6px;
}
.gal-cta__text{ color:#fff; text-transform:uppercase; letter-spacing:.06em; margin:0 0 10px; text-shadow:0 2px 8px rgba(0,0,0,.35) }

/* Responsivo */
@media (max-width:980px){
  .gal-compare__frame{ aspect-ratio: 4/3; }
}

/* ====================================================================== */
/* = SINGLE POST (visual padrão dos artigos) ============================ */
/* ====================================================================== */

/* HERO do post (usa a imagem destacada) */
.single .post-hero{ position:relative; min-height:48vh }
@supports (min-height:100svh){ .single .post-hero{ min-height:56svh } }
.single .post-hero__bg,.single .post-hero__img,.single .post-hero__overlay{ position:absolute; inset:0 }
.single .post-hero__img{ width:100%; height:100%; object-fit:cover; filter:brightness(.72) }
.single .post-hero__overlay{
  background: linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55) 70%, rgba(0,0,0,.65));
  pointer-events:none;
}
.single .post-hero__content{ position:absolute; left:0; right:0; bottom: clamp(20px, 7vh, 80px) }
.single .post-hero__title{
  color:#fff; text-shadow:0 3px 12px rgba(0,0,0,.55);
  font:800 clamp(30px, 4.8vw, 64px)/1.06 "Playfair Display", serif; margin:0 0 8px;
}
.single .post-meta{
  color: rgba(255,255,255,.92);
  font: 700 12px/1 Lato, sans-serif;
  letter-spacing:.16em; text-transform:uppercase;
}
.single .post-meta a{ color:#fff; text-decoration:underline; text-underline-offset:3px }
.single .post-meta a:hover{ color:var(--brand-gold) }

/* Corpo do artigo */
.single .post-article{ background:#fff } /* garante fundo claro */
.single .post-body{
  /* já é .container .container--narrow no PHP; reforçamos tipografia */
}
.single .post-body > *{
  max-width: 72ch;
}
.single .post-body p,
.single .post-body li{
  color:#344154;                       /* mais legível que o muted padrão */
  font-size: clamp(16px, 1.15vw, 18px);
  line-height: 1.75;
}
.single .post-body p{ margin: 0 0 1.1rem }
.single .post-body h2,
.single .post-body h3,
.single .post-body h4{
  color:#1f2328;
  font-family: "Playfair Display", serif;
  font-weight: 800;
  letter-spacing:.02em;
  text-transform: none;                /* títulos do post sem caps forçado */
  margin: 1.8rem 0 .6rem;
}
.single .post-body h2{ font-size: clamp(24px, 2.4vw, 34px); line-height:1.2 }
.single .post-body h3{ font-size: clamp(20px, 1.8vw, 26px); line-height:1.25 }
.single .post-body h4{ font-size: clamp(18px, 1.6vw, 22px); line-height:1.3 }

/* Listas */
.single .post-body ul,
.single .post-body ol{ margin: 0 0 1.2rem 1.25rem }
.single .post-body li{ margin: .3rem 0 }
.single .post-body ul{ list-style: disc }
.single .post-body ol{ list-style: decimal }

/* Citações */
.single .post-body blockquote{
  margin: 1.4rem 0; padding: .8rem 1rem .8rem 1.1rem;
  border-left: 3px solid var(--brand-gold);
  background: #faf7ef;
  color:#2a2f37; font-style: italic;
}

/* Imagens e legendas */
.single .post-body img{ border-radius: 8px }
.single .post-body figure{ margin: 1.2rem 0 }
.single .post-body figcaption{
  color:#6a7280; font-size: .92rem; margin-top:.35rem;
  text-align:center;
}

/* Alinhamentos clássicos do WP */
.single .post-body .aligncenter{ display:block; margin-inline:auto; text-align:center }
.single .post-body .alignleft{ float:left; margin:.2rem 1rem .6rem 0; max-width:50% }
.single .post-body .alignright{ float:right; margin:.2rem 0 .6rem 1rem; max-width:50% }
@media (max-width: 880px){
  .single .post-body .alignleft,
  .single .post-body .alignright{ float:none; max-width:100%; margin: 1rem 0 }
}

/* Tabelas responsivas */
.single .post-body table{
  border-collapse: collapse; width:100%; margin:1rem 0; font-size:.98rem
}
.single .post-body th, .single .post-body td{
  border:1px solid #e6e8eb; padding:.55rem .7rem; vertical-align: top
}
.single .post-body th{ background:#f7f9ff; text-align:left }

/* Código */
.single .post-body pre,
.single .post-body code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.single .post-body pre{
  background:#0f172a; color:#e5e7eb;
  padding: .9rem 1rem; border-radius: 8px; overflow:auto; margin:1rem 0;
}
.single .post-body code{ background:#f3f4f6; padding:.1rem .3rem; border-radius:4px }

/* Paginação interna (<!--nextpage-->) */
.single .post-pages{ margin:1rem 0; font-weight:700 }
.single .post-pages a{ text-decoration:underline }

/* Tags */
.single .post-tags{ margin: 1.2rem 0 0 }
.single .post-tags span{ color:#6a7280; margin-right:.5rem }
.single .post-tags a{
  display:inline-block; margin:0 .25rem .25rem 0; padding:.25rem .55rem;
  border:1px solid #e1e5ea; border-radius:999px; color:#2b3138; text-decoration:none;
}
.single .post-tags a:hover{ background:#f7f9ff }

/* Partilha */
.single .post-share{
  display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
  border-top:1px solid #eef1f4; padding-top: 1rem; margin-top: 1.2rem;
}
.single .post-share span{ color:#6a7280; margin-right:.25rem }
.single .post-share a{ color:var(--brand-dark); text-decoration:underline }
.single .post-share a:hover{ color:var(--brand-gold) }

/* Navegação Prev/Next */
.single .post-nav{
  margin-top: 1.4rem; padding-top: 1rem; border-top:1px solid #eef1f4;
}
.single .post-nav a{
  display:inline-block; padding:.4rem .6rem; border-radius:8px;
  background:#f7f9ff; color:#1f2328; text-decoration:none;
}
.single .post-nav a:hover{ background:#eef3ff }

/* Comentários */
.single .post-comments{ margin-top: 1.6rem }
.single .post-comments h2, .single .post-comments h3{
  font:800 clamp(18px, 2vw, 24px)/1.2 "Playfair Display", serif; margin:1rem 0 .6rem
}
.single .post-comments .comment-list{ list-style:none; margin:0; padding:0 }
.single .post-comments .comment{ border-top:1px solid #eef1f4; padding-top:1rem; margin-top:1rem }
.single .post-comments .comment-meta a{ color:#6a7280; text-decoration:none }
.single .post-comments .reply a{ text-decoration:underline }

.single .post-comments input[type="text"],
.single .post-comments input[type="email"],
.single .post-comments input[type="url"],
.single .post-comments textarea{
  width:100%; padding:.65rem .75rem; border:1px solid #e1e5ea; border-radius:8px;
  font: inherit;
}
.single .post-comments input[type="submit"]{
  display:inline-block; padding:.65rem 1rem; border-radius:10px; border:0;
  background:var(--brand); color:#fff; font-weight:800; cursor:pointer;
}
.single .post-comments input[type="submit"]:hover{ background:var(--brand-dark) }

/* ===== CONTACTOS ======================================================= */

/* Hero semelhante aos demais */
.c-hero{ position:relative; min-height:56vh }
@supports (min-height:100svh){ .c-hero{ min-height:64svh } }
.c-hero__bg,.c-hero__img,.c-hero__overlay{ position:absolute; inset:0 }
.c-hero__img{ width:100%; height:100%; object-fit:cover; filter:brightness(.72) }
.c-hero__overlay{
  background: linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55) 70%, rgba(0,0,0,.65));
  pointer-events:none;
}
.c-hero__content{ position:absolute; left:0; right:0; bottom: clamp(20px, 7vh, 80px) }
.c-hero__title{
  color:#fff; text-shadow:0 3px 12px rgba(0,0,0,.55);
  font:800 clamp(32px,5vw,64px)/1.08 "Playfair Display", serif; margin:0;
}

/* Grade 2 colunas: info | form */
.c-wrap{ background:#fff; }
.c-grid{
  display:grid; grid-template-columns: 1fr 1.1fr; gap: clamp(24px, 4vw, 48px);
  padding-block: clamp(36px, 7vw, 88px);
}
@media (max-width: 980px){
  .c-grid{ grid-template-columns: 1fr; }
}

/* Coluna info */
.c-info__title{
  font:800 clamp(22px, 3.2vw, 32px)/1.15 "Playfair Display", serif;
  text-transform: uppercase; letter-spacing:.06em; margin:0 0 10px; color:#1f2328;
}
.c-info__list{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.c-info__list a{ color:var(--brand-gold); text-decoration:underline; text-underline-offset:3px; }
.c-info .link-cta{ color:var(--brand-gold); }
.c-info address{ font-style:normal; }

/* Mapa */
.c-map{ margin-top: 16px; }
.c-map iframe{
  width:100%; height: 280px; border:0; border-radius: 10px; box-shadow: 0 6px 18px rgba(0,0,0,.06);
}
@media (min-width: 981px){
  .c-map iframe{ height: 340px; }
}

/* Formulário */
.c-form__title{
  font:800 clamp(22px, 3.2vw, 32px)/1.15 "Playfair Display", serif;
  text-transform: uppercase; letter-spacing:.06em; margin:0 0 10px; color:#1f2328;
}
.c-form__box{ display:grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.c-form__row{ display:flex; flex-direction:column; gap:6px; }
.c-form__row:nth-child(5){ grid-column: 1 / -1; } /* textarea ocupa duas colunas */

.c-form__row label{ font-weight:800; letter-spacing:.06em; text-transform:uppercase; font-size: .82rem; color:#344154; }
.c-form__row input,
.c-form__row textarea{
  width:100%; padding:.7rem .8rem; border:1px solid #e1e5ea; border-radius:10px;
  font: inherit; color:#1f2328; background:#fff;
}
.c-form__row textarea{ min-height: 180px; resize: vertical; }

.c-form__actions{
  grid-column: 1 / -1;
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top: 2px;
}

/* avisos */
.c-form__notice{
  grid-column: 1 / -1;
  border-radius: 10px; padding: .75rem 1rem; margin-bottom: 6px;
  font-weight:700;
}
.c-form__notice--ok{ background:#ecfdf5; color:#065f46; border:1px solid #a7f3d0; }
.c-form__notice--err{ background:#fef2f2; color:#991b1b; border:1px solid #fecaca; }

