/* Shared recipes consume only the generated project tokens. */
/* Interactive FAQ controls use UI typography, independent of editorial heading ranks. */
.mp-site .app-general-faq :is(.accordion-button,.accordion-toggle){font-family:var(--mp-body-font);font-size:var(--mp-body-size);font-weight:600;line-height:1.5;text-transform:none;letter-spacing:normal}
/* The opt-in photo header retains one shared layout and a palette-owned overlay. */
.mp-site .page-header.app-page-header--background-overlay{background-color:var(--primary);background-position:center;padding-block:4rem;margin-bottom:0}
.mp-site .app-page-header--background-overlay .row{align-items:center;row-gap:1.5rem}
.mp-site .app-page-header--background-overlay h1{color:#fff;font-weight:700}
.mp-site .app-page-header--background-overlay .app-page-header__lead{color:#fff;opacity:1;font-family:var(--mp-body-font);font-size:var(--mp-body-size);line-height:1.6;margin-top:1rem;max-width:44rem}
.mp-site .app-page-header--background-overlay .breadcrumb{font-family:var(--mp-body-font);font-size:1rem;font-weight:600}
.mp-site .app-page-header--background-overlay .breadcrumb :is(li,a),.mp-site .app-page-header--background-overlay .breadcrumb li::before{color:#fff}
@media(max-width:767.98px){.mp-site .app-page-header--background-overlay .p-static{order:1!important}.mp-site .app-page-header--background-overlay .order-md-2{order:2!important}}
/* Match document-mode specificity so vendor body backgrounds cannot override project tokens. */
html.mp-document body.mp-site { background-color:var(--mp-background); }
.mp-site .app-general-section--surface-base { --app-general-section-background:var(--app-color-background); }
.mp-site{--border-radius:var(--mp-radius);--border-radius2x:var(--mp-radius)}
.mp-site :is(.app-general-media img,.app-general-media--has-overlay-caption,.app-general-video:not(.app-general-video--background-cover) video,.app-general-media-collage img,.app-general-card,.app-general-stat,.app-general-form,.card,.accordion-item,.app-menu-tab,.app-menu-panel__empty,.app-menu-notes,.app-menu-section--surface-card,.app-menu-section--surface-outlined,.app-menu-section--surface-raised,.app-menu-section__media-stack .app-general-image-carousel,.app-menu-section__info-card){border-radius:var(--mp-radius)}
.mp-site :is(.app-general-card,.app-general-stat,.app-general-form,.card,.app-menu-tab,.app-menu-panel__empty,.app-menu-section--surface-card,.app-menu-section--surface-outlined,.app-menu-section--surface-raised,.app-menu-section__info-card,.form-control,.form-select){border-width:var(--mp-border)}
.mp-site .app-general-media--fit-contain img{object-fit:contain}.mp-site .app-general-media--fit-cover img{object-fit:cover}
.mp-site .app-general-media--ratio-square img{aspect-ratio:1}.mp-site .app-general-media--ratio-portrait img{aspect-ratio:3/4}.mp-site .app-general-media--ratio-landscape img{aspect-ratio:4/3}.mp-site .app-general-media--ratio-wide img{aspect-ratio:16/9}
.mp-site{--app-color-background:var(--mp-background);--app-color-surface:var(--mp-background);--app-color-text:var(--mp-text);--app-color-muted:var(--mp-text);--app-color-surface-alt:color-mix(in srgb,var(--mp-background),var(--mp-text) 6%);--app-color-border:color-mix(in srgb,var(--mp-text),transparent 75%);--light:#fff;--dark:#20242a;background:var(--mp-background);color:var(--mp-text);font-family:var(--mp-body-font);font-size:var(--mp-body-size);line-height:var(--mp-line-height)}
.mp-site :is(h1,h2,h3,h4,h5,h6):not(:where(.app-general-content-flow--compact-details > .app-general-column__title)):not(.app-page-header h1,.business-contact-summary-item__label,.app-content-icon-info__title):not(:where(.app-menu-catalog *)):not(:where(.app-occasion-card__title,.app-home-hero__occasion-title,.app-general-content-flow--occasion-intro > .app-general-column__title)){font-family:var(--mp-rank-font,var(--mp-heading-font))!important;font-weight:var(--mp-rank-weight,var(--mp-heading-weight))!important;line-height:var(--mp-rank-line-height,1.2);letter-spacing:normal}
/* Menu components retain their own scale/spacing while using authored font roles. */
:where(.mp-site .app-menu-catalog) :is(h1,h2,h3,h4,h5,h6){font-family:var(--mp-rank-font,var(--mp-heading-font));font-weight:var(--mp-rank-weight,var(--mp-heading-weight))}
/* Document headings own their color/spacing; font tokens remain shared. */
.mp-site :is(h1,h2,h3,h4,h5,h6):not(:where(.app-general-content-flow--compact-details > .app-general-column__title)):not(.app-page-header h1,.business-contact-summary-item__label,.app-content-icon-info__title):not(:where(.app-general-content-flow--document > .app-general-column__title,.app-general-content-flow--document > .app-content-subheading,.app-menu-catalog *)):not(:where(.app-occasion-card__title,.app-home-hero__occasion-title,.app-general-content-flow--occasion-intro > .app-general-column__title)){color:inherit;margin:0 0 1rem}
.mp-site .app-page-header h1{font-family:var(--mp-rank-font,var(--mp-heading-font))}
.mp-site .app-home-hero--cutout .app-home-hero__cutout-title{line-height:.94}
.mp-site h1:not(.app-page-header h1,.app-home-hero__cutout-title):not(:where(.app-occasion-card__title,.app-home-hero__occasion-title,.app-general-content-flow--occasion-intro > .app-general-column__title)){font-size:var(--mp-h1)!important}.mp-site h2:not(:where(.app-cta-media h2)):not(:where(.app-general-content-flow--compact-details > .app-general-column__title)):not(:where(.app-contact-support-card .app-card-title)):not(:where(.app-occasion-card__title,.app-home-hero__occasion-title,.app-general-content-flow--occasion-intro > .app-general-column__title)){font-size:var(--mp-h2)!important}.mp-site h3:not(:where(.app-general-content-flow--compact-details > .app-general-column__title)):not(:where(.business-contact-summary-item__label,.app-content-icon-info__title)):not(:where(.app-occasion-card__title,.app-home-hero__occasion-title,.app-general-content-flow--occasion-intro > .app-general-column__title)){font-size:var(--mp-h3)!important}.mp-site h4:not(:where(.app-general-content-flow--compact-details > .app-general-column__title)):not(:where(.app-menu-catalog *)):not(:where(.app-occasion-card__title,.app-home-hero__occasion-title,.app-general-content-flow--occasion-intro > .app-general-column__title)){font-size:var(--mp-h4)!important}.mp-site h5:not(:where(.app-general-content-flow--compact-details > .app-general-column__title)):not(:where(.app-occasion-card__title,.app-home-hero__occasion-title,.app-general-content-flow--occasion-intro > .app-general-column__title)){font-size:var(--mp-h5)!important}.mp-site h6:not(:where(.app-general-content-flow--compact-details > .app-general-column__title)):not(:where(.app-occasion-card__title,.app-home-hero__occasion-title,.app-general-content-flow--occasion-intro > .app-general-column__title)){font-size:var(--mp-h6)!important}
.mp-site p:not(:where(.app-menu-catalog *,.app-cta-media p)){color:inherit;line-height:inherit}
/* Base fixes li at 24px; content list items follow the body line height like paragraphs, without outranking component rules. */
:where(.mp-site main) li:not(:where(.app-menu-catalog *,.app-page-header *)){line-height:inherit}
/* Responsive defaults must yield to component-owned image dimensions. */
:where(.mp-site) img{max-width:100%;height:auto}
.mp-site .form-control,.mp-site .form-select{background:var(--mp-background);color:var(--mp-text);border-radius:var(--mp-radius)}
.mp-site .app-general-section--surface-primary,.mp-surface--primary{--app-general-section-background:var(--primary);--app-general-section-foreground:var(--primary-inverse);--app-general-section-muted:var(--primary-inverse);background:var(--primary);color:var(--primary-inverse)}
.mp-site .app-general-section--surface-dark,.mp-surface--dark{--app-general-section-background:#20242a;--app-general-section-foreground:#fff;--app-general-section-muted:#fff;background:#20242a;color:#fff}
.mp-site .app-general-section--backdrop{background-image:var(--app-section-backdrop);background-size:cover;background-position:center}.mp-site .app-general-section--backdrop-top{background-position:center top}.mp-site .app-general-section--title-padding-top .app-general-section__heading .app-section-title{padding-top:var(--app-section-title-padding,.5em);padding-bottom:0!important}
.mp-site .btn:not(:where(.app-cta-media__button)){border-radius:var(--mp-button-radius,var(--mp-radius))!important}
.mp-site .btn.btn-outline{border-radius:var(--mp-outline-button-radius,var(--mp-button-radius,var(--mp-radius)))!important}
.mp-skip-link{position:absolute;top:-10rem;left:1rem;z-index:999;padding:1rem;background:var(--mp-background)}.mp-skip-link:focus{top:1rem}
.mp-page--full .app-general-section__container{max-width:none}.mp-sidebar-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(15rem,1fr);grid-template-rows:auto 1fr;gap:1.5rem 3rem;padding-block:3rem}.mp-sidebar-navigation{grid-column:2;grid-row:1;align-self:start;border:var(--mp-border) solid var(--app-color-border);border-radius:var(--mp-radius);padding:1rem}.mp-sidebar-navigation>summary{font-weight:700;pointer-events:none;list-style:none}.mp-sidebar-navigation ul{list-style:none;padding-left:1rem}.mp-sidebar-navigation nav>ul{padding:0;margin:1rem 0 0}.mp-sidebar-navigation a{display:inline-block;padding:.4rem 0}.mp-sidebar-navigation [aria-current]{font-weight:700}
.mp-main-content{grid-column:1;grid-row:1 / span 2;min-width:0}.mp-main-content .app-general-section__container{padding-inline:0}.mp-main-content>.app-general-section:first-child .app-general-section__container{padding-top:0}.mp-sidebar-support{grid-column:2;grid-row:2}.mp-sidebar-block{padding:1.5rem 0}.mp-sidebar-block h2{font-size:var(--mp-h4)!important}.mp-sidebar--error-recovery .mp-sidebar-navigation{border-top:4px solid var(--primary)}
.mp-scroll-top.btn{position:fixed;right:1rem;bottom:1rem;z-index:10;box-sizing:border-box;width:2.75rem;height:2.75rem;padding:0;font-size:1rem;line-height:1}
/* Bootstrap's display utility is important; the initial hidden state must win. */
.mp-scroll-top[hidden]{display:none!important}
.mp-site.mp-recaptcha-above-scroll-top .grecaptcha-badge{bottom:4.5rem!important}
.mp-scroll-top:focus-visible{outline:2px solid var(--app-color-text)!important;outline-offset:3px}
@media(max-width:991.98px){.mp-site h1:not(.app-page-header h1,.app-home-hero__cutout-title){font-size:clamp(2rem,8vw,var(--mp-h1))!important}.mp-sidebar-layout{display:flex;flex-direction:column}.mp-sidebar-navigation>summary{pointer-events:auto;list-style:revert;cursor:pointer}.mp-main-content{order:2}.mp-sidebar-navigation{order:1;width:100%}.mp-sidebar-support{order:3}}
@media(prefers-reduced-motion:reduce){.mp-site *{scroll-behavior:auto}}

.mp-site .app-general-section--surface-primary .app-general-content-flow{--light:var(--primary-inverse)}
.mp-site .app-cta-section--surface-primary{--app-color-surface:var(--primary);--app-color-text:var(--primary-inverse);--light:var(--primary-inverse);background:var(--primary);color:var(--primary-inverse)}
.mp-site .app-cta-section--surface-dark{--app-color-surface:var(--dark);--app-color-text:var(--light);background:var(--dark);color:var(--light)}
.mp-site .mp-footer-cta .app-cta-block{border-radius:var(--mp-radius);box-shadow:none}
.mp-site .app-brand__logo{max-height:4rem;width:auto}
/* Classic page-header colors belong to the existing component and configured semantic roles. */
.mp-main-content>.shared-section{padding-block:0}
.mp-site :is(.app-card,.app-aside-card,.app-cta-block,.app-form){border-radius:var(--mp-radius);border-width:var(--mp-border)}
.mp-site .app-card>.btn-link{color:var(--app-color-text)}
.mp-site #footer.app-practice-footer{--light:var(--primary-inverse)}
.mp-site #footer.app-professional-footer{--light:var(--secondary-inverse)}

/* Library sidebar cards own their surfaces; the responsive disclosure owns ordering only. */
.mp-sidebar-navigation--library {border:0;padding:0;border-radius:0}
@media(min-width:992px){.mp-sidebar-navigation--library>summary{display:none}}
.mp-site .app-home-hero--title-width-full .app-general-column__title {width:100%;max-width:none}
@media(max-width:991px){.mp-site #header.app-tiered-header .app-tiered-header__logo[style*="--app-logo-"] {max-width:min(var(--app-logo-mobile-width,288px),var(--app-logo-mobile-vw,64vw));max-height:var(--app-logo-mobile-height,67px)}}

/* One desktop sticky box gives all sidebar cards the same bottom boundary. */
@media(min-width:992px){
.mp-sidebar-stack{grid-column:2;grid-row:1 / span 2;align-self:start;position:sticky;top:6rem;display:grid;gap:1.5rem}
.mp-sidebar-stack>:is(.mp-sidebar-navigation,.mp-sidebar-support){grid-column:auto;grid-row:auto}
}
