/* Optional content inherits each vertical's theme; no widget styles or runtime data loaders */
#service-catalog [data-service-group],[data-business-group]{background:color-mix(in srgb,var(--accent) 3%,var(--paper));border-color:color-mix(in srgb,var(--accent-copy) 28%,var(--paper))!important;border-radius:var(--radius);box-shadow:0 2px 8px #00000005;overflow-wrap:anywhere}
#service-catalog [data-service-group] h3,[data-business-group] h3{color:var(--accent-copy)}
#service-catalog li,#service-catalog h3{overflow-wrap:anywhere}
[data-service-row],[data-visit-row]{border-color:color-mix(in srgb,var(--ink) 16%,transparent)!important;overflow-wrap:anywhere}
[data-service-row] dt,[data-visit-row] dt{color:var(--accent-copy)}
[data-service-toggle]{min-height:44px}
[data-service-details][data-expanded="true"]{margin-top:0!important}
#price-list{background:var(--menu-outer,var(--wash));border-block:1px solid color-mix(in srgb,var(--ink) 14%,transparent)}
#price-list>.container{background:var(--menu-inner,var(--paper));border-color:color-mix(in srgb,var(--ink) 16%,transparent)!important}
#price-list .border-top,#price-list .border-bottom,#price-list hr{border-color:color-mix(in srgb,var(--ink) 16%,transparent)!important}
#price-list article{height:auto;padding:18px 0;border-bottom:0}
#price-list h4{overflow-wrap:anywhere;max-width:100%}
#price-list .h4{font-family:var(--heading)}
#price-list strong{font-size:1rem;overflow-wrap:anywhere}
#price-list .badge{background:var(--wash);color:var(--ink);font-weight:400;font-size:.72rem}
#reviews,#faq{background:var(--wash)}
#updates{background:var(--paper)}
#visit{background:var(--paper)}
#visit-separator{border-color:color-mix(in srgb,var(--ink) 16%,transparent)}
#visit-details{background:color-mix(in srgb,var(--wash) 65%,var(--paper))}
[data-carousel-track]{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 1px 14px;overscroll-behavior-x:contain}
[data-carousel-track]::-webkit-scrollbar{display:none}
[data-carousel-track]>article{flex:0 0 calc((100% - 48px)/3);min-width:0;scroll-snap-align:start;scroll-snap-stop:always;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);border-radius:var(--radius);background:var(--paper);color:var(--ink);overflow:hidden;box-shadow:0 8px 25px #00000005}
[data-carousel-track] h3{font-family:Arial,Helvetica,sans-serif;letter-spacing:0;overflow-wrap:anywhere}
[data-carousel-track] p{white-space:pre-line;overflow-wrap:anywhere;font-size:.94rem;line-height:1.65}
[data-carousel-controls][hidden]{display:none!important}
[data-carousel-controls] button{height:44px;width:44px;padding:0;font:400 1.6rem/1 Arial,sans-serif}
[data-carousel-controls] button:disabled{opacity:.3}
[data-review-initial]{width:44px;height:44px;flex-shrink:0;background:var(--wash);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-weight:600}
#reviews [data-carousel-track] img.rounded-circle{width:44px;height:44px;flex-shrink:0}
#reviews blockquote{font-family:Arial,Helvetica,sans-serif;font-size:1rem;margin-bottom:24px}
[data-review-stars]{color:var(--accent-copy);font-size:.9rem;letter-spacing:1px}
[data-carousel-track] .badge{font-size:.72rem;font-weight:400;white-space:normal;text-align:left;line-height:1.4}
#updates article>img{height:205px;width:100%;border-radius:0}
#updates .card-body{padding:24px}
#updates h3{font-family:var(--heading)}
#updates [data-update-text]{font-size:.94rem}
#updates-modal .modal-content,#updates-modal article,#reviews-modal .modal-content,#reviews-modal article{background:var(--paper);color:var(--ink)}
#updates-modal .modal-header,#updates-modal .border-bottom,#reviews-modal .modal-header,#reviews-modal .border-bottom{border-color:color-mix(in srgb,var(--ink) 16%,transparent)!important}
#updates-modal .close,#reviews-modal .close{color:inherit}
#updates-modal article>img{width:100%;height:auto}
#reviews-modal blockquote p,#updates-modal [data-update-text]{white-space:pre-line;overflow-wrap:anywhere}
#faq details{border-color:color-mix(in srgb,var(--ink) 22%,transparent)!important}
#faq summary{cursor:pointer;font-family:var(--heading);line-height:1.4}
#faq details p{white-space:pre-line}
/* Keep adjacent FAQ and location sections distinct without an oversized gap */
main>section#faq:has(+ #visit){padding-bottom:40px}
main>section#faq+section#visit{padding-top:40px}
#location-map{width:100%;margin-top:0}
#location-map iframe{display:block;border-radius:var(--radius)}
[data-map-placeholder]{min-height:300px;display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid color-mix(in srgb,var(--ink) 20%,transparent);background-color:var(--paper);background-image:linear-gradient(40deg,transparent 46%,var(--wash) 46%,var(--wash) 53%,transparent 53%),linear-gradient(130deg,transparent 46%,var(--wash) 46%,var(--wash) 53%,transparent 53%);background-size:90px 100px;border-radius:var(--radius)}
[data-map-placeholder]>div{padding:20px;background:var(--paper);max-width:95%;box-shadow:0 5px 15px #0000000a}
[data-map-placeholder] span{font-size:2rem;color:var(--accent);line-height:1.2}
@media(max-width:991.98px){[data-carousel-track]>article{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:767.98px){[data-carousel-track]>article{flex-basis:100%}#price-list h4{font-size:1.25rem}#price-list strong{font-size:1.2rem}#location-map{margin-top:25px}}
@media(max-width:767.98px){main>section#faq:has(+ #visit){padding-bottom:28px}main>section#faq+section#visit{padding-top:28px}}

/* Offering layout: palette-aware surfaces and safe text wrapping only. */
#service-catalog [data-offering-support]{background:var(--wash)}
#service-catalog [data-offering-group] h3{color:var(--accent-copy)}
#service-catalog{overflow-wrap:anywhere}
#service-catalog .border-bottom,#service-catalog .border-top{border-color:color-mix(in srgb,var(--ink) 16%,transparent)!important}

/* Scoped search controls retain the active website palette and hidden inline results. */
[data-section-search] .form-control{background:var(--paper);color:var(--ink);border-color:color-mix(in srgb,var(--ink) 35%,transparent)}
#service-catalog [data-service-result][hidden],#faq [data-faq-item][hidden]{display:none!important}

/* Consistent, readable hero actions across visual templates. */
#hero-primary-action,#hero-secondary-action{font-size:1rem;line-height:1.5;min-height:48px;padding:.875rem 1.5rem}

