.elden-product-finder {
    --epf-primary: #0b6b62;
    --epf-primary-dark: #084d47;
    --epf-soft: #eef8f6;
    --epf-border: #d9e5e3;
    --epf-text: #1e2b2a;
    --epf-muted: #647371;
    max-width: 720px;
    margin: 30px auto;
    color: var(--epf-text);
}

.elden-product-finder * { box-sizing: border-box; }

.epf-card {
    background: #fff;
    border: 1px solid var(--epf-border);
    border-radius: 22px;
    padding: clamp(24px, 5vw, 46px);
    box-shadow: 0 18px 50px rgba(20, 55, 51, 0.10);
}

.epf-header { text-align: center; margin-bottom: 28px; }
.epf-eyebrow { display: inline-block; color: var(--epf-primary); font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 8px; }
.epf-header h2 { margin: 0 0 10px; font-size: clamp(27px, 4vw, 38px); line-height: 1.12; }
.epf-header p { margin: 0 auto; max-width: 570px; color: var(--epf-muted); }

.epf-progress { height: 8px; background: #edf1f0; border-radius: 999px; overflow: hidden; }
.epf-progress-bar { display: block; width: 33.333%; height: 100%; background: var(--epf-primary); border-radius: inherit; transition: width .25s ease; }
.epf-step-label { margin: 10px 0 26px; text-align: center; color: var(--epf-muted); font-size: 14px; }

.epf-step { display: none; }
.epf-step.is-active { display: block; animation: epfFade .22s ease; }
@keyframes epfFade { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }

.epf-step fieldset { border: 0; padding: 0; margin: 0; }
.epf-step legend { width: 100%; text-align: center; font-size: clamp(22px, 3vw, 28px); font-weight: 700; margin-bottom: 24px; }

.epf-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.epf-options-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.epf-option { position: relative; cursor: pointer; }
.epf-option input { position: absolute; opacity: 0; pointer-events: none; }
.epf-option span { min-height: 74px; display: flex; align-items: center; justify-content: center; padding: 16px; text-align: center; border: 2px solid var(--epf-border); border-radius: 14px; background: #fff; font-weight: 700; transition: .2s ease; }
.epf-option:hover span, .epf-option input:focus-visible + span { border-color: var(--epf-primary); background: var(--epf-soft); }
.epf-option.is-selected span, .epf-option input:checked + span { border-color: var(--epf-primary); color: var(--epf-primary-dark); background: var(--epf-soft); box-shadow: 0 0 0 3px rgba(11,107,98,.10); }

.epf-waist-row { display: grid; grid-template-columns: 1fr 145px; gap: 12px; max-width: 480px; margin: 0 auto; }
.epf-input-wrap input, .epf-unit-wrap select { width: 100%; height: 58px; border: 2px solid var(--epf-border); border-radius: 13px; background: #fff; color: var(--epf-text); padding: 0 17px; font-size: 18px; outline: none; }
.epf-input-wrap input:focus, .epf-unit-wrap select:focus { border-color: var(--epf-primary); box-shadow: 0 0 0 3px rgba(11,107,98,.10); }
.epf-help { text-align: center; color: var(--epf-muted); margin: 12px 0 0; font-size: 14px; }

.epf-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 28px; }
.epf-button { appearance: none; border: 0; border-radius: 12px; padding: 14px 22px; background: var(--epf-primary); color: #fff !important; font-weight: 700; font-size: 16px; line-height: 1.2; cursor: pointer; text-decoration: none !important; transition: .2s ease; text-align: center; }
.epf-button:hover { background: var(--epf-primary-dark); transform: translateY(-1px); }
.epf-back { background: #edf1f0; color: var(--epf-text) !important; }
.epf-back:hover { background: #e1e8e6; }
.epf-next { margin-left: auto; }
.epf-error { min-height: 24px; margin: 16px 0 -10px; color: #b42318; text-align: center; font-weight: 600; }

.epf-result { text-align: center; animation: epfFade .25s ease; }
.epf-result-icon { width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; background: var(--epf-soft); color: var(--epf-primary); font-size: 32px; font-weight: 800; }
.epf-result-kicker { margin: 0 0 5px; color: var(--epf-muted); }
.epf-result h3 { margin: 0 0 6px; font-size: clamp(30px, 5vw, 44px); }
.epf-range { margin: 0 0 24px; color: var(--epf-muted); }
.epf-product { display: grid; grid-template-columns: 140px 1fr; gap: 22px; align-items: center; padding: 20px; border: 1px solid var(--epf-border); background: #fafcfc; border-radius: 17px; text-align: left; margin-top: 24px; }
.epf-product img { width: 140px; height: 140px; object-fit: contain; border-radius: 12px; background: #fff; }
.epf-product h4 { margin: 0 0 8px; font-size: 21px; }
.epf-price { margin-bottom: 16px; font-weight: 700; }
.epf-text-button { display: inline-block; margin-top: 22px; border: 0; background: transparent; color: var(--epf-primary); text-decoration: underline; cursor: pointer; font-weight: 700; }
.epf-no-product { padding: 15px; border-radius: 12px; background: #fff8e8; color: #73510d; }

@media (max-width: 600px) {
    .epf-card { border-radius: 16px; }
    .epf-options, .epf-options-three { grid-template-columns: 1fr; }
    .epf-waist-row { grid-template-columns: 1fr 120px; }
    .epf-product { grid-template-columns: 1fr; text-align: center; }
    .epf-product img { margin: 0 auto; }
    .epf-product-link { display: block; }
}
