:root{
  --ink-900:#141a2e;
  --ink-800:#232b47;
  --ink-700:#3c4560;
  --ink-500:#5c6584;
  --paper:#f6f7fb;
  --paper-dim:#eef1f8;
  --navy-950:#0b0f1f;
  --navy-900:#121a34;
  --navy-800:#1b2547;
  --indigo-600:#4a3fd1;
  --indigo-500:#5b52e0;
  --teal-500:#14b8a6;
  --teal-600:#0d9488;
  --amber-400:#f2b544;
  --rose-400:#f472b6;

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-xl:32px;
  --radius-full:999px;

  --shadow-sm: 0 1px 2px rgba(16,24,45,.08), 0 1px 1px rgba(16,24,45,.05);
  --shadow-md: 0 10px 26px -8px rgba(16,24,45,.22), 0 3px 8px -2px rgba(16,24,45,.10);
  --shadow-lg: 0 26px 54px -16px rgba(16,24,45,.30), 0 10px 20px -6px rgba(16,24,45,.14);
  --shadow-glow: 0 24px 48px -18px rgba(30,41,86,.45);

  --font-head:'Bitter', serif;
  --font-body:'Plus Jakarta Sans', sans-serif;

  --sp-xs: clamp(.5rem, .45rem + .2vw, .75rem);
  --sp-sm: clamp(1rem, .9rem + .4vw, 1.5rem);
  --sp-md: clamp(1.75rem, 1.5rem + 1vw, 2.5rem);
  --sp-lg: clamp(3rem, 2.4rem + 2.5vw, 5rem);
  --sp-xl: clamp(4.5rem, 3.5rem + 4vw, 8rem);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink-700);
  background-color:var(--paper-dim);
  background-image:
    radial-gradient(at 12% 18%, rgba(74,63,209,.18) 0px, transparent 52%),
    radial-gradient(at 88% 8%, rgba(20,184,166,.16) 0px, transparent 50%),
    radial-gradient(at 78% 82%, rgba(244,114,182,.13) 0px, transparent 50%),
    radial-gradient(at 8% 92%, rgba(242,181,68,.14) 0px, transparent 50%);
  background-attachment:fixed;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-head);color:var(--ink-900);margin:0 0 .5em;line-height:1.2;font-weight:600;}
p{margin:0 0 1em;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
input,textarea{font-family:inherit;font-size:1rem;}

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

.mod-progress{position:fixed;top:0;left:0;height:4px;width:0%;z-index:1200;background:linear-gradient(90deg,var(--indigo-600),var(--teal-500),var(--amber-400));transition:width .1s linear;}

.mod-glass{
  background:rgba(255,255,255,.6);
  backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:var(--shadow-lg);
  border-radius:var(--radius-lg);
}

.mod-eyebrow{
  display:inline-block;
  font-size:.8rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--teal-600);
  margin-bottom:var(--sp-xs);
}

.mod-btn{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  padding:.9em 1.7em;
  border-radius:var(--radius-full);
  font-weight:600;
  font-size:.98rem;
  border:1px solid transparent;
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, background .35s ease, color .35s ease;
  min-height:44px;
}
.mod-btn--primary{
  background:linear-gradient(135deg,var(--indigo-600),var(--teal-600));
  color:#fff;
  box-shadow:0 12px 24px -8px rgba(74,63,209,.45), 0 4px 10px -2px rgba(20,184,166,.3);
}
.mod-btn--primary:hover{transform:translateY(-3px);box-shadow:0 20px 34px -10px rgba(74,63,209,.5), 0 8px 16px -4px rgba(20,184,166,.35);}
.mod-btn--ghost{
  background:rgba(255,255,255,.5);
  color:var(--ink-900);
  border:1px solid rgba(20,26,50,.14);
  backdrop-filter:blur(10px);
}
.mod-btn--ghost:hover{transform:translateY(-3px);background:rgba(255,255,255,.8);box-shadow:var(--shadow-md);}

.mod-link-arrow{display:inline-flex;align-items:center;gap:.5em;font-weight:600;color:var(--indigo-600);transition:gap .3s ease, color .3s ease;}
.mod-link-arrow:hover{gap:.85em;color:var(--teal-600);}


.mod-nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:var(--sp-sm) 0;
  transition:all .5s cubic-bezier(.2,.8,.2,1);
}
.mod-nav-inner{
  max-width:1280px;margin:0 auto;padding:0 var(--sp-md);
  display:flex;align-items:center;gap:var(--sp-md);
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border:1px solid rgba(255,255,255,.65);
  border-radius:var(--radius-full);
  box-shadow:var(--shadow-md);
  padding:.6em 1em .6em 1.4em;
  transition:all .5s cubic-bezier(.2,.8,.2,1);
}
.mod-nav-logo{display:flex;align-items:center;gap:.6em;font-family:var(--font-head);font-weight:700;font-size:1.2rem;color:var(--ink-900);flex-shrink:0;}
.mod-nav-links{display:flex;align-items:center;gap:.3em;margin-left:auto;}
.mod-nav-link{
  padding:.6em 1.1em;border-radius:var(--radius-full);font-weight:500;font-size:.95rem;color:var(--ink-700);
  transition:background .3s ease, color .3s ease;
  white-space:nowrap;
}
.mod-nav-link:hover{background:rgba(74,63,209,.08);color:var(--indigo-600);}
.mod-nav-link.is-active{background:linear-gradient(135deg,var(--indigo-600),var(--teal-600));color:#fff;}
.mod-nav-cta{
  flex-shrink:0;padding:.7em 1.4em;border-radius:var(--radius-full);
  background:var(--ink-900);color:#fff;font-weight:600;font-size:.92rem;
  transition:transform .3s ease, background .3s ease;
}
.mod-nav-cta:hover{transform:translateY(-2px);background:var(--indigo-600);}
.mod-nav-toggle{
  display:none;width:44px;height:44px;border-radius:50%;border:none;
  background:rgba(20,26,50,.06);color:var(--ink-900);font-size:1.05rem;
  align-items:center;justify-content:center;flex-shrink:0;
  transition:background .3s ease, transform .3s ease;
}
.mod-nav-toggle:hover{background:rgba(20,26,50,.12);transform:scale(1.05);}

.mod-nav.is-compact .mod-nav-inner{
  max-width:78px;padding:.4em;justify-content:center;
  background:linear-gradient(135deg,var(--indigo-600),var(--teal-600));
  border-color:rgba(255,255,255,.25);
  box-shadow:0 16px 32px -10px rgba(74,63,209,.5);
}
.mod-nav.is-compact .mod-nav-logo,
.mod-nav.is-compact .mod-nav-links,
.mod-nav.is-compact .mod-nav-cta{display:none;}
.mod-nav.is-compact .mod-nav-toggle{display:flex;background:rgba(255,255,255,.18);color:#fff;margin:0 auto;}
.mod-nav.is-compact .mod-nav-toggle:hover{background:rgba(255,255,255,.3);}

@media (max-width:860px){
  .mod-nav-links,.mod-nav-cta{display:none;}
  .mod-nav-toggle{display:flex;}
  .mod-nav-inner{padding:.55em .6em .55em 1em;}
}


.mod-mobile-menu{
  position:fixed;inset:0;z-index:1300;
  display:flex;
  opacity:0;pointer-events:none;
  transition:opacity .5s ease;
}
.mod-mobile-menu.is-open{opacity:1;pointer-events:auto;}
.mod-mobile-menu-panel{
  width:62%;height:100%;
  background:linear-gradient(160deg,var(--navy-950),var(--indigo-600) 130%);
  padding:var(--sp-lg) var(--sp-md);
  display:flex;flex-direction:column;
  position:relative;
  transform:translateX(-100%);
  transition:transform .55s cubic-bezier(.2,.8,.2,1);
}
.mod-mobile-menu.is-open .mod-mobile-menu-panel{transform:translateX(0);}
.mod-mobile-menu-visual{
  width:38%;height:100%;position:relative;overflow:hidden;
  transform:translateX(100%);
  transition:transform .55s cubic-bezier(.2,.8,.2,1);
}
.mod-mobile-menu.is-open .mod-mobile-menu-visual{transform:translateX(0);}
.mod-mobile-menu-visual img{width:100%;height:100%;object-fit:cover;}
.mod-mobile-menu-visual::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,15,31,.1),rgba(11,15,31,.55));}
.mod-mobile-menu-close{
  position:absolute;top:var(--sp-md);right:var(--sp-md);
  width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.08);color:#fff;font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;
  transition:background .3s ease, transform .3s ease;
}
.mod-mobile-menu-close:hover{background:rgba(255,255,255,.2);transform:rotate(90deg);}
.mod-mobile-menu-eyebrow{color:rgba(255,255,255,.55);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;margin-top:var(--sp-lg);}
.mod-mobile-menu-links{display:flex;flex-direction:column;gap:.2em;margin-top:var(--sp-sm);margin-bottom:auto;}
.mod-mobile-menu-links a{
  font-family:var(--font-head);font-size:clamp(1.6rem,5vw,2.6rem);font-weight:600;color:rgba(255,255,255,.75);
  padding:.28em 0;transition:color .3s ease, padding-left .3s ease;border-bottom:1px solid rgba(255,255,255,.08);
}
.mod-mobile-menu-links a:hover, .mod-mobile-menu-links a.is-active{color:#fff;padding-left:.3em;}
.mod-mobile-menu-contact{display:flex;flex-direction:column;gap:.6em;padding-top:var(--sp-md);}
.mod-mobile-menu-contact a{color:rgba(255,255,255,.75);font-size:.95rem;display:flex;align-items:center;gap:.6em;transition:color .3s ease;}
.mod-mobile-menu-contact a:hover{color:#fff;}

@media (max-width:640px){
  .mod-mobile-menu-panel{width:66%;padding:var(--sp-md) var(--sp-sm);}
  .mod-mobile-menu-visual{width:34%;}
  .mod-mobile-menu-links a{font-size:clamp(1.3rem,7vw,1.9rem);}
}
@media (max-width:420px){
  .mod-mobile-menu-panel{width:70%;}
  .mod-mobile-menu-visual{width:30%;}
}

body.mod-menu-open{overflow:hidden;}


.mod-hero{
  display:flex;min-height:100vh;padding-top:110px;
  align-items:stretch;
}
.mod-hero-media{
  flex:0 0 55%;position:relative;overflow:hidden;border-radius:0 0 var(--radius-xl) 0;
  min-height:340px;
}
.mod-hero-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.8,.2,1);}
.mod-hero-media:hover img{transform:scale(1.06);}
.mod-hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg, rgba(11,15,31,.25), rgba(11,15,31,0) 60%);}
.mod-hero-content{
  flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-xs);
  padding:var(--sp-lg) var(--sp-md);
}
.mod-hero-title{font-size:clamp(2.3rem, 1.7rem + 3vw, 4rem);letter-spacing:-.01em;}
.mod-hero-text{font-size:clamp(1.02rem,.96rem + .3vw,1.2rem);color:var(--ink-500);max-width:46ch;}
.mod-hero-actions{display:flex;gap:var(--sp-xs);flex-wrap:wrap;margin-top:.5em;}
.mod-hero-note{display:flex;align-items:center;gap:.6em;margin-top:var(--sp-sm);font-size:.92rem;color:var(--teal-600);font-weight:600;}
.mod-hero-note i{font-size:1.1rem;}

@media (max-width:960px){
  .mod-hero{flex-direction:column;min-height:auto;padding-top:100px;}
  .mod-hero-media{flex:none;height:46vh;border-radius:0 0 var(--radius-lg) var(--radius-lg);}
  .mod-hero-content{padding:var(--sp-lg) var(--sp-sm);}
}


.mod-section-head{max-width:720px;margin:0 auto var(--sp-lg);text-align:left;padding:0 var(--sp-md);}
.mod-section-head--center{text-align:center;margin-left:auto;margin-right:auto;}
.mod-section-title{font-size:clamp(1.8rem,1.5rem + 1.6vw,2.6rem);}
.mod-section-text{color:var(--ink-500);font-size:1.05rem;}


.mod-programs{padding:var(--sp-xl) 0 var(--sp-lg);}
.mod-programs-grid{
  max-width:1280px;margin:0 auto;padding:0 var(--sp-md);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--sp-md) var(--sp-sm);
}
.mod-program-card{
  position:relative;background:rgba(255,255,255,.62);backdrop-filter:blur(16px) saturate(150%);
  border:1px solid rgba(255,255,255,.7);border-radius:var(--radius-lg);
  padding:var(--sp-md) var(--sp-sm);
  box-shadow:
    6px 8px 0 -3px rgba(255,255,255,.5),
    12px 16px 0 -6px rgba(74,63,209,.10),
    var(--shadow-md);
  transition:transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease;
}
.mod-program-card:hover{
  transform:translateY(-8px) rotate(-.6deg);
  box-shadow:
    8px 10px 0 -3px rgba(255,255,255,.6),
    16px 22px 0 -6px rgba(20,184,166,.16),
    var(--shadow-lg);
}
.mod-program-num{position:absolute;top:1.1em;right:1.2em;font-family:var(--font-head);font-size:1.6rem;font-weight:700;color:rgba(74,63,209,.18);}
.mod-program-icon{
  width:52px;height:52px;border-radius:var(--radius-md);
  background:linear-gradient(135deg,var(--indigo-600),var(--teal-600));
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:var(--sp-xs);
  box-shadow:0 10px 20px -8px rgba(74,63,209,.5);
}
.mod-program-card h3{font-size:1.2rem;margin-bottom:.4em;}
.mod-program-card p{font-size:.94rem;color:var(--ink-500);margin:0;}


.mod-wave-divider{line-height:0;margin-top:-1px;}
.mod-wave-divider svg{width:100%;height:80px;display:block;}
.mod-wave-divider path{fill:rgba(255,255,255,.5);}
.mod-wave-divider--alt path{fill:rgba(28,37,71,.06);}


.mod-about{
  max-width:1280px;margin:0 auto;padding:var(--sp-lg) var(--sp-md) var(--sp-xl);
  display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-lg);align-items:center;
}
.mod-about-media{position:relative;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);}
.mod-about-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;}
.mod-about-card{
  position:absolute;bottom:var(--sp-sm);left:var(--sp-sm);right:var(--sp-sm);
  display:flex;align-items:center;gap:.8em;padding:1.1em 1.3em;
}
.mod-about-card i{font-size:1.4rem;color:var(--teal-600);}
.mod-about-card p{margin:0;font-size:.92rem;font-weight:600;color:var(--ink-900);}
.mod-about-content h2{font-size:clamp(1.8rem,1.5rem + 1.4vw,2.4rem);}
.mod-about-list{display:flex;flex-direction:column;gap:.7em;margin:1.2em 0;}
.mod-about-list li{display:flex;align-items:flex-start;gap:.7em;font-size:.98rem;color:var(--ink-700);}
.mod-about-list i{color:var(--teal-600);margin-top:.3em;}

@media (max-width:900px){
  .mod-about{grid-template-columns:1fr;}
}


.mod-gallery{padding:var(--sp-lg) 0 var(--sp-xl);}
.mod-gallery-grid{
  max-width:1280px;margin:0 auto;padding:0 var(--sp-md);
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:var(--sp-sm);
}
.mod-gallery-item{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);}
.mod-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.mod-gallery-item:hover img{transform:scale(1.08);}
.mod-gallery-item figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:1em 1.1em;
  background:linear-gradient(0deg,rgba(11,15,31,.75),transparent);
  color:#fff;font-size:.85rem;font-weight:500;
  opacity:0;transform:translateY(10px);transition:opacity .35s ease, transform .35s ease;
}
.mod-gallery-item:hover figcaption{opacity:1;transform:translateY(0);}
.mod-gallery-item--tall{grid-row:span 2;grid-column:span 1;}
.mod-gallery-item--wide{grid-column:span 2;}
.mod-gallery-grid > :nth-child(2){grid-column:span 1;}
.mod-gallery-grid > :nth-child(3){grid-column:span 1;}

@media (max-width:960px){
  .mod-gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px;}
  .mod-gallery-item--wide{grid-column:span 2;}
  .mod-gallery-item--tall{grid-row:span 2;}
}
@media (max-width:560px){
  .mod-gallery-grid{grid-template-columns:1fr;grid-auto-rows:220px;}
  .mod-gallery-item--wide,.mod-gallery-item--tall{grid-column:span 1;grid-row:span 1;}
}


.mod-cta-banner{padding:0 var(--sp-md) var(--sp-xl);}
.mod-cta-banner-inner{
  max-width:1100px;margin:0 auto;padding:var(--sp-lg);
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);flex-wrap:wrap;
  background:linear-gradient(120deg,rgba(255,255,255,.7),rgba(255,255,255,.5));
}
.mod-cta-banner-text h2{font-size:clamp(1.5rem,1.3rem + 1vw,2rem);margin-bottom:.3em;}
.mod-cta-banner-text p{color:var(--ink-500);margin:0;max-width:44ch;}


.mod-faq-preview{max-width:1280px;margin:0 auto;padding:var(--sp-lg) var(--sp-md) var(--sp-xl);}
.mod-faq-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-sm);margin-bottom:var(--sp-md);}
.mod-faq-preview-item{
  padding:var(--sp-sm);border-radius:var(--radius-md);
  background:rgba(255,255,255,.5);backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.6);box-shadow:var(--shadow-sm);
  transition:transform .35s ease, box-shadow .35s ease;
}
.mod-faq-preview-item:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.mod-faq-preview-item h3{font-size:1.05rem;margin-bottom:.4em;}
.mod-faq-preview-item p{font-size:.92rem;color:var(--ink-500);margin:0;}


.mod-page-hero{
  padding:calc(110px + var(--sp-lg)) var(--sp-md) var(--sp-lg);
  max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-lg);align-items:center;
}
.mod-page-hero-text h1{font-size:clamp(2rem,1.6rem + 2vw,3rem);}
.mod-page-hero-text p{color:var(--ink-500);font-size:1.05rem;max-width:52ch;}
.mod-page-hero-media{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:5/4;}
.mod-page-hero-media img{width:100%;height:100%;object-fit:cover;}
.mod-page-hero--simple{grid-template-columns:1fr;max-width:820px;text-align:left;}
.mod-page-hero--simple .mod-page-hero-text p{max-width:60ch;}

@media (max-width:860px){
  .mod-page-hero{grid-template-columns:1fr;padding-top:calc(100px + var(--sp-md));}
}


.mod-method{max-width:1280px;margin:0 auto;padding:var(--sp-lg) var(--sp-md);}
.mod-method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-sm);}
.mod-method-step{
  padding:var(--sp-md);border-radius:var(--radius-lg);
  background:rgba(255,255,255,.55);backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.65);box-shadow:var(--shadow-sm);
  transition:transform .4s ease, box-shadow .4s ease;
}
.mod-method-step:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.mod-method-step-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,var(--indigo-600),var(--teal-600));color:#fff;
  font-family:var(--font-head);font-weight:700;margin-bottom:.6em;
}
.mod-method-step h3{font-size:1.05rem;}
.mod-method-step p{font-size:.92rem;color:var(--ink-500);margin:0;}


.mod-principles{
  max-width:1280px;margin:0 auto;padding:var(--sp-lg) var(--sp-md) var(--sp-xl);
  display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--sp-lg);align-items:start;
}
.mod-principles-media{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);position:sticky;top:120px;}
.mod-principles-media img{width:100%;object-fit:cover;aspect-ratio:4/5;}
.mod-principles-list{display:flex;flex-direction:column;gap:var(--sp-sm);margin-top:var(--sp-sm);}
.mod-principles-item{display:flex;gap:1em;}
.mod-principles-item i{font-size:1.3rem;color:var(--teal-600);margin-top:.2em;flex-shrink:0;}
.mod-principles-item h3{font-size:1.1rem;margin-bottom:.3em;}
.mod-principles-item p{font-size:.94rem;color:var(--ink-500);margin:0;}

@media (max-width:900px){
  .mod-principles{grid-template-columns:1fr;}
  .mod-principles-media{position:static;}
}


.mod-formats{max-width:1280px;margin:0 auto;padding:var(--sp-lg) var(--sp-md);}
.mod-formats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--sp-sm);}
.mod-format-card{padding:var(--sp-md);text-align:left;transition:transform .4s ease;}
.mod-format-card:hover{transform:translateY(-6px);}
.mod-format-card i{font-size:1.6rem;color:var(--indigo-600);margin-bottom:.5em;display:block;}
.mod-format-card h3{font-size:1.1rem;}
.mod-format-card p{font-size:.92rem;color:var(--ink-500);margin:0;}


.mod-modules-detail{max-width:980px;margin:0 auto;padding:var(--sp-lg) var(--sp-md) var(--sp-xl);}
.mod-module-row{display:flex;gap:var(--sp-sm);padding:var(--sp-sm) 0;border-bottom:1px solid rgba(28,37,71,.08);}
.mod-module-row:last-child{border-bottom:none;}
.mod-module-row-num{
  flex-shrink:0;font-family:var(--font-head);font-weight:700;font-size:1.6rem;
  color:transparent;-webkit-text-stroke:1.5px var(--indigo-600);width:70px;
}
.mod-module-row-body h3{font-size:1.2rem;margin-bottom:.4em;}
.mod-module-row-body p{color:var(--ink-500);margin:0;font-size:.98rem;}

@media (max-width:600px){
  .mod-module-row{flex-direction:column;gap:.4em;}
  .mod-module-row-num{width:auto;}
}


.mod-audience{
  max-width:1280px;margin:0 auto;padding:0 var(--sp-md) var(--sp-xl);
  display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--sp-lg);align-items:center;
}
.mod-audience-media{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);}
.mod-audience-media img{width:100%;object-fit:cover;aspect-ratio:4/5;}
.mod-audience-tags{display:flex;flex-wrap:wrap;gap:.6em;margin-top:1em;}
.mod-audience-tags span{
  display:inline-flex;align-items:center;gap:.5em;padding:.6em 1.1em;
  background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.65);
  border-radius:var(--radius-full);font-size:.88rem;font-weight:600;color:var(--ink-800);
  box-shadow:var(--shadow-sm);
}
.mod-audience-tags i{color:var(--teal-600);}

@media (max-width:900px){.mod-audience{grid-template-columns:1fr;}}


.mod-faq{max-width:840px;margin:0 auto;padding:0 var(--sp-md) var(--sp-xl);}
.mod-faq-item{
  border-radius:var(--radius-md);margin-bottom:.8em;overflow:hidden;
  background:rgba(255,255,255,.55);backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.65);box-shadow:var(--shadow-sm);
}
.mod-faq-question{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:1.1em 1.3em;background:none;border:none;text-align:left;
  font-family:var(--font-head);font-weight:600;font-size:1.02rem;color:var(--ink-900);
}
.mod-faq-question i{transition:transform .35s ease;color:var(--indigo-600);flex-shrink:0;margin-left:1em;}
.mod-faq-item.is-open .mod-faq-question i{transform:rotate(180deg);}
.mod-faq-answer{max-height:0;overflow:hidden;transition:max-height .45s ease;}
.mod-faq-answer p{padding:0 1.3em 1.2em;color:var(--ink-500);font-size:.96rem;margin:0;}
.mod-faq-item.is-open .mod-faq-answer{max-height:300px;}


.mod-contact{max-width:1280px;margin:0 auto;padding:0 var(--sp-md) var(--sp-lg);}
.mod-contact-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:var(--sp-lg);align-items:start;}
.mod-contact-form-wrap{padding:var(--sp-md);}
.mod-form-progress{display:flex;align-items:center;gap:var(--sp-xs);margin-bottom:var(--sp-md);}
.mod-form-progress-step{display:flex;align-items:center;gap:.5em;font-size:.85rem;font-weight:600;color:var(--ink-500);}
.mod-form-progress-step span{
  width:28px;height:28px;border-radius:50%;background:rgba(28,37,71,.1);color:var(--ink-700);
  display:flex;align-items:center;justify-content:center;font-size:.8rem;transition:background .3s ease, color .3s ease;
}
.mod-form-progress-step.is-active span{background:linear-gradient(135deg,var(--indigo-600),var(--teal-600));color:#fff;}
.mod-form-progress-bar{flex:1;height:3px;background:rgba(28,37,71,.1);border-radius:2px;overflow:hidden;}
.mod-form-progress-bar span{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--indigo-600),var(--teal-600));transition:width .5s ease;}
.mod-form-step{display:none;flex-direction:column;gap:.3em;}
.mod-form-step.is-active{display:flex;}
.mod-form-label{font-size:.88rem;font-weight:600;color:var(--ink-800);margin-top:.6em;}
.mod-form-input{
  width:100%;padding:.85em 1em;border-radius:var(--radius-sm);border:1px solid rgba(28,37,71,.15);
  background:rgba(255,255,255,.7);transition:border-color .3s ease, box-shadow .3s ease;
}
.mod-form-input:focus{outline:none;border-color:var(--indigo-600);box-shadow:0 0 0 3px rgba(74,63,209,.15);}
textarea.mod-form-input{resize:vertical;min-height:120px;}
.mod-form-checkbox{display:flex;align-items:flex-start;gap:.6em;margin-top:1em;font-size:.88rem;color:var(--ink-500);}
.mod-form-checkbox input{margin-top:.25em;width:18px;height:18px;flex-shrink:0;}
.mod-form-checkbox a{color:var(--indigo-600);font-weight:600;}
.mod-form-actions{display:flex;justify-content:space-between;gap:var(--sp-sm);margin-top:var(--sp-sm);flex-wrap:wrap;}
.mod-form-next{margin-top:var(--sp-sm);align-self:flex-start;}

.mod-contact-side{display:flex;flex-direction:column;gap:var(--sp-sm);}
.mod-contact-info-card{padding:var(--sp-md);display:flex;flex-direction:column;gap:.8em;}
.mod-contact-info-card h3{font-size:1.1rem;}
.mod-contact-info-card a,.mod-contact-info-card span{display:flex;align-items:center;gap:.7em;font-size:.94rem;color:var(--ink-700);transition:color .3s ease;}
.mod-contact-info-card a:hover{color:var(--indigo-600);}
.mod-contact-info-card i{color:var(--teal-600);width:18px;}
.mod-contact-map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);}

@media (max-width:900px){.mod-contact-grid{grid-template-columns:1fr;}}


.mod-service-area{
  max-width:1280px;margin:0 auto;padding:var(--sp-lg) var(--sp-md) var(--sp-xl);
  display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--sp-lg);align-items:center;
}
.mod-service-area-media{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);}
.mod-service-area-media img{width:100%;object-fit:cover;aspect-ratio:4/3;}
.mod-service-area-list{display:flex;flex-direction:column;gap:.7em;margin-top:1em;}
.mod-service-area-list span{display:flex;align-items:center;gap:.7em;font-size:.95rem;color:var(--ink-700);font-weight:500;}
.mod-service-area-list i{color:var(--teal-600);}

@media (max-width:900px){.mod-service-area{grid-template-columns:1fr;}}


.mod-legal{max-width:820px;margin:0 auto;padding:calc(110px + var(--sp-md)) var(--sp-md) var(--sp-xl);}
.mod-legal-header{margin-bottom:var(--sp-md);}
.mod-legal-updated{color:var(--ink-500);font-size:.9rem;font-style:italic;}
.mod-legal-body p{color:var(--ink-700);font-size:1rem;}
.mod-legal-body strong{color:var(--ink-900);}
.mod-definition{
  margin:1.2em 0;padding:1.1em 1.3em;border-radius:var(--radius-md);
  background:rgba(74,63,209,.06);border-left:3px solid var(--indigo-600);
  font-size:.9rem;color:var(--ink-700);
}
.mod-clause h2{font-size:1.25rem;margin-top:1.6em;}
.mod-legal--technical .mod-legal-body{display:flex;flex-direction:column;}


.mod-thanks{
  min-height:70vh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  max-width:820px;margin:0 auto;padding:calc(110px + var(--sp-lg)) var(--sp-md) var(--sp-xl);
}
.mod-thanks h1{font-size:clamp(2.2rem,1.8rem + 2.4vw,3.6rem);}
.mod-thanks p{color:var(--ink-500);font-size:1.1rem;margin-bottom:1.5em;}


.mod-footer{background:var(--navy-950);color:rgba(255,255,255,.75);padding:var(--sp-xl) var(--sp-md) var(--sp-sm);margin-top:var(--sp-lg);}
.mod-footer-inner{
  max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--sp-lg);
  padding-bottom:var(--sp-lg);border-bottom:1px solid rgba(255,255,255,.1);
}
.mod-footer-brand .mod-nav-logo{color:#fff;margin-bottom:.8em;}
.mod-footer-brand p{font-size:.9rem;color:rgba(255,255,255,.55);max-width:32ch;}
.mod-footer-col h4{color:#fff;font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:1em;}
.mod-footer-col{display:flex;flex-direction:column;gap:.7em;}
.mod-footer-col a,.mod-footer-col span{font-size:.9rem;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:.6em;transition:color .3s ease;}
.mod-footer-col a:hover{color:var(--amber-400);}
.mod-footer-bottom{
  max-width:1280px;margin:0 auto;padding-top:var(--sp-sm);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5em;
  font-size:.82rem;color:rgba(255,255,255,.4);
}

@media (max-width:900px){
  .mod-footer-inner{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .mod-footer-inner{grid-template-columns:1fr;}
}


.mod-cookie{position:fixed;bottom:var(--sp-sm);right:var(--sp-sm);z-index:1400;}
.mod-cookie-icon{
  position:relative;width:56px;height:56px;border-radius:50%;border:none;
  background:linear-gradient(135deg,var(--indigo-600),var(--teal-600));color:#fff;font-size:1.3rem;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 28px -8px rgba(74,63,209,.5);
  transition:transform .35s ease;
}
.mod-cookie-icon:hover{transform:scale(1.08) rotate(-6deg);}
.mod-cookie-badge{
  position:absolute;top:2px;right:2px;width:12px;height:12px;border-radius:50%;
  background:var(--amber-400);border:2px solid var(--navy-950);
}
.mod-cookie-badge.is-hidden{display:none;}
.mod-cookie-panel{
  position:fixed;bottom:0;left:0;right:0;
  max-width:460px;margin:0 auto;
  background:rgba(20,26,50,.85);backdrop-filter:blur(22px) saturate(160%);
  border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  padding:var(--sp-md);color:#fff;
  transform:translateY(100%);opacity:0;pointer-events:none;
  transition:transform .5s cubic-bezier(.2,.8,.2,1), opacity .5s ease;
  max-height:80vh;overflow-y:auto;
}
.mod-cookie-panel.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}
.mod-cookie-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5em;}
.mod-cookie-panel-head h3{color:#fff;margin:0;font-size:1.1rem;}
.mod-cookie-panel-head button{background:none;border:none;color:rgba(255,255,255,.6);font-size:1.1rem;}
.mod-cookie-panel p{font-size:.85rem;color:rgba(255,255,255,.65);}
.mod-cookie-cat{padding:.7em 0;border-top:1px solid rgba(255,255,255,.1);}
.mod-cookie-cat-head{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:.92rem;}
.mod-cookie-cat p{margin:.3em 0 0;font-size:.8rem;}
.mod-switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0;}
.mod-switch input{opacity:0;width:0;height:0;}
.mod-switch span{position:absolute;inset:0;background:rgba(255,255,255,.2);border-radius:999px;transition:background .3s ease;}
.mod-switch span::before{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .3s ease;}
.mod-switch input:checked + span{background:var(--teal-500);}
.mod-switch input:checked + span::before{transform:translateX(18px);}
.mod-switch input:disabled + span{opacity:.5;}
.mod-cookie-actions{display:flex;gap:.6em;margin-top:1em;flex-wrap:wrap;}
.mod-cookie-actions .mod-btn{flex:1;justify-content:center;padding:.75em 1em;font-size:.85rem;}
.mod-cookie-actions .mod-btn--ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.2);}
.mod-cookie-save{width:100%;margin-top:.6em;padding:.8em;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font-weight:600;font-size:.88rem;transition:background .3s ease;}
.mod-cookie-save:hover{background:rgba(255,255,255,.16);}
.mod-cookie-more{display:block;text-align:center;margin-top:.7em;font-size:.78rem;color:rgba(255,255,255,.5);text-decoration:underline;}

@media (max-width:520px){
  .mod-cookie{right:var(--sp-xs);bottom:var(--sp-xs);}
  .mod-cookie-panel{max-width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;}
}

@media (max-width:480px){
  .mod-hero-actions{flex-direction:column;align-items:stretch;}
  .mod-hero-actions .mod-btn{justify-content:center;}
}