@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700;9..144,900&family=Work+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --brand:       #123AA5;
  --brand-dark:  #0B2C75;
  --brand-light: #1a4fc9;
  --soil:        #2E3440;
  --soil-2:      #1a1e2a;
  --gold:        #B8861A;
  --gold-light:  #C99F2E;
  --bg:          #FFFFFF;
  --bg-dim:      #F5F7FA;
  --whatsapp:    #2fae60;

  --display: 'Fraunces', serif;
  --body: 'Work Sans', sans-serif;
  --mono: 'IBM Plex Mono', monospace;

  --radius: 4px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--bg);
  color:var(--soil);
  font-family:var(--body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.container{ max-width:1160px; margin:0 auto; padding:0 24px; }
section{ position:relative; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:3px;
}

/* ---------- eyebrow / labels ---------- */
.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--brand);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background:var(--brand);
}

h1,h2,h3{ font-family:var(--display); font-weight:700; line-height:1.05; }

/* ---------- dotted route spine ---------- */
.route-spine{
  position:absolute;
  left:50%;
  top:0;
  bottom:0;
  width:2px;
  background-image:linear-gradient(var(--brand) 55%, transparent 45%);
  background-size:2px 14px;
  opacity:.35;
  transform:translateX(-50%);
  z-index:0;
}
@media (max-width:860px){ .route-spine{ display:none; } }

/* ---------- top ticker ---------- */
.ticker{
  background:var(--soil);
  color:var(--bg-dim);
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.06em;
  overflow:hidden;
  white-space:nowrap;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.ticker__track{
  display:inline-flex;
  gap:48px;
  padding:9px 0;
  animation:ticker 28s linear infinite;
}
.ticker__track span{ opacity:.85; }
.ticker__track span b{ color:var(--gold); font-weight:600; }
@keyframes ticker{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

/* ---------- header ---------- */
header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(46,52,64,.12);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 0;
}
.logo{
  font-family:var(--display);
  font-weight:900;
  font-size:22px;
  letter-spacing:-.01em;
  display:flex;
  align-items:baseline;
  gap:2px;
}
.logo span{ color:var(--brand); }
.logo small{
  font-family:var(--mono);
  font-weight:500;
  font-size:10px;
  letter-spacing:.16em;
  color:var(--soil);
  opacity:.55;
  margin-left:8px;
  text-transform:uppercase;
}
.nav__links{ display:flex; gap:28px; font-size:14px; font-weight:500; }
.nav__links a{ position:relative; padding:4px 0; transition:color .15s ease; }
.nav__links a:hover{ color:var(--brand); }
.nav__links a.active{ color:var(--brand); }

/* ---------- hamburger menu ---------- */
.menu-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  width:40px; height:40px;
  background:none;
  border:none;
  cursor:pointer;
  gap:5px;
  padding:0;
  z-index:60;
}
.menu-toggle span{
  display:block;
  width:24px; height:2px;
  background:var(--soil);
  border-radius:2px;
  transition:transform .3s ease, opacity .3s ease;
}
.menu-toggle.active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-toggle.active span:nth-child(2){ opacity:0; }
.menu-toggle.active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:760px){
  .menu-toggle{ display:flex; }
  .nav__links{
    position:fixed;
    top:0; right:-100%;
    width:min(320px,80vw);
    height:100vh;
    background:var(--bg);
    flex-direction:column;
    padding:100px 32px 32px;
    gap:0;
    box-shadow:-4px 0 24px rgba(0,0,0,.15);
    transition:right .35s ease;
    z-index:55;
    display:flex;
  }
  .nav__links.open{ right:0; }
  .nav__links a{
    display:block;
    padding:16px 0;
    font-size:16px;
    font-weight:600;
    border-bottom:1px solid rgba(46,52,64,.1);
  }
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-family:var(--mono);
  font-size:13px;
  font-weight:600;
  letter-spacing:.03em;
  padding:11px 18px;
  border-radius:var(--radius);
  border:1.5px solid var(--soil);
  cursor:pointer;
  transition:transform .15s ease, background .15s ease, color .15s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn--wa{
  background:var(--whatsapp);
  border-color:var(--whatsapp);
  color:#fff;
}
.btn--wa:hover{ background:#279253; }
.btn--ghost{
  background:transparent;
  color:var(--soil);
}
.btn--ghost:hover{ background:var(--soil); color:var(--bg); }
.btn--sm{ padding:8px 14px; font-size:12px; }

/* ---------- hero: waybill ticket ---------- */
.hero{
  padding:64px 0 40px;
  overflow:hidden;
}
.waybill{
  position:relative;
  background:var(--bg);
  border:1.5px solid var(--soil);
  border-radius:6px;
  padding:0;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  overflow:hidden;
}
@media (max-width:860px){ .waybill{ grid-template-columns:1fr; } }

.waybill::before, .waybill::after{
  content:"";
  position:absolute;
  top:0; bottom:0;
  width:22px;
  background:
    radial-gradient(circle at 0 12px, transparent 9px, var(--bg) 9.5px) top left / 100% 24px repeat-y;
}
.waybill::before{ left:calc(57.5% - 11px); }
.waybill::after{ display:none; }
@media (max-width:860px){ .waybill::before{ display:none; } }

.waybill__main{
  padding:40px 40px 36px;
  position:relative;
}
.waybill__tag{
  position:absolute;
  top:26px;
  right:30px;
  width:96px;
  height:96px;
  border:2px solid var(--brand);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  transform:rotate(-11deg);
  color:var(--brand);
  font-family:var(--mono);
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.05em;
  line-height:1.35;
  text-transform:uppercase;
  opacity:.9;
}
@media (max-width:640px){ .waybill__tag{ display:none; } }

.waybill__code{
  font-family:var(--mono);
  font-size:12px;
  color:var(--soil);
  opacity:.55;
  letter-spacing:.04em;
  margin-bottom:22px;
}
.hero h1{
  font-size:clamp(34px, 5.4vw, 56px);
  max-width:11ch;
  margin-bottom:18px;
}
.hero h1 em{
  font-style:normal;
  color:var(--brand);
}
.hero p{
  font-size:17px;
  max-width:46ch;
  color:var(--soil);
  opacity:.82;
  margin-bottom:30px;
}
.hero__ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:34px; }

.hero__manifest{
  border-top:1px dashed rgba(46,52,64,.3);
  padding-top:20px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.hero__manifest div{ font-family:var(--mono); }
.hero__manifest b{
  display:block;
  font-family:var(--display);
  font-size:22px;
  font-weight:700;
  color:var(--brand-dark);
}
.hero__manifest span{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; opacity:.65; }

.waybill__photo{
  position:relative;
  min-height:340px;
  background:var(--soil);
}
.waybill__photo img{ width:100%; height:100%; object-fit:cover; opacity:.92; }
.waybill__photo::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(46,52,64,0) 40%, rgba(46,52,64,.65) 100%);
}
.waybill__caption{
  position:absolute;
  left:20px; bottom:16px;
  z-index:2;
  color:var(--bg);
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.05em;
  text-transform:uppercase;
}

/* ---------- section heads ---------- */
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:36px;
  flex-wrap:wrap;
}
.section-head h2{ font-size:clamp(26px,3.4vw,38px); max-width:16ch; }
.section-head p{ max-width:34ch; font-size:14.5px; opacity:.7; }

.section{ padding:76px 0; }
.section--dark{ background:var(--soil); color:var(--bg); }
.section--dark .eyebrow{ color:var(--gold); }
.section--dark .eyebrow::before{ background:var(--gold); }

/* ---------- about section ---------- */
.section--about{
  background:var(--bg-dim);
  border-top:1px solid rgba(46,52,64,.08);
  border-bottom:1px solid rgba(46,52,64,.08);
}
.about-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:48px;
  align-items:center;
}
@media (max-width:760px){ .about-grid{ grid-template-columns:1fr; gap:32px; } }
.about-text p{
  font-size:15.5px;
  line-height:1.7;
  opacity:.85;
  margin-bottom:16px;
  max-width:54ch;
}
.about-text strong{ color:var(--brand-dark); }
.about-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.stat{
  text-align:center;
  padding:28px 12px;
  background:var(--bg);
  border-radius:4px;
  border:1px solid rgba(46,52,64,.1);
}
.stat__num{
  display:block;
  font-family:var(--display);
  font-size:30px;
  font-weight:700;
  color:var(--brand-dark);
  line-height:1;
  margin-bottom:6px;
}
.stat__label{
  font-family:var(--mono);
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:.08em;
  opacity:.65;
}

/* ---------- product / service grid ---------- */
.grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
  background:rgba(46,52,64,.15);
  border:1px solid rgba(46,52,64,.15);
}
@media (max-width:900px){ .grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .grid{ grid-template-columns:1fr; } }

.item{
  background:var(--bg);
  padding:22px 22px 24px;
  display:flex;
  flex-direction:column;
  gap:14px;
  transition:background .15s ease;
}
.item:hover{ background:#eaeef4; }
.item__photo{
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:3px;
  position:relative;
}
.item__photo img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.item:hover .item__photo img{ transform:scale(1.05); }
.item__sku{
  position:absolute;
  top:8px; left:8px;
  background:var(--soil);
  color:var(--gold);
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.08em;
  padding:3px 7px;
  border-radius:2px;
  text-transform:uppercase;
}
.item h3{ font-size:18px; font-weight:600; font-family:var(--body); }
.item__units{
  font-family:var(--mono);
  font-size:12px;
  color:var(--brand-dark);
  letter-spacing:.02em;
}
.item p.desc{ font-size:13.5px; opacity:.72; flex-grow:1; }
.item__foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-top:6px;
  border-top:1px dashed rgba(46,52,64,.25);
}
.item__foot .btn{ flex-shrink:0; }

/* ---------- route / services list ---------- */
.route{
  position:relative;
  padding-left:0;
}
.route__line{
  position:absolute;
  left:27px; top:10px; bottom:10px;
  width:2px;
  background-image:linear-gradient(var(--gold) 50%, transparent 50%);
  background-size:2px 12px;
}
@media (max-width:640px){ .route__line{ left:19px; } }

.stop{
  display:grid;
  grid-template-columns:56px 1fr auto;
  gap:20px;
  align-items:center;
  padding:22px 0;
  border-bottom:1px solid rgba(255,255,255,.1);
  position:relative;
}
.stop:last-child{ border-bottom:none; }
@media (max-width:640px){ .stop{ grid-template-columns:40px 1fr; } .stop__cta{ grid-column:1 / -1; margin-top:12px; } }

.stop__num{
  width:56px; height:56px;
  border-radius:50%;
  border:1.5px solid var(--gold);
  color:var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mono);
  font-size:14px;
  z-index:2;
  background:var(--soil);
}
@media (max-width:640px){ .stop__num{ width:40px; height:40px; font-size:12px; } }

.stop__body h3{
  font-family:var(--body);
  font-weight:600;
  font-size:17px;
  margin-bottom:5px;
  color:var(--bg);
}
.stop__body p{ font-size:13.5px; opacity:.65; max-width:52ch; }
.stop__tag{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--gold);
  opacity:.85;
  margin-bottom:4px;
  display:block;
}

/* ---------- gallery ---------- */
.gallery{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-auto-rows:110px;
  gap:6px;
}
.gallery img{ width:100%; height:100%; object-fit:cover; border-radius:3px; cursor:pointer; }
.gallery a:nth-child(1){ grid-column:span 3; grid-row:span 2; }
.gallery a:nth-child(2){ grid-column:span 3; grid-row:span 2; }
.gallery a:nth-child(3){ grid-column:span 2; }
.gallery a:nth-child(4){ grid-column:span 2; }
.gallery a:nth-child(5){ grid-column:span 2; }
.gallery a{ display:block; overflow:hidden; border-radius:3px; }
.gallery img:hover{ transform:scale(1.03); }
.gallery img{ transition:transform .3s ease; }
@media (max-width:760px){
  .gallery{ grid-template-columns:repeat(3,1fr); grid-auto-rows:100px; }
  .gallery a:nth-child(1),.gallery a:nth-child(2){ grid-column:span 3; grid-row:span 2; }
}

/* ---------- video ---------- */
.video-wrap{
  position:relative;
  border-radius:6px;
  overflow:hidden;
  border:1.5px solid var(--soil);
  background:#000;
}
.video-wrap video{ width:100%; display:block; max-height:520px; object-fit:cover; }
.video-wrap__label{
  position:absolute; top:16px; left:16px;
  background:var(--brand);
  color:var(--bg);
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:5px 10px;
  border-radius:2px;
}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--brand);
  color:var(--bg);
  padding:52px 0;
  text-align:center;
}
.cta-band h2{ font-size:clamp(24px,3.6vw,34px); margin-bottom:14px; }
.cta-band p{ opacity:.9; margin-bottom:26px; max-width:46ch; margin-inline:auto; font-size:15px; }
.cta-band .btn--ghost{ border-color:var(--bg); color:var(--bg); }
.cta-band .btn--ghost:hover{ background:var(--bg); color:var(--brand); }

/* ---------- footer ---------- */
footer{
  background:var(--soil);
  color:var(--bg-dim);
  padding:56px 0 28px;
}
.footer__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:36px;
  margin-bottom:40px;
}
@media (max-width:700px){ .footer__grid{ grid-template-columns:1fr; } }
.footer__grid h4{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:14px;
}
.footer__grid p, .footer__grid a{ font-size:13.5px; opacity:.75; display:block; margin-bottom:8px; }
.footer__grid a:hover{ opacity:1; color:var(--gold); }
.footer__bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:22px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  font-family:var(--mono);
  font-size:11.5px;
  opacity:.55;
}

/* ---------- floating whatsapp ---------- */
.float-wa{
  position:fixed;
  right:20px; bottom:20px;
  z-index:60;
  background:var(--whatsapp);
  color:#fff;
  width:58px; height:58px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 22px rgba(0,0,0,.28);
  transition:transform .2s ease;
}
.float-wa:hover{ transform:scale(1.08); }
.float-wa svg{ width:28px; height:28px; }

/* ---------- lightbox ---------- */
.lightbox{
  position:fixed; inset:0;
  background:rgba(46,52,64,.92);
  display:none;
  align-items:center; justify-content:center;
  z-index:100;
  padding:40px;
}
.lightbox.open{ display:flex; }
.lightbox img{ max-width:min(900px,100%); max-height:85vh; border-radius:4px; }
.lightbox__close{
  position:absolute; top:24px; right:28px;
  color:var(--bg); font-family:var(--mono); font-size:13px;
  border:1px solid var(--bg-dim); border-radius:3px; padding:7px 12px;
  opacity:.85; cursor:pointer;
}

/* ---------- reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal-delay-1{ transition-delay:.1s; }
.reveal-delay-2{ transition-delay:.2s; }
.reveal-delay-3{ transition-delay:.3s; }
.reveal-delay-4{ transition-delay:.4s; }
.reveal-delay-5{ transition-delay:.5s; }
.reveal-delay-6{ transition-delay:.6s; }

/* ---------- sticky header on scroll ---------- */
header.scrolled{ box-shadow:0 2px 20px rgba(46,52,64,.1); }

/* =====================================================
   PAGE-SPECIFIC: Sobre / Valores / Timeline / Presença
   ===================================================== */

/* -- values grid (missão, visão, valores) -- */
.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
@media (max-width: 860px) { .values-grid { grid-template-columns: 1fr; } }

.value-card {
  text-align: center;
  padding: 2.5rem 1.5rem;
  border: 1.5px solid rgba(46,52,64,.15);
  border-radius: 4px;
  background: var(--bg);
  transition: border-color .3s, transform .3s;
}
.value-card:hover {
  border-color: var(--gold);
  transform: translateY(-4px);
}
.value-card .icon {
  font-size: 2.5rem;
  margin-bottom: 1rem;
  display: block;
}
.value-card h3 {
  font-family: var(--display);
  font-size: 1.2rem;
  margin-bottom: 0.75rem;
  color: var(--soil);
}
.value-card p {
  font-size: 0.88rem;
  color: var(--soil);
  opacity: .72;
  line-height: 1.7;
}
.value-card p strong { color: var(--brand); }

/* -- timeline -- */
.timeline {
  position: relative;
  padding-left: 2rem;
  max-width: 720px;
  margin: 0 auto;
}
.timeline::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: rgba(46,52,64,.2);
}
.timeline-item {
  position: relative;
  padding: 0 0 2.5rem 2rem;
}
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item::before {
  content: '';
  position: absolute;
  left: -2.55rem;
  top: 0.4rem;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--gold);
  border: 3px solid var(--bg);
  box-shadow: 0 0 0 2px var(--gold);
}
.timeline-year {
  font-family: var(--display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--brand);
  margin-bottom: 0.25rem;
}
.timeline-text {
  font-size: 0.9rem;
  opacity: .72;
  line-height: 1.7;
}

/* -- presença geográfica -- */
.presenca-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
@media (max-width: 1024px) { .presenca-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .presenca-grid { grid-template-columns: repeat(2, 1fr); } }

.presenca-item {
  background: var(--bg);
  border: 1.5px solid rgba(46,52,64,.12);
  border-radius: 4px;
  padding: 1.25rem 1rem;
  text-align: center;
  transition: border-color .3s, transform .3s;
}
.presenca-item:hover {
  border-color: var(--gold);
  transform: translateY(-2px);
}
.presenca-item .provincia {
  font-size: 0.88rem;
  font-weight: 600;
  display: block;
  margin-bottom: 0.2rem;
}
.presenca-item .regiao {
  font-size: 0.65rem;
  opacity: .6;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* -- about image with accent -- */
.about-image { position: relative; }
.about-image img {
  width: 100%;
  border-radius: 4px;
  position: relative;
  z-index: 1;
}
.about-image .accent {
  position: absolute;
  top: 12px; left: 12px;
  width: 100%; height: 100%;
  border: 2px solid var(--gold);
  border-radius: 4px;
  z-index: 0;
}

/* =====================================================
   PAGE-SPECIFIC: Produtos (steps, faq, format table)
   ===================================================== */

/* -- how to order steps -- */
.steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
@media (max-width: 860px) { .steps-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .steps-grid { grid-template-columns: 1fr; } }

.step-card {
  text-align: center;
  padding: 2rem 1rem;
  border: 1.5px solid rgba(46,52,64,.12);
  border-radius: 4px;
  background: var(--bg);
}
.step-card__num {
  font-family: var(--display);
  font-size: 2rem;
  font-weight: 700;
  color: var(--brand);
  line-height: 1;
  margin-bottom: 0.5rem;
}
.step-card h4 {
  font-size: 1rem;
  margin-bottom: 0.5rem;
  color: var(--soil);
}
.step-card p {
  font-size: 0.82rem;
  opacity: .7;
  line-height: 1.6;
}

/* -- product detail extras -- */
.prod-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
  margin-top: 0.5rem;
}
.prod-table th,
.prod-table td {
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid rgba(46,52,64,.1);
  text-align: left;
}
.prod-table th {
  font-family: var(--mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--brand);
  opacity: .8;
}

/* -- faq -- */
.faq-list { max-width: 720px; margin: 0 auto; }
.faq-item {
  border-bottom: 1px solid rgba(46,52,64,.12);
  padding: 1.25rem 0;
}
.faq-item__q {
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  color: var(--soil);
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  font-family: var(--body);
  padding: 0;
}
.faq-item__q::after {
  content: "+";
  font-family: var(--mono);
  font-size: 1.2rem;
  color: var(--brand);
  flex-shrink: 0;
  transition: transform .2s;
}
.faq-item.open .faq-item__q::after { content: "−"; }
.faq-item__a {
  font-size: 0.88rem;
  opacity: .72;
  line-height: 1.7;
  padding-top: 0.75rem;
  display: none;
}
.faq-item.open .faq-item__a { display: block; }

/* =====================================================
   PAGE-SPECIFIC: Serviços (detail cards)
   ===================================================== */
.serv-card {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 28px 0;
  border-bottom: 1px solid rgba(46,52,64,.1);
}
.serv-card:last-child { border-bottom: none; }
@media (max-width: 640px) {
  .serv-card { grid-template-columns: 40px 1fr; }
  .serv-card .serv-card__cta { grid-column: 1 / -1; margin-top: 12px; }
}
.serv-card__num {
  width: 56px; height: 56px;
  border-radius: 50%;
  border: 1.5px solid var(--brand);
  color: var(--brand);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--mono);
  font-size: 14px;
  background: var(--bg);
}
@media (max-width: 640px) { .serv-card__num { width: 40px; height: 40px; font-size: 12px; } }
.serv-card__body h3 {
  font-weight: 600;
  font-size: 1.1rem;
  margin-bottom: 5px;
}
.serv-card__body p { font-size: 0.88rem; opacity: .7; max-width: 52ch; line-height: 1.6; }
.serv-card__tag {
  font-family: var(--mono);
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--brand);
  opacity: .7;
  margin-bottom: 4px;
  display: block;
}

/* =====================================================
   PAGE-SPECIFIC: Contacto
   ===================================================== */
.contact-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  max-width: 800px;
  margin: 0 auto;
}
@media (max-width: 640px) { .contact-grid { grid-template-columns: 1fr; } }

.contact-card {
  border: 1.5px solid rgba(46,52,64,.12);
  border-radius: 4px;
  padding: 2rem 1.5rem;
  text-align: center;
  background: var(--bg);
  transition: border-color .3s, transform .3s;
}
.contact-card:hover {
  border-color: var(--gold);
  transform: translateY(-2px);
}
.contact-card__icon {
  font-size: 1.8rem;
  margin-bottom: 0.75rem;
  display: block;
}
.contact-card h3 {
  font-family: var(--body);
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.contact-card p, .contact-card a {
  font-size: 0.88rem;
  opacity: .75;
}
.contact-card a:hover { opacity: 1; color: var(--brand); }

.contact-hours {
  text-align: center;
  margin-top: 2rem;
  font-size: 0.88rem;
  opacity: .7;
}
.contact-hours strong { color: var(--brand); opacity: 1; }

/* =====================================================
   PAGE-SPECIFIC: Galeria (expanded lightbox nav)
   ===================================================== */
.lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,.15);
  color: var(--bg);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;
  width: 44px; height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-family: var(--mono);
  font-size: 18px;
  transition: background .2s;
  z-index: 5;
}
.lightbox__nav:hover { background: rgba(255,255,255,.3); }
.lightbox__nav--prev { left: 20px; }
.lightbox__nav--next { right: 20px; }
.lightbox__counter {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  color: var(--bg);
  font-family: var(--mono);
  font-size: 13px;
  opacity: .7;
  z-index: 5;
}

/* =====================================================
   PAGE ACTIVE LINK
   ===================================================== */
.nav__links a.active { color: var(--brand); }

/* =====================================================
   SECTION LABEL (reusable eyebrow for inner pages)
   ===================================================== */
.section-label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--brand);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.section-label::before {
  content: "";
  width: 22px;
  height: 1px;
  background: var(--brand);
}
.section--dark .section-label { color: var(--gold); }
.section--dark .section-label::before { background: var(--gold); }
.section-title {
  font-family: var(--display);
  font-size: clamp(26px, 3.4vw, 38px);
  font-weight: 700;
  line-height: 1.05;
  max-width: 16ch;
  margin-bottom: 1rem;
}
.section-subtitle {
  max-width: 48ch;
  font-size: 14.5px;
  opacity: .7;
}
.section-header {
  margin-bottom: 2.5rem;
}

/* =====================================================
   SECTION LIGHT (alternate bg for inner pages)
   ===================================================== */
.section--light {
  background: var(--bg-dim);
  border-top: 1px solid rgba(46,52,64,.08);
  border-bottom: 1px solid rgba(46,52,64,.08);
}

/* =====================================================
   INNER PAGE INTRO
   ===================================================== */
.page-intro {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 2.5rem;
  font-size: 15px;
  opacity: .78;
  line-height: 1.7;
}

/* =====================================================
   FULL-WIDTH VIDEO WRAP (serviços page)
   ===================================================== */
.video-full {
  border-radius: 6px;
  overflow: hidden;
  border: 1.5px solid var(--soil);
  background: #000;
}
.video-full video { width: 100%; display: block; max-height: 480px; object-fit: cover; }

/* =====================================================
   ABOUT NUMBERS (sobre page)
   ===================================================== */
.about-numbers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 2rem;
}
.about-num {
  font-family: var(--display);
  font-size: 2rem;
  font-weight: 700;
  color: var(--brand);
  line-height: 1;
  margin-bottom: 0.25rem;
}
.about-num-label {
  font-family: var(--mono);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: .65;
}

/* =====================================================
   COMMITMENT BANNER
   ===================================================== */
.commitment-banner {
  background: var(--brand);
  color: var(--bg);
  padding: 48px 0;
  text-align: center;
}
.commitment-banner h2 {
  font-size: clamp(24px, 3.6vw, 34px);
  margin-bottom: 14px;
}
.commitment-banner p {
  opacity: .9;
  max-width: 56ch;
  margin: 0 auto 28px;
  font-size: 15px;
}
.commitment-banner .btn--ghost {
  border-color: var(--bg);
  color: var(--bg);
}
.commitment-banner .btn--ghost:hover {
  background: var(--bg);
  color: var(--brand);
}

/* =====================================================
   INNER PAGE HERO (compact page header)
   ===================================================== */
.page-hero {
  padding: 56px 0 32px;
  background: var(--bg-dim);
  border-bottom: 1px solid rgba(46,52,64,.08);
}
.page-hero h1 {
  font-family: var(--display);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  line-height: 1.05;
  margin-bottom: 8px;
}
.page-hero p {
  font-size: 15px;
  opacity: .7;
  max-width: 48ch;
}
