/* =========================================================================
   GAISCE — Home & shared section layouts
   ========================================================================= */

/* ---- Section heads (shared) ---- */
.sec-head { display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: end; }
.sec-head-l .eyebrow { margin-bottom: 20px; }
.sec-head-r { padding-bottom: 6px; }
.sec-rule { margin: 52px 0 0; }
@media (max-width: 820px){ .sec-head { grid-template-columns: 1fr; gap: 24px; } }

/* ========================= HERO ========================= */
.hero {
  position: relative; min-height: 100vh; min-height: 100svh;
  display: flex; align-items: center;
  padding-top: var(--nav-h); overflow: hidden;
  --fg: #EAF1ED;
}
.hero-contour { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; opacity: .9; }
.hero-core {
  position: absolute; right: -8%; bottom: -18%; width: 56vw; height: 56vw; max-width: 760px; max-height: 760px;
  z-index: 0; pointer-events: none;
  background:
    radial-gradient(circle at 50% 50%, rgba(11,15,13,0) 30%, rgba(11,15,13,.0) 38%, rgba(86,245,189,.10) 47%, rgba(86,245,189,0) 60%),
    radial-gradient(circle at 50% 50%, rgba(4,7,6,.85) 0%, rgba(4,7,6,.4) 28%, rgba(4,7,6,0) 55%);
  filter: blur(2px);
}
.homing-svg { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.hero-scrim {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(100deg, rgba(11,15,13,.92) 0%, rgba(11,15,13,.74) 26%, rgba(11,15,13,.32) 48%, rgba(11,15,13,0) 66%),
              linear-gradient(to top, rgba(11,15,13,.6) 0%, rgba(11,15,13,0) 30%);
}
.hero-grid { position: relative; z-index: 2; width: 100%; }
.hero-content { max-width: 880px; padding: 40px 0; }
.hero-eyebrow { margin-bottom: 26px; }
.hero-eyebrow::before { display: none; }
.hero-retic { animation: reticlePulse 3.4s var(--ease) infinite; }
.hero-h { color: #F4FAF7; margin-bottom: 26px; }
.hero-serif { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--mint); letter-spacing: -0.01em; }
.hero-sub { color: #AFC2BA; margin-bottom: 30px; }
.hero-meta { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 38px; }
.hero-meta .badge { border-color: rgba(255,255,255,.18); color: #BFD0C9; }
.hero-actions { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }

.scroll-cue {
  position: absolute; left: 50%; bottom: 30px; transform: translateX(-50%);
  z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 10px;
  color: #7E938B;
}
.scroll-cue .reticle { animation: reticlePulse 2.6s var(--ease) infinite; }
.scroll-tx { font-size: 10px; letter-spacing: .28em; color: #7E938B; animation: cueFade 2.6s ease-in-out infinite; }
@keyframes reticlePulse {
  0%,100% { filter: drop-shadow(0 0 0 rgba(86,245,189,0)); opacity: .9; }
  50% { filter: drop-shadow(0 0 10px rgba(86,245,189,.6)); opacity: 1; }
}
@keyframes cueFade { 0%,100%{opacity:.4} 50%{opacity:.9} }
@media (prefers-reduced-motion: reduce){ .hero-retic, .scroll-cue .reticle, .scroll-tx { animation: none; } }
@media (max-width: 600px){ .hero-core { width: 90vw; height: 90vw; } }

/* ========================= BARRIERS ========================= */
.barrier-grid { list-style: none; margin: 44px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid var(--hair); }
.barrier { border: 0; border-radius: 0; border-right: 1px solid var(--hair); padding: 30px 28px 34px; display: flex; flex-direction: column; background: transparent; }
.barrier:last-child { border-right: 0; }
.barrier:hover { background: #fff; box-shadow: 0 30px 60px -40px rgba(20,101,79,.22); transform: translateY(-3px); }
.barrier-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 30px; }
.barrier-id { color: var(--teal); white-space: nowrap; }
.barrier-name { margin-bottom: 18px; }
.barrier-fail, .barrier-fix { font-size: 15px; line-height: 1.55; color: var(--fg-soft); }
.fail-tag, .fix-tag { display: block; font-size: 10px; letter-spacing: .18em; margin-bottom: 7px; }
.fail-tag { color: var(--fg-faint); }
.fix-tag { color: var(--green); }
.barrier-fix { color: var(--fg); }
.barrier-hair { margin: 18px 0; }
@media (max-width: 900px){ .barrier-grid { grid-template-columns: 1fr 1fr; } .barrier:nth-child(2){ border-right: 0; } .barrier:nth-child(1),.barrier:nth-child(2){ border-bottom: 1px solid var(--hair); } }
@media (max-width: 560px){ .barrier-grid { grid-template-columns: 1fr; } .barrier { border-right: 0; border-bottom: 1px solid var(--hair); } .barrier:last-child{ border-bottom: 0; } }

/* ========================= PLATFORM ========================= */
.platform { overflow: hidden; }
.plat-contour { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; opacity: .5; }
.platform-inner { position: relative; z-index: 1; }
.cell-layout { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 60px; align-items: center; margin-top: 60px; }
.cell-figure { display: grid; place-items: center; }
.cell-svg { width: 100%; max-width: 460px; }
.cell-mem { fill: none; stroke: rgba(86,245,189,.30); stroke-width: 1; }
.cell-mem.dash { stroke-dasharray: 3 7; stroke: rgba(86,245,189,.45); }
.cell-mem.faint { stroke: rgba(127,191,168,.18); }
.cell-payload circle { fill: var(--mint); opacity: .7; }
.cell-nuc { fill: none; stroke: var(--mint); stroke-width: 1.3; }
.cell-dot { fill: var(--mint); }
.cell-cross { stroke: var(--mint); stroke-width: 1; }
.cell-svg { animation: cellDrift 14s ease-in-out infinite; }
@keyframes cellDrift { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-10px) } }
@media (prefers-reduced-motion: reduce){ .cell-svg { animation: none; } }

.systems { display: flex; flex-direction: column; gap: 1px; background: var(--hair); border: 1px solid var(--hair); }
.system { background: var(--ink); padding: 26px 28px; display: block; transition: background .35s var(--ease); position: relative; }
.system:hover { background: var(--ink-panel); }
.system::after { content:""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--mint); transform: scaleY(0); transform-origin: top; transition: transform .4s var(--ease); }
.system:hover::after { transform: scaleY(1); }
.system-h { display: flex; align-items: baseline; gap: 14px; margin-bottom: 12px; flex-wrap: wrap; }
.sys-id { color: var(--mint); white-space: nowrap; }
.system-h h3 { color: #F4FAF7; }
.sys-role { color: var(--fg-faint); margin-left: auto; }
.sys-desc { font-size: 15px; margin-bottom: 14px; color: #9FB1A9; }
.sys-ig { height: 52px; margin: 4px 0 16px; max-width: 280px; }
.sys-line { font-style: italic; font-size: 18px; color: var(--mint); }
@media (max-width: 880px){ .cell-layout { grid-template-columns: 1fr; gap: 40px; } .cell-svg { max-width: 320px; } }

/* ========================= LEAD CONSTRUCT ========================= */
.lead-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 64px; align-items: start; }
.lead-l .eyebrow { margin-bottom: 22px; }
.lead-l h2 { margin-bottom: 26px; }
.lead-l .body + .body { margin-top: 18px; }
.lead-l .arrow-link { margin-top: 28px; }
.lead-spec { padding: 8px 26px; }
.spec-row { display: flex; align-items: center; justify-content: space-between; padding: 17px 0; gap: 16px; }
.spec-k { color: var(--fg-faint); }
.spec-row.stack { align-items: flex-start; }
.spec-row.stack .spec-k, .spec-row.stack .spec-v { line-height: 30px; }
.spec-row.stack .spec-k { white-space: nowrap; flex-shrink: 0; padding-right: 18px; }
.spec-row.stack .spec-v { text-align: right; }
.spec-v { font-family: var(--serif); font-size: 19px; color: var(--green); }
@media (max-width: 820px){ .lead-grid { grid-template-columns: 1fr; gap: 36px; } }

/* ========================= PROOF ========================= */
.proof-eye { margin-bottom: 22px; }
.proof-rule { margin: 44px 0 0; background: rgba(255,255,255,.12); }
.proof-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; margin-top: 50px; }
.stat { display: flex; flex-direction: column; gap: 16px; }
.stat .fig-xl { color: var(--mint); }
.stat-l { color: #8DA199; line-height: 1.6; font-size: 11px; }
@media (max-width: 820px){ .proof-stats { grid-template-columns: 1fr 1fr; gap: 36px; } }
@media (max-width: 480px){ .proof-stats { grid-template-columns: 1fr; } }

/* ========================= CTA ========================= */
.cta { background: var(--paper-2); }
.cta-inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.cta-retic { margin-bottom: 30px; }
.cta-retic .r-ring { stroke: var(--teal); }
.cta-retic .r-dot { fill: var(--green); }
.cta-h { margin-bottom: 22px; }
.cta-sub { margin-bottom: 38px; }
.cta-actions { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }

/* ========================= FOOTER ========================= */
.footer-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 56px; }
.footer-brand .brand { margin-bottom: 20px; }
.footer-brand .brand img { height: 24px; }
.footer-tag { font-size: 11px; line-height: 1.8; color: #6E827A; letter-spacing: .04em; text-transform: none; }
.footer-nav { display: flex; flex-direction: column; gap: 12px; }
.footer-col-h { color: #5E7068; margin-bottom: 6px; font-size: 10.5px; }
.footer-nav a { font-size: 14px; }
.footer-contact { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.footer-mail { font-family: var(--serif); font-size: 18px; color: var(--mint) !important; }
.footer-btn { margin-top: 8px; }
.footer-hair { background: rgba(255,255,255,.1); }
.footer-bottom { display: grid; grid-template-columns: auto 1fr; gap: 40px; align-items: start; padding-top: 26px; }
.footer-meta { color: #5E7068; font-size: 10.5px; white-space: nowrap; }
@media (max-width: 900px){ .footer-top { grid-template-columns: 1fr 1fr; } .footer-bottom { grid-template-columns: 1fr; gap: 18px; } .footer-meta{ white-space: normal; } }
@media (max-width: 540px){ .footer-top { grid-template-columns: 1fr; gap: 30px; } }
