/* =========================================================
   MADRESILVA — PREMIUM LAYER (Apple-inspired)
   Paleta: navy #0d2345 / soft #18345f / bg #f5f7fb
   Carregue DEPOIS de Style.css para sobrepor seletivamente.
   ========================================================= */

:root{
  --p-bg:#f5f7fb;
  --p-bg-2:#eef2f8;
  --p-navy:#0d2345;
  --p-navy-2:#18345f;
  --p-ink:#0a1a33;
  --p-muted:#5d6a82;
  --p-line:rgba(13,35,69,.08);
  --p-line-2:rgba(255,255,255,.12);
  --p-glass:rgba(255,255,255,.55);
  --p-glass-dark:rgba(9,20,38,.55);
  --p-shadow-1:0 10px 30px rgba(13,35,69,.06), 0 1px 2px rgba(13,35,69,.04);
  --p-shadow-2:0 30px 80px rgba(13,35,69,.12);
  --p-radius:28px;
  --p-radius-l:36px;
  --ease-apple:cubic-bezier(.22,1,.36,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
}

/* Tipografia premium ------------------------------------------------ */
body{
  font-family:"Inter","SF Pro Display",-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  background:var(--p-bg);
  color:var(--p-ink);
  font-feature-settings:"ss01","cv11","cv02";
  letter-spacing:-.01em;
}

.display-serif{
  font-family:"Instrument Serif","New York",Georgia,serif;
  font-weight:400;
  font-style:italic;
  letter-spacing:-.02em;
}

/* Preloader --------------------------------------------------------- */
.p-loader{
  position:fixed; inset:0; z-index:9999;
  background:var(--p-navy);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .8s var(--ease-apple), visibility .8s;
}
.p-loader.is-done{ opacity:0; visibility:hidden; }
.p-loader .pl-mark{
  width:64px; height:64px; border-radius:50%;
  border:1.5px solid rgba(255,255,255,.18);
  border-top-color:#fff;
  animation:plspin 1s linear infinite;
}
@keyframes plspin{ to{ transform:rotate(360deg); } }

/* Cursor magnético (2 elementos: outer posiciona, inner escala) ----- */
.p-cursor{
  position:fixed; top:0; left:0; pointer-events:none; z-index:9998;
  width:0; height:0;
  display:none;
  will-change:transform;
}
.p-cursor-dot{
  position:absolute; top:0; left:0;
  width:14px; height:14px; border-radius:50%;
  background:rgba(255,255,255,.85);
  mix-blend-mode:difference;
  transform:translate(-50%,-50%) scale(1);
  transition:transform .25s var(--ease-apple), background .25s;
}
.p-cursor.is-hover .p-cursor-dot{
  transform:translate(-50%,-50%) scale(3.2);
  background:#fff;
}
@media (hover:hover) and (pointer:fine){ .p-cursor{ display:block; } }

/* Header refinado --------------------------------------------------- */
.site-header{
  padding:18px 42px;
  background:rgba(8,18,36,.22);
  backdrop-filter:saturate(140%) blur(18px);
  -webkit-backdrop-filter:saturate(140%) blur(18px);
  border-bottom:1px solid rgba(255,255,255,.06);
  transition:background .5s var(--ease-apple), padding .5s var(--ease-apple), box-shadow .5s var(--ease-apple);
}
.site-header.scrolled{
  background:rgba(8,18,36,.78);
  padding:12px 42px;
  box-shadow:0 14px 40px rgba(0,0,0,.22);
}
.logo img{ height:32px; transition:transform .4s var(--ease-apple); }
.logo:hover img{ transform:scale(1.04); }
.main-nav a{
  font-size:.92rem; font-weight:500; opacity:.88;
  transition:opacity .3s var(--ease-apple);
}
.main-nav a:hover{ opacity:1; }
.main-nav a::after{ height:1px; bottom:-6px; }

/* Link ativo (página atual) */
.main-nav a.active-link{
  opacity:1;
  font-weight:600;
}
.main-nav a.active-link::after{
  transform:scaleX(1);
  opacity:.7;
}

/* HERO cinematográfico --------------------------------------------- */
.hero{
  min-height:100vh;
  padding:140px 28px 90px;
}
.hero-video{
  transform:scale(1.08);
  transition:transform 1.2s var(--ease-apple);
  filter:saturate(.92) contrast(1.02);
}
.hero-overlay{
  background:
    radial-gradient(120% 80% at 50% 110%, rgba(13,35,69,.85) 0%, rgba(8,17,35,.35) 60%, transparent 100%),
    linear-gradient(180deg, rgba(8,17,35,.55) 0%, rgba(8,17,35,.25) 35%, rgba(8,17,35,.75) 100%);
}
.hero-content{
  max-width:1100px;
}
.hero .eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 16px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  backdrop-filter:blur(10px);
  margin-bottom:28px;
  font-size:.72rem;
}
.hero .eyebrow::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background:#a8d4ff; box-shadow:0 0 12px #a8d4ff;
  animation:pulseDot 2s ease-in-out infinite;
}
@keyframes pulseDot{ 50%{ opacity:.4; } }

.hero h1{
  font-size:clamp(2.6rem, 6.4vw, 5.6rem);
  line-height:.95;
  letter-spacing:-.05em;
  font-weight:600;
  margin-bottom:28px;
}
.hero h1 .accent{
  font-family:"Instrument Serif","New York",Georgia,serif;
  font-style:italic;
  font-weight:400;
  letter-spacing:-.02em;
  color:#dfe8f7;
  line-height:inherit;
  vertical-align:baseline;
}
.hero p{ font-size:1.15rem; opacity:.85; max-width:640px; }

/* Split-text reveal */
.split-line{
  display:block;
  overflow:hidden;
  padding-bottom:.08em;
}
.split-line .word{
  display:inline-block;
  vertical-align:baseline;
  transform:translateY(110%);
  transition:transform 1s var(--ease-apple);
}
.is-ready .split-line .word{ transform:translateY(0); }
.split-line .word:nth-child(1){ transition-delay:.05s; }
.split-line .word:nth-child(2){ transition-delay:.12s; }
.split-line .word:nth-child(3){ transition-delay:.19s; }
.split-line .word:nth-child(4){ transition-delay:.26s; }
.split-line .word:nth-child(5){ transition-delay:.33s; }
.split-line .word:nth-child(6){ transition-delay:.40s; }
.split-line .word:nth-child(7){ transition-delay:.47s; }
.split-line .word:nth-child(8){ transition-delay:.54s; }
.split-line .word:nth-child(9){ transition-delay:.61s; }
.split-line .word:nth-child(10){ transition-delay:.68s; }

/* Scroll indicator */
.scroll-indicator{
  position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
  z-index:2; color:#fff;
  font-size:.7rem; letter-spacing:.28em; text-transform:uppercase;
  opacity:.7;
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.scroll-indicator .line{
  width:1px; height:48px;
  background:linear-gradient(180deg, rgba(255,255,255,.7), transparent);
  position:relative; overflow:hidden;
}
.scroll-indicator .line::after{
  content:""; position:absolute; top:-50%; left:0; width:100%; height:50%;
  background:#fff;
  animation:scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{ top:-50%; } 100%{ top:120%; }
}

/* Botões premium ---------------------------------------------------- */
.btn{
  min-width:auto;
  padding:14px 26px;
  font-size:.92rem;
  font-weight:500;
  letter-spacing:-.005em;
  transition:transform .4s var(--ease-apple), box-shadow .4s var(--ease-apple), background .4s var(--ease-apple), color .4s var(--ease-apple);
  position:relative; overflow:hidden;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{
  background:#fff; color:var(--p-navy);
  box-shadow:0 10px 30px rgba(255,255,255,.18);
}
.btn-primary:hover{ box-shadow:0 18px 40px rgba(255,255,255,.28); }
.btn-secondary{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  backdrop-filter:blur(10px);
}
.btn-secondary:hover{ background:rgba(255,255,255,.16); }
.btn-arrow{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 22px;
  border-radius:999px;
  background:var(--p-navy); color:#fff;
  text-decoration:none; font-size:.92rem; font-weight:500;
  transition:gap .35s var(--ease-apple), background .35s, color .35s;
}
.btn-arrow:hover{ gap:14px; background:var(--p-navy-2); }
.btn-arrow svg{ width:16px; height:16px; }

/* Inverte o btn-arrow quando está sobre seção escura */
.section-dark .btn-arrow,
.contact-dark-card .btn-arrow{
  background:#fff; color:var(--p-navy);
}
.section-dark .btn-arrow:hover,
.contact-dark-card .btn-arrow:hover{
  background:#eef3fa; color:var(--p-navy);
}

/* Marquee infinito -------------------------------------------------- */
.p-marquee{
  overflow:hidden;
  border-top:1px solid var(--p-line);
  border-bottom:1px solid var(--p-line);
  background:var(--p-bg);
  padding:28px 0;
}
.p-marquee__track{
  display:flex; gap:0;
  width:max-content;
  animation:marquee 38s linear infinite;
}
.p-marquee__item{
  display:inline-flex; align-items:center; gap:20px;
  margin-right:64px;
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic;
  font-size:clamp(2.2rem, 5vw, 4rem);
  color:var(--p-navy);
  letter-spacing:-.02em;
  white-space:nowrap;
}
.p-marquee__item span.dot{
  width:10px; height:10px; border-radius:50%; background:var(--p-navy);
  opacity:.4;
}
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* Manifesto pinned (palavras revelando) ---------------------------- */
.p-manifesto{
  max-width:var(--max-width);
  margin:0 auto;
  padding:140px 28px;
}
.p-manifesto__eyebrow{
  display:flex; align-items:center; gap:14px;
  font-size:.72rem; font-weight:700; letter-spacing:.22em;
  text-transform:uppercase; color:var(--p-navy-2);
  margin-bottom:36px;
}
.p-manifesto__eyebrow::before{
  content:""; width:38px; height:1px; background:var(--p-navy-2);
}
.p-manifesto__text{
  font-size:clamp(1.8rem, 4vw, 3.4rem);
  line-height:1.18;
  letter-spacing:-.035em;
  font-weight:500;
  color:var(--p-ink);
  max-width:1100px;
}
.p-manifesto__text .word{
  display:inline-block;
  opacity:.12;
  transition:opacity .4s var(--ease-apple);
}
.p-manifesto__text .word.is-on{ opacity:1; }
.p-manifesto__text em{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-weight:400;
}

/* O Grupo — três marcas em cards stacked --------------------------- */
.p-group{
  max-width:var(--max-width);
  margin:0 auto;
  padding:120px 28px;
}
.p-group__head{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:end;
  margin-bottom:54px;
}
.p-group__head h2{
  font-size:clamp(2.2rem, 4.5vw, 3.8rem);
  line-height:1.05; letter-spacing:-.04em; font-weight:600;
  color:var(--p-ink);
}
.p-group__head h2 em{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-weight:400;
}
.p-group__head p{
  color:var(--p-muted); font-size:1.05rem; line-height:1.75; max-width:480px;
}

.p-brands{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:18px;
}
.p-brand{
  position:relative;
  min-height:560px;
  border-radius:var(--p-radius-l);
  overflow:hidden;
  isolation:isolate;
  cursor:pointer;
  transition:transform .6s var(--ease-apple), box-shadow .6s var(--ease-apple);
}
.p-brand:hover{
  transform:translateY(-6px);
  box-shadow:var(--p-shadow-2);
}
.p-brand__bg{
  position:absolute; inset:0; z-index:-2;
  background-size:cover; background-position:center;
  transition:transform 1.2s var(--ease-apple), filter .6s;
  transform:scale(1.05);
}
.p-brand:hover .p-brand__bg{ transform:scale(1.14); }
.p-brand::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(8,17,35,.0) 30%, rgba(8,17,35,.85) 100%);
}
.p-brand__content{
  position:absolute; left:0; right:0; bottom:0;
  padding:32px;
  color:#fff;
}
.p-brand__mark{
  display:inline-block;
  font-size:.7rem; letter-spacing:.3em; text-transform:uppercase;
  padding:6px 12px; border:1px solid rgba(255,255,255,.3); border-radius:999px;
  margin-bottom:18px;
  opacity:.85;
}
.p-brand h3{
  font-size:clamp(1.8rem, 3vw, 2.6rem);
  line-height:1.05; letter-spacing:-.035em; font-weight:600;
  margin-bottom:10px;
}
.p-brand h3 em{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-weight:400;
}
.p-brand p{
  font-size:.98rem; line-height:1.6;
  color:rgba(255,255,255,.82);
  max-width:380px;
  transform:translateY(10px); opacity:0;
  transition:transform .5s var(--ease-apple), opacity .5s;
}
.p-brand:hover p{ transform:translateY(0); opacity:1; }
.p-brand__cta{
  margin-top:18px;
  display:inline-flex; align-items:center; gap:8px;
  color:#fff; text-decoration:none; font-size:.9rem; font-weight:500;
  transform:translateY(10px); opacity:0;
  transition:transform .55s var(--ease-apple) .05s, opacity .55s .05s, gap .35s var(--ease-apple);
}
.p-brand:hover .p-brand__cta{ transform:translateY(0); opacity:1; }
.p-brand__cta:hover{ gap:14px; }

/* Petra & Solare — split contrastante ------------------------------ */
.p-lines{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:90vh;
  position:relative;
}
.p-line{
  position:relative; overflow:hidden;
  padding:120px 56px;
  display:flex; flex-direction:column; justify-content:flex-end;
  color:#fff;
  isolation:isolate;
  transition:flex .8s var(--ease-apple);
}
.p-line__bg{
  position:absolute; inset:0; z-index:-2;
  background-size:cover; background-position:center;
  transform:scale(1.05); filter:brightness(.7);
  transition:transform 1.5s var(--ease-apple), filter .8s;
}
.p-line:hover .p-line__bg{ transform:scale(1.12); filter:brightness(.85); }
.p-line::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, transparent 40%, rgba(8,17,35,.8) 100%);
}
.p-line--petra::after{
  background:linear-gradient(180deg, transparent 30%, rgba(28,22,15,.85) 100%);
}
.p-line--solare::after{
  background:linear-gradient(180deg, transparent 30%, rgba(40,55,75,.78) 100%);
}
.p-line__label{
  font-size:.72rem; letter-spacing:.3em; text-transform:uppercase;
  opacity:.75; margin-bottom:16px;
}
.p-line__title{
  font-size:clamp(3rem, 6vw, 5.5rem);
  line-height:.95; letter-spacing:-.05em; font-weight:600;
  margin-bottom:18px;
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-weight:400;
}
.p-line__desc{
  font-size:1.05rem; line-height:1.7; opacity:.88;
  max-width:460px; margin-bottom:28px;
}
.p-line__link{
  display:inline-flex; align-items:center; gap:10px;
  color:#fff; text-decoration:none;
  font-size:.92rem; font-weight:500;
  padding:14px 22px; border-radius:999px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(10px);
  width:fit-content;
  transition:background .35s, gap .35s var(--ease-apple);
}
.p-line__link:hover{ background:rgba(255,255,255,.2); gap:16px; }

/* Stats counter ----------------------------------------------------- */
.p-stats{
  max-width:var(--max-width);
  margin:0 auto;
  padding:120px 28px;
}
.p-stats__grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:32px;
  border-top:1px solid var(--p-line);
  padding-top:54px;
}
.p-stat__num{
  font-size:clamp(3rem, 5.5vw, 5rem);
  line-height:1; font-weight:600; letter-spacing:-.04em;
  color:var(--p-navy);
  display:flex; align-items:baseline; gap:6px;
}
.p-stat__num sup{
  font-size:.4em; font-weight:500; color:var(--p-navy-2);
  position:relative; top:-.3em;
}
.p-stat__label{
  margin-top:14px;
  font-size:.92rem; line-height:1.6; color:var(--p-muted);
}

/* Galeria parallax ------------------------------------------------- */
.p-gallery{
  max-width:var(--max-width);
  margin:0 auto;
  padding:120px 28px;
}
.p-gallery__grid{
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  grid-auto-rows:80px;
  gap:18px;
}
.p-gallery__item{
  position:relative; overflow:hidden;
  border-radius:24px;
}
.p-gallery__item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.4s var(--ease-apple);
}
.p-gallery__item:hover img{ transform:scale(1.06); }
.p-gallery__item.i1{ grid-column:span 7; grid-row:span 6; }
.p-gallery__item.i2{ grid-column:span 5; grid-row:span 4; }
.p-gallery__item.i3{ grid-column:span 5; grid-row:span 5; }
.p-gallery__item.i4{ grid-column:span 7; grid-row:span 5; }

/* Carrossel premium com peek --------------------------------------- */
.p-carousel{
  position:relative;
  max-width:var(--max-width);
  margin:0 auto;
  padding:0 28px;
}
.p-carousel__viewport{
  border-radius:var(--p-radius-l);
  overflow:hidden;
  box-shadow:var(--p-shadow-2);
  background:#0a1a33;
}
.p-carousel__track{
  display:flex;
  transition:transform .9s var(--ease-apple);
}
.p-carousel__slide{
  min-width:100%;
  position:relative;
  aspect-ratio:16/9;
  background:#0a1a33;
  display:flex; align-items:center; justify-content:center;
}
.p-carousel__slide img,
.p-carousel__slide video{
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.02);
  transition:transform 1.2s var(--ease-apple);
}
.p-carousel__slide.active img,
.p-carousel__slide.active video{ transform:scale(1); }
.p-carousel__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:50%;
  background:rgba(255,255,255,.9);
  border:1px solid var(--p-line);
  backdrop-filter:blur(10px);
  cursor:pointer; color:var(--p-navy);
  transition:background .3s, transform .3s var(--ease-apple);
  z-index:3;
}
.p-carousel__nav:hover{ background:#fff; transform:translateY(-50%) scale(1.08); }
.p-carousel__nav.prev{ left:54px; }
.p-carousel__nav.next{ right:54px; }
.p-carousel__nav svg{ width:18px; height:18px; }
.p-carousel__dots{
  display:flex; justify-content:center; gap:8px; margin-top:24px;
}
.p-carousel__dots button{
  width:28px; height:4px; border-radius:4px;
  background:rgba(13,35,69,.18); border:none; cursor:pointer;
  transition:background .35s, width .35s var(--ease-apple);
}
.p-carousel__dots button.active{
  background:var(--p-navy); width:44px;
}

/* Factory section dark -------------------------------------------- */
.section-dark{
  border-radius:48px 48px 0 0;
  padding:120px 28px;
  background:radial-gradient(120% 100% at 50% 0%, #142a52 0%, var(--p-navy) 50%, #07142b 100%);
  color:#fff;
}
.section-dark .eyebrow,
.section-dark h2,
.section-dark h3,
.section-dark p,
.section-dark .factory-copy h2,
.section-dark .factory-copy p,
.section-dark .factory-copy .eyebrow{
  color:#fff;
}
.section-dark p,
.section-dark .factory-copy p{
  color:rgba(255,255,255,.82);
}
.factory-grid{ gap:54px; align-items:center; }
.section-dark .factory-copy h2{
  font-size:clamp(2.2rem, 4.5vw, 3.6rem);
  letter-spacing:-.04em; font-weight:600;
  margin-bottom:20px;
  color:#fff;
}
.section-dark .factory-copy h2 em{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-weight:400;
  color:#dfe8f7;
}
.section-dark .factory-copy p{
  font-size:1.05rem; line-height:1.8; margin-bottom:30px;
  max-width:480px;
}
.factory-visual .image-placeholder{
  position:relative;
  border-radius:var(--p-radius-l);
  overflow:hidden;
  /* aspect-ratio da altura definida -> o video (elemento replaced) consegue
     preencher 100%. Antes, com min-height + height:100%, o video usava a
     altura intrinseca e sobrava o fundo navy ao redor = "borda". */
  aspect-ratio:16 / 11;
  min-height:0;
  border:none;
  background:#0a1a33;
}
.factory-visual video{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.02);
}

/* Big CTA contato -------------------------------------------------- */
.p-contact{
  max-width:var(--max-width);
  margin:0 auto;
  padding:140px 28px;
  text-align:center;
}
.p-contact h2{
  font-size:clamp(3rem, 8vw, 7rem);
  line-height:.95; letter-spacing:-.05em; font-weight:600;
  color:var(--p-ink);
  margin-bottom:40px;
}
.p-contact h2 em{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-weight:400;
  color:var(--p-navy-2);
}
.p-contact__actions{
  display:flex; justify-content:center; flex-wrap:wrap; gap:14px;
}
.p-contact .btn-primary{
  background:var(--p-navy); color:#fff;
  box-shadow:0 16px 40px rgba(13,35,69,.22);
}
.p-contact .btn-primary:hover{ box-shadow:0 24px 56px rgba(13,35,69,.32); }
.p-contact .btn-secondary{
  background:transparent;
  border:1px solid var(--p-line);
  color:var(--p-navy);
}
.p-contact .btn-secondary:hover{ background:rgba(13,35,69,.04); }

/* Reveal premium --------------------------------------------------- */
.p-reveal{
  opacity:0; transform:translateY(40px);
  transition:opacity 1s var(--ease-apple), transform 1s var(--ease-apple);
}
.p-reveal.is-on{ opacity:1; transform:translateY(0); }
.p-reveal-delay-1{ transition-delay:.1s; }
.p-reveal-delay-2{ transition-delay:.2s; }
.p-reveal-delay-3{ transition-delay:.3s; }

.p-mask{
  clip-path:inset(100% 0 0 0);
  transition:clip-path 1.2s var(--ease-apple);
}
.p-mask.is-on{ clip-path:inset(0 0 0 0); }

/* Footer premium --------------------------------------------------- */
.site-footer{
  margin-top:0;
  background:radial-gradient(120% 100% at 50% 0%, #0d2345 0%, #050d1c 100%);
  padding:80px 28px 32px;
  position:relative;
  overflow:hidden;
}
.site-footer::before{
  content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.16), transparent);
}
.footer-top{
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-logo{
  font-family:"Instrument Serif",Georgia,serif;
  font-size:1.8rem; font-style:italic; font-weight:400;
  letter-spacing:-.03em;
  margin-bottom:12px; display:block;
}
.footer-column a{
  transition:color .3s, transform .3s var(--ease-apple);
  display:inline-block;
}
.footer-column a:hover{ color:#fff; transform:translateX(4px); }
.footer-link-cta{
  display:inline-flex; align-items:center; gap:8px;
  transition:gap .3s var(--ease-apple);
}
.footer-link-cta:hover{ gap:14px; }

/* Page hero (sobre, fábrica, contato, representantes) -------------- */
.page-hero{
  position:relative;
  min-height:72vh;
  display:flex; align-items:center; justify-content:center;
  padding:160px 28px 100px;
  overflow:hidden;
  background:radial-gradient(120% 100% at 50% 0%, #142a52 0%, var(--p-navy) 60%, #07142b 100%);
}
.page-hero video,
.factory-hero-video,
.page-hero-bg{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:0;
  filter:saturate(.92) contrast(1.02);
  transform:scale(1.05);
}
.page-hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(120% 80% at 50% 110%, rgba(13,35,69,.85) 0%, rgba(8,17,35,.4) 60%, transparent 100%),
    linear-gradient(180deg, rgba(8,17,35,.55) 0%, rgba(8,17,35,.25) 40%, rgba(8,17,35,.75) 100%);
}
.page-hero-content{
  position:relative; z-index:2;
  max-width:1000px; text-align:center;
  color:#fff;
}
.page-hero-content .eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 16px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  backdrop-filter:blur(10px);
  margin-bottom:24px;
  font-size:.72rem;
  color:#fff;
}
.page-hero-content .eyebrow::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background:#a8d4ff; box-shadow:0 0 12px #a8d4ff;
}
.page-hero-content h1{
  font-size:clamp(2.4rem, 5.8vw, 5rem);
  line-height:1; letter-spacing:-.05em; font-weight:600;
  margin-bottom:22px; color:#fff;
}
.page-hero-content h1 em{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-weight:400;
}
.page-hero-content p{
  font-size:1.1rem; line-height:1.7; opacity:.85;
  max-width:680px; margin:0 auto;
}

/* Page section headings refinadas --------------------------------- */
.section-head h2{
  font-weight:600;
}
.section-head h2 em{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-weight:400;
}

/* Cards de página (story, value, duo, etc.) ----------------------- */
.story-card,
.value-card,
.duo-card,
.timeline-item,
.process-visual-card,
.machine-card,
.film-main,
.film-side,
.contact-highlight-card,
.contact-info-card{
  border-radius:var(--p-radius);
  border:1px solid var(--p-line);
  box-shadow:var(--p-shadow-1);
  background:#fff;
  transition:transform .5s var(--ease-apple), box-shadow .5s var(--ease-apple);
}
.story-card:hover,
.value-card:hover,
.duo-card:hover,
.process-visual-card:hover,
.machine-card:hover,
.film-main:hover,
.film-side:hover,
.contact-highlight-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--p-shadow-2);
}
.story-card h3,
.value-card h3,
.duo-card h3,
.timeline-item h3,
.process-visual-copy h3,
.contact-highlight-card h3,
.contact-info-card h3{
  font-weight:600;
  letter-spacing:-.02em;
}

/* Timeline numerada premium --------------------------------------- */
.timeline-item{
  padding:32px;
  display:flex; gap:24px; align-items:flex-start;
}
.timeline-number{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-size:2.2rem;
  color:var(--p-navy);
  line-height:1;
  flex-shrink:0;
}

/* Botões secundários em fundo claro ------------------------------- */
.btn-secondary.dark-outline{
  background:transparent;
  border:1px solid var(--p-line);
  color:var(--p-navy);
}
.btn-secondary.dark-outline:hover{
  background:rgba(13,35,69,.04);
}
.btn-secondary.light-outline{
  background:transparent;
  border:1px solid rgba(255,255,255,.3);
  color:#fff;
}
.btn-secondary.light-outline:hover{
  background:rgba(255,255,255,.1);
}

/* Formulário premium (contato) ------------------------------------ */
.contact-form-card,
.premium-form-card{
  border-radius:var(--p-radius-l);
  border:1px solid var(--p-line);
  background:#fff;
  padding:46px;
  box-shadow:var(--p-shadow-1);
}
.contact-form-card .mini-label{
  color:var(--p-navy-2);
}
.contact-form-card h2{
  font-size:clamp(1.6rem,2.6vw,2.2rem);
  letter-spacing:-.025em; font-weight:600;
  color:var(--p-ink);
  margin-bottom:14px;
}
.input-shell{
  display:flex; align-items:center; gap:10px;
  padding:14px 18px;
  background:var(--p-bg);
  border:1px solid var(--p-line);
  border-radius:14px;
  transition:border-color .3s var(--ease-apple), background .3s;
}
.input-shell:focus-within{
  border-color:var(--p-navy);
  background:#fff;
}
.input-shell .input-icon{
  color:var(--p-navy-2); opacity:.6; font-size:.85rem;
}
.input-shell input,
.input-shell select,
.input-shell textarea{
  flex:1; border:0; outline:0; background:transparent;
  font-family:inherit; font-size:.96rem; color:var(--p-ink);
  width:100%; resize:vertical;
}
.field-group label{
  display:block; font-size:.78rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--p-navy-2); margin-bottom:8px;
}
.form-grid.two-cols{
  display:grid; grid-template-columns:1fr 1fr; gap:18px;
  margin-bottom:18px;
}
.contact-submit-btn,
.full-btn{
  width:100%; background:var(--p-navy); color:#fff;
  border:0; border-radius:999px; padding:16px;
  font-size:.95rem; font-weight:500; cursor:pointer;
  margin-top:8px;
  transition:transform .35s var(--ease-apple), box-shadow .35s;
}
.contact-submit-btn:hover,
.full-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(13,35,69,.18);
}

.contact-info-card{
  padding:34px;
}
.contact-info-card.contact-dark-card{
  background:linear-gradient(160deg,#0d2345,#06112a);
  color:#fff; border:0;
}
.contact-info-card.contact-dark-card h3{ color:#fff; }
.contact-info-card.contact-dark-card p{ color:rgba(255,255,255,.78); }
.contact-info-list{
  display:flex; flex-direction:column; gap:14px;
  margin-top:18px;
}
.contact-info-item{
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 0; border-bottom:1px solid var(--p-line);
}
.contact-info-item:last-child{ border-bottom:0; }
.contact-info-item span{
  font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--p-muted);
}
.contact-info-item a{
  color:var(--p-navy); text-decoration:none; font-weight:500;
  transition:opacity .3s;
}
.contact-info-item a:hover{ opacity:.6; }

/* Iframe map clean ------------------------------------------------ */
.contact-map-visual .image-placeholder{
  padding:0; min-height:auto;
  background:#fff;
}
.contact-map-visual iframe{
  width:100%; height:480px; border:0;
  display:block; border-radius:var(--p-radius);
}

/* Coleções: cards e transições ------------------------------------ */
.collection-feature-card{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
  padding:80px 0;
  border-bottom:1px solid var(--p-line);
}
.collection-feature-card:last-child{ border-bottom:0; }
.collection-feature-media{
  border-radius:var(--p-radius-l);
  overflow:hidden;
  aspect-ratio:4/5;
  background:linear-gradient(135deg,#dde6f3 0%, #eef3fa 100%);
}
.collection-feature-media img,
.collection-feature-media video{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.4s var(--ease-apple);
}
.collection-feature-media:hover img,
.collection-feature-media:hover video{ transform:scale(1.06); }
.collection-kicker{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-size:2.4rem;
  color:var(--p-navy-2); display:block; margin-bottom:14px;
}
.collection-feature-copy h2{
  font-size:clamp(2rem,3.8vw,3rem);
  line-height:1.05; letter-spacing:-.035em; font-weight:600;
  color:var(--p-ink); margin-bottom:18px;
}
.collection-feature-copy p{
  color:var(--p-muted); font-size:1rem; line-height:1.75;
  margin-bottom:14px; max-width:520px;
}
.transition-link{
  display:block; padding:42px;
  border-radius:var(--p-radius-l);
  background:linear-gradient(160deg,#0d2345,#06112a);
  color:#fff; text-decoration:none;
  transition:transform .5s var(--ease-apple);
  position:relative; overflow:hidden;
}
.transition-link:hover{ transform:translateY(-6px); }
.transition-link-top{
  font-size:.78rem; letter-spacing:.2em;
  text-transform:uppercase; opacity:.7;
  display:block; margin-bottom:12px;
}
.transition-link strong{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic; font-size:clamp(2.4rem,5vw,3.6rem);
  font-weight:400; letter-spacing:-.02em;
  display:block;
}
.transition-links{
  display:grid; grid-template-columns:1fr 1fr; gap:20px;
  margin-top:32px;
}

/* Floating pieces hero coleções ----------------------------------- */
.floating-piece{
  position:absolute; z-index:1;
  transition:transform .8s var(--ease-apple);
}
.floating-piece img{
  max-width:160px; opacity:.7;
  filter:brightness(0) invert(1);
}
.piece-one{ top:18%; left:10%; }
.piece-two{ bottom:18%; right:12%; }

/* Brazil map (representantes) ------------------------------------- */
.brazil-map-wrap{
  background:#fff; border-radius:var(--p-radius-l);
  padding:32px; border:1px solid var(--p-line);
}
.brazil-map .state path{
  fill:#e4eaf3; stroke:#fff; stroke-width:1.2;
  transition:fill .3s var(--ease-apple);
  cursor:pointer;
}
.brazil-map .state:hover path,
.brazil-map .state.active path{
  fill:var(--p-navy);
}

/* Form status -------------------------------------------------- */
#form-status{
  margin:14px 0;
}
#form-status.success,
#form-status.error{
  padding:14px 18px; border-radius:14px; font-size:.9rem;
}
#form-status.success{
  background:rgba(34,197,94,.1); color:#16a34a;
  border:1px solid rgba(34,197,94,.2);
}
#form-status.error{
  background:rgba(239,68,68,.1); color:#dc2626;
  border:1px solid rgba(239,68,68,.2);
}

/* =================================================================
   AJUSTES FINOS — espaçamento / respiro consistente
   ================================================================= */

/* Section heads — garante respiro entre eyebrow → h2 → p */
.section-head .eyebrow { margin-bottom: 18px; }
.section-head h2 { margin-bottom: 20px; }
.section-head h2 + p { margin-top: 18px; }

/* split-head: quando colapsa em 1 coluna, mantém respiro */
.split-head > div + p { margin-top: 6px; }

/* Cards genéricos: garante respiro interno entre mini-label / h3 / p */
.story-card .mini-label,
.value-card .mini-label,
.duo-card .mini-label,
.contact-highlight-card .mini-label,
.rep-highlight-card .mini-label,
.collection-feature-card .collection-kicker {
  display: inline-block;
  margin-bottom: 14px;
}
.story-card h3,
.value-card h3,
.duo-card h3,
.timeline-item h3,
.contact-highlight-card h3,
.rep-highlight-card h3 {
  margin-bottom: 12px;
  line-height: 1.3;
}
.story-card p,
.value-card p,
.duo-card p,
.contact-highlight-card p,
.rep-highlight-card p {
  margin-top: 0;
}

/* Brand cards — espaço entre mark, h3 e p */
.p-brand h3 { margin-bottom: 14px; }
.p-brand p  { margin-top: 0; margin-bottom: 4px; }

/* Stat cards: respiro entre número e label */
.p-stat__label { margin-top: 16px; }

/* Collection feature: respiro entre kicker → h2 → p → cta */
.collection-feature-copy h2 { margin-bottom: 18px; }
.collection-feature-copy p + p { margin-top: 12px; }

/* Contact form: respiro entre label e título */
.contact-form-card .mini-label { display: inline-block; margin-bottom: 14px; }
.contact-form-card h2 { margin-bottom: 14px; }

/* Footer brand: respiro do logo ao parágrafo */
.footer-brand p { margin-top: 6px; }

/* Manifesto: respiro entre eyebrow e texto */
.p-manifesto__text { margin-top: 4px; }

/* Hero actions / contact actions: respiro do parágrafo ao botão */
.hero p + .hero-actions { margin-top: 38px; }

/* Carrossel: nav dots respiro extra */
.p-carousel__dots { margin-top: 28px; }

/* Page hero: respiro entre eyebrow → h1 → p */
.page-hero-content .eyebrow { margin-bottom: 22px; }
.page-hero-content h1 { margin-bottom: 22px; }
.page-hero-content h1 + p { margin-top: 4px; }

/* Section: padding-bottom levemente reduzido quando p-contact vem logo após */
.section + .p-contact { padding-top: 80px; }

/* CTA dentro de blocos de coleção: respiro */
.collection-feature-copy > div[style*="margin-top"] { margin-top: 28px !important; }

/* Garante que .section-head com inline style "margin-bottom" seja respeitado mas tenha respiro mínimo extra */
.section-head { margin-bottom: 52px; }

/* Form: respiro entre rows */
.form-grid.two-cols { margin-bottom: 4px; }

/* Responsivo ------------------------------------------------------- */
@media (max-width:1024px){
  .p-brands{ grid-template-columns:1fr; }
  .p-brand{ min-height:420px; }
  .p-group__head{ grid-template-columns:1fr; gap:24px; }
  .p-lines{ grid-template-columns:1fr; min-height:auto; }
  .p-line{ min-height:60vh; padding:80px 32px; }
  .p-stats__grid{ grid-template-columns:repeat(2, 1fr); gap:36px; }
  .p-carousel__nav.prev{ left:18px; }
  .p-carousel__nav.next{ right:18px; }
  /* Galeria 2x2 limpa no mobile/tablet (antes sobrava 1 item deslocado) */
  .p-gallery__grid{ grid-template-columns:1fr 1fr; grid-auto-rows:auto; gap:14px; }
  .p-gallery__item.i1,
  .p-gallery__item.i2,
  .p-gallery__item.i3,
  .p-gallery__item.i4{ grid-column:auto; grid-row:auto; aspect-ratio:4/3; }
}

@media (max-width:640px){
  .hero{ padding:120px 18px 80px; min-height:90vh; }
  .hero h1{ font-size:2.6rem; }
  /* No hero curto do mobile, o "Role para descobrir" (position:absolute,
     bottom) encostava nos botoes. Em touch o gesto de rolar e natural. */
  .scroll-indicator{ display:none; }
  .p-marquee{ padding:18px 0; }
  .p-marquee__item{ font-size:2rem; gap:14px; }
  .p-manifesto,
  .p-group,
  .p-stats,
  .p-gallery,
  .p-contact{ padding:80px 18px; }
  .p-manifesto__text{ font-size:1.5rem; }
  .p-stats__grid{ grid-template-columns:1fr; gap:32px; padding-top:36px; }
  .p-carousel__nav{ width:44px; height:44px; }
  .p-contact h2{ font-size:2.6rem; }
  .footer-top{ grid-template-columns:1fr; gap:36px; }
  .footer-bottom{ flex-direction:column; gap:8px; text-align:center; }

  /* Espaçamentos extras no mobile para evitar texto colado em grid */
  .section{ padding: 70px 18px; }
  .section-head{ margin-bottom: 36px; }
  .section-head h2 + p{ margin-top: 14px; }
  .page-hero{ padding: 130px 20px 80px; min-height: auto; }
  .page-hero-content h1{ margin-bottom: 18px; }

  /* Cards: respiro interno consistente */
  .story-card,
  .value-card,
  .duo-card,
  .contact-highlight-card,
  .rep-highlight-card,
  .p-stat{ padding: 26px !important; }

  /* Brand cards: empilham com altura menor */
  .p-brand{ min-height: 380px; }
  .p-brand p{ opacity: 1; transform: translateY(0); }
  .p-brand__cta{ opacity: 1; transform: translateY(0); }

  /* Timeline mobile */
  .timeline-item{ padding: 24px; gap: 16px; }
  .timeline-number{ font-size: 1.8rem; }

  /* Formulário de contato em mobile */
  .form-grid.two-cols{ grid-template-columns: 1fr; gap: 14px; }
  .contact-form-card{ padding: 26px; }

  /* Logo no header mobile */
  .site-header{ padding: 14px 18px; }
  .logo img{ height: 26px; }
}

/* =======================================================================
   AJUSTES MOBILE - correcoes reportadas (lote)
   ======================================================================= */
.footer-logo-link{ display:inline-block; }
.footer-logo-link img{ height:36px; width:auto; display:block; margin-bottom:6px; }
video{ border:0; outline:0; }

@media (hover:none){
  /* loader/cursor nunca bloqueiam o toque -> evita "clicar 2x" */
  .p-loader.is-done{ pointer-events:none !important; }
  .p-cursor{ display:none !important; }
  /* hover grudado: conteudo revelado fica sempre visivel/clicavel */
  .btn:hover, .btn-arrow:hover{ transform:none; }
  .p-brand p, .p-brand__cta,
  .p-line__desc, .p-line__link{ opacity:1 !important; transform:none !important; }
  /* indicador de scroll some no touch (sobrepunha os botoes do hero) */
  .scroll-indicator{ display:none !important; }
}

@media (max-width:640px){
  /* header sem backdrop-filter (caro no mobile) -> mais fluidez */
  .site-header{ backdrop-filter:none; -webkit-backdrop-filter:none; background:rgba(8,18,36,.92); }
  /* destaques (carrossel da home) maiores/mais bonitos (antes minusculos em 16:9) */
  .gallery-section .p-carousel__slide{ aspect-ratio:4/5; }
  .hero h1{ margin-bottom:24px; }
  .hero p + .hero-actions{ margin-top:30px; }
}
/* 12: canais diretos - texto nao encosta na borda do campo */
.contact-info-item{ padding-left:18px; padding-right:18px; }
/* Canais diretos: empilha label/valor (sem grudar na borda direita) */
.contact-info-item{ flex-direction:column; align-items:flex-start; gap:6px; }

/* Carrossel mobile (scroll-snap) para botoes de catalogo e filtros de linha */
@media (max-width:640px){
  .transition-links,
  .collections-duo-grid{
    display:flex !important;
    grid-template-columns:none !important;
    gap:14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:4px 2px 10px;
  }
  .transition-links::-webkit-scrollbar,
  .collections-duo-grid::-webkit-scrollbar{ display:none; }
  .transition-links > a{ flex:0 0 80%; scroll-snap-align:center; min-height:120px; }
  .collections-duo-grid > article{ flex:0 0 82%; scroll-snap-align:center; }
}
/* Index: 3 cards de linha (Madresilva/Petra/Solare) viram carrossel simples (swipe) no mobile */
@media (max-width:640px){
  .p-brands{
    display:flex !important;
    grid-template-columns:none !important;
    gap:14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:4px 2px 12px;
  }
  .p-brands::-webkit-scrollbar{ display:none; }
  .p-brands > .p-brand{ flex:0 0 85%; scroll-snap-align:center; }
}
/* Showroom (Fabrica): carrossel maior no mobile (antes 16:9 ficava pequeno) */
@media (max-width:1024px){
  .showroom-carousel .p-carousel__slide{ aspect-ratio:3/4; }
}
/* Showroom: alterna carrossel por dispositivo (desktop=video 16:9 antigo, mobile=3 videos verticais) */
.showroom-carousel.only-mobile{ display:none; }
@media (max-width:1024px){
  .showroom-carousel.only-desktop{ display:none; }
  .showroom-carousel.only-mobile{ display:block; }
}
/* Carrosseis simples (swipe): travar no eixo horizontal -> nao "soltam" no arraste/scroll vertical */
@media (max-width:640px){
  .transition-links,
  .collections-duo-grid,
  .p-brands{
    touch-action:pan-x;
    overflow-y:hidden;
    overscroll-behavior:contain;
  }
}
/* ===== LIGHTBOX (ver foto/video em tela cheia) ===== */
.zoomable{ cursor:zoom-in; }
.p-lightbox{
  position:fixed; inset:0; z-index:10000;
  display:none; align-items:center; justify-content:center;
  padding:20px;
  background:rgba(5,10,20,.93);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.p-lightbox.is-open{ display:flex; }
.p-lightbox__content{ display:flex; align-items:center; justify-content:center; max-width:96vw; max-height:92vh; }
.p-lightbox__content img,
.p-lightbox__content video{
  max-width:96vw; max-height:92vh; width:auto; height:auto;
  border-radius:10px; box-shadow:0 30px 90px rgba(0,0,0,.55);
  background:#000;
}
.p-lightbox__close{
  position:absolute; top:18px; right:20px;
  width:48px; height:48px; border-radius:50%;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.28);
  color:#fff; font-size:1.7rem; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center; z-index:2;
  transition:background .25s ease;
}
.p-lightbox__close:hover{ background:rgba(255,255,255,.24); }