/* A mobile composition: tighter rhythm, clear touch targets and varied surfaces. */
:root { --gutter:20px; }
html { scroll-padding-top:138px; scroll-padding-bottom:100px; }
body { min-width:0; font-size:16px; line-height:1.65; }
h2 { font-size:clamp(32px,8.8vw,44px); letter-spacing:-.055em; line-height:1.1; }
.kicker { font-size:10px; letter-spacing:.13em; margin-bottom:16px; }
.site-header { height:72px; padding-inline:18px; gap:12px; background:#24132ef7; border-bottom-color:#ffffff12; }
.site-header .wordmark-frame { width:min(61vw,235px); }
.mobile-menu summary { width:44px; height:44px; border-radius:50%; border-color:#bce8ff45; padding:13px 11px; }
.mobile-menu nav { padding:18px 24px 26px; border-radius:0 0 24px 24px; box-shadow:0 18px 35px #170e2033; }
.mobile-menu nav a { font-size:20px; padding-block:15px; }
.mobile-menu nav .mobile-quote { border-radius:12px; font-size:16px; align-items:center; }
.content-section { padding-block:56px; }
.section-heading { gap:18px; margin-bottom:28px; }
.section-heading > p,.section-heading > div > p:not(.kicker) { font-size:16px; line-height:1.7; }
.section-heading .text-link { margin-top:18px; }
.text-link { gap:16px; min-height:44px; font-size:14px; }
.button { border-radius:12px; min-height:56px; }
.reveal-pending,.reveal-enter { opacity:1; transform:none; transition:none; }

/* A compact proof strip leads into the insurance collection. */
.proof-bar { padding:24px var(--gutter); background:#f1ecf5; }
.trust-strip { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0; border:0; background:none; }
.trust-strip > div,.trust-strip > div:first-child,.trust-strip > div:last-child { display:flex; flex-direction:column; gap:10px; padding:0; text-align:center; }
.trust-symbol { width:38px; height:38px; flex-basis:38px; border:0; background:white; color:#58356d; }
.trust-strip strong { font-size:12px; line-height:1.4; }
.trust-strip p > span { display:none; }
.award-highlight { display:grid; grid-template-columns:35px minmax(0,1fr); align-items:center; gap:3px 12px; margin-top:22px; padding:17px; border:1px solid #d9cce3; border-radius:16px; color:#f8f4fb; background:linear-gradient(115deg,#3a214b,#241530); }
.award-highlight-symbol { grid-row:1 / 3; align-self:center; color:#bce8ff; border-color:#bce8ff40; }
.award-highlight p { grid-column:2; }
.award-highlight p > span { color:#bfadd0; font-size:8px; letter-spacing:.12em; }
.award-highlight strong { font-size:15px; }
.award-highlight a { grid-column:2; justify-self:start; margin:0; min-height:28px; color:#bce8ff; font-size:12px; }

/* One lead project and four smaller cards avoid a long wall of identical panels. */
.insurance-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.insurance-card,.insurance-featured { min-height:238px; padding:17px; border-radius:20px; box-shadow:0 7px 20px #2712300b; }
.insurance-featured { grid-column:1 / -1; min-height:285px; padding:24px; }
.insurance-card img { filter:saturate(.8) contrast(1.03); }
.insurance-card-overlay { background:linear-gradient(180deg,#23132b0a 8%,#21132966 43%,#211329f5 100%); }
.insurance-card-top { justify-content:flex-end; gap:4px; }
.insurance-card-top > span:first-child { display:none; }
.insurance-featured .insurance-card-top { justify-content:space-between; }
.insurance-featured .insurance-card-top > span:first-child { display:block; font-size:9px; background:#21132980; border-radius:20px; }
.card-arrow { width:33px; height:33px; flex-basis:33px; font-size:18px; background:#21132944; border-color:#ffffff66; }
.insurance-card-copy { margin-top:35px; }
.insurance-card-copy h3 { font-size:22px; line-height:1.08; letter-spacing:-.045em; margin-bottom:14px; overflow-wrap:normal; }
.insurance-card-copy p { display:none; }
.insurance-featured .insurance-card-copy { max-width:290px; margin-top:40px; }
.insurance-featured h3 { font-size:36px; margin-bottom:9px; }
.insurance-featured .insurance-card-copy p { display:block; font-size:15px; line-height:1.5; margin-bottom:16px; }
.card-more { font-size:11px; gap:8px; }
.insurance-card:active { transform:scale(.985); }

.national-banner { min-height:340px; margin:0 12px; padding:44px 24px; border-radius:24px; overflow:hidden; }
.national-banner h2 { font-size:40px; line-height:1.08; }
.national-banner p:not(.kicker) { font-size:16px; }
.national-banner .button { font-size:14px; }
.process-grid { gap:12px; }
.process-grid article { display:grid; grid-template-columns:40px minmax(0,1fr); gap:8px 16px; padding:22px 18px; border:1px solid #e7dfed; border-radius:18px; background:#f6f2f8; }
.process-grid article::before { display:none; }
.process-grid article > span { grid-row:1 / 3; width:38px; height:38px; border:0; color:#3b184b; background:#e3d5ef; font-size:12px; font-weight:800; }
.process-grid h3 { margin:2px 0 0; min-height:0; font-size:21px; line-height:1.15; }
.process-grid p { grid-column:2; font-size:15px; line-height:1.6; }
.customer-quote { position:relative; gap:6px; margin:0 12px; padding:28px 25px 30px; border-radius:24px; color:#f9f5fc; background:radial-gradient(ellipse at 100% 0,#67467e88,transparent 70%),#2e193c; }
.quote-mark { height:52px; color:#bce8ff; font-size:106px; line-height:1; }
.customer-quote .kicker { color:#c4afd6; font-size:9px; margin-bottom:18px; }
.customer-quote blockquote { color:#fff; font-size:26px; line-height:1.35; font-weight:600; }
.quote-credit { color:#c4afd6; font-size:10px; margin-top:22px; }
.customer-quote > a { color:#bce8ff; margin-top:6px; font-size:14px; }
.home-community { gap:25px; }
.home-community p:not(.kicker) { font-size:16px; }
.community-mini { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:0; border:0; }
.community-mini > img,.community-mini .club-lettering { width:100%; height:105px; object-fit:contain; padding:17px; border:1px solid #e5ddeb; border-radius:18px; background:#fff; }
.club-lettering strong { font-size:34px; }
.club-lettering small { font-size:7px; }
.contact-cta { gap:24px; padding:46px 26px; border-radius:30px 30px 0 0; background:radial-gradient(ellipse at 100% 0,#68457988,transparent 65%),#2d183c; }
.contact-cta h2 { font-size:clamp(38px,10vw,54px); }
.cta-actions > p { font-size:16px; line-height:1.7; }
.cta-actions .button { display:flex; width:100%; }
.cta-phone { display:block; text-align:center; font-size:14px; }
.site-footer { padding-top:38px; padding-bottom:calc(108px + env(safe-area-inset-bottom,0px)); }
.footer-grid { grid-template-columns:1fr; gap:20px; padding-bottom:24px; }
.footer-desktop-links,.footer-brand > p,.footer-contact h2,.footer-contact p { display:none; }
.footer-mobile-links { display:flex; flex-wrap:wrap; gap:8px 24px; grid-column:1 / -1; border-top:1px solid #ffffff18; padding-top:14px; }
.footer-mobile-links a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; color:#ebdff3; }
.footer-grid .wordmark-frame { width:235px; }
.footer-brand > p { font-size:15px; line-height:1.6; margin-block:14px; }
.footer-social { font-size:13px; margin-top:16px; }
.footer-grid > div:not(:first-child) > a { font-size:14px; line-height:1.5; padding-block:5px; }
.footer-grid h2 { font-size:10px; letter-spacing:.1em; }
.footer-contact { padding-top:0; }
.footer-grid .footer-contact > a { margin-bottom:4px; }
.footer-grid .footer-contact > a:first-of-type { font-size:20px; }
.footer-assurance { grid-template-columns:24px minmax(0,1fr); gap:12px; padding-block:23px; }
.assurance-icon { width:24px; height:30px; font-size:13px; }
.footer-assurance p { font-size:13px; line-height:1.7; }
.register-link { grid-column:2; font-size:12px; }
.footer-legal { font-size:12px; gap:12px; }
.footer-credit { font-size:12px; }

/* Shared detail pages carry the same design language. */
.page-hero { padding-block:24px 36px; gap:24px; color:var(--ink); background:radial-gradient(ellipse at 100% 0,#e3d5ef99,transparent 70%),#f5f1f8; }
.page-hero .kicker,.page-hero h1 em,.page-hero .plain-light-link { color:var(--purple-mid); }
.page-hero .page-intro { color:var(--muted); }
.breadcrumbs { font-size:11px; margin-bottom:26px; color:var(--muted); }
.breadcrumbs a:hover { color:var(--purple); }
.page-hero h1,.service-hero h1 { font-size:clamp(37px,10.5vw,56px); }
.page-intro { font-size:16px; line-height:1.7; }
.page-hero-image { border-radius:22px; aspect-ratio:1.3; }
.page-actions { gap:15px; }
.cover-points { gap:12px; }
.cover-points article { padding:24px; border-radius:18px; }
.point-number { margin-bottom:14px; }
.cover-points h3 { font-size:24px; }
.cover-points p,.intro-columns p,.network-section > div > p:not(.kicker) { font-size:16px; }
.preparation-list li,.faq-list summary { font-size:17px; }
.faq-list details { border-radius:14px; }
.faq-list details p { font-size:15px; }
.related-links a { border-radius:14px; }
.reach-panel { min-height:240px; border-radius:22px; color:#fff; background:radial-gradient(circle at 100% 0,#78588c80,transparent 70%),#2d183c; }
.reach-panel > p,.reach-caption { color:#d8c9e4; }
.team-card { padding:24px; border-radius:22px; }
.team-card p { font-size:16px; }
.team-card h3 { font-size:28px; }
.team-card .team-role { font-size:12px; }
.network-award { border-radius:18px; }
.community-cards article { padding:26px; border-radius:22px; }
.community-cards article p:last-child,.community-statement > p:not(.kicker) { font-size:16px; }
.community-cards article h3 { font-size:27px; }
.community-hero-art span { border-radius:12px; }
.contact-layout { gap:32px; }
.contact-method { border-radius:16px; padding:20px 42px 20px 20px; border:1px solid #e4d9eb; background:#f5f0f8; margin-bottom:12px; }
.contact-method > span:last-child { right:14px; font-size:20px; }
.contact-method > strong { font-size:27px; }
.contact-email strong { font-size:clamp(18px,5.2vw,23px); }
.contact-support { border-radius:18px; }
.contact-office { padding:24px; border:1px solid #e4d9eb; border-radius:18px; background:#fff; }
.quote-panel { border-radius:22px; padding:26px 20px; }
.quote-field input,.quote-field select,.quote-field textarea { border-radius:10px; font-size:16px; }
.quote-panel .form-availability { border-radius:14px; }

/* Always within reach, with space reserved above the iPhone home indicator. */
.mobile-contact-dock { position:fixed; z-index:40; left:12px; right:12px; bottom:calc(10px + env(safe-area-inset-bottom,0px)); display:flex; align-items:center; gap:12px; padding:8px; border:1px solid #ffffff2e; border-radius:20px; color:#fff; background:#271633f5; box-shadow:0 8px 32px #1b0c2938; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.dock-call { flex:1; padding:4px 8px; min-height:46px; display:flex; flex-direction:column; justify-content:center; line-height:1.5; }
.dock-call > span { color:#c4afd6; font-size:9px; letter-spacing:.1em; font-weight:800; }
.dock-call strong { font-size:15px; letter-spacing:-.02em; }
.dock-quote { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:50px; padding:12px 19px; border-radius:13px; background:#bce8ff; color:#24132e; font-size:14px; font-weight:800; }
.dock-quote .inline-arrow { font-size:20px; }
body:has(.mobile-menu[open]) .mobile-contact-dock { visibility:hidden; }
@media(max-width:359px) {
    :root { --gutter:16px; }
    .insurance-card { padding:14px; min-height:235px; }
    .insurance-featured { min-height:280px; padding:22px; }
    .insurance-card-copy h3 { font-size:20px; }
    .insurance-featured h3 { font-size:33px; }
    .card-more { font-size:10px; }
    .dock-quote { padding-inline:14px; gap:12px; }
    .dock-call strong { font-size:14px; }
}
