/* OFS Core components. Colors fall back to sensible values if the child theme's
   tokens are missing (e.g. if the theme is changed). */

/* Buttons */
.ofs-btn {
	display: inline-flex; align-items: center; justify-content: center; text-align: center;
	min-height: 48px; padding: 11px 20px; border-radius: 8px; border: 2px solid transparent;
	font-weight: 600; font-size: 1rem; line-height: 1.25; text-decoration: none !important; cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.ofs-btn--primary { background: var(--ofs-blue, #34546e); color: #fff !important; }
.ofs-btn--primary:hover { background: var(--ofs-blue-dark, #253f55); }
.ofs-btn--outline { background: #fff; border-color: var(--ofs-blue, #34546e); color: var(--ofs-blue, #34546e) !important; }
.ofs-btn--outline:hover { background: var(--ofs-blue-soft, #edf2f6); }
.ofs-btn--text { background: transparent; color: var(--ofs-blue, #34546e) !important; text-decoration: underline !important; padding-left: 6px; padding-right: 6px; }
.ofs-btn--light { background: #fff; color: var(--ofs-blue-dark, #253f55) !important; }

/* Sponsor label */
.ofs-sponsor-tag {
	display: inline-block; font-size: .75rem !important; letter-spacing: .08em; text-transform: uppercase; font-weight: 700;
	color: var(--ofs-bronze, #8c6d3f); margin: 0 0 .5rem !important;
}
.ofs-sponsored-note { font-size: .85em; color: var(--ofs-muted, #565d66); }

/* Featured provider module */
.ofs-featured {
	background: var(--ofs-paper, #fff); border: 1px solid var(--ofs-line, #e3dccf); border-top: 4px solid var(--ofs-bronze, #8c6d3f);
	border-radius: var(--ofs-radius, 10px); padding: clamp(20px, 4vw, 36px); margin: 0 0 22px; box-shadow: var(--ofs-shadow, none);
}
.ofs-featured__heading { margin: 0 0 .8rem !important; }
.ofs-featured__body { display: grid; gap: 20px 32px; grid-template-columns: 1fr; }
@media (min-width: 860px) { .ofs-featured__body { grid-template-columns: 1.3fr 1fr; align-items: start; } }
.ofs-featured__name { font-family: var(--ofs-serif, Georgia, serif); font-size: 1.4rem; font-weight: 600; margin: 0 0 .4rem; }
.ofs-featured__address { font-style: normal; margin: 0 0 .5rem; }
.ofs-featured__phone { font-weight: 700; }
.ofs-featured__actions { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; }
.ofs-featured__actions .ofs-btn--primary { grid-column: 1 / -1; font-size: 1.05rem; }
.ofs-featured__actions .ofs-btn--text { grid-column: 1 / -1; }
.ofs-featured__note { font-size: .9rem; color: var(--ofs-muted, #565d66); margin: 1rem 0 0 !important; }

/* Conversion box */
.ofs-cta {
	background: var(--ofs-blue-soft, #edf2f6); border-left: 5px solid var(--ofs-blue, #34546e); border-radius: var(--ofs-radius, 10px);
	padding: 22px 24px; margin: 2rem 0;
}
.ofs-cta__heading { font-size: 1.35rem; margin: 0 0 .4rem !important; }
.ofs-cta__text { margin: 0 0 1rem !important; }
.ofs-cta__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.ofs-cta__phone { font-size: .9rem; color: var(--ofs-muted, #565d66); margin: .9rem 0 0 !important; }
.ofs-inline-sponsor { font-weight: 600; }

/* Cards */
.ofs-cards { list-style: none; margin: 0 !important; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.ofs-card {
	position: relative; background: #fff; border: 1px solid var(--ofs-line, #e3dccf); border-radius: var(--ofs-radius, 10px);
	padding: 20px 20px 16px; margin: 0 !important; transition: border-color .15s ease, box-shadow .15s ease;
}
.ofs-card:hover, .ofs-card:focus-within { border-color: var(--ofs-blue, #34546e); box-shadow: var(--ofs-shadow, none); }
.ofs-card__link { font-family: var(--ofs-serif, Georgia, serif); font-size: 1.2rem; font-weight: 600; color: var(--ofs-charcoal, #2b2f33); text-decoration: none; }
.ofs-card__link::after { content: ""; position: absolute; inset: 0; } /* whole card clickable */
.ofs-card p { margin: .35rem 0 0; font-size: .97rem; color: var(--ofs-muted, #565d66); }
.ofs-card__icon {
	display: inline-flex; width: 38px; height: 38px; border-radius: 50%; align-items: center; justify-content: center;
	background: var(--ofs-bronze-soft, #f5efe4); color: var(--ofs-bronze, #8c6d3f); font-weight: 700; margin-bottom: 10px;
}

/* Tools */
.ofs-tool { background: #fff; border: 1px solid var(--ofs-line, #e3dccf); border-radius: var(--ofs-radius, 10px); padding: clamp(18px, 3.5vw, 30px); margin: 1.5rem 0 2rem; }
.ofs-tool__intro { margin-top: 0; }
.ofs-grid-2 { display: grid; gap: 4px 24px; grid-template-columns: 1fr; }
@media (min-width: 700px) { .ofs-grid-2 { grid-template-columns: 1fr 1fr; } }
.ofs-field { margin: 0 0 18px; border: 0; padding: 0; min-width: 0; }
.ofs-field > label, .ofs-field legend { display: block; font-weight: 600; margin-bottom: 6px; }
.ofs-field select, .ofs-field input[type=number], .ofs-field input[type=text], .ofs-field input[type=email] { width: 100%; min-height: 48px; }
.ofs-radios label { display: flex; align-items: center; gap: 10px; min-height: 40px; font-weight: 400; cursor: pointer; }
.ofs-radios input { width: 20px; height: 20px; flex: none; }
.ofs-help { font-size: .9rem; color: var(--ofs-muted, #565d66); margin: 6px 0 0 !important; }
.ofs-tool__result { margin-top: 1.5rem; border-top: 1px solid var(--ofs-line, #e3dccf); padding-top: 1.2rem; }
.ofs-tool__result:focus { outline: none; }
.ofs-result-heading { margin-top: 0 !important; }
.ofs-tool__buttons { display: flex; flex-wrap: wrap; gap: 10px; margin: 1rem 0; }
.ofs-disclaimer { font-size: .88rem; color: var(--ofs-muted, #565d66); margin: 1.2rem 0 0 !important; }
.ofs-note { background: var(--ofs-bronze-soft, #f5efe4); border-radius: 8px; padding: 12px 14px; }
.ofs-emergency { background: #fff4f2; border: 1px solid #e9b8ae; border-left: 5px solid #b3412e; border-radius: 8px; padding: 14px 16px; margin: 1rem 0; }
.ofs-estimates { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); margin-bottom: 1rem; }
.ofs-estimate { background: var(--ofs-blue-soft, #edf2f6); border-radius: 8px; padding: 16px; }
.ofs-estimate__title { font-weight: 700; margin: 0 0 .2rem; }
.ofs-estimate__range { font-family: var(--ofs-serif, Georgia, serif); font-size: 1.6rem; font-weight: 600; color: var(--ofs-blue-dark, #253f55); margin: 0 0 .4rem; }
.ofs-estimate details summary { cursor: pointer; color: var(--ofs-blue, #34546e); font-size: .95rem; }
.ofs-estimate__table { font-size: .88rem; margin-top: .6rem; background: #fff; }
.ofs-estimate__table th { font-weight: 400; }
.ofs-estimate__table td { white-space: nowrap; }
.ofs-steps li { margin-bottom: .7em; }
.ofs-checks { list-style: none; margin-left: 0 !important; }
.ofs-checks label { display: flex; gap: 10px; align-items: flex-start; }
.ofs-checks input { width: 20px; height: 20px; margin-top: 5px; flex: none; }
.ofs-dl dt { font-weight: 700; margin-top: .8rem; }
.ofs-dl dd { margin: .2rem 0 0; }
.ofs-table-wrap { overflow-x: auto; position: relative; max-width: 100%; }
.ofs-worksheet table { min-width: 620px; }
.ofs-worksheet input { width: 100%; min-width: 90px; padding: 8px; font-size: 16px; }
.ofs-worksheet tfoot output { font-weight: 700; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Commerce + disclosures */
.ofs-affiliate-notice, .ofs-disclaimer-box {
	font-size: .9rem; color: var(--ofs-muted, #565d66); background: #f6f4ef; border: 1px solid var(--ofs-line, #e3dccf); border-radius: 8px; padding: 12px 14px;
}
.ofs-disclosure-inline { font-size: .85rem; color: var(--ofs-muted, #565d66); }
.ofs-amazon-link { font-weight: 600; }

/* Signup */
.ofs-signup { background: var(--ofs-bronze-soft, #f5efe4); border-radius: var(--ofs-radius, 10px); padding: clamp(20px, 4vw, 32px); margin: 2rem 0; }
.ofs-signup__heading { font-size: 1.35rem; margin: 0 0 .4rem !important; }
.ofs-signup__fields { display: grid; gap: 0 16px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .ofs-signup__fields { grid-template-columns: 1fr 1fr; } }
.ofs-consent { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; margin: 0 0 14px; }
.ofs-consent input { width: 20px; height: 20px; margin-top: 3px; flex: none; }

/* Related links, bylines */
.ofs-related { border-top: 1px solid var(--ofs-line, #e3dccf); margin-top: 2rem; padding-top: 1rem; }
.ofs-related__title { font-weight: 700; margin-bottom: .4rem; }
.ofs-byline { font-size: .92rem; color: var(--ofs-muted, #565d66); border-bottom: 1px solid var(--ofs-line, #e3dccf); padding-bottom: .8rem; }
.ofs-guide-list { columns: 2 280px; }

/* Directory */
.ofs-city-index { font-size: .95rem; }
.ofs-dir-list { list-style: none; margin-left: 0 !important; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.ofs-dir-list li { background: #fff; border: 1px solid var(--ofs-line, #e3dccf); border-radius: 8px; padding: 12px 14px; margin: 0 !important; }
.ofs-dir-list a { font-weight: 600; }
.ofs-dir-addr, .ofs-dir-phone { display: block; font-size: .9rem; color: var(--ofs-muted, #565d66); }
.ofs-listing-facts { background: #fff; border: 1px solid var(--ofs-line, #e3dccf); border-radius: 8px; padding: 16px 18px; }
.ofs-listing-facts dt { font-weight: 700; }
.ofs-listing-facts dd { margin: 0 0 .6rem; }
