.irve-shell { padding-top: 2.5rem; }
.irve-intro { margin-bottom: 0; }
.irve-layout { max-width: 1180px; margin: 0 auto; padding: 0 1rem; display: grid; grid-template-columns: minmax(0, 2fr) minmax(320px, 420px); gap: 1.5rem; align-items: start; }
.irve-panel, .irve-summary { border-radius: 14px; overflow: hidden; }
.irve-panel-body, .irve-summary-body { padding: 1.3rem; text-align: left; }
.irve-tabs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.8rem; margin-bottom: 1.4rem; }
.irve-tab { border: 1px solid #d5dfec; background: #f8fbff; border-radius: 12px; padding: 1rem; text-align: left; display: flex; gap: 0.9rem; align-items: flex-start; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.irve-tab:hover, .option-card:hover, .check-card:hover, .measurement-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(10, 77, 122, 0.08); }
.irve-tab.active { border-color: #0a4d7a; background: #eef6fd; }
.tab-emoji { font-size: 1.2rem; line-height: 1; }
.tab-copy { display: flex; flex-direction: column; gap: 0.25rem; }
.tab-copy small { color: #5b6775; }
.calculator-mode { display: none; }
.calculator-mode.active { display: block; }
.step-block { margin-bottom: 1.4rem; padding: 1rem; background: #fbfcfe; border: 1px solid #ebf0f5; border-radius: 12px; }
.shared-step { margin-top: 1rem; }
.step-heading { display: flex; gap: 0.9rem; align-items: flex-start; margin-bottom: 1rem; }
.step-heading h2, .summary-list h3, .trust-box h3, .included-box h3 { margin: 0; display: inline-flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.step-heading p, .step-heading small { display: block; margin: 0.2rem 0 0; color: #5f6b78; }
.step-number { width: 34px; height: 34px; border-radius: 999px; background: #0a4d7a; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; flex: 0 0 auto; }
.help-trigger { width: 26px; height: 26px; border: 0; border-radius: 999px; background: #0a4d7a; color: #fff; font-weight: 700; cursor: pointer; }
.option-grid { display: grid; gap: 0.8rem; }
.option-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.option-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.option-card { border: 1px solid #d7e1ec; background: #fff; border-radius: 12px; padding: 0.95rem; text-align: left; display: flex; flex-direction: column; gap: 0.25rem; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease; }
.option-card.active { border-color: #0a4d7a; background: #eff7fe; }
.option-icon { font-size: 1.15rem; }
.option-card strong { font-size: 0.98rem; }
.option-card small, .option-card em { color: #5f6b78; font-style: normal; }
.equipment-card em { margin-top: 0.35rem; color: #0a4d7a; font-weight: 700; }
.step-microcopy { margin: 1rem 0 0; color: #5f6b78; font-size: 0.95rem; }
.check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.8rem; }
.check-card { border: 1px solid #d7e1ec; background: #fff; border-radius: 12px; padding: 0.95rem; display: flex; flex-direction: column; gap: 0.2rem; cursor: pointer; }
.check-card.active { border-color: #0a4d7a; background: #eff7fe; }
.check-card input { margin-bottom: 0.35rem; }
.check-card small { color: #5f6b78; }
.input-wrap { display: flex; flex-direction: column; gap: 0.45rem; }
.input-wrap input { width: 100%; max-width: 180px; border: 1px solid #d5dfec; border-radius: 10px; padding: 0.8rem 0.9rem; font-size: 1rem; }
.measurement-card { margin-bottom: 1.4rem; border: 1px solid #d8e5ef; background: linear-gradient(180deg, #ffffff 0%, #f6fbff 100%); }
.measurement-kicker, .summary-kicker { display: inline-block; margin-bottom: 0.6rem; color: #0a4d7a; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.78rem; }
.measurement-card h2 { margin: 0 0 0.6rem; }
.measurement-card p { margin: 0 0 0.9rem; color: #425163; }
.measurement-card small { display: block; margin-top: 0.7rem; color: #5f6b78; }
.measurement-cta { width: auto; }
.irve-popups { position: relative; }
.irve-popup { position: absolute; z-index: 40; left: 1rem; max-width: 360px; padding: 1rem; background: #fff; border: 1px solid #d7e1ec; border-radius: 14px; box-shadow: 0 18px 36px rgba(0, 0, 0, 0.16); }
.irve-popup strong { display: block; margin-bottom: 0.35rem; }
.irve-popup p { margin: 0; color: #425163; }
.irve-summary { position: sticky; top: 1rem; }
.irve-summary h2 { margin: 0 0 0.8rem; font-size: 1.7rem; line-height: 1.2; }
.summary-lead { margin: 0 0 0.4rem; color: #425163; }
.summary-microcopy { margin: 0 0 1rem; color: #5f6b78; font-size: 0.95rem; }
.summary-breakdown { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; margin-bottom: 1rem; }
.summary-breakdown div { background: #f6f9fc; border-radius: 12px; padding: 0.9rem; }
.summary-breakdown span { display: block; color: #5f6b78; font-size: 0.88rem; }
.summary-breakdown strong { display: block; margin-top: 0.2rem; font-size: 1.15rem; }
.summary-list { margin-bottom: 1rem; }
.summary-list ul { margin: 0.8rem 0 0; padding-left: 1rem; }
.summary-list li { margin-bottom: 0.45rem; color: #425163; }
.included-box { background: #f4f8fb; border: 1px solid #dce7ef; border-radius: 12px; padding: 1rem; margin-bottom: 1rem; }
.included-box ul { margin: 0.8rem 0 0; padding-left: 1rem; }
.included-box li { margin-bottom: 0.45rem; color: #425163; }
.included-box p { margin: 0.7rem 0 0; color: #5f6b78; }
.trust-box { background: #f7fbff; border-left: 4px solid #0a4d7a; border-radius: 12px; padding: 1rem; margin-bottom: 1rem; }
.trust-box p { margin: 0.45rem 0; color: #425163; }
.cta-budget { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 52px; background: #0a4d7a; color: #fff; border-radius: 999px; font-weight: 700; padding: 0.9rem 1.2rem; }
.cta-budget:hover { background: #0c669f; }
.cta-measure { margin-top: 0.75rem; background: #f2f7fb; color: #0a4d7a; border: 1px solid #d5dfec; }
.cta-measure:hover { background: #e8f1f8; }
.irve-legal-card { align-items: center; }
.irve-legal-card img { width: 100%; height: 100%; max-height: 260px; object-fit: cover; }
.irve-help-float { display: none !important; }
.irve-help-box { display: none !important; }
.irve-help-box p { margin: 0 0 0.6rem; color: #425163; }
.irve-help-box a { color: #0a4d7a; font-weight: 700; }
@media (max-width: 1024px) { .irve-layout { grid-template-columns: 1fr; } .irve-summary { position: static; } }
@media (max-width: 760px) { .irve-tabs, .option-grid-2, .option-grid-3, .check-grid, .summary-breakdown { grid-template-columns: 1fr; } .irve-shell { padding-top: 1.5rem; } .irve-layout { padding: 0 0.8rem; } .step-heading { gap: 0.7rem; } .irve-summary h2 { font-size: 1.4rem; } .irve-popup { left: 0; right: 0; max-width: none; } .measurement-cta { width: 100%; } }
