/* Material 3 component anatomy and tokens, implemented with semantic native
   controls. References: material-web.dev/components/{button,text-field}/.
   No runtime dependency: keyboard/form and no-JS behavior remain native. */
:root{
 --md-sys-color-primary:var(--accent);
 --md-sys-color-on-primary:light-dark(#fff,#17382b);
 --md-sys-color-surface:var(--paper);
 --md-sys-color-on-surface:var(--ink);
 --md-sys-color-surface-container:light-dark(#f0f2eb,#223128);
 --md-sys-color-surface-container-low:light-dark(#f5f5ef,#1e2922);
 --md-sys-color-outline:light-dark(#748177,#9cac9f);
 --md-sys-color-outline-variant:var(--line);
 --md-sys-shape-corner-full:999px;
 --md-sys-shape-corner-large:16px;
 --md-sys-typescale-label-large-font:system-ui,sans-serif;
}
.fe-button,#fertility-geo-preview .fe-button{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;
 box-sizing:border-box;padding:12px 24px;border:1px solid transparent;border-radius:var(--md-sys-shape-corner-full);
 background:transparent;color:var(--md-sys-color-primary);font:500 14px/20px var(--md-sys-typescale-label-large-font);
 text-decoration:none;white-space:normal;text-align:center;cursor:pointer;transition:background-color .15s,box-shadow .15s;
}
.fe-button--filled,#fertility-geo-preview .fe-button--filled{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}
.fe-button--outlined,#fertility-geo-preview .fe-button--outlined{border-color:var(--md-sys-color-outline)}
.fe-search-row .fe-button{border-radius:var(--md-sys-shape-corner-full);min-height:56px;font:500 14px/20px var(--md-sys-typescale-label-large-font);background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary)}
.fe-button:hover,#fertility-geo-preview .fe-button:hover{background:color-mix(in srgb,var(--md-sys-color-primary) 8%,var(--md-sys-color-surface))}
.fe-button--filled:hover,#fertility-geo-preview .fe-button--filled:hover{background:color-mix(in srgb,var(--md-sys-color-primary) 90%,var(--md-sys-color-on-primary));box-shadow:0 1px 3px #0002}
.fe-button:active,#fertility-geo-preview .fe-button:active{box-shadow:inset 0 0 0 100px #0001}
.fe-button:disabled,#fertility-geo-preview .fe-button:disabled{opacity:.38;cursor:default;box-shadow:none}
:is(.fe-button,.fe-search-row input):focus-visible,#fertility-geo-preview :is(button,input,select,summary):focus-visible{outline:3px solid var(--md-sys-color-primary);outline-offset:3px}
.fe-search-row input,#fertility-geo-preview :is(input:not([type=checkbox]),select){
 min-height:56px;background-color:var(--md-sys-color-surface);border:1px solid var(--md-sys-color-outline);border-radius:4px;
 padding:14px 16px;font-size:16px;line-height:24px;box-sizing:border-box;
}
.fe-search-row input:focus,#fertility-geo-preview :is(input:not([type=checkbox]),select):focus{border-color:var(--md-sys-color-primary);box-shadow:inset 0 0 0 1px var(--md-sys-color-primary)}
#fertility-geo-preview .fp-find-controls{grid-template-columns:minmax(0,1fr) 210px;align-items:end;gap:20px;margin:20px 0 14px}
#fertility-geo-preview .fp-location-input{align-items:center}
#fertility-geo-preview .fp-publication-note{font-size:14px;margin:12px 0 20px}
#fertility-geo-preview .fp-selected-result{max-width:none}
#fertility-geo-preview .fp-profile{padding:0 0 16px;margin-top:0}
#fertility-geo-preview .fp-profile>.fp-section-head{margin-bottom:12px;gap:8px;align-items:center}
#fertility-geo-preview .fp-profile>.fp-section-head h1{margin:0}
#fertility-geo-preview .fp-selected-result>.fp-section-head{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:8px}
#fertility-geo-preview :is(#fp-personal,#fp-more-filters){margin:8px 0;border:1px solid var(--line);border-radius:12px;background:var(--md-sys-color-surface-container-low);padding:0 20px}
#fertility-geo-preview :is(#fp-personal,#fp-more-filters)>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;min-height:56px;margin:0;padding:14px 0;font:500 16px/24px system-ui,sans-serif;color:var(--ink);cursor:pointer}
#fertility-geo-preview :is(#fp-personal,#fp-more-filters)>summary::-webkit-details-marker{display:none}
#fertility-geo-preview :is(#fp-personal,#fp-more-filters)>summary:after{content:'';width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);flex-shrink:0;margin-right:4px;transition:transform .15s}
#fertility-geo-preview :is(#fp-personal,#fp-more-filters)[open]{padding-bottom:16px}
#fertility-geo-preview :is(#fp-personal,#fp-more-filters)[open]>summary:after{transform:rotate(225deg)}
#fertility-geo-preview .fp-results-top{align-items:center;margin-top:24px;padding:24px 0 16px}
#fertility-geo-preview .fp-results-top h2{margin:0 0 4px}
#fertility-geo-preview .fp-results-top p{font-size:14px;color:var(--muted)}
#fertility-geo-preview .fpv-map-viewport{border-radius:16px;border:1px solid var(--line)}
#fertility-geo-preview .fpv-map-controls button{border-radius:999px;background:var(--md-sys-color-surface-container-low);font-size:14px;min-height:44px;padding:10px 16px}
#fertility-geo-preview .fpv-map-controls [data-map-zoom]{width:44px;padding:0;font-size:21px}
#fertility-geo-preview .fpv-map-toolbar #fp-count{display:none}
#fertility-geo-preview :is(.fp-chip,.fp-back,#fp-compare-button,.fp-pager button){border-radius:999px;min-height:44px}
#fertility-geo-preview .fp-chip{font-size:14px;line-height:20px;background:var(--md-sys-color-surface-container)}
#fertility-geo-preview .fp-text-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:0;border-radius:999px;text-decoration:none;font-size:14px;line-height:20px;vertical-align:middle}
#fertility-geo-preview .fp-text-action:hover{background:var(--md-sys-color-surface-container)}
.fe-cost-panel,#fertility-geo-preview .fe-cost-panel{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--md-sys-color-surface-container-low);margin:24px 0;max-width:760px}
.fe-cost-panel h2,#fertility-geo-preview .fe-cost-panel h2{font:500 24px/32px system-ui,sans-serif;letter-spacing:-.025em;margin:0 0 16px}
.fe-cost-panel .fe-cost-price{margin:0 0 8px;font:400 32px/40px Georgia,serif}
.fe-cost-panel details{margin:16px 0}
.fe-cost-panel summary{cursor:pointer;font-size:16px;min-height:44px;padding:10px 0;box-sizing:border-box}
.fe-cost-panel .fe-cost-terms{font-size:16px;line-height:1.5;margin:20px 0}
.fe-cost-attribution{font-size:16px;line-height:1.55}
.fe-hero-note{max-width:57ch;color:var(--muted)}
@media(max-width:780px){
 #fertility-geo-preview .fp-nav{display:flex;flex-wrap:wrap;gap:12px}
 #fertility-geo-preview .fp-brand-group{flex:1 1 100%;display:flex;align-items:baseline;gap:6px 12px}
 #fertility-geo-preview .fp-links{margin:0;justify-content:flex-start;gap:8px 16px}
 #fertility-geo-preview .fp-links{font-size:14px;gap:4px 12px}
 #fertility-geo-preview .fp-links a{display:inline-flex;align-items:center;min-height:40px}
 #fertility-geo-preview .fp-profile>.fp-section-head{align-items:flex-start}
 #fertility-geo-preview .fp-site-label,#fertility-geo-preview .fp-byline{display:inline}
 #fertility-geo-preview .fp-mobile-sort{flex-wrap:wrap}
 #fertility-geo-preview .fp-mobile-sort select{flex:1;min-width:0}
 #fertility-geo-preview .fp-overview td{padding:0}
 #fertility-geo-preview #fp-shortlist{position:static}
 #fertility-geo-preview .fp-results-top{flex-direction:row;align-items:center}
 #fertility-geo-preview .fp-results-top .fe-button{padding:10px 16px}
}
@media(max-width:600px){
 #fertility-geo-preview .fp-find-controls{grid-template-columns:1fr;gap:16px}
 #fertility-geo-preview .fp-location-input .fe-button{padding:12px 16px}
 #fertility-geo-preview :is(#fp-personal,#fp-more-filters){padding-left:16px;padding-right:16px}
 #fertility-geo-preview .fpv-map-viewport{height:320px;min-height:0}
 #fertility-geo-preview .fpv-map-toolbar{gap:8px}
 #fertility-geo-preview .fpv-map-controls{gap:6px}
 #fertility-geo-preview .fpv-map-controls button{padding:8px 12px}
 .fe-cost-panel,#fertility-geo-preview .fe-cost-panel{padding:20px}
 .fe-cost-panel .fe-cost-terms{grid-template-columns:1fr;gap:4px}
 #fe-home-search .fe-button{width:100%}
}
@media(prefers-reduced-motion:reduce){.fe-button,#fertility-geo-preview *{transition:none}}
/* Outlined fields: persistent floating labels, shared 56px baseline, one help disclosure. */
#fertility-geo-preview #fp-personal{background:transparent;border:0;border-radius:0;padding:0;margin:12px 0 24px}
#fertility-geo-preview #fp-personal[open]{padding:0}
#fertility-geo-preview #fp-personal.fp-personal-profile>summary{display:none}
#fertility-geo-preview #fp-personal .fp-controls{gap:16px;align-items:start;margin:12px 0}
#fertility-geo-preview #fp-personal .fp-controls>div{position:relative;padding-top:8px}
#fertility-geo-preview #fp-personal .fp-controls label{position:absolute;z-index:1;top:0;left:12px;padding:0 4px;background:var(--paper);font-size:12px;line-height:16px;font-weight:500;margin:0;color:var(--muted)}
#fertility-geo-preview #fp-personal .fp-controls select{width:100%;padding:14px 36px 14px 16px;font-size:16px;line-height:24px;height:56px;text-overflow:ellipsis}
#fertility-geo-preview #fp-personal .fp-controls>div:focus-within label{color:var(--accent)}
#fertility-geo-preview #fp-personal #fp-role-help{font-size:14px;margin:8px 0}
#fertility-geo-preview #fp-personal :is(.fp-role-guide,.fp-evidence-options,.fp-donor-guide){margin:0;border:0;padding:0;max-width:70ch}
#fertility-geo-preview #fp-personal :is(.fp-role-guide,.fp-evidence-options,.fp-donor-guide)>summary{font-size:14px;min-height:44px;padding:10px 0;cursor:pointer}
#fertility-geo-preview #fp-personal details p{font-size:14px;line-height:1.6}
#fertility-geo-preview .fp-clinic-location{grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);gap:32px;margin:24px 0 32px;padding-bottom:0;border-bottom:0;align-items:start}
#fertility-geo-preview .fp-clinic-location h3{font-size:14px;font-weight:500;color:var(--muted);margin:0}
#fertility-geo-preview .fpv-clinic-map-panel{border-radius:16px;overflow:hidden;border:1px solid var(--line)}
#fertility-geo-preview .fpv-clinic-map{height:208px}
#fertility-geo-preview .fp-clinic-location .fp-row{gap:8px 16px}
#fertility-geo-preview .fp-experience{padding:0 0 20px;max-width:760px}
#fertility-geo-preview .fp-experience h2{font:500 20px/28px system-ui,sans-serif;letter-spacing:0}
#fertility-geo-preview .fp-experience .fp-intro{font-size:17px;line-height:1.65;color:var(--muted)}
#fertility-geo-preview .fp-selected-result{max-width:none;margin-top:8px}
.fe-cost-panel,#fertility-geo-preview .fe-cost-panel{max-width:860px;background:var(--md-sys-color-surface-container-low);padding:24px 28px}
.fe-cost-panel .fe-cost-label,#fertility-geo-preview .fe-cost-panel .fe-cost-label{font-size:16px;line-height:24px;font-weight:500;color:var(--muted);margin:0 0 2px}
.fe-cost-panel .fe-cost-price,#fertility-geo-preview .fe-cost-panel .fe-cost-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;font:500 32px/40px system-ui,sans-serif;letter-spacing:-.03em;margin:0 0 2px;font-variant-numeric:tabular-nums}
.fe-cost-panel .fe-cost-price span{font-size:var(--fp-body,17px);line-height:24px;font-weight:400;letter-spacing:0;color:var(--muted)}
.fe-cost-panel .fe-cost-program{font-size:var(--fp-body,17px);margin:0 0 20px}
.fe-fee-list{margin:0 0 16px;font-size:var(--fp-body,17px);line-height:1.65}
.fe-fee-list>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.fe-fee-list>div:first-child{border-top:1px solid var(--line)}
.fe-fee-list dt{font-weight:400}
.fe-fee-list dd{margin:0;font-weight:500}
.fe-cost-caveat,#fertility-geo-preview .fe-cost-caveat{font-size:16px;line-height:1.55;color:var(--muted);margin:0 0 12px}
.fe-cost-actions{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:var(--fp-body,17px);align-items:center}
.fe-cost-actions a{display:inline-flex;align-items:center;min-height:44px}
.fe-cost-panel .fe-cost-details{margin:0;padding:0;border:0;font-size:16px;color:var(--muted)}
.fe-cost-panel .fe-cost-details p,#fertility-geo-preview .fe-cost-details p{font-size:16px;line-height:1.55}
.fe-cost-panel .fe-cost-details summary{font-size:16px;font-weight:500}
.fe-cost-panel .fe-cost-details ul{padding-left:18px;margin:4px 0 12px}
.fe-cost-panel .fe-cost-details li{margin:6px 0}
.fe-cost-empty,#fertility-geo-preview .fe-cost-empty{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:24px 0}
.fe-cost-empty h2,#fertility-geo-preview .fe-cost-empty h2{font-size:20px;line-height:28px;margin-bottom:8px}
.fe-cost-empty>p{margin-bottom:4px}
@media(max-width:900px){#fertility-geo-preview #fp-personal .fp-controls{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){
 #fertility-geo-preview #fp-personal .fp-controls{grid-template-columns:1fr;gap:16px}
 #fertility-geo-preview .fp-clinic-location{grid-template-columns:1fr;gap:20px}
 #fertility-geo-preview .fpv-clinic-map{height:180px}
 .fe-cost-panel,#fertility-geo-preview .fe-cost-panel{padding:20px 16px}
 .fe-cost-panel .fe-cost-price,#fertility-geo-preview .fe-cost-panel .fe-cost-price{font-size:28px;line-height:36px}
 .fe-fee-list>div{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px}
 .fe-cost-empty,#fertility-geo-preview .fe-cost-empty{padding:24px 0}
}
.fe-cost-program-option{border-top:1px solid var(--line);padding:4px 0;font-size:var(--fp-body,17px)}
.fe-cost-program-option summary{font-weight:500;line-height:1.65}
.fe-cost-program-option p,#fertility-geo-preview .fe-cost-program-option p{font-size:var(--fp-body,17px);line-height:1.65}
/* Clinic costs use the same disclosure section as the surrounding clinic record. */
.fe-cost-section>.fe-cost-panel,#fertility-geo-preview .fe-cost-section>.fe-cost-panel{border:0;border-radius:0;background:transparent;padding:8px 0 0;margin:0;max-width:none}
.fe-cost-section>.fe-cost-panel.fe-cost-empty,#fertility-geo-preview .fe-cost-section>.fe-cost-empty{padding:0}
.fe-cost-section>summary{font-size:19px;font-weight:500}
.fe-cost-panel .fe-cost-scope,#fertility-geo-preview .fe-cost-scope{font-size:16px;line-height:1.55;color:var(--muted);margin:0 0 16px;max-width:65ch}
/* Treatment details and Services use the same expansion component in the directory. */
#fertility-geo-preview #fp-personal:not(.fp-personal-profile){margin:8px 0;padding:0 20px;border:1px solid var(--line);border-radius:12px;background:var(--md-sys-color-surface-container-low)}
#fertility-geo-preview #fp-personal:not(.fp-personal-profile)[open]{padding-bottom:16px}
#fertility-geo-preview #fp-personal:not(.fp-personal-profile) .fp-controls :is(label,select){background-color:var(--md-sys-color-surface-container-low)}
#fertility-geo-preview .fe-context-help{border:0;margin:12px 0;padding:0;max-width:72ch}
#fertility-geo-preview .fe-context-help>summary{font-size:14px;font-weight:500;min-height:44px;padding:10px 0}
#fertility-geo-preview .fe-context-help :is(p,li){font-size:15px;line-height:1.65}
#fertility-geo-preview .fe-context-help h4{font-size:15px;margin:20px 0 8px}
@media(max-width:600px){#fertility-geo-preview #fp-personal:not(.fp-personal-profile){padding-left:16px;padding-right:16px}}

/* Native selects retain their keyboard menu, with a consistently inset arrow. */
#fertility-geo-preview select,#feedback-form select{
 appearance:none;-webkit-appearance:none;padding-right:48px;
 background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
 background-position:calc(100% - 23px) center,calc(100% - 18px) center;
 background-size:5px 5px;background-repeat:no-repeat;
}
#fertility-geo-preview #fp-personal .fp-controls select{padding-right:48px}
@media(forced-colors:active){#fertility-geo-preview select,#feedback-form select{appearance:auto;background-image:none}}
/* Equal fieldset headings; no border through the second legend. */
#fertility-geo-preview .fp-filter-group+.fp-filter-group{border:0;padding-top:0;margin-top:28px}
#fertility-geo-preview .fp-filter-group legend{padding:0;margin-bottom:16px}
#fertility-geo-preview .fp-filter-options .fp-check{margin-bottom:6px}
#fertility-geo-preview .fp-filter-options .fp-sub{font-size:15px;line-height:1.5}
/* One overview, with reported service values visible beside their labels. */
#fertility-geo-preview .fp-clinic-intro{max-width:90ch;margin:0 0 28px}
#fertility-geo-preview .fp-clinic-intro .fp-intro{font-size:17px;line-height:1.65;color:var(--muted);max-width:none}
#fertility-geo-preview .fp-profile .fp-care{margin:0 0 32px;padding:0;border:0}
#fertility-geo-preview .fp-care-services{margin:0;gap:12px}
#fertility-geo-preview .fp-care-services li{padding:8px 16px;border:0;border-radius:12px;background:var(--md-sys-color-surface-container-low)}
#fertility-geo-preview .fp-care-services li>.fp-service-term{font-size:15px}
#fertility-geo-preview .fp-care-services li>.fp-service-term+span{font-size:15px}
#fertility-geo-preview .fp-back{display:block;width:fit-content;margin:24px 0;min-height:44px}
#fertility-geo-preview .fp-about{margin-top:0}
#fertility-geo-preview .fp-source-panel{padding-top:24px}
#fertility-geo-preview .fp-source-panel>.fp-back{margin-top:0}
/* Chevrons and generous targets for supporting, optional disclosures. */
#fertility-geo-preview .fp-profile details>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;min-height:48px;cursor:pointer}
#fertility-geo-preview .fp-profile details>summary::-webkit-details-marker{display:none}
#fertility-geo-preview .fp-profile details>summary:after{content:'';flex:0 0 7px;width:7px;height:7px;margin-right:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
#fertility-geo-preview .fp-profile details[open]>summary:after{transform:rotate(225deg)}
#fertility-geo-preview .fp-profile #fp-personal.fp-personal-profile>summary{display:none}
@media(max-width:600px){
 #fertility-geo-preview .fp-clinic-intro{margin-bottom:24px}
 #fertility-geo-preview .fp-clinic-location{margin:24px 0}
}

/* Quote help and source notes share one compact, full-width disclosure layout. */
.fe-cost-panel>.fe-context-help,.fe-cost-panel>.fe-cost-details,
#fertility-geo-preview .fe-cost-panel>.fe-context-help,#fertility-geo-preview .fe-cost-panel>.fe-cost-details{max-width:none;margin:0;padding:0;border:0;border-top:1px solid var(--line)}
.fe-cost-panel>.fe-context-help>summary,.fe-cost-panel>.fe-cost-details>summary,
#fertility-geo-preview .fe-cost-panel>.fe-context-help>summary,#fertility-geo-preview .fe-cost-panel>.fe-cost-details>summary{min-height:48px;padding:12px 0;font-size:16px;font-weight:500;line-height:24px}
.fe-cost-panel>.fe-context-help :is(p,li),#fertility-geo-preview .fe-cost-panel>.fe-context-help :is(p,li){font-size:var(--fp-body,17px);line-height:1.65}
.fe-cost-panel>.fe-context-help ul,#fertility-geo-preview .fe-cost-panel>.fe-context-help ul{padding-left:22px;margin:0 0 12px}
.fe-cost-panel>.fe-cost-details p,#fertility-geo-preview .fe-cost-panel>.fe-cost-details p{margin:0 0 12px;font-size:16px;line-height:1.55}
