/* DS-12 Night Shift Neon -- the page compositions.
 *
 * Grids only, no floats and no absolute positioning for layout. The only
 * absolutely positioned things in this file are the band line, the hero
 * wash, the reflection strips and the light traces, all of which are
 * pseudo-elements and none of which carries text.
 */

.grid { display: grid; gap: var(--s5); }

.ratio { margin: 0; }

/* ---------------------------------------------------------------------- *
 * the video-poster hero -- fingerprint row three
 *
 * The poster is the LCP element and it is a still image. The film is a text
 * link that opens in a new tab: no iframe, no embed, no downloaded video and
 * nothing that autoplays at any width, which is what section 7 requires at
 * 320px and what the third-party request count requires everywhere.
 * ---------------------------------------------------------------------- */

.hero {
  padding-block: var(--s8) var(--band-pad);
  overflow: hidden;
}

/* MATERIAL DISTINCTNESS: overlapping luminous stage and control layers. */
@media (min-width: 1100px) {
  body.p-index main { position:relative; overflow:clip; background:#050713; padding-block-end:8rem; }
  body.p-index main > .sec { position:relative; width:78%; min-height:72svh; display:grid; align-items:center; margin:0; border:1px solid rgba(47,236,255,.22); box-shadow:0 0 5rem rgba(235,32,123,.08); }
  body.p-index main > .hero { width:100%; min-height:100svh; z-index:1; }
  body.p-index main > .sec:nth-of-type(even) { margin-left:auto; transform:translateY(-4rem); z-index:3; }
  body.p-index main > .sec:nth-of-type(odd):not(.hero) { margin-right:auto; transform:translateY(-1rem); z-index:2; }
  body.p-index .svcp { width:86%; }
  body.p-index .appr { width:58%; }
  body.p-index .galp { width:92%; }
  body.p-index .stfp { width:72%; }
  body.p-index .revp { width:64%; }
  body.p-index .faqp { width:82%; }
  body.p-index .cta { width:100%; min-height:55svh; transform:none !important; }
}

.hero::after {
  content: "";
  position: absolute;
  top: -30%;
  inset-inline-end: -20%;
  width: 70%;
  height: 120%;
  pointer-events: none;
  background-color: transparent;
  background-image: radial-gradient(closest-side,
      rgba(108, 92, 231, 0.22), rgba(0, 212, 255, 0.10) 55%,
      rgba(7, 10, 18, 0) 100%);
}

.hero__grid { position: relative; display: grid; gap: var(--s7); }

.hero__eyebrow {
  margin: 0 0 var(--s4);
  font-family: var(--font-h);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--act);
}

.hero__h1 { margin-bottom: var(--s5); }

.hero__lede {
  font-size: clamp(1.0625rem, 2.2vw, 1.375rem);
  margin-bottom: var(--s6);
  color: var(--muted);
}

.hero__second {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 700;
  font-size: 0.875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--act);
  text-decoration: underline;
  text-underline-offset: 5px;
}

.hero__note {
  font-size: 0.8125rem;
  color: var(--muted);
}

.hero__media {
  position: relative;
  margin: 0;
  padding: 6px;
  background-color: var(--panel);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  box-shadow: var(--lift-2);
}

.hero__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 2px;
}

/* The reflection mask: a mirrored wash under the poster. It is ornament, it
 * holds no text, and it is paired with a solid colour so the sweep resolves
 * a real ground if it ever walks through it. */
.hero__media::after {
  content: "";
  position: absolute;
  inset-inline: 6px;
  bottom: 6px;
  height: 34%;
  pointer-events: none;
  background-color: transparent;
  background-image: linear-gradient(to top,
      rgba(7, 10, 18, 0.72), rgba(7, 10, 18, 0) 100%);
}

.hero__cap {
  position: relative;
  margin: var(--s3) 0 0;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: var(--muted);
}

/* Section 7: 4:5 at 320, widening to 3:4 from 390. */
@media (min-width: 390px) { .hero__media img { aspect-ratio: 3 / 4; } }
@media (min-width: 768px) { .hero__media img { aspect-ratio: 16 / 9; } }

@media (min-width: 1024px) {
  .hero__grid {
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    align-items: center;
  }
  .hero__media img { aspect-ratio: 3 / 2; }
}

/* ---------------------------------------------------------------------- *
 * page heads
 * ---------------------------------------------------------------------- */

.phead { padding-block: var(--s8) var(--s7); }
.phead::before { display: none; }

.phead__h1 { margin-bottom: var(--s5); }

.phead__lede {
  font-size: clamp(1.0625rem, 2vw, 1.25rem);
  margin: 0;
  color: var(--muted);
  max-width: var(--measure);
}

/* ---------------------------------------------------------------------- *
 * the light trace -- fingerprint row six
 *
 * A two-pixel gradient line runs across the top edge of a raised card on
 * :hover and :focus-within and at no other time. There is no load animation
 * and no scroll animation anywhere in this unit.
 * ---------------------------------------------------------------------- */

.svcp__item,
.svc__row,
.gal__item,
.galp__item,
.stf__card,
.rev__card,
.revp__item,
.prin__item {
  position: relative;
  overflow: hidden;
  background-color: var(--panel);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  box-shadow: var(--lift);
  transition: border-color var(--t), box-shadow var(--t),
              background-color var(--t);
}

.svcp__item::before,
.svc__row::before,
.gal__item::before,
.galp__item::before,
.stf__card::before,
.rev__card::before,
.revp__item::before,
.prin__item::before {
  content: "";
  position: absolute;
  top: 0;
  inset-inline: 0;
  height: 2px;
  background-color: var(--act);
  background-image: var(--trace);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--t);
}

.svcp__item:hover, .svcp__item:focus-within,
.svc__row:hover, .svc__row:focus-within,
.gal__item:hover, .gal__item:focus-within,
.galp__item:hover, .galp__item:focus-within,
.stf__card:hover, .stf__card:focus-within,
.rev__card:hover, .rev__card:focus-within,
.revp__item:hover, .revp__item:focus-within,
.prin__item:hover, .prin__item:focus-within {
  border-color: var(--edge);
  box-shadow: var(--lift-2);
}

.svcp__item:hover::before, .svcp__item:focus-within::before,
.svc__row:hover::before, .svc__row:focus-within::before,
.gal__item:hover::before, .gal__item:focus-within::before,
.galp__item:hover::before, .galp__item:focus-within::before,
.stf__card:hover::before, .stf__card:focus-within::before,
.rev__card:hover::before, .rev__card:focus-within::before,
.revp__item:hover::before, .revp__item:focus-within::before,
.prin__item:hover::before, .prin__item:focus-within::before {
  transform: scaleX(1);
}

/* ---------------------------------------------------------------------- *
 * services
 * ---------------------------------------------------------------------- */

.svcp { background-color: var(--stage); }

.svcp__head { margin-bottom: var(--s6); }

.svcp__h { margin-bottom: var(--s4); }

.svcp__intro { max-width: var(--measure); margin: 0; color: var(--muted); }

.svcp__list {
  list-style: none;
  margin: 0 0 var(--s6);
  padding: 0;
  display: grid;
  gap: var(--s5);
}

.svcp__item { padding: var(--s5); }

.svcp__link {
  font-family: var(--font-h);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ink);
  text-decoration: none;
}
.svcp__link:hover { color: var(--act); }

.svcp__price {
  display: block;
  margin: var(--s2) 0 var(--s3);
  font-family: var(--font-h);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--acc);
}

.svcp__p { margin: 0; color: var(--muted); }

.svcp__all { display: inline-flex; align-items: center; min-height: 44px; }

@media (min-width: 768px) {
  .svcp__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.price { font-variant-numeric: tabular-nums; }
.price__q { color: var(--muted); font-weight: 400; }
.price__v { font-weight: 700; }

.svc__list { list-style: none; margin: 0; padding: 0; display: grid;
             gap: var(--s5); }

.svc__row { padding: var(--s6) var(--s5); }

.svc__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s3);
  margin-bottom: var(--s4);
  padding-bottom: var(--s4);
  border-bottom: 1px solid var(--rule);
}

.svc__name { margin: 0; }

.svc__price {
  font-family: var(--font-h);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--acc);
  white-space: nowrap;
}

.svc__body { margin: 0 0 var(--s4); color: var(--muted); }

.svc__scope { margin: 0 0 var(--s4); max-width: var(--measure); }
.svc__includes { margin:0 0 var(--s4); padding-inline-start:1.2rem; color:var(--text); }
.svc__includes li + li { margin-top:var(--s1); }

.svc__fit { margin: 0 0 var(--s4); max-width: var(--measure);
            color: var(--muted); }

.svc__fitlabel {
  display: block;
  margin-bottom: var(--s1);
  font-family: var(--font-h);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--act);
}

.svc__link { display: inline-flex; align-items: center; min-height: 44px; }

/* Channel-rack chapters: a staggered signal path rather than a generic card stack. */
@media (min-width: 1024px) {
  .p-services .svc__list { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--s6); }
  .p-services .svc__row {
    grid-column: 1 / span 11;
    min-height: 300px;
    padding: var(--s7);
    border-inline-start: 5px solid var(--act);
    background-image: repeating-linear-gradient(90deg, transparent 0 28px, rgba(0,212,255,.025) 28px 30px);
    box-shadow: 0 0 38px rgba(0, 212, 255, .08), inset 0 0 0 1px rgba(255, 46, 136, .16);
  }
  .p-services .svc__row:nth-child(even) {
    grid-column: 2 / span 11;
    border-inline-start-color: var(--acc);
    background-image: repeating-linear-gradient(90deg, transparent 0 42px, rgba(255,46,136,.03) 42px 44px);
  }
  .p-services .svc__scope,
  .p-services .svc__fit { max-width: 58ch; }
}

/* how contact works */

.how { background-color: var(--stage); }

.how__head { margin-bottom: var(--s6); }

.how__h { margin: 0; }

.how__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--s5);
  counter-reset: how;
}

.how__step {
  padding: var(--s5);
  background-color: var(--panel);
  border-inline-start: 2px solid var(--act);
  border-radius: 0 var(--radius) var(--radius) 0;
}

.how__no {
  display: block;
  margin-bottom: var(--s2);
  font-family: var(--font-h);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--act);
}

.how__p { margin: 0; color: var(--muted); }

@media (min-width: 768px) {
  .how__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.note__h { margin-bottom: var(--s4); }

.note__p { margin: 0; max-width: var(--measure); color: var(--muted); }

/* ---------------------------------------------------------------------- *
 * approach
 * ---------------------------------------------------------------------- */

.appr__in {
  padding: var(--s6);
  background-color: var(--stage);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
}

.appr__h { margin-bottom: var(--s4); }

.appr__p { margin: 0; max-width: var(--measure); color: var(--muted); }

/* ---------------------------------------------------------------------- *
 * gallery
 * ---------------------------------------------------------------------- */

.gal__text { margin-bottom: var(--s6); }

.gal__no { margin: 0; color: var(--muted); }

.gal__list, .galp__list {
  list-style: none;
  margin: 0 0 var(--s6);
  padding: 0;
  display: grid;
  gap: var(--s5);
}

.gal__item, .galp__item { padding: 6px; }

.gal__fig, .galp__fig { margin: 0; }

.gal__frame {
  display: block;
  border-radius: 2px;
  overflow: hidden;
}

.gal__fig img, .galp__fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 2px;
}

.gal__cap, .galp__cap {
  margin: var(--s3) 0 0;
  padding: 0 var(--s2) var(--s2);
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--muted);
}

.galp__h { margin-bottom: var(--s4); }

.galp__intro { max-width: var(--measure); margin: 0 0 var(--s6);
               color: var(--muted); }

.galp__all, .stfp__all, .svcp__all, .revp__all, .faqp__all {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

@media (min-width: 768px) {
  .gal__list, .galp__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .gal__list, .galp__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------------------------------------------------------------------- *
 * the room team
 * ---------------------------------------------------------------------- */

.stfp { background-color: var(--stage); }

.stfp__h { margin-bottom: var(--s4); }

.stfp__intro { margin: 0 0 var(--s6); color: var(--muted); }

.stf__list, .stfp__list {
  list-style: none;
  margin: 0 0 var(--s6);
  padding: 0;
  display: grid;
  gap: var(--s5);
}

.stf__card { padding: 6px 6px var(--s5); height: 100%; }

.stf__fig { margin: 0 0 var(--s4); }

.stf__fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 2px;
}

.stf__body { padding-inline: var(--s4); }

.stf__name { margin: 0 0 var(--s1); font-size: 1.125rem; }

.stf__role {
  margin: 0 0 var(--s3);
  font-family: var(--font-h);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--act);
}

.stf__bio { margin: 0; font-size: 0.9375rem; color: var(--muted); }
.stf__links { display:flex; flex-wrap:wrap; gap:var(--s2) var(--s4); margin:var(--s4) 0 0; }
.stf__links a { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem; }

@media (min-width: 768px) {
  .stf__list, .stfp__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .p-staff .stf__list { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items:stretch; }
  .p-staff .stf__item:first-child { grid-row: span 3; }
  .p-staff .stf__item:first-child .stf__card { height:auto; }
  .p-staff .stf__item:not(:first-child) .stf__card { display:grid; grid-template-columns:180px minmax(0, 1fr); align-items:stretch; }
  .p-staff .stf__item:not(:first-child) .stf__fig { margin:0; }
  .p-staff .stf__item:not(:first-child) .stf__fig img { height:100%; min-height:250px; aspect-ratio:auto; }
  .p-staff .stf__item:not(:first-child) .stf__body { padding:var(--s5); }
}

.focus { background-color: var(--stage); }

.focus__h { margin-bottom: var(--s4); }

.focus__p { margin: 0 0 var(--s5); max-width: var(--measure);
            color: var(--muted); }

.focus__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s3);
}

.focus__list li {
  padding: var(--s2) var(--s4);
  background-color: var(--panel);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  font-size: 0.875rem;
}

.focus__list a { color: var(--act); text-decoration: none; }
.focus__list a:hover { text-decoration: underline; }

/* ---------------------------------------------------------------------- *
 * about
 * ---------------------------------------------------------------------- */

.abt__cols { display: grid; gap: var(--s5); }

.abt__p { margin: 0; }

@media (min-width: 768px) {
  .abt__cols { grid-template-columns: repeat(2, minmax(0, 1fr));
               gap: var(--s7); }
}

.prin { background-color: var(--stage); }

.prin__head { margin-bottom: var(--s6); }

.prin__h { margin: 0; }

.prin__list { list-style: none; margin: 0; padding: 0; display: grid;
              gap: var(--s5); }

.prin__item { padding: var(--s5); }

.prin__item h3 { margin-bottom: var(--s3); }

.prin__p { margin: 0; color: var(--muted); }

@media (min-width: 768px) {
  .prin__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.proc__head { margin-bottom: var(--s6); }

.proc__h { margin: 0; }

.proc__list { list-style: none; margin: 0; padding: 0; display: grid;
              gap: var(--s5); }

.proc__step {
  padding-top: var(--s4);
  border-top: 2px solid var(--rule);
}

.proc__no {
  display: block;
  margin-bottom: var(--s2);
  font-family: var(--font-h);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--acc);
}

.proc__p { margin: 0; color: var(--muted); }

@media (min-width: 768px) {
  .proc__list { grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: var(--s6) var(--s7); }
}
@media (min-width: 1024px) {
  .proc__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.place__fig {
  position: relative;
  margin: 0;
  padding: 6px;
  background-color: var(--panel);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  box-shadow: var(--lift);
}

.place__frame { display: block; border-radius: 2px; overflow: hidden; }

.place__fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 2px;
}

.place__fig::after {
  content: "";
  position: absolute;
  inset-inline: 6px;
  bottom: 6px;
  height: 30%;
  pointer-events: none;
  background-color: transparent;
  background-image: linear-gradient(to top,
      rgba(7, 10, 18, 0.68), rgba(7, 10, 18, 0) 100%);
}

.place__cap {
  position: relative;
  margin: var(--s3) 0 0;
  padding-inline: var(--s2);
  font-size: 0.8125rem;
  color: var(--muted);
}

.limit { background-color: var(--stage); }

.limit__h { margin-bottom: var(--s4); }

.limit__p { margin: 0; max-width: var(--measure); color: var(--muted); }

/* ---------------------------------------------------------------------- *
 * reviews -- no average, no stars, no AggregateRating anywhere
 * ---------------------------------------------------------------------- */

.rev { background-color: var(--stage); }

.rev__no { margin: 0; color: var(--muted); }

.rev__list, .revp__list {
  list-style: none;
  margin: 0 0 var(--s6);
  padding: 0;
  display: grid;
  gap: var(--s5);
}

.rev__card, .revp__item { padding: var(--s5); }

.rev__q, .revp__q {
  margin: 0 0 var(--s4);
  max-width: var(--measure-s);
  font-size: 1.0625rem;
}

.rev__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--s2) var(--s3);
  padding-top: var(--s3);
  border-top: 1px solid var(--rule);
}

.rev__by, .revp__by {
  font-family: var(--font-h);
  font-size: 0.875rem;
  font-weight: 700;
}

.rev__svc { font-size: 0.8125rem; color: var(--act); }
.rev__meta { display:flex; flex-wrap:wrap; gap:var(--s2) var(--s4); margin:0; color:var(--muted); font-size:.8125rem; }
.rev__avatar { display:grid; place-items:center; width:72px; height:72px; border-radius:50%; border:1px solid var(--act); color:var(--act); box-shadow:0 0 22px rgba(0,212,255,.18); font-family:var(--font-h); font-weight:700; }

.revp__h { margin-bottom: var(--s4); }

.revp__by { display: block; margin-top: var(--s3); }

@media (min-width: 768px) {
  .rev__list, .revp__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .p-reviews .rev__list { grid-template-columns: repeat(12, minmax(0, 1fr)); gap:var(--s7) 0; }
  .p-reviews .rev__item { grid-column:1 / span 8; position:relative; }
  .p-reviews .rev__item:nth-child(even) { grid-column:5 / span 8; }
  .p-reviews .rev__card { min-height:300px; padding:var(--s7); border-inline-start:5px solid var(--act); background-image:repeating-linear-gradient(90deg, transparent 0 18px, rgba(0,212,255,.035) 18px 20px); }
  .p-reviews .rev__item:nth-child(even) .rev__card { border-inline-start-color:var(--acc); background-image:repeating-linear-gradient(90deg, transparent 0 26px, rgba(255,46,136,.04) 26px 28px); }
  .p-reviews .rev__q { font-size:clamp(1.2rem, 2vw, 1.65rem); }
}

/* ---------------------------------------------------------------------- *
 * questions
 * ---------------------------------------------------------------------- */

.faqp { background-color: var(--stage); }

.faqp__h { margin-bottom: var(--s6); }

.faqp__item {
  padding: var(--s4) 0;
  border-top: 1px solid var(--rule);
}

.faqp__q { margin: 0 0 var(--s2); font-size: 1.0625rem; }

.faqp__a { margin: 0; color: var(--muted); max-width: var(--measure); }

.faqg { padding-block: var(--s7); }

.faqg__h { margin-bottom: var(--s2); }

.faqg__sub {
  margin: 0 0 var(--s5);
  font-family: var(--font-h);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--act);
}

.faq__item {
  border-top: 1px solid var(--rule);
}

.faq__q {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 56px;
  padding: var(--s3) var(--s7) var(--s3) 0;
  font-family: var(--font-h);
  font-size: 1.0625rem;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}
.faq__q::-webkit-details-marker { display: none; }

.faq__q::after {
  content: "+";
  position: absolute;
  inset-inline-end: var(--s2);
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--act);
}

.faq__item[open] .faq__q::after { content: "\2212"; }

.faq__a {
  margin: 0;
  padding: 0 0 var(--s5);
  max-width: var(--measure);
  color: var(--muted);
}

.faq__escape {
  margin: var(--s5) 0;
  padding: var(--s5);
  background-color: var(--panel);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
}

.faq__escape p { margin: 0 0 var(--s4); }

/* ---------------------------------------------------------------------- *
 * contact
 * ---------------------------------------------------------------------- */

.con__grid { display: grid; gap: var(--s7); }

.cd { margin: 0; }

.cd__h { margin-bottom: var(--s5); }

.cd__row { margin-bottom: var(--s4); }

.cd__hh {
  display: block;
  margin-bottom: var(--s1);
  font-family: var(--font-h);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--act);
}

.cd__addr { font-style: normal; }

.cd__tel, .cd__mail { color: var(--act); }

.cd__hours { margin: 0; color: var(--muted); }

.cd__note { margin: var(--s5) 0 0; font-size: 0.875rem; color: var(--muted);
            max-width: var(--measure-s); }

.cform {
  padding: var(--s6) var(--s5);
  background-color: var(--panel);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  box-shadow: var(--lift);
}

.cform__consent { margin: 0 0 var(--s4); font-size: 0.8125rem;
                  color: var(--muted); }

.cform__status { margin: var(--s3) 0 0; font-size: 0.875rem; }
.cform__status:empty { display: none; }

@media (min-width: 768px) {
  .con__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}

.alt { background-color: var(--stage); }

.alt__in { max-width: var(--measure); }

.alt__h { margin-bottom: var(--s4); }

.alt__p { margin: 0; color: var(--muted); }

/* ---------------------------------------------------------------------- *
 * privacy
 * ---------------------------------------------------------------------- */

.pv__sec {
  padding-block: var(--s6);
  border-top: 1px solid var(--rule);
}

.pv__h { margin-bottom: var(--s4); }

.pv__body { max-width: var(--measure); color: var(--muted); }

.pv__body p { margin: 0 0 var(--s4); }
.pv__body p:last-child { margin-bottom: 0; }

.pv__date { margin: 0 0 var(--s6); font-size: 0.875rem; color: var(--muted); }

/* ---------------------------------------------------------------------- *
 * the closing call
 * ---------------------------------------------------------------------- */

.cta { background-color: var(--stage); }

.cta__in { display: grid; gap: var(--s6); }

.cta__text { max-width: var(--measure); }

.cta__h { margin-bottom: var(--s4); }

.cta__p { margin: 0; color: var(--muted); }

.cta__actions { display: flex; flex-wrap: wrap; gap: var(--s3); }

@media (min-width: 1024px) {
  .cta__in {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: center;
    gap: var(--s7);
  }
  .cta__actions { justify-content: flex-end; }
}

/* ---------------------------------------------------------------------- *
 * 404
 * ---------------------------------------------------------------------- */

.nf { padding-block: var(--s9) var(--band-pad); }
.nf::before { display: none; }

.nf__code {
  display: block;
  margin-bottom: var(--s4);
  font-family: var(--font-h);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--acc);
}

.nf__h1 { margin-bottom: var(--s5); }

.nf__p { margin: 0 0 var(--s6); max-width: var(--measure);
         color: var(--muted); }

.nf__book { margin: 0 0 var(--s7); display: flex; flex-wrap: wrap;
            gap: var(--s3); }

.nf__links { list-style: none; margin: 0; padding: 0; display: grid;
             gap: var(--s2); }

.nf__links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

@media (min-width: 768px) {
  .nf__links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
 
/* Material anti-duplication correction: Home is a layered signal stage,
   not the shared dark section/card stack used by the luxury design. */
.p-index main { position: relative; isolation: isolate; }
.p-index .sec { border-inline-start: 5px solid transparent; }
.p-index .svcp,
.p-index .galp,
.p-index .revp { border-inline-start-color: var(--acc); }
.p-index .appr,
.p-index .stfp,
.p-index .faqp { border-inline-start-color: var(--acc); }
.p-index .svcp > .wrap,
.p-index .appr > .wrap,
.p-index .galp > .wrap,
.p-index .stfp > .wrap,
.p-index .revp > .wrap,
.p-index .faqp > .wrap {
  padding: var(--s5);
  border: 1px solid var(--rule);
  background: color-mix(in srgb, var(--stage) 88%, transparent);
  box-shadow: 0 0 28px color-mix(in srgb, var(--acc) 12%, transparent);
}
.p-index .appr > .wrap,
.p-index .stfp > .wrap,
.p-index .faqp > .wrap {
  box-shadow: 0 0 28px color-mix(in srgb, var(--acc) 12%, transparent);
}
.p-index .svcp__list > :nth-child(2) { transform: translateY(var(--s4)); }
.p-index .galp__list > :nth-child(2) { transform: translateY(var(--s5)); }
.p-index .revp__list > :nth-child(2) { border-color: var(--acc); }

@media (min-width: 1024px) {
  .p-index .svcp > .wrap,
  .p-index .appr > .wrap,
  .p-index .galp > .wrap,
  .p-index .stfp > .wrap,
  .p-index .revp > .wrap,
  .p-index .faqp > .wrap { width: auto; }
  .p-index .hero { min-height: calc(100vh - var(--head-h)); padding-bottom: 180px; }
  .p-index .svcp { margin-top: -110px; z-index: 4; background: transparent; }
  .p-index .svcp > .wrap { max-width: 1180px; margin-inline-start: 6vw; }
  .p-index .appr > .wrap { max-width: 720px; margin-inline-end: 7vw; }
  .p-index .galp > .wrap { max-width: 1320px; }
  .p-index .stfp > .wrap { max-width: 1120px; margin-inline-start: 8vw; }
  .p-index .revp > .wrap { max-width: 980px; margin-inline-end: 9vw; }
  .p-index .faqp > .wrap { max-width: 860px; margin-inline-start: 12vw; }
}

/* aajwebz-mailto-nowrap — an address is one token, never split across lines */
a[href^="mailto:"] {
  overflow-wrap: normal;
  word-break: normal;
  white-space: nowrap;
  display: inline-block;
  max-width: 100%;
}
@media (max-width: 380px) {
  a[href^="mailto:"] { font-size: 0.88em; }
}
