@import url('https://fonts.googleapis.com/css2?family=Lora:wght@500;600;700&family=Inter:wght@400;500;600&display=swap');

:root{
  --font-heading:'Lora', Georgia, serif;
  --font-body:'Inter', -apple-system, sans-serif;

  --color-bg:#F7F5F0;
  --color-bg-alt:#EFEAE1;
  --color-surface:#FFFFFF;
  --color-primary:#1B2A41;
  --color-primary-dark:#101B2D;
  --color-primary-light:#2E4363;
  --color-accent:#C1703F;
  --color-accent-dark:#A15A30;
  --color-accent-light:#E3A574;
  --color-text:#2A2E35;
  --color-text-muted:#5C6472;
  --color-border:#E2DCD0;
  --color-error:#B3432B;

  --radius-sm:8px;
  --radius-md:14px;
  --radius-lg:22px;
  --radius-xl:32px;
  --radius-full:999px;

  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;
  --space-5:1.5rem;--space-6:2rem;--space-8:3rem;--space-10:4rem;
  --space-12:5rem;--space-16:7rem;

  --shadow-xs:0 1px 2px rgba(16,27,45,.06);
  --shadow-sm:0 2px 6px rgba(16,27,45,.08),0 1px 2px rgba(16,27,45,.06);
  --shadow-md:0 8px 16px -4px rgba(16,27,45,.14),0 3px 6px -2px rgba(16,27,45,.08);
  --shadow-lg:0 20px 40px -10px rgba(16,27,45,.20),0 8px 16px -6px rgba(16,27,45,.12);
  --shadow-xl:0 32px 64px -14px rgba(16,27,45,.26),0 14px 28px -8px rgba(16,27,45,.16);
  --shadow-2xl:0 48px 96px -20px rgba(16,27,45,.34),0 20px 40px -10px rgba(16,27,45,.2);

  --ease:cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x: hidden;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--color-text);
  background:var(--color-bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;}
.container{
  max-width:1200px;
  margin-inline:auto;
  padding-inline:var(--space-5);
}
h1,h2,h3{font-family:var(--font-heading);color:var(--color-primary);margin:0;}
h1{font-size:clamp(2.1rem,4vw + 1rem,3.6rem);line-height:1.12;font-weight:700;}
h2{font-size:clamp(1.6rem,2.3vw + 1rem,2.5rem);line-height:1.22;font-weight:700;}
h3{font-size:clamp(1.15rem,1vw + .9rem,1.4rem);line-height:1.3;font-weight:600;}
p{margin:0 0 var(--space-4);color:var(--color-text-muted);}
.eyebrow{
  font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  font-size:.8rem;color:var(--color-accent-dark);margin-bottom:var(--space-2);
}
.eyebrow--light{color:var(--color-accent-light);}


.site-header{
  position:sticky;top:0;z-index:200;
  background:rgba(247,245,240,.92);
  backdrop-filter:blur(10px);
  padding-block:var(--space-4);
  border-bottom:1px solid transparent;
}
.site-header::after{
  content:"";position:absolute;left:50%;bottom:-1px;
  width:100%;height:1px;background:var(--color-border);
  transform:translateX(-50%) scaleX(0);
  transition:transform .5s var(--ease);
}
.site-header.is-scrolled::after{transform:translateX(-50%) scaleX(1);}
.header-top{
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);
}
.logo-link{display:inline-flex;}
.logo-img{height:34px;width:auto;transition:transform .3s var(--ease);}
.logo-link:hover .logo-img{transform:scale(1.03);}
.header-phone{
  display:inline-flex;align-items:center;gap:var(--space-2);
  font-weight:600;font-size:.9rem;color:var(--color-primary);
  padding:.5rem .9rem;border-radius:var(--radius-full);
  background:var(--color-surface);box-shadow:var(--shadow-xs);
  transition:var(--ease) .3s;
}
.header-phone:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px);color:var(--color-accent-dark);}
.menu-toggle{
  width:44px;height:44px;border:none;background:var(--color-surface);
  border-radius:var(--radius-md);box-shadow:var(--shadow-xs);
  display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  cursor:pointer;transition:box-shadow .3s var(--ease);
}
.menu-toggle:hover{box-shadow:var(--shadow-sm);}
.menu-toggle span{width:20px;height:2px;background:var(--color-primary);border-radius:2px;transition:transform .3s var(--ease),opacity .3s var(--ease);}
.nav-main{
  display:flex;justify-content:center;padding-top:var(--space-3);
}
.nav-list{display:flex;gap:var(--space-6);justify-content:center;flex-wrap:wrap;}
.nav-list a{
  font-weight:500;font-size:.95rem;color:var(--color-text);
  padding-block:.4rem;position:relative;
}
.nav-list a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;
  background:var(--color-accent);transform:scaleX(0);transform-origin:center;
  transition:transform .3s var(--ease);
}
.nav-list a:hover::after,.nav-list a[aria-current="page"]::after{transform:scaleX(1);}
.nav-list a[aria-current="page"]{color:var(--color-accent-dark);}
.nav-close{display:none;}
.nav-overlay{
  position:fixed;inset:0;background:rgba(16,27,45,.55);
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s;
  z-index:290;
}
.nav-overlay.is-active{opacity:1;visibility:visible;}


.side-contact{
  position:fixed;right:var(--space-5);top:50%;transform:translateY(-50%);
  width:56px;height:56px;border-radius:var(--radius-full);
  background:linear-gradient(135deg,var(--color-accent),var(--color-accent-dark));
  color:#fff;display:none;align-items:center;justify-content:center;
  font-size:1.2rem;box-shadow:var(--shadow-lg);
  z-index:150;transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.side-contact:hover{transform:translateY(-50%) scale(1.08);box-shadow:var(--shadow-xl);}
@media (min-width:960px){.side-contact{display:flex;}}


.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding-block:.85rem;padding-inline:1.85rem;border-radius:var(--radius-full);
  font-weight:600;font-size:.95rem;border:1px solid transparent;cursor:pointer;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease),color .3s var(--ease);
  box-shadow:var(--shadow-sm);min-height:48px;
}
.btn--primary{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-dark));color:#fff;}
.btn--primary:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,var(--color-accent-light),var(--color-accent));}
.btn--outline{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-border);}
.btn--outline:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--color-accent);color:var(--color-accent-dark);}
.btn--light{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.35);}
.btn--light:hover{transform:translateY(-3px);background:rgba(255,255,255,.18);box-shadow:var(--shadow-lg);}
.btn--block{width:100%;}


.hero{padding-top:var(--space-8);}
.hero-top{text-align:center;max-width:820px;margin-inline:auto;}
.hero-top .eyebrow{justify-content:center;display:flex;}
.hero-image-strip{
  width:100%;margin-block:var(--space-8);
  box-shadow:var(--shadow-xl);
  aspect-ratio:16/6;overflow:hidden;
}
.hero-image-strip img{width:100%;height:100%;object-fit:cover;}
.hero-image-strip--simple{margin-top:var(--space-6);margin-bottom:0;aspect-ratio:16/5;}
.hero-bottom{max-width:760px;margin-inline:auto;text-align:center;}
.hero-desc{font-size:1.08rem;margin-bottom:var(--space-6);}
.hero-cta{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;}


.section{padding-block:var(--space-12);}
.section--alt{background:var(--color-bg-alt);}
.section--dark{
  background:linear-gradient(160deg,var(--color-primary-dark),var(--color-primary));
  color:#fff;
}
.section--dark h2,.section--dark h1{color:#fff;}
.section--dark p{color:rgba(255,255,255,.78);}
.section-head{max-width:720px;margin-bottom:var(--space-8);}
.section-lead{font-size:1.05rem;}
.section-cta{margin-top:var(--space-8);text-align:center;}

.gradient-fade{
  height:120px;
  background:linear-gradient(to bottom,var(--color-bg),var(--color-primary-dark));
  margin-block:-1px;
}


.intro-grid{
  display:grid;grid-template-columns:1fr;gap:var(--space-8);align-items:center;
}
.intro-grid--reverse{direction:rtl;}
.intro-grid--reverse > *{direction:ltr;}
@media (min-width:860px){
  .intro-grid{grid-template-columns:1.1fr .9fr;}
}
.intro-figure img,.stack-figure img,.wide-figure img{
  border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;
  aspect-ratio:4/3;object-fit:cover;transition:box-shadow .4s var(--ease),transform .4s var(--ease);
}
.intro-figure:hover img,.wide-figure:hover img{transform:translateY(-4px);box-shadow:var(--shadow-xl);}

.wide-figure{margin-top:var(--space-10);padding-inline:var(--space-5);max-width:1200px;margin-inline:auto;}
.wide-figure img{aspect-ratio:21/8;}


.stack-wrapper{position:relative;}
.stack-section{
  position:sticky;
  padding-block:var(--space-10);
  background:var(--color-primary);
  border-radius:var(--radius-xl) var(--radius-xl) 0 0;
  box-shadow:var(--shadow-2xl);
  color:#fff;
}
.stack-section h2,.stack-section h3{color:#fff;}
.stack-section--1{top:0;z-index:1;background:var(--color-primary);}
.stack-section--2{top:60px;z-index:2;background:var(--color-primary-light);}
.stack-section--3{top:120px;z-index:3;background:linear-gradient(150deg,var(--color-primary-dark),var(--color-accent-dark));}
.stack-inner{display:flex;flex-direction:column;gap:var(--space-8);}
.stack-text{max-width:760px;}
.stack-text p{color:rgba(255,255,255,.78);}
.stack-figure img{aspect-ratio:16/9;}
.stack-figure--right{align-self:flex-end;max-width:520px;width:100%;}


.features-list{
  display:grid;grid-template-columns:1fr;gap:var(--space-6);
}
.features-list--grid{grid-template-columns:1fr;}
@media (min-width:720px){
  .features-list--grid{grid-template-columns:repeat(2,1fr);}
}
.features-list dt{margin:0 0 var(--space-2);}
.features-list dt h3{margin:0;}
.features-list dd{margin:0;padding-inline-start:0;color:var(--color-text-muted);}
.stack-section .features-list dd{color:rgba(255,255,255,.78);}
.features-list--numbered dt{display:flex;align-items:center;gap:var(--space-3);}
.step-number{
  font-family:var(--font-heading);font-weight:700;font-size:1.3rem;
  color:var(--color-accent);opacity:.85;
}
.stack-section .step-number{color:var(--color-accent-light);}


.legal-terms dt{font-weight:700;color:var(--color-primary);margin-top:var(--space-4);}
.legal-terms dd{margin:.25rem 0 0;color:var(--color-text-muted);}


.card-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6);container-type:inline-size;}
@container (min-width:640px){.card-grid{grid-template-columns:repeat(2,1fr);}}
@container (min-width:960px){.card-grid{grid-template-columns:repeat(4,1fr);}}
.card-grid--personas{container-type:inline-size;}
@container (min-width:960px){.card-grid--personas{grid-template-columns:repeat(2,1fr);}}

.card{
  background:var(--color-surface);border-radius:var(--radius-lg);
  padding:var(--space-6);box-shadow:var(--shadow-md);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  border:1px solid var(--color-border);
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl);border-color:transparent;}
.card--featured{box-shadow:var(--shadow-lg);border-color:var(--color-accent-light);}
.card h3{margin-bottom:var(--space-3);}
.card dl dt{font-weight:600;color:var(--color-accent-dark);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem;}
.card dl dd{margin:0 0 var(--space-3);color:var(--color-text-muted);}
.card dl dd:last-child{margin-bottom:0;}


.faq-list{display:grid;gap:var(--space-6);}
.faq-list dt{background:var(--color-surface);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);}
.faq-list dt h3{margin:0;font-size:1.1rem;}
.faq-list dd{margin:0;padding:0 var(--space-5);color:var(--color-text-muted);}


.cta-final{max-width:720px;margin-inline:auto;text-align:center;}
.cta-final h2{margin-bottom:var(--space-4);}


.page-hero{padding-block:var(--space-10) 0;}
.page-hero--legal{padding-bottom:var(--space-6);}
.page-lead{max-width:680px;font-size:1.05rem;margin-top:var(--space-3);}
.breadcrumb ol{display:flex;gap:.5rem;font-size:.85rem;color:var(--color-text-muted);flex-wrap:wrap;}
.breadcrumb li:not(:last-child)::after{content:"/";margin-inline-start:.5rem;}
.breadcrumb a{color:var(--color-accent-dark);}
.breadcrumb a:hover{text-decoration:underline;}


.legal-content{padding-top:var(--space-6);}
.legal-body{max-width:840px;}
.legal-body h2{margin-top:var(--space-8);margin-bottom:var(--space-3);}
.legal-body p{margin-bottom:var(--space-4);}
.legal-table{width:100%;border-collapse:collapse;margin-block:var(--space-5);box-shadow:var(--shadow-sm);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);}
.legal-table th,.legal-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);font-size:.92rem;}
.legal-table th{background:var(--color-bg-alt);color:var(--color-primary);font-weight:600;}
.legal-table tr:last-child td{border-bottom:none;}


.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--space-10);}
@media (min-width:960px){.contact-grid{grid-template-columns:.85fr 1.15fr;}}
.contact-address p{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text);margin-bottom:var(--space-3);}
.contact-address i{color:var(--color-accent);width:20px;text-align:center;}
.map-frame{margin-top:var(--space-6);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);}
.contact-form{
  background:var(--color-surface);padding:var(--space-6);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-lg);display:grid;gap:var(--space-5);
}
.form-row{display:grid;grid-template-columns:1fr;gap:var(--space-5);}
@media (min-width:600px){.form-row{grid-template-columns:1fr 1fr;}}
.form-group{display:flex;flex-direction:column;gap:.4rem;transition:box-shadow .3s var(--ease);border-radius:var(--radius-md);}
.form-group:has(input:focus),.form-group:has(textarea:focus){box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 22%, transparent);}
.form-group--full{grid-column:1/-1;}
.form-group label{font-size:.88rem;font-weight:600;color:var(--color-primary);}
.form-group input,.form-group textarea{
  padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);
  font-family:inherit;font-size:.95rem;background:var(--color-bg);
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease);min-height:44px;
}
.form-group textarea{min-height:140px;resize:vertical;}
.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent);}
.form-group--checkbox{flex-direction:row;align-items:flex-start;gap:.6rem;}
.form-group--checkbox input{width:20px;height:20px;min-height:20px;flex-shrink:0;margin-top:.15rem;}
.form-group--checkbox label{font-weight:400;color:var(--color-text-muted);font-size:.88rem;}
#form-status{display:block;font-size:.88rem;font-weight:500;min-height:1.2em;color:var(--color-accent-dark);}
#form-status.is-error{color:var(--color-error);}

.consult-grid{display:grid;grid-template-columns:1fr;gap:var(--space-8);align-items:center;}
@media (min-width:860px){.consult-grid{grid-template-columns:.9fr 1.1fr;}}
.consult-figure img{border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);aspect-ratio:4/3;object-fit:cover;width:100%;}


.thanks-section{padding-block:var(--space-16);}
.thanks-content{text-align:center;max-width:560px;margin-inline:auto;}
.thanks-check{margin-bottom:var(--space-6);}
.thanks-check-circle{stroke:var(--color-accent);stroke-dasharray:283;stroke-dashoffset:283;animation:draw-circle 1s var(--ease) forwards;}
.thanks-check-mark{stroke:var(--color-primary);stroke-dasharray:60;stroke-dashoffset:60;animation:draw-mark .6s var(--ease) .9s forwards;}
.thanks-heading{opacity:0;animation:fade-in-up .6s var(--ease) 1.4s forwards;}
.thanks-content p{opacity:0;animation:fade-in-up .6s var(--ease) 1.6s forwards;}
.thanks-content .btn{opacity:0;animation:fade-in-up .6s var(--ease) 1.8s forwards;}
@keyframes draw-circle{to{stroke-dashoffset:0;}}
@keyframes draw-mark{to{stroke-dashoffset:0;}}
@keyframes fade-in-up{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}


.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.is-visible{opacity:1;transform:translateY(0);}


@keyframes hero-enter{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:translateY(0);}}
.hero-top h1{animation:hero-enter .8s var(--ease) .1s both;}
.hero-image-strip{animation:hero-enter .9s var(--ease) .25s both;}


.site-footer{
  margin-top:auto;background:var(--color-primary-dark);color:rgba(255,255,255,.82);
  padding-block:var(--space-10) var(--space-6);
}
.footer-grid{display:grid;grid-template-columns:1fr;gap:var(--space-8);}
@media (min-width:860px){.footer-grid{grid-template-columns:1fr 2fr;}}
.footer-brand p{color:rgba(255,255,255,.62);max-width:340px;}
.footer-brand address{font-style:normal;color:rgba(255,255,255,.75);line-height:1.9;}
.footer-brand address a{color:rgba(255,255,255,.9);}
.footer-brand address a:hover{color:var(--color-accent-light);}
.logo-img--footer{margin-bottom:var(--space-4);filter:brightness(0) invert(1);}
.footer-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6);}
@media (min-width:640px){.footer-nav{grid-template-columns:repeat(3,1fr);}}
.footer-col h3{color:#fff;font-size:1rem;margin-bottom:var(--space-3);}
.footer-col ul{display:grid;gap:.6rem;}
.footer-col a{color:rgba(255,255,255,.65);font-size:.92rem;transition:color .3s var(--ease);}
.footer-col a:hover{color:var(--color-accent-light);}
.footer-bottom{margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid rgba(255,255,255,.12);}
.footer-bottom small{color:rgba(255,255,255,.5);}

html,body{height:100%;}
body{display:flex;flex-direction:column;min-height:100vh;}
body > main{flex:1;}


.cc-backdrop{
  position:fixed;inset:0;background:rgba(16,27,45,.6);
  display:flex;align-items:center;justify-content:center;padding:var(--space-5);
  z-index:400;opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s;
}
.cc-backdrop.is-active{opacity:1;visibility:visible;}
.cc-modal{
  background:var(--color-surface);max-width:560px;width:100%;border-radius:var(--radius-xl);
  box-shadow:var(--shadow-2xl);padding:var(--space-8);
  transform:translateY(16px) scale(.98);opacity:0;transition:transform .4s var(--ease),opacity .4s var(--ease);
  max-height:88vh;overflow-y:auto;
}
.cc-backdrop.is-active .cc-modal{transform:translateY(0) scale(1);opacity:1;}
.cc-modal h2{margin-bottom:var(--space-3);}
.cc-modal p{margin-bottom:var(--space-5);}
.cc-categories{display:grid;gap:var(--space-4);margin-bottom:var(--space-6);}
.cc-category{
  display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);
  padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);
}
.cc-category h3{font-size:1rem;margin-bottom:.25rem;}
.cc-category p{margin:0;font-size:.85rem;color:var(--color-text-muted);}
.cc-switch{position:relative;width:46px;height:26px;flex-shrink:0;}
.cc-switch input{opacity:0;width:100%;height:100%;position:absolute;margin:0;cursor:pointer;}
.cc-switch-track{
  position:absolute;inset:0;background:var(--color-border);border-radius:var(--radius-full);
  transition:background .3s var(--ease);
}
.cc-switch-track::after{
  content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;
  background:#fff;border-radius:50%;box-shadow:var(--shadow-xs);transition:transform .3s var(--ease);
}
.cc-switch input:checked + .cc-switch-track{background:var(--color-accent);}
.cc-switch input:checked + .cc-switch-track::after{transform:translateX(20px);}
.cc-switch input:disabled + .cc-switch-track{opacity:.6;cursor:not-allowed;}
.cc-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);}
.cc-actions .btn{flex:1;min-width:140px;}


small{color:var(--color-text-muted);}


@media (max-width:900px){
  .header-top{position:relative;}
  .menu-toggle{display:flex;}
  .header-phone span{display:none;}
  .header-phone{width:44px;height:44px;padding:0;justify-content:center;}
  .nav-main{
    position:fixed;top:0;right:0;height:100vh;width:min(340px,86vw);
    background:var(--color-surface);flex-direction:column;justify-content:flex-start;
    padding:var(--space-8) var(--space-6);box-shadow:var(--shadow-2xl);
    transform:translateX(100%);transition:transform .45s var(--ease);z-index:300;
  }
  .nav-main.is-open{transform:translateX(0);}
  .nav-list{flex-direction:column;gap:var(--space-6);align-items:flex-start;margin-top:var(--space-8);}
  .nav-list a{font-size:1.1rem;}
  .nav-close{
    display:flex;align-items:center;justify-content:center;
    width:44px;height:44px;border:none;background:var(--color-bg-alt);
    border-radius:var(--radius-md);cursor:pointer;font-size:1.1rem;color:var(--color-primary);
    transition:transform .3s var(--ease);
  }
  .nav-close:hover{transform:rotate(90deg);}
}