/* ==========================================================================
   Calhoun theme (v2 visual upgrade) — used ONLY in Calhoun sections/pages.
   Red #E4212E is reserved for these scopes and never used as EMA brand colour.
   Class names unchanged.
   ========================================================================== */
.calhoun-theme { --red: #E4212E; }

/* ---------- Homepage Calhoun preview band ---------- */
.calhoun-band { background: #0C0E11; color: #C5CCD4; position: relative; overflow: hidden; }
.calhoun-band::before {
  content:""; position:absolute; inset:0;
  background: radial-gradient(circle at 88% 12%, rgba(228,33,46,.22), transparent 52%),
              radial-gradient(circle at 0% 100%, rgba(228,33,46,.1), transparent 45%);
  pointer-events: none;
}
.calhoun-band::after {
  content:""; position:absolute; inset:0;
  background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 54px 54px; mask-image: radial-gradient(ellipse 60% 70% at 20% 40%, #000, transparent 70%); -webkit-mask-image: radial-gradient(ellipse 60% 70% at 20% 40%, #000, transparent 70%); pointer-events:none;
}
.calhoun-band .container { position: relative; z-index: 1; }
.calhoun-band .eyebrow { color: #fff; }
.calhoun-band .eyebrow::before { background: #E4212E; }
.calhoun-band h2, .calhoun-band h3 { color: #fff; }
.calhoun-logo-mark { height: 44px; width: auto; margin-bottom: 26px; }
.calhoun-band .lede { color: #A6AEB8; }
.calhoun-tag { font-family: var(--font-head); font-weight: 700; color: #fff; font-size: 1.08rem; letter-spacing: -.01em; line-height: 1.4; }
.calhoun-tag .accent { color: #E4212E; }

.btn-red { background: #E4212E; color: #fff; box-shadow: 0 4px 16px rgba(228,33,46,.34); }
.btn-red:hover { background: #f5333f; box-shadow: 0 10px 26px rgba(228,33,46,.46); }
.btn-red-outline { background: rgba(255,255,255,.03); color: #fff; border-color: rgba(255,255,255,.32); }
.btn-red-outline:hover { border-color: #fff; background: rgba(255,255,255,.1); }

.calhoun-band .feature-row .dot { background: #E4212E; box-shadow: 0 0 0 4px rgba(228,33,46,.18); }
.calhoun-band .feature-row li { color: #E4E8ED; }

/* Image strip / mini gallery */
.calhoun-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.calhoun-strip img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; border: 1px solid rgba(255,255,255,.08); box-shadow: var(--shadow-md); transition: transform .35s var(--ease); }
.calhoun-strip img:hover { transform: scale(1.03); }

/* ---------- Full Calhoun page ---------- */
.calhoun-page { --red: #E4212E; }

/* Hero (dark with red glow + blueprint texture; image added later via assets) */
.calhoun-hero {
  background: radial-gradient(circle at 85% 18%, rgba(228,33,46,.30), transparent 55%), linear-gradient(160deg, #16181c, #0a0b0d);
  color: #fff; position: relative; overflow: hidden;
}
.calhoun-hero::before { content:""; position:absolute; inset:0;
  background-image: linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 54px 54px; mask-image: radial-gradient(ellipse 70% 80% at 82% 18%, #000, transparent 72%); -webkit-mask-image: radial-gradient(ellipse 70% 80% at 82% 18%, #000, transparent 72%); }
.calhoun-hero::after { content:""; position:absolute; top:-15%; left:-10%; width:55%; height:130%;
  background: radial-gradient(circle, rgba(228,33,46,.14), transparent 60%); pointer-events:none; }
.calhoun-hero .container { position: relative; z-index: 2; }
.calhoun-hero .inner { padding: 56px 0 84px; max-width: 760px; }
.calhoun-hero h1 { color: #fff; }
.calhoun-hero .eyebrow { color: #fff; }
.calhoun-hero .eyebrow::before { background: #E4212E; }
.calhoun-hero p { color: #D2D7DD; font-size: 1.16rem; line-height: 1.6; max-width: 60ch; }
.calhoun-hero .authorized { height: 116px; width: auto; margin-bottom: 26px; filter: drop-shadow(0 4px 14px rgba(0,0,0,.5)); }
.calhoun-hero .breadcrumbs a, .calhoun-hero .breadcrumbs li[aria-current] { color: #fff; }
/* Hero photo: full-bleed on the right, faded to transparent on the left so the
   dark-red background shows through continuously (no seam) */
.calhoun-hero-photo { position: absolute; top: 0; bottom: 0; right: calc((100% - 100vw) / 2); width: 60vw; z-index: 1;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.35) 20%, #000 52%);
          mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.35) 20%, #000 52%); }
.calhoun-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.calhoun-hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(228,33,46,.16), transparent 55%); }
@media (max-width: 1024px) { .calhoun-hero-photo { display: none; } }

.calhoun-page .eyebrow { color: var(--red); }
.calhoun-page .eyebrow::before { background: var(--red); }
.calhoun-page .section--dark { background: #121417; }
.calhoun-page .section--dark .eyebrow { color: #fff; }
.calhoun-page .trust { border-top-color: var(--red); }
.calhoun-page .card::after { background: var(--red); }
.calhoun-page .card .card-num { color: var(--red); }
.calhoun-page .card .card-link::after { color: var(--red); }
.calhoun-page .card:hover .card-icon { background: var(--red); color: #fff; }
.calhoun-page .step .step-num { background: var(--red); color: #fff; box-shadow: 0 0 0 6px rgba(228,33,46,.14); }
.calhoun-page .steps::before { color: var(--red); }
.calhoun-page .answer { border-left-color: var(--red); }
.calhoun-page .faq summary::after { color: var(--red); }
.calhoun-page .checklist li::before { color: var(--red); }
.calhoun-page .cta-band { background: linear-gradient(135deg, #E4212E, #c2121e); color: #fff; }
.calhoun-page .cta-band::before { mask-image: radial-gradient(ellipse 60% 80% at 80% 50%, #000, transparent 70%); }
.calhoun-page .cta-band h2 { color: #fff; }
.calhoun-page .cta-band p { color: #ffd9db; }
.calhoun-page .cta-band .btn-dark { background: #0c0d0f; }
.calhoun-page .feature-row .dot { background: var(--red); box-shadow: 0 0 0 4px rgba(228,33,46,.16); }

/* Full gallery grid */
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.gallery-grid figure { margin: 0; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-md); background: #15171a; position: relative; }
.gallery-grid img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .5s var(--ease); }
.gallery-grid figure:hover img { transform: scale(1.06); }
.gallery-grid figcaption { font-size: .82rem; color: var(--grey); padding: 13px 16px; background: var(--white); }

/* Carousel */
.carousel-track { scrollbar-width: thin; }
.carousel-track figure { margin: 0; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-md); background: #15171a; }
.carousel-track figure img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; transition: transform .5s var(--ease); }
.carousel-track figure:hover img { transform: scale(1.06); }
.carousel-track figcaption { font-size: .82rem; color: var(--grey); padding: 12px 14px; background: var(--white); }

/* Application cards */
.app-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.app { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; font-family: var(--font-head); font-weight: 600; font-size: 1.02rem; letter-spacing: -.02em; transition: transform .2s var(--ease), box-shadow .2s, border-color .2s; }
.app:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--border-2); }
.app .app-k { font-family: var(--font); color: var(--red); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; display: block; margin-bottom: 10px; font-weight: 700; }

/* ---- Building series (tabbed profiles) ---- */
.calhoun-series { background: #0E1116; color: #fff; position: relative; }
.calhoun-series .eyebrow { color: #fff; }
.calhoun-series .eyebrow::before { background: var(--red); }
.calhoun-series h2 { color: #fff; }
.calhoun-series .lede { color: #C5CCD4; }
.series-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 8px 0 44px; }
.series-tab { font-family: var(--font); font-weight: 700; font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; color: #11161c; background: #C8CCD2; border: 0; border-radius: 999px; padding: 11px 22px; cursor: pointer; transition: background .18s, color .18s, transform .18s; }
.series-tab:hover { background: #e2e5e9; }
.series-tab.is-active { background: var(--red); color: #fff; }
.series-panel[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .series-panel.is-active { animation: seriesIn .28s var(--ease); }
}
@keyframes seriesIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.series-top { display: grid; grid-template-columns: 1fr 1.1fr; gap: 50px; align-items: center; margin-bottom: 48px; }
.series-diagram { display: flex; align-items: center; justify-content: center; padding: 20px; }
.series-diagram svg { width: 100%; max-width: 420px; height: auto; fill: none; stroke: #E6EAEF; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.series-code { font-family: var(--font); font-weight: 700; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: #9aa2ac; }
.series-info h3 { color: #fff; font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem); margin: 8px 0 12px; letter-spacing: -.02em; text-transform: uppercase; }
.series-widths { color: #fff; font-weight: 700; letter-spacing: .02em; margin: 0 0 16px; }
.series-info p { color: #C5CCD4; line-height: 1.65; }
.series-info .btn { margin-top: 22px; }
.series-specs { display: grid; grid-template-columns: 1fr 2fr; gap: 34px; align-items: start; }
.series-standard h4, .series-optfound h4 { font-family: var(--font-head); color: #fff; font-size: 1.18rem; letter-spacing: -.01em; margin: 0 0 18px; text-transform: uppercase; }
.series-standard ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.series-standard li { position: relative; padding: 13px 16px 13px 52px; border-radius: 8px; background: linear-gradient(90deg, rgba(228,33,46,.30), rgba(228,33,46,.04)); color: #fff; font-weight: 700; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; line-height: 1.35; }
.series-standard li::before { content: "\2713"; position: absolute; left: 13px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 50%; background: var(--red); color: #fff; display: grid; place-items: center; font-size: .82rem; font-weight: 800; }
.series-optfound { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 40px; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; padding: 28px 32px; }
.series-optfound ul { list-style: none; margin: 0; padding: 0; }
.series-optfound li { position: relative; padding: 7px 0 7px 18px; color: #C5CCD4; font-size: .94rem; line-height: 1.45; }
.series-optfound li::before { content: ""; position: absolute; left: 0; top: 14px; width: 6px; height: 6px; border-radius: 50%; background: var(--red); }

@media (max-width: 1024px) {
  .calhoun-strip { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .app-grid { grid-template-columns: repeat(2, 1fr); }
  .series-top { grid-template-columns: 1fr; gap: 24px; }
  .series-diagram { order: -1; max-width: 360px; margin: 0 auto; padding: 0; }
}
@media (max-width: 640px) {
  .calhoun-strip { grid-template-columns: 1fr 1fr; }
  .gallery-grid { grid-template-columns: 1fr; }
  .app-grid { grid-template-columns: 1fr; }
  .series-specs { grid-template-columns: 1fr; gap: 26px; }
  .series-optfound { grid-template-columns: 1fr; }
}
