/* Situation-first home and plan guide. */
.situation-hero { background:#14213d; color:#fff; border-radius:20px; padding:clamp(1.6rem,5vw,3rem); margin:1.5rem 0 2.5rem; }
.situation-hero .eyebrow { color:#a9c3ff; }
.situation-hero h1 { font-size:clamp(2.35rem,7vw,3.7rem); letter-spacing:-.045em; line-height:1.05; max-width:14ch; margin:.9rem 0; }
.situation-hero h1 em { color:#b9d0ff; font-style:normal; }
.situation-hero .lead { color:#e2eafa; max-width:42ch; }
.hero-link { display:inline-flex; align-items:center; gap:.9rem; color:#14213d; background:#fff; border-radius:99px; font-weight:750; text-decoration:none; padding:.75rem 1.1rem; margin-top:.5rem; min-height:48px; }
.hero-secondary { display:inline-flex; color:#fff; margin:.5rem .8rem; font-weight:700; min-height:44px; align-items:center; }
textarea { width:100%; font:inherit; padding:.7rem; border:2px solid var(--line); border-radius:10px; background:#fff; resize:vertical; }
textarea:focus-visible, .hero-secondary:focus-visible { outline:3px solid #ffb703; outline-offset:2px; }
.eyebrow,.card-number { font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.section-heading .eyebrow { color:var(--blue); margin-bottom:.2rem; }
.section-heading h2 { font-size:clamp(1.65rem,4vw,2.2rem); letter-spacing:-.035em; margin:.1rem 0; }
.section-heading > p:last-child { color:var(--muted); margin:.25rem 0 1rem; }
.situation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.situation-card { display:flex; flex-direction:column; align-items:flex-start; min-height:230px; padding:1.2rem; border:1px solid var(--line); border-radius:16px; color:var(--ink); background:#fff; text-decoration:none; transition:border-color .15s,transform .15s; }
.situation-card:hover { border-color:var(--blue); transform:translateY(-2px); }
.situation-card:focus-visible,.hero-link:focus-visible,.filter-link:focus-visible { outline:3px solid #ffb703; outline-offset:3px; }
.card-number { color:#506180; }
.situation-card h3 { font-size:1.18rem; line-height:1.3; letter-spacing:-.02em; margin:.9rem 0 .35rem; }
.situation-card p { color:var(--muted); font-size:.9rem; margin:0 0 1rem; }
.card-action { margin-top:auto; color:var(--blue); font-weight:750; font-size:.88rem; }
.specs-card { background:#edf3ff; border-color:#d8e5ff; }
.situation-note { color:var(--muted); font-size:.85rem; margin:1rem 0 2rem; }
.plan-intro { margin:1.5rem 0; }
.plan-intro h1 { font-size:clamp(2rem,5vw,3rem); letter-spacing:-.04em; }
.plan-intro .eyebrow { color:var(--blue); }
.filter-list { display:flex; flex-wrap:wrap; gap:.45rem; margin:1rem 0; }
.filter-link { display:inline-flex; min-height:44px; align-items:center; padding:.5rem .9rem; border:1px solid var(--line); border-radius:99px; background:#fff; color:var(--ink); text-decoration:none; font-size:.85rem; font-weight:700; }
.filter-link[aria-current="page"] { background:var(--ink); border-color:var(--ink); color:#fff; }
.catalog-note { border-left:4px solid #d69200; background:#fff7e7; color:#5d4000; padding:.85rem 1rem; border-radius:0 10px 10px 0; font-size:.9rem; margin:1rem 0; }
.catalog-note p { margin:.25rem 0; }
.plan-list { display:grid; gap:.8rem; margin:1rem 0 2rem; }
.plan-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:1.15rem; }
.plan-head { display:flex; justify-content:space-between; gap:1rem; align-items:start; }
.plan-brand { font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-weight:750; margin:0; }
.plan-card h2 { font-size:1.2rem; margin:.1rem 0 .3rem; }
.plan-price { text-align:right; font-size:1.2rem; font-weight:800; white-space:nowrap; }
.plan-price small { display:block; color:var(--muted); font-weight:500; font-size:.72rem; white-space:normal; }
.plan-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem 1rem; margin:1rem 0; }
.plan-details div { border-top:1px solid var(--line); padding-top:.5rem; }
.plan-details dt { font-size:.72rem; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-weight:700; }
.plan-details dd { margin:.15rem 0 0; font-size:.9rem; }
.plan-card .plan-source { font-weight:700; }
.plan-foot { color:var(--muted); font-size:.9rem; }
@media (max-width:560px) { .situation-grid { grid-template-columns:1fr; } .situation-card { min-height:0; } .plan-head { flex-direction:column; } .plan-price { text-align:left; } }
@media (prefers-reduced-motion:reduce) { .situation-card { transition:none; } }
