/* Ortho 8082 2026-10-01. Extension of Constructum Rounded and existing nt-* components. */
/* 3/6/24a: retain existing pill and theme button, improve weight and contrast. */
html body .nt-hero-btns .nt-hero-btn { font-weight:700; }
/* 24a: existing style.css leaves outline hover transparent; fill it in the service hero. */
@media(hover:hover) and (pointer:fine) {
 html body .nt-ortho-service-hero .nt-hero-btns a.nt-hero-btn:not(.nt-hero-btn--main):hover { background-color:var(--nt-ortho-accent,#166574)!important; border-color:var(--nt-ortho-accent,#166574)!important; color:#fff!important; }
}
html body .nt-ortho-service-hero .nt-hero-btns a.nt-hero-btn:not(.nt-hero-btn--main):focus-visible,
html body .nt-ortho-service-hero .nt-hero-btns a.nt-hero-btn:not(.nt-hero-btn--main):active { background-color:var(--nt-ortho-accent,#166574)!important; border-color:var(--nt-ortho-accent,#166574)!important; color:#fff!important; }
html body .nt-ortho-price-link a.constructum-button,
html body .nt-ortho-price-link a.elementor-button { background-color:var(--nt-ortho-accent,#166574)!important; background-image:none!important; color:#fff!important; font-weight:700; }
html body .nt-ortho-price-link a:hover { background-color:var(--nt-ortho-accent-dark,#0f4c57)!important; }
/* 2: same directional gradient as the present home and service slider. */
html body .nt-ortho-home-hero .content-item:before,
html body .nt-ortho-service-hero .content-item:before { background-image:linear-gradient(to right,rgba(22,101,116,0) 42%,rgba(22,101,116,.55) 55%,rgba(15,76,87,.93) 100%)!important; }
/* 7: existing links and three-column card layout, with theme underline treatment. */
html body .nt-ortho-home-services .nt-card { border:0!important; border-bottom:2px solid var(--nt-ortho-accent,#166574)!important; border-radius:0!important; box-shadow:none!important; background:transparent!important; }
html body .nt-ortho-home-services .nt-card__t { display:flex; align-items:center; gap:16px; }
html body .nt-card__icon { display:block; width:55px; height:55px; flex:0 0 55px; object-fit:contain; }
/* 10: confirmed brand variant, keeping the current white text and Constructum spacing. */
html body .elementor .nt-ortho-home-about { background-color:var(--nt-ortho-accent-dark,#0f4c57)!important; }
/* 12/30: keep supplied list/component, portraits compact on home, 3 on team page. */
html body .nt-ortho-home-team .nt-ortho-team,
html body .nt-ortho-team-page .nt-ortho-team { display:grid; list-style:none; margin:0; padding:0; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
html body .nt-ortho-home-team .nt-ortho-team li,
html body .nt-ortho-team-page .nt-ortho-team li { min-width:0; margin:0; padding:0; list-style:none; }
html body .nt-ortho-home-team .nt-ortho-team li:before,
html body .nt-ortho-team-page .nt-ortho-team li:before { content:none; }
html body .nt-ortho-home-team .nt-ortho-team h3,
html body .nt-ortho-team-page .nt-ortho-team h3 { margin:0 0 4px; font-size:22px; line-height:1.25; }
html body .nt-ortho-home-team .nt-ortho-team .nt-role,
html body .nt-ortho-team-page .nt-ortho-team .nt-role { margin:0 0 10px; font-weight:600; color:var(--nt-ortho-accent,#166574); }
html body .nt-ortho-team-page .nt-ortho-team img { display:block; width:100%; height:auto; aspect-ratio:610/760; object-fit:cover; margin:0 0 16px; }
html body .nt-ortho-home-team .nt-ortho-team img { width:220px; max-width:100%; height:auto; margin:0 0 18px; border-radius:var(--constructum-radius-smallest,12px); }
html body .elementor .nt-ortho-team-summary { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); align-items:center; gap:40px; }
html body .nt-ortho-team-summary .nt-ortho-team-summary-text { min-width:0; }
html body .nt-ortho-home-team .nt-home-team { padding:10px 0 30px!important; }
html body .nt-ortho-home-team .nt-ortho-team h3 { font-size:22px; }
html body .nt-ortho-team-page .nt-ortho-team img { border-radius:var(--constructum-radius-medium,25px); }
html body .nt-ortho-team-page .nt-ortho-team li { padding-bottom:24px; border-bottom:2px solid var(--constructum-standard-border-color,#dededb); }
html body.nt-ortho-team-view { --constructum-page-title-overlay-color:rgba(22,101,116,.6); }
html body.nt-ortho-team-view .page-title-container .page-title-bg { background-color:rgba(22,101,116,.6)!important; }
html body .elementor .elementor-widget-constructum_page_title .page-title-container { background-image:url("/wp-content/uploads/2026/10/ortho-generic-banner-1.webp")!important; }
html body .nt-ortho-faq-photo img { width:100%; height:auto; object-fit:cover; }
html body .nt-ortho-problem-tile { position:relative; overflow:hidden; }
html body .nt-ortho-problem-decor { position:absolute; width:clamp(130px,13vw,190px); max-width:45%; right:0; top:50%; transform:translateY(-50%); pointer-events:none; z-index:1; }
html body .nt-ortho-problem-decor img { width:100%; height:auto; }
html body .nt-ortho-problem-tile .nt-tile-text { position:relative; z-index:2; }
/* 13: targeted caption, no changes to author/review text or factual rating. */
html body .nt-ortho-home-reviews .nt-ortho-rating { color:#fff!important; opacity:1!important; }
/* 17/21: only assigned outer containers; the white form card remains a white card. */
html body .elementor .nt-ortho-contact,
html body .elementor .nt-ortho-footer { background-color:var(--nt-ortho-accent-dark,#0f4c57)!important; }
html body .nt-ortho-contact-details a,
html body .nt-ortho-contact-details .constructum-heading-content,
html body .nt-ortho-contact-details .elementor-icon,
html body .nt-ortho-footer .nt-fcol-contacts a,
html body .nt-ortho-footer .nt-foval a { color:#d6f1f4!important; }
html body .nt-ortho-contact-details a:hover,
html body .nt-ortho-footer .nt-fcol-contacts a:hover,
html body .nt-ortho-footer .nt-foval a:hover { color:#fff!important; }
html body .nt-ortho-contact-details .elementor-icon svg,
html body .nt-ortho-footer .nt-foval svg { fill:currentColor!important; }
html body .nt-ortho-footer .elementor-social-icon { background-color:transparent!important; border-color:#d6f1f4!important; }
/* 18/33: file is assigned by guarded settings patch; no geography guessed in CSS. */
html body .nt-ortho-warsaw-decor { pointer-events:none; }
html body .nt-ortho-warsaw-decor img { object-fit:contain; }
html body .nt-ortho-warsaw-background { position:relative; isolation:isolate; }
html body .nt-ortho-warsaw-background:before { content:""; position:absolute; inset:0; background:url("/wp-content/uploads/2026/10/warsaw-boundary-dots.png") right bottom/contain no-repeat; opacity:.16; pointer-events:none; z-index:-1; }
html body .nt-ortho-social-links { display:inline-flex; align-items:center; gap:18px; }
html body .nt-ortho-social-links a { display:inline-flex; color:var(--nt-ortho-accent,#166574)!important; }
html body .nt-ortho-contact .nt-ortho-social-links a,
html body .nt-ortho-footer .nt-ortho-social-links a { color:#d6f1f4!important; }
html body .nt-ortho-social-links svg { width:22px; height:22px; }
html body .nt-ortho-map-credit { display:block; margin-top:12px; font-size:12px; line-height:1.4; }
html body .nt-ortho-footer .nt-ortho-map-credit a { color:#d6f1f4!important; }
html body .nt-ortho-address-map { width:100%; padding:40px max(20px,3vw); }
html body .nt-ortho-address-map iframe { display:block; width:100%; height:380px; border:0; border-radius:var(--constructum-radius-medium,25px); }
/* 25/28: native theme wide-price rows, exact strings, no table remains. */
html body .nt-prices--rows { width:100%; overflow:visible; }
html body .nt-prices--rows .price-item.price-item-type-wide { border:0; border-bottom:2px solid var(--constructum-standard-border-color,#dededb); border-radius:0; }
html body .nt-prices--rows .price-item.price-item-type-wide .price-item-inner { padding:30px 0; gap:28px; }
html body .nt-prices--rows .price-item.price-item-type-wide .price-item-title-price-wrapper { flex:1 1 50%; min-width:0; white-space:normal; padding:0; }
html body .nt-prices--rows .price-item.price-item-type-wide .price-wrapper { font-size:clamp(30px,3vw,48px); line-height:1.12; color:var(--nt-ortho-accent,#166574); overflow-wrap:anywhere; }
html body .nt-prices--rows .price-item.price-item-type-wide .price-item-title { font-size:22px; line-height:1.4; letter-spacing:inherit; }
html body .nt-prices--rows .price-item.price-item-type-wide .price-item-custom-fields { flex:0 1 22%; min-width:0; }
html body .nt-prices--rows .price-item.price-item-type-wide .price-item-button-container { min-width:0; flex:0 1 auto; }
html body .nt-prices--rows .price-item-button-container .constructum-button { color:#fff!important; background-color:var(--nt-ortho-accent,#166574)!important; padding:18px 28px!important; white-space:normal; line-height:1.4; }
html body .nt-prices--rows .price-item-button-container .constructum-button:hover { background-color:var(--nt-ortho-accent-dark,#0f4c57)!important; }
/* 26: theme carousel, number and descriptions preserved. */
html body .elementor .nt-ortho-steps { background:#e6e7e2!important; border-radius:var(--constructum-radius-medium,25px); }
html body .nt-ortho-steps .step-carousel-wrapper { background:#fff; border-radius:var(--constructum-radius-medium,25px); overflow:hidden; }
html body .nt-ortho-steps .elementor-widget-constructum_step_carousel .step-item { background:transparent; border:0; border-radius:0; padding:24px!important; }
html body .nt-ortho-steps .elementor-widget-constructum_step_carousel .step-item:hover { transform:none!important; }
html body .nt-ortho-steps .elementor-widget-constructum_step_carousel .step-bg-number { color:var(--nt-ortho-accent,#166574); font-size:84px; position:static; line-height:1; }
html body .nt-ortho-steps .elementor-widget-constructum_step_carousel .step-item-wrapper-top { padding:0!important; }
html body .nt-ortho-steps .elementor-widget-constructum_step_carousel .step-item-wrapper-top .step-content { margin-top:24px!important; }
html body .nt-ortho-steps .elementor-widget-constructum_step_carousel .step-item > .step-content { padding:18px 0 0!important; }
html body .nt-ortho-steps .owl-item + .owl-item .step-item > .step-content { border-left:1px solid var(--constructum-standard-border-color,#d6d8d3); padding-left:24px!important; }
/* 27: contacts/close mechanism unchanged; light logo supplied by module settings. */
html body .slide-sidebar-wrapper,
html body .slide-sidebar-wrapper:before { background-color:#e6e7e2!important; }
html body .slide-sidebar-wrapper .slide-sidebar-content,
html body .slide-sidebar-wrapper .side-widget-title,
html body .slide-sidebar-wrapper .field-label { color:var(--constructum-standard-dark-text-color,#1f1f1f)!important; }
html body .slide-sidebar-wrapper .constructum-contacts-widget-field a,
html body .slide-sidebar-wrapper a.wp-block-button__link { color:var(--nt-ortho-accent,#166574)!important; border-color:var(--nt-ortho-accent,#166574)!important; }
html body .slide-sidebar-wrapper .constructum-contacts-widget-field a:hover { color:var(--nt-ortho-accent-dark,#0f4c57)!important; }
html body .slide-sidebar-wrapper .slide-sidebar-close { color:#1f1f1f!important; }
@media(max-width:1279px) {
 html body .nt-ortho-home-hero .content-item:before,
 html body .nt-ortho-service-hero .content-item:before { background-image:linear-gradient(to bottom,rgba(22,101,116,0) 34%,rgba(22,101,116,.7) 55%,rgba(15,76,87,.94) 100%)!important; }
}
@media(max-width:991px) {
 html body .nt-prices--rows .price-item.price-item-type-wide .price-item-inner { flex-wrap:wrap; }
 html body .nt-prices--rows .price-item.price-item-type-wide .price-item-title-price-wrapper { flex-basis:60%; }
 html body .nt-prices--rows .price-item.price-item-type-wide .price-item-custom-fields { flex-basis:30%; }
}
@media(max-width:767px) {
 html body .nt-ortho-steps .owl-item + .owl-item .step-item > .step-content { border-left:0; padding-left:0!important; }
 html body .elementor .nt-ortho-team-summary { grid-template-columns:1fr; gap:24px; }
 html body .nt-ortho-home-team .nt-ortho-team,
 html body .nt-ortho-team-page .nt-ortho-team { grid-template-columns:1fr; gap:32px; }
 html body .nt-ortho-home-team .nt-ortho-team li { display:grid; grid-template-columns:100px minmax(0,1fr); column-gap:18px; }
 html body .nt-ortho-home-team .nt-ortho-team img { grid-row:1 / 5; width:100px; margin:0; }
 html body .nt-ortho-home-team .nt-ortho-team h3,
 html body .nt-ortho-home-team .nt-ortho-team p { grid-column:2; }
 html body .nt-prices--rows .price-item.price-item-type-wide .price-item-inner { display:block; text-align:left; padding:24px 0; }
 html body .nt-prices--rows .price-item.price-item-type-wide .price-item-custom-fields:not(:first-child),
 html body .nt-prices--rows .price-item.price-item-type-wide .price-item-button-container:not(:first-child) { margin-top:18px; }
 html body .nt-prices--rows .price-item-button-container .constructum-button { width:auto; max-width:100%; }
}

/* Ortho8082 pilot corrections. Append after nt-ortho-corrections.css; no READY rewrite. */
/* Restore the existing card component's layout after its inline styles were removed. */
html body .nt-ortho-home-services .nt-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
html body .nt-ortho-home-services a.nt-card { display:grid; grid-template-columns:55px minmax(0,1fr); gap:16px; min-width:0; padding:24px 0; text-decoration:none; color:#333; }
html body .nt-ortho-home-services .nt-card__t { display:block; color:var(--nt-ortho-accent,#166574); font-size:22px; line-height:1.3; font-weight:600; }
html body .nt-ortho-home-services .nt-card__d { display:block; margin-top:12px; font-size:16px; line-height:1.5; }
html body .nt-ortho-price-link a.constructum-button { display:inline-flex; align-items:center; justify-content:center; padding:14px 24px!important; border-radius:var(--constructum-radius-smallest,12px); line-height:1.4!important; }
html body .nt-ortho-price-link a.constructum-button:before,
html body .nt-ortho-price-link a.constructum-button:after { display:none!important; }
/* Compact the right-hand heading and leave a real interval before the intro. */
html body .nt-ortho-team-summary-text .elementor-widget-constructum_heading { margin-bottom:24px!important; }
html body .nt-ortho-team-summary-text h2.constructum-heading { font-size:clamp(32px,3vw,44px)!important; line-height:1.1!important; }
/* Native heading children have explicit theme colours; target the actual rendered span. */
html body .nt-ortho-home-reviews .nt-ortho-rating .constructum-heading,
html body .nt-ortho-home-reviews .nt-ortho-rating .constructum-heading-content,
html body .nt-ortho-home-reviews .nt-ortho-rating .word-inner { color:#fff!important; }
/* These two containers are the existing white form columns. Buttons keep their theme styles. */
html body .nt-ortho-contact .elementor-element-54fbcfd a:not(.constructum-button):not(.elementor-button),
html body .nt-ortho-contact .elementor-element-5c8426d a:not(.constructum-button):not(.elementor-button) { color:#166574!important; }
html body .nt-ortho-contact .elementor-element-54fbcfd a:not(.constructum-button):not(.elementor-button):hover,
html body .nt-ortho-contact .elementor-element-5c8426d a:not(.constructum-button):not(.elementor-button):hover { color:#0f4c57!important; }
/* Contact details are a separate dark column, including paragraphs and native heading. */
html body .nt-ortho-contact-details p,
html body .nt-ortho-contact-details ul,
html body .nt-ortho-contact-details li,
html body .nt-ortho-contact-details .constructum-heading,
html body .nt-ortho-contact-details .constructum-subheading,
html body .nt-ortho-contact-details .word-inner { color:#d6f1f4!important; }
/* SVG paths without an explicit fill otherwise fall back to black. */
html body .nt-tb-social svg,
html body .nt-tb-social svg path,
html body .nt-ortho-social-links svg,
html body .nt-ortho-social-links svg path,
html body .nt-ortho-contact-details .elementor-social-icon svg,
html body .nt-ortho-contact-details .elementor-social-icon svg path { fill:currentColor!important; }
/* The theme locally redefines its dark-text variable to white in the sidebar. */
html body .slide-sidebar-wrapper .slide-sidebar-content,
html body .slide-sidebar-wrapper .widget-wrapper,
html body .slide-sidebar-wrapper .side-widget-title,
html body .slide-sidebar-wrapper .constructum-contacts-widget-field,
html body .slide-sidebar-wrapper .field-label { color:#1f1f1f!important; }
html body .slide-sidebar-wrapper .slide-sidebar-content a { color:#166574!important; }
html body .slide-sidebar-wrapper .slide-sidebar-content a:hover { color:#0f4c57!important; }
/* Native inner-page background was sized to 100% and repeated on narrow screens. */
html body .elementor-widget-constructum_page_title .page-title-container,
html body .elementor-widget-constructum_page_title.elementor-element-4a1f220 .page-title-container { background-size:cover!important; background-repeat:no-repeat!important; }
html body .elementor-widget-constructum_page_title .page-title-bg,
html body .elementor-widget-constructum_page_title.elementor-element-4a1f220 .page-title-container .page-title-bg { background-image:linear-gradient(0deg,rgba(15,76,87,.96) 0%,rgba(15,76,87,.9) 38%,rgba(22,101,116,.55) 58%,rgba(22,101,116,0) 80%)!important; }
@media(max-width:1024px) {
 html body .nt-ortho-home-services .nt-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
/* Existing nt-ortho-blog.css forces the old review photograph on tablet/mobile. */
@media(max-width:991px) {
 html body .elementor-element-f197282 .elementor-element.elementor-element-f80d519,
 html body .elementor-element-f197282 .elementor-element.elementor-element-f80d519 > .elementor-motion-effects-container > .elementor-motion-effects-layer { background-image:url('/wp-content/uploads/2026/10/ortho-reviews-bg-1.webp')!important; }
}
@media(max-width:767px) {
 html body .nt-ortho-home-services .nt-cards { grid-template-columns:1fr; gap:12px; }
 html body .nt-ortho-home-services .nt-card__t { font-size:20px; }
 html body .nt-ortho-team-summary-text h2.constructum-heading { font-size:32px!important; }
}

/* Ortho8082 targeted contrast correction: existing dark contact/footer elements only. */
html body .nt-ortho-footer .nt-ortho-contact-details .elementor-element.elementor-element-b3d91a5 a[href^="tel:"] i,
html body .nt-ortho-footer .nt-ortho-contact-details .elementor-element.elementor-element-b3d91a5 a[href^="tel:"] i:before,
html body .nt-ortho-footer .elementor-element.elementor-element-e2c6b33 a[href^="tel:"] i,
html body .nt-ortho-footer .elementor-element.elementor-element-e2c6b33 a[href^="tel:"] i:before { color:#d6f1f4!important; }
html body #colophon .nt-ortho-footer .nt-ortho-contact-details .elementor-element.elementor-element-3292d93 a[href^="mailto:"],
html body #colophon .nt-ortho-footer .nt-ortho-contact-details .elementor-element.elementor-element-3292d93 a[href^="mailto:"] span { color:#d6f1f4!important; }

/* Four contact pages share this native social-icons widget; its FontAwesome I is not an SVG. */
html body .nt-ortho-contact-details .elementor-element.elementor-element-d3c0003 .elementor-social-icon i,
html body .nt-ortho-contact-details .elementor-element.elementor-element-d3c0003 .elementor-social-icon i:before { color:#d6f1f4!important; }

/* Home mobile only: keep decorative foot in the empty upper corner, above all copy. */
@media(max-width:767px) {
 html body .nt-ortho-problem-tile .nt-ortho-problem-decor { width:72px; max-width:20%; right:20px; top:20px; transform:none; }
}

/* One decoration position at every viewport. Reserve its vertical strip above the copy. */
html body .nt-ortho-problem-tile { padding-top:112px!important; }
html body .nt-ortho-problem-tile .nt-ortho-problem-decor { width:48px; max-width:20%; right:20px; top:20px; transform:none; }
