
:root{
  --clr-primary:#7c5cff;
  --clr-secondary:#00e0c6;
  --clr-accent:#ff5c8a;
  --clr-bg:#0b0d14;
  --clr-ink:#eceefb;

  --clr-bg-alt: color-mix(in oklch, var(--clr-bg), white 6%);
  --clr-surface: color-mix(in oklch, var(--clr-bg), white 11%);
  --clr-surface-2: color-mix(in oklch, var(--clr-bg), white 17%);
  --clr-border: color-mix(in oklch, var(--clr-ink), transparent 84%);
  --clr-border-soft: color-mix(in oklch, var(--clr-ink), transparent 92%);

  --clr-primary-soft: color-mix(in oklch, var(--clr-primary), white 22%);
  --clr-primary-dim: color-mix(in oklch, var(--clr-primary), black 35%);
  --clr-primary-glow: color-mix(in oklch, var(--clr-primary), transparent 35%);

  --clr-secondary-soft: color-mix(in oklch, var(--clr-secondary), white 25%);
  --clr-secondary-glow: color-mix(in oklch, var(--clr-secondary), transparent 45%);

  --clr-accent-soft: color-mix(in oklch, var(--clr-accent), white 20%);
  --clr-accent-glow: color-mix(in oklch, var(--clr-accent), transparent 40%);

  --clr-text-dim: color-mix(in oklch, var(--clr-ink), transparent 25%);
  --clr-text-mute: color-mix(in oklch, var(--clr-ink), transparent 52%);

  --clr-light-bg:#f4f0ea;
  --clr-light-ink:#221f2e;
  --clr-light-surface: color-mix(in oklch, var(--clr-light-bg), white 55%);
  --clr-light-border: color-mix(in oklch, var(--clr-light-ink), transparent 88%);
  --clr-light-mute: color-mix(in oklch, var(--clr-light-ink), transparent 45%);

  --gradient-primary: linear-gradient(135deg, var(--clr-primary), var(--clr-accent));
  --gradient-dark: linear-gradient(135deg, color-mix(in oklch, var(--clr-primary), black 45%), color-mix(in oklch, var(--clr-bg), black 10%) 70%);

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-xl:34px;
  --radius-pill:999px;

  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.5rem; --space-6:2rem; --space-7:3rem; --space-8:4.5rem;
  --space-9:6.5rem; --space-10:9rem;

  --shadow-sm: 0 1px 2px rgba(0,0,0,.5), 0 1px 1px color-mix(in oklch, var(--clr-primary), transparent 90%);
  --shadow-md: 0 10px 26px -10px rgba(0,0,0,.6), 0 4px 12px -6px color-mix(in oklch, var(--clr-primary), transparent 70%);
  --shadow-lg: 0 30px 70px -24px rgba(0,0,0,.7), 0 14px 34px -14px color-mix(in oklch, var(--clr-secondary), transparent 75%);
  --shadow-glow-primary: 0 0 0 1px color-mix(in oklch, var(--clr-primary), transparent 45%), 0 0 28px var(--clr-primary-glow);
  --shadow-glow-accent: 0 0 0 1px color-mix(in oklch, var(--clr-accent), transparent 45%), 0 0 28px var(--clr-accent-glow);

  --fs-hero: clamp(2.6rem, 4.6vw + 1.2rem, 5rem);
  --fs-h1: clamp(2.1rem, 2.4vw + 1.4rem, 3.1rem);
  --fs-h2: clamp(1.55rem, 1.4vw + 1.2rem, 2.35rem);
  --fs-h3: clamp(1.2rem, .5vw + 1.05rem, 1.5rem);
  --fs-lead: clamp(1.05rem, .3vw + 1rem, 1.25rem);

  --ease: cubic-bezier(.4,.08,.2,1);
  --transition: .35s var(--ease);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0; background:var(--clr-bg); color:var(--clr-ink);
  font-family:'DM Sans', sans-serif; font-size:1rem; line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block; height:auto;}
a{color:inherit; text-decoration:none;}
h1,h2,h3,h4{font-family:'Familjen Grotesk', sans-serif; line-height:1.12; margin:0 0 var(--space-4); font-weight:600; letter-spacing:-.01em;}
p{margin:0 0 var(--space-4); color:var(--clr-text-dim); max-width:62ch;}
ul{list-style:none; margin:0; padding:0;}
button{font-family:inherit; cursor:pointer;}
input,select,textarea{font-family:inherit;}

.mod-container{max-width:1220px; margin:0 auto; padding:0 var(--space-5);}
@media (max-width:640px){ .mod-container{padding:0 var(--space-4);} }

.mod-eyebrow{
  display:inline-block; font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color: var(--clr-secondary-soft); margin-bottom:var(--space-3);
}
.mod-section--light .mod-eyebrow{ color: color-mix(in oklch, var(--clr-primary), black 10%); }

.mod-section-title{font-size:var(--fs-h2); color:var(--clr-ink);}
.mod-section--light .mod-section-title{ color:var(--clr-light-ink); }
.mod-section-lead{font-size:var(--fs-lead); color:var(--clr-text-dim); max-width:64ch;}
.mod-section--light .mod-section-lead{ color:var(--clr-light-mute); }
.mod-section-head{margin-bottom:var(--space-7); max-width:760px;}

.mod-btn{
  display:inline-flex; align-items:center; gap:.6rem; padding:.9rem 1.6rem;
  border-radius:var(--radius-pill); font-weight:600; font-size:.95rem; border:1px solid transparent;
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition), border-color var(--transition);
  min-height:44px; white-space:nowrap;
}
.mod-btn-primary{
  background:var(--gradient-primary); color:#fff; box-shadow:var(--shadow-glow-primary);
}
.mod-btn-primary:hover{ transform:translateY(-2px); box-shadow:0 0 0 1px color-mix(in oklch, var(--clr-primary), transparent 20%), 0 0 40px var(--clr-primary-glow); }
.mod-btn-ghost{ background:transparent; border-color:var(--clr-border); color:var(--clr-ink); }
.mod-btn-ghost:hover{ border-color:var(--clr-secondary-soft); background:color-mix(in oklch, var(--clr-secondary), transparent 92%); }
.mod-btn-secondary{ background:var(--clr-surface-2); color:var(--clr-ink); box-shadow:var(--shadow-md); border:1px solid var(--clr-border); }
.mod-btn-secondary:hover{ box-shadow:var(--shadow-glow-accent); transform:translateY(-2px); }

.mod-link-arrow{ display:inline-flex; align-items:center; gap:.5rem; font-weight:600; color:var(--clr-secondary-soft); transition:gap var(--transition), color var(--transition); }
.mod-link-arrow:hover{ gap:.85rem; color:var(--clr-secondary); }


.mod-nav{
  position:fixed; top:0; left:0; right:0; z-index:400;
  padding:var(--space-4) 0;
  transition: background var(--transition), backdrop-filter var(--transition), box-shadow var(--transition);
}
.mod-nav-inner{ display:flex; align-items:center; justify-content:space-between; }
.mod-nav-logo{ display:flex; align-items:center; gap:.6rem; font-family:'Familjen Grotesk',sans-serif; font-weight:700; font-size:1.15rem; color:var(--clr-ink); }
.mod-nav-links{ display:flex; align-items:center; gap:var(--space-6); }
.mod-nav-links a{ font-size:.95rem; font-weight:500; color:var(--clr-ink); position:relative; padding:.3rem 0; transition:color var(--transition); }
.mod-nav-links a:not(.mod-nav-cta)::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--clr-secondary); transition:width var(--transition);
}
.mod-nav-links a:not(.mod-nav-cta):hover::after, .mod-nav-links a.is-active:not(.mod-nav-cta)::after{ width:100%; }
.mod-nav-cta{
  background:var(--gradient-primary); padding:.6rem 1.3rem !important; border-radius:var(--radius-pill); color:#fff !important; box-shadow:var(--shadow-glow-primary);
  transition:transform var(--transition), box-shadow var(--transition);
}
.mod-nav-cta:hover{ transform:translateY(-2px); }
.mod-nav-burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; width:44px; height:44px; align-items:center; justify-content:center; }
.mod-nav-burger span{ width:22px; height:2px; background:var(--clr-ink); border-radius:2px; transition:background var(--transition); }

.mod-nav--light-bg .mod-nav-logo,
.mod-nav--light-bg .mod-nav-links a{ color:var(--clr-light-ink); }
.mod-nav--light-bg .mod-nav-links a:not(.mod-nav-cta)::after{ background:color-mix(in oklch, var(--clr-primary), black 10%); }
.mod-nav--light-bg .mod-nav-burger span{ background:var(--clr-light-ink); }

@media (max-width:900px){
  .mod-nav-links{ display:none; }
  .mod-nav-burger{ display:flex; }
}


.mod-mobile-backdrop{
  position:fixed; inset:0; background:rgba(6,7,12,.6); backdrop-filter:blur(3px);
  opacity:0; visibility:hidden; transition:opacity var(--transition); z-index:500;
}
.mod-mobile-backdrop.is-open{ opacity:1; visibility:visible; }
.mod-mobile-sheet{
  position:fixed; left:0; right:0; bottom:0; z-index:600;
  background:var(--clr-surface); border-radius:var(--radius-xl) var(--radius-xl) 0 0;
  padding:var(--space-4) var(--space-5) var(--space-8);
  transform:translateY(100%); transition:transform .45s var(--ease);
  box-shadow:0 -20px 60px rgba(0,0,0,.5);
  border-top:1px solid var(--clr-border);
}
.mod-mobile-sheet.is-open{ transform:translateY(0); }
.mod-mobile-sheet-handle{ width:44px; height:5px; border-radius:var(--radius-pill); background:var(--clr-border); margin:0 auto var(--space-5); }
.mod-mobile-sheet-links{ display:flex; flex-direction:column; gap:var(--space-1); }
.mod-mobile-sheet-links a{
  display:flex; align-items:center; gap:var(--space-4); padding:var(--space-4);
  border-radius:var(--radius-md); font-weight:600; font-size:1.05rem; color:var(--clr-ink);
  transition:background var(--transition);
}
.mod-mobile-sheet-links a i{ width:22px; color:var(--clr-secondary-soft); }
.mod-mobile-sheet-links a:hover{ background:var(--clr-surface-2); }


.mod-hero{ position:relative; min-height:100vh; overflow:hidden; display:flex; align-items:stretch; }
.mod-hero-media{ position:absolute; inset:0; }
.mod-hero-media img{ width:100%; height:100%; object-fit:cover; }
.mod-hero-media::after{ content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(6,7,12,.35), rgba(6,7,12,0)); }
.mod-hero-overlay{
  position:relative; width:min(64%, 780px); min-height:100vh;
  background:linear-gradient(155deg, color-mix(in oklch, var(--clr-primary), black 40%) 0%, color-mix(in oklch, var(--clr-bg), black 20%) 78%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0% 100%);
  display:flex; align-items:center;
}
.mod-hero-content{ padding: 8rem var(--space-7) 6rem var(--space-6); max-width:560px; }
.mod-hero-eyebrow{ display:inline-block; font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; color:var(--clr-secondary-soft); font-weight:700; margin-bottom:var(--space-4); }
.mod-hero-title{ font-size:var(--fs-hero); color:#fff; margin-bottom:var(--space-5); }
.mod-hero-lead{ font-size:var(--fs-lead); color:color-mix(in oklch, #fff, transparent 15%); max-width:46ch; }
.mod-hero-actions{ display:flex; flex-wrap:wrap; gap:var(--space-4); margin-top:var(--space-6); }

@media (max-width:900px){
  .mod-hero-overlay{ width:100%; clip-path:none; background:linear-gradient(180deg, color-mix(in oklch, var(--clr-primary), black 20%) 0%, color-mix(in oklch, var(--clr-bg), black 10%) 60%, var(--clr-bg) 100%); }
  .mod-hero-content{ padding:7rem var(--space-4) var(--space-8); max-width:100%; }
  .mod-hero-media img{ opacity:.35; }
}


.mod-page-hero{ padding:9.5rem 0 var(--space-8); background:var(--gradient-dark); position:relative; }
.mod-page-hero::before{
  content:''; position:absolute; inset:0; opacity:.5;
  background: radial-gradient(circle at 85% 20%, var(--clr-primary-glow), transparent 60%);
}
.mod-page-hero-title{ font-size:var(--fs-h1); color:#fff; position:relative; max-width:820px; }
.mod-page-hero-lead{ font-size:var(--fs-lead); color:color-mix(in oklch,#fff, transparent 20%); max-width:60ch; position:relative; }
.mod-page-hero--legal{ padding-bottom:var(--space-7); }


.mod-section{ padding:var(--space-9) 0; position:relative; }
.mod-section--light{ background:var(--clr-light-bg); color:var(--clr-light-ink); }
.mod-section--light p{ color:var(--clr-light-mute); }


.mod-intro-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-8); align-items:center; }
.mod-intro-grid--reverse{ direction:rtl; }
.mod-intro-grid--reverse > *{ direction:ltr; }
.mod-intro-media img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); aspect-ratio:4/5; object-fit:cover; }
@media (max-width:860px){
  .mod-intro-grid, .mod-intro-grid--reverse{ grid-template-columns:1fr; direction:ltr; }
  .mod-intro-media{ order:-1; }
}


.mod-masonry{ column-count:1; column-gap:var(--space-5); }
@media (min-width:640px){ .mod-masonry{ column-count:2; } }
@media (min-width:1024px){ .mod-masonry{ column-count:3; } }
.mod-masonry-item{ break-inside:avoid; margin-bottom:var(--space-5); }

.mod-pattern-card{
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-lg);
  padding:var(--space-6); box-shadow:var(--shadow-md); transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.mod-section--light .mod-pattern-card{ background:var(--clr-light-surface); border-color:var(--clr-light-border); box-shadow:0 16px 40px -20px rgba(30,20,60,.25); }
.mod-pattern-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:color-mix(in oklch, var(--clr-secondary), transparent 55%); }
.mod-pattern-card-icon{
  width:52px; height:52px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center;
  background: color-mix(in oklch, var(--card-clr, var(--clr-primary)), transparent 82%);
  color:var(--card-clr, var(--clr-primary)); font-size:1.3rem; margin-bottom:var(--space-4);
}
.mod-pattern-card-tag{ display:inline-block; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--clr-text-mute); margin-bottom:var(--space-2); }
.mod-pattern-card-title{ font-size:var(--fs-h3); }
.mod-pattern-card-text{ font-size:.95rem; }
.mod-pattern-card-hint{ display:inline-flex; align-items:center; gap:.4rem; font-size:.85rem; color:var(--clr-secondary-soft); font-weight:600; cursor:help; margin-top:var(--space-2); }


.mod-blog-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:var(--space-6); }
.mod-blog-card{
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-md); transition:transform var(--transition), box-shadow var(--transition); display:flex; flex-direction:column;
}
.mod-blog-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.mod-blog-card-media{ aspect-ratio:16/10; overflow:hidden; }
.mod-blog-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.mod-blog-card:hover .mod-blog-card-media img{ transform:scale(1.06); }
.mod-blog-card-body{ padding:var(--space-6); display:flex; flex-direction:column; gap:var(--space-3); flex:1; }
.mod-blog-card-title{ font-size:1.15rem; }
.mod-blog-card-excerpt{ font-size:.92rem; flex:1; }
.mod-blog-card-link{
  background:none; border:none; color:var(--clr-secondary-soft); font-weight:700; display:inline-flex; align-items:center; gap:.5rem;
  padding:0; align-self:flex-start; transition:gap var(--transition), color var(--transition); font-size:.92rem;
}
.mod-blog-card-link:hover{ gap:.8rem; color:var(--clr-secondary); }


.mod-resources-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:var(--space-5); }
.mod-resource-card{
  background:var(--clr-surface-2); border:1px solid var(--clr-border); border-radius:var(--radius-lg); padding:var(--space-6);
  box-shadow:var(--shadow-md); transition:transform var(--transition), box-shadow var(--transition);
}
.mod-resource-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-glow-primary); }
.mod-resource-card-icon{
  width:56px; height:56px; border-radius:var(--radius-md); background:var(--gradient-primary); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:var(--space-4);
}
.mod-resource-card-title{ font-size:1.05rem; }
.mod-resource-card-text{ font-size:.9rem; }
.mod-resource-card-link{ font-weight:700; color:var(--clr-secondary-soft); display:inline-flex; align-items:center; gap:.5rem; font-size:.9rem; transition:gap var(--transition); }
.mod-resource-card-link:hover{ gap:.8rem; }


.mod-offer-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:var(--space-5); }
.mod-offer-card{
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-lg); padding:var(--space-6);
  box-shadow:var(--shadow-md); transition:transform var(--transition), box-shadow var(--transition);
}
.mod-offer-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.mod-offer-card-icon{ width:52px; height:52px; border-radius:var(--radius-md); background:color-mix(in oklch, var(--clr-secondary), transparent 82%); color:var(--clr-secondary-soft); display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:var(--space-4); }
.mod-offer-card h3{ font-size:1.1rem; }
.mod-offer-card p{ font-size:.92rem; }
.mod-offer-card span[data-tippy-content]{ font-size:.82rem; color:var(--clr-accent-soft); font-weight:600; cursor:help; }


.mod-cta-banner{ padding:var(--space-8) 0; background:var(--gradient-primary); position:relative; overflow:hidden; }
.mod-cta-banner::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 20% 20%, rgba(255,255,255,.18), transparent 55%); }
.mod-cta-banner-inner{ position:relative; text-align:center; display:flex; flex-direction:column; align-items:center; gap:var(--space-4); }
.mod-cta-banner-title{ font-size:var(--fs-h2); color:#fff; max-width:760px; }
.mod-cta-banner-text{ color:rgba(255,255,255,.85); max-width:56ch; }


.mod-timeline{ display:flex; flex-direction:column; gap:var(--space-6); }
.mod-timeline-item{ display:grid; grid-template-columns:70px 1fr; gap:var(--space-5); align-items:start; padding-bottom:var(--space-6); border-bottom:1px solid var(--clr-border-soft); }
.mod-timeline-item:last-child{ border-bottom:none; }
.mod-timeline-marker{
  width:56px; height:56px; border-radius:50%; background:var(--clr-surface-2); border:1px solid var(--clr-border);
  display:flex; align-items:center; justify-content:center; font-family:'Familjen Grotesk',sans-serif; font-weight:700; color:var(--clr-secondary-soft);
}
.mod-timeline-body h3{ font-size:1.15rem; }
.mod-timeline-body p{ font-size:.95rem; }
@media (max-width:640px){ .mod-timeline-item{ grid-template-columns:50px 1fr; } .mod-timeline-marker{ width:44px; height:44px; font-size:.85rem; } }


.mod-steps-list{ display:flex; flex-direction:column; gap:var(--space-5); }
.mod-step-item{
  display:grid; grid-template-columns:64px 1fr; gap:var(--space-5); align-items:start;
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-lg); padding:var(--space-6);
  box-shadow:var(--shadow-md); transition:transform var(--transition), box-shadow var(--transition);
}
.mod-step-item:hover{ transform:translateX(6px); box-shadow:var(--shadow-glow-primary); }
.mod-step-num{
  width:44px; height:44px; border-radius:50%; background:var(--gradient-primary); color:#fff; font-weight:700;
  display:flex; align-items:center; justify-content:center; font-family:'Familjen Grotesk',sans-serif; text-transform:uppercase; font-size:1.1rem;
}
.mod-step-body h3{ font-size:1.1rem; }
.mod-step-body p{ font-size:.94rem; margin-bottom:0; }
@media (max-width:600px){ .mod-step-item{ grid-template-columns:44px 1fr; padding:var(--space-5); } }


.mod-float-cta{
  position:fixed; right:var(--space-5); top:60%; transform:translateY(-50%); z-index:300;
}
.mod-float-cta a{
  display:flex; align-items:center; gap:.6rem; background:var(--clr-surface-2); border:1px solid var(--clr-border);
  padding:.85rem 1.2rem; border-radius:var(--radius-pill); box-shadow:var(--shadow-lg); font-weight:600; font-size:.9rem;
  transition:transform var(--transition), box-shadow var(--transition), background var(--transition);
}
.mod-float-cta a i{ color:var(--clr-secondary-soft); font-size:1.05rem; }
.mod-float-cta a:hover{ transform:translateY(-3px); box-shadow:var(--shadow-glow-accent); background:var(--clr-surface); }
.mod-float-cta span{ white-space:nowrap; }
@media (max-width:760px){
  .mod-float-cta{ right:var(--space-3); top:auto; bottom:100px; transform:none; }
  .mod-float-cta span{ display:none; }
  .mod-float-cta a{ padding:.9rem; border-radius:50%; }
}


.mod-footer{ background:color-mix(in oklch, var(--clr-bg), black 30%); padding-top:var(--space-8); border-top:1px solid var(--clr-border-soft); }
.mod-footer-inner{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:var(--space-6); padding-bottom:var(--space-7); }
.mod-footer-brand .mod-nav-logo{ margin-bottom:var(--space-3); }
.mod-footer-tag{ font-size:.88rem; color:var(--clr-text-mute); max-width:32ch; }
.mod-footer-col h4{ font-size:.85rem; text-transform:uppercase; letter-spacing:.1em; color:var(--clr-text-mute); margin-bottom:var(--space-4); }
.mod-footer-col a{ display:block; font-size:.92rem; color:var(--clr-text-dim); margin-bottom:var(--space-3); transition:color var(--transition); }
.mod-footer-col a:hover{ color:var(--clr-secondary-soft); }
address{ font-style:normal; font-size:.92rem; color:var(--clr-text-dim); line-height:1.9; }
.mod-footer-bottom{ border-top:1px solid var(--clr-border-soft); padding:var(--space-5) 0; font-size:.82rem; color:var(--clr-text-mute); }
@media (max-width:860px){ .mod-footer-inner{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .mod-footer-inner{ grid-template-columns:1fr; } }


.mod-modal-backdrop{ position:fixed; inset:0; background:rgba(6,7,12,.7); backdrop-filter:blur(4px); opacity:0; visibility:hidden; transition:opacity var(--transition); z-index:700; }
.mod-modal-backdrop.is-open{ opacity:1; visibility:visible; }
.mod-modal{
  position:fixed; inset:0; display:flex; align-items:center; justify-content:center; padding:var(--space-4); z-index:701;
  opacity:0; visibility:hidden; transition:opacity var(--transition), visibility var(--transition);
}
.mod-modal.is-open{ opacity:1; visibility:visible; }
.mod-modal-panel{
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-lg); max-width:640px; width:100%;
  max-height:82vh; overflow-y:auto; padding:var(--space-7); position:relative; box-shadow:var(--shadow-lg);
  transform:translateY(20px) scale(.98); transition:transform var(--transition);
}
.mod-modal.is-open .mod-modal-panel{ transform:translateY(0) scale(1); }
.mod-modal-close{
  position:absolute; top:var(--space-4); right:var(--space-4); width:40px; height:40px; border-radius:50%;
  background:var(--clr-surface-2); border:1px solid var(--clr-border); color:var(--clr-ink); display:flex; align-items:center; justify-content:center;
  transition:background var(--transition), transform var(--transition);
}
.mod-modal-close:hover{ background:color-mix(in oklch, var(--clr-accent), transparent 80%); transform:rotate(90deg); }
.mod-modal-body h3{ font-size:1.4rem; }
.mod-modal-body p{ font-size:.98rem; }


.mod-contact-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:var(--space-7); align-items:start; }
.mod-contact-side{ display:flex; flex-direction:column; gap:var(--space-5); }
.mod-contact-card{
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-lg); padding:var(--space-6); box-shadow:var(--shadow-md);
}
.mod-contact-list li{ display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-3); font-size:.95rem; }
.mod-contact-list i{ width:20px; color:var(--clr-secondary-soft); }
.mod-news-item{ padding:var(--space-3) 0; border-bottom:1px solid var(--clr-border-soft); }
.mod-news-item:last-child{ border-bottom:none; padding-bottom:0; }
.mod-news-date{ font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--clr-secondary-soft); }
.mod-news-item p{ font-size:.9rem; margin-top:var(--space-1); margin-bottom:0; }

.mod-contact-form-wrap{
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-lg); padding:var(--space-7); box-shadow:var(--shadow-lg);
}
.mod-wizard-steps-indicator{ display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-6); }
.mod-wizard-dot{
  width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700;
  background:var(--clr-surface-2); border:1px solid var(--clr-border); color:var(--clr-text-mute); font-size:.9rem;
  transition:background var(--transition), color var(--transition), box-shadow var(--transition);
}
.mod-wizard-dot.is-active{ background:var(--gradient-primary); color:#fff; box-shadow:var(--shadow-glow-primary); }
.mod-wizard-dot.is-done{ background:var(--clr-secondary-soft); color:var(--clr-bg); }
.mod-wizard-form{ position:relative; overflow:hidden; }
.mod-wizard-step{ display:none; flex-direction:column; gap:var(--space-4); animation: mod-fade-in .4s var(--ease); }
.mod-wizard-step.is-active{ display:flex; }
@keyframes mod-fade-in{ from{ opacity:0; transform:translateX(16px); } to{ opacity:1; transform:translateX(0); } }
.mod-wizard-step h3{ font-size:1.1rem; margin-bottom:0; }
.mod-wizard-step label{ display:flex; flex-direction:column; gap:.5rem; font-size:.88rem; font-weight:600; color:var(--clr-text-dim); }
.mod-wizard-step input[type=text], .mod-wizard-step input[type=email], .mod-wizard-step input[type=tel],
.mod-wizard-step select, .mod-wizard-step textarea{
  background:var(--clr-bg-alt); border:1px solid var(--clr-border); border-radius:var(--radius-sm); padding:.85rem 1rem;
  color:var(--clr-ink); font-size:.95rem; font-weight:400; transition:border-color var(--transition), box-shadow var(--transition);
  min-height:44px;
}
.mod-wizard-step input:focus, .mod-wizard-step select:focus, .mod-wizard-step textarea:focus{
  outline:none; border-color:var(--clr-secondary-soft); box-shadow:0 0 0 3px color-mix(in oklch, var(--clr-secondary), transparent 75%);
}
.mod-wizard-checkbox{ flex-direction:row !important; align-items:flex-start; gap:.7rem !important; font-weight:400 !important; }
.mod-wizard-checkbox input{ margin-top:.2rem; width:18px; height:18px; accent-color:var(--clr-primary); flex-shrink:0; }
.mod-wizard-checkbox a{ color:var(--clr-secondary-soft); font-weight:600; }
.mod-wizard-actions{ display:flex; align-items:center; justify-content:space-between; margin-top:var(--space-2); gap:var(--space-3); }

.mod-map-frame{ width:100%; height:400px; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid var(--clr-light-border); }

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


.mod-legal-stack{ display:flex; flex-direction:column; gap:var(--space-6); max-width:840px; }
.mod-legal-card{
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-lg); padding:var(--space-7);
  box-shadow:var(--shadow-md);
}
.mod-legal-card h2{ font-size:1.25rem; color:var(--clr-secondary-soft); }
.mod-legal-card p{ font-size:.95rem; max-width:none; }


.mod-thanks{ min-height:80vh; display:flex; align-items:center; padding:var(--space-9) 0; background:var(--gradient-dark); }
.mod-thanks-inner{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:var(--space-4); }
.mod-thanks-title{ font-size:var(--fs-h1); color:#fff; }
.mod-thanks-text{ color:rgba(255,255,255,.8); max-width:52ch; }

.mod-envelope{ position:relative; width:180px; height:120px; margin-bottom:var(--space-6); }
.mod-envelope-body{
  position:absolute; inset:0; top:30px; background:var(--clr-surface-2); border-radius:var(--radius-sm);
  box-shadow:var(--shadow-lg); overflow:visible; border:1px solid var(--clr-border);
}
.mod-envelope-body::before, .mod-envelope-body::after{
  content:''; position:absolute; top:0; width:0; height:0;
  border-style:solid;
}
.mod-envelope-body::before{ left:0; border-width:45px 90px 0 0; border-color:transparent color-mix(in oklch, var(--clr-primary), black 20%) transparent transparent; }
.mod-envelope-body::after{ right:0; border-width:0 90px 45px 0; border-color:transparent transparent transparent color-mix(in oklch, var(--clr-primary), black 10%); }
.mod-envelope-flap{
  position:absolute; top:-30px; left:0; width:0; height:0;
  border-style:solid; border-width:0 90px 30px 90px; border-color:transparent transparent var(--clr-primary) transparent;
  transform-origin:top center; transform:rotateX(0deg); animation: mod-flap-open 1.4s var(--ease) forwards; animation-delay:.3s;
  z-index:3;
}
.mod-envelope-letter{
  position:absolute; left:22px; right:22px; bottom:36px; height:70px; background:linear-gradient(180deg,#fff, #eceefb);
  border-radius:6px 6px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.2); z-index:2;
  transform:translateY(0); animation: mod-letter-rise 1.4s var(--ease) forwards; animation-delay:.9s;
}
@keyframes mod-flap-open{ from{ transform:rotateX(0deg); } to{ transform:rotateX(180deg); } }
@keyframes mod-letter-rise{ from{ transform:translateY(0); } to{ transform:translateY(-58px); } }


.tippy-box[data-theme~='custom']{
  background:var(--clr-surface-2); color:var(--clr-ink); border:1px solid var(--clr-border); border-radius:var(--radius-sm);
  font-size:.85rem; box-shadow:var(--shadow-md); padding:.2rem;
}
.tippy-box[data-theme~='custom'][data-placement^='top'] > .tippy-arrow::before{ border-top-color:var(--clr-surface-2); }
.tippy-box[data-theme~='custom'][data-placement^='bottom'] > .tippy-arrow::before{ border-bottom-color:var(--clr-surface-2); }


.mod-cookie-pill{
  position:fixed; bottom:var(--space-5); left:50%; transform:translateX(-50%) translateY(140%); z-index:800;
  display:flex; align-items:center; gap:var(--space-4); background:var(--clr-surface-2); border:1px solid var(--clr-border);
  padding:.8rem 1rem .8rem 1.4rem; border-radius:var(--radius-pill); box-shadow:var(--shadow-lg); max-width:min(560px, 92vw);
  transition:transform .5s var(--ease), opacity .4s var(--ease);
}
.mod-cookie-pill.is-visible{ transform:translateX(-50%) translateY(0); }
.mod-cookie-pill p{ font-size:.85rem; margin:0; color:var(--clr-text-dim); max-width:none; }
.mod-cookie-pill-actions{ display:flex; gap:.5rem; flex-shrink:0; }
.mod-cookie-btn{ border-radius:var(--radius-pill); padding:.55rem 1rem; font-size:.82rem; font-weight:700; border:1px solid transparent; transition:transform var(--transition), box-shadow var(--transition), background var(--transition); min-height:38px; }
.mod-cookie-btn-primary{ background:var(--gradient-primary); color:#fff; box-shadow:var(--shadow-glow-primary); }
.mod-cookie-btn-primary:hover{ transform:translateY(-2px); }
.mod-cookie-btn-ghost{ background:transparent; border-color:var(--clr-border); color:var(--clr-ink); }
.mod-cookie-btn-ghost:hover{ background:var(--clr-surface); }

.mod-cookie-modal{
  position:fixed; bottom:var(--space-5); left:50%; transform:translateX(-50%) scale(.9) translateY(20px); z-index:801;
  background:var(--clr-surface); border:1px solid var(--clr-border); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg);
  width:min(480px, 92vw); padding:var(--space-6); opacity:0; visibility:hidden; pointer-events:none;
  transition:transform .45s var(--ease), opacity .35s var(--ease), visibility .35s;
  max-height:80vh; overflow-y:auto;
}
.mod-cookie-modal.is-open{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) scale(1) translateY(0); }
.mod-cookie-modal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-2); }
.mod-cookie-modal-head h3{ font-size:1.15rem; margin:0; }
.mod-cookie-modal-head button{ background:var(--clr-surface-2); border:1px solid var(--clr-border); width:34px; height:34px; border-radius:50%; color:var(--clr-ink); display:flex; align-items:center; justify-content:center; }
.mod-cookie-modal-lead{ font-size:.88rem; color:var(--clr-text-mute); }
.mod-cookie-category{ padding:var(--space-3) 0; border-top:1px solid var(--clr-border-soft); }
.mod-cookie-category-head{ display:flex; align-items:center; justify-content:space-between; font-weight:700; font-size:.92rem; margin-bottom:.3rem; }
.mod-cookie-category p{ font-size:.82rem; margin:0; color:var(--clr-text-mute); }
.mod-cookie-category input{ width:20px; height:20px; accent-color:var(--clr-primary); }
.mod-cookie-modal-actions{ display:flex; justify-content:flex-end; gap:.6rem; margin-top:var(--space-5); }

@media (max-width:640px){
  .mod-cookie-pill{ flex-direction:column; align-items:stretch; padding:1rem 1.2rem; border-radius:var(--radius-lg); }
  .mod-cookie-pill-actions{ justify-content:flex-end; }
}


@media (max-width:1024px){
  .mod-section{ padding:var(--space-8) 0; }
}
@media (max-width:640px){
  .mod-hero-content{ padding-top:6.5rem; }
  .mod-wizard-actions{ flex-direction:column-reverse; align-items:stretch; }
  .mod-wizard-actions .mod-btn{ justify-content:center; width:100%; }
}