/* ==========================================================================
   CONCEPT 3 — MERIDIAN
   Editorial luxury system. Deep teal × paper, one obsessive motif: the facet.
   ========================================================================== */

body { background: var(--c-paper); color: var(--t-body-on-light); }

/* ---------- Preloader --------------------------------------------------- */

.preloader {
  position: fixed;
  inset: 0;
  z-index: var(--z-loader);
  display: grid;
  place-content: center;
  gap: var(--sp-4);
  justify-items: center;
  background: var(--c-teal-deep);
  transition: opacity 0.6s var(--ease-out), visibility 0s 0.6s;
}
.preloader.is-done { opacity: 0; visibility: hidden; }
.preloader__icon { inline-size: clamp(5rem, 10vw, 8rem); }
.preloader__icon svg { inline-size: 100%; block-size: auto; }
.preloader__icon .facet {
  opacity: 0;
  transform: scale(0.6);
  transform-origin: center;
  transform-box: fill-box;
  transition: opacity 0.5s var(--ease-out), transform 0.7s var(--ease-out-expo);
}
.preloader.is-assembling .facet { opacity: 1; transform: scale(1); }
.preloader.is-assembling .facet--purple { transition-delay: 0.05s; }
.preloader.is-assembling .facet--indigo { transition-delay: 0.15s; }
.preloader.is-assembling .facet--sage   { transition-delay: 0.25s; }
.preloader.is-assembling .facet--aqua   { transition-delay: 0.35s; }
.preloader.is-assembling .facet--teal   { transition-delay: 0.45s; }
.preloader.is-assembling .facet--slate  { transition-delay: 0.55s; }
.preloader__word {
  color: var(--t-strong-on-dark);
  font-size: var(--fs-small);
  letter-spacing: 0.5em;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity 0.6s var(--ease-out) 0.7s;
}
.preloader.is-assembling .preloader__word { opacity: 0.85; }
@media (prefers-reduced-motion: reduce) {
  .preloader { display: none; }
}
.is-static .preloader, .no-js .preloader { display: none; }

/* ---------- Header ------------------------------------------------------ */

.site-header {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: var(--z-nav);
  padding-block: var(--sp-3);
  transition: background var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast);
}
.site-header.has-scrolled {
  background: rgba(242, 243, 241, 0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 var(--c-mist);
}
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); position: relative; z-index: 2; }
/* white lockup over the teal hero; full-color lockup on the scrolled
   paper-glass bar (color logo belongs on light grounds) */
.site-header__brand { display: block; }
.site-header__brand img { inline-size: clamp(8rem, 11vw, 9.5rem); block-size: auto; }
.site-header__logo--color { display: none; }
.has-scrolled .site-header__logo--light { display: none; }
.has-scrolled .site-header__logo--color { display: block; }

/* over the teal hero, links are light; after scroll they invert */
.site-nav ul { display: flex; gap: var(--sp-4); }
.site-nav a {
  position: relative;
  font-size: var(--fs-small);
  font-weight: var(--fw-medium);
  color: var(--t-strong-on-dark);
  padding-block: 0.4em;
}
.has-scrolled .site-nav a { color: var(--c-charcoal); }
.site-nav a::after {
  content: "";
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  inline-size: 100%;
  block-size: 2px;
  background: var(--c-aqua);
  scale: 0 1;
  transform-origin: left;
  transition: scale 0.45s var(--ease-out);
}
[dir="rtl"] .site-nav a::after { transform-origin: right; }
.site-nav a:hover::after, .site-nav a:focus-visible::after { scale: 1 1; }

.site-header__actions { display: flex; gap: var(--sp-3); align-items: center; }

.burger { display: none; flex-direction: column; gap: 6px; inline-size: 2.75rem; block-size: 2.75rem; justify-content: center; }
.burger span { display: block; block-size: 2px; inline-size: 1.6rem; margin-inline: auto; background: var(--t-strong-on-dark); transition: rotate var(--dur-fast), translate var(--dur-fast); }
.has-scrolled .burger span { background: var(--c-charcoal); }
.burger[aria-expanded="true"] span:first-child { translate: 0 4px; rotate: 30deg; }
.burger[aria-expanded="true"] span:last-child { translate: 0 -4px; rotate: -30deg; }

.m-menu {
  position: fixed;
  inset: 0;
  z-index: 1;
  display: grid;
  place-content: center;
  background: var(--c-teal-deep);
  opacity: 0;
  transition: opacity var(--dur-fast);
}
.m-menu[hidden] { display: none; }
.m-menu.is-open { opacity: 1; }
.m-menu ul { display: grid; gap: var(--sp-4); text-align: center; }
.m-menu a { color: var(--t-strong-on-dark); font-size: var(--fs-h3); }

@media (max-width: 63.9rem) {
  .site-nav, .site-header__actions .btn { display: none; }
  .burger { display: flex; }
}

/* ---------- Hero -------------------------------------------------------- */

.hero {
  position: relative;
  min-block-size: 100svh;
  display: grid;
  background:
    radial-gradient(90rem 50rem at 110% 120%, rgba(125, 191, 187, 0.14), transparent 55%),
    var(--c-teal-deep);
  color: var(--t-body-on-dark);
  overflow: clip;
}
.hero__mesh, .hero__fallback {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  pointer-events: none;
}
.hero__fallback {
  display: none;
  background: url("../../_shared/brand/escan-pattern.svg") center / cover no-repeat;
  opacity: 0.1;
  filter: invert(1);
}
.no-webgl .hero__fallback, .is-static .hero__fallback { display: block; }
@media (prefers-reduced-motion: reduce) {
  .hero__mesh { display: none; }
  .hero__fallback { display: block; }
}

/* Split-screen: type over the gridshell left, edge-to-edge imagery right */
.hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
  align-items: stretch;
  inline-size: 100%;
  min-block-size: 100svh;
}

.hero__copy {
  align-self: center;
  /* leading edge tracks the centered container's grid line on wide screens */
  padding: 9rem var(--sp-6) 4rem
    max(var(--sp-gutter), calc((100vw - var(--content-max)) / 2 + var(--sp-gutter)));
  max-inline-size: calc(46rem + max(0px, (100vw - var(--content-max)) / 2));
}

.hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2) var(--sp-5);
  margin-block-start: var(--sp-6);
  padding-block-start: var(--sp-4);
  border-block-start: 1px solid rgba(244, 245, 243, 0.18);
}
.hero__meta li {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 0.5em;
  font-size: var(--fs-label);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--t-faint-on-dark);
}
.hero__meta strong {
  font-size: 1.35rem;
  font-weight: var(--fw-bold);
  font-stretch: 82%;
  letter-spacing: 0;
  color: var(--c-aqua);
  font-variant-numeric: tabular-nums;
}

.hero .kicker { color: var(--c-aqua); }
.hero__title { display: grid; margin-block: var(--sp-4); text-transform: uppercase; line-height: 0.98; }
.hero__title-thin {
  font-size: clamp(2.5rem, 1rem + 5.2vw, 5.75rem);
  font-weight: var(--fw-light);
  letter-spacing: 0.02em;
  color: var(--t-strong-on-dark);
}
.hero__title-bold {
  font-size: clamp(3rem, 1rem + 6.8vw, 7.5rem);
  font-weight: var(--fw-bold);
  font-stretch: 78%;
  color: var(--c-aqua);
}
.hero__lead { max-inline-size: 30rem; font-size: var(--fs-lead); }
.hero__actions { display: flex; gap: var(--sp-3); margin-block-start: var(--sp-5); flex-wrap: wrap; }

/* full-height media panel with the brand's 60° angled cut on its leading edge */
.hero__showcase {
  position: relative;
  block-size: 100%;
  min-block-size: 100svh;
  clip-path: polygon(clamp(3rem, 6vw, 6rem) 0, 100% 0, 100% 100%, 0 100%);
}
.hero__showcase .swiper {
  position: absolute;
  inset: 0;
  block-size: 100%;
}
.hero__showcase .swiper-slide { position: relative; overflow: hidden; }
.hero__showcase img { inline-size: 100%; block-size: 100%; object-fit: cover; }
/* teal wash keeps the panel in the section's world */
.hero__showcase::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(100deg, rgba(36, 84, 91, 0.42), transparent 45%, rgba(30, 31, 33, 0.25) 100%);
}
.hero__slide-tag {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  background: rgba(30, 31, 33, 0.72);
  backdrop-filter: blur(6px);
  color: var(--t-strong-on-dark);
  font-size: var(--fs-small);
  padding: 0.6em 1.2em;
  border-start-end-radius: var(--radius-m);
}
.hero__dots {
  position: absolute;
  inset-block-end: var(--sp-2);
  inset-inline-end: var(--sp-2);
  z-index: 2;
  display: flex;
}
/* 24px+ hit target; the visible diamond is the ::before */
.hero__dots button {
  inline-size: 1.6rem;
  block-size: 1.6rem;
  display: grid;
  place-items: center;
  background: transparent;
}
.hero__dots button::before {
  content: "";
  inline-size: 0.7rem;
  block-size: 0.7rem;
  rotate: 45deg;
  border: 1px solid rgba(244, 245, 243, 0.7);
  transition: background var(--dur-fast), border-color var(--dur-fast);
}
.hero__dots button[aria-current="true"]::before { background: var(--c-aqua); border-color: var(--c-aqua); }

@media (max-width: 63.9rem) {
  .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .hero__copy { padding: 8rem var(--sp-gutter) 3rem; max-inline-size: none; }
  .hero__showcase {
    min-block-size: 55svh;
    clip-path: polygon(0 clamp(1.5rem, 6vw, 3rem), 100% 0, 100% 100%, 0 100%);
  }
}

/* ---------- Stat strip -------------------------------------------------- */

.strip { background: var(--c-charcoal); color: var(--t-body-on-dark); padding-block: var(--sp-4); }
.strip__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: var(--sp-3) var(--sp-5);
}
.strip p { font-size: var(--fs-small); display: flex; align-items: baseline; gap: 0.6em; }
.strip strong {
  font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
  font-weight: var(--fw-bold);
  font-stretch: 82%;
  color: var(--c-aqua);
  font-variant-numeric: tabular-nums;
}

/* ---------- Solutions --------------------------------------------------- */

.sol { background: linear-gradient(180deg, #F5F6F4 0%, #ECEFEA 100%); }
.products { background: linear-gradient(180deg, #ECEFEA 0%, #F5F6F4 100%); }
.partners { background: linear-gradient(180deg, #F5F6F4 0%, #EDEFEB 100%); }

.sol__grid {
  display: grid;
  grid-template-columns: minmax(16rem, 1fr) minmax(0, 1.4fr);
  gap: var(--sp-6);
  position: relative;
}
/* heading column rides along while the rows scroll — no dead space below */
.sol__intro { position: sticky; inset-block-start: 8.5rem; align-self: start; }
.sol__intro h2 { font-size: var(--fs-h2); margin-block: var(--sp-3) var(--sp-4); }
@media (max-width: 63.9rem) {
  .sol__intro { position: static; }
}

.sol__list { grid-column: 2; display: grid; }

.sol__item a {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr) clamp(8rem, 12vw, 12rem);
  align-items: center;
  gap: var(--sp-4);
  padding-block: var(--sp-5);
  border-block-start: 1px solid rgba(43, 43, 43, 0.14);
  position: relative;
}
.sol__item:last-child a { border-block-end: 1px solid rgba(43, 43, 43, 0.14); }
.sol__item a::before {
  content: "";
  position: absolute;
  inset-block-start: -1px;
  inset-inline-start: 0;
  inline-size: 100%;
  block-size: 2px;
  background: linear-gradient(90deg, var(--c-teal), var(--c-aqua));
  scale: 0 1;
  transform-origin: left;
  transition: scale 0.6s var(--ease-out);
}
[dir="rtl"] .sol__item a::before { transform-origin: right; }
.sol__item a:hover::before, .sol__item a:focus-visible::before { scale: 1 1; }

.sol__idx {
  font-size: 2.6rem;
  font-weight: var(--fw-bold);
  font-stretch: 78%;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(43, 43, 43, 0.28);
  transition: -webkit-text-stroke-color var(--dur-fast);
}
.sol__item a:hover .sol__idx { -webkit-text-stroke-color: var(--c-teal); }

.sol__body { display: grid; gap: var(--sp-3); min-inline-size: 0; }
.sol__name {
  font-size: clamp(1.35rem, 1.1rem + 1.1vw, 1.9rem);
  font-weight: var(--fw-medium);
  color: var(--t-strong-on-light);
  transition: color var(--dur-fast);
}
.sol__item a:hover .sol__name, .sol__item a:focus-visible .sol__name { color: var(--c-teal); }
.sol__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.sol__tags i {
  font-style: normal;
  font-size: var(--fs-label);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--t-body-on-light);
  border: 1px solid rgba(43, 43, 43, 0.18);
  border-radius: var(--radius-pill);
  padding: 0.35em 0.9em;
  transition: border-color var(--dur-fast), color var(--dur-fast);
}
.sol__item a:hover .sol__tags i { border-color: rgba(54, 121, 130, 0.5); color: var(--c-teal); }

.sol__thumb {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  clip-path: polygon(0 0, calc(100% - 1rem) 0, 100% 1rem, 100% 100%, 0 100%);
}
.sol__thumb img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  transition: scale 0.9s var(--ease-out);
}
.sol__item a:hover .sol__thumb img { scale: 1.07; }

@media (max-width: 63.9rem) {
  .sol__grid { grid-template-columns: 1fr; }
  .sol__list { grid-column: auto; }
  .sol__item a { grid-template-columns: 3.5rem minmax(0, 1fr); }
  .sol__thumb { display: none; }
}

/* ---------- Services deck (Swiper cards) -------------------------------- */

.services { background: var(--c-teal-deep); color: var(--t-body-on-dark); overflow: clip; }
.services .kicker { color: var(--c-aqua); }
.services h2 { color: var(--t-strong-on-dark); font-size: var(--fs-h2); margin-block-start: var(--sp-3); }

/* intro + controls left, live deck right — no orphaned space */
.services__grid {
  display: grid;
  grid-template-columns: minmax(18rem, 1fr) minmax(0, 1.15fr);
  gap: clamp(var(--sp-5), 5vw, var(--sp-7));
  align-items: center;
}
.services__intro > p:not(.kicker) { margin-block-start: var(--sp-4); max-inline-size: 26rem; }

.services__counter {
  font-size: var(--fs-small);
  font-weight: var(--fw-bold);
  font-stretch: 82%;
  letter-spacing: 0.15em;
  color: var(--c-aqua);
  font-variant-numeric: tabular-nums;
  margin-inline-start: var(--sp-3);
}

.services__deck { position: relative; }
.services__deck .swiper {
  max-inline-size: 34rem;
  margin-inline: auto;
  overflow: visible;
}
@media (max-width: 63.9rem) {
  .services__grid { grid-template-columns: 1fr; }
  .services__deck { margin-block-start: var(--sp-5); }
}
.service-card {
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: var(--sp-3);
  background: var(--c-paper);
  color: var(--t-body-on-light);
  padding: var(--sp-5);
  border-radius: var(--radius-l);
  min-block-size: 26rem;
  box-shadow: var(--shadow-card);
}
.service-card__idx { font-size: var(--fs-small); letter-spacing: var(--ls-label); color: var(--c-teal); }
.service-card h3 { font-size: var(--fs-h3); color: var(--t-strong-on-light); }
.service-card img {
  inline-size: 100%;
  block-size: 11rem;
  object-fit: cover;
  border-radius: var(--radius-m);
  align-self: end;
}
.services__nav { display: flex; align-items: center; gap: var(--sp-3); margin-block-start: var(--sp-5); }
.services__btn {
  inline-size: 3.25rem;
  block-size: 3.25rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(244, 245, 243, 0.4);
  border-radius: 50%;
  color: var(--t-strong-on-dark);
  transition: background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);
}
.services__btn:hover, .services__btn:focus-visible { background: var(--c-aqua); border-color: var(--c-aqua); color: var(--c-ink); }

/* ---------- Products ---------------------------------------------------- */

.products__split {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(22rem, 100%), 1fr));
  gap: var(--sp-4);
  margin-block-start: var(--sp-6);
}
.product { position: relative; display: block; min-block-size: 24rem; overflow: hidden; background: var(--c-teal-deep); }
.product img {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: center 72%;
  filter: brightness(0.86) saturate(0.9) contrast(1.05);
  transition: scale 1.2s var(--ease-out), filter 0.5s var(--ease-out);
}
.product:hover img { scale: 1.045; filter: brightness(0.95) saturate(0.95) contrast(1.05); }
.product::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, rgba(36, 84, 91, 0.96) 10%, rgba(36, 84, 91, 0.45) 45%, rgba(36, 84, 91, 0.12) 75%, rgba(36, 84, 91, 0.05));
}
.product__body { position: absolute; inset-block-end: 0; z-index: 1; padding: var(--sp-5); color: var(--t-body-on-dark); }
.product__body h3 { color: var(--t-strong-on-dark); font-size: var(--fs-h3); }
.product__body h3 span { color: var(--c-aqua); font-weight: var(--fw-light); }
.product__body p { margin-block-start: var(--sp-2); max-inline-size: 26rem; }

/* ---------- Partners double marquee ------------------------------------- */

.partners { padding-block: var(--sp-section); overflow: hidden; }
.partners .kicker { margin-block-end: var(--sp-5); }
.partners .marquee { padding-block: var(--sp-3); }
.partners__row {
  display: flex;
  align-items: center;
  gap: var(--sp-5);
  padding-inline-end: var(--sp-5); /* completes the loop period exactly */
  inline-size: max-content;
}
.partners__row span {
  font-size: clamp(1.75rem, 1.2rem + 2.6vw, 3.5rem);
  font-weight: var(--fw-light);
  white-space: nowrap;
  color: var(--t-strong-on-light);
}
.partners__row--alt span { color: transparent; -webkit-text-stroke: 1px var(--t-faint-on-light); }
.partners__row i { inline-size: 0.6rem; block-size: 0.6rem; rotate: 45deg; background: var(--c-teal); opacity: 0.55; flex: none; }

/* ---------- Case cards -------------------------------------------------- */

.cases { background: linear-gradient(180deg, #EDEFEB 0%, #FAFAF9 55%, #F0F2EE 100%); }
.cases__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sp-4); margin-block-end: var(--sp-6); }
.cases__head h2 { font-size: var(--fs-h2); margin-block-start: var(--sp-3); }
.cases__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(19rem, 100%), 1fr)); gap: var(--sp-4); }
.case-card {
  --card-accent: var(--c-teal);
  display: grid;
  gap: var(--sp-3);
  background: #fff;
  border: 1px solid var(--c-mist);
  border-block-start: 3px solid var(--card-accent);
  border-radius: var(--radius-l);
  padding: var(--sp-3);
}
.case-card:nth-child(1) { --card-accent: var(--c-purple); }
.case-card:nth-child(2) { --card-accent: var(--c-teal); }
.case-card:nth-child(3) { --card-accent: var(--c-aqua); }
/* union of hover + reveal transitions — see base.css note on .btn.reveal */
.cases__grid .case-card {
  transition: translate 0.45s var(--ease-out),
              box-shadow 0.45s var(--ease-out),
              opacity var(--dur-slow) var(--ease-out);
}
.case-card:hover { translate: 0 -0.4rem; box-shadow: var(--shadow-card); }
.case-card figure { overflow: hidden; border-radius: var(--radius-m); aspect-ratio: 40 / 27; }
.case-card img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: scale 1.6s var(--ease-out); }
.case-card:hover img { scale: 1.06; }
.case-card__meta span { font-size: var(--fs-label); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--c-teal); }
.case-card h3 { font-size: var(--fs-h3); color: var(--t-strong-on-light); }
.case-card p { padding-block-end: var(--sp-2); }

/* ---------- Footer ------------------------------------------------------ */

.site-footer { background: var(--c-teal-deep); color: var(--t-body-on-dark); }
.mega-cta { display: grid; gap: var(--sp-3); padding-block: var(--sp-7); border-block-end: 1px solid rgba(244, 245, 243, 0.18); }
.mega-cta__kicker { font-size: var(--fs-label); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--c-aqua); }
.mega-cta__row { display: flex; align-items: center; gap: var(--sp-5); flex-wrap: wrap; }
.mega-cta__title {
  font-size: var(--fs-h1);
  font-weight: var(--fw-light);
  color: var(--t-strong-on-dark);
  transition: color var(--dur-fast);
}
.mega-cta__badge {
  display: grid;
  place-items: center;
  inline-size: clamp(3.5rem, 6vw, 5rem);
  aspect-ratio: 1;
  rotate: 45deg;
  border: 1px solid rgba(244, 245, 243, 0.4);
  transition: background var(--dur-fast), border-color var(--dur-fast), rotate 0.5s var(--ease-out);
}
.mega-cta__badge svg { rotate: -45deg; }
.mega-cta:hover .mega-cta__title { color: var(--c-aqua); }
.mega-cta:hover .mega-cta__badge { background: var(--c-aqua); border-color: var(--c-aqua); color: var(--c-ink); rotate: 90deg; }
.mega-cta:hover .mega-cta__badge svg { rotate: -90deg; }

.site-footer__grid {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: var(--sp-6);
  padding-block: var(--sp-6);
  align-items: start;
}
.site-footer__logo { inline-size: 6rem; block-size: auto; }
.site-footer nav ul { display: grid; gap: var(--sp-2); }
.site-footer a:hover { color: var(--c-aqua); }
.site-footer address { font-style: normal; }
.site-footer__social { display: grid; gap: var(--sp-2); justify-items: start; }
.site-footer__social a { font-size: var(--fs-small); border: 1px solid rgba(244, 245, 243, 0.25); border-radius: var(--radius-pill); padding: 0.35em 1em; }
.site-footer__social a:hover { border-color: var(--c-aqua); }
.site-footer__legal { padding-block: var(--sp-4); border-block-start: 1px solid rgba(244, 245, 243, 0.18); font-size: var(--fs-small); color: var(--t-faint-on-dark); }

@media (max-width: 63.9rem) {
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 47.9rem) {
  .site-footer__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   PREMIUM INTERFACE PASS — craft details
   ========================================================================== */

::selection { background: rgba(125, 191, 187, 0.4); }

/* ---- Typographic refinement: tighter display tracking, larger section
   headings, disciplined measures ---- */
h1, h2, h3 { letter-spacing: -0.018em; }
.kicker { letter-spacing: 0.22em; }
main section h2 {
  font-size: clamp(2.1rem, 1.15rem + 3vw, 4.1rem);
  line-height: 1.06;
}
.hero__lead, .sol__intro > p:not(.kicker), .services__intro > p:not(.kicker) {
  line-height: 1.75;
}

/* ---- Buttons: jewelry pass — taller, letterspaced, gradient face,
   tinted lift ---- */
.btn {
  min-block-size: 3.1rem;
  padding-block: 0;
  padding-inline: 1.9em;
  letter-spacing: 0.12em;
  gap: 0.9em;
  transition: color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              translate var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out);
}
.btn:hover { translate: 0 -2px; }
.btn:active { translate: 0 0; }
.btn--solid {
  background: linear-gradient(135deg, #93D3CD 0%, var(--c-aqua) 45%, #63AFAa 100%);
  border-color: transparent;
  box-shadow: 0 12px 28px -12px rgba(54, 121, 130, 0.55);
}
.btn--solid:hover { box-shadow: 0 18px 36px -14px rgba(54, 121, 130, 0.6); }

/* ---- Header: couture nav ---- */
.site-nav ul { gap: var(--sp-5); }
.site-nav a {
  font-size: 0.75rem;
  font-weight: var(--fw-medium);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.site-header__actions .btn {
  min-block-size: 2.7rem;
  padding-inline: 1.6em;
  font-size: 0.72rem;
}

/* ---- Materials: layered, brand-tinted shadows; hairline edges ---- */
.service-card {
  border-radius: var(--radius-l);
  box-shadow:
    0 1px 2px rgba(14, 35, 45, 0.06),
    0 28px 56px -18px rgba(14, 35, 45, 0.3);
}
.cases__grid .case-card {
  border-color: rgba(43, 43, 43, 0.08);
  box-shadow:
    0 1px 2px rgba(14, 35, 45, 0.04),
    0 12px 32px -14px rgba(36, 84, 91, 0.16);
}
.cases__grid .case-card:hover {
  box-shadow:
    0 2px 4px rgba(14, 35, 45, 0.05),
    0 30px 60px -18px rgba(36, 84, 91, 0.28);
}

/* ---- Imagery tone discipline: slightly muted at rest, alive on hover ---- */
.sol__thumb img, .case-card img, .service-card img, .product img {
  filter: saturate(0.86) contrast(1.02);
}
.sol__item a:hover .sol__thumb img,
.case-card:hover img,
.product:hover img { filter: saturate(1.02) contrast(1.02); }

/* ---- Custom cursor: dot + reactive ring (fine pointers only) ---- */
.cursor-dot, .cursor-ring {
  position: fixed;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: var(--z-cursor);
  pointer-events: none;
  border-radius: 50%;
  translate: -50% -50%;
  opacity: 0;
}
html.has-cursor .cursor-dot, html.has-cursor .cursor-ring { opacity: 1; }
.cursor-dot {
  inline-size: 6px;
  block-size: 6px;
  background: var(--c-aqua);
}
.cursor-ring {
  inline-size: 36px;
  block-size: 36px;
  border: 1px solid rgba(125, 191, 187, 0.5);
  transition: inline-size 0.25s var(--ease-out), block-size 0.25s var(--ease-out),
              border-color 0.25s var(--ease-out), background 0.25s var(--ease-out);
}
.cursor-ring.is-active {
  inline-size: 58px;
  block-size: 58px;
  border-color: rgba(125, 191, 187, 0.95);
  background: rgba(125, 191, 187, 0.08);
}
html.has-cursor, html.has-cursor a, html.has-cursor button { cursor: none; }
