/* ============================================================
   ECHOHAUS — Discipline sub-page styles (hub-and-spoke spokes)
   Loaded after site.css. Reuses site.css primitives.
   ============================================================ */

.disc-hero {
  padding: calc(19vh + 80px) var(--eh-shell-x) clamp(20px, 2.5vw, 40px);
  text-align: center;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse 60% 60% at 50% 0%, rgba(232,154,69,0.10), transparent 60%),
    var(--eh-black);
}
.disc-hero > * { position:relative; z-index:1; }
/* per-discipline hero signature — same vocabulary, different fingerprint */
.disc-hero--audio::before, .disc-hero--lighting::before, .disc-hero--video::before,
.disc-hero--networks::before, .disc-hero--automation::before, .disc-hero--golf::before,
.disc-hero--security::before {
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 74% 96% at 50% 34%, #000 0%, rgba(0,0,0,0.45) 52%, transparent 84%);
  mask-image:radial-gradient(ellipse 74% 96% at 50% 34%, #000 0%, rgba(0,0,0,0.45) 52%, transparent 84%);
}
/* wavefronts */
.disc-hero--audio::before { background:repeating-radial-gradient(circle at 50% 0%, rgba(232,154,69,0.20) 0 1px, transparent 1px 76px); }
/* fixture runs */
.disc-hero--lighting::before { background:repeating-linear-gradient(90deg, rgba(232,154,69,0.18) 0 1px, transparent 1px 132px); }
/* scanlines */
.disc-hero--video::before { background:repeating-linear-gradient(0deg, rgba(232,154,69,0.13) 0 1px, transparent 1px 8px); }
/* structured cabling mesh */
.disc-hero--networks::before { background:repeating-linear-gradient(0deg, rgba(232,154,69,0.16) 0 1px, transparent 1px 66px), repeating-linear-gradient(90deg, rgba(232,154,69,0.16) 0 1px, transparent 1px 66px); }
/* device matrix */
.disc-hero--automation::before { background:radial-gradient(rgba(232,154,69,0.42) 1.4px, transparent 1.6px); background-size:40px 40px; }
/* ball-flight arcs */
.disc-hero--golf::before { background:repeating-linear-gradient(-11deg, rgba(232,154,69,0.16) 0 1px, transparent 1px 46px); }
/* perimeter hatch */
.disc-hero--security::before { background:repeating-linear-gradient(45deg, rgba(232,154,69,0.14) 0 1px, transparent 1px 28px); }
.disc-crumb {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--eh-mono);
  font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase;
  color: rgba(244,237,225,0.45);
  margin-bottom: 26px;
}
.disc-crumb a { color: var(--eh-amber); }
.disc-crumb a:hover { color: var(--eh-amber-hi); }
.disc-crumb .sep { opacity: 0.6; }
.disc-hero h1 { max-width: 1000px; margin: 0 auto; }
.disc-hero .eh-lead { max-width: 620px; margin: 18px auto 0; text-align: center; font-size: clamp(14px, 1.35vw, 17px); line-height: 1.55; }
.disc-hero .eh-eyebrow { justify-content: center; }
.disc-hero__note { max-width:600px; margin:16px auto 0; font-family:var(--eh-text); font-weight:300; font-size:14px; line-height:1.55; color:rgba(244,237,225,0.6); text-align:center; }

/* Feature image band */
.disc-feature {
  padding: clamp(4px, 1vw, 12px) var(--eh-shell-x) 0;
}
.disc-feature__media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 7.2;
  border: 1px solid var(--eh-line-2);
  overflow: hidden;
}
.disc-feature__media[data-label]::after {
  content: attr(data-label);
  position: absolute; left: 18px; bottom: 16px; z-index: 3;
  font-family: var(--eh-mono);
  font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase;
  color: rgba(244,237,225,0.6);
  background: rgba(5,5,5,0.55); padding: 6px 12px;
  border: 1px solid var(--eh-line);
  backdrop-filter: blur(6px);
}

/* Photo drop-in over a motif: SVG is the fallback, photo wins once dropped */
.disc-feature__media image-slot, .disc-duo__media image-slot { position:absolute; inset:0; width:100%; height:100%; display:block; z-index:2; }
.disc-feature__media image-slot:not([data-filled]), .disc-duo__media image-slot:not([data-filled]) { opacity:0; transition:opacity .3s; }
.disc-feature__media:hover image-slot:not([data-filled]), .disc-duo__media:hover image-slot:not([data-filled]) { opacity:1; }
.disc-feature__media:has(image-slot[data-filled]) svg, .disc-duo__media:has(image-slot[data-filled]) svg { display:none; }
.disc-feature__media image-slot[data-filled], .disc-duo__media image-slot[data-filled] { filter:saturate(0.82) contrast(1.06) brightness(0.9) sepia(0.14) hue-rotate(-6deg); }
.disc-feature__media:has(image-slot[data-filled])::before, .disc-duo__media:has(image-slot[data-filled])::before { content:''; position:absolute; inset:0; z-index:3; pointer-events:none; background:linear-gradient(180deg, rgba(5,5,5,0.30) 0%, transparent 30%, transparent 56%, rgba(5,5,5,0.72) 100%); }
.disc-duo__media:has(image-slot[data-filled])::before { background:linear-gradient(180deg, rgba(5,5,5,0.26) 0%, transparent 28%, transparent 66%, rgba(5,5,5,0.5) 100%); }
/* Lighting page — interior plate is already warm and hazy; less sepia, more snap */
#lighting-interior[data-filled] { filter:saturate(0.92) contrast(1.08) brightness(0.97) sepia(0.03) hue-rotate(-3deg); }

/* Split feature — two brand photos, brand-toned to the scheme */
.disc-feature__media--split { display:flex; padding:0; background:#000; border-top-color:transparent; }
.disc-feature__media--split .gsim { position:relative; flex:1 1 50%; min-width:0; margin:0; overflow:hidden; }
.disc-feature__media--split .gsim + .gsim { border-left:1px solid var(--eh-line-2); }
.disc-feature__media--split img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(0.8) contrast(1.06) brightness(0.82) sepia(0.18) hue-rotate(-6deg); }
.disc-feature__media--split .gsim::before { content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background:radial-gradient(ellipse 95% 85% at 50% 38%, rgba(232,154,69,0.30), transparent 72%); mix-blend-mode:soft-light; }
.disc-feature__media--split .gsim::after { content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(180deg, rgba(5,5,5,0.28) 0%, transparent 34%, transparent 52%, rgba(5,5,5,0.9) 100%); }
.disc-feature__media--split figcaption { position:absolute; left:clamp(14px,1.4vw,20px); bottom:clamp(12px,1.2vw,16px); z-index:2; font-family:var(--eh-mono); font-size:10px; letter-spacing:0.24em; text-transform:uppercase; color:var(--eh-amber); background:rgba(5,5,5,0.5); padding:6px 12px; border:1px solid var(--eh-line); backdrop-filter:blur(6px); }

/* In-depth prose — asymmetric two-column */
.disc-body {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(32px, 5vw, 96px);
  padding: clamp(56px, 7vw, 110px) var(--eh-shell-x) clamp(40px, 5vw, 64px);
  align-items: start;
}
.disc-body__head { position: sticky; top: 110px; }
.disc-body__head .eh-eyebrow { margin-bottom: 18px; }
.disc-body__prose p + p { margin-top: 22px; }
@media (max-width: 860px){
  .disc-body { grid-template-columns: 1fr; gap: 28px; }
  .disc-body__head { position: static; }
}

/* Specification grid */
.disc-spec {
  padding: clamp(40px, 5vw, 64px) var(--eh-shell-x) clamp(56px, 7vw, 96px);
}
.disc-spec__head { margin-bottom: clamp(28px, 3vw, 44px); }
.disc-spec__sub { font-family:var(--eh-mono); font-size:10px; letter-spacing:0.24em; text-transform:uppercase; color:rgba(244,237,225,0.5); margin:clamp(30px,3.2vw,46px) 0 14px; }
.disc-spec__sub:first-of-type { margin-top:0; }
.disc-spec__grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--eh-line);
  border-left: 1px solid var(--eh-line);
}
.disc-spec__item {
  border-right: 1px solid var(--eh-line);
  border-bottom: 1px solid var(--eh-line);
  padding: clamp(20px, 2vw, 32px) clamp(18px, 2vw, 28px);
  display: flex; flex-direction: column; gap: 8px;
}
.disc-spec__item .label {
  font-family: var(--eh-mono);
  font-size: 9.5px; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--eh-amber);
}
.disc-spec__item .value {
  font-family: var(--eh-text); font-weight: 300;
  font-size: 15px; line-height: 1.4; color: rgba(244,237,225,0.82);
}
@media (max-width: 820px){ .disc-spec__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px){ .disc-spec__grid { grid-template-columns: 1fr; } }

/* Two-option breakdown inside a spec cell (Foresight vs Full Swing) */
.disc-spec__opts { display:flex; flex-direction:column; gap:12px; }
.disc-spec__opts .opt { display:flex; flex-direction:column; gap:3px; }
.disc-spec__opts .opt-brand {
  font-family: var(--eh-mono);
  font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(244,237,225,0.42);
}
.disc-spec__opts .opt-val {
  font-family: var(--eh-text); font-weight: 300;
  font-size: 15px; line-height: 1.3; color: rgba(244,237,225,0.82);
}

/* Two-track section — interior vs exterior */
.disc-duo__head { text-align:center; display:flex; flex-direction:column; align-items:center; gap:14px; padding:clamp(56px,7vw,100px) var(--eh-shell-x) 0; }
.disc-duo__head .eh-eyebrow { justify-content:center; }
.disc-duo__head .eh-lead { max-width:640px; margin:0; font-size:clamp(14px,1.35vw,17px); line-height:1.55; }
.disc-duo { display:grid; grid-template-columns:1fr 1fr; padding:clamp(48px,6vw,86px) var(--eh-shell-x) clamp(24px,3vw,40px); }
.disc-duo__track { padding:0 clamp(22px,2.8vw,48px); }
.disc-duo__track:first-child { padding-left:0; border-right:1px solid var(--eh-line); }
.disc-duo__track:last-child { padding-right:0; }
.disc-duo__media { position:relative; width:100%; aspect-ratio:16/8.2; border:1px solid var(--eh-line-2); overflow:hidden; margin-bottom:clamp(20px,2.2vw,30px); background:radial-gradient(ellipse 65% 95% at 50% 45%, #100d0a 0%, #070605 62%, #040404 100%); }
.disc-duo__track .eh-eyebrow { margin-bottom:14px; }
.disc-duo__cap { font-family:var(--eh-mono); font-size:10px; letter-spacing:0.24em; text-transform:uppercase; color:rgba(244,237,225,0.55); margin:0 0 clamp(20px,2.2vw,30px); }
.disc-duo__media:has(+ .disc-duo__cap) { margin-bottom:11px; }
.disc-duo--solo .disc-duo__cap { margin-top:11px; margin-bottom:0; }
.disc-duo__title { font-family:var(--eh-display); font-size:clamp(19px,1.9vw,26px); letter-spacing:0.03em; text-transform:uppercase; font-weight:600; color:var(--eh-ivory); margin:0 0 16px; line-height:1.25; }
.disc-duo__track p + p { margin-top:18px; }
.disc-duo__list { list-style:none; margin:clamp(22px,2.4vw,32px) 0 0; padding:0; border-top:1px solid var(--eh-line); }
.disc-duo__list li { display:flex; gap:13px; align-items:flex-start; padding:11px 2px; border-bottom:1px solid var(--eh-line); font-family:var(--eh-text); font-weight:300; font-size:14.5px; line-height:1.45; color:rgba(244,237,225,0.72); }
.disc-duo__list li::before { content:''; flex:none; width:5px; height:5px; margin-top:7px; background:var(--eh-amber); transform:rotate(45deg); }
.disc-duo--solo { grid-template-columns:0.95fr 1.05fr; padding-top:clamp(10px,1.2vw,20px); align-items:start; }
.disc-duo--solo .disc-duo__track:first-child { border-right:none; position:sticky; top:110px; }
.disc-duo--solo .disc-duo__media { margin-bottom:0; aspect-ratio:16/10; }
@media (max-width:900px){ .disc-duo--solo { gap:clamp(24px,4vw,36px); } .disc-duo--solo .disc-duo__track:first-child { position:static; } }
@media (max-width:900px){
  .disc-duo { grid-template-columns:1fr; gap:clamp(40px,6vw,56px); }
  .disc-duo__track { padding:0; }
  .disc-duo__track:first-child { border-right:none; }
}

/* Related disciplines */
.disc-related {
  padding: clamp(56px, 7vw, 100px) var(--eh-shell-x);
  background: #030303;
  border-top: 1px solid var(--eh-line);
}
.disc-related__head { text-align: center; margin-bottom: clamp(32px, 4vw, 56px); display:flex; flex-direction:column; align-items:center; gap:14px; }
.disc-related__grid {
  display: grid; grid-template-columns: repeat(6, 1fr);
  gap: clamp(12px, 1.4vw, 20px);
}
.disc-related__card {
  display: flex; flex-direction: column; gap: 14px;
  padding: clamp(20px, 2vw, 30px) clamp(16px, 1.6vw, 24px);
  border: 1px solid var(--eh-line-2);
  text-decoration: none;
  transition: background 0.3s, border-color 0.3s, transform 0.3s;
}
.disc-related__card:hover {
  background: rgba(232,154,69,0.05);
  border-color: rgba(232,154,69,0.3);
  transform: translateY(-3px);
}
.disc-related__card .ic { width: 30px; height: 30px; color: var(--eh-amber); }
.disc-related__card .ic svg { width: 100%; height: 100%; }
.disc-related__card .nm {
  font-family: var(--eh-display);
  font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500;
  color: var(--eh-ivory);
}
.disc-related__card .ar { color: var(--eh-amber); font-size: 13px; margin-top: auto; }
@media (max-width: 900px){ .disc-related__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px){ .disc-related__grid { grid-template-columns: 1fr 1fr; } }

/* Platform partners (logos user-supplied via image-slot) */
.disc-platforms {
  padding: clamp(36px,4.5vw,64px) var(--eh-shell-x) clamp(24px,3vw,40px);
}
.disc-platforms__head { text-align:center; display:flex; flex-direction:column; align-items:center; gap:16px; }
.disc-platforms__head .eh-eyebrow { justify-content:center; }
.disc-platforms__head .eh-lead { max-width:600px; margin:0; font-size:clamp(14px,1.35vw,17px); line-height:1.55; }
.disc-platforms__grid {
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,28px);
  max-width:880px; margin:clamp(36px,4vw,56px) auto 0;
}
.disc-platforms__card { margin:0; display:flex; flex-direction:column; gap:16px; }
.disc-platforms__slot {
  aspect-ratio:5/2;
  border:1px solid var(--eh-line-2);
  background:#000;
  padding:clamp(22px,3.2vw,44px);
  transition:border-color .3s;
}
.disc-platforms__slot:hover { border-color:rgba(232,154,69,0.3); }
.disc-platforms__slot image-slot { width:100%; height:100%; display:block; }
.disc-platforms__card figcaption {
  text-align:center;
  font-family:var(--eh-mono);
  font-size:10px; letter-spacing:0.24em; text-transform:uppercase;
  color:rgba(244,237,225,0.55);
}
@media (max-width:640px){ .disc-platforms__grid { grid-template-columns:1fr; } }

/* CTA bar */
.disc-cta {
  margin: 0 var(--eh-shell-x) clamp(18px, 2.2vw, 32px);
  border: 1px solid rgba(232,154,69,0.4);
  background:
    radial-gradient(ellipse 60% 140% at 12% 50%, rgba(232,154,69,0.10), transparent 60%),
    linear-gradient(180deg, #0b0a08 0%, #080706 100%);
  display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap;
  padding: clamp(28px, 3.2vw, 44px) clamp(28px, 4vw, 64px);
}
.disc-cta__title {
  font-family: var(--eh-display);
  font-size: clamp(20px, 2.4vw, 30px);
  letter-spacing: 0.04em; text-transform: uppercase; font-weight: 600;
  color: var(--eh-amber); margin: 0 0 8px;
}
.disc-cta__sub { font-family: var(--eh-text); font-weight: 300; font-size: 15px; color: rgba(244,237,225,0.7); margin: 0; }

/* Mobile small-label legibility */
@media (max-width: 760px) {
  .disc-spec__item .label     { font-size: 11px; letter-spacing: 0.20em; }
  .disc-spec__opts .opt-brand { font-size: 11px; letter-spacing: 0.16em; }
  .disc-duo__cap              { font-size: 11px; letter-spacing: 0.18em; }
  .disc-spec__sub             { font-size: 11px; letter-spacing: 0.18em; }
  .disc-feature__media--split figcaption { font-size: 11px; letter-spacing: 0.18em; }
}
