:root{
  --navy:#214574;
  --navy2:#102846;
  --ink:#101722;
  --muted:#647084;
  --mint:#9bd6cc;
  --cyan:#49c4d7;
  --yellow:#ffd35a;
  --orange:#ff8a63;
  --pink:#ef4c9b;
  --purple:#7d4de2;
  --violet:#4e42d9;
  --white:#fff;
  --cream:#f8f7f2;
  --line:rgba(16,23,34,.12);
  --shadow:0 24px 70px rgba(16,40,70,.14);
  --radius:28px;
  --max:1440px;
}
*{box-sizing:border-box}

/* =========================
   RESPONSIVE WIDTH SAFETY
   ========================= */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

body{
  min-width:0;
}

section,
header,
footer,
main,
nav,
aside,
div{
  max-width:100%;
}

img,
video,
iframe,
svg,
canvas{
  max-width:100%;
}

.hero,
.overview-grid,
.service-grid,
.structure,
.category-grid,
.format-grid,
.gallery-grid,
.edition-grid,
.included-grid,
.included-list,
.clients-head,
.client-wall,
.contact{
  min-width:0;
  width:100%;
}

.hero > *,
.overview-grid > *,
.service-grid > *,
.structure > *,
.category-grid > *,
.format-grid > *,
.gallery-grid > *,
.edition-grid > *,
.included-list > *,
.contact > *{
  min-width:0;
}
html{scroll-behavior:smooth}
body{margin:0;font-family:"DM Sans",Arial,sans-serif;color:var(--ink);background:var(--cream);font-size:17px;line-height:1.55}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button{font:inherit}
.site-header{position:fixed;z-index:1000;top:0;left:0;right:0;height:78px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;gap:28px;background:rgba(16,40,70,.78);backdrop-filter:blur(18px);color:white;border-bottom:1px solid rgba(255,255,255,.12)}
.brand img{width:112px;height:auto}
.nav{display:flex;gap:26px;font-size:14px;font-weight:700;letter-spacing:.02em}
.nav a{opacity:.78;transition:.2s}
.nav a:hover{opacity:1}
.header-cta{background:white;color:var(--navy);padding:11px 17px;border-radius:999px;font-weight:800;font-size:14px}
.header-cta span,.btn span{margin-left:8px}
.menu-btn{display:none;background:none;border:0;color:white;padding:8px}
.menu-btn span{display:block;width:26px;height:2px;background:white;margin:5px}

.section{padding:clamp(80px,9vw,150px) 6vw;position:relative;overflow:hidden}
.section-dark{background:var(--navy);color:white}
.section-gradient{background:linear-gradient(120deg,#b8e4dc 0%,#f5f0e9 37%,#ffd85e 65%,#ef4c9b 100%);color:var(--ink)}
.kicker,.eyebrow{font-size:13px;letter-spacing:.15em;font-weight:800;margin:0 0 18px;text-transform:uppercase}
.kicker{color:var(--navy)}
.section-dark .kicker{color:#a9e2d8}
h1,h2,h3{font-family:"Space Grotesk","DM Sans",sans-serif;line-height:1.02;margin:0}
h1{font-size:clamp(50px,7vw,110px);letter-spacing:-.065em;max-width:950px}
h1 em{font-style:normal;color:#9ee1d4}
h2{font-size:clamp(42px,5.5vw,78px);letter-spacing:-.055em}
h2 span{color:var(--navy);position:relative}
.section-dark h2 span{color:#9ee1d4}
h3{font-size:24px;letter-spacing:-.025em}
p{margin:0 0 1em}
.section-intro{max-width:1000px;margin-bottom:70px}
.section-intro .section-sub{max-width:850px;margin-top:26px;font-size:20px}
.centered{text-align:center;margin-left:auto;margin-right:auto}
.centered .section-sub{margin-left:auto;margin-right:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:15px 22px;font-weight:800;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.14)}
.btn-light{background:white;color:var(--navy)}
.btn-dark{background:var(--navy);color:white}
.text-link{font-weight:800;padding:14px 2px}
.hero{min-height:100vh;padding:150px 6vw 90px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:5vw;position:relative}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(to bottom,black,transparent 85%);pointer-events:none}
.hero-orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.65;pointer-events:none}
.orb-a{width:550px;height:550px;background:radial-gradient(circle,#7c4ce5,transparent 67%);top:-180px;right:-100px}
.orb-b{width:450px;height:450px;background:radial-gradient(circle,#ef4c9b,transparent 68%);bottom:-200px;left:-130px}
.hero-copy,.hero-art,.hero-grid{z-index:1}
.hero-lead{font-size:20px;max-width:670px;color:rgba(255,255,255,.78);margin-top:28px}
.hero-actions{display:flex;gap:26px;align-items:center;margin-top:34px;flex-wrap:wrap}
.hero-art{min-height:600px;position:relative;display:flex;align-items:center;justify-content:center}
.hero-question{width:min(480px,80%);aspect-ratio:1/1.12;border-radius:42px;background:linear-gradient(145deg,#ffcb50,#f24a99 53%,#6544dc);box-shadow:0 35px 100px rgba(0,0,0,.34);padding:26px;transform:rotate(4deg);position:relative;overflow:hidden}
.hero-question:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.16);right:-90px;bottom:-90px}
.question-top,.hero-question-bottom{display:flex;justify-content:space-between;font-size:12px;font-weight:900;letter-spacing:.14em}
.giant-q{font-family:"Space Grotesk";font-size:clamp(220px,27vw,390px);line-height:.9;font-weight:700;text-align:center;margin-top:40px;color:white;text-shadow:8px 12px 0 rgba(33,69,116,.3)}
.hero-question-bottom{position:absolute;bottom:24px;left:26px;right:26px}
.question-card{position:absolute;z-index:4;width:190px;padding:20px;border-radius:20px;color:var(--navy);background:white;box-shadow:0 20px 45px rgba(0,0,0,.25)}
.question-card span{font-size:12px;font-weight:900;opacity:.55}
.question-card strong{display:block;font-family:"Space Grotesk";font-size:18px;line-height:1.05;margin-top:8px}
.question-card i{position:absolute;right:15px;top:12px;font-style:normal;font-size:25px}
.f1{left:0;top:12%;transform:rotate(-8deg);background:#9ee1d4}
.f2{right:0;bottom:12%;transform:rotate(8deg);background:#ffd35a}
.spark{position:absolute;font-size:38px;color:#9ee1d4}
.s1{top:8%;right:13%}.s2{bottom:18%;left:10%;color:#ffd35a}.s3{top:28%;left:4%;color:#ef4c9b}
.scroll-cue{position:absolute;bottom:28px;left:6vw;display:flex;gap:12px;align-items:center;font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.6}
.overview{background:var(--cream)}
.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:7vw;max-width:1280px;margin:auto}
.overview-text{font-size:20px;max-width:650px}
.large-copy{font-size:clamp(26px,2.6vw,38px);line-height:1.25;letter-spacing:-.025em;color:var(--navy)}
.benefit-panel{background:var(--navy);color:white;border-radius:32px;padding:42px;box-shadow:var(--shadow)}
.panel-label{font-size:12px;font-weight:900;letter-spacing:.14em;color:#9ee1d4;margin-bottom:24px}
.benefit{padding:17px 0;border-top:1px solid rgba(255,255,255,.18);display:grid;grid-template-columns:1fr 1.4fr;gap:20px}
.benefit b{font-family:"Space Grotesk";font-size:18px;color:#9ee1d4}.benefit span{color:rgba(255,255,255,.78)}
.service{background:linear-gradient(135deg,#9ed9cf 0%,#bfe7df 26%,#f9f4e9 50%,#ffce58 78%,#ed4c99 100%)}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1300px;margin:auto}
.service-card{background:rgba(255,255,255,.73);border:1px solid rgba(255,255,255,.85);border-radius:26px;padding:30px;min-height:280px;position:relative;box-shadow:0 18px 45px rgba(33,69,116,.08)}
.service-card .num{display:inline-flex;width:40px;height:40px;border-radius:50%;background:var(--navy);color:white;align-items:center;justify-content:center;font-weight:800;margin-bottom:30px}
.service-card h3{color:var(--navy);margin-bottom:16px}
.service-card p{color:#3f4c5d}
.structure{background:white;display:grid;grid-template-columns:.7fr 1.3fr;gap:6vw}
.structure-side{position:sticky;top:120px;height:max-content}
.structure-side p:last-child{max-width:420px;margin-top:30px;color:var(--muted);font-size:19px}
.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.category-card{min-height:245px;border-radius:24px;padding:25px;position:relative;overflow:hidden;border:1px solid rgba(0,0,0,.05);box-shadow:0 14px 35px rgba(0,0,0,.06)}
.category-card span{font-size:12px;font-weight:900;opacity:.5}
.cat-icon{position:absolute;right:22px;top:18px;width:48px;height:48px;border-radius:14px;background:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:800}
.category-card h3{font-size:22px;max-width:220px;margin-top:55px}.category-card p{font-size:15px;max-width:260px}
.c1{background:#ffd09a}.c2{background:#ffd45b}.c3{background:#56c8d7}.c4{background:#c9df73}.c5{background:#c99bd0}.c6{background:#a99bce}.c7{background:#ee8fa9}.c8{background:#67c7b9}.c9{background:#f47c85}
.format{background:var(--navy)}
.format-grid{display:grid;grid-template-columns:repeat(5,1fr);max-width:1400px;margin:auto;gap:0;border-radius:32px;overflow:hidden}
.format-card{padding:32px 25px;min-height:410px;color:var(--navy);position:relative}
.format-card h3{margin-top:65px;font-size:23px}.format-card p{margin-top:15px}
.format-number{font-size:12px;font-weight:900;opacity:.65}.format-icon{position:absolute;top:48px;left:25px;font-size:36px}
.fc1{background:#c8e36e}.fc2{background:#ef8fb3}.fc3{background:#ffd05e}.fc4{background:#bf91c8}.fc5{background:#55c6d8}
.gallery-section{background:#f4f3ee}
.gallery-head{display:grid;grid-template-columns:1fr .65fr;gap:7vw;align-items:end;margin-bottom:45px}.gallery-head p{color:var(--muted);font-size:18px;max-width:500px}
 .gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  width:100%;
  max-width:1400px;
  margin:0 auto
}
.gallery-item{
  position:relative;
  width:100%;
  aspect-ratio:4 / 3;
  min-width:0;
  padding:0;
  border:0;
  overflow:hidden;
  border-radius:18px;
  background:linear-gradient(135deg,#214574,#ef4c99);
  cursor:pointer
}
.gallery-item img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  transition:transform .5s ease
}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-item span{
  position:absolute;
  left:14px;
  bottom:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:36px;
  padding:0 9px;
  background:rgba(255,255,255,.95);
  color:var(--navy);
  border-radius:999px;
  font-size:11px;
  font-weight:900
}
.gallery-item.placeholder:before{
  content:"ADD PHOTO";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:white;
  font-weight:900;
  letter-spacing:.12em;
  font-size:12px
}
.social-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:28px}.social-row>span{font-weight:800;margin-right:auto;color:var(--navy)}
.social{display:inline-flex;align-items:center;gap:8px;padding:11px 15px;border-radius:999px;color:white;font-weight:800;font-size:14px}.social b{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,.22)}
.youtube{background:#ff0033}.linkedin{background:#0a66c2}.tiktok{background:#111}.instagram{background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045)}
.editions{background:linear-gradient(135deg,#9ed9cf 0%,#eaf0eb 30%,#ffcf58 68%,#ef4c99 100%)}
.edition-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:1250px;margin:auto}
.edition-card{background:white;border-radius:32px;overflow:hidden;box-shadow:0 24px 65px rgba(33,69,116,.15)}
.edition-image{height:300px;position:relative;background:linear-gradient(135deg,#214574,#7d4de2,#ef4c99);padding:22px}
.online .edition-image{background:linear-gradient(135deg,#49c4d7,#4e42d9,#214574)}
.image-slot{height:100%;border:2px dashed rgba(255,255,255,.65);border-radius:22px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:white;letter-spacing:.1em;font-weight:900}
.image-slot small{font-size:10px;opacity:.65;margin-top:7px;letter-spacing:0}
.edition-tag{position:absolute;top:25px;right:25px;background:white;color:var(--navy);border-radius:999px;padding:8px 12px;font-size:11px;font-weight:900}
.edition-body{padding:35px}.edition-index{font-size:12px;font-weight:900;color:var(--pink);letter-spacing:.12em}.edition-body h3{font-size:36px;color:var(--navy);margin:10px 0 15px}.edition-body p{color:var(--muted);font-size:17px}
.edition-body ul{padding-left:20px;color:var(--ink)}.edition-body li{margin:7px 0}
 .included{background:white}
.included-grid{
  width:100%;
  max-width:1400px;
  margin:0 auto
}
.included-list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  column-gap:60px;
  row-gap:0
}
.include-item{
  display:grid;
  grid-template-columns:50px 1fr;
  gap:18px;
  padding:28px 0;
  border-top:1px solid var(--line);
  min-width:0
}
.include-item>span{
  font-weight:900;
  color:var(--pink);
  font-family:"Space Grotesk",sans-serif;
  font-size:14px
}
.include-item h3{
  font-size:20px;
  color:var(--navy);
  margin:0 0 7px
}
.include-item p{
  color:var(--muted);
  margin:0;
  font-size:15px;
  line-height:1.55
}
.clients{background:var(--navy);color:white}.clients-head{display:grid;grid-template-columns:1fr .55fr;gap:7vw;align-items:end;margin-bottom:55px}.clients-head p{color:rgba(255,255,255,.7);font-size:18px}.client-wall{background:white;border-radius:36px;padding:45px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;box-shadow:var(--shadow)}
.client-logo{min-height:150px;border:1px solid #e6e7e9;border-radius:20px;display:flex;align-items:center;justify-content:center;padding:24px;background:#fff}.client-logo img{max-height:70px;max-width:80%;object-fit:contain}.client-logo span{font-family:"Space Grotesk";font-weight:800;color:#53606d;text-align:center}
.contact{display:grid;grid-template-columns:1fr .65fr;gap:7vw;align-items:center}
.contact-copy{max-width:750px}.contact-copy>p:not(.kicker){font-size:21px;max-width:620px;color:#394454;margin-top:25px}.contact-details{margin-top:35px;display:grid;gap:10px}.contact-details a{font-family:"Space Grotesk";font-size:22px;color:var(--navy);font-weight:700}.contact-details span{display:inline-block;width:75px;font-family:"DM Sans";font-size:11px;letter-spacing:.12em;color:var(--pink)}
.contact-card{background:var(--navy);color:white;border-radius:36px;padding:34px;min-height:500px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow);transform:rotate(2deg)}.contact-card-top{display:flex;justify-content:space-between;font-size:11px;font-weight:900;letter-spacing:.12em;color:#9ee1d4}.contact-mark{font-family:"Space Grotesk";font-size:180px;line-height:.7;font-weight:800;color:#ef4c99}.contact-mark span{color:#ffd35a}.contact-card p{font-size:18px;color:rgba(255,255,255,.75)}
.footer{background:#0d2138;color:rgba(255,255,255,.68);padding:26px 6vw;display:flex;align-items:center;gap:25px;font-size:13px}.footer img{width:100px}.footer a{margin-left:auto;color:white;font-weight:800}
.lightbox{position:fixed;z-index:2000;inset:0;background:rgba(6,15,28,.94);display:none;align-items:center;justify-content:center;padding:50px}.lightbox.open{display:flex}.lightbox img{max-width:min(1200px,90vw);max-height:85vh;object-fit:contain;border-radius:16px}.lightbox-close{position:absolute;top:22px;right:30px;border:0;background:white;color:var(--navy);width:46px;height:46px;border-radius:50%;font-size:28px;cursor:pointer}.lightbox-caption{position:absolute;bottom:22px;color:white;font-weight:800;letter-spacing:.1em}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}

@media(max-width:1100px){
  .nav{display:none}.header-cta{margin-left:auto}.menu-btn{display:block}
  .hero{grid-template-columns:1fr;padding-top:130px}.hero-art{min-height:520px;max-width:760px;width:100%;margin:auto}
  .overview-grid,.contact{grid-template-columns:1fr}.structure{grid-template-columns:1fr}.structure-side{position:relative;top:auto}
  .category-grid,.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .format-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .format-card{min-width:0;min-height:330px}
  .fc5{grid-column:span 2}
  .gallery-head,.clients-head{grid-template-columns:1fr}.client-wall{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  body{
    font-size:16px;
    overflow-x:hidden;
  }

  .site-header{
    width:100%;
    height:68px;
    padding:0 20px;
  }

  .brand img{
    width:94px;
    max-width:100%;
  }

  .header-cta{
    display:none;
  }

  .section{
    width:100%;
    max-width:100%;
    padding:75px 20px;
    overflow:hidden;
  }

  .hero{
    width:100%;
    min-width:0;
    min-height:auto;
    padding:115px 20px 80px;
    overflow:hidden;
  }

  .hero-copy,
  .hero-art,
  .hero-image-wrap{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .hero-art{
    min-height:420px;
  }

  .hero-question{
    width:78%;
    max-width:100%;
    border-radius:28px;
  }

  .giant-q{
    font-size:220px;
    margin-top:45px;
  }

  .question-card{
    width:145px;
    max-width:42%;
    padding:15px;
  }

  .question-card strong{
    font-size:14px;
  }

  .f1{left:-5px}
  .f2{right:-5px}

  h1{
    font-size:clamp(48px,14vw,72px);
    max-width:100%;
  }

  h2{
    font-size:clamp(40px,12vw,60px);
    max-width:100%;
  }

  .hero-lead{
    font-size:18px;
    max-width:100%;
  }

  .overview-grid,
  .service-grid,
  .category-grid,
  .edition-grid,
  .included-list{
    grid-template-columns:1fr;
    width:100%;
    min-width:0;
  }

  .benefit{
    grid-template-columns:1fr;
    gap:6px;
  }

  .benefit-panel{padding:25px}

  .category-card{
    min-height:220px;
    min-width:0;
  }

  .format-grid{
    grid-template-columns:1fr;
    width:100%;
  }

  .format-card,
  .fc5{
    grid-column:auto;
    min-height:270px;
    min-width:0;
  }

  /* GALLERY */
  .gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }

  .gallery-item{
    width:100%;
    aspect-ratio:4 / 3;
    border-radius:12px;
  }

  .gallery-item span{
    left:8px;
    bottom:8px;
    min-width:30px;
    height:30px;
    font-size:10px;
  }

  /* INCLUDED */
  .included-grid{
    width:100%;
    min-width:0;
  }

  .include-item{
    grid-template-columns:38px minmax(0,1fr);
    gap:14px;
    padding:22px 0;
    min-width:0;
  }

  .include-item h3,
  .include-item p{
    overflow-wrap:anywhere;
  }

  .include-item h3{font-size:19px}
  .include-item p{font-size:15px}

  .edition-image{height:250px}
  .edition-body{padding:26px}
  .edition-body h3{font-size:32px}

  .client-wall{
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding:14px;
    gap:10px;
  }

  .client-logo{
    min-height:120px;
    padding:15px;
    min-width:0;
  }

  .client-logo img{max-height:52px}

  .contact{
    grid-template-columns:1fr;
    width:100%;
  }

  .contact-copy{
    max-width:100%;
    min-width:0;
  }

  .contact-details{
    width:100%;
    min-width:0;
  }

  .contact-details a{
    font-size:20px;
    overflow-wrap:anywhere;
  }

  .contact-card{
    width:100%;
    max-width:100%;
    min-height:390px;
    padding:28px;
    transform:none;
  }

  .contact-mark{
    font-size:125px;
    max-width:100%;
    overflow:hidden;
  }

  .footer{
    width:100%;
    max-width:100%;
    padding:22px 20px;
    flex-wrap:wrap;
  }

  .footer a{margin-left:0}

  .social-row{
    align-items:flex-start;
    max-width:100%;
  }

  .social-row>span{
    width:100%;
    margin-bottom:5px;
  }

  .social{
    max-width:100%;
  }
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{transition:none}.gallery-item img,.btn{transition:none}}
.hero-art {
  width: 100%;
  max-width: 650px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-image-wrap {
  width: 100%;
  max-width: 620px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.hero-image {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
  object-fit: contain;
  border-radius: 30px;
}

@media (max-width: 700px) {

  .hero-art {
    width: 100%;
    max-width: 480px;
    margin-top: 35px;
  }

  .hero-image-wrap {
    width: 92%;
    max-width: 430px;
  }

  .hero-image {
    width: 100%;
    height: auto;
    border-radius: 22px;
  }

}
.social-row {
  position: relative;
  z-index: 20;
}

.social {
  position: relative;
  z-index: 21;
  cursor: pointer;
  pointer-events: auto;
}
.edition-image {
  height: 300px;
  position: relative;
  overflow: hidden;
  background: #214574;
}

.edition-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


/* Final protection against long content */
.kicker,
.eyebrow,
p,
h1,
h2,
h3,
a,
button,
span{
  overflow-wrap:anywhere;
}
