
:root {
  --c-primary:#333333;
  --c-deep:oklch(17.0% 0.16 0.0);
  --c-soft:oklch(21.6% 0.12 0.0);
  --c-border:oklch(14.0% 0.18 0.0);
  --c-ink:oklch(96% 0.02 0.0);
  --c-ink-soft:oklch(85% 0.02 0.0);
  --c-accent:oklch(98% 0.01 0.0);
  --c-accent-ink:oklch(15% 0.05 0.0);
  --corner-btn:4px;
  --container:1280px;
  --gap:clamp(2rem, 5vw, 5rem);
}
* {
  box-sizing:border-box;
  margin:0;
  padding:0
}
html {
  scroll-behavior:smooth
}
body {
  font-family:'Be Vietnam Pro',system-ui,-apple-system,sans-serif;
  font-weight:400;
  line-height:1.55;
  color:var(--c-ink);
  background:var(--c-primary);
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}
img {
  max-width:100%;
  height:auto;
  display:block
}
a {
  color:var(--c-ink);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:border-color .15s ease
}
a:hover {
  border-bottom-color:var(--c-ink)
}
.holder {
  max-width:var(--container);
  margin:0 auto;
  padding:0 clamp(1rem,4vw,2.5rem)
}
/* display family for big headlines */
h1,h2,h3,h4 {
  font-family:'Bricolage Grotesque','Be Vietnam Pro',system-ui,sans-serif;
  font-weight:800;
  line-height:1.05;
  color:var(--c-ink);
  letter-spacing:-0.025em
}
h1 {
  font-size:clamp(2.6rem,7vw,5.5rem)
}
h2 {
  font-size:clamp(2rem,4.5vw,3.4rem);
  margin-bottom:1rem
}
h3 {
  font-size:clamp(1.3rem,2.2vw,1.6rem);
  font-weight:700;
  line-height:1.2
}
p {
  margin-bottom:1rem;
  color:var(--c-ink-soft)
}
.lead {
  font-size:1.2rem;
  color:var(--c-ink-soft);
  max-width:680px
}
/* eyebrow */
.eyebrow-row {
  display:flex;
  align-items:center;
  gap:1rem;
  margin-bottom:2rem
}
.eyebrow-label {
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.82rem;
  font-weight:700;
  color:var(--c-ink);
  white-space:nowrap
}
.eyebrow-line {
  flex:1;
  height:1px;
  background:var(--c-ink);
  opacity:0.25
}
/* header */
.site-header-d {
  position:sticky;
  top:0;
  z-index:50;
  background:var(--c-primary);
  border-bottom:1px solid var(--c-border)
}
.nav-d-wrap {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.1rem 0
}
.brand-d {
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:800;
  font-size:1.3rem;
  color:var(--c-ink);
  border:0
}
.brand-d:hover {
  border:0
}
.brand-d-big {
  font-size:1.8rem
}
.nav-d-desktop {
  display:flex;
  gap:1.8rem;
  align-items:center
}
.nav-d-desktop a {
  color:var(--c-ink);
  font-weight:500;
  font-size:0.97rem;
  border:0;
  position:relative
}
.nav-d-desktop a:hover {
  border:0
}
.nav-d-desktop a:hover::after {
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-4px;
  height:1.5px;
  background:var(--c-ink)
}
.burger-d {
  display:none;
  background:none;
  border:0;
  cursor:pointer;
  width:32px;
  height:32px;
  flex-direction:column;
  justify-content:space-around;
  padding:6px
}
.burger-d span {
  display:block;
  height:2px;
  background:var(--c-ink);
  width:100%
}
.nav-d-mobile {
  display:none;
  flex-direction:column;
  padding:1rem;
  border-top:1px solid var(--c-border)
}
.nav-d-mobile a {
  padding:0.7rem 0;
  color:var(--c-ink);
  font-size:1.1rem;
  border:0
}
.nav-d-mobile.unfolded {
  display:flex
}
@media(max-width:860px) {
  .nav-d-desktop {
  display:none
}
.burger-d {
  display:flex
}

}
/* header — centered variant */
.header-d-centered .nav-d-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:1.2rem 0 0.4rem
}
.header-d-centered .nav-d-below {
  justify-content:center;
  gap:2.5rem;
  padding:0.5rem 0 1rem
}
@media(max-width:860px) {
  .header-d-centered .nav-d-below {
  display:none
}

}
/* header — clean variant — no border-bottom */
.header-d-clean {
  border-bottom:0
}
/* header — tall variant */
.header-d-tall .nav-d-tall-wrap {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.8rem 0;
  gap:2rem
}
.header-d-tall .nav-d-tall-right {
  display:flex;
  align-items:center;
  gap:2rem
}
/* buttons */
.action-btn {
  display:inline-block;
  padding:0.95rem 1.7rem;
  border-radius:var(--corner-btn);
  font-weight:600;
  text-align:center;
  cursor:pointer;
  border:1.5px solid transparent;
  transition:transform .12s ease, background .15s ease;
  font-size:1rem;
  text-decoration:none;
  line-height:1
}
.action-btn:hover {
  transform:translateY(-1px);
  border-color:transparent
}
.btn-sm {
  padding:0.6rem 1.1rem;
  font-size:0.92rem
}
.btn-accent {
  background:var(--c-accent);
  color:var(--c-accent-ink);
  border-color:var(--c-accent)
}
.btn-accent:hover {
  background:var(--c-ink);
  color:var(--c-primary);
  border-color:var(--c-ink)
}
.btn-ghost-light {
  background:transparent;
  color:var(--c-ink);
  border-color:var(--c-ink)
}
.btn-ghost-light:hover {
  background:var(--c-ink);
  color:var(--c-primary)
}
.btn-link-light {
  color:var(--c-ink);
  font-weight:600;
  border-bottom:1px solid var(--c-ink);
  padding-bottom:1px
}
.btn-link-light:hover {
  border-bottom-color:var(--c-ink)
}
/* HERO — typeOnly */
.hero-typeonly {
  padding:clamp(5rem,12vw,10rem) 0 clamp(4rem,8vw,7rem)
}
.hero-mega {
  font-size:clamp(3.5rem,12vw,9rem);
  line-height:0.92;
  letter-spacing:-0.045em;
  font-weight:900;
  margin-bottom:2rem;
  max-width:1100px
}
.hero-mega-sub {
  font-size:clamp(1.2rem,1.8vw,1.5rem);
  max-width:640px;
  margin-bottom:2.5rem;
  color:var(--c-ink-soft)
}
.hero-ctas {
  display:flex;
  gap:0.8rem;
  flex-wrap:wrap
}
/* HERO — typeObject */
.hero-typeobject {
  padding:clamp(4rem,9vw,7rem) 0
}
.hero-typeobject-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:var(--gap);
  align-items:center
}
.hero-typeobject-text h1 {
  margin-bottom:1.4rem;
  font-size:clamp(3rem,8vw,6rem)
}
.hero-typeobject-text .lead {
  margin-bottom:2rem
}
.hero-typeobject-img img {
  width:100%;
  border-radius:6px;
  aspect-ratio:1;
  object-fit:cover
}
@media(max-width:820px) {
  .hero-typeobject-grid {
  grid-template-columns:1fr
}

}
/* HERO — splitHalf */
.hero-splithalf {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:80vh;
  padding:0
}
.hero-splithalf-left {
  background:var(--c-primary);
  display:flex;
  align-items:center;
  padding:clamp(2.5rem,6vw,5rem)
}
.hero-splithalf-text h1 {
  margin-bottom:1.4rem
}
.hero-splithalf-text .lead {
  margin-bottom:2.2rem
}
.hero-splithalf-right {
  background:var(--c-deep);
  overflow:hidden
}
.hero-splithalf-right img {
  width:100%;
  height:100%;
  object-fit:cover
}
@media(max-width:860px) {
  .hero-splithalf {
  grid-template-columns:1fr;
  min-height:auto
}
.hero-splithalf-right {
  aspect-ratio:4/3
}

}
/* HERO — oversized */
.hero-oversized {
  padding:clamp(4rem,9vw,7rem) 0
}
.hero-oversized-eyebrow {
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.9rem;
  font-weight:700;
  margin-bottom:1.5rem
}
.hero-oversized-headline {
  font-size:clamp(3rem,11vw,8.5rem);
  line-height:0.93;
  letter-spacing:-0.04em;
  font-weight:900;
  margin-bottom:3rem;
  max-width:1100px
}
.hero-oversized-foot {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:2rem;
  border-top:1px solid var(--c-border);
  padding-top:2rem
}
.hero-oversized-foot p {
  max-width:520px;
  margin:0;
  font-size:1.1rem
}
/* HERO — leftAlignBig */
.hero-leftbig {
  padding:clamp(4rem,9vw,8rem) 0
}
.hero-leftbig-h {
  font-size:clamp(3rem,10vw,7.5rem);
  line-height:0.95;
  font-weight:900;
  margin-bottom:3rem;
  max-width:1100px;
  letter-spacing:-0.04em
}
.hero-leftbig-bottom {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
  align-items:end
}
.hero-leftbig-bottom .lead {
  margin-bottom:0
}
@media(max-width:760px) {
  .hero-leftbig-bottom {
  grid-template-columns:1fr;
  gap:1.5rem
}

}
/* HERO — stackedNumber */
.hero-stackednum {
  padding:clamp(4rem,9vw,7rem) 0
}
.hero-stackednum-tag {
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.85rem;
  font-weight:700;
  margin-bottom:1.5rem;
  border-left:2px solid var(--c-ink);
  padding-left:0.8rem
}
.hero-stackednum h1 {
  margin-bottom:1.4rem;
  max-width:1000px
}
.hero-stackednum .lead {
  margin-bottom:2.2rem
}
/* SECTIONS */
.block {
  padding:clamp(3.5rem,8vw,6.5rem) 0;
  border-top:1px solid var(--c-border)
}
.seg-title {
  margin-bottom:2.8rem;
  max-width:780px
}
.two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
  align-items:center
}
.two-col .col-img img {
  border-radius:6px;
  aspect-ratio:4/3;
  object-fit:cover
}
@media(max-width:820px) {
  .two-col {
  grid-template-columns:1fr
}

}
/* ABOUT — statement */
.about-statement .about-eyebrow {
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.85rem;
  font-weight:700;
  margin-bottom:2rem
}
.about-statement-text {
  font-size:clamp(1.6rem,3.2vw,2.6rem);
  line-height:1.25;
  font-weight:600;
  max-width:1100px;
  color:var(--c-ink);
  margin-bottom:2rem
}
.about-rest {
  max-width:760px;
  margin-top:1.5rem
}
.checklist-3col {
  list-style:none;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:0.5rem 2rem;
  margin-top:2.5rem
}
.checklist-3col li {
  padding:0.55rem 0 0.55rem 1.4rem;
  position:relative;
  color:var(--c-ink);
  border-top:1px solid var(--c-border)
}
.checklist-3col li::before {
  content:'+';
  position:absolute;
  left:0;
  top:0.5rem;
  font-weight:700
}
/* ABOUT — manifesto */
.about-manifesto-h {
  margin-bottom:2.5rem;
  max-width:780px
}
.about-manifesto-list {
  list-style:none;
  counter-reset:none;
  display:flex;
  flex-direction:column
}
.about-manifesto-list li {
  display:grid;
  grid-template-columns:80px 1fr;
  gap:1.5rem;
  padding:1.6rem 0;
  border-top:1px solid var(--c-border);
  align-items:start
}
.about-manifesto-list li:last-child {
  border-bottom:1px solid var(--c-border)
}
.about-manifesto-num {
  font-weight:700;
  color:var(--c-ink)
}
.about-manifesto-list p {
  margin:0;
  font-size:1.1rem;
  color:var(--c-ink)
}
/* ABOUT — eyebrowBig */
.about-eyebrowbig-grid {
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:var(--gap)
}
.about-eyebrowbig-text p {
  font-size:1.15rem;
  color:var(--c-ink)
}
.about-eyebrowbig-aside {
  border-left:1px solid var(--c-border);
  padding-left:1.5rem
}
.about-eyebrowbig-aside ul {
  list-style:none
}
.about-eyebrowbig-aside li {
  padding:0.5rem 0;
  border-bottom:1px solid var(--c-border);
  font-size:0.95rem
}
.about-eyebrowbig-aside li:last-child {
  border-bottom:0
}
@media(max-width:820px) {
  .about-eyebrowbig-grid {
  grid-template-columns:1fr
}
.about-eyebrowbig-aside {
  border-left:0;
  border-top:1px solid var(--c-border);
  padding-left:0;
  padding-top:1.5rem
}

}
/* ABOUT — splitQuote */
.about-splitquote-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
  align-items:start
}
.about-splitquote-lead {
  padding-right:1rem;
  border-right:1px solid var(--c-border)
}
.about-splitquote-text {
  font-size:clamp(1.4rem,2.6vw,2rem);
  line-height:1.3;
  font-weight:600;
  color:var(--c-ink);
  margin-bottom:1rem
}
.about-splitquote-brand {
  font-size:0.95rem;
  color:var(--c-ink-soft);
  letter-spacing:0.05em;
  text-transform:uppercase
}
.about-splitquote-rest h2 {
  margin-bottom:1rem
}
@media(max-width:820px) {
  .about-splitquote-grid {
  grid-template-columns:1fr
}
.about-splitquote-lead {
  border-right:0;
  border-bottom:1px solid var(--c-border);
  padding-right:0;
  padding-bottom:1.5rem;
  margin-bottom:1.5rem
}

}
/* ABOUT — twoCol — uses base .two-col styles */
.checklist {
  list-style:none;
  margin-top:1.2rem
}
.checklist li {
  padding:0.5rem 0 0.5rem 1.6rem;
  position:relative;
  color:var(--c-ink)
}
.checklist li::before {
  content:'';
  position:absolute;
  left:0;
  top:0.95rem;
  width:7px;
  height:7px;
  background:var(--c-ink);
  border-radius:50%
}
/* SERVICES — borderedGrid */
.services-bordered-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:0
}
.service-bordered {
  padding:2rem;
  border:1px solid var(--c-border);
  margin:-1px 0 0 -1px;
  background:transparent
}
.service-bordered-num {
  font-size:0.85rem;
  font-weight:700;
  color:var(--c-ink);
  margin-bottom:1rem;
  letter-spacing:0.1em
}
.service-bordered h3 {
  margin-bottom:0.6rem
}
.service-bordered p {
  margin-bottom:1rem
}
/* SERVICES — manifesto */
.services-manifesto-list {
  list-style:none;
  display:flex;
  flex-direction:column
}
.services-manifesto-list li {
  display:grid;
  grid-template-columns:90px 1fr;
  gap:2rem;
  padding:1.8rem 0;
  border-top:1px solid var(--c-border);
  align-items:start
}
.services-manifesto-list li:last-child {
  border-bottom:1px solid var(--c-border)
}
.services-manifesto-num {
  font-size:1.1rem;
  font-weight:700;
  color:var(--c-ink)
}
.services-manifesto-text h3 {
  margin-bottom:0.4rem
}
.services-manifesto-text p {
  margin:0;
  max-width:680px
}
/* SERVICES — oversizedCards */
.services-oversized-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:1.2rem
}
.service-oversized {
  padding:clamp(2rem,3vw,2.8rem);
  background:var(--c-deep);
  border-radius:8px
}
.service-oversized-h {
  font-size:clamp(1.5rem,2.4vw,1.9rem);
  margin-bottom:1rem
}
/* SERVICES — numberedHuge */
.services-hugenum-list {
  display:flex;
  flex-direction:column;
  gap:0
}
.service-hugenum {
  display:grid;
  grid-template-columns:200px 1fr;
  gap:2.5rem;
  padding:2.5rem 0;
  border-top:1px solid var(--c-border);
  align-items:center
}
.service-hugenum:last-child {
  border-bottom:1px solid var(--c-border)
}
.service-hugenum-n {
  font-size:clamp(3.5rem,7vw,5.5rem);
  font-weight:800;
  line-height:0.9;
  color:var(--c-ink);
  letter-spacing:-0.03em
}
.service-hugenum-body h3 {
  margin-bottom:0.5rem;
  font-size:clamp(1.4rem,2.2vw,1.7rem)
}
.service-hugenum-body p {
  margin:0;
  max-width:680px
}
@media(max-width:760px) {
  .service-hugenum {
  grid-template-columns:1fr;
  gap:1rem;
  padding:2rem 0
}
.service-hugenum-n {
  font-size:3rem
}

}
/* SERVICES — inlineRows */
.services-rows-list {
  display:flex;
  flex-direction:column
}
.service-row-inline {
  padding:1.8rem 0;
  border-top:1px solid var(--c-border);
  display:grid;
  grid-template-columns:1fr 2fr auto;
  gap:2rem;
  align-items:start
}
.service-row-inline:last-child {
  border-bottom:1px solid var(--c-border)
}
.service-row-inline h3 {
  margin:0
}
.service-row-inline p {
  margin:0
}
.service-row-cta-light {
  color:var(--c-ink);
  font-weight:600;
  border-bottom:1px solid var(--c-ink);
  padding-bottom:1px;
  white-space:nowrap
}
@media(max-width:760px) {
  .service-row-inline {
  grid-template-columns:1fr
}

}
/* SERVICES — twoColList (default) */
.services-twocol-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem 2.5rem
}
.service-twocol-item {
}
.service-twocol-num {
  font-size:0.85rem;
  font-weight:700;
  letter-spacing:0.1em;
  margin-bottom:0.8rem;
  color:var(--c-ink)
}
.service-twocol-item h3 {
  margin-bottom:0.5rem
}
@media(max-width:760px) {
  .services-twocol-grid {
  grid-template-columns:1fr;
  gap:2rem
}

}
/* STATS — hugeInline (default) */
.stats-hugeinline-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:2rem 3rem
}
.stat-huge-num {
  font-size:clamp(2.8rem,5.5vw,4.5rem);
  font-weight:800;
  line-height:1;
  color:var(--c-ink);
  letter-spacing:-0.03em;
  margin-bottom:0.4rem
}
.stat-huge-label {
  font-size:0.95rem;
  color:var(--c-ink-soft);
  font-weight:500
}
/* STATS — rightBanner */
.stats-right-grid {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:var(--gap);
  align-items:center
}
.stats-right-h {
  margin:0;
  max-width:400px
}
.stats-right-list {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:1.5rem
}
.stat-right {
  display:flex;
  flex-direction:column;
  gap:0.3rem
}
.stat-right-num {
  font-size:clamp(2rem,3.5vw,2.8rem);
  font-weight:800;
  line-height:1
}
.stat-right-label {
  font-size:0.88rem;
  color:var(--c-ink-soft)
}
@media(max-width:820px) {
  .stats-right-grid {
  grid-template-columns:1fr
}

}
/* STATS — stackedBig */
.stats-stacked-list {
  display:flex;
  flex-direction:column
}
.stat-stacked {
  padding:2rem 0;
  border-top:1px solid var(--c-border);
  display:grid;
  grid-template-columns:auto 1fr;
  gap:2rem;
  align-items:baseline
}
.stat-stacked:last-child {
  border-bottom:1px solid var(--c-border)
}
.stat-stacked-num {
  font-size:clamp(2.5rem,5vw,4rem);
  font-weight:800;
  line-height:1;
  min-width:200px
}
.stat-stacked-label {
  font-size:1.1rem;
  font-weight:600
}
.stat-stacked p {
  grid-column:2;
  margin:0;
  font-size:0.95rem;
  color:var(--c-ink-soft)
}
@media(max-width:680px) {
  .stat-stacked {
  grid-template-columns:1fr;
  gap:0.5rem
}
.stat-stacked p {
  grid-column:1
}

}
/* STATS — bordered */
.stats-bordered-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:0
}
.stat-bordered-item {
  padding:2.5rem 1.5rem;
  border:1px solid var(--c-border);
  margin:-1px 0 0 -1px;
  text-align:center
}
.stat-bordered-num {
  font-size:clamp(2.4rem,4.5vw,3.2rem);
  font-weight:800;
  line-height:1;
  margin-bottom:0.5rem
}
.stat-bordered-label {
  font-size:0.92rem;
  color:var(--c-ink-soft)
}
/* STATS — splitLabel */
.stats-splitlabel-list {
  list-style:none;
  display:flex;
  flex-direction:column;
  max-width:900px
}
.stats-splitlabel-list li {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  padding:1.4rem 0;
  border-top:1px solid var(--c-border);
  gap:2rem
}
.stats-splitlabel-list li:last-child {
  border-bottom:1px solid var(--c-border)
}
.stat-split-label {
  font-size:1.05rem;
  color:var(--c-ink)
}
.stat-split-num {
  font-size:clamp(2rem,3.5vw,2.8rem);
  font-weight:800;
  line-height:1;
  letter-spacing:-0.02em
}
/* PORTFOLIO — plainGrid */
.portfolio-plain-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:2.5rem
}
.portfolio-plain-item h3 {
  margin:1rem 0 0.4rem
}
.portfolio-plain-item .portfolio-img img {
  border-radius:6px;
  aspect-ratio:4/3;
  object-fit:cover
}
/* PORTFOLIO — rowList */
.portfolio-rows {
  display:flex;
  flex-direction:column
}
.portfolio-row {
  display:grid;
  grid-template-columns:60px 280px 1fr;
  gap:2rem;
  align-items:center;
  padding:1.8rem 0;
  border-top:1px solid var(--c-border)
}
.portfolio-row:last-child {
  border-bottom:1px solid var(--c-border)
}
.portfolio-row-num {
  font-size:1.3rem;
  font-weight:700
}
.portfolio-row-img img {
  border-radius:4px;
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%
}
.portfolio-tag-light {
  display:inline-block;
  padding:0.25rem 0.7rem;
  border:1px solid var(--c-border);
  border-radius:999px;
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  margin-top:0.5rem
}
@media(max-width:760px) {
  .portfolio-row {
  grid-template-columns:1fr
}

}
/* PORTFOLIO — asymmetric */
.portfolio-asym-grid {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:1.5rem
}
.portfolio-asym-item .portfolio-img img {
  border-radius:6px;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  margin-bottom:0.8rem
}
.portfolio-asym-item h3 {
  margin-bottom:0.3rem;
  font-size:1.15rem
}
.portfolio-asym-item p {
  font-size:0.92rem
}
.portfolio-asym-item.asym-0 {
  grid-column:span 4
}
.portfolio-asym-item.asym-1 {
  grid-column:span 2
}
.portfolio-asym-item.asym-2 {
  grid-column:span 3
}
.portfolio-asym-item.asym-3 {
  grid-column:span 3
}
.portfolio-asym-item.asym-0 .portfolio-img img {
  aspect-ratio:16/9
}
@media(max-width:820px) {
  .portfolio-asym-grid {
  grid-template-columns:1fr
}
.portfolio-asym-item {
  grid-column:span 1 !important
}

}
/* PORTFOLIO — oversizedFirst */
.portfolio-ovfirst-hero {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:var(--gap);
  align-items:center;
  margin-bottom:3rem;
  padding-bottom:3rem;
  border-bottom:1px solid var(--c-border)
}
.portfolio-ovfirst-img img {
  border-radius:6px;
  aspect-ratio:16/10;
  object-fit:cover;
  width:100%
}
.portfolio-ovfirst-text h3 {
  font-size:clamp(1.7rem,2.8vw,2.2rem);
  margin-bottom:1rem
}
.portfolio-ovfirst-rest {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:2rem
}
.portfolio-ovfirst-item .portfolio-img img {
  border-radius:6px;
  aspect-ratio:4/3;
  object-fit:cover;
  margin-bottom:0.8rem
}
.portfolio-ovfirst-item h3 {
  margin-bottom:0.3rem
}
@media(max-width:820px) {
  .portfolio-ovfirst-hero {
  grid-template-columns:1fr
}

}
/* PORTFOLIO — numberedList */
.portfolio-numbered-list {
  list-style:none;
  display:flex;
  flex-direction:column
}
.portfolio-numbered-item {
  display:grid;
  grid-template-columns:90px 1fr;
  gap:2rem;
  padding:1.8rem 0;
  border-top:1px solid var(--c-border);
  align-items:start
}
.portfolio-numbered-item:last-child {
  border-bottom:1px solid var(--c-border)
}
.portfolio-numbered-n {
  font-size:1.15rem;
  font-weight:700
}
.portfolio-numbered-text h3 {
  margin-bottom:0.4rem
}
/* PORTFOLIO — twoColLarge */
.portfolio-twocollarge-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem 2.5rem
}
.portfolio-twocollarge-item .portfolio-img img {
  border-radius:6px;
  aspect-ratio:16/10;
  object-fit:cover;
  width:100%;
  margin-bottom:1rem
}
.portfolio-twocollarge-text h3 {
  margin-bottom:0.5rem;
  font-size:clamp(1.3rem,2vw,1.55rem)
}
@media(max-width:820px) {
  .portfolio-twocollarge-grid {
  grid-template-columns:1fr
}

}
/* TESTIMONIALS — cards (default) */
.testimonials-cards-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:1.5rem
}
.testimonial-card-light {
  background:var(--c-deep);
  padding:2rem;
  border-radius:8px
}
.testimonial-card-light p {
  font-size:1.05rem;
  color:var(--c-ink);
  margin-bottom:1.2rem;
  line-height:1.5
}
.testimonial-card-light footer {
  display:flex;
  flex-direction:column;
  gap:0.2rem;
  font-size:0.9rem
}
.testimonial-card-light footer strong {
  color:var(--c-ink)
}
.testimonial-card-light footer span {
  color:var(--c-ink-soft)
}
/* TESTIMONIALS — hugeQuote */
.testimonials-huge .testimonial-huge {
  padding:0;
  margin-bottom:3.5rem;
  max-width:1100px
}
.testimonial-huge p {
  font-size:clamp(1.6rem,3.5vw,2.8rem);
  line-height:1.25;
  font-weight:600;
  color:var(--c-ink);
  margin-bottom:1.5rem;
  letter-spacing:-0.015em
}
.testimonial-huge footer {
  font-size:1rem
}
.testimonial-huge footer strong {
  color:var(--c-ink);
  font-weight:700;
  margin-right:0.5rem
}
.testimonial-huge footer span {
  color:var(--c-ink-soft)
}
.testimonial-huge-rest {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1.2rem;
  border-top:1px solid var(--c-border);
  padding-top:2.5rem
}
.testimonial-mini-light {
  padding:0
}
.testimonial-mini-light p {
  font-size:0.95rem;
  color:var(--c-ink);
  margin-bottom:0.8rem
}
.testimonial-mini-light footer {
  display:flex;
  flex-direction:column;
  font-size:0.85rem
}
.testimonial-mini-light footer strong {
  color:var(--c-ink)
}
.testimonial-mini-light footer span {
  color:var(--c-ink-soft)
}
/* TESTIMONIALS — twoColBordered */
.testimonials-twocol-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem 2.5rem;
  max-width:1100px
}
.testimonial-bordered-light {
  padding:0.5rem 0 0.5rem 1.5rem;
  border-left:2px solid var(--c-ink)
}
.testimonial-bordered-light p {
  font-size:1.05rem;
  color:var(--c-ink);
  margin-bottom:1rem
}
.testimonial-bordered-light footer {
  display:flex;
  flex-direction:column;
  font-size:0.9rem;
  gap:0.15rem
}
.testimonial-bordered-light footer strong {
  color:var(--c-ink)
}
.testimonial-bordered-light footer span {
  color:var(--c-ink-soft)
}
@media(max-width:820px) {
  .testimonials-twocol-grid {
  grid-template-columns:1fr
}

}
/* TESTIMONIALS — inlineRow */
.testimonials-inline-row {
  display:flex;
  flex-wrap:wrap;
  gap:2.5rem 3rem
}
.testimonial-inline {
  max-width:380px;
  flex:1 1 280px
}
.testimonial-inline p {
  font-size:1rem;
  line-height:1.5;
  color:var(--c-ink);
  margin-bottom:0.8rem
}
.testimonial-inline footer {
  font-size:0.88rem;
  color:var(--c-ink-soft)
}
.testimonial-inline footer strong {
  color:var(--c-ink);
  font-weight:600
}
/* TESTIMONIALS — oversizedStack */
.testimonials-stack-list {
  display:flex;
  flex-direction:column
}
.testimonial-stack {
  padding:2.2rem 0;
  border-top:1px solid var(--c-border);
  display:grid;
  grid-template-columns:80px 1fr;
  gap:1.5rem;
  align-items:start
}
.testimonial-stack:last-child {
  border-bottom:1px solid var(--c-border)
}
.testimonial-stack-n {
  font-size:1rem;
  font-weight:700;
  color:var(--c-ink)
}
.testimonial-stack p {
  font-size:clamp(1.1rem,1.8vw,1.35rem);
  line-height:1.4;
  font-weight:500;
  color:var(--c-ink);
  margin-bottom:1rem
}
.testimonial-stack footer {
  font-size:0.92rem;
  color:var(--c-ink-soft);
  grid-column:2
}
.testimonial-stack footer strong {
  color:var(--c-ink);
  font-weight:600;
  margin-right:0.4rem
}
/* TEAM — photoGrid (default) */
.team-photogrid-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:2rem
}
.team-photo-sq img {
  border-radius:6px;
  aspect-ratio:1;
  object-fit:cover;
  margin-bottom:1rem;
  width:100%
}
.team-role-light {
  color:var(--c-ink-soft);
  font-weight:500;
  font-size:0.95rem;
  margin-bottom:0.3rem
}
.team-bio-light {
  font-size:0.92rem;
  color:var(--c-ink-soft)
}
/* TEAM — compactList */
.team-compact-list {
  list-style:none;
  display:flex;
  flex-direction:column;
  max-width:840px
}
.team-compact-item {
  display:grid;
  grid-template-columns:100px 1fr;
  gap:1.6rem;
  align-items:center;
  padding:1.4rem 0;
  border-top:1px solid var(--c-border)
}
.team-compact-item:last-child {
  border-bottom:1px solid var(--c-border)
}
.team-compact-photo img {
  border-radius:50%;
  aspect-ratio:1;
  object-fit:cover;
  width:100%
}
.team-compact-text h3 {
  margin-bottom:0.2rem
}
/* TEAM — oversizedRow */
.team-ovrow-list {
  display:flex;
  flex-direction:column
}
.team-ovrow-item {
  display:grid;
  grid-template-columns:200px 1fr;
  gap:2.5rem;
  align-items:center;
  padding:2.2rem 0;
  border-top:1px solid var(--c-border)
}
.team-ovrow-item:last-child {
  border-bottom:1px solid var(--c-border)
}
.team-ovrow-photo img {
  border-radius:4px;
  aspect-ratio:4/5;
  object-fit:cover;
  width:100%
}
.team-ovrow-h {
  font-size:clamp(1.6rem,2.8vw,2.2rem);
  margin-bottom:0.4rem
}
@media(max-width:760px) {
  .team-ovrow-item {
  grid-template-columns:140px 1fr;
  gap:1.5rem
}

}
/* TEAM — inlineBordered */
.team-inlinebord-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:0
}
.team-inlinebord-item {
  padding:2rem 1.5rem;
  border:1px solid var(--c-border);
  margin:-1px 0 0 -1px;
  text-align:center
}
.team-photo-circle img {
  border-radius:50%;
  aspect-ratio:1;
  object-fit:cover;
  width:90px;
  margin:0 auto 1rem
}
/* TEAM — bigName */
.team-bigname-list {
  display:flex;
  flex-direction:column
}
.team-bigname-item {
  padding:1.8rem 0;
  border-top:1px solid var(--c-border)
}
.team-bigname-item:last-child {
  border-bottom:1px solid var(--c-border)
}
.team-bigname-h {
  font-size:clamp(1.8rem,3.2vw,2.6rem);
  margin-bottom:0.4rem
}
/* POSTS — cards (default) */
.posts-cards-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:2rem
}
.post-card-light {
  background:var(--c-deep);
  border-radius:8px;
  overflow:hidden
}
.post-card-light .post-img img {
  aspect-ratio:16/10;
  object-fit:cover
}
.post-card-light .story-body {
  padding:1.5rem
}
.post-card-light time {
  font-size:0.85rem;
  color:var(--c-ink-soft);
  display:block;
  margin-bottom:0.4rem;
  text-transform:uppercase;
  letter-spacing:0.06em
}
.post-card-light h3 {
  margin-bottom:0.5rem;
  font-size:1.2rem
}
/* POSTS — horizontalList */
.posts-horiz-list {
  display:flex;
  flex-direction:column;
  max-width:940px
}
.post-horiz {
  display:grid;
  grid-template-columns:240px 1fr;
  gap:2rem;
  align-items:center;
  padding:1.8rem 0;
  border-top:1px solid var(--c-border)
}
.post-horiz:last-child {
  border-bottom:1px solid var(--c-border)
}
.post-horiz-img img {
  border-radius:4px;
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%
}
.post-horiz-body time {
  font-size:0.85rem;
  color:var(--c-ink-soft);
  display:block;
  margin-bottom:0.4rem;
  text-transform:uppercase;
  letter-spacing:0.06em
}
.post-horiz-body h3 {
  margin-bottom:0.5rem
}
@media(max-width:680px) {
  .post-horiz {
  grid-template-columns:1fr
}

}
/* POSTS — numbered */
.posts-num-list {
  list-style:none;
  display:flex;
  flex-direction:column
}
.post-num-item {
  display:grid;
  grid-template-columns:80px 1fr auto;
  gap:2rem;
  align-items:center;
  padding:1.8rem 0;
  border-top:1px solid var(--c-border)
}
.post-num-item:last-child {
  border-bottom:1px solid var(--c-border)
}
.post-num-n {
  font-size:1.2rem;
  font-weight:700
}
.post-num-text time {
  font-size:0.82rem;
  color:var(--c-ink-soft);
  display:block;
  margin-bottom:0.3rem;
  text-transform:uppercase;
  letter-spacing:0.06em
}
.post-num-text h3 {
  margin-bottom:0.3rem
}
.post-num-text p {
  margin:0
}
@media(max-width:760px) {
  .post-num-item {
  grid-template-columns:50px 1fr
}
.post-num-item .btn-link-light {
  grid-column:1 / -1;
  margin-top:0.5rem
}

}
/* POSTS — oversizedFirst */
.post-ovfirst {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:var(--gap);
  align-items:center;
  margin-bottom:3rem;
  padding-bottom:3rem;
  border-bottom:1px solid var(--c-border)
}
.post-ovfirst-img img {
  border-radius:6px;
  aspect-ratio:16/10;
  object-fit:cover;
  width:100%
}
.post-ovfirst-text time {
  font-size:0.9rem;
  color:var(--c-ink-soft);
  display:block;
  margin-bottom:0.5rem;
  text-transform:uppercase;
  letter-spacing:0.06em
}
.post-ovfirst-text h3 {
  font-size:clamp(1.7rem,2.8vw,2.2rem);
  margin-bottom:1rem
}
.post-ovfirst-rest {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:2rem
}
.post-rest-item .post-rest-img img {
  border-radius:6px;
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%;
  margin-bottom:0.8rem
}
.post-rest-item time {
  font-size:0.82rem;
  color:var(--c-ink-soft);
  display:block;
  margin-bottom:0.3rem;
  text-transform:uppercase;
  letter-spacing:0.06em
}
.post-rest-item h3 {
  margin-bottom:0.4rem;
  font-size:1.15rem
}
@media(max-width:820px) {
  .post-ovfirst {
  grid-template-columns:1fr
}

}
/* POSTS — plainList */
.posts-plain-list {
  list-style:none;
  display:flex;
  flex-direction:column;
  max-width:820px
}
.post-plain-item {
  padding:1.6rem 0;
  border-top:1px solid var(--c-border)
}
.post-plain-item:last-child {
  border-bottom:1px solid var(--c-border)
}
.post-plain-item time {
  font-size:0.85rem;
  color:var(--c-ink-soft);
  display:block;
  margin-bottom:0.4rem;
  text-transform:uppercase;
  letter-spacing:0.06em
}
.post-plain-item h3 {
  margin-bottom:0.4rem
}
/* FAQ — accordion (default) */
.faq-wrap {
  max-width:880px
}
.faq-accordion-list {
  display:flex;
  flex-direction:column
}
.faq-acc-item {
  border-top:1px solid var(--c-border);
  padding:1.2rem 0
}
.faq-acc-item:last-child {
  border-bottom:1px solid var(--c-border)
}
.faq-acc-item summary {
  font-weight:700;
  cursor:pointer;
  font-size:1.1rem;
  list-style:none;
  padding-right:2rem;
  position:relative;
  color:var(--c-ink)
}
.faq-acc-item summary::-webkit-details-marker {
  display:none
}
.faq-acc-item summary::after {
  content:'+';
  position:absolute;
  right:0;
  top:-0.1rem;
  font-size:1.6rem;
  font-weight:500;
  transition:transform .2s
}
.faq-acc-item[open] summary::after {
  content:'−'
}
.faq-acc-answer {
  padding-top:1rem;
  color:var(--c-ink-soft);
  max-width:780px
}
/* FAQ — twoCol */
.faq-twocol-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2.5rem
}
.faq-twocol-item h3 {
  margin-bottom:0.5rem;
  font-size:1.15rem
}
.faq-twocol-item p {
  margin:0
}
@media(max-width:820px) {
  .faq-twocol-grid {
  grid-template-columns:1fr
}

}
/* FAQ — numberedQA */
.faq-numbered-list {
  list-style:none;
  display:flex;
  flex-direction:column
}
.faq-numbered-item {
  display:grid;
  grid-template-columns:70px 1fr;
  gap:1.5rem;
  padding:1.6rem 0;
  border-top:1px solid var(--c-border);
  align-items:start
}
.faq-numbered-item:last-child {
  border-bottom:1px solid var(--c-border)
}
.faq-numbered-n {
  font-weight:700
}
.faq-numbered-body h3 {
  margin-bottom:0.5rem;
  font-size:1.1rem
}
.faq-numbered-body p {
  margin:0;
  max-width:680px
}
/* FAQ — bigBorder */
.faq-bigborder-list {
  display:flex;
  flex-direction:column;
  gap:1rem
}
.faq-bigborder-item {
  border:1px solid var(--c-border);
  border-radius:6px;
  padding:1.2rem 1.5rem
}
.faq-bigborder-item summary {
  display:grid;
  grid-template-columns:50px 1fr;
  gap:1rem;
  align-items:center;
  cursor:pointer;
  list-style:none;
  font-weight:700;
  font-size:1.05rem;
  color:var(--c-ink)
}
.faq-bigborder-item summary::-webkit-details-marker {
  display:none
}
.faq-bb-n {
  font-size:0.9rem;
  color:var(--c-ink-soft)
}
.faq-bb-answer {
  padding:1rem 0 0 60px;
  color:var(--c-ink-soft)
}
/* FAQ — plainList */
.faq-plain-list {
  display:flex;
  flex-direction:column
}
.faq-plain-pair {
  padding:1.4rem 0;
  border-top:1px solid var(--c-border)
}
.faq-plain-pair:last-child {
  border-bottom:1px solid var(--c-border)
}
.faq-plain-pair dt {
  font-weight:700;
  font-size:1.08rem;
  margin-bottom:0.5rem;
  color:var(--c-ink)
}
.faq-plain-pair dd {
  color:var(--c-ink-soft)
}
/* CONTACT — common */
.contact-list-light {
  list-style:none;
  margin-top:1.5rem
}
.contact-list-light li {
  padding:0.7rem 0;
  border-top:1px solid var(--c-border);
  display:grid;
  grid-template-columns:110px 1fr;
  gap:1rem;
  align-items:center
}
.contact-list-light li:last-child {
  border-bottom:1px solid var(--c-border)
}
.contact-list-light li span:first-child {
  color:var(--c-ink-soft);
  font-size:0.85rem;
  text-transform:uppercase;
  letter-spacing:0.08em
}
.contact-list-light a {
  color:var(--c-ink);
  border-bottom:1px solid transparent
}
.contact-list-light a:hover {
  border-bottom-color:var(--c-ink)
}
.contact-form-light {
  display:flex;
  flex-direction:column;
  gap:1rem
}
.contact-form-light label {
  display:flex;
  flex-direction:column;
  gap:0.4rem;
  font-size:0.85rem;
  color:var(--c-ink);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.06em
}
.contact-form-light input,.contact-form-light textarea {
  padding:0.85rem;
  border:1.5px solid var(--c-ink);
  border-radius:4px;
  font:inherit;
  background:transparent;
  color:var(--c-ink);
  font-weight:400;
  text-transform:none;
  letter-spacing:0
}
.contact-form-light input:focus,.contact-form-light textarea:focus {
  outline:0;
  border-color:var(--c-accent)
}
.form-status-light {
  font-size:0.9rem;
  color:var(--c-ink);
  font-weight:600
}
/* CONTACT — formRight (default) — uses .two-col */

/* CONTACT — formBelow */
.contact-below .lead {
  margin-bottom:1.5rem
}
.contact-below-form {
  margin-top:2.5rem;
  max-width:560px
}
/* CONTACT — cardCentered */
.contact-centered-wrap {
  max-width:680px;
  margin:0 auto;
  text-align:center
}
.contact-centered-h {
  margin-bottom:1rem
}
.contact-centered-card {
  background:var(--c-deep);
  padding:2.5rem;
  border-radius:8px;
  text-align:left;
  margin:2rem 0
}
.contact-centered-info {
  text-align:left;
  max-width:520px;
  margin:0 auto
}
/* CONTACT — bigStatement */
.contact-bigstatement-h {
  font-size:clamp(3rem,7vw,5.5rem);
  line-height:0.95;
  letter-spacing:-0.035em;
  margin-bottom:1rem
}
.contact-bigstatement-sub {
  font-size:1.2rem;
  margin-bottom:3rem;
  max-width:640px;
  color:var(--c-ink-soft)
}
.contact-bigstatement-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
  align-items:start
}
@media(max-width:820px) {
  .contact-bigstatement-grid {
  grid-template-columns:1fr
}

}
/* CONTACT — splitInfoForm */
.contact-split-grid {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:var(--gap);
  align-items:start
}
@media(max-width:820px) {
  .contact-split-grid {
  grid-template-columns:1fr
}

}
/* FOOTER */
.footer-d {
  background:var(--c-deep);
  padding:clamp(3rem,5vw,4.5rem) 0 1.5rem;
  margin-top:0;
  border-top:1px solid var(--c-border)
}
.footer-d a {
  color:var(--c-ink);
  border:0
}
.footer-d a:hover {
  border-bottom:1px solid var(--c-ink)
}
.footer-d h4 {
  font-size:0.95rem;
  margin-bottom:0.9rem;
  color:var(--c-ink)
}
.footer-d ul {
  list-style:none
}
.footer-d ul li {
  padding:0.25rem 0;
  font-size:0.95rem
}
.footer-d-brand {
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:1.4rem;
  font-weight:800;
  margin-bottom:0.6rem;
  color:var(--c-ink)
}
.footer-d-grid-3 {
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  gap:2.5rem
}
.footer-d-grid-4 {
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.4fr;
  gap:2rem
}
.footer-d-bottom {
  margin-top:2.5rem;
  padding-top:1.2rem;
  border-top:1px solid var(--c-border);
  font-size:0.88rem;
  color:var(--c-ink-soft);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem
}
.footer-d-bottom nav {
  display:flex;
  gap:1.2rem
}
.newsletter-d {
  display:flex;
  gap:0.5rem;
  margin-top:0.6rem
}
.newsletter-d input {
  flex:1;
  padding:0.7rem;
  border:1.5px solid var(--c-border);
  background:transparent;
  color:var(--c-ink);
  border-radius:4px
}
.newsletter-d button {
  padding:0.7rem 1.1rem;
  background:var(--c-accent);
  color:var(--c-accent-ink);
  border:0;
  border-radius:4px;
  font-weight:700;
  cursor:pointer
}
.footer-d-cta .footer-d-ctablock {
  text-align:center;
  padding:2rem 0 3rem
}
.footer-d-cta .footer-d-ctablock h2 {
  margin-bottom:0.8rem
}
.footer-d-hugebrand {
  font-family:'Bricolage Grotesque',sans-serif;
  font-size:clamp(4rem,12vw,10rem);
  line-height:0.9;
  font-weight:900;
  letter-spacing:-0.045em;
  color:var(--c-ink);
  margin-bottom:2rem
}
.footer-d-huge-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
  border-top:1px solid var(--c-border);
  padding-top:1.5rem;
  font-size:0.9rem;
  color:var(--c-ink-soft)
}
.footer-d-huge-bottom nav {
  display:flex;
  gap:1.5rem
}
.footer-d-row {
  padding:1.8rem 0
}
.footer-d-row-wrap {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem
}
.footer-d-row-wrap nav {
  display:flex;
  gap:1.5rem;
  font-size:0.92rem
}
@media(max-width:760px) {
  .footer-d-grid-3,.footer-d-grid-4 {
  grid-template-columns:1fr;
  gap:2rem
}

}
/* fade-in */
.rise-in {
  opacity:0;
  transform:translateY(20px);
  transition:opacity .6s ease, transform .6s ease
}
.rise-in.revealed {
  opacity:1;
  transform:none
}
@media (prefers-reduced-motion: reduce) {
  .rise-in {
  opacity:1;
  transform:none;
  transition:none
}
html {
  scroll-behavior:auto
}

}


/* ══════════════════════════════════════ */
/* ══ GPT POST-PROCESS FIXES ══ */
/* ══════════════════════════════════════ */

html { overflow-x: hidden; }
body { overflow-x: hidden; margin: 0; padding: 0; }

/* Smooth transitions */
a, button { transition: all 0.3s ease; }

/* Form inputs */
input, textarea, select, .form-input {
  width: 100%;
  padding: 0.75rem;
  border-radius: var(--corner-btn);
  box-sizing: border-box;
}

/* Ensure .toggle-icon compatibility with existing .burger-d */
.toggle-icon, .burger-d { display: none; }

/* Equal-height cards helper */
.card-grid, .cards-grid, .cards {
  display: grid;
  grid-auto-rows: 1fr;
  gap: 1.25rem;
}
.module, .module > * {
  display: flex;
  flex-direction: column;
}
.module > * { flex: 1 1 auto; }

/* MOBILE / TABLET */
@media (max-width: 768px) {
  /* Main nav hide by default, show when active */
  .site-nav { display: none !important; }
  .site-nav.active {
    display: flex !important;
    flex-direction: column;
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0,0,0,0.95);
    z-index: 9999;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    padding: 2rem;
    text-align: center;
  }
  .site-nav.active a {
    color: #fff !important;
    font-size: 1.5rem !important;
    text-decoration: none !important;
  }

  /* Show mobile burger */
  .toggle-icon, .burger-d { display: flex !important; }

  /* Header layout adjustments */
  .top-inner {
    flex-wrap: nowrap !important;
  }

  /* Hero adjustments */
  .intro-content {
    padding: 0 1rem !important;
  }
  .intro-content h1 {
    font-size: clamp(1.6rem, 6vw, 2.4rem) !important;
  }
  .hero-cta {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
    align-items: center !important;
  }
  .hero-cta a, .hero-cta button {
    width: 80% !important;
    max-width: 280px !important;
    text-align: center !important;
  }

  /* Grids collapse to single column */
  .services-grid, .actors-grid, .stats-grid, .news-grid, .contact-cards,
  .services-grid > *, .actors-grid > *, .stats-grid > *, .news-grid > *, .contact-cards > * {
    grid-template-columns: 1fr !important;
  }
  .services-grid, .actors-grid, .stats-grid, .news-grid, .contact-cards {
    display: grid !important;
    gap: 1rem !important;
  }

  /* Container & section spacing */
  .holder {
    padding: 0 1rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
  }
  section {
    padding: 3rem 0 !important;
  }

  /* Headings */
  h2 {
    font-size: clamp(1.3rem, 5vw, 1.8rem) !important;
  }

  /* Footer */
  .footer-inner {
    grid-template-columns: 1fr !important;
    text-align: center !important;
    gap: 1rem !important;
  }

  /* Images and general wrapping */
  img { max-width: 100% !important; height: auto !important; }
  * { max-width: 100vw !important; overflow-wrap: break-word !important; }
}

/* SMALLER PHONES */
@media (max-width: 480px) {
  body { font-size: 0.95rem !important; }
  .hero { min-height: 60vh !important; }
  .intro-content h1 { font-size: 1.5rem !important; }
  section { padding: 2rem 0 !important; }
}

/* DESKTOP / LARGE SCREENS */
@media (min-width: 769px) {
  /* Hide burger on desktop */
  .toggle-icon, .burger-d { display: none !important; }

  /* Show horizontal main nav */
  .site-nav {
    display: flex !important;
    gap: 1.5rem !important;
    align-items: center !important;
  }

  /* Hero layout and layers */
  .hero {
    min-height: 70vh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
  }
  .hero-bg {
    position: absolute !important;
    inset: 0 !important;
    background-size: cover !important;
    background-position: center !important;
    z-index: 0 !important;
  }
  .intro-dim {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
  }
  .intro-content {
    position: relative !important;
    z-index: 2 !important;
    text-align: center !important;
    color: #fff !important;
  }

  /* Cards equal height and responsive grid defaults */
  .card-grid, .cards-grid, .cards {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
  }
  .module { align-self: stretch !important; }

  /* Container sizing for desktop */
  .holder {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 2rem !important;
  }

  /* Generic grids */
  .grid, .grid-auto, .grid-default, .all-grids {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 1.25rem !important;
  }
}

/* REMOVE AI-STYLE DECORATIVE LINES (OVERRIDES) */
h1::after, h2::after, h3::after, h4::after,
h1::before, h2::before, h3::before, h4::before,
.seg-title::after, .seg-title::before,
.zone-heading::after, .zone-heading::before,
.heading-line, .title-underline, .title-decoration,
.zone-rule, .heading-divider, .dots, .dotted-divider,
.heading-dots, .title-dots,
.section-subtitle + .divider, .subtitle + .divider {
  content: none !important;
  display: none !important;
  border: none !important;
  background: none !important;
  height: 0 !important;
  width: 0 !important;
}

/* REMOVE EMPTY DECORATIVE ELEMENTS */
hr.decorative, hr.divider, hr.zone-rule { display: none !important; }
span.dot-separator, span.dots, span.decoration { display: none !important; }