/* =====================================================================
   Larumea — Folha de estilos
   Paleta oficial:
     Creme        #F6F4EE   (fundo dominante)
     Lavanda      #D8CCE8   (secções secundárias)
     Lilás        #B99CCB   (destaques pontuais)
     Verde-sálvia #A8B89A   (CTAs, ícones, acentos)
     Azul-carvão  #1E293B   (texto, ícones, estrutura)
   ===================================================================== */
:root{
  --cream:#F6F4EE; --cream-2:#efeae4; --lavender:#D8CCE8; --lilac:#B99CCB;
  --sage:#A8B89A; --sage-ink:#6f8a5f; --lilac-ink:#8f74a6; --ink:#1E293B;
  --ink-80:rgba(30,41,59,.82); --ink-70:rgba(30,41,59,.72); --line:rgba(30,41,59,.12);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Work Sans',system-ui,sans-serif; --script:'Sacramento',cursive;
  --wrap:1220px; --header-h:64px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.5}
img{max-width:100%;display:block}
a{color:var(--sage-ink);text-decoration:none;transition:color .2s ease}
a:hover{color:#526b43}
button{font-family:inherit}
::selection{background:var(--lavender)}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:clamp(18px,4vw,40px);padding-right:clamp(18px,4vw,40px)}
.eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.2em;font-size:12.5px;font-weight:600}
.eyebrow.sage{color:var(--sage-ink)} .eyebrow.lilac{color:var(--lilac-ink)}
h1,h2,h3{font-family:var(--serif);font-weight:600;color:var(--ink);margin:0}
.h2{font-size:clamp(30px,4.5vw,50px);line-height:1.05}
p{margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:11px;font-weight:600;font-size:15px;padding:15px 28px;border:1px solid transparent;cursor:pointer;transition:background .2s ease,transform .2s ease,border-color .2s ease}
.btn-sage{background:var(--sage);color:var(--ink)}
.btn-sage:hover{background:#98a889;color:var(--ink);transform:translateY(-1px)}
.btn-ghost{background:transparent;border-color:rgba(30,41,59,.25);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink);background:rgba(30,41,59,.04);color:var(--ink)}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--sage-ink);outline-offset:2px}

/* reveal-on-scroll */
[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
[data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(246,244,238,.9);backdrop-filter:blur(10px);border-bottom:1px solid rgba(30,41,59,.08)}
.header-row{display:flex;align-items:center;gap:clamp(14px,3vw,30px);padding-top:12px;padding-bottom:12px}
.brand img{height:38px;width:auto}
.nav{display:flex;align-items:center;gap:clamp(16px,2vw,28px);margin-left:auto;font-size:15px;font-weight:500}
.nav a{color:var(--ink)} .nav a:hover{color:var(--sage-ink)}
.langsel{display:flex;align-items:center;gap:2px;padding:4px;border:1px solid rgba(30,41,59,.15);border-radius:999px}
.langsel button{min-width:34px;padding:6px 10px;border:none;background:transparent;color:var(--ink);font-weight:500;font-size:13px;border-radius:999px;cursor:pointer}
.langsel button[aria-pressed="true"]{background:var(--sage);font-weight:700}
.hamburger{display:none;margin-left:auto;flex-direction:column;gap:5px;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(30,41,59,.15);border-radius:10px;cursor:pointer}
.hamburger span{display:block;width:20px;height:2px;background:var(--ink)}

/* Mobile menu overlay */
.mobile-menu{position:fixed;inset:0;z-index:70;background:var(--cream);display:none;flex-direction:column;padding:18px clamp(18px,6vw,32px) 32px}
.mobile-menu.open{display:flex;animation:fade .25s ease}
.mobile-menu-top{display:flex;align-items:center}
.mobile-menu-top img{height:34px;width:auto}
.mm-close{margin-left:auto;width:44px;height:44px;font-size:26px;line-height:1;background:transparent;border:1px solid rgba(30,41,59,.15);border-radius:10px;color:var(--ink);cursor:pointer}
.mm-nav{display:flex;flex-direction:column;gap:4px;margin-top:34px;font-family:var(--serif);font-size:30px;font-weight:600}
.mm-nav a{color:var(--ink);padding:10px 0}
.mm-foot{margin-top:auto;display:flex;flex-direction:column;gap:18px}
.mm-langs{display:flex;gap:8px}
.mm-langs button{flex:1;padding:14px;border-radius:10px;border:1px solid rgba(30,41,59,.2);background:transparent;color:var(--ink);font-weight:600;font-size:15px;cursor:pointer}
.mm-langs button[aria-pressed="true"]{background:var(--sage);border-color:var(--sage)}
.mm-cta{padding:16px;border-radius:12px;background:var(--sage);color:var(--ink);font-weight:600;font-size:16px;text-align:center}

/* ---------- Hero ---------- */
.hero{padding:clamp(40px,6vw,72px) 0 clamp(56px,7vw,96px)}
.hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(28px,4vw,56px);align-items:center}
.hero-script{margin:0 0 6px;margin-left:-.06em;font-family:var(--script);font-size:clamp(30px,4.5vw,46px);color:var(--lilac);line-height:1}
.hero h1{margin:0 0 22px;font-size:clamp(38px,6vw,68px);line-height:1.02;letter-spacing:-.015em;text-wrap:balance}
.hero h1 em{font-style:italic;color:var(--lilac)}
.hero-sub{margin:0 0 32px;max-width:30em;font-size:clamp(16px,1.4vw,18px);line-height:1.7;color:var(--ink-80)}
.hero-cta{display:flex;gap:12px;align-items:stretch}
.hero-cta .btn{flex:1 1 0}
.hero-media{position:relative}
.hero-media .frame{position:relative;border-radius:22px;overflow:hidden;border:1px solid rgba(30,41,59,.1);box-shadow:0 30px 60px -40px rgba(30,41,59,.4);aspect-ratio:4/3}
.hero-media .frame img{width:100%;height:100%;object-fit:cover}
.hero-badge{position:absolute;bottom:-22px;right:-14px;background:var(--cream);border:1px solid rgba(30,41,59,.1);border-radius:14px;padding:14px 18px;box-shadow:0 20px 40px -30px rgba(30,41,59,.5);display:flex;align-items:center;gap:12px;max-width:230px}
.hero-badge .dot{display:inline-flex;width:38px;height:38px;flex:0 0 auto;border-radius:50%;background:var(--sage);align-items:center;justify-content:center}
.hero-badge span{font-size:13px;line-height:1.3;font-weight:600}

/* ---------- Sections ---------- */
.section{padding:clamp(64px,8vw,110px) 0}
.section.tight{padding:clamp(56px,7vw,96px) 0}
.bg-lavender{background:var(--lavender)}
.bg-cream2{background:var(--cream-2)}
.center{text-align:center}
.icon-tile{display:inline-flex;width:52px;height:52px;border-radius:14px;background:rgba(168,184,154,.25);align-items:center;justify-content:center;margin-bottom:20px}

/* Benefits */
.benefits-head{margin:0 auto 48px;max-width:16em;text-align:center}
.cards-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.card{background:var(--cream);border:1px solid rgba(30,41,59,.08);border-radius:18px;padding:34px 30px}
.card h3{font-size:24px;margin-bottom:10px}
.card p{font-size:15px;line-height:1.65;color:var(--ink-70)}

/* About */
.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(32px,5vw,64px);align-items:center}
.about-media{position:relative;padding:18px 0 0 18px}
.about-media .sq{position:absolute;top:0;left:0;width:84px;height:84px;border-radius:20px;background:var(--sage)}
.about-media .frame{position:relative;border-radius:20px;overflow:hidden;border:1px solid rgba(30,41,59,.1);aspect-ratio:5/6}
.about-media .frame img{width:100%;height:100%;object-fit:cover}
.about h2{margin-bottom:24px}
.about p{font-size:16px;line-height:1.75;color:var(--ink-80);margin-bottom:18px}
.about .highlight{margin-top:8px;font-family:var(--script);font-size:clamp(30px,3.6vw,42px);line-height:1;color:var(--lilac)}

/* Services overview */
.services-head{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-end;justify-content:space-between;margin-bottom:48px}
.services-head h2{max-width:13em}
.services-head p{max-width:26em;font-size:15.5px;line-height:1.7;color:var(--ink-70)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.svc-card{background:var(--cream);border:1px solid rgba(30,41,59,.08);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:12px;transition:transform .2s ease,box-shadow .2s ease}
.svc-card:hover{transform:translateY(-3px);box-shadow:0 22px 40px -34px rgba(30,41,59,.5)}
.svc-num{display:inline-flex;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--sage);align-items:center;justify-content:center;font-family:var(--serif);font-size:17px;font-weight:600;color:var(--sage-ink)}
.svc-card h3{font-size:23px}
.svc-card p{font-size:14.5px;line-height:1.65;color:var(--ink-70)}
.cta-center{text-align:center;margin-top:44px}

/* Detailed services accordion */
.detailed-head{text-align:center;margin-bottom:48px}
.detailed-head h2{margin:0 auto 16px;max-width:15em}
.detailed-head p{margin:0 auto;max-width:40em;font-size:15.5px;line-height:1.7;color:var(--ink-70)}
.acc-groups{display:flex;flex-direction:column;gap:32px;max-width:1000px;margin:0 auto}
.acc-group-label{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.acc-group-label .dot{display:inline-block;width:12px;height:12px;border-radius:50%}
.acc-group-label h3{font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;font-size:13px;font-weight:700}
.acc-list{display:flex;flex-direction:column;gap:10px}
.acc{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream);border-left:4px solid var(--sage)}
.acc.lilac{border-left-color:var(--lilac)}
.acc-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;background:transparent;border:none;cursor:pointer;text-align:left;font-size:16.5px;font-weight:600;color:var(--ink)}
.acc-sign{display:inline-flex;width:28px;height:28px;flex:0 0 auto;border-radius:50%;align-items:center;justify-content:center;font-size:20px;line-height:1;color:var(--ink);background:rgba(168,184,154,.22)}
.acc.lilac .acc-sign{background:rgba(185,156,203,.28)}
.acc-panel{max-height:0;opacity:0;overflow:hidden;transition:max-height .4s ease,opacity .35s ease}
.acc.open .acc-panel{opacity:1}
.acc-panel-inner{padding:0 22px 20px}
.acc-panel ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.acc-panel li{display:flex;gap:11px;font-size:14.5px;line-height:1.55;color:var(--ink-80)}
.acc-panel li svg{flex:0 0 auto;margin-top:2px}
.acc-note{margin:16px 0 0;padding:12px 14px;background:rgba(30,41,59,.04);border-radius:10px;font-size:13px;line-height:1.55;color:var(--ink-70);font-style:italic}

/* How it works */
.steps-head{margin:0 auto 52px;max-width:16em;text-align:center}
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.step{background:var(--cream);border:1px solid rgba(30,41,59,.08);border-radius:18px;padding:30px 26px}
.step .num{display:inline-flex;width:48px;height:48px;border-radius:50%;background:var(--sage);align-items:center;justify-content:center;font-family:var(--serif);font-size:24px;font-weight:600;color:var(--ink);margin-bottom:18px}
.step h3{font-size:22px;line-height:1.15;margin-bottom:8px}
.step p{font-size:14.5px;line-height:1.6;color:var(--ink-70)}

/* Gallery */
.gallery-head{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-end;justify-content:space-between;margin-bottom:40px}
.gallery-head h2{max-width:13em}
.gallery-head p{max-width:26em;font-size:15.5px;line-height:1.7;color:var(--ink-70)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery-cell{position:relative;border:1px solid rgba(30,41,59,.1);border-radius:16px;overflow:hidden;aspect-ratio:4/3;padding:0;cursor:pointer;background:none;transition:transform .2s ease,box-shadow .2s ease}
.gallery-cell:hover{transform:translateY(-3px);box-shadow:0 22px 40px -34px rgba(30,41,59,.5)}
.gallery-cell img{width:100%;height:100%;object-fit:cover}
.swipe-hint{display:none;margin:14px 0 0;text-align:center;font-size:12px;letter-spacing:.04em;color:rgba(30,41,59,.5)}

/* Contact + form */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;column-gap:clamp(32px,4vw,56px);row-gap:28px;align-items:start;max-width:1160px;margin:0 auto}
.contact-intro{grid-column:1;grid-row:1}
.contact-intro h2{margin-bottom:18px;text-wrap:balance}
.contact-intro p{font-size:16px;line-height:1.7;color:var(--ink-80);max-width:30em}
.contact-box{grid-column:1;grid-row:2}
.contact-card{display:flex;flex-direction:column;gap:18px;padding:26px;background:var(--lavender);border-radius:18px}
.contact-card h3{font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;font-size:12.5px;font-weight:700}
.contact-card a,.contact-card .row{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:15.5px;font-weight:500}
.contact-card a:hover{color:var(--sage-ink)}
.form-card{grid-column:2;grid-row:1 / span 2;align-self:start;background:var(--cream);border:1px solid rgba(30,41,59,.1);border-radius:20px;padding:clamp(22px,3vw,36px);box-shadow:0 30px 60px -50px rgba(30,41,59,.5)}
form.quote{display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--ink)}
.field .lab{display:inline-flex;align-items:baseline;gap:3px}
.field .req{color:var(--lilac);font-weight:700}
.field input,.field select{padding:12px 14px;border:1px solid rgba(30,41,59,.2);border-radius:10px;background:#fff;color:var(--ink);font-size:15px;width:100%}
.field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%231E293B' stroke-width='1.6'/></svg>");background-repeat:no-repeat;background-position:right 14px center}
.field .err{font-size:12px;color:var(--lilac-ink);font-weight:600}
.row-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.row-2.end{align-items:end}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:13.5px;line-height:1.5;color:var(--ink-80);cursor:pointer;font-weight:400}
.consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--sage);flex:0 0 auto}
.form-submit{margin-top:6px;padding:16px;border-radius:12px;background:var(--sage);color:var(--ink);font-weight:700;font-size:16px;border:none;cursor:pointer;transition:background .2s ease,transform .2s ease}
.form-submit:hover{background:#98a889;transform:translateY(-1px)}
.form-success{text-align:center;padding:40px 10px}
.form-success .check{display:inline-flex;width:64px;height:64px;border-radius:50%;background:var(--sage);align-items:center;justify-content:center;margin-bottom:20px}
.form-success p{font-family:var(--serif);font-size:24px;line-height:1.3}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* Footer */
.site-footer{background:var(--lavender);padding:clamp(48px,6vw,72px) 0 28px}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(30,41,59,.15)}
.footer-cols img{height:40px;width:auto;margin-bottom:16px}
.footer-cols .desc{max-width:26em;font-size:14.5px;line-height:1.65;color:var(--ink-70)}
.footer-cols h3{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:700;font-family:var(--sans);margin-bottom:16px}
.footer-cols ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;font-size:14.5px}
.footer-cols ul a{color:var(--ink)} .footer-cols ul a:hover{color:var(--sage-ink)}
.footer-statement{margin:34px 0;text-align:center;font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.6vw,28px);color:var(--ink)}
.footer-bottom{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;font-size:13px;color:var(--ink-70)}
.footer-bottom .lr{display:inline-flex;align-items:center;opacity:.7;transition:opacity .2s ease}
.footer-bottom .lr:hover{opacity:1}
.footer-bottom .lr img{height:30px;width:auto}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:90;background:rgba(30,41,59,.82);display:none;align-items:center;justify-content:center;padding:24px}
.lightbox.open{display:flex;animation:fade .2s ease}
.lightbox img{max-width:900px;width:100%;border-radius:16px;object-fit:contain;max-height:80vh}
.lb-btn{position:absolute;background:rgba(246,244,238,.15);border:1px solid rgba(246,244,238,.4);border-radius:50%;color:var(--cream);cursor:pointer;font-size:26px}
.lb-close{top:20px;right:24px;width:46px;height:46px}
.lb-prev{left:16px;width:52px;height:52px}
.lb-next{right:16px;width:52px;height:52px}

@keyframes fade{from{opacity:0}to{opacity:1}}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .nav,.langsel,.header-row>.btn{display:none}
  .hamburger{display:flex}
  .svc-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .hero-cta .desktop-only{display:none}
  .contact-grid{display:flex;flex-direction:column;gap:28px}
  .contact-intro{order:1}.form-card{order:2}.contact-box{order:3}
  .about-media{padding:0}.about-media .sq{display:none}
  /* carousels */
  .svc-grid,.steps-grid,.gallery-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:0 clamp(18px,4vw,40px) 6px;margin-left:calc(-1*clamp(18px,4vw,40px));margin-right:calc(-1*clamp(18px,4vw,40px));scrollbar-width:none}
  .svc-grid::-webkit-scrollbar,.steps-grid::-webkit-scrollbar,.gallery-grid::-webkit-scrollbar{display:none}
  .svc-card,.step{flex:0 0 80%;scroll-snap-align:center}
  .gallery-cell{flex:0 0 78%;scroll-snap-align:center}
  .swipe-hint{display:block}
}
@media (min-width:761px){
  .hero-cta .mobile-only{display:none}
}
