/* =========================================================
   LUMOS LIVING — Public Website
   ========================================================= */

.site-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1040;
  height: var(--nav-h);
  display: flex;
  align-items: center;
  transition: background .4s var(--ease-luxury), box-shadow .4s var(--ease-luxury), backdrop-filter .4s;
}
.site-nav .nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 1.5rem;
}
.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  text-decoration: none;
}
.site-nav .brand-logo {
  height: 42px;
  width: auto;
  display: block;
  object-fit: contain;
  /* Gold mark — no invert (fixes dual-logo sprite look) */
  filter: none;
  transition: transform .45s var(--ease-luxury);
}
.brand-lockup:hover .brand-logo { transform: rotate(-6deg) scale(1.04); }
.brand-word {
  font-family: var(--font-display);
  font-size: 1.25rem;
  letter-spacing: .02em;
  color: var(--ll-ivory);
  line-height: 1;
}
.brand-word em {
  font-style: italic;
  color: var(--ll-gold-warm);
  font-weight: 400;
}
.site-nav.scrolled .brand-word,
.site-nav.light .brand-word { color: var(--ll-black); }
.site-nav.scrolled .brand-word em,
.site-nav.light .brand-word em { color: var(--ll-gold); }
.mobile-menu .brand-logo,
.mobile-menu .mm-head img {
  height: 40px;
  width: auto;
  filter: none;
}

.site-nav .nav-links {
  display: flex;
  align-items: center;
  gap: 1.75rem;
}
.site-nav .nav-links a {
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(246, 241, 232, .86);
  position: relative;
  padding: .25rem 0;
}
.site-nav .nav-links a::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 1px;
  background: var(--ll-gold);
  transition: width .35s var(--ease-luxury);
}
.site-nav .nav-links a:hover,
.site-nav .nav-links a.active { color: var(--ll-gold-warm); }
.site-nav .nav-links a:hover::after,
.site-nav .nav-links a.active::after { width: 100%; }

.site-nav.scrolled,
.site-nav.light {
  background: rgba(246, 241, 232, .94);
  backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 var(--ll-border);
}
.site-nav.scrolled .nav-links a,
.site-nav.light .nav-links a { color: var(--ll-charcoal); }
.site-nav.scrolled .nav-links a:hover,
.site-nav.light .nav-links a:hover,
.site-nav.scrolled .nav-links a.active,
.site-nav.light .nav-links a.active { color: var(--ll-gold); }

.nav-cta { margin-left: .5rem; }
.nav-toggle {
  display: none;
  background: none;
  border: 0;
  color: var(--ll-ivory);
  font-size: 1.5rem;
  padding: .25rem;
}
.site-nav.scrolled .nav-toggle,
.site-nav.light .nav-toggle { color: var(--ll-charcoal); }

/* Mobile menu */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 1050;
  background: var(--ll-black);
  display: flex;
  flex-direction: column;
  padding: 2rem;
  transform: translateX(100%);
  transition: transform .45s var(--ease-luxury);
}
.mobile-menu.open { transform: none; }
.mobile-menu .mm-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 3rem;
}
.mobile-menu .mm-head img { height: 40px; filter: none; }
.mobile-menu a {
  font-family: var(--font-display);
  font-size: 2rem;
  color: var(--ll-ivory);
  padding: .65rem 0;
  border-bottom: 1px solid var(--ll-border-dark);
}
.mobile-menu a:hover { color: var(--ll-gold); }

@media (max-width: 1099.98px) {
  .site-nav .nav-links, .site-nav .nav-cta { display: none; }
  .nav-toggle { display: block; }
}

/* Hero */
.hero-cinematic {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: flex-end;
  color: var(--ll-ivory);
  overflow: hidden;
}
.hero-cinematic .hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-cinematic .hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  animation: heroZoom 18s var(--ease-luxury) infinite alternate;
}
@keyframes heroZoom {
  from { transform: scale(1.06); }
  to { transform: scale(1); }
}
.hero-cinematic .hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(23,23,23,.45) 0%, rgba(23,23,23,.15) 35%, rgba(23,23,23,.72) 100%),
    linear-gradient(90deg, rgba(23,23,23,.55) 0%, transparent 55%);
  z-index: 1;
}
.hero-cinematic .hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 0 0 6.5rem;
}
.hero-cinematic .hero-copy,
.hero-cinematic .hero-actions .btn-ll {
  opacity: 0;
}
.hero-cinematic h1 .split-word,
.page-hero-luxe h1 .split-word {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  margin-right: .22em;
}
.hero-cinematic h1 .split-word > span,
.page-hero-luxe h1 .split-word > span {
  display: inline-block;
  transform: translateY(110%);
}
.page-hero-luxe .eyebrow,
.page-hero-luxe .hero-sub { opacity: 0; }
.hero-cinematic h1 {
  font-size: clamp(3rem, 7vw, 6.2rem);
  color: var(--ll-ivory);
  max-width: 14ch;
  margin-bottom: 1.25rem;
}
.hero-cinematic .hero-copy {
  max-width: 34rem;
  color: rgba(246, 241, 232, .82);
  font-weight: 300;
  font-size: 1.08rem;
  margin-bottom: 2.25rem;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: .85rem; }

.page-hero {
  position: relative;
  min-height: 52vh;
  display: flex;
  align-items: flex-end;
  color: var(--ll-ivory);
  overflow: hidden;
}
.page-hero .hero-media,
.page-hero .hero-overlay { position: absolute; inset: 0; }
.page-hero .hero-overlay {
  background: linear-gradient(180deg, rgba(23,23,23,.35), rgba(23,23,23,.75));
}
.page-hero .hero-content {
  position: relative;
  z-index: 2;
  padding: 0 0 3.5rem;
}
.page-hero h1 {
  font-size: clamp(2.6rem, 5vw, 4.4rem);
  color: var(--ll-ivory);
  margin: .5rem 0 0;
}

/* Asymmetric intro */
.intro-split {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 4rem;
  align-items: center;
}
.intro-split .intro-visual {
  position: relative;
  min-height: 520px;
}
.intro-split .intro-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}
.intro-split .intro-visual .accent-frame {
  position: absolute;
  right: -18px;
  bottom: -18px;
  width: 42%;
  height: 55%;
  border: 1px solid var(--ll-gold);
  z-index: -1;
}
.stat-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--ll-border);
}
.stat-row .num {
  font-family: var(--font-display);
  font-size: 2.4rem;
  color: var(--ll-black);
  line-height: 1;
}
.stat-row .lbl {
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ll-muted);
  margin-top: .4rem;
}

/* Meet our experts */
.experts-section { background: var(--ll-ivory); }
.experts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
.expert-card {
  background: var(--ll-white);
  border: 1px solid var(--ll-border);
  overflow: hidden;
  transition: transform .45s var(--ease-luxury), box-shadow .45s var(--ease-luxury);
}
.expert-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-soft);
}
.expert-card .ex-photo {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--ll-charcoal);
}
.expert-card .ex-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1s var(--ease-luxury), filter .45s;
  filter: grayscale(.25);
}
.expert-card:hover .ex-photo img {
  transform: scale(1.06);
  filter: none;
}
.expert-card .ex-photo .ex-dept {
  position: absolute;
  top: 1rem; left: 1rem;
  background: rgba(23,23,23,.78);
  color: var(--ll-gold-warm);
  font-size: .65rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: .35rem .6rem;
}
.expert-card .ex-body { padding: 1.25rem 1.2rem 1.4rem; }
.expert-card .ex-role {
  color: var(--ll-gold);
  font-size: .7rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: .35rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.expert-card h3 {
  font-size: 1.45rem;
  margin: 0 0 .25rem;
}
.expert-card .ex-desig {
  color: var(--ll-muted);
  font-size: .88rem;
  margin-bottom: .65rem;
}
.expert-card .ex-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .85rem;
  font-size: .78rem;
  color: var(--ll-muted);
  margin-bottom: .75rem;
}
.expert-card .ex-meta i { color: var(--ll-gold); margin-right: .25rem; }
.expert-card .ex-bio {
  font-size: .88rem;
  color: var(--ll-muted);
  font-weight: 300;
  margin: 0;
  line-height: 1.55;
}
.expert-card .ex-social {
  display: flex;
  gap: .5rem;
  margin-top: 1rem;
  padding-top: .85rem;
  border-top: 1px solid var(--ll-border);
}
.expert-card .ex-social a {
  width: 34px; height: 34px;
  display: grid; place-items: center;
  border: 1px solid var(--ll-border);
  color: var(--ll-charcoal);
  transition: .25s;
}
.expert-card .ex-social a:hover {
  border-color: var(--ll-gold);
  background: var(--ll-gold);
  color: var(--ll-black);
}
@media (max-width: 1199.98px) {
  .experts-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 991.98px) {
  .experts-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
  .experts-grid { grid-template-columns: 1fr; }
}

/* Full stats showcase */
.stats-showcase {
  background: var(--ll-black);
  color: var(--ll-ivory);
  position: relative;
  overflow: hidden;
}
.stats-showcase::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 10% 20%, rgba(201,166,75,.14), transparent 45%),
    radial-gradient(ellipse at 90% 80%, rgba(215,182,109,.08), transparent 40%);
  pointer-events: none;
}
.stats-showcase .container { position: relative; z-index: 1; }
.stats-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1px;
  background: rgba(201,166,75,.2);
  border: 1px solid rgba(201,166,75,.25);
}
.stats-grid .stat-cell {
  background: rgba(14,14,14,.92);
  padding: 2rem 1.25rem;
  text-align: center;
  transition: background .35s var(--ease-luxury);
}
.stats-grid .stat-cell:hover {
  background: rgba(201,166,75,.1);
}
.stats-grid .stat-icon {
  width: 42px; height: 42px;
  margin: 0 auto 1rem;
  display: grid; place-items: center;
  border: 1px solid rgba(201,166,75,.4);
  color: var(--ll-gold);
  font-size: 1.15rem;
}
.stats-grid .num {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.5vw, 2.8rem);
  color: var(--ll-ivory);
  line-height: 1;
}
.stats-grid .num .suf { color: var(--ll-gold-warm); }
.stats-grid .lbl {
  font-size: .7rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(246,241,232,.55);
  margin-top: .55rem;
}
@media (max-width: 1199.98px) {
  .stats-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 575.98px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Philosophy */
.philosophy {
  background: var(--ll-black);
  color: var(--ll-ivory);
  position: relative;
  overflow: hidden;
}
.philosophy h2 { color: var(--ll-ivory); font-size: clamp(2.4rem, 4vw, 3.8rem); max-width: 16ch; }
.philosophy .phil-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 3.5rem;
}
.philosophy .phil-item {
  padding: 2rem 1.5rem 0 0;
  border-top: 1px solid rgba(201,166,75,.35);
}
.philosophy .phil-item h3 {
  color: var(--ll-ivory);
  font-size: 1.7rem;
  margin: 1.2rem 0 .8rem;
}
.philosophy .phil-item p { color: rgba(246,241,232,.7); font-weight: 300; }

/* Services overview */
.service-rail {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--ll-border);
  border: 1px solid var(--ll-border);
}
.service-rail a {
  background: var(--ll-ivory);
  padding: 2rem 1.5rem;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: background .35s var(--ease-luxury);
}
.service-rail a:hover { background: var(--ll-white); }
.service-rail .svc-num {
  font-size: .72rem;
  letter-spacing: .18em;
  color: var(--ll-gold);
}
.service-rail h3 {
  font-size: 1.55rem;
  margin: 1rem 0 .5rem;
}
.service-rail p { color: var(--ll-muted); font-size: .92rem; font-weight: 300; }
.service-rail .svc-link {
  margin-top: 1.5rem;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ll-gold);
}

/* Gallery mosaic */
.gallery-mosaic {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-rows: 280px 280px;
  gap: 1rem;
}
.gallery-mosaic .g-item {
  position: relative;
  overflow: hidden;
  background: var(--ll-charcoal);
}
.gallery-mosaic .g-item:first-child { grid-row: span 2; }
.gallery-mosaic img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1s var(--ease-luxury);
}
.gallery-mosaic .g-item:hover img { transform: scale(1.05); }
.gallery-mosaic .g-cap {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 1.25rem;
  background: linear-gradient(transparent, rgba(23,23,23,.75));
  color: var(--ll-ivory);
  font-family: var(--font-display);
  font-size: 1.35rem;
}

/* Before / After */
.ba-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
.ba-card { position: relative; overflow: hidden; min-height: 360px; }
.ba-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ba-card .ba-label {
  position: absolute;
  top: 1rem; left: 1rem;
  background: rgba(23,23,23,.72);
  color: var(--ll-ivory);
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: .4rem .7rem;
}

/* Packages */
.package-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.package-card {
  background: var(--ll-white);
  border: 1px solid var(--ll-border);
  padding: 2.25rem 1.85rem;
  position: relative;
  transition: transform .35s var(--ease-luxury), box-shadow .35s var(--ease-luxury);
}
.package-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-soft);
}
.package-card.featured {
  border-color: var(--ll-gold);
  background: linear-gradient(180deg, #fff 0%, #fbf7ef 100%);
}
.package-card .pkg-tag {
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ll-gold);
  margin-bottom: .75rem;
}
.package-card h3 { font-size: 2rem; margin-bottom: .35rem; }
.package-card .price {
  font-family: var(--font-display);
  font-size: 2.2rem;
  color: var(--ll-black);
  margin: 1.25rem 0 .25rem;
}
.package-card .price span {
  font-family: var(--font-body);
  font-size: .85rem;
  color: var(--ll-muted);
  letter-spacing: 0;
}
.package-card ul {
  margin: 1.5rem 0 2rem;
  display: grid;
  gap: .65rem;
}
.package-card li {
  font-size: .92rem;
  color: var(--ll-muted);
  padding-left: 1.1rem;
  position: relative;
}
.package-card li::before {
  content: '';
  position: absolute;
  left: 0; top: .55rem;
  width: 6px; height: 6px;
  background: var(--ll-gold);
}

/* Process steps */
.process-line {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
  counter-reset: step;
}
.process-line .step {
  border-top: 1px solid var(--ll-gold);
  padding-top: 1.5rem;
  position: relative;
}
.process-line .step::before {
  counter-increment: step;
  content: "0" counter(step);
  display: block;
  font-family: var(--font-display);
  font-size: 1.8rem;
  color: var(--ll-gold);
  margin-bottom: .75rem;
}
.process-line h4 { font-size: 1.35rem; margin-bottom: .5rem; }
.process-line p { font-size: .9rem; color: var(--ll-muted); font-weight: 300; }

/* Why choose */
.why-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 3rem;
  align-items: stretch;
}
.why-visual { min-height: 480px; position: relative; }
.why-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.why-list { display: grid; gap: 0; }
.why-list .why-item {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 1rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--ll-border);
}
.why-list .why-item i {
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border: 1px solid rgba(201,166,75,.4);
  color: var(--ll-gold);
  font-size: 1.15rem;
}

/* Testimonials */
.testimonials-section {
  position: relative;
  background:
    linear-gradient(180deg, #f8f4ec 0%, #fff 45%, #f6f1e8 100%);
}
.testimonial-slider .swiper-slide {
  background: var(--ll-white);
  border: 1px solid var(--ll-border);
  padding: 2.25rem;
  min-height: 320px;
  height: auto;
  display: flex;
  flex-direction: column;
  transition: transform .4s var(--ease-luxury), box-shadow .4s var(--ease-luxury);
}
.testimonial-slider .swiper-slide:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-soft);
}
.testimonial-slider .t-stars {
  color: var(--ll-gold);
  letter-spacing: .15em;
  font-size: .95rem;
  margin-bottom: 1rem;
}
.testimonial-slider .quote-mark {
  font-family: var(--font-display);
  font-size: 3.5rem;
  line-height: .5;
  color: rgba(201,166,75,.35);
  margin-bottom: .75rem;
}
.testimonial-slider .quote {
  font-family: var(--font-display);
  font-size: 1.45rem;
  line-height: 1.4;
  margin-bottom: 1.5rem;
  color: var(--ll-black);
  flex: 1;
}
.testimonial-slider .t-foot {
  display: flex;
  align-items: center;
  gap: .9rem;
  border-top: 1px solid var(--ll-border);
  padding-top: 1.1rem;
  margin-top: auto;
}
.testimonial-slider .t-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--ll-black);
  color: var(--ll-gold-warm);
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: 1.2rem;
  flex-shrink: 0;
}
.testimonial-slider .author {
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 600;
}
.testimonial-slider .meta { color: var(--ll-muted); font-size: .82rem; margin-top: .15rem; }
.testimonial-slider .t-tag {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: .45rem;
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ll-gold);
}
.testimonial-cta {
  text-align: center;
  margin-top: 2rem;
}
.testimonial-grid-page {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}
.testimonial-card-lg {
  background: var(--ll-white);
  border: 1px solid var(--ll-border);
  padding: 2rem;
  height: 100%;
  display: flex;
  flex-direction: column;
}
@media (max-width: 767.98px) {
  .testimonial-grid-page { grid-template-columns: 1fr; }
}

/* Branches */
.branch-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
.branch-card {
  background: var(--ll-black);
  color: var(--ll-ivory);
  padding: 2.5rem;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.branch-card h3 { color: var(--ll-ivory); font-size: 2rem; }
.branch-card p { color: rgba(246,241,232,.72); font-weight: 300; }
.branch-card .city {
  color: var(--ll-gold);
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  margin-bottom: .75rem;
}

/* CTA band */
.cta-band {
  background:
    linear-gradient(120deg, rgba(23,23,23,.82), rgba(23,23,23,.55)),
    url('https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?auto=format&fit=crop&w=1800&q=80') center/cover;
  color: var(--ll-ivory);
  text-align: center;
  padding: 6rem 1.5rem;
}
.cta-band h2 {
  color: var(--ll-ivory);
  font-size: clamp(2.4rem, 4.5vw, 3.8rem);
  max-width: 16ch;
  margin: .75rem auto 1rem;
}
.cta-band p {
  color: rgba(246,241,232,.78);
  max-width: 34rem;
  margin: 0 auto 2rem;
  font-weight: 300;
}

/* Footer — architectural / unique */
.site-footer.footer-luxe {
  background:
    radial-gradient(ellipse at 20% 0%, rgba(201,166,75,.12), transparent 45%),
    radial-gradient(ellipse at 90% 80%, rgba(215,182,109,.08), transparent 40%),
    #0e0e0e;
  color: rgba(246,241,232,.72);
  padding: 0 0 1.75rem;
  position: relative;
  overflow: hidden;
}
.footer-marquee {
  border-bottom: 1px solid rgba(201,166,75,.2);
  overflow: hidden;
  padding: 1rem 0;
  white-space: nowrap;
}
.marquee-track {
  display: inline-flex;
  align-items: center;
  gap: 1.5rem;
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  color: rgba(246,241,232,.55);
  will-change: transform;
  width: max-content;
  animation: marqueeCSS 32s linear infinite;
}
.marquee-track.gsap-driven { animation: none; }
.marquee-track .dot { color: var(--ll-gold); font-size: .9rem; }
@keyframes marqueeCSS {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.footer-main { padding-top: 4rem; position: relative; z-index: 1; }
.footer-hero-row {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 2rem;
  align-items: end;
  margin-bottom: 3.5rem;
  position: relative;
}
.footer-mark {
  height: 56px;
  width: auto;
  margin-bottom: 1.5rem;
  filter: none;
}
.footer-brand-block h2 {
  font-size: clamp(2.4rem, 5vw, 4rem);
  color: var(--ll-ivory);
  margin: 0 0 1rem;
  max-width: 10ch;
}
.footer-brand-block h2 em {
  font-style: italic;
  color: var(--ll-gold-warm);
}
.footer-brand-block p {
  max-width: 28rem;
  margin-bottom: 1.75rem;
  font-weight: 300;
}
.footer-cta-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.footer-mega-word {
  font-family: var(--font-display);
  font-size: clamp(5rem, 16vw, 12rem);
  line-height: .8;
  letter-spacing: -.04em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(201,166,75,.28);
  text-align: right;
  user-select: none;
  transform: translateY(.15em);
}
.footer-columns {
  display: grid;
  grid-template-columns: .9fr .9fr 1.3fr 1.1fr;
  gap: 2rem;
  padding-top: 2.5rem;
  border-top: 1px solid rgba(201,166,75,.18);
  margin-bottom: 2.5rem;
}
.site-footer h5 {
  color: var(--ll-gold-warm);
  font-family: var(--font-body);
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  margin-bottom: 1.1rem;
  display: flex;
  align-items: center;
  gap: .45rem;
}
.site-footer h5 i { font-size: .95rem; }
.site-footer a { color: rgba(246,241,232,.72); }
.site-footer a:hover { color: var(--ll-gold-warm); }
.site-footer ul { display: grid; gap: .55rem; }
.footer-links a {
  display: flex;
  align-items: center;
  gap: .65rem;
  font-size: .92rem;
  transition: gap .3s var(--ease-luxury), color .25s;
}
.footer-links a i {
  color: var(--ll-gold);
  width: 1rem;
  text-align: center;
  font-size: .95rem;
  opacity: .9;
}
.footer-links a:hover { gap: .85rem; }
.footer-address {
  display: flex;
  gap: .65rem;
  font-size: .9rem;
  font-weight: 300;
  line-height: 1.7;
  margin: 0;
}
.footer-address > i {
  color: var(--ll-gold);
  margin-top: .2rem;
  flex-shrink: 0;
}
.footer-studio p { font-size: .9rem; font-weight: 300; line-height: 1.7; }
.footer-contact-card {
  background: rgba(246,241,232,.03);
  border: 1px solid rgba(201,166,75,.22);
  padding: 1.5rem;
  position: relative;
}
.footer-contact-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 40px; height: 1px;
  background: var(--ll-gold);
}
.footer-phone, .footer-mail {
  display: flex;
  align-items: center;
  gap: .65rem;
  font-family: var(--font-display);
  font-size: 1.2rem;
  color: var(--ll-ivory) !important;
  margin-bottom: .45rem;
}
.footer-phone i, .footer-mail i {
  color: var(--ll-gold);
  font-size: 1rem;
  font-family: bootstrap-icons !important;
  font-style: normal;
}
.footer-mail {
  font-size: .95rem;
  font-family: var(--font-body);
  color: var(--ll-gold-warm) !important;
  margin-top: .75rem;
}
.foot-bottom i { margin-right: .35rem; color: var(--ll-gold); }
.footer-social {
  display: flex;
  gap: .75rem;
  margin-top: 1.25rem;
}
.footer-social a {
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border: 1px solid rgba(201,166,75,.35);
  color: var(--ll-gold-warm);
  transition: .3s var(--ease-luxury);
}
.footer-social a:hover {
  background: var(--ll-gold);
  color: var(--ll-black);
  border-color: var(--ll-gold);
}
.site-footer .foot-bottom {
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: 1.35rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  font-size: .82rem;
}
.site-footer .foot-bottom a { margin-left: 1rem; }

/* Filters / cards for portfolio */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 2rem;
}
.filter-chip {
  border: 1px solid var(--ll-border);
  background: transparent;
  padding: .55rem 1rem;
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ll-muted);
  cursor: pointer;
  transition: all .25s;
}
.filter-chip:hover,
.filter-chip.active {
  border-color: var(--ll-gold);
  color: var(--ll-black);
  background: var(--ll-gold-soft);
}

.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.portfolio-card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/5;
  background: var(--ll-charcoal);
}
.portfolio-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1s var(--ease-luxury);
}
.portfolio-card:hover img { transform: scale(1.05); }
.portfolio-card .pc-meta {
  position: absolute;
  inset: auto 0 0 0;
  padding: 1.5rem;
  background: linear-gradient(transparent, rgba(23,23,23,.8));
  color: var(--ll-ivory);
  transform: translateY(8px);
  transition: transform .35s var(--ease-luxury);
}
.portfolio-card:hover .pc-meta { transform: none; }
.portfolio-card h3 { color: var(--ll-ivory); font-size: 1.55rem; margin: .2rem 0; }
.portfolio-card .tag {
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ll-gold-warm);
}

/* Material gallery */
.material-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.material-card {
  background: var(--ll-white);
  border: 1px solid var(--ll-border);
  overflow: hidden;
}
.material-card .thumb { aspect-ratio: 1; overflow: hidden; }
.material-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.material-card:hover .thumb img { transform: scale(1.06); }
.material-card .body { padding: 1rem 1.1rem 1.25rem; }
.material-card h4 { font-size: 1.2rem; margin: 0 0 .25rem; }
.material-card .meta { font-size: .8rem; color: var(--ll-muted); }

/* Enquiry wizard */
.wizard-shell {
  max-width: 920px;
  margin: 0 auto;
  background: var(--ll-white);
  border: 1px solid var(--ll-border);
  box-shadow: var(--shadow-soft);
}
.wizard-progress {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  background: var(--ll-black);
}
.wizard-progress .wp-step {
  padding: 1.1rem .75rem;
  text-align: center;
  color: rgba(246,241,232,.45);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  border-right: 1px solid var(--ll-border-dark);
  position: relative;
}
.wizard-progress .wp-step:last-child { border-right: 0; }
.wizard-progress .wp-step.active { color: var(--ll-gold-warm); }
.wizard-progress .wp-step.done { color: var(--ll-ivory); }
.wizard-body { padding: 2.5rem; }
.wizard-body h2 { font-size: 2.2rem; margin-bottom: .5rem; }
.choice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
}
.choice-pill {
  border: 1px solid var(--ll-border);
  padding: .9rem 1rem;
  text-align: center;
  cursor: pointer;
  font-size: .9rem;
  transition: all .25s;
  user-select: none;
}
.choice-pill:hover,
.choice-pill.selected {
  border-color: var(--ll-gold);
  background: var(--ll-gold-soft);
}
.wizard-nav {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--ll-border);
}
.form-ll .form-label {
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ll-muted);
  margin-bottom: .4rem;
}
.form-ll .form-control,
.form-ll .form-select {
  border-radius: var(--radius);
  border-color: var(--ll-border);
  padding: .8rem 1rem;
  background: var(--ll-ivory);
}
.form-ll .form-control:focus,
.form-ll .form-select:focus {
  border-color: var(--ll-gold);
  box-shadow: 0 0 0 .2rem rgba(201,166,75,.15);
}

/* Comparison table */
.compare-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--ll-white);
}
.compare-table th,
.compare-table td {
  padding: 1rem 1.1rem;
  border-bottom: 1px solid var(--ll-border);
  text-align: left;
  vertical-align: top;
  font-size: .92rem;
}
.compare-table thead th {
  background: var(--ll-black);
  color: var(--ll-ivory);
  font-family: var(--font-body);
  font-size: .75rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 500;
}
.compare-table tbody th {
  font-weight: 500;
  color: var(--ll-charcoal);
  width: 22%;
}

/* Login */
.login-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
}
.login-visual {
  position: relative;
  background: var(--ll-black);
  overflow: hidden;
}
.login-visual img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .65;
}
.login-visual .lv-content {
  position: relative; z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 3.5rem;
  color: var(--ll-ivory);
}
.login-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2.5rem;
  background: var(--ll-ivory);
}
.login-box { width: 100%; max-width: 420px; }
.demo-accounts {
  margin-top: 1.5rem;
  border: 1px solid var(--ll-border);
  background: var(--ll-white);
  padding: 1rem;
}
.demo-accounts button {
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  padding: .55rem 0;
  border-bottom: 1px solid var(--ll-border);
  font-size: .85rem;
  cursor: pointer;
  color: var(--ll-charcoal);
}
.demo-accounts button:last-child { border-bottom: 0; }
.demo-accounts button:hover { color: var(--ll-gold); }

/* Content pages */
.content-prose {
  max-width: 760px;
}
.content-prose h2 { font-size: 2rem; margin: 2rem 0 .75rem; }
.content-prose p { color: var(--ll-muted); margin-bottom: 1rem; }
.content-prose ul { list-style: disc; padding-left: 1.25rem; margin-bottom: 1rem; color: var(--ll-muted); }

@media (max-width: 991.98px) {
  .intro-split,
  .why-grid,
  .ba-compare,
  .branch-grid,
  .login-shell { grid-template-columns: 1fr; }
  .service-rail,
  .package-grid,
  .portfolio-grid { grid-template-columns: 1fr 1fr; }
  .process-line,
  .philosophy .phil-grid,
  .gallery-mosaic,
  .material-grid,
  .footer-hero-row,
  .footer-columns,
  .choice-grid { grid-template-columns: 1fr; }
  .footer-mega-word { text-align: left; font-size: 18vw; margin-top: 1rem; }
  .gallery-mosaic { grid-template-rows: auto; }
  .gallery-mosaic .g-item,
  .gallery-mosaic .g-item:first-child { grid-row: auto; min-height: 240px; }
  .intro-split .intro-visual { min-height: 360px; }
  .login-visual { min-height: 280px; }
  .wizard-progress { grid-template-columns: 1fr; }
  .wizard-progress .wp-step { border-right: 0; border-bottom: 1px solid var(--ll-border-dark); text-align: left; padding-left: 1rem; }
}

@media (max-width: 575.98px) {
  .service-rail,
  .package-grid,
  .portfolio-grid,
  .stat-row { grid-template-columns: 1fr; }
  .hero-cinematic .hero-content { padding-bottom: 4rem; }
  .wizard-body { padding: 1.5rem; }
  .brand-word { display: none; }
}

/* Page loader + motion utilities */
#ll-loader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: #0e0e0e;
  display: grid;
  place-items: center;
  transition: opacity .7s var(--ease-luxury), visibility .7s;
}
#ll-loader.done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.ll-loader-inner {
  text-align: center;
}
.ll-loader-inner img {
  height: 72px;
  width: auto;
  margin: 0 auto 1.25rem;
  animation: logoPulse 1.6s ease-in-out infinite;
}
.ll-loader-inner p {
  font-family: var(--font-display);
  color: var(--ll-gold-warm);
  letter-spacing: .2em;
  text-transform: uppercase;
  font-size: .75rem;
  margin: .9rem 0 0;
}
.ll-loader-bar {
  width: 120px;
  height: 1px;
  background: rgba(201,166,75,.2);
  margin: 0 auto;
  overflow: hidden;
}
.ll-loader-bar span {
  display: block;
  height: 100%;
  width: 40%;
  background: var(--ll-gold);
  animation: loadSlide 1.1s ease-in-out infinite;
}
@keyframes logoPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.06); opacity: .85; }
}
@keyframes loadSlide {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(320%); }
}

.reveal-img {
  overflow: hidden;
}
.img-zoom-hover {
  overflow: hidden;
}
.img-zoom-hover img {
  transition: transform 1.1s var(--ease-luxury);
}
.img-zoom-hover:hover img { transform: scale(1.06); }

.service-rail a,
.package-card,
.portfolio-card,
.material-card,
.branch-card {
  transition: transform .45s var(--ease-luxury), box-shadow .45s var(--ease-luxury), border-color .3s;
}
.service-rail a:hover,
.package-card:hover {
  transform: translateY(-6px);
}
.branch-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 60px rgba(0,0,0,.35);
}

.cta-band {
  position: relative;
  overflow: hidden;
}
.cta-band::after {
  content: '';
  position: absolute;
  inset: -40%;
  background: radial-gradient(circle at 30% 40%, rgba(201,166,75,.18), transparent 40%);
  animation: ctaGlow 8s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes ctaGlow {
  from { transform: translate(0,0); }
  to { transform: translate(8%, 6%); }
}

.grain-overlay::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .04;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* =========================================================
   Inner page — cinematic enhancements
   ========================================================= */
.page-hero-luxe {
  position: relative;
  min-height: 58vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  color: var(--ll-ivory);
}
.page-hero-luxe .hero-media { position: absolute; inset: 0; }
.page-hero-luxe .hero-media img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.08);
  animation: heroZoom 16s var(--ease-luxury) infinite alternate;
}
.page-hero-luxe .hero-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(14,14,14,.35) 0%, rgba(14,14,14,.78) 100%),
    linear-gradient(90deg, rgba(14,14,14,.55), transparent 55%);
}
.page-hero-luxe .hero-content {
  position: relative; z-index: 2;
  width: 100%;
  padding: 0 0 3.5rem;
}
.page-hero-luxe h1 {
  font-size: clamp(2.8rem, 6vw, 5rem);
  color: var(--ll-ivory);
  max-width: 14ch;
  margin: .4rem 0 0;
}
.page-hero-luxe .hero-sub {
  max-width: 34rem;
  color: rgba(246,241,232,.78);
  font-weight: 300;
  margin-top: 1rem;
}
.journey-strip {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2rem;
  align-items: center;
  background: var(--ll-black);
  color: var(--ll-ivory);
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(201,166,75,.25);
}
.journey-year {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);
  color: var(--ll-gold-warm);
  line-height: 1;
  padding-left: 1rem;
}
.journey-copy { font-weight: 300; color: rgba(246,241,232,.75); max-width: 40rem; margin: 0; }

.timeline-journey {
  position: relative;
  padding: 1rem 0 0;
}
.timeline-journey::before {
  content: '';
  position: absolute;
  left: 18px; top: 0; bottom: 0;
  width: 1px;
  background: linear-gradient(var(--ll-gold), transparent);
}
.tj-item {
  position: relative;
  padding: 0 0 2.5rem 3.5rem;
}
.tj-item::before {
  content: '';
  position: absolute;
  left: 11px; top: .45rem;
  width: 15px; height: 15px;
  border-radius: 50%;
  border: 2px solid var(--ll-gold);
  background: var(--ll-ivory);
}
.tj-item .yr {
  font-family: var(--font-display);
  font-size: 1.8rem;
  color: var(--ll-gold);
  margin-bottom: .25rem;
}

.svc-feature {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 0;
  min-height: 420px;
  margin-bottom: 1.25rem;
  overflow: hidden;
  background: var(--ll-black);
}
.svc-feature:nth-child(even) { grid-template-columns: .85fr 1.15fr; }
.svc-feature:nth-child(even) .svc-copy { order: -1; }
.svc-feature .svc-media { position: relative; min-height: 320px; overflow: hidden; }
.svc-feature .svc-media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s var(--ease-luxury);
}
.svc-feature:hover .svc-media img { transform: scale(1.06); }
.svc-feature .svc-copy {
  padding: clamp(1.75rem, 4vw, 3rem);
  color: var(--ll-ivory);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.svc-feature .svc-num {
  font-size: .72rem;
  letter-spacing: .2em;
  color: var(--ll-gold);
  margin-bottom: .75rem;
}
.svc-feature h3 {
  color: var(--ll-ivory);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  margin-bottom: .75rem;
}
.svc-feature p { color: rgba(246,241,232,.72); font-weight: 300; }

.pkg-showcase {
  display: grid;
  gap: 2rem;
}
.pkg-row {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 0;
  background: var(--ll-white);
  border: 1px solid var(--ll-border);
  overflow: hidden;
  min-height: 360px;
}
.pkg-row.reverse { grid-template-columns: 1.1fr .9fr; }
.pkg-row.reverse .pkg-visual { order: 2; }
.pkg-visual { position: relative; min-height: 300px; }
.pkg-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pkg-body { padding: clamp(1.75rem, 3vw, 2.75rem); }
.pkg-body .price-xl {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  margin: 1rem 0 .35rem;
}
.pkg-meta-row {
  display: flex; flex-wrap: wrap; gap: .75rem;
  margin: 1rem 0 1.25rem;
}
.pkg-chip {
  border: 1px solid rgba(201,166,75,.4);
  color: var(--ll-gold);
  padding: .35rem .7rem;
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.portfolio-masonry {
  columns: 3 280px;
  column-gap: 1.1rem;
}
.portfolio-masonry .pm-card {
  break-inside: avoid;
  margin-bottom: 1.1rem;
  position: relative;
  overflow: hidden;
  background: var(--ll-charcoal);
  display: block;
}
.portfolio-masonry .pm-card img {
  width: 100%;
  display: block;
  transition: transform 1s var(--ease-luxury);
}
.portfolio-masonry .pm-card:hover img { transform: scale(1.05); }
.portfolio-masonry .pm-card .pm-meta {
  position: absolute; inset: auto 0 0 0;
  padding: 1.25rem;
  background: linear-gradient(transparent, rgba(14,14,14,.85));
  color: var(--ll-ivory);
  transform: translateY(12px);
  opacity: 0;
  transition: .4s var(--ease-luxury);
}
.portfolio-masonry .pm-card:hover .pm-meta { transform: none; opacity: 1; }
.portfolio-masonry .pm-card h3 { color: var(--ll-ivory); font-size: 1.4rem; margin: .2rem 0; }

.mat-hero-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-rows: 200px 200px;
  gap: .85rem;
  margin-bottom: 2.5rem;
}
.mat-hero-grid .mh {
  position: relative; overflow: hidden; background: var(--ll-charcoal);
}
.mat-hero-grid .mh:first-child { grid-row: span 2; }
.mat-hero-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s; }
.mat-hero-grid .mh:hover img { transform: scale(1.06); }
.mat-hero-grid .mh span {
  position: absolute; left: 1rem; bottom: 1rem;
  color: var(--ll-ivory);
  font-family: var(--font-display);
  font-size: 1.25rem;
}

.material-grid.lux .material-card {
  transition: transform .4s var(--ease-luxury), box-shadow .4s;
}
.material-grid.lux .material-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-soft);
}

.process-vertical {
  max-width: 820px;
  margin: 0 auto;
}
.pv-step {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 1.5rem;
  padding: 2rem 0;
  border-bottom: 1px solid var(--ll-border);
}
.pv-step .pv-num {
  font-family: var(--font-display);
  font-size: 3rem;
  color: var(--ll-gold);
  line-height: 1;
}
.pv-step h3 { font-size: 1.8rem; margin-bottom: .5rem; }
.stage-orbit {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 2rem;
}
.stage-pill {
  border: 1px solid var(--ll-border);
  padding: .65rem 1rem;
  font-size: .8rem;
  background: var(--ll-white);
  transition: .3s;
}
.stage-pill:hover {
  border-color: var(--ll-gold);
  background: var(--ll-gold-soft);
}

.stat-band-2020 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--ll-border);
  border: 1px solid var(--ll-border);
  margin: 2.5rem 0;
}
.stat-band-2020 > div {
  background: var(--ll-white);
  padding: 1.75rem 1.25rem;
  text-align: center;
}
.stat-band-2020 .n {
  font-family: var(--font-display);
  font-size: 2.4rem;
  color: var(--ll-black);
  line-height: 1;
}
.stat-band-2020 .l {
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ll-muted);
  margin-top: .45rem;
}

@media (max-width: 991.98px) {
  .svc-feature,
  .svc-feature:nth-child(even),
  .pkg-row,
  .pkg-row.reverse,
  .journey-strip,
  .mat-hero-grid { grid-template-columns: 1fr; }
  .svc-feature:nth-child(even) .svc-copy { order: 0; }
  .pkg-row.reverse .pkg-visual { order: 0; }
  .mat-hero-grid { grid-template-rows: auto; }
  .mat-hero-grid .mh:first-child { grid-row: auto; min-height: 260px; }
  .stat-band-2020 { grid-template-columns: 1fr 1fr; }
  .portfolio-masonry { columns: 2 200px; }
}
@media (max-width: 575.98px) {
  .stat-band-2020 { grid-template-columns: 1fr; }
  .portfolio-masonry { columns: 1; }
  .pv-step { grid-template-columns: 60px 1fr; }
}
