:root{
  --color-bg:#F7F4EF;
  --color-bg-alt:#EFE9DF;
  --color-surface:#FFFFFF;
  --color-primary:#232B45;
  --color-primary-light:#3C4568;
  --color-text:#2A2A2E;
  --color-text-muted:#5C5C66;
  --color-accent:#E1663D;
  --color-accent-dark:#C74F2B;
  --color-border:#E3DDD1;

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

  --shadow-sm:0 1px 2px rgba(35,43,69,0.06), 0 1px 1px rgba(35,43,69,0.04);
  --shadow-md:0 4px 10px rgba(35,43,69,0.07), 0 12px 24px rgba(35,43,69,0.06);
  --shadow-lg:0 8px 20px rgba(35,43,69,0.08), 0 24px 48px rgba(35,43,69,0.10);

  --space-1:0.5rem;
  --space-2:1rem;
  --space-3:1.5rem;
  --space-4:2rem;
  --space-5:3rem;
  --space-6:4.5rem;
  --space-7:6.5rem;

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

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'DM Sans',sans-serif;
  background:var(--color-bg);
  color:var(--color-text);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Libre Baskerville',serif;
  color:var(--color-primary);
  font-weight:700;
  line-height:1.18;
  margin:0 0 var(--space-2);
}
p{margin:0 0 var(--space-2);color:var(--color-text-muted);}
a{color:inherit;text-decoration:none;transition:color .3s var(--ease);}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;}

.container{max-width:1240px;margin:0 auto;padding:0 var(--space-3);}
.container--narrow{max-width:820px;}
.container--offset{display:grid;grid-template-columns:1.1fr 0.9fr;gap:var(--space-5);align-items:center;}
.container--offset-rev{display:grid;grid-template-columns:0.9fr 1.1fr;gap:var(--space-5);align-items:center;}
@media (max-width:900px){
  .container--offset,.container--offset-rev{grid-template-columns:1fr;}
}

.section{padding:var(--space-7) 0;}
.section--alt{background:var(--color-bg-alt);}
.section--dark{background:var(--color-primary);}
.section--dark h2, .section--dark .eyebrow{color:#F7F4EF;}
.section--dark p{color:#C7CBDA;}
.section--flow{padding-top:var(--space-4);padding-bottom:var(--space-7);}
.section--wide{padding:var(--space-7) 0;}

.eyebrow{
  display:inline-block;
  font-family:'DM Sans',sans-serif;
  font-weight:600;
  font-size:0.8rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--color-accent);
  margin-bottom:var(--space-2);
}
.eyebrow--dark{color:var(--color-accent-dark);}

.section-head{max-width:640px;margin:0 auto var(--space-5);text-align:center;}
.section-head h2{font-size:clamp(1.7rem,3.2vw,2.4rem);}


.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  transition:background .4s var(--ease), box-shadow .4s var(--ease);
}
.site-header.is-solid{
  background:rgba(247,244,239,0.92);
  backdrop-filter:blur(10px);
  box-shadow:var(--shadow-sm);
}
.nav-wrap{
  max-width:1240px;margin:0 auto;padding:1rem 1.5rem;
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);
}
.nav-logo{display:flex;align-items:center;gap:0.6rem;font-family:'Libre Baskerville',serif;font-weight:700;font-size:1.2rem;color:var(--color-primary);}
.nav-main ul{display:flex;gap:var(--space-4);list-style:none;margin:0;padding:0;}
.nav-main a{font-weight:500;font-size:0.95rem;color:var(--color-primary);position:relative;padding:0.3rem 0;}
.nav-main a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--color-accent);transition:width .3s var(--ease);}
.nav-main a:hover::after,.nav-main a.is-active::after{width:100%;}
.btn--nav{display:inline-flex;}
.nav-toggle{display:none;background:none;border:none;font-size:1.4rem;color:var(--color-primary);width:44px;height:44px;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background .3s var(--ease);}
@media (max-width:900px){
  .nav-main{display:none;}
  .btn--nav{display:none;}
  .nav-toggle{display:flex;}
}


.mobile-menu{position:fixed;inset:0;z-index:2000;visibility:hidden;pointer-events:none;}
.mobile-menu.is-open{visibility:visible;pointer-events:auto;}
.mobile-menu-overlay{position:absolute;inset:0;left:80%;background:rgba(35,43,69,0.35);opacity:0;transition:opacity .35s var(--ease);}
.mobile-menu.is-open .mobile-menu-overlay{opacity:1;}
.mobile-menu-panel{
  position:absolute;top:0;left:0;bottom:0;width:80%;max-width:360px;
  background:var(--color-primary);
  padding:var(--space-4) var(--space-3);
  transform:translateX(-100%);
  transition:transform .4s var(--ease);
  box-shadow:var(--shadow-lg);
  display:flex;flex-direction:column;
}
.mobile-menu.is-open .mobile-menu-panel{transform:translateX(0);}
.mobile-menu-close{align-self:flex-end;background:none;border:none;color:#F7F4EF;font-size:1.4rem;width:44px;height:44px;border-radius:var(--radius-sm);transition:background .3s var(--ease);}
.mobile-menu-close:hover{background:rgba(255,255,255,0.08);}
.mobile-menu-links{list-style:none;margin:var(--space-4) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-1);}
.mobile-menu-links li{opacity:0;transform:translateX(-16px);transition:opacity .4s var(--ease),transform .4s var(--ease);}
.mobile-menu.is-open .mobile-menu-links li{opacity:1;transform:translateX(0);}
.mobile-menu-links a{color:#F7F4EF;font-size:1.15rem;font-weight:500;padding:0.7rem 0.4rem;display:block;border-radius:var(--radius-sm);transition:background .3s var(--ease);}
.mobile-menu-links a:hover{background:rgba(255,255,255,0.08);}


.breadcrumb{padding:1.4rem 0;background:var(--color-bg-alt);border-bottom:1px solid var(--color-border);}
.breadcrumb ol{display:flex;list-style:none;gap:0.5rem;margin:0;padding:0;font-size:0.9rem;color:var(--color-text-muted);}
.breadcrumb li:not(:last-child)::after{content:"/";margin-left:0.5rem;color:var(--color-border);}
.breadcrumb a{color:var(--color-primary);font-weight:500;}


.hero{min-height:92vh;display:flex;align-items:center;position:relative;overflow:hidden;padding-top:6rem;}
.page-hero{min-height:42vh;display:flex;align-items:flex-end;position:relative;overflow:hidden;padding-top:6rem;padding-bottom:var(--space-4);}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(35,43,69,0.72) 0%, rgba(35,43,69,0.55) 55%, rgba(35,43,69,0.85) 100%);z-index:1;}
.hero-inner{position:relative;z-index:2;max-width:1240px;margin:0 auto;padding:0 var(--space-3);width:100%;}
.hero-content{max-width:720px;}
.hero h1{color:#F7F4EF;font-size:clamp(2.4rem,5.5vw,4.6rem);margin-bottom:var(--space-3);}
.hero-lead{color:#DCE0EE;font-size:1.15rem;max-width:600px;margin-bottom:var(--space-4);}
.hero-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;}
.page-hero h1{color:#F7F4EF;font-size:clamp(2rem,4.5vw,3.4rem);}
.page-hero .hero-inner{padding-bottom:var(--space-3);}


.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;
  padding:0.85rem 1.7rem;border-radius:var(--radius-full);
  font-weight:600;font-size:0.95rem;border:2px solid transparent;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
  min-height:44px;
}
.btn--primary{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-md);}
.btn--primary:hover{background:var(--color-accent-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg);}
.btn--outline{background:transparent;border-color:currentColor;color:var(--color-primary);}
.btn--outline:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:translateY(-2px);}
.btn--full{width:100%;}


.section--flow{background:var(--color-bg);}
.flow-text h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:var(--space-3);}
.rounded-img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;height:100%;object-fit:cover;}
.flow-image img{aspect-ratio:4/3.2;}


.section--modules{background:var(--color-bg-alt);}
.module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);}
@media (max-width:900px){.module-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.module-grid{grid-template-columns:1fr;}}
.module-card{
  background:var(--color-surface);border-radius:var(--radius-lg);
  padding:var(--space-4) var(--space-3);box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.module-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.module-num{font-family:'Libre Baskerville',serif;font-size:1.6rem;color:var(--color-accent);display:block;margin-bottom:var(--space-1);}
.module-card h3{font-size:1.15rem;margin-bottom:0.5rem;}
.module-card p{font-size:0.92rem;}


.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);}
@media (max-width:900px){.values-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.values-grid{grid-template-columns:1fr;}}
.card--value{
  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);
  border-radius:var(--radius-lg);padding:var(--space-4) var(--space-3);
  transition:transform .35s var(--ease), background .35s var(--ease);
}
.card--value:hover{transform:translateY(-6px);background:rgba(255,255,255,0.1);}
.section--dark .card--value h3{color:#F7F4EF;}
.section--dark .card--value p{color:#C7CBDA;}
.value-icon{
  width:52px;height:52px;border-radius:var(--radius-md);
  background:var(--color-accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:var(--space-2);
  box-shadow:var(--shadow-sm);
}


.split-text h2{font-size:clamp(1.6rem,3vw,2.2rem);}
.link-arrow{display:inline-flex;align-items:center;gap:0.5rem;color:var(--color-accent-dark);font-weight:600;margin-top:var(--space-2);transition:gap .3s var(--ease);}
.link-arrow:hover{gap:0.85rem;}


.preview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);}
@media (max-width:800px){.preview-grid{grid-template-columns:1fr;}}
.preview-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--shadow-sm);transition:box-shadow .35s var(--ease), transform .35s var(--ease);}
.preview-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
.preview-card img{border-radius:var(--radius-md);margin-bottom:var(--space-2);aspect-ratio:16/10;object-fit:cover;}
.preview-cta{text-align:center;margin-top:var(--space-4);}


.module-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);}
@media (max-width:900px){.module-detail-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.module-detail-grid{grid-template-columns:1fr;}}
.card--module{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--shadow-sm);transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.card--module:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.module-detail-icon{width:48px;height:48px;border-radius:var(--radius-md);background:var(--color-bg-alt);color:var(--color-accent-dark);display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:var(--space-2);}


.pricing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);}
@media (max-width:900px){.pricing-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.pricing-grid{grid-template-columns:1fr;}}
.card--pricing{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-3);box-shadow:var(--shadow-sm);transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.card--pricing:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.pricing-icon{width:52px;height:52px;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:var(--space-2);}


.faq-list{display:flex;flex-direction:column;gap:var(--space-2);}
.faq-item{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .3s var(--ease);}
.faq-item:hover{box-shadow:var(--shadow-md);}
.faq-question{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:1.2rem 1.6rem;background:none;border:none;text-align:left;
  font-family:'DM Sans',sans-serif;font-weight:600;font-size:1.02rem;color:var(--color-primary);
}
.faq-question i{transition:transform .35s var(--ease);color:var(--color-accent);}
.faq-item.is-open .faq-question i{transform:rotate(45deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s var(--ease), padding .4s var(--ease);padding:0 1.6rem;}
.faq-item.is-open .faq-answer{padding:0 1.6rem 1.4rem;}
.faq-answer p{font-size:0.96rem;margin:0;}


.section--cta{text-align:center;background:var(--color-bg-alt);}
.section--cta h2{font-size:clamp(1.7rem,3.2vw,2.3rem);}
.section--cta p{max-width:520px;margin:0 auto var(--space-3);}


.contact-split{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);}
@media (max-width:860px){.contact-split{grid-template-columns:1fr;}}
.contact-map{min-height:420px;background:var(--color-bg-alt);}
.contact-map iframe{width:100%;height:100%;min-height:420px;}
.contact-form-wrap{background:var(--color-surface);padding:var(--space-5) var(--space-4);}
.contact-form-wrap h2{margin-bottom:0.4rem;}
.form-row{margin-bottom:var(--space-2);}
.form-row label{display:block;font-weight:600;font-size:0.9rem;margin-bottom:0.4rem;color:var(--color-primary);}
.form-row input[type=text],.form-row input[type=email],.form-row input[type=tel],.form-row textarea{
  width:100%;padding:0.8rem 1rem;border-radius:var(--radius-md);border:1.5px solid var(--color-border);
  background:var(--color-bg);font-family:inherit;font-size:0.95rem;transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.form-row input:focus,.form-row textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 4px rgba(225,102,61,0.14);}
.form-row--checkbox{display:flex;align-items:flex-start;gap:0.6rem;font-size:0.85rem;color:var(--color-text-muted);}
.form-row--checkbox input{width:20px;height:20px;margin-top:2px;flex-shrink:0;}
.form-row--checkbox a{color:var(--color-accent-dark);font-weight:600;}

.contact-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);}
@media (max-width:800px){.contact-info-grid{grid-template-columns:1fr;}}
.card--compact{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-3);box-shadow:var(--shadow-sm);text-align:center;transition:transform .3s var(--ease);}
.card--compact:hover{transform:translateY(-5px);}
.card--compact i{font-size:1.6rem;color:var(--color-accent);margin-bottom:var(--space-1);}


.legal-page{padding:var(--space-6) 0 var(--space-7);}
.legal-layout{display:grid;grid-template-columns:280px 1fr;gap:var(--space-5);align-items:start;}
@media (max-width:900px){.legal-layout{grid-template-columns:1fr;}}
.legal-toc{position:sticky;top:110px;}
@media (max-width:900px){.legal-toc{position:static;}}
.legal-toc-label{font-weight:600;font-size:0.85rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-text-muted);margin-bottom:var(--space-1);}
.legal-toc-select{display:none;width:100%;padding:0.8rem 1rem;border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-surface);font-family:inherit;}
@media (max-width:900px){.legal-toc-select{display:block;margin-bottom:var(--space-2);}.legal-toc-list{display:none;}}
.legal-toc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.2rem;border-left:2px solid var(--color-border);}
.legal-toc-list a{display:block;padding:0.5rem 1rem;font-size:0.9rem;color:var(--color-text-muted);border-left:2px solid transparent;margin-left:-2px;transition:color .3s var(--ease), border-color .3s var(--ease);}
.legal-toc-list a:hover{color:var(--color-primary);}
.legal-toc-list a.is-active{color:var(--color-accent-dark);border-left-color:var(--color-accent);font-weight:600;}
.legal-content{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);}
.legal-content h1{font-size:clamp(1.8rem,3vw,2.3rem);margin-bottom:var(--space-2);}
.legal-content section{margin-bottom:var(--space-4);scroll-margin-top:110px;}
.legal-content h2{font-size:1.25rem;margin-bottom:0.6rem;}
.legal-content p{font-size:0.96rem;}
.legal-updated{font-size:0.85rem;color:var(--color-text-muted);font-style:italic;margin-bottom:var(--space-2);}
.legal-table{width:100%;border-collapse:collapse;margin-top:var(--space-2);font-size:0.9rem;}
.legal-table th,.legal-table td{border:1px solid var(--color-border);padding:0.7rem 0.9rem;text-align:left;}
.legal-table th{background:var(--color-bg-alt);}


.section--thanks{min-height:70vh;display:flex;align-items:center;padding-top:8rem;}
.thanks-box{text-align:center;}
.thanks-check{margin:0 auto var(--space-3);display:block;}
.thanks-check-circle{stroke:var(--color-accent);stroke-dasharray:290;stroke-dashoffset:290;animation:draw-circle 0.7s ease forwards;}
.thanks-check-mark{stroke:var(--color-accent);stroke-dasharray:60;stroke-dashoffset:60;animation:draw-check 0.5s ease forwards 0.7s;}
.thanks-heading{opacity:0;animation:fade-in 0.6s ease forwards 1.2s;}
@keyframes draw-circle{to{stroke-dashoffset:0;}}
@keyframes draw-check{to{stroke-dashoffset:0;}}
@keyframes fade-in{to{opacity:1;}}


.site-footer{background:var(--color-primary);color:#C7CBDA;padding:var(--space-6) 0 var(--space-2);margin-top:auto;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-4);padding-bottom:var(--space-4);}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;}}
.nav-logo--footer{color:#F7F4EF;margin-bottom:var(--space-2);}
.footer-col h4{color:#F7F4EF;font-size:1rem;margin-bottom:var(--space-2);}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.5rem;font-size:0.9rem;}
.footer-col a{transition:color .3s var(--ease);}
.footer-col a:hover{color:var(--color-accent);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);text-align:center;padding-top:var(--space-2);font-size:0.85rem;}

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


.cookie-link{
  position:fixed;left:1rem;bottom:1rem;z-index:1500;
  background:var(--color-surface);color:var(--color-primary);
  padding:0.55rem 1rem;border-radius:var(--radius-full);
  font-size:0.82rem;font-weight:600;box-shadow:var(--shadow-md);
  display:inline-flex;align-items:center;gap:0.5rem;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.cookie-link:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);}
.cookie-link.pulse{animation:cookie-pulse 1.8s ease-in-out 2;}
@keyframes cookie-pulse{0%,100%{box-shadow:var(--shadow-md);}50%{box-shadow:0 0 0 8px rgba(225,102,61,0.18), var(--shadow-md);}}

.cookie-modal{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;background:rgba(35,43,69,0.5);padding:var(--space-2);}
.cookie-modal.is-open{display:flex;}
.cookie-modal-inner{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-4);max-width:480px;width:100%;box-shadow:var(--shadow-lg);position:relative;max-height:88vh;overflow-y:auto;}
.cookie-modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.4rem;color:var(--color-text-muted);width:36px;height:36px;}
.cookie-option{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);padding:0.8rem 0;border-bottom:1px solid var(--color-border);}
.cookie-option:last-of-type{border-bottom:none;}
.cookie-option p{font-size:0.82rem;margin:0.2rem 0 0;}
.cookie-option input{width:20px;height:20px;flex-shrink:0;margin-top:0.3rem;}
.cookie-modal-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3);}
.cookie-modal-actions .btn{flex:1;}

@media (max-width:600px){
  .hero{min-height:82vh;}
  .section{padding:var(--space-5) 0;}
  .legal-content{padding:var(--space-3);}
}