/*
Theme Name: STUDIO1958
Theme URI: https://studio1958.com
Author: STUDIO1958 implementation system
Description: Premium editable WordPress block theme for STUDIO1958 first-slice prototype.
Version: 0.3.0
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.1
Text Domain: studio1958
*/

:root {
  --s58-black: #15130f;
  --s58-void: #080706;
  --s58-beige: #e7decb;
  --s58-white: #faf8f3;
  --s58-gold: #c9b68c;
  --s58-gold-deep: #ae9760;
  --s58-blood: #5b1712;
  --s58-line-dark: rgba(250, 248, 243, .16);
  --s58-line-light: rgba(21, 19, 15, .18);
  --s58-header: 72px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; margin-top: 0 !important; background: var(--s58-void) !important; }
body {
  margin: 0;
  max-width: 100%;
  overflow-x: clip;
  background: var(--s58-void);
  color: var(--s58-white);
  font-family: Manrope, sans-serif;
  border-top: none !important;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .36;
  background-image:
    radial-gradient(circle at 22% 18%, rgba(201,182,140,.12), transparent 24rem),
    radial-gradient(circle at 86% 10%, rgba(255,255,255,.08), transparent 18rem),
    repeating-radial-gradient(circle at 50% 50%, rgba(250,248,243,.08) 0 1px, transparent 1px 4px);
  mix-blend-mode: screen;
}

.wp-site-blocks { position: relative; z-index: 1; }
.s58-main,
.s58-main > * { margin-block-start: 0; }
.s58-shell { width: min(100% - clamp(1rem, 4vw, 4.5rem), 1520px); margin-inline: auto; }

.s58-header {
  position: fixed;
  z-index: 70;
  inset: 0 0 auto;
  height: var(--s58-header);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: var(--s58-gold);
  isolation: isolate;
  text-shadow: 0 .08rem .34rem rgba(8,7,6,.55);
}

.s58-header::before {
  content: "";
  position: absolute;
  inset: 0 -1rem;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(8,7,6,.24), rgba(8,7,6,0));
  opacity: .9;
}

.s58-logo svg { display: block; width: clamp(9rem, 18vw, 16rem); height: auto; filter: drop-shadow(0 .08rem .28rem rgba(8,7,6,.5)); transition: filter .36s ease; }
.s58-nav { display: flex; align-items: center; gap: clamp(1rem, 2.2vw, 2.4rem); }
.s58-nav a,
.s58-menu-toggle {
  color: rgba(250,248,243,.72);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .68rem;
  font-weight: 700;
}
.s58-nav a:last-child { color: var(--s58-gold); }
.s58-menu-toggle { display: none; border: 1px solid rgba(201,182,140,.34); background: rgba(8,7,6,.66); padding: .7rem .82rem; }

.s58-menu {
  position: fixed;
  inset: 0;
  z-index: 65;
  display: grid;
  align-content: end;
  padding: var(--s58-header) 1rem 2rem;
  background: var(--s58-beige);
  color: var(--s58-black);
  transform: translateY(-102%);
  transition: transform .55s cubic-bezier(.76,0,.24,1);
}
body.s1958-menu-open .s58-menu { transform: translateY(0); }
.s58-menu a { display: block; color: var(--s58-black); text-decoration: none; font-size: clamp(3rem, 15vw, 6rem); line-height: .86; letter-spacing: -.085em; font-weight: 300; }
.s58-menu p { max-width: 32rem; color: rgba(21,19,15,.68); line-height: 1.5; }

.s58-screen {
  position: relative;
  min-height: 100svh;
  width: 100%;
  overflow: clip;
  display: grid;
  align-items: center;
  padding-block: calc(var(--s58-header) + 1rem) clamp(1rem, 3vw, 2.5rem);
}

.s58-grid { display: grid; gap: clamp(1rem, 4vw, 5rem); align-items: center; min-width: 0; }
.s58-grid--index { grid-template-columns: .72fr 1.28fr; }
.s58-kicker { margin: 0 0 .9rem; color: var(--s58-gold); text-transform: uppercase; letter-spacing: .28em; font-size: .68rem; font-weight: 700; }
.s58-title { margin: 0; font-weight: 300; letter-spacing: -.09em; line-height: .78; font-size: clamp(3.5rem, 7.2vw, 7.8rem); max-width: 8.6ch; }
.s58-title strong { font-weight: 500; }
.s58-copy { margin: 1.1rem 0 0; max-width: 38rem; color: rgba(250,248,243,.76); font-size: clamp(1rem, 1.6vw, 1.25rem); line-height: 1.5; font-weight: 300; }
.s58-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.4rem; }
.s58-btn { display: inline-flex; }
.s58-btn:not(.wp-block-button),
.s58-btn .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 3.1rem; padding: .95rem 1.2rem; border: 1px solid rgba(201,182,140,.38); color: var(--s58-white); text-decoration: none; text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; font-weight: 800; background: transparent; border-radius: 0; }
.s58-btn:not(.wp-block-button).is-primary,
.s58-btn.is-primary .wp-block-button__link { background: var(--s58-gold); color: var(--s58-black); border-color: var(--s58-gold); }

.s58-hero { background: var(--s58-void); height: 100vh; height: 100dvh; display: flex; align-items: center; overflow: hidden; padding-top: var(--s58-header); box-sizing: border-box; }
.s58-hero .s58-grid { grid-template-columns: .74fr 1.26fr; height: 100%; max-height: calc(100vh - var(--s58-header) - 3rem); align-items: center; }
.s58-hero-media { position: relative; height: 100%; width: 100%; display: flex; align-items: center; justify-content: flex-end; isolation: isolate; }
.s58-hero-image {
  position: absolute; inset: 0 0 0 12%; z-index: 0;
  background:
    linear-gradient(90deg, rgba(8,7,6,.86), rgba(8,7,6,.16) 45%, rgba(8,7,6,.08)),
    url('assets/images/hero-editorial.jpg');
  background-size: cover; background-position: center 28%;
  filter: saturate(.82) contrast(1.05);
}
.s58-hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(8,7,6,.72)); }
.s58-hero-stamp { position: absolute; right: 2vw; top: 20%; z-index: 2; color: rgba(201,182,140,.64); font-size: .68rem; letter-spacing: .24em; writing-mode: vertical-rl; text-transform: uppercase; }
.s58-hero-media::before { content: none; }
 
.s58-procard {
  position: relative; z-index: 3; width: min(41vw, 32rem); margin-left: auto; margin-right: 3vw;
  background: #f0e7d5; color: var(--s58-black); padding: .65rem;
  transform: rotate(-3.6deg) perspective(1200px) rotateY(-7deg);
  box-shadow: -2.4rem 2.8rem 5.5rem rgba(0,0,0,.58), inset 0 0 0 1px rgba(21,19,15,.18);
  will-change: transform;
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - var(--s58-header) - 5rem);
}
.s58-procard__photo { flex: 1; min-height: 0; height: auto; margin: 0; overflow: hidden; filter: saturate(.92) contrast(1.04); }
.s58-procard__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.s58-procard__bar { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: end; padding: .75rem .2rem .35rem; border-bottom: 1px solid rgba(21, 19, 15,.16); }
.s58-procard__name { font-size: clamp(2rem, 4vw, 4rem); letter-spacing: -.075em; line-height: .83; font-weight: 500; }
.s58-procard__meta { max-width: 8rem; text-align: right; text-transform: uppercase; letter-spacing: .12em; font-size: .6rem; line-height: 1.35; }
.s58-procard__strip { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: .45rem; margin-top: .5rem; }
.s58-mini { min-height: 4.4rem; border: 1px solid rgba(21, 19, 15,.16); margin: 0; overflow: hidden; }
.s58-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.s58-spec { padding: .55rem; text-transform: uppercase; letter-spacing: .11em; font-size: .56rem; line-height: 1.35; color: rgba(21,19,15,.72); }

.s58-index { background: var(--s58-beige); color: var(--s58-black); }
.s58-index .s58-kicker { color: var(--s58-gold-deep); }
.s58-index .s58-title { max-width: 7ch; }
.s58-index .s58-copy { color: rgba(21,19,15,.68); }
.s58-face-grid { display: grid; grid-template-columns: 1.15fr .85fr .85fr; grid-template-rows: 1fr 1fr; gap: 1.5rem 1.2rem; height: min(72svh, 48rem); min-width: 0; }
.s58-face { position: relative; overflow: visible; background: transparent; display: flex; flex-direction: column; }
.s58-face:first-child { grid-row: 1 / -1; }
.s58-face img { width: 100%; height: calc(100% - 2.2rem); object-fit: cover; display: block; filter: grayscale(.08) saturate(.82) contrast(1.06); }
.s58-face span,
.s58-face figcaption { display: block; margin-top: 0.6rem; color: var(--s58-black); text-transform: uppercase; letter-spacing: 0.14em; font-size: .62rem; font-weight: 600; line-height: 1.2; }

.s58-process { background: var(--s58-white); color: var(--s58-black); }
.s58-process .s58-kicker { color: var(--s58-gold-deep); }
.s58-process .s58-copy { color: rgba(21,19,15,.68); }
.s58-process .s58-grid { grid-template-columns: .9fr 1.1fr; }
.s58-steps { display: grid; gap: 1px; background: var(--s58-line-light); }
.s58-step { display: grid; grid-template-columns: 5rem 1fr; gap: 1.4rem; padding: clamp(.9rem, 2.1vw, 1.6rem) 0; background: var(--s58-white); }
.s58-step b,
.s58-step__num { color: var(--s58-gold-deep); letter-spacing: .22em; font-size: .72rem; margin: 0; }
.s58-step h3 { margin: 0 0 .25rem; font-size: clamp(1.6rem, 3vw, 3.1rem); line-height: .9; letter-spacing: -.06em; font-weight: 500; }
.s58-step p { margin: 0; color: rgba(21,19,15,.66); line-height: 1.45; }

.s58-card-room { background: var(--s58-black); color: var(--s58-white); }
.s58-card-room .s58-grid { grid-template-columns: 1fr 1.2fr; align-items: start; }
.s58-room {
  min-height: min(72svh, 48rem); position: relative; overflow: hidden;
  background:
    linear-gradient(180deg, rgba(8,7,6,.08), rgba(8,7,6,.82)),
    url('assets/images/hero-editorial.jpg') center / cover;
}
.s58-room-note { position: absolute; left: 1.5rem; bottom: 1.5rem; max-width: 28rem; color: var(--s58-gold); font-size: 1.1rem; font-weight: 300; font-style: italic; line-height: 1.45; }

/* Pricing Menu (Carta de Estudio) Styles */
.s58-pricing-menu { display: grid; gap: 2rem; margin-top: 2.2rem; }
.s58-pricing-item { border-top: 1px solid var(--s58-line-dark); padding-top: 1.5rem; }
.s58-pricing-item.is-featured { border-top: 2px solid var(--s58-gold); }
.s58-pricing-header { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.s58-pricing-name { font-size: clamp(1.2rem, 2vw, 1.7rem); font-weight: 500; color: var(--s58-white); margin: 0; }
.s58-pricing-price { font-size: 0.95rem; font-weight: 700; color: var(--s58-gold); letter-spacing: 0.05em; margin: 0; white-space: nowrap; }
.s58-pricing-desc { font-size: 0.85rem; color: rgba(250,248,243,.72); line-height: 1.45; margin: 0.5rem 0 1rem; }
.s58-pricing-details { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.4rem; }
.s58-pricing-details li { font-size: 0.78rem; color: rgba(250,248,243,.56); position: relative; padding-left: 1rem; }
.s58-pricing-details li::before { content: "·"; position: absolute; left: 0; color: var(--s58-gold); font-weight: bold; }
.s58-pricing-footer { margin-top: 2.5rem; border-top: 1px solid var(--s58-line-dark); padding-top: 1.5rem; text-align: center; }
.s58-pricing-footer p { font-size: 0.95rem; color: var(--s58-gold); font-weight: 300; font-style: italic; max-width: 32rem; margin: 0 auto; }

.s58-system { background: var(--s58-beige); color: var(--s58-black); }
.s58-system .s58-kicker { color: var(--s58-gold-deep); }
.s58-system .s58-copy { color: rgba(21,19,15,.68); }
.s58-grid--system { grid-template-columns: .72fr 1.28fr; align-items: start; }
.s58-system-stack { display: grid; grid-template-columns: 1.1fr .9fr; grid-template-rows: auto auto; gap: 1rem; }
.s58-system-stack > .s58-system-card,
.s58-faq-list > .s58-faq-item { margin-block-start: 0 !important; }
.s58-system-card { position: relative; min-height: 16rem; padding: clamp(1rem, 2vw, 1.8rem); border-top: 1px solid rgba(21,19,15,.2); background: rgba(250,248,243,.24); overflow: hidden; }
.s58-system-card.is-portfolio { grid-row: 1 / -1; min-height: min(68svh, 44rem); display: flex; flex-direction: column; justify-content: flex-end; }
.s58-system-card.is-card { background: var(--s58-black); color: var(--s58-white); transform: rotate(-1.4deg); }
.s58-system-card.is-handoff { background: rgba(21,19,15,.08); }
.s58-system-card figure { position: absolute; inset: 0; margin: 0; z-index: 0; }
.s58-system-card img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.82) contrast(1.04); }
.s58-system-card.is-portfolio::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(8,7,6,.05), rgba(8,7,6,.82)); }
.s58-system-card.is-card::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(8,7,6,.78), rgba(8,7,6,.28)); }
.s58-system-card > :not(figure) { position: relative; z-index: 2; }
.s58-system-card.is-portfolio h3,
.s58-system-card.is-portfolio p:not(.s58-system-label) { color: var(--s58-white); }
.s58-system-label { margin: 0 0 auto; color: var(--s58-gold-deep); text-transform: uppercase; letter-spacing: .22em; font-size: .62rem; font-weight: 800; }
.s58-system-card.is-card .s58-system-label { color: var(--s58-gold); }
.s58-system-card h3 { margin: .8rem 0 .35rem; font-size: clamp(1.5rem, 2.7vw, 2.8rem); line-height: .9; letter-spacing: -.06em; }
.s58-system-card p { margin: 0; color: rgba(21,19,15,.68); line-height: 1.45; }
.s58-system-card.is-card p { color: rgba(250,248,243,.72); }
.s58-system-big { font-size: clamp(3.4rem, 7vw, 6.6rem); line-height: .78; letter-spacing: -.09em; color: var(--s58-white) !important; margin: 2rem 0 1.2rem !important; }
.s58-system-card ul { margin: 2rem 0 0; padding: 0; list-style: none; display: grid; gap: .8rem; color: rgba(21,19,15,.7); }
.s58-system-card li { border-top: 1px solid rgba(21,19,15,.18); padding-top: .65rem; }
.s58-system-mini-gallery { margin: 1.4rem 0 0 !important; gap: .55rem !important; }
.s58-system-mini-gallery figure { position: relative; inset: auto; aspect-ratio: 1 / 1.15; }
.s58-system-mini-gallery img { border: 1px solid rgba(250,248,243,.16); }
.s58-handoff-image { position: relative !important; inset: auto !important; margin: 1.4rem 0 0 !important; aspect-ratio: 16 / 9; }
.s58-handoff-image img { border: 1px solid rgba(21,19,15,.14); }

.s58-apply { background: var(--s58-void); color: var(--s58-white); }
.s58-apply-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(2rem, 7vw, 8rem); align-items: end; }
.s58-apply-panel { border-top: 1px solid var(--s58-line-dark); padding-top: clamp(1.4rem, 3vw, 2.5rem); }
.s58-apply-panel .s58-copy { margin-top: 0; }
.s58-apply-image { margin: 2rem 0 0; width: min(80%, 28rem); aspect-ratio: 4 / 5; overflow: hidden; transform: rotate(-1.3deg); }
.s58-apply-image img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.82) contrast(1.06); }
.s58-apply-questions { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 1px; background: var(--s58-line-dark); }
.s58-apply-questions li { background: var(--s58-void); padding: 1rem 0; color: rgba(250,248,243,.78); font-size: clamp(1.1rem, 2vw, 1.6rem); line-height: 1.15; letter-spacing: -.035em; }

.s58-faq { background: var(--s58-white); color: var(--s58-black); }
.s58-faq .s58-kicker { color: var(--s58-gold-deep); }
.s58-faq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 6vw, 7rem); align-items: start; }
.s58-faq-list { display: grid; gap: 0; background: transparent; }
.s58-faq-item { background: var(--s58-white); padding: clamp(1rem, 2vw, 1.6rem) 0; border-top: 1px solid var(--s58-line-light); }
.s58-faq-item:last-child { border-bottom: 1px solid var(--s58-line-light); }
.s58-faq-item h3 { margin: 0 0 .4rem; font-size: clamp(1.35rem, 2.4vw, 2.4rem); line-height: .95; letter-spacing: -.055em; font-weight: 500; }
.s58-faq-item p { margin: 0; color: rgba(21,19,15,.66); line-height: 1.45; max-width: 48rem; }

.s58-system-card,
.s58-apply-image img { transition: transform .7s cubic-bezier(.22,1,.36,1), filter .7s cubic-bezier(.22,1,.36,1); }
.s58-system-card:hover img,
.s58-apply-image:hover img { transform: scale(1.035); filter: saturate(.95) contrast(1.08); }
.s58-system-card.is-card:hover { transform: rotate(-1.4deg) translateY(-.35rem); }

.s58-lightbox { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: clamp(1rem, 4vw, 3rem); background: rgba(8,7,6,.86); backdrop-filter: blur(12px); opacity: 0; pointer-events: none; transition: opacity .32s ease; }
.s58-lightbox.is-open { opacity: 1; pointer-events: auto; }
.s58-lightbox__panel { width: min(100%, 70rem); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .85fr); gap: 1px; background: rgba(250,248,243,.18); color: var(--s58-white); transform: translateY(1rem) scale(.98); transition: transform .36s cubic-bezier(.22,1,.36,1); }
.s58-lightbox.is-open .s58-lightbox__panel { transform: translateY(0) scale(1); }
.s58-lightbox__image { min-height: min(68vh, 44rem); background: var(--s58-black); }
.s58-lightbox__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.s58-lightbox__copy { background: var(--s58-beige); color: var(--s58-black); padding: clamp(1rem, 3vw, 2rem); display: flex; flex-direction: column; justify-content: flex-end; }
.s58-lightbox__eyebrow { margin: 0 0 auto; color: var(--s58-gold-deep); text-transform: uppercase; letter-spacing: .24em; font-size: .62rem; font-weight: 800; }
.s58-lightbox__title { margin: 2rem 0 .7rem; font-size: clamp(2.4rem, 5vw, 5rem); line-height: .82; letter-spacing: -.085em; font-weight: 400; }
.s58-lightbox__text { margin: 0; color: rgba(21,19,15,.68); line-height: 1.45; }
.s58-lightbox__close { position: absolute; right: 1rem; top: 1rem; border: 1px solid rgba(250,248,243,.36); background: rgba(8,7,6,.62); color: var(--s58-white); padding: .65rem .8rem; text-transform: uppercase; letter-spacing: .16em; font-size: .62rem; cursor: pointer; }
.s58-page { min-height: 100svh; background: var(--s58-void); color: var(--s58-white); }
.s58-page-hero { min-height: 100svh; display: grid; align-items: center; padding-block: calc(var(--s58-header) + 1.4rem) 2rem; }
.s58-page-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(2rem, 5vw, 6rem); align-items: center; }
.s58-narrow { max-width: 980px; }
.s58-page .s58-title { font-size: clamp(3.2rem, 5.2vw, 6rem); line-height: .82; max-width: 8.4ch; }
.s58-page .s58-copy { max-width: 31rem; color: rgba(250,248,243,.78); }
.s58-page-points { list-style: none; margin: 1.45rem 0 0; padding: 0; display: grid; gap: 0; color: rgba(250,248,243,.72); max-width: 34rem; }
.s58-page-points li { border-top: 1px solid var(--s58-line-dark); padding: .68rem 0; font-size: .92rem; line-height: 1.35; }

/* Dossier Form Card styling */
.s58-form-card {
  position: relative;
  min-width: 0;
  max-width: 100%;
  overflow: clip;
  background: var(--s58-beige);
  color: var(--s58-black);
  padding: clamp(1.2rem, 2.5vw, 2.2rem);
  border: 1px solid rgba(21, 19, 15, 0.14);
  box-shadow: -1.6rem 2rem 4.5rem rgba(0,0,0,.56), inset 0 0 0 1px rgba(250, 248, 243, 0.35);
}
.s58-form-card::before {
  content: "[ DEPT: STUDIO1958 // FILE REF: S58-INQ-2026 ]";
  display: block;
  margin: 0 0 1.4rem;
  color: var(--s58-gold-deep);
  font-family: monospace;
  letter-spacing: .16em;
  font-size: .58rem;
  font-weight: 700;
  opacity: 0.82;
  border-bottom: 1px dashed rgba(21, 19, 15, 0.14);
  padding-bottom: 0.6rem;
}
.s58-inquiry-form { display: grid; gap: .82rem; }
.s58-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .72rem .8rem; min-width: 0; }
.s58-inquiry-form label {
  min-width: 0;
  display: grid;
  gap: .34rem;
  margin: 0;
  color: rgba(21,19,15,.68);
  font-family: monospace;
  font-size: .56rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 700;
}
.s58-inquiry-form label em { font-style: normal; color: rgba(21,19,15,.42); font-weight: 700; letter-spacing: .08em; }
.s58-inquiry-form input,
.s58-inquiry-form textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: none;
  border-bottom: 2px solid rgba(21, 19, 15, 0.18);
  background: rgba(250,248,243,.45);
  color: var(--s58-black);
  font: inherit;
  font-size: .92rem;
  font-weight: 650;
  line-height: 1.32;
  letter-spacing: 0;
  text-transform: none;
  padding: .78rem .82rem;
  border-radius: 0;
  box-shadow: none;
  transition: border-color 0.3s cubic-bezier(0.25, 1, 0.5, 1), background-color 0.3s ease;
}
.s58-inquiry-form input:focus,
.s58-inquiry-form textarea:focus {
  outline: none;
  border-bottom-color: var(--s58-gold-deep);
  background: rgba(250,248,243,.85);
}
.s58-inquiry-form input { min-height: 3rem; }
.s58-inquiry-form textarea { resize: vertical; min-height: 6.8rem; }
.s58-fieldset { grid-column: 1 / -1; min-width: 0; border: 0; margin: 0; padding: 0; }
.s58-fieldset legend {
  margin: 0 0 .45rem;
  color: rgba(21,19,15,.68);
  font-family: monospace;
  font-size: .56rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 700;
}
.s58-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; min-width: 0; }
.s58-fieldset.is-compact .s58-choice-grid { grid-template-columns: repeat(auto-fit, minmax(8.8rem, 1fr)); }
.s58-choice { position: relative; display: block !important; min-width: 0; gap: 0 !important; cursor: pointer; color: var(--s58-black) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 1rem !important; font-weight: 500 !important; }
.s58-choice input { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; min-height: 0; margin: 0; opacity: 0; cursor: pointer; }
.s58-choice span {
  display: block;
  min-height: 4.1rem;
  padding: .75rem .82rem;
  border: 1px solid rgba(21,19,15,.14);
  background: rgba(250,248,243,.3);
  box-shadow: none;
  transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.s58-choice:hover span {
  border-color: var(--s58-gold-deep);
  background: rgba(250,248,243,.75);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(21,19,15,.06);
}
.s58-choice strong { display: block; color: inherit; font-size: .8rem; line-height: 1.05; letter-spacing: -.01em; font-weight: 800; }
.s58-choice small { display: block; margin-top: .28rem; color: rgba(21,19,15,.48); font-size: .64rem; line-height: 1.25; font-weight: 500; }
.s58-choice strong,
.s58-choice small,
.s58-form-note,
.s58-consent span { overflow-wrap: anywhere; }
.s58-choice input:checked + span {
  background: var(--s58-black);
  color: var(--s58-white);
  border-color: var(--s58-black);
  transform: translateY(-3px);
  box-shadow: 0 8px 22px rgba(21, 19, 15, 0.18);
}
.s58-choice input:checked + span small { color: rgba(250,248,243,.65); }
.s58-choice input:focus-visible + span { outline: 2px solid var(--s58-gold-deep); outline-offset: 2px; }
.s58-form-message,
.s58-consent { grid-column: 1 / -1; }
.s58-form-note { margin: .05rem 0 0; color: rgba(21,19,15,.58); font-size: .78rem; line-height: 1.42; }
.s58-consent { display: grid !important; grid-template-columns: auto 1fr; align-items: start; gap: .62rem !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 500 !important; font-size: .78rem !important; line-height: 1.42; }
.s58-consent input { width: 1rem; height: 1rem; min-height: 1rem; margin-top: .12rem; accent-color: var(--s58-black); }
.s58-form-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: start;
  border: 1px solid var(--s58-black);
  background: var(--s58-black);
  color: var(--s58-white);
  padding: .95rem 1.4rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .68rem;
  font-weight: 900;
  cursor: pointer;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.s58-form-submit:hover {
  background: var(--s58-gold-deep);
  border-color: var(--s58-gold-deep);
  color: var(--s58-black);
  transform: translateY(-1px);
}
.s58-form-alert { margin: 0; padding: .8rem 1rem; background: rgba(91,23,18,.12); color: var(--s58-blood); border: 1px solid rgba(91,23,18,.28); font-weight: 700; }
.s58-hp { position: absolute !important; left: -9999px !important; opacity: 0 !important; }
.s58-services-dossier {
  position: relative;
  min-height: 100svh;
  overflow: clip;
  padding-block: calc(var(--s58-header) + 1.2rem) clamp(2rem, 4vw, 4rem);
  background:
    linear-gradient(90deg, rgba(201,182,140,.06) 1px, transparent 1px) 0 0 / 9vw 100%,
    radial-gradient(circle at 12% 20%, rgba(201,182,140,.12), transparent 22rem),
    var(--s58-void);
}
.s58-services-dossier::after {
  content: "ROUTE / DOSSIER";
  position: absolute;
  right: clamp(.8rem, 2vw, 2rem);
  top: calc(var(--s58-header) + 1rem);
  writing-mode: vertical-rl;
  color: rgba(201,182,140,.38);
  letter-spacing: .22em;
  font-size: .62rem;
  font-weight: 800;
}
.s58-services-layout { display: grid; grid-template-columns: minmax(18rem, .72fr) minmax(0, 1.28fr); gap: clamp(2rem, 5vw, 6rem); align-items: start; min-width: 0; }
.s58-services-manifest { min-width: 0; }
.s58-services-manifest .s58-title { max-width: 9ch; }
.s58-services-proof { counter-reset: proof; display: grid; gap: .52rem; margin-top: clamp(1.3rem, 2.2vw, 2rem); max-width: 34rem; }
.s58-services-proof span,
.s58-services-proof p {
  counter-increment: proof;
  position: relative;
  display: grid;
  grid-template-columns: 2.1rem 1fr;
  gap: .72rem;
  align-items: center;
  padding: .58rem .7rem .58rem 0;
  border-top: 1px solid rgba(201,182,140,.28);
  background: linear-gradient(90deg, rgba(201,182,140,.14), transparent 72%);
  color: rgba(250,248,243,.78);
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .62rem;
  line-height: 1.35;
  font-weight: 850;
  margin: 0;
}
.s58-services-proof span::before,
.s58-services-proof p::before { content: "0" counter(proof); color: var(--s58-gold); letter-spacing: .12em; font-family: monospace; font-size: .66rem; }
.s58-route-stack { position: relative; display: grid; gap: clamp(.85rem, 1.4vw, 1.25rem); min-width: 0; }
.s58-route-stack::before { content: ""; position: absolute; left: clamp(.75rem, 1.4vw, 1.2rem); top: 1.2rem; bottom: 1.2rem; width: 1px; background: linear-gradient(var(--s58-gold), rgba(201,182,140,.04)); opacity: .62; }
.s58-route-card {
  position: relative;
  z-index: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(8.5rem, .42fr) minmax(0, .78fr);
  gap: clamp(.9rem, 1.6vw, 1.35rem) clamp(1rem, 2.2vw, 2rem);
  padding: clamp(1rem, 2vw, 1.65rem);
  background: var(--s58-beige);
  color: var(--s58-black);
  border: 1px solid rgba(250,248,243,.14);
  box-shadow: -1rem 1.2rem 3rem rgba(0,0,0,.26);
  --s58-card-rotate: -.2deg;
  transform: rotate(var(--s58-card-rotate));
}
.s58-route-card:nth-child(2) { --s58-card-rotate: .35deg; }
.s58-route-card:nth-child(3) { --s58-card-rotate: -.35deg; }
.s58-route-card::before {
  content: "";
  position: absolute;
  inset: .45rem auto .45rem .45rem;
  width: 3px;
  background: var(--s58-gold-deep);
}
.s58-route-card.is-featured { background: var(--s58-black); color: var(--s58-white); border-color: rgba(201,182,140,.52); box-shadow: -1.2rem 1.6rem 4rem rgba(0,0,0,.46); }
.s58-route-meta { display: grid; align-content: start; gap: .35rem; padding-left: .55rem; }
.s58-route-meta p { margin: 0; }
.s58-route-meta span,
.s58-route-meta p:first-child { color: var(--s58-gold-deep); text-transform: uppercase; letter-spacing: .22em; font-size: .58rem; font-weight: 900; }
.s58-route-card.is-featured .s58-route-meta span,
.s58-route-card.is-featured .s58-route-meta p:first-child { color: var(--s58-gold); }
.s58-route-meta strong { font-size: clamp(1.4rem, 2.6vw, 2.4rem); line-height: .86; letter-spacing: -.065em; font-weight: 500; }
.s58-route-meta em { font-style: normal; color: rgba(21,19,15,.62); text-transform: uppercase; letter-spacing: .13em; font-size: .68rem; font-weight: 900; }
.s58-route-card.is-featured .s58-route-meta em { color: rgba(201,182,140,.88); }
.s58-route-body h2 { margin: 0 0 .45rem; font-size: clamp(2.2rem, 4.8vw, 5.2rem); line-height: .78; letter-spacing: -.09em; font-weight: 400; }
.s58-route-for { margin: 0; color: rgba(21,19,15,.78); font-size: clamp(.92rem, 1.15vw, 1.05rem); line-height: 1.36; font-weight: 650; }
.s58-route-outcome { margin: .58rem 0 0; color: rgba(21,19,15,.64); line-height: 1.42; font-size: .86rem; }
.s58-route-card.is-featured .s58-route-for { color: rgba(250,248,243,.84); }
.s58-route-card.is-featured .s58-route-outcome { color: rgba(250,248,243,.66); }
.s58-route-includes { grid-column: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .38rem .8rem; margin: 0; padding: 0; list-style: none; }
.s58-route-includes li { min-width: 0; padding-top: .4rem; border-top: 1px solid rgba(21,19,15,.15); color: rgba(21,19,15,.66); font-size: .72rem; line-height: 1.28; overflow-wrap: anywhere; }
.s58-route-card.is-featured .s58-route-includes li { border-top-color: rgba(250,248,243,.16); color: rgba(250,248,243,.66); }
.s58-route-boundary { grid-column: 1 / -1; margin: 0; padding-top: .65rem; border-top: 1px dashed rgba(21,19,15,.2); color: rgba(21,19,15,.58); font-size: .75rem; line-height: 1.42; }
.s58-route-card.is-featured .s58-route-boundary { border-top-color: rgba(250,248,243,.2); color: rgba(250,248,243,.58); }
.s58-route-card .s58-actions { grid-column: 1 / -1; margin-top: .1rem; }
.s58-route-card .s58-btn .wp-block-button__link { color: var(--s58-black); border-color: rgba(21,19,15,.32); }
.s58-route-card.is-featured .s58-btn:not(.is-primary) .wp-block-button__link { color: var(--s58-white); border-color: rgba(250,248,243,.34); }
.s58-service-rails { background: var(--s58-beige); color: var(--s58-black); padding-block: clamp(3rem, 7vw, 7rem); }
.s58-service-rails .s58-kicker { color: var(--s58-gold-deep); }
.s58-service-rails .s58-copy { color: rgba(21,19,15,.68); }
.s58-rails-grid { display: grid; grid-template-columns: .92fr 1fr 1fr; gap: 1px; background: rgba(21,19,15,.18); align-items: stretch; }
.s58-rails-grid > * { background: var(--s58-beige); padding: clamp(1rem, 2.2vw, 2rem); margin-block-start: 0 !important; }
.s58-rails-head { grid-row: span 2; }
.s58-rails-head .s58-title { max-width: 7.5ch; }
.s58-rails-panel h3 { margin: 0 0 .8rem; font-size: clamp(1.7rem, 3vw, 3.2rem); line-height: .86; letter-spacing: -.07em; font-weight: 500; }
.s58-rails-panel p,
.s58-rails-panel li { color: rgba(21,19,15,.68); line-height: 1.45; font-size: .9rem; }
.s58-rails-panel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.s58-rails-panel li { border-top: 1px solid rgba(21,19,15,.18); padding-top: .55rem; }
.s58-rails-panel.is-negative { grid-column: 2 / 4; background: var(--s58-black); color: var(--s58-white); }
.s58-rails-panel.is-negative h3 { color: var(--s58-white); }
.s58-rails-panel.is-negative li { color: rgba(250,248,243,.7); border-top-color: rgba(250,248,243,.16); }
.s58-addon-cloud { grid-column: 1 / 4; display: flex; flex-wrap: wrap; align-content: start; gap: .55rem; }
.s58-addon-cloud span,
.s58-addon-cloud p { margin: 0; border: 1px solid rgba(21,19,15,.18); padding: .62rem .72rem; color: rgba(21,19,15,.68); text-transform: uppercase; letter-spacing: .1em; font-size: .62rem; font-weight: 850; }
.s58-rails-cta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.s58-rails-cta p { margin: 0; max-width: 48rem; color: rgba(21,19,15,.72); font-size: clamp(1.2rem, 2vw, 1.8rem); line-height: 1.1; letter-spacing: -.04em; }
.s58-rails-cta .s58-btn { color: var(--s58-black); }

.s58-thanks-dossier { min-height: 100svh; display: grid; align-items: center; padding-block: calc(var(--s58-header) + 1.4rem) 2rem; background: var(--s58-void); }
.s58-thanks-layout { display: grid; grid-template-columns: minmax(0, .95fr) minmax(18rem, .8fr); gap: clamp(1rem, 4vw, 5rem); align-items: center; }
.s58-thanks-card { position: relative; background: var(--s58-beige); color: var(--s58-black); padding: clamp(1.2rem, 3vw, 2.8rem); box-shadow: -1.8rem 2.2rem 5rem rgba(0,0,0,.5); }
.s58-thanks-stamp { position: absolute; right: clamp(.8rem, 2vw, 1.4rem); top: clamp(.8rem, 2vw, 1.4rem); margin: 0; color: rgba(174,151,96,.42); border: 1px solid rgba(174,151,96,.3); padding: .45rem .55rem; transform: rotate(4deg); text-transform: uppercase; letter-spacing: .18em; font-size: .58rem; font-weight: 900; }
.s58-thanks-card .s58-kicker { color: var(--s58-gold-deep); }
.s58-thanks-card .s58-title { max-width: 8ch; color: var(--s58-black); }
.s58-thanks-card .s58-copy { color: rgba(21,19,15,.68); }
.s58-thanks-card .s58-btn .wp-block-button__link { color: var(--s58-black); border-color: rgba(21,19,15,.3); }
.s58-thanks-card .s58-btn.is-primary .wp-block-button__link { color: var(--s58-black); }
.s58-thanks-ref { margin: 0 0 1rem; color: rgba(21,19,15,.52); text-transform: uppercase; letter-spacing: .16em; font-size: .66rem; font-weight: 900; }
.s58-thanks-next { border-top: 1px solid var(--s58-line-dark); padding-top: clamp(1rem, 2vw, 1.6rem); }
.s58-route-stamp { margin: 0 0 1rem; color: var(--s58-gold); text-transform: uppercase; letter-spacing: .22em; font-size: .62rem; font-weight: 900; }
.s58-thanks-timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--s58-line-dark); }
.s58-thanks-timeline li { display: grid; grid-template-columns: 3.2rem 1fr; gap: .8rem; background: var(--s58-void); padding: .9rem 0; color: rgba(250,248,243,.74); }
.s58-thanks-timeline strong { color: var(--s58-gold); letter-spacing: .18em; font-size: .66rem; }
.s58-thanks-timeline span { line-height: 1.35; }
.s58-thanks-prep { margin-top: 1.2rem; padding: clamp(1rem, 2vw, 1.5rem); background: rgba(250,248,243,.06); }
.s58-thanks-prep h2 { margin: 0 0 .8rem; font-size: clamp(1.5rem, 2.7vw, 2.6rem); line-height: .9; letter-spacing: -.06em; }
.s58-thanks-prep ul { margin: 0; padding-left: 1.1rem; color: rgba(250,248,243,.7); line-height: 1.4; }

.s58-page-legal { background: var(--s58-void); color: var(--s58-white); }
.s58-legal-hero {
  position: relative;
  min-height: 100svh;
  padding-block: calc(var(--s58-header) + 1.4rem) clamp(2rem, 5vw, 5rem);
  display: grid;
  align-items: start;
  background:
    linear-gradient(90deg, rgba(201,182,140,.07) 1px, transparent 1px) 0 0 / 10vw 100%,
    radial-gradient(circle at 10% 16%, rgba(201,182,140,.13), transparent 22rem),
    radial-gradient(circle at 88% 18%, rgba(250,248,243,.07), transparent 18rem),
    var(--s58-void);
}
.s58-legal-layout { display: grid; grid-template-columns: minmax(17rem, .58fr) minmax(0, 1fr); gap: clamp(1.5rem, 5vw, 6rem); align-items: start; }
.s58-legal-toc { position: sticky; top: calc(var(--s58-header) + 2rem); }
.s58-legal-toc .s58-kicker { color: var(--s58-gold); }
.s58-legal-toc .s58-title { color: var(--s58-white); max-width: 8ch; }
.s58-legal-toc p:not(.s58-kicker) { color: rgba(250,248,243,.66); line-height: 1.45; }
.s58-legal-document { counter-reset: legal; display: grid; gap: 0; background: transparent; }
.s58-legal-document h2,
.s58-legal-document p { margin: 0; background: rgba(250,248,243,.075); border-inline: 1px solid rgba(250,248,243,.12); }
.s58-legal-document h2 { counter-increment: legal; display: grid; grid-template-columns: 3.2rem 1fr; gap: .9rem; align-items: end; margin-top: .8rem; padding: clamp(1rem, 2vw, 1.45rem) clamp(1rem, 2vw, 1.55rem) .45rem; font-size: clamp(1.45rem, 2.4vw, 2.4rem); line-height: .95; letter-spacing: -.055em; font-weight: 500; color: var(--s58-white); border-top: 1px solid rgba(250,248,243,.16); border-inline: 1px solid rgba(250,248,243,.12); }
.s58-legal-document h2::before { content: "0" counter(legal); color: var(--s58-gold); font-family: monospace; font-size: .62rem; letter-spacing: .14em; transform: translateY(-.1rem); }
.s58-legal-document h2:first-child { margin-top: 0; }
.s58-legal-document p { padding: 0 clamp(1rem, 2vw, 1.55rem) clamp(1rem, 2vw, 1.45rem) calc(clamp(1rem, 2vw, 1.55rem) + 4.1rem); color: rgba(250,248,243,.68); line-height: 1.55; border-bottom: 1px solid rgba(250,248,243,.12); }
.s58-legal-document a { color: var(--s58-gold); text-decoration-color: rgba(201,182,140,.78); text-underline-offset: .2em; }

.s58-footer { position: relative; overflow: clip; min-height: 100svh; min-height: 100dvh; display: grid; align-items: center; padding-block: calc(var(--s58-header) + clamp(3.2rem, 7dvh, 5rem)) clamp(1.8rem, 3dvw, 3rem); background: radial-gradient(circle at 78% 52%, rgba(201,182,140,.1), transparent 22rem), var(--s58-void); color: var(--s58-white); border-top: 1px solid rgba(201,182,140,.18); }
.s58-footer::before { content: "IMAGE PROJECTION / REQUEST / TERMS"; position: absolute; left: clamp(1rem, 4dvw, 4.5rem); right: clamp(1rem, 4dvw, 4.5rem); top: calc(var(--s58-header) + clamp(.75rem, 1.4dvw, 1.25rem)); padding-top: .55rem; border-top: 1px solid rgba(201,182,140,.22); color: rgba(201,182,140,.5); letter-spacing: .2em; font-size: .58rem; font-weight: 850; }
.s58-footer-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(10rem, .62fr) minmax(0, 1.32fr) minmax(10rem, .46fr); gap: clamp(1.4rem, 4dvw, 5rem); align-items: center; align-content: center; }
.s58-footer-logo svg { width: clamp(8.5rem, 13dvw, 13rem); height: auto; display: block; }
.s58-footer-brand p,
.s58-footer-contact p,
.s58-footer-fineprint p { color: rgba(250,248,243,.62); line-height: 1.45; }
.s58-footer-brand { max-width: 21rem; }
.s58-footer-brand p { margin: 1rem 0 0; }
.s58-footer-contact { min-width: 0; }
.s58-footer-email { display: block; max-width: 100%; margin: .65rem 0 1rem; color: var(--s58-white); text-decoration: none; font-size: clamp(2rem, 3.55dvw, 4.15rem); line-height: .88; letter-spacing: -.07em; white-space: nowrap; overflow-wrap: normal; }
.s58-footer-links { display: grid; gap: .65rem; justify-items: end; align-self: end; }
.s58-footer-links p { margin: 0; }
.s58-footer-links a { display: inline-flex; min-height: 1.45rem; align-items: center; color: rgba(250,248,243,.72); text-decoration: none; text-transform: uppercase; letter-spacing: .16em; font-size: .66rem; font-weight: 800; }
.s58-footer-links a:hover { color: var(--s58-gold); }
.s58-footer-email a { color: inherit; text-decoration: none; }
.s58-footer-fineprint { grid-column: 1 / -1; border-top: 1px solid var(--s58-line-dark); padding-top: 1rem; margin-top: clamp(1rem, 3dvh, 2.4rem); }
.s58-footer-fineprint p { margin: .4rem 0 0; font-size: .74rem; max-width: 58rem; }
.s58-footer-mark { position: absolute; right: clamp(1rem, 4dvw, 4rem); bottom: clamp(1.2rem, 5dvh, 4rem); z-index: 1; color: rgba(201,182,140,.045); font-size: clamp(7rem, 18dvw, 17rem); line-height: .75; letter-spacing: -.12em; font-weight: 300; pointer-events: none; }

/* Menu Overlay Refinements */
.s58-menu-footer { margin-top: 2.5rem; border-top: 1px solid rgba(21,19,15,.12); padding-top: 1.5rem; }
.s58-menu-tagline { font-size: 0.85rem; color: rgba(21,19,15,.76); margin-bottom: 0.8rem; line-height: 1.4; }
.s58-menu-meta { display: flex; justify-content: space-between; align-items: center; font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.1em; }
.s58-menu-meta a { display: inline; font-size: 0.76rem; font-weight: 700; text-decoration: underline; color: var(--s58-black); }

/* Motion grammar: projection-frame mask + editorial contact sheet. Progressive only. */
.s58-motion-ready:not(.s58-reduce-motion) .s58-menu {
  transform: none;
  visibility: hidden;
  pointer-events: none;
  clip-path: circle(0% at calc(100% - 2.2rem) 2.2rem);
  transition: clip-path 1.05s cubic-bezier(.76,0,.24,1), visibility 0s linear 1.05s;
}
.s58-motion-ready:not(.s58-reduce-motion).s1958-menu-open .s58-menu {
  visibility: visible;
  pointer-events: auto;
  clip-path: circle(145% at calc(100% - 2.2rem) 2.2rem);
  transition: clip-path 1.05s cubic-bezier(.76,0,.24,1), visibility 0s;
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-menu nav a {
  opacity: 0;
  transform: translateY(1.1rem) skewY(2deg);
  transition: opacity .72s ease, transform .72s cubic-bezier(.22,1,.36,1);
}
.s58-motion-ready:not(.s58-reduce-motion).s1958-menu-open .s58-menu nav a {
  opacity: 1;
  transform: translateY(0) skewY(0);
}
.s58-motion-ready:not(.s58-reduce-motion).s1958-menu-open .s58-menu nav a:nth-child(2) { transition-delay: .09s; }
.s58-motion-ready:not(.s58-reduce-motion).s1958-menu-open .s58-menu nav a:nth-child(3) { transition-delay: .18s; }
.s58-motion-ready:not(.s58-reduce-motion).s1958-menu-open .s58-menu nav a:nth-child(4) { transition-delay: .27s; }

.s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-hero-image {
  clip-path: inset(10% 14% 10% 14% round 28px);
  transform: scale(1.08);
  filter: blur(8px) saturate(.85) contrast(1.04);
  transition: clip-path 1.75s cubic-bezier(.16,1,.3,1), transform 1.75s cubic-bezier(.16,1,.3,1), filter 1.75s cubic-bezier(.16,1,.3,1);
  will-change: clip-path, transform, filter;
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero.is-motion-in .s58-hero-image {
  clip-path: inset(0 round 28px);
  transform: scale(1);
  filter: blur(0) saturate(1) contrast(1.04);
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-copy,
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-actions,
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-procard {
  opacity: 0;
  transform: translateY(1.6rem) rotateX(-8deg);
  transition: opacity 1.05s ease, transform 1.05s cubic-bezier(.22,1,.36,1);
  will-change: transform, opacity;
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-title { transition-delay: .28s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-copy { transition-delay: .48s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-actions { transition-delay: .66s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-procard { transform: translate(18%, 1.5rem) rotate(-3deg) scale(.96); transition-delay: .78s; transition-duration: 1.25s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero.is-motion-in .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero.is-motion-in .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero.is-motion-in .s58-copy,
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero.is-motion-in .s58-actions,
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero.is-motion-in .s58-procard {
  opacity: 1;
  transform: translateY(0) rotateX(0);
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-hero.is-motion-in .s58-procard { transform: rotate(-5deg) perspective(1100px) rotateY(7deg); }

.s58-motion-ready:not(.s58-reduce-motion) .s58-index .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-index .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-index .s58-copy,
.s58-motion-ready:not(.s58-reduce-motion) .s58-process .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-process .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-process .s58-copy,
.s58-motion-ready:not(.s58-reduce-motion) .s58-card-room .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-card-room .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-system .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-system .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-system .s58-copy,
.s58-motion-ready:not(.s58-reduce-motion) .s58-faq .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-faq .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-apply .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-apply .s58-title {
  opacity: 0;
  transform: translateY(1.25rem);
  clip-path: inset(0 0 100% 0);
  transition: opacity .95s ease, transform .95s cubic-bezier(.22,1,.36,1), clip-path .95s cubic-bezier(.22,1,.36,1);
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-index.is-motion-in .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-index.is-motion-in .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-index.is-motion-in .s58-copy,
.s58-motion-ready:not(.s58-reduce-motion) .s58-process.is-motion-in .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-process.is-motion-in .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-process.is-motion-in .s58-copy,
.s58-motion-ready:not(.s58-reduce-motion) .s58-card-room.is-motion-in .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-card-room.is-motion-in .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-system.is-motion-in .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-system.is-motion-in .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-system.is-motion-in .s58-copy,
.s58-motion-ready:not(.s58-reduce-motion) .s58-faq.is-motion-in .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-faq.is-motion-in .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-apply.is-motion-in .s58-kicker,
.s58-motion-ready:not(.s58-reduce-motion) .s58-apply.is-motion-in .s58-title {
  opacity: 1;
  transform: translateY(0);
  clip-path: inset(0);
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-index .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-process .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-card-room .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-system .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-faq .s58-title,
.s58-motion-ready:not(.s58-reduce-motion) .s58-apply .s58-title { transition-delay: .16s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-index .s58-copy,
.s58-motion-ready:not(.s58-reduce-motion) .s58-process .s58-copy,
.s58-motion-ready:not(.s58-reduce-motion) .s58-system .s58-copy { transition-delay: .32s; }

.s58-motion-ready:not(.s58-reduce-motion) .s58-face {
  opacity: .001;
  clip-path: inset(8% 10% 12% 10% round 20px);
  transform: translateY(1.4rem) rotate(-1.4deg);
  transition: opacity .9s ease, clip-path 1.15s cubic-bezier(.22,1,.36,1), transform 1.15s cubic-bezier(.22,1,.36,1), flex-basis .7s cubic-bezier(.22,1,.36,1);
  transition-delay: calc(var(--s58-face-index, 0) * 110ms);
  will-change: clip-path, transform, opacity;
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-face:nth-child(even) { transform: translateY(1.8rem) rotate(1.2deg); }
.s58-motion-ready:not(.s58-reduce-motion) .s58-face.is-motion-in,
.s58-motion-ready:not(.s58-reduce-motion) .s58-index.is-motion-in .s58-face {
  opacity: 1;
  clip-path: inset(0 round 20px);
  transform: translateY(0) rotate(0);
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-face img {
  transform: scale(1.06);
  transition: transform 1.2s cubic-bezier(.22,1,.36,1), filter .7s ease;
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-face.is-motion-in img,
.s58-motion-ready:not(.s58-reduce-motion) .s58-index.is-motion-in .s58-face img { transform: scale(1); }

.s58-motion-ready:not(.s58-reduce-motion) .s58-step,
.s58-motion-ready:not(.s58-reduce-motion) .s58-system-card,
.s58-motion-ready:not(.s58-reduce-motion) .s58-faq-item,
.s58-motion-ready:not(.s58-reduce-motion) .s58-apply-panel,
.s58-motion-ready:not(.s58-reduce-motion) .s58-apply-image {
  opacity: .001;
  transform: translateY(1.1rem);
  transition: opacity .82s ease, transform .82s cubic-bezier(.22,1,.36,1), filter .7s ease;
  transition-delay: calc(var(--s58-motion-index, 0) * 90ms);
  will-change: transform, opacity;
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-step.is-motion-in,
.s58-motion-ready:not(.s58-reduce-motion) .s58-system-card.is-motion-in,
.s58-motion-ready:not(.s58-reduce-motion) .s58-faq-item.is-motion-in,
.s58-motion-ready:not(.s58-reduce-motion) .s58-apply.is-motion-in .s58-apply-panel,
.s58-motion-ready:not(.s58-reduce-motion) .s58-apply.is-motion-in .s58-apply-image {
  opacity: 1;
  transform: translateY(0);
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-system-card.is-card { transform: translateY(1.1rem) rotate(-1.4deg); }
.s58-motion-ready:not(.s58-reduce-motion) .s58-system-card.is-card.is-motion-in { transform: translateY(0) rotate(-1.4deg); }

.s58-motion-ready:not(.s58-reduce-motion) .s58-route-card {
  clip-path: inset(0 0 18% 0 round 18px);
  opacity: .001;
  transform: translateY(1.15rem) rotate(var(--s58-card-rotate));
  transition: clip-path 1s cubic-bezier(.22,1,.36,1), opacity .72s ease, transform 1s cubic-bezier(.22,1,.36,1), box-shadow .42s ease;
  transition-delay: calc(var(--s58-motion-index, 0) * 120ms);
  will-change: clip-path, transform, opacity;
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-route-card.is-motion-in {
  clip-path: inset(0 round 18px);
  opacity: 1;
  transform: translateY(0) rotate(var(--s58-card-rotate));
}
@media (hover: hover) and (pointer: fine) {
  .s58-motion-ready:not(.s58-reduce-motion) .s58-route-card.is-motion-in:hover {
    transform: translateY(-.38rem) rotate(var(--s58-card-rotate));
  }
  .s58-motion-ready:not(.s58-reduce-motion) .s58-route-card.is-motion-in:hover::before { transform: scaleY(1.08); }
}

.s58-motion-ready:not(.s58-reduce-motion) .s58-footer::before {
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 1.15s cubic-bezier(.22,1,.36,1);
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer .s58-footer-logo,
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer .s58-footer-contact,
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer .s58-footer-links a,
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer .s58-footer-fineprint {
  opacity: 0;
  transform: translateY(.8rem);
  transition: opacity .85s ease, transform .85s cubic-bezier(.22,1,.36,1);
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in::before { transform: scaleX(1); }
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-logo,
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-contact,
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-links a,
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-fineprint {
  opacity: 1;
  transform: translateY(0);
}
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-contact { transition-delay: .2s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-links p:nth-child(1) a { transition-delay: .32s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-links p:nth-child(2) a { transition-delay: .4s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-links p:nth-child(3) a { transition-delay: .48s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-links p:nth-child(4) a { transition-delay: .56s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-links p:nth-child(5) a { transition-delay: .64s; }
.s58-motion-ready:not(.s58-reduce-motion) .s58-footer.is-motion-in .s58-footer-fineprint { transition-delay: .64s; }

@media (max-width: 900px) {
  .s58-motion-ready:not(.s58-reduce-motion) .s58-hero .s58-procard,
  .s58-motion-ready:not(.s58-reduce-motion) .s58-hero.is-motion-in .s58-procard { transform: none; }
  .s58-motion-ready:not(.s58-reduce-motion) .s58-route-card,
  .s58-motion-ready:not(.s58-reduce-motion) .s58-route-card.is-motion-in { clip-path: none; }
  .s58-motion-ready:not(.s58-reduce-motion) .s58-footer .s58-footer-logo,
  .s58-motion-ready:not(.s58-reduce-motion) .s58-footer .s58-footer-contact,
  .s58-motion-ready:not(.s58-reduce-motion) .s58-footer .s58-footer-links a,
  .s58-motion-ready:not(.s58-reduce-motion) .s58-footer .s58-footer-fineprint { transition-duration: .32s; }
}

/* WordPress Admin Bar Alignment */
.admin-bar .s58-header {
  top: 32px;
}
@media screen and (max-width: 782px) {
  .admin-bar .s58-header {
    top: 46px;
  }
}
#wpadminbar {
  border-bottom: none !important;
  box-shadow: none !important;
}

/* Transitions for smooth contrast change on desktop */
.s58-nav a {
  transition: color 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

@media (min-width: 901px) {
  /* Dynamic header styling based on section backgrounds */
  .s58-header.is-light-bg::before {
    background: linear-gradient(180deg, rgba(250,248,243,.36), rgba(250,248,243,0));
    opacity: .72;
  }
  .s58-header.is-light-bg .s58-logo svg {
    filter: drop-shadow(0 .08rem .22rem rgba(21,19,15,.42));
  }
  .s58-header.is-light-bg .s58-nav a {
    color: rgba(21, 19, 15, 0.72);
    text-shadow: 0 .08rem .24rem rgba(250,248,243,.6);
  }
  .s58-header.is-light-bg .s58-nav a:hover {
    color: var(--s58-black);
  }
  .s58-header.is-light-bg .s58-nav a:last-child {
    color: var(--s58-gold-deep);
  }

  /* Desktop layout refinements */
  .s58-title {
    font-size: clamp(3rem, 5.8vw, 6.4rem);
    line-height: 0.8;
  }
  .s58-copy {
    font-size: clamp(0.95rem, 1.3vw, 1.15rem);
    margin-top: 0.8rem;
  }
  .s58-actions {
    margin-top: 1rem;
  }
  .s58-btn:not(.wp-block-button),
  .s58-btn .wp-block-button__link {
    min-height: 2.8rem;
    padding: 0.8rem 1.1rem;
    font-size: 0.68rem;
  }

  /* Hero desktop compact adjustments */
  .s58-hero .s58-grid {
    max-height: calc(100vh - var(--s58-header) - 3rem);
    gap: 3vw;
  }
  .s58-procard {
    width: min(38vw, 29rem);
    max-height: calc(100vh - var(--s58-header) - 4rem);
    margin-right: 1.5vw;
  }
  .s58-procard__name {
    font-size: clamp(1.8rem, 3.2vw, 3rem);
  }
  .s58-mini {
    min-height: 3.8rem;
  }
  .s58-procard__strip {
    margin-top: 0.4rem;
    gap: 0.4rem;
  }
  .s58-spec {
    padding: 0.45rem;
    font-size: 0.54rem;
  }

  /* Responsive Visual Index height */
  .s58-grid--index {
    align-items: start;
  }
  .s58-face-grid {
    height: min(72dvh, 42rem);
    display: flex;
    gap: clamp(.6rem, 1.2vw, 1rem);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    padding: 1rem 1rem 1rem 0;
    cursor: grab;
    scrollbar-width: none;
  }
  .s58-face-grid::-webkit-scrollbar { display: none; }
  .s58-face-grid.is-dragging { cursor: grabbing; }
  .s58-face {
    flex: 0 0 clamp(7.5rem, 10vw, 11rem);
    height: 100%;
    scroll-snap-align: center;
    transition: flex-basis .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1), opacity .45s ease;
    opacity: .66;
    transform: translateY(4%);
    outline: none;
  }
  .s58-face.is-active {
    flex-basis: clamp(14rem, 23vw, 24rem);
    opacity: 1;
    transform: translateY(0);
  }
  .s58-face img {
    height: 100%;
    filter: grayscale(.1) saturate(.78) contrast(1.08);
    transition: transform .65s cubic-bezier(.22,1,.36,1), filter .65s cubic-bezier(.22,1,.36,1);
  }
  .s58-face.is-active img,
  .s58-face:hover img { filter: grayscale(0) saturate(.95) contrast(1.08); transform: scale(1.02); }
  .s58-face span,
  .s58-face figcaption {
    position: absolute;
    right: .6rem;
    bottom: .6rem;
    max-width: 10rem;
    margin: 0;
    color: var(--s58-white);
    background: rgba(8,7,6,.72);
    padding: .45rem .55rem;
    font-size: .54rem;
    opacity: 0;
    transform: translateX(.8rem);
    transition: opacity .38s ease, transform .38s ease;
  }
  .s58-face.is-active span,
  .s58-face.is-active figcaption,
  .s58-face:hover span,
  .s58-face:hover figcaption {
    opacity: 1;
    transform: translateX(0);
  }

  /* Process desktop refinements */
  .s58-step {
    padding: clamp(0.7rem, 1.6vw, 1.2rem) 0;
  }
  .s58-step h3 {
    font-size: clamp(1.4rem, 2.4vw, 2.6rem);
  }

  /* Sticky Room column on desktop */
  .s58-room {
    position: sticky;
    top: calc(var(--s58-header) + 2rem);
    height: calc(100vh - var(--s58-header) - 4rem);
    min-height: 0;
  }
  
  /* Start Page Sticky Column on desktop */
  .s58-page-start .s58-page-grid {
    align-items: start;
  }
  .s58-page-start .s58-page-narrative {
    position: sticky;
    top: calc(var(--s58-header) + 3rem);
    align-self: start;
  }
  .s58-services-manifest,
  .s58-legal-toc {
    position: sticky;
    top: calc(var(--s58-header) + 2rem);
  }
  .s58-system,
  .s58-faq,
  .s58-apply { height: 100dvh; min-height: 100dvh; padding-block: calc(var(--s58-header) + .5rem) 1rem; }
  .s58-grid--system,
  .s58-faq-grid,
  .s58-apply-grid { height: calc(100dvh - var(--s58-header) - 1.5rem); align-items: center; }
  .s58-system-stack { height: 100%; grid-template-rows: 1fr 1fr; }
  .s58-system-card { min-height: 0; }
  .s58-system-card.is-portfolio { min-height: 0; height: 100%; }
  .s58-system-card.is-card,
  .s58-system-card.is-handoff { height: 100%; }
  .s58-system-card { padding: clamp(.9rem, 1.5vw, 1.35rem); }
  .s58-system-card > * { margin-block-start: 0 !important; }
  .s58-system-card h3 { font-size: clamp(1.35rem, 2.25vw, 2.45rem); line-height: .92; }
  .s58-system-card p,
  .s58-system-card li { font-size: clamp(.78rem, .92vw, .95rem); line-height: 1.34; }
  .s58-system-card.is-portfolio h3 { margin-top: auto !important; max-width: 13ch; font-size: clamp(1.55rem, 2.7vw, 3rem); }
  .s58-system-card.is-portfolio p:not(.s58-system-label) { max-width: 25rem; }
  .s58-system-mini-gallery { margin-top: .9rem !important; }
  .s58-system-big { font-size: clamp(3rem, 5.7vw, 5.6rem); margin: 1.1rem 0 .7rem !important; }
  .s58-system-card ul { margin-top: 1rem; gap: .45rem; }
  .s58-handoff-image { margin-top: .75rem !important; height: clamp(4.5rem, 11dvh, 7rem); aspect-ratio: auto; }
  .s58-faq-list { align-self: stretch; align-content: center; }
  .s58-faq-item { padding: clamp(.7rem, 1.3vw, 1.05rem) 0; }
  .s58-faq-item h3 { font-size: clamp(1.1rem, 1.8vw, 1.8rem); }
  .s58-faq-item p { font-size: clamp(.78rem, .95vw, .95rem); }
  .s58-apply { overflow: clip; }
  .s58-apply-grid { grid-template-columns: .72fr 1.28fr; align-items: center; }
  .s58-apply .s58-title { max-width: 8ch; }
  .s58-apply-image { width: min(100%, 35rem); aspect-ratio: 16 / 10; margin-top: 1.2rem; }
  .s58-apply-panel { align-self: center; padding-top: 0; border-top-color: rgba(250,248,243,.28); }
  .s58-apply-panel .s58-copy { max-width: 42rem; }
}

/* Specific scaling overrides for short viewports on desktop */
@media (min-width: 901px) and (max-height: 800px) {
  :root {
    --s58-header: 64px;
  }
  .s58-screen {
    padding-block: calc(var(--s58-header) + 0.5rem) 1.5rem;
  }
  .s58-title {
    font-size: clamp(2.8rem, 5.2vw, 5.2rem);
  }
  .s58-copy {
    font-size: 0.95rem;
    margin-top: 0.7rem;
    max-width: 32rem;
  }
  .s58-actions {
    margin-top: 0.9rem;
  }
  .s58-btn:not(.wp-block-button),
  .s58-btn .wp-block-button__link {
    min-height: 2.7rem;
    padding: 0.75rem 1.1rem;
    font-size: 0.66rem;
  }
  .s58-hero .s58-grid {
    max-height: calc(100vh - var(--s58-header) - 1.5rem);
    gap: 2rem;
  }
  .s58-procard {
    width: min(34vw, 24rem);
    max-height: calc(100vh - var(--s58-header) - 2.5rem);
    margin-right: 1vw;
  }
  .s58-procard__name {
    font-size: clamp(1.6rem, 2.5vw, 2.4rem);
  }
  .s58-mini {
    min-height: 3.4rem;
  }
  .s58-procard__strip {
    margin-top: 0.35rem;
    gap: 0.35rem;
  }
  .s58-spec {
    padding: 0.4rem;
    font-size: 0.52rem;
  }
  .s58-face-grid {
    height: min(70dvh, calc(100dvh - var(--s58-header) - 4rem));
    gap: 0.8rem;
  }
  .s58-face {
    height: 100%;
  }
  .s58-face img {
    height: 100%;
  }
  .s58-face span {
    margin-top: 0.3rem;
    font-size: 0.54rem;
  }
  .s58-step {
    padding: 0.5rem 0;
    grid-template-columns: 4rem 1fr;
    gap: 1rem;
  }
  .s58-step h3 {
    font-size: clamp(1.2rem, 2vw, 2rem);
  }
  .s58-step p {
    font-size: 0.78rem;
  }
  .s58-system-card { padding: .85rem; }
  .s58-system-card h3 { font-size: clamp(1.2rem, 2vw, 2rem); }
  .s58-system-card p,
  .s58-system-card li { font-size: .78rem; line-height: 1.28; }
  .s58-system-big { font-size: clamp(2.6rem, 4.8vw, 4.4rem); margin: .7rem 0 .45rem !important; }
  .s58-system-mini-gallery { margin-top: .55rem !important; }
  .s58-system-card ul { margin-top: .55rem; gap: .28rem; }
  .s58-handoff-image { margin-top: .45rem !important; height: clamp(3.4rem, 8dvh, 4.8rem); }
  .s58-services-dossier { padding-block: calc(var(--s58-header) + .8rem) 2rem; }
  .s58-route-card { padding: .95rem; gap: .75rem 1rem; }
  .s58-route-body h2 { font-size: clamp(1.8rem, 3.6vw, 3.2rem); }
  .s58-route-for { font-size: .82rem; }
  .s58-route-outcome,
  .s58-route-boundary { font-size: .72rem; }
  .s58-route-includes li { font-size: .66rem; }
}

@media (max-width: 900px) {
  :root { --s58-header: 54px; }
  .s58-shell { width: min(100% - 1.5rem, 100%); }
  .s58-logo svg { width: 5.9rem; }
  .s58-nav { display: none; }
  .s58-menu-toggle { display: inline-flex; }
  
  /* Screen & Layout Adjustments: Flow indexing and process, slide hero and card-room */
  .s58-screen { min-height: auto; height: auto; padding-block: 5rem 4rem; display: block; }
  .s58-screen.s58-hero { min-height: 100svh; display: flex; align-items: center; padding-block: var(--s58-header) 2.5rem; }
  .s58-screen.s58-card-room { min-height: 100svh; display: flex; align-items: center; padding-block: 5rem 3rem; }
  .s58-page-grid,
  .s58-service-grid,
  .s58-services-layout,
  .s58-thanks-layout,
  .s58-legal-layout,
  .s58-footer-grid { grid-template-columns: 1fr; }
  .s58-form-grid { grid-template-columns: 1fr; }
  .s58-page-hero { min-height: auto; padding-block: calc(var(--s58-header) + 1.2rem) 3rem; }
  .s58-page-grid { gap: 1.65rem; }
  .s58-page .s58-title { font-size: clamp(2.25rem, 10vw, 3.65rem); line-height: .86; max-width: 9ch; letter-spacing: -.08em; }
  .s58-page .s58-copy { font-size: .82rem; line-height: 1.38; max-width: 28rem; }
  .s58-page-points { margin-top: 1rem; }
  .s58-page-points li { font-size: .82rem; padding: .58rem 0; }
  .s58-form-card { padding: .9rem; box-shadow: none; }
  .s58-form-card::before { margin-bottom: .9rem; font-size: .5rem; letter-spacing: .12em; padding-bottom: 0.4rem; }
  .s58-inquiry-form { gap: .72rem; }
  .s58-inquiry-form label { font-family: monospace; font-size: .5rem; letter-spacing: .1em; }
  .s58-inquiry-form input,
  .s58-inquiry-form textarea { font-size: .82rem; min-height: 2.85rem; padding: .7rem .76rem; border-bottom-width: 1px; }
  .s58-choice-grid,
  .s58-fieldset.is-compact .s58-choice-grid { grid-template-columns: 1fr; gap: .42rem; }
  .s58-fieldset legend { font-family: monospace; font-size: .5rem; margin-bottom: .3rem; }
  .s58-choice span { min-height: auto; padding: .62rem .68rem; }
  .s58-choice strong { font-size: .76rem; }
  .s58-choice small { font-size: .62rem; margin-top: .2rem; }
  .s58-inquiry-form textarea { min-height: 7rem; }
  .s58-form-note { font-size: .72rem; }
  .s58-consent { font-size: .72rem !important; }
  .s58-form-submit { width: 100%; justify-content: center; padding: .85rem .8rem; font-size: .58rem; }
  .s58-header.is-light-bg::before {
    background: linear-gradient(180deg, rgba(250,248,243,.34), rgba(250,248,243,0));
    opacity: .78;
  }
  .s58-header.is-light-bg .s58-menu-toggle {
    color: var(--s58-black);
    background: rgba(250,248,243,.38);
    border-color: rgba(21,19,15,.24);
    text-shadow: none;
  }
  .s58-header.is-light-bg .s58-logo svg { filter: drop-shadow(0 .08rem .22rem rgba(21,19,15,.42)); }
  .s58-services-dossier { min-height: 100svh; min-height: 100dvh; padding-block: calc(var(--s58-header) + 1.1rem) 1rem; }
  .s58-services-dossier::after { display: none; }
  .s58-services-layout { gap: 1.4rem; }
  .s58-services-proof { margin-top: 1rem; }
  .s58-route-stack { gap: 1rem; }
  .s58-route-stack::before { left: .55rem; }
  .s58-route-card { grid-template-columns: 1fr; align-content: center; gap: .8rem; min-height: calc(100svh - var(--s58-header) - 1.35rem); min-height: calc(100dvh - var(--s58-header) - 1.35rem); padding: 1rem .9rem; transform: none !important; scroll-margin-top: var(--s58-header); }
  .s58-route-card::before { inset: .4rem auto .4rem .4rem; width: 2px; }
  .s58-route-meta { padding-left: .35rem; grid-template-columns: 1fr auto; align-items: end; }
  .s58-route-meta span,
  .s58-route-meta p:first-child { grid-column: 1 / -1; font-size: .52rem; }
  .s58-route-meta strong { font-size: 1.45rem; }
  .s58-route-meta em { font-size: .6rem; }
  .s58-route-body h2 { font-size: clamp(2.2rem, 13vw, 4rem); }
  .s58-route-for { font-size: .83rem; }
  .s58-route-outcome { font-size: .76rem; }
  .s58-route-includes { grid-column: 1; grid-template-columns: 1fr; gap: .32rem; }
  .s58-route-includes li { font-size: .7rem; padding-top: .32rem; }
  .s58-route-boundary { font-size: .7rem; }
  .s58-service-rails { padding-block: 3rem; }
  .s58-rails-grid { grid-template-columns: 1fr; }
  .s58-rails-head,
  .s58-rails-panel.is-negative,
  .s58-addon-cloud,
  .s58-rails-cta { grid-column: auto; grid-row: auto; }
  .s58-rails-grid > * { padding: 1rem .9rem; }
  .s58-addon-cloud { gap: .4rem; }
  .s58-addon-cloud span,
  .s58-addon-cloud p { font-size: .55rem; padding: .52rem .58rem; }
  .s58-rails-cta { display: grid; }
  .s58-rails-cta .s58-btn { justify-self: stretch; text-align: center; }
  .s58-thanks-dossier { min-height: auto; padding-block: calc(var(--s58-header) + 1.1rem) 3rem; }
  .s58-thanks-layout { gap: 1rem; }
  .s58-thanks-card { padding: 1rem; box-shadow: none; }
  .s58-thanks-stamp { position: static; display: inline-block; margin: 0 0 .8rem; transform: rotate(2deg); font-size: .5rem; }
  .s58-thanks-timeline li { grid-template-columns: 2.5rem 1fr; padding: .8rem 0; font-size: .78rem; }
  .s58-thanks-prep { padding: .9rem; }
  .s58-legal-hero { min-height: 100svh; padding-block: calc(var(--s58-header) + 1.1rem) 3rem; }
  .s58-legal-layout { gap: 1.2rem; }
  .s58-legal-toc { position: static; }
  .s58-legal-document h2 { grid-template-columns: 2.35rem 1fr; gap: .7rem; font-size: 1.35rem; padding: .95rem .9rem .35rem; }
  .s58-legal-document h2::before { font-size: .55rem; }
  .s58-legal-document p { font-size: .82rem; line-height: 1.45; padding: 0 .9rem .95rem calc(.9rem + 3.05rem); }
  .s58-footer { min-height: 100svh; min-height: 100dvh; align-items: start; padding-block: calc(var(--s58-header) + 2.55rem) 1rem; }
  .s58-footer::before { top: calc(var(--s58-header) + .65rem); font-size: .48rem; letter-spacing: .15em; content: "IMAGE PROJECTION / REQUEST"; }
  .s58-footer-grid { align-items: stretch; gap: clamp(.85rem, 2.1dvh, 1.25rem); min-height: calc(100dvh - var(--s58-header) - 3.7rem); align-content: space-between; }
  .s58-footer-logo svg { width: min(82vw, 12.5rem); }
  .s58-footer-brand p { margin-top: .72rem; font-size: .74rem; line-height: 1.38; max-width: 18rem; }
  .s58-footer-contact p { font-size: .74rem; line-height: 1.38; max-width: 19rem; }
  .s58-footer-links { justify-items: start; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem .9rem; padding-block: .55rem; border-block: 1px solid rgba(250,248,243,.13); }
  .s58-footer-links a { min-height: 1.45rem; font-size: .56rem; letter-spacing: .14em; }
  .s58-footer-fineprint { grid-column: auto; }
  .s58-footer-fineprint { margin-top: .1rem; padding-top: .7rem; }
  .s58-footer-fineprint p { font-size: .61rem; line-height: 1.32; }
  .s58-footer-email { font-size: clamp(1.12rem, 8.15dvw, 2.2rem); line-height: .92; letter-spacing: -.075em; white-space: nowrap; overflow-wrap: normal; }
  .s58-footer-mark { z-index: 0; right: -.2rem; bottom: .2rem; font-size: clamp(5rem, 32dvw, 8rem); color: rgba(201,182,140,.04); }
  
  .s58-grid, .s58-grid--index, .s58-hero .s58-grid, .s58-process .s58-grid, .s58-card-room .s58-grid { grid-template-columns: 1fr; gap: 2.2rem; width: 100%; align-content: center; }
  .s58-kicker { font-size: .55rem; margin-bottom: .45rem; }
  .s58-title { font-size: clamp(2.8rem, 13vw, 4.8rem); line-height: 0.85; max-width: 8ch; }
  .s58-copy { font-size: .82rem; line-height: 1.4; margin-top: .6rem; max-width: 25rem; }
  .s58-actions { margin-top: 1rem; gap: .6rem; }
  .s58-btn:not(.wp-block-button),
  .s58-btn .wp-block-button__link { min-height: 2.6rem; padding: .75rem 1rem; font-size: .62rem; }
  .s58-hero-media { min-height: 52svh; margin-top: 1rem; }
  .s58-hero-image { inset: 8% 0 0 10%; background-position: center 20%; }
  .s58-hero-stamp { display: none; }
  .s58-procard { width: min(84vw, 21rem); margin: 0 auto; padding: .45rem; transform: rotate(-2.5deg); }
  .s58-procard__photo { height: 28svh; }
  .s58-procard__name { font-size: 1.8rem; }
  .s58-procard__meta { font-size: .48rem; max-width: 7rem; }
  .s58-mini { min-height: 3.2rem; }
  .s58-spec { font-size: .46rem; padding: .46rem; }
  .s58-face-grid { height: auto; grid-template-columns: 1fr 1fr; gap: 2rem 1rem; }
  .s58-face { height: 28vh; }
  .s58-face:nth-child(odd) { transform: translateY(1.5rem); }
  .s58-face:first-child { grid-column: 1 / -1; height: 35vh; transform: none; }
  .s58-face span,
  .s58-face figcaption { color: var(--s58-black); font-size: .54rem; margin-top: 0.4rem; }
  .s58-step { grid-template-columns: 3.2rem 1fr; gap: 0.8rem; padding: 1rem 0; }
  .s58-step b,
  .s58-step__num { font-size: .62rem; }
  .s58-step h3 { font-size: 1.35rem; }
  .s58-step p { font-size: .76rem; line-height: 1.35; }
  .s58-room { min-height: 30svh; height: 30svh; }
  .s58-room-note { font-size: 0.95rem; left: 1rem; bottom: 1rem; right: 1rem; }
}

@media (max-width: 520px) {
  html, body { inline-size: 100%; overflow-x: hidden; }
  .wp-site-blocks { inline-size: 100%; overflow-x: clip; }
  
  /* Mobile Spacing & Spacing Flow */
  .s58-screen { inline-size: 100%; min-height: auto; height: auto; padding-block: 3.5rem 3rem; display: block; }
  .s58-screen.s58-hero { min-height: 100dvh; height: 100dvh; display: flex; align-items: center; padding-block: var(--s58-header) 0; }
  .s58-screen.s58-card-room { min-height: 100svh; display: flex; align-items: center; padding-block: 4rem 2rem; }
  
  .s58-shell { width: calc(100% - 1.5rem); }
  .s58-header { height: var(--s58-header); padding-inline: .5rem; background: transparent; backdrop-filter: none; }
  .s58-logo svg { width: 5.2rem; }
  .s58-menu-toggle { padding: .48rem .62rem; font-size: .46rem; letter-spacing: .16em; }

  .s58-hero { padding-block: var(--s58-header) 0; }
  .s58-hero .s58-grid { position: relative; min-height: calc(100dvh - var(--s58-header)); height: calc(100dvh - var(--s58-header)); display: flex; flex-direction: column; justify-content: space-between; gap: 1.1rem; }
  .s58-hero .s58-grid > div:first-child { position: relative; z-index: 4; padding-top: .5rem; max-width: 100%; }
  .s58-hero .s58-title { font-size: clamp(2.4rem, 15vw, 4rem); max-width: 8ch; text-shadow: 0 .1rem .4rem rgba(8,7,6,.65); }
  .s58-hero .s58-copy { max-width: 22rem; font-size: .74rem; line-height: 1.35; color: rgba(250,248,243,.86); }
  .s58-hero .s58-actions { margin-top: 0.8rem; }
  .s58-hero .s58-btn:not(.wp-block-button),
  .s58-hero .s58-btn .wp-block-button__link { min-height: 2.2rem; padding: .6rem .8rem; font-size: .5rem; }
  .s58-hero-media { position: relative; width: 100%; flex: 1 1 auto; min-height: 0; display: block; margin-top: .35rem; }
  .s58-hero-media::before {
    content: "";
    position: absolute;
    left: -.25rem;
    bottom: 1.15rem;
    z-index: 4;
    width: clamp(15rem, 72vw, 19rem);
    aspect-ratio: 1035 / 180;
    background: var(--s58-wordmark-spine-url) center / contain no-repeat;
    opacity: .38;
    mix-blend-mode: normal;
    filter: none;
    transform: rotate(-90deg);
    transform-origin: left top;
    pointer-events: none;
  }
  .s58-hero-image { inset: 0; background-position: center 25%; opacity: .88; height: 100%; }
  .s58-hero-image::after { background: linear-gradient(180deg, rgba(8,7,6,.1), rgba(8,7,6,.85)); }
  .s58-procard { position: absolute; right: 0.2rem; bottom: 0.5rem; width: min(84vw, 17.5rem); margin: 0; padding: .38rem; transform: rotate(-2.5deg); }
  .s58-procard__photo { height: 200px; }
  .s58-procard__bar { padding: .45rem .05rem .25rem; }
  .s58-procard__name { font-size: 1.42rem; }
  .s58-procard__meta { font-size: .4rem; max-width: 5.5rem; }
  .s58-procard__strip { grid-template-columns: 1fr 1fr; }
  .s58-procard__strip .s58-mini { min-height: 2.4rem; }
  .s58-procard__strip .s58-spec { grid-column: 1 / -1; font-size: .38rem; padding: .3rem .1rem 0; }

  .s58-index .s58-grid,
  .s58-process .s58-grid,
  .s58-card-room .s58-grid,
  .s58-grid--system,
  .s58-apply-grid,
  .s58-faq-grid { min-height: 0; height: auto; display: flex; flex-direction: column; justify-content: flex-start; gap: 1.5rem; }
  .s58-index .s58-title,
  .s58-process .s58-title,
  .s58-card-room .s58-title { font-size: clamp(2.3rem, 12vw, 3.6rem); max-width: 9ch; }
  .s58-index .s58-copy,
  .s58-process .s58-copy,
  .s58-card-room .s58-copy { font-size: .74rem; line-height: 1.35; max-width: 22rem; }

  .s58-face-grid { width: 100%; height: auto; grid-template-columns: 1fr 1fr; gap: 1.8rem 0.8rem; }
  .s58-face { height: 22vh; }
  .s58-face:nth-child(odd) { transform: translateY(1rem); }
  .s58-face:first-child { grid-column: 1 / -1; height: 30vh; transform: none; }
  .s58-face span,
  .s58-face figcaption { font-size: .48rem; margin-top: 0.3rem; }

  .s58-process .s58-grid { display: flex; flex-direction: column; }
  .s58-steps { width: 100%; align-self: stretch; margin-top: 0.5rem; }
  .s58-step { grid-template-columns: 2.6rem 1fr; gap: .7rem; padding: .8rem 0; }
  .s58-step h3 { font-size: 1.15rem; margin-bottom: .18rem; }
  .s58-step p { font-size: .72rem; line-height: 1.3; }

  .s58-card-room .s58-grid { display: flex; flex-direction: column; align-items: stretch; }
  .s58-room { height: 26vh; min-height: 180px; }
  .s58-room-note { font-size: 0.82rem; line-height: 1.3; left: 0.8rem; bottom: 0.8rem; right: 0.8rem; }
  .s58-pricing-menu { gap: 1.5rem; margin-top: 1.5rem; }
  .s58-pricing-item { padding-top: 1rem; }
  .s58-pricing-name { font-size: 1.15rem; }
  .s58-pricing-price { font-size: 0.85rem; }
  .s58-pricing-desc { font-size: 0.78rem; margin: 0.4rem 0 0.8rem; }
  .s58-pricing-details li { font-size: 0.72rem; }
  .s58-pricing-footer { margin-top: 1.8rem; padding-top: 1rem; }
  .s58-pricing-footer p { font-size: 0.82rem; }
  .s58-card-room .s58-actions { margin-top: 1rem; width: 100%; }
  .s58-card-room .s58-btn,
  .s58-card-room .s58-btn .wp-block-button__link { width: 100%; text-align: center; }
  .s58-system-stack { grid-template-columns: 1fr; gap: .8rem; }
  .s58-system-card { min-height: 12rem; padding: 1rem; }
  .s58-system-card.is-portfolio { min-height: 48svh; }
  .s58-system-card.is-card { transform: rotate(-.8deg); }
  .s58-system-big { font-size: 3.2rem; margin: 1.5rem 0 .9rem !important; }
  .s58-apply-panel { padding-top: 1rem; }
  .s58-apply-image { width: min(78vw, 20rem); margin-top: 1.1rem; }
  .s58-apply-questions { margin-top: 1.4rem; }
  .s58-apply-questions li { font-size: 1rem; padding: .8rem 0; }
  .s58-faq-item { padding: .95rem 0; }
  .s58-faq-item h3 { font-size: 1.2rem; }
  .s58-faq-item p { font-size: .78rem; line-height: 1.35; }
  .s58-lightbox__panel { grid-template-columns: 1fr; max-height: 86vh; overflow: auto; }
  .s58-lightbox__image { min-height: 46vh; }
  .s58-lightbox__copy { padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .s58-face img,
  .s58-system-card,
  .s58-apply-image img,
  .s58-lightbox,
  .s58-lightbox__panel { transition: none !important; transform: none !important; opacity: 1 !important; }
}

@media (max-width: 370px) {
  .s58-title { font-size: 2.2rem; }
  .s58-copy { font-size: .68rem; }
  .s58-procard__photo { height: 170px; }
  .s58-face { height: 18vh; }
  .s58-face-grid { gap: 1.2rem 0.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; }
  .s58-procard { transform: rotate(-2.5deg) !important; }
}
