/* Shared sections, measured against the original home page. */
.appointment > .container { width:100%; max-width:none; padding:0; }
.appointment > .container > .row { margin:0; }
.appointment .appointment-content { flex:0 1 960px; width:960px; max-width:100%; padding:0 20px; }
.appointment .appointment-title { font-size:42px; line-height:1.23; font-weight:600; margin:0 0 40px; }
.appointment .appointment-descr { font-size:20px; line-height:1.55; font-weight:300; margin:0 0 50px; }
.appointment .appointment-form { display:flex; flex-direction:column; flex-wrap:nowrap; width:100%; max-width:560px; margin:0 auto; gap:0; }
.appointment .appointment-form > .col,
.appointment .appointment-form > .col-auto { flex:none; width:100%; padding:0; }
.appointment .appointment-form > .appointment-field { margin:0 0 20px; }
.appointment .appointment-form .form-control { height:56px; font:400 16px/1.33 Montserrat,Arial,sans-serif; padding:0 20px; border-radius:5px; }
.appointment .appointment-form .form-control::placeholder { color:#999; opacity:1; }
.appointment .btn.appointment-submit { display:flex; width:100%; height:56px; padding:0 60px; border-radius:5px; font:600 16px/1.4 Montserrat,Arial,sans-serif; }
.appointment .appointment-form-bottom-text { font-size:15px; line-height:1.55; font-weight:300; margin:30px 0; }
.footer .footer-links { display:block; padding:0; margin:0; font:16px "Times New Roman",serif; text-align:center; }
.footer .footer-links .navigation-item { display:inline-block; padding:0; margin:0 15px; font:16px/1.35 Montserrat,Arial,sans-serif; }
.footer .footer-links .navigation-link { display:inline; padding:0; color:#fff; font:600 14px/1.35 Montserrat,Arial,sans-serif; }
.footer a.footer-scrolltop { display:inline-block; position:relative; padding-right:12px; line-height:1.35; color:#fff; }
@media(min-width:960px) and (max-width:1199px) {
 .appointment .appointment-content { flex-basis:780px; width:780px; }
 .appointment .appointment-title { font-size:38px; }
 .appointment .appointment-descr { font-size:18px; }
 .appointment .appointment-form-bottom-text { font-size:14px; }
}
@media(min-width:640px) and (max-width:959px) {
 .appointment .appointment-content { flex-basis:640px; width:640px; }
 .appointment .appointment-title { font-size:38px; }
 .appointment .appointment-descr { font-size:18px; }
 .appointment .appointment-form-bottom-text { font-size:14px; }
}
@media(max-width:960px) {
 .footer .footer-links .navigation-item { margin:0 10px 4px; font-size:14px; }
}
@media(max-width:670px) {
 .footer .footer-links .navigation-item,
 .footer .footer-links .navigation-link { font-size:12px; }
}
@media(max-width:639px) {
 .appointment .appointment-content { flex-basis:100%; width:100%; }
 .appointment .appointment-title { font-size:30px; margin-bottom:18px; }
 .appointment .appointment-descr { font-size:16px; line-height:1.45; margin-bottom:30px; }
 .appointment .appointment-form-bottom-text { font-size:12px; line-height:1.45; }
 .appointment .btn.appointment-submit { padding:0 30px; }
}
@media(max-width:480px) {
 .appointment .appointment-form > .appointment-field { margin-bottom:15px; }
 .appointment .appointment-form > .appointment-field:nth-child(3) { margin-bottom:20px; }
}

.appointment .appointment-form .form-control { box-shadow:none; }
.appointment .btn.appointment-submit { letter-spacing:normal; }
.site-body .topic-links-menu-link { color:#000; }
.site-body .map-links a {color:#333;}
.site-body .map-links a+a {color:#666;}
@media(min-width:1200px){.problems .problems-background-image{top:30px!important;}}

/* Reviews grow with loaded items and use the page's normal scrolling. */
#block-875785333 .sw-app { height:auto!important; max-height:none; }
#block-875785333 .sw-app .sw-review-list { flex:none; height:auto; max-height:none; min-height:0; overflow:visible; }
#block-875785333 .sw-app .sw-review-list-body { flex:none; height:auto!important; max-height:none!important; min-height:0; overflow:visible!important; padding:5px 5px 10px; }
#block-875785333 .sw-app .sw-reviews-more { flex-shrink:0; }

/* Conclusion panels use the original neutral background and information icon. */
.notice-wrapper { background:#ebebeb; }
.notice-icon svg { vertical-align:baseline; }

/* Mobile catalogs use one consistent gap between cards and below the heading. */
@media(max-width:959px) {
 .page-article .site-content .catalog { padding-top:0; padding-bottom:24px; }
 .page-article .site-content .callout:has(+ .catalog) { padding-top:0!important; padding-bottom:28px!important; }
 .page-article .catalog .catalog-row { row-gap:28px; }
 .page-article .catalog .catalog-row + .catalog-row { margin-top:28px; }
 .page-article .catalog .catalog-row:empty { display:none; }
 .page-article .catalog .catalog-row .catalog-col { margin-top:0; margin-bottom:0; }
 .page-article .catalog .catalog-textwrapper { margin-bottom:0; }
 .page-article .catalog .catalog-title { margin-bottom:0; }
 .page-article .catalog .catalog-descr:not(:empty) { margin-top:8px; }
}

/* Mobile articles: one section gap, with spacing only around actual media. */
@media(max-width:959px) {
 .page-article .site-content .article {
   padding-top:min(20px,var(--section-mobile-top,var(--section-top,0px)));
   padding-bottom:min(20px,var(--section-mobile-bottom,var(--section-bottom,0px)));
 }
 .page-article .site-content .article + .article { padding-top:12px; }
 .page-article .article .article-grid>[class*="col-"] { margin-top:0; margin-bottom:0; }
 .page-article .article .article-grid>aside { margin-top:16px; }
 .page-article .article .article-grid>aside:first-child { margin-top:0; }
 .page-article .article .article-grid>aside + div { margin-top:16px; }
 .page-article .article .article-grid>aside:not(:has(img)):has(.article-sectitle:empty):has(.article-secdescr:empty) { display:none; }
 .page-article .article .article-text { padding-bottom:0; }
 .page-article .article .article-sectitle:empty,
 .page-article .article .article-secdescr:empty { display:none; }
}

/* Keep mobile conclusions inset and avoid stacked section gaps. */
@media(max-width:959px) {
 .page-article .site-content .notice { padding-top:16px; padding-bottom:24px; }
 .page-article .notice .notice-wrapper { margin:0; }
 .page-article .article:has(+ .notice, + .clinical) { padding-bottom:0; }
 .page-article .article:has(+ .notice, + .clinical) .article-grid>[class*="col-"] { margin-bottom:0; }
 .page-article .article:has(+ .notice, + .clinical) aside:not(:has(img)):has(.article-sectitle:empty):has(.article-secdescr:empty) { display:none; }
 .page-article .site-content .notice + .clinical { padding-top:0; padding-bottom:24px; }
 .page-article .site-content .clinical:has(~ .notice) { padding-top:16px; padding-bottom:8px; }
}

/* Match original controls instead of generic Bootstrap link/typography defaults. */
#site-content .topic-links-menu-link { color:#000; }
#site-content .btn.site-button { letter-spacing:normal; }
#site-content .clinical .clinical-submit { background:#39b5c1; color:#fff; border-radius:12px; }
#site-content .directions-tabs-title { color:#777!important; font-weight:500!important; }
#site-content .directions-tabs-title.active { color:#222!important; font-weight:600!important; }
#site-content .awards .section-title { color:#2a2651; font-weight:700; }
#site-content .awards .section-descr { color:#333; font-weight:400; }

@media(max-width:1199px) {
 #site-content .article .article-img { max-width:min(100%,calc(var(--image-columns)*80px - 20px)); }
}
@media(min-width:1200px) {
 .callout .callout-descrblock { width:490px; max-width:100%; }
 .callout .callout-text { width:760px; max-width:100%; }
}
@media(min-width:960px) and (max-width:1199px) {
 .callout .callout-descrblock { width:410px; max-width:100%; }
 .callout .callout-text { width:620px; max-width:100%; }
}

#site-content .map-links a { color:#333; }
#site-content .map-links a+a { color:#666; }
.awards .awards-slider { --awards-inset:max(20px,calc((100vw - 1160px)/2)); padding:0 var(--awards-inset); scroll-padding-inline:var(--awards-inset); scrollbar-width:none; }
.awards .awards-item { flex:0 0 auto; }
.awards .awards-imageframe { height:300px; }
.awards .awards-item img { width:auto; max-width:none; height:100%; }
.awards .awards-controls { gap:5px; }
.awards .awards-control-right { transform:rotate(180deg); }
@media(min-width:960px) and (max-width:1199px) { .awards .awards-slider { --awards-inset:calc((100vw - 920px)/2); } }
@media(max-width:959px) { .awards .awards-slider { --awards-inset:20px; } .awards .awards-imageframe { height:350px; } }

#site-content .article-text ul, #site-content .article-text ol { margin-bottom:10px; }
@media(min-width:960px) { .site-row>.offset-lg-1 { margin-left:8.333333%; } }

#site-content .article .article-img { vertical-align:baseline; }
@media(min-width:960px) { .problems .problems-features { width:calc(100% + 40px); } }

/* Closed photo viewers must not occupy space below the footer. */
.site-image-dialog:not([open]) { display:none; }

/* Full-screen photo viewer: the photograph floats above a dark backdrop. */
.site-image-dialog {
 --viewer-height:calc(100dvh - 144px);
 width:100vw; max-width:100vw; height:100dvh; max-height:100dvh;
 margin:0; padding:72px 40px; border:0; border-radius:0;
 background:transparent; color:#fff; box-shadow:none; overflow:hidden;
}
.site-image-dialog::backdrop { background:rgba(8,15,24,.93); backdrop-filter:blur(10px); }
.site-image-dialog .dialog-header { position:absolute; top:20px; right:24px; padding:0; border:0; z-index:1; }
.site-image-dialog .dialog-body { display:flex; flex:1; min-height:0; flex-direction:column; gap:14px; align-items:center; justify-content:center; padding:0; overflow:visible; }
.site-image-dialog img {
 width:min(1600px,100cqw,calc(100cqh*var(--image-ratio,1.7778)));
 height:auto; max-width:100%; max-height:100%; object-fit:contain;
 border-radius:12px; box-shadow:0 20px 70px rgba(0,0,0,.45);
}
.image-viewer-close {
 display:grid; place-items:center; width:48px; height:48px; padding:0;
 color:#fff; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.22);
 border-radius:50%; cursor:pointer; transition:background .18s,transform .18s;
}
.image-viewer-close svg { width:24px; height:24px; }
.image-viewer-close:hover { background:rgba(57,181,193,.65); transform:rotate(90deg); }
.image-viewer-close:focus-visible { outline:2px solid #39b5c1; outline-offset:4px; }
@media(max-width:639px) {
 .site-image-dialog { --viewer-height:calc(100dvh - 96px); padding:72px 12px 24px; }
 .site-image-dialog .dialog-header { top:12px; right:12px; }
 .image-viewer-close { width:44px; height:44px; }
 .site-image-dialog img { border-radius:8px; }
}
@media(prefers-reduced-motion:reduce) { .image-viewer-close { transition:none; } }

.image-viewer-frame { display:flex; flex:1; min-height:0; width:100%; align-items:center; justify-content:center; container-type:size; }
.image-viewer-caption { flex:none; max-width:1000px; width:100%; text-align:center; font-family:Montserrat,Arial,sans-serif; }
.image-viewer-title { font-size:16px; font-weight:600; line-height:1.45; color:#f5f7fa; }
.image-viewer-description { margin-top:5px; font-size:13px; line-height:1.45; color:#b6c1ce; }
@media(max-width:639px) { .image-viewer-title { font-size:14px; } .image-viewer-description { font-size:12px; } }
