/* Keystone on Framework 1: class-only rules layered on the Framework 1 design system. */

/* 1. Main nav: Keystone has 8 top-level items (the template's demo has 5-6), so labels stay on one line and the
      item padding narrows as the bar narrows */
.brxe-nav-menu .bricks-nav-menu > li > a,
.brxe-nav-menu .bricks-nav-menu > li > .brx-submenu-toggle > a { white-space: nowrap; }
@media (max-width: 1360px) {
	.brxe-nav-menu .bricks-nav-menu > li { margin-inline: 0; }
	.brxe-nav-menu .bricks-nav-menu > li > a,
	.brxe-nav-menu .bricks-nav-menu > li > .brx-submenu-toggle > a { padding-inline: 10px; }
}
@media (max-width: 1200px) {
	.brxe-nav-menu .bricks-nav-menu > li > a,
	.brxe-nav-menu .bricks-nav-menu > li > .brx-submenu-toggle > a { padding-inline: 7px; font-size: 15px; }
}

/* 2. Header appointment button: one line (the template hides it at 1350px and below) */
.nav-buttons .btn-brand-primary { white-space: nowrap; }

/* 3. Footer logo: the template turns the footer navy on phones and expects a white logo; Keystone has only its
      full-colour logo, so it sits on a white rounded panel there */
@media (max-width: 767px) {
	.ks-footer-logo, .ks-footer-badges { background: var(--uro-white-color); padding: 14px 22px; border-radius: 40px; }
}

/* 4. Page hero (Potomac: 230px top padding under the overlaid header, 50px bottom; centred navy H1 60px/43px from
      the h1-text class; the swoosh sits behind at 70% width, top left) */
.fw-hero { position: relative; isolation: isolate; padding: 230px 0 50px; }
.fw-swoosh { position: absolute; top: 0; left: 0; width: 70%; z-index: -1; pointer-events: none; }
.fw-swoosh img, img.fw-swoosh { width: 100%; height: auto; }
.fw-hero-inner { align-items: center; text-align: center; }
.fw-title { color: var(--uro-primary); text-align: center; margin: 0; text-wrap: balance; }
.fw-hero-intro { max-width: 900px; margin-top: 16px; font-size: 20px; }
.fw-crumbs { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; list-style: none; margin: 0 0 14px;
	padding: 0; font-size: 14px; color: var(--uro-text-gray); }
.fw-crumbs li { margin: 0; }
.fw-crumbs a { color: var(--uro-text-gray); text-decoration: none; }
.fw-crumbs a:hover { color: var(--uro-primary); text-decoration: underline; }
.fw-crumbs .arrow { margin-left: 6px; }
.fw-crumbs .current { color: var(--uro-primary); }
@media (max-width: 767px) {
	.fw-hero { padding: 180px 0 30px; }
}

/* 5. Body: one wide content column, or content + sidebar */
.fw-body { padding: 30px 0 80px; }
.fw-wrap { row-gap: 40px; }
.fw-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; width: 100%; align-items: start; }
.fw-main { display: flex; flex-direction: column; gap: 40px; min-width: 0; }
@media (max-width: 991px) {
	.fw-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
	.fw-body { padding: 10px 0 60px; }
}

/* 6. Content block (Potomac outlines it; Keystone keeps it open, Matt 2026-10-07) */
.fw-card { width: 100%; }   /* Matt 2026-10-07: no border on the main content blocks, so no inset either */

/* 7. Copy inside cards (production's HTML fields) */
.fw-entry { color: #363636; }
.fw-entry > * > :first-child, .fw-entry > :first-child { margin-top: 0; }
.fw-entry h2, .fw-entry h3, .fw-entry h4, .fw-entry h5 { color: var(--uro-primary); line-height: 1.2; margin: 1.1em 0 .4em; }
.fw-entry h2 { font-size: var(--h2-text); }
.fw-entry h3 { font-size: var(--h3-text); }
.fw-entry h4 { font-size: var(--h4-text); }
.fw-entry h5 { font-size: var(--h5-text); }
.fw-entry p { margin: 0 0 1.2em; }
.fw-entry ul, .fw-entry ol { margin: 0 0 1.2em; padding-left: 1.4em; }
.fw-entry li { margin-bottom: .4em; }
.fw-entry a { color: var(--uro-primary); text-decoration: underline; }
.fw-entry a:hover { color: var(--uro-accent); }
.fw-entry img { max-width: 100%; height: auto; border-radius: 20px; }
.fw-entry .alignright { float: right; margin: 0 0 1em 1.5em; max-width: 45%; }
.fw-entry .alignleft { float: left; margin: 0 1.5em 1em 0; max-width: 45%; }
.fw-entry .aligncenter { display: block; margin: 0 auto 1em; }
.fw-entry::after { content: ""; display: block; clear: both; }
.fw-entry table { width: 100%; border-collapse: collapse; margin-bottom: 1.2em; }
.fw-entry td, .fw-entry th { border: 1px solid #d9dee5; padding: 8px 12px; text-align: left; vertical-align: top; }
.fw-entry iframe { max-width: 100%; }
.fw-entry .aau-embed, .fw-entry .video-wrapper { position: relative; aspect-ratio: 16 / 9; max-width: 100%; }
.fw-section + .fw-section, .fw-intro + .fw-section { margin-top: 10px; }
.fw-section > h3 { margin-top: 1.1em; }
@media (max-width: 767px) {
	.fw-entry .alignright, .fw-entry .alignleft { float: none; margin: 0 0 1em; max-width: 100%; }
	.fw-entry { overflow-wrap: anywhere; }
}

/* 8. FAQ / expand-collapse panels (Potomac's "Frequently Asked Questions": navy question rows with a chevron) */
.fw-faq { display: flex; flex-direction: column; width: 100%; }
.fw-faq-item { border-bottom: 1px solid #d9dee5; }
.fw-faq-q { display: flex; justify-content: space-between; align-items: center; gap: 20px; cursor: pointer; list-style: none;
	padding: 14px 0; font-size: var(--h4-text); font-weight: 700; line-height: 1.25; color: var(--uro-primary); }
.fw-faq-q::-webkit-details-marker { display: none; }
.fw-faq-q::after { content: "›"; font-size: 1.2em; line-height: 1; transition: transform .2s; }
.fw-faq-item[open] > .fw-faq-q::after { transform: rotate(90deg); }
.fw-faq-a { padding: 0 0 18px; }

/* 9. Sidebar cards */
.fw-side { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.fw-side-btns { display: flex; flex-direction: column; gap: 12px; }
.fw-side-btn .brxe-button { width: 100%; justify-content: center; text-align: center; white-space: normal; }
.fw-side-card { border: 1px solid var(--uro-primary); border-radius: 30px; padding: 24px; background: var(--uro-white-color); }
.fw-side-list { list-style: none; margin: 0; padding: 0; }
.fw-side-list li { margin: 0; }
.fw-side-list a { display: block; padding: 8px 0; color: var(--uro-primary); text-decoration: none; border-bottom: 1px solid #e6e9ee; line-height: 1.35; }
.fw-side-list li:last-child > a { border-bottom: 0; }
.fw-side-list a:hover { text-decoration: underline; }

/* 10. Tiles (hub child pages; Potomac's "Patients" cards) */
.fw-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; width: 100%; }
.fw-tile { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 120px; padding: 24px;
	border: 1px solid var(--uro-primary); border-radius: 30px; background: var(--uro-white-color); text-decoration: none;
	transition: background .2s, color .2s; }
.fw-tile-title { margin: 0; font-size: var(--h5-text); color: var(--uro-primary); line-height: 1.25; }
.fw-tile:hover { background: var(--uro-primary); }
.fw-tile:hover .fw-tile-title { color: var(--uro-white-color); }
@media (max-width: 991px) { .fw-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 478px) { .fw-tiles { grid-template-columns: minmax(0, 1fr); } }

/* 11. Layering: page sections after the hero sit above the hero's swoosh (which runs down behind them) */
.fw-hero ~ .brxe-section, .fw-hero ~ section { position: relative; z-index: 1; }

/* 12. Production opens many service pages with a long statement in an <h2>: lead size, not section-heading size */
.fw-intro > h2:first-child { font-size: var(--h5-text); line-height: 1.35; margin-top: 0; }

/* 14. Provider profile (reference template 1420: gradient panel, 35px radius, headshot with a 10px inset ring) */
.fw-crumbs-left { justify-content: flex-start; }
.fw-profile-grid { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 50px; width: 100%; align-items: start; }
.fw-profile-panel { display: flex; flex-direction: column; gap: 20px; padding: 20px; border-radius: 35px;
	background: linear-gradient(180deg, var(--uro-primary), var(--brand-secondary)); }
.fw-profile-photo { width: 100%; }
.fw-profile-photo img, img.fw-profile-photo { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: top center;
	border-radius: 20px; box-shadow: 0 0 0 10px rgba(255, 255, 255, .35); }
.fw-profile-reviews, .fw-profile-extra { background: var(--uro-white-color); border-radius: 30px; padding: 16px; }
.fw-profile-extra img { display: block; margin: 0 auto; border-radius: 0; }
.fw-profile-name { color: var(--uro-primary); margin: 0 0 20px; text-align: left; }
.fw-profile-bio { font-size: 18px; }
.fw-panel-light { width: 100%; background: var(--uro-light-color); border-radius: 50px; padding: 60px 100px; }
.fw-panel-light .fw-section:first-child > h3 { margin-top: 0; }
.fw-section-title { color: var(--uro-primary); text-align: center; margin: 0; }
.fw-quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; width: 100%; }
.fw-quote { margin: 0; padding: 30px; border: 1px solid var(--uro-primary); border-radius: 30px; font-style: italic; }
.fw-quote p:last-child { margin-bottom: 0; }
@media (max-width: 991px) {
	.fw-profile-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.fw-profile-panel { max-width: 380px; }
	.fw-quotes { grid-template-columns: minmax(0, 1fr); }
	.fw-panel-light { padding: 40px; }
}
@media (max-width: 767px) {
	.fw-panel-light { border-radius: 30px; padding: 24px 20px; }
	.fw-profile-panel { max-width: none; }
}
.fw-quote, .fw-quote * { font-family: inherit; }
.fw-quote { font-size: 17px; line-height: 1.6; color: #363636; }
.fw-testimonials .fw-section-title { text-align: left; }

/* 15. Location page (reference template 1430: contact card beside the map) */
.fw-location { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; width: 100%; align-items: stretch; }
.fw-location-card { display: flex; flex-direction: column; gap: 14px; }
.fw-location-photo img, img.fw-location-photo { width: 100%; height: auto; border-radius: 30px; display: block; }
.fw-location-name { color: var(--uro-primary); margin: 6px 0 0; font-size: var(--h3-text); }
.fw-fact { position: relative; padding-left: 30px; font-weight: 600; line-height: 1.4; }
.fw-fact::before { position: absolute; left: 0; top: 2px; font-family: "Font Awesome 6 Solid"; font-weight: 900;
	color: var(--uro-primary); font-size: 16px; }
.fw-fact-address::before { content: "\f3c5"; }
.fw-fact-phone::before { content: "\f095"; }
.fw-fact a { color: var(--uro-primary); }
.fw-hours { border-collapse: collapse; width: 100%; max-width: 360px; }
.fw-hours td { padding: 4px 12px 4px 0; border-bottom: 1px solid #e6e9ee; }
.fw-location-btns { margin-top: 6px; }
.fw-location-map { min-height: 420px; border-radius: 50px; overflow: hidden; border: 1px solid var(--uro-primary); }
.fw-map, .fw-map iframe { display: block; width: 100%; height: 100%; min-height: 420px; border: 0; }
@media (max-width: 991px) {
	.fw-location { grid-template-columns: minmax(0, 1fr); }
	.fw-location-map { border-radius: 30px; min-height: 320px; }
	.fw-map, .fw-map iframe { min-height: 320px; }
}

/* 16. Posts and archives */
.fw-post-date { margin: 12px 0 0; color: var(--uro-text-gray); font-size: 16px; text-align: center; }
.fw-post-keys { margin: 0 0 1.4em; }
.fw-post-key:last-child .fw-post-sep { display: none; }
.fw-post-section { scroll-margin-top: 140px; }
.fw-post-section + .fw-post-section { margin-top: 30px; padding-top: 30px; border-top: 1px solid #e6e9ee; }
.fw-archive-title { color: var(--uro-primary); font-size: var(--h4-text); margin: 0; }
.fw-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; width: 100%; }
.fw-post-card { border: 1px solid var(--uro-primary); border-radius: 30px; overflow: hidden; background: var(--uro-white-color); }
.fw-post-card-img, .fw-post-card-img img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.fw-post-card-body { display: flex; flex-direction: column; gap: 10px; padding: 24px; flex-grow: 1; }
.fw-post-card-body .fw-post-date { text-align: left; margin: 0; font-size: 14px; }
.fw-post-card-title { margin: 0; font-size: var(--h5-text); line-height: 1.25; }
.fw-post-card-title a { color: var(--uro-primary); text-decoration: none; }
.fw-post-card-title a:hover { text-decoration: underline; }
.fw-post-card-body .brxe-button { align-self: flex-start; margin-top: auto; }
@media (max-width: 991px) { .fw-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .fw-cards { grid-template-columns: minmax(0, 1fr); } }

/* 17. Page blocks: link cards (Potomac's "Patients" cards), feature rows, forms, buttons inside copy */
.fw-link-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; width: 100%; }
.fw-link-card { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; padding: 30px 26px;
	border: 1px solid var(--uro-primary); border-radius: 30px; background: var(--uro-white-color); }
.fw-link-card-title { margin: 0; font-size: var(--h5-text); line-height: 1.25; }
.fw-link-card-title a { color: var(--uro-primary); text-decoration: none; }
.fw-link-card-title a:hover { text-decoration: underline; }
.fw-link-card .fw-entry p:last-child { margin-bottom: 0; }
.fw-link-card .brxe-button { margin-top: auto; }
@media (max-width: 991px) { .fw-link-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .fw-link-cards { grid-template-columns: minmax(0, 1fr); } }

.fw-split-list { display: flex; flex-direction: column; gap: 24px; width: 100%; }
.fw-split { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 36px; align-items: center; padding: 30px 40px;
	border: 1px solid var(--uro-primary); border-radius: 50px; background: var(--uro-white-color); }
.fw-split-rev { grid-template-columns: minmax(0, 1fr) 160px; }
.fw-split-rev .fw-split-img { order: 2; }
.fw-split-img, .fw-split-img img { width: 160px; height: auto; display: block; }
.fw-split-text h3 { margin-top: 0; }
.fw-split-text p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
	.fw-split, .fw-split-rev { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding: 24px 20px; border-radius: 30px; }
	.fw-split-rev .fw-split-img { order: 0; }
	.fw-split-img, .fw-split-img img { width: 110px; }
}

.fw-form .gform_wrapper { margin: 0; }
.fw-entry a.btn, .fw-entry a.fusion-button { display: inline-flex; align-items: center; justify-content: center; padding: 12px 30px;
	border-radius: 100px; background: var(--uro-primary); color: var(--uro-white-color); text-decoration: none; font-weight: 700;
	text-transform: uppercase; letter-spacing: .5px; font-size: 15px; transition: background .2s; }
.fw-entry a.btn:hover, .fw-entry a.fusion-button:hover { background: var(--uro-accent); color: var(--uro-white-color); }

/* 18. Gravity Forms (legacy markup, GF's own CSS off): Framework 1 fields - rounded inputs, navy labels, pill submit.
       The honeypot field must never show. */
.gform_wrapper .gform_validation_container, .gform_wrapper .gfield--type-honeypot,
.gform_wrapper .gform_hidden, .gform_wrapper input[type=hidden] { display: none !important; position: absolute !important; left: -9999px !important; }
.gform_wrapper .gform_fields { display: flex; flex-wrap: wrap; gap: 18px 20px; list-style: none; margin: 0; padding: 0; }
.gform_wrapper .gfield { width: 100%; margin: 0; padding: 0; list-style: none; }
.gform_wrapper .gfield.gf_left_half, .gform_wrapper .gfield.gf_right_half { width: calc(50% - 10px); }
.gform_wrapper .gfield_label, .gform_wrapper legend.gfield_label { display: block; margin: 0 0 6px; font-weight: 700; font-size: 16px; color: var(--uro-primary); }
.gform_wrapper .gfield_required { color: #b42318; margin-left: 2px; }
.gform_wrapper input[type=text], .gform_wrapper input[type=email], .gform_wrapper input[type=tel], .gform_wrapper input[type=number],
.gform_wrapper input[type=url], .gform_wrapper input[type=date], .gform_wrapper select, .gform_wrapper textarea {
	width: 100%; padding: 12px 18px; border: 1px solid var(--uro-primary); border-radius: 30px; background: var(--uro-white-color);
	font: inherit; font-size: 16px; color: #363636; box-sizing: border-box; }
.gform_wrapper textarea { border-radius: 20px; min-height: 160px; resize: vertical; }
.gform_wrapper input:focus, .gform_wrapper select:focus, .gform_wrapper textarea:focus { outline: 2px solid var(--brand-secondary); outline-offset: 1px; }
.gform_wrapper .ginput_complex { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.gform_wrapper .ginput_complex > span { flex: 1 1 200px; display: flex; flex-direction: column-reverse; gap: 4px; }
.gform_wrapper .ginput_complex label, .gform_wrapper .gfield_description { font-size: 14px; color: var(--uro-text-gray); }
.gform_wrapper .gfield_checkbox, .gform_wrapper .gfield_radio { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.gform_wrapper .gchoice { display: flex; align-items: flex-start; gap: 10px; }
.gform_wrapper .gchoice input { margin-top: 4px; accent-color: var(--uro-primary); }
.gform_wrapper .gform_footer { margin-top: 24px; }
.gform_wrapper .gform_footer input[type=submit], .gform_wrapper .gform_button {
	display: inline-flex; padding: 14px 36px; border: 0; border-radius: 100px; cursor: pointer; background: var(--uro-primary);
	color: var(--uro-white-color); font: inherit; font-weight: 700; font-size: 16px; text-transform: uppercase; letter-spacing: .5px; transition: background .2s; }
.gform_wrapper .gform_footer input[type=submit]:hover, .gform_wrapper .gform_button:hover { background: var(--uro-accent); }
.gform_wrapper .validation_error, .gform_wrapper .gform_validation_errors { margin-bottom: 18px; padding: 14px 18px; border: 1px solid #b42318; border-radius: 20px; color: #b42318; }
.gform_wrapper .gfield_error input, .gform_wrapper .gfield_error textarea, .gform_wrapper .gfield_error select { border-color: #b42318; }
.gform_wrapper .validation_message { margin-top: 6px; font-size: 14px; color: #b42318; }
.gform_wrapper .gform_heading { margin-bottom: 20px; }
.gform_confirmation_message { padding: 20px; border-radius: 20px; background: var(--uro-light-color); }
@media (max-width: 767px) {
	.gform_wrapper .gfield.gf_left_half, .gform_wrapper .gfield.gf_right_half { width: 100%; }
}

/* 19. A standalone image block (production's image-only paragraph) */
.fw-figure { display: block; width: 100%; max-width: 640px; margin: 0 auto; }
.fw-figure img { display: block; width: 100%; height: auto; border-radius: 50px; }
@media (max-width: 767px) { .fw-figure img { border-radius: 30px; } }

/* 20. Section headings inside page bodies */
.fw-wrap > .fw-section-title { width: 100%; text-align: left; margin-top: 10px; }

/* 21. Service area cards (/services/: image, title, excerpt, "See All ..." button) */
.fw-feature-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; width: 100%; }
.fw-feature-card { display: flex; flex-direction: column; border: 1px solid var(--uro-primary); border-radius: 50px; overflow: hidden; background: var(--uro-white-color); }
.fw-feature-img, .fw-feature-img img { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }
.fw-feature-body { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 30px 36px 36px; flex-grow: 1; }
.fw-feature-title { margin: 0; font-size: var(--h4-text); line-height: 1.2; }
.fw-feature-title a { color: var(--uro-primary); text-decoration: none; }
.fw-feature-body p { margin: 0; }
.fw-feature-body .brxe-button { margin-top: auto; }
@media (max-width: 767px) {
	.fw-feature-cards { grid-template-columns: minmax(0, 1fr); }
	.fw-feature-card { border-radius: 30px; }
	.fw-feature-body { padding: 22px 20px 26px; }
}

/* 22. Filter bars (news categories, provider types, video care areas) */
.fw-filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; width: 100%; }
.fw-filter-label { font-weight: 700; color: var(--uro-primary); margin-right: 4px; }
.fw-filter { display: inline-flex; align-items: center; padding: 8px 20px; border: 1px solid var(--uro-primary); border-radius: 100px;
	background: var(--uro-white-color); color: var(--uro-primary); font: inherit; font-size: 15px; font-weight: 600; line-height: 1.2;
	cursor: pointer; text-decoration: none; transition: background .2s, color .2s; }
.fw-filter:hover, .fw-filter.is-active { background: var(--uro-primary); color: var(--uro-white-color); }
[data-ks-grid] > [hidden] { display: none !important; }

/* 23. People cards (/providers/: Potomac's directory cards - round headshot over an outlined card) */
.fw-people { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 60px 20px; width: 100%; padding-top: 50px; }
.fw-person { position: relative; display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 80px 20px 26px;
	border: 1px solid var(--uro-primary); border-radius: 20px; background: var(--uro-white-color); text-align: center; text-decoration: none;
	transition: box-shadow .2s; }
.fw-person:hover { box-shadow: 0 10px 30px rgba(0, 0, 0, .12); }
.fw-person-img, .fw-person-img img { position: absolute; top: -50px; left: 50%; transform: translateX(-50%); width: 120px; height: 120px;
	border-radius: 50%; object-fit: cover; object-position: top center; display: block; border: 1px solid var(--uro-primary); background: var(--uro-light-color); }
.fw-person-img img { position: static; transform: none; border: 0; }
.fw-person-name { margin: 0; font-size: var(--h5-text); line-height: 1.25; color: var(--uro-primary); }
@media (max-width: 1100px) { .fw-people { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .fw-people { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 14px; } }
@media (max-width: 420px) { .fw-person { padding: 76px 12px 20px; } .fw-person-img, .fw-person-img img { width: 104px; height: 104px; } }

/* 24. Contact: appointment card, office locator (Potomac's "Find A Location": map + search card), office cards */
.fw-contact { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.fw-contact-line p { margin: 0; color: var(--uro-primary); }
.fw-locator { width: 100%; }
.fw-locator #wpsl-wrap { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 3fr); grid-template-areas: "map search" "map list";
	grid-template-rows: auto 1fr; gap: 20px; }
.fw-locator #loc-map { grid-area: map; min-height: 480px; border-radius: 30px; overflow: hidden; border: 1px solid var(--uro-primary); }
.fw-locator #wpsl-gmap { width: 100%; height: 100%; min-height: 480px; }
.fw-locator .wpsl-search { grid-area: search; padding: 24px; border: 1px solid var(--uro-primary); border-radius: 20px; }
.fw-locator #wpsl-result-list { grid-area: list; max-height: 420px; overflow: auto; }
.fw-locator form { display: flex; flex-direction: column; gap: 12px; margin: 0; }
.fw-locator label { display: block; margin-bottom: 4px; font-weight: 700; font-size: 15px; color: var(--uro-primary); }
.fw-locator input[type=text], .fw-locator select { width: 100%; padding: 10px 16px; border: 1px solid var(--uro-primary); border-radius: 30px; font: inherit; font-size: 15px; box-sizing: border-box; background: var(--uro-white-color); }
.fw-locator .wpsl-dropdown select { display: block !important; }
.fw-locator .wpsl-selected-item, .fw-locator .wpsl-dropdown > div { display: none !important; }
.fw-locator #wpsl-search-btn { align-self: center; padding: 10px 30px; border: 0; border-radius: 100px; background: var(--uro-primary); color: var(--uro-white-color);
	font: inherit; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; cursor: pointer; }
.fw-locator #wpsl-search-btn:hover { background: var(--uro-accent); }
.fw-locator #wpsl-stores ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.fw-locator #wpsl-stores li { padding: 16px 18px; border: 1px solid #d9dee5; border-radius: 20px; font-size: 15px; line-height: 1.45; }
.fw-locator #wpsl-stores li strong, .fw-locator #wpsl-stores li a { color: var(--uro-primary); }
.fw-locator #wpsl-direction-details { display: none; }
@media (max-width: 991px) {
	.fw-locator #wpsl-wrap { grid-template-columns: minmax(0, 1fr); grid-template-areas: "search" "map" "list"; }
	.fw-locator #loc-map, .fw-locator #wpsl-gmap { min-height: 320px; }
	.fw-locator #wpsl-result-list { max-height: none; }
}
.fw-loc-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; width: 100%; }
.fw-loc-card { display: flex; flex-direction: column; border: 1px solid var(--uro-primary); border-radius: 30px; overflow: hidden; text-decoration: none; background: var(--uro-white-color); transition: box-shadow .2s; }
.fw-loc-card:hover { box-shadow: 0 10px 30px rgba(0, 0, 0, .12); }
.fw-loc-img, .fw-loc-img img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.fw-loc-title { margin: 0; padding: 18px 20px 22px; text-align: center; font-size: var(--h5-text); color: var(--uro-primary); }
@media (max-width: 767px) { .fw-loc-cards { grid-template-columns: minmax(0, 1fr); } }

/* 25. Video popup (production opens videos in a lightbox) */
.ks-video-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(0, 0, 0, .8); }
.ks-video-modal[hidden] { display: none; }
.ks-video-modal .ks-video-frame { position: relative; width: min(960px, 100%); aspect-ratio: 16 / 9; background: #000; border-radius: 12px; overflow: hidden; }
.ks-video-modal iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ks-video-modal .ks-video-close { position: absolute; top: 14px; right: 18px; width: 44px; height: 44px; border: 0; border-radius: 50%; cursor: pointer;
	background: var(--uro-white-color); color: var(--uro-primary); font-size: 26px; line-height: 1; }

/* 26. Buttons inside content cards keep button colours; locator result lines stack */
.fw-entry .brxe-button, .fw-entry .brxe-button:hover { color: var(--uro-white-color); text-decoration: none; }
.fw-locator .wpsl-store-location > p > strong, .fw-locator .wpsl-store-location > p > span { display: block; }
.fw-locator .wpsl-store-location p { margin: 0 0 8px; }

/* 27. Homepage (Potomac's homepage sections) */
.fw-center { text-align: center; }
.fw-home-h2 { color: var(--uro-primary); margin: 0; width: 100%; }
.fw-home-hero { position: relative; isolation: isolate; padding: 200px 0 40px; overflow: hidden; }
.fw-home-hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; min-height: 460px; }
.fw-home-title { color: var(--uro-primary); margin: 0 0 18px; font-size: clamp(44px, 5.6vw, 80px); line-height: 1.05; text-wrap: balance; }
.fw-slide { display: none; flex-direction: column; align-items: flex-start; gap: 14px; }
.fw-slide.is-active { display: flex; animation: fwFade .5s ease; }
.fw-slide-title { margin: 0; font-size: var(--h3-text); color: var(--uro-primary); line-height: 1.2; }
.fw-slide-text { margin: 0; font-size: 18px; line-height: 1.7; max-width: 560px; }
.fw-slide-dots { display: flex; gap: 10px; margin-top: 26px; }
.fw-slide-dot { width: 14px; height: 14px; padding: 0; border: 2px solid var(--uro-primary); border-radius: 50%; background: transparent; cursor: pointer; }
.fw-slide-dot.is-active { background: var(--uro-primary); }
.fw-home-hero-media { position: relative; align-self: stretch; min-height: 420px; }
.fw-slide-img { position: absolute; inset: 0; opacity: 0; transition: opacity .6s ease; }
.fw-slide-img.is-active { opacity: 1; }
.fw-slide-img img, img.fw-slide-img { width: 100%; height: 100%; object-fit: cover; border-radius: 60% 0 0 60% / 100% 0 0 100%;
	box-shadow: -14px 0 0 var(--brand-secondary); }
@keyframes fwFade { from { opacity: 0; } to { opacity: 1; } }
@media (min-width: 1281px) { .fw-home-hero-media { margin-right: calc((1280px - 100vw) / 2); } }
@media (max-width: 991px) {
	.fw-home-hero { padding-top: 170px; }
	.fw-home-hero-inner { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	.fw-home-hero-media { min-height: 300px; order: -1; }
	.fw-slide-img img, img.fw-slide-img { border-radius: 30px; box-shadow: none; }
}

.fw-home-band { padding: 40px 0; }
.fw-home-last { padding-bottom: 80px; }
.fw-feature-panel { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); width: 100%; overflow: hidden;
	border-radius: 50px; background: var(--uro-primary); color: var(--uro-white-color); }
.fw-feature-panel-img, .fw-feature-panel-img img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; display: block;
	border-radius: 0 50% 50% 0 / 0 100% 100% 0; box-shadow: 14px 0 0 var(--brand-secondary); }
.fw-feature-panel-text { padding: 50px 50px 50px 60px; align-self: center; }
.fw-feature-panel-text, .fw-feature-panel-text p, .fw-feature-panel-text strong { color: var(--uro-white-color); }
.fw-feature-panel-text p:first-child { font-size: var(--h5-text); font-weight: 700; line-height: 1.35; }
.fw-feature-panel-text a { color: var(--brand-secondary); }
@media (max-width: 991px) {
	.fw-feature-panel { grid-template-columns: minmax(0, 1fr); border-radius: 30px; }
	.fw-feature-panel-img, .fw-feature-panel-img img { min-height: 220px; max-height: 280px; border-radius: 0; box-shadow: none; }
	.fw-feature-panel-text { padding: 26px 22px 30px; }
}

.fw-home-services { padding: 70px 0 0; background: linear-gradient(180deg, var(--uro-white-color) 0%, #c9d0da 30%, var(--uro-primary) 62%); }
.fw-home-services .fw-wrap { row-gap: 50px; }
.fw-home-services-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 50px; width: 100%; align-items: end; }
.fw-home-services-list { display: flex; flex-direction: column; gap: 22px; padding-bottom: 70px; }
.fw-home-service-title { margin: 0 0 4px; font-size: var(--h4-text); }
.fw-home-service-title a { color: var(--uro-white-color); text-decoration: none; }
.fw-home-service-title a:hover { text-decoration: underline; }
.fw-home-service-text { margin: 0; color: rgba(255, 255, 255, .85); }
.fw-home-services-img, .fw-home-services-img img { width: 100%; display: block; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 50px 50px 0 0; }
@media (max-width: 991px) {
	.fw-home-services { background: linear-gradient(180deg, var(--uro-white-color) 0%, var(--uro-primary) 18%); padding-top: 50px; }
	.fw-home-services .fw-home-h2 { color: var(--uro-primary); }
	.fw-home-services-row { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.fw-home-services-list { padding-bottom: 0; }
	.fw-home-services-img, .fw-home-services-img img { border-radius: 30px 30px 0 0; }
}

.fw-home-numbers { padding: 70px 0 40px; }
.fw-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; width: 100%; }
.fw-stat { padding: 30px 24px; border: 1px solid var(--uro-primary); border-radius: 30px; text-align: center; }
.fw-stat-num { margin: 0 0 6px; font-size: clamp(40px, 4.4vw, 60px); font-weight: 700; line-height: 1; color: var(--uro-primary); font-variant-numeric: tabular-nums; }
.fw-stat-label p { margin: 0; }
.fw-stat-label sup { font-size: .75em; }
@media (max-width: 767px) { .fw-stats { grid-template-columns: minmax(0, 1fr); } }

.fw-icon-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; width: 100%; }
.fw-icon-card { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 30px 26px; text-align: center;
	border: 1px solid var(--uro-primary); border-radius: 30px; }
.fw-icon-card-img, .fw-icon-card-img img { width: 90px; height: 90px; display: block; }
.fw-icon-card-title { margin: 0; color: var(--uro-primary); font-size: var(--h5-text); }
.fw-icon-card p { margin: 0; }
@media (max-width: 767px) { .fw-icon-cards { grid-template-columns: minmax(0, 1fr); } }

.fw-cta-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: 100%; overflow: hidden; border-radius: 65px;
	border: 1px solid #e6e9ee; background: linear-gradient(180deg, #f6f6f6, #fff); }
.fw-cta-panel-text { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 50px; align-self: center; }
.fw-cta-panel-text p { margin: 0; }
.fw-cta-panel-img, .fw-cta-panel-img img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; display: block;
	border-radius: 50% 0 0 50% / 100% 0 0 100%; box-shadow: -14px 0 0 var(--brand-secondary); }
@media (max-width: 991px) {
	.fw-cta-panel { grid-template-columns: minmax(0, 1fr); border-radius: 30px; }
	.fw-cta-panel-text { padding: 26px 22px; }
	.fw-cta-panel-img, .fw-cta-panel-img img { border-radius: 0; box-shadow: none; min-height: 220px; }
}
.fw-home-people { padding: 40px 0; }
.fw-side-title { margin: 0 0 6px; font-size: 14px; letter-spacing: 1px; text-transform: uppercase; color: var(--uro-text-gray); }
.fw-home-service-more { margin: 6px 0 0; }
.fw-home-service-more a { color: var(--brand-secondary); font-weight: 700; text-transform: uppercase; letter-spacing: .5px; font-size: 14px; text-decoration: none; }
.fw-home-service-more a:hover { text-decoration: underline; }

/* 28. About page: no borders at all (Matt 2026-10-07) - the feature rows sit open, aligned with the copy */
.page-id-7698 .fw-split { border: 0; border-radius: 0; padding: 0; }

/* 29. Copyright bar: the footer-text class turns text white on phones (for the navy footer), but the copyright bar
       stays light, so its line keeps the grey there */
@media (max-width: 767px) {
	#brx-footer .brxe-section:last-of-type .footer-text, #brx-footer .brxe-section:last-of-type .footer-text * { color: var(--uro-text-gray); }
}

/* 30. Directory app (Framework 1 code element, AUNC layout): card buttons keep white text over the theme's link colour */
.listing-buttons .view-link, .listing-buttons .view-link:hover { color: var(--uro-white-color); text-decoration: none; }
.fw-dir-intro p { margin: 0; }

/* 31. /contact/ locations (Matt 2026-10-07: friendlier layout). The Framework 1 app keeps its functions; layout only:
       search as one bar above a full-width map, the one-option type filter hidden, office cards in an even 3-column
       grid with the photo across the top of each card (not a cropped circle). */
.fw-locdir .app-wrapper { gap: 16px; }
.fw-locdir .app-wrapper .flex-30 { order: -1; flex: 0 0 100%; max-width: 100%; }
.fw-locdir .app-wrapper .flex-70 { flex: 0 0 100%; max-width: 100%; }
.fw-locdir #mapContainer { height: 440px; }
.fw-locdir #map { border-radius: 30px; }
.fw-locdir #filterWrap { height: auto; padding: 18px 22px; border-radius: 30px; border-width: 1px; background: var(--uro-light-color); border-color: transparent; }
.fw-locdir #filterBar { flex-wrap: nowrap; gap: 14px; }
.fw-locdir #searchBar { flex-direction: row; align-items: center; gap: 14px; flex: 1 1 auto; }
.fw-locdir #searchBar > .filter-label { flex: 0 0 auto; margin: 0; white-space: nowrap; font-size: var(--h5-text); }
.fw-locdir #searchBar .search-input { flex: 1 1 auto; }
.fw-locdir #searchInput, .fw-locdir #radiusFilter { background: var(--uro-white-color); height: 46px; font-size: 15px !important; padding: 0 18px; }
.fw-locdir #searchInput::placeholder { font-size: 15px; }
.fw-locdir #radiusFilter { flex: 0 0 150px; width: 150px; margin: 0; }
.fw-locdir #searchBar .last-name-filter, .fw-locdir #typeFilter { display: none; }
.fw-locdir #resetFilters { flex: 0 0 auto; height: 46px; padding: 0 24px; border-radius: 100px; white-space: nowrap; }
.fw-locdir #searchInfo { margin: 6px 0 0; font-size: 16px; color: var(--uro-text-gray); }
.fw-locdir #listings { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 24px 0 20px; }
.fw-locdir .listing-card { flex: none; margin: 0; padding: 0; overflow: hidden; align-items: stretch; justify-content: flex-start;
	border: 1px solid #d9dee5; border-radius: 30px; box-shadow: 0 8px 24px rgba(43, 57, 78, .08); text-align: left; transition: box-shadow .2s, transform .2s; }
.fw-locdir .listing-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(43, 57, 78, .14); }
.fw-locdir .listing-card img { width: 100%; height: auto; aspect-ratio: 16 / 10; margin: 0; border: 0; border-radius: 0; object-fit: cover; display: block; }
.fw-locdir .listing-card .listing-content { padding: 22px 24px 0; gap: 8px; align-items: flex-start; }
.fw-locdir .listing-card .provider-grid-name { margin: 0 0 4px; font-size: var(--h5-text); color: var(--uro-primary); }
.fw-locdir .listing-card p { font-size: 16px; line-height: 1.5; }
.fw-locdir .listing-card .address { position: relative; padding-left: 26px; }
.fw-locdir .listing-card .listing-phone-link { position: relative; padding-left: 26px; font-weight: 700; }
.fw-locdir .listing-card .address::before, .fw-locdir .listing-card .listing-phone-link::before {
	position: absolute; left: 0; top: 2px; font-family: "Font Awesome 6 Solid"; font-weight: 900; font-size: 15px; color: var(--uro-primary); }
.fw-locdir .listing-card .address::before { content: "\f3c5"; }
.fw-locdir .listing-card .listing-phone-link::before { content: "\f095"; }
.fw-locdir .listing-card .distance:empty { display: none; }
.fw-locdir .listing-card .listing-buttons { margin: 0; padding: 18px 24px 24px; }
.fw-locdir .listing-card .view-link { font-size: 15px; padding: 10px 26px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
@media (max-width: 991px) {
	.fw-locdir #filterBar { flex-wrap: wrap; }
	.fw-locdir #searchBar { flex-wrap: wrap; }
	.fw-locdir #searchBar > .filter-label { flex-basis: 100%; }
	.fw-locdir #searchBar .search-input { flex: 1 1 260px; }
	.fw-locdir #listings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.fw-locdir #searchBar { flex-direction: column; align-items: stretch; }
	.fw-locdir #radiusFilter { width: 100%; flex-basis: auto; }
	.fw-locdir #resetFilters { width: 100%; }
	.fw-locdir #mapContainer { height: 320px; }
	.fw-locdir #listings { grid-template-columns: minmax(0, 1fr); }
	.fw-locdir .listing-card p, .fw-locdir .listing-buttons a { font-size: 16px !important; }
	.fw-locdir .listing-card .provider-grid-name { font-size: var(--h5-text) !important; }
}
@media (max-width: 600px) {
	.fw-locdir #searchBar .search-input { flex: 0 0 auto; }   /* the row's flex-basis would become a height when stacked */
	.fw-locdir #searchBar > .filter-label { flex-basis: auto; }
}

/* 32. Service sidebar menu (Matt 2026-10-07): the current page's whole branch opens (all conditions on a condition page,
       all procedures on a procedure page, the current procedure's postoperative page); other branches stay closed.
       "Services" is the card label; the open branch is indented on a light-blue guide line; the current page is marked. */
.fw-side-menu { padding: 22px 18px; }
.fw-side-nav, .fw-side-nav ul { list-style: none; margin: 0; padding: 0; }
.fw-side-nav li { margin: 0; }
.fw-side-nav > li.parent { padding: 0 10px 8px; margin-bottom: 6px; border-bottom: 1px solid #e6e9ee; }
.fw-side-nav > li.parent > a { padding: 0; font-size: 14px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--uro-text-gray); }
.fw-side-nav > li.parent > a:hover { background: none; color: var(--uro-primary); }
.fw-side-nav a { position: relative; display: block; padding: 8px 30px 8px 10px; border-radius: 12px; color: var(--uro-primary);
	text-decoration: none; line-height: 1.3; font-size: 16px; transition: background .15s, color .15s; }
.fw-side-nav a:hover { background: var(--uro-light-color); }
.fw-side-nav > li:not(.parent) > a { font-weight: 600; }
.fw-side-nav li ul.children { display: none; margin: 4px 0 6px 12px; padding-left: 8px; border-left: 2px solid var(--brand-secondary); }
.fw-side-nav li.current_page_item > ul.children, .fw-side-nav li.current_page_ancestor > ul.children { display: block; }
.fw-side-nav ul.children a { font-size: 15px; font-weight: 400; padding-top: 6px; padding-bottom: 6px; }
.fw-side-nav li.current_page_ancestor > a { font-weight: 700; }
.fw-side-nav li.current_page_item > a { background: var(--uro-primary); color: var(--uro-white-color); font-weight: 700; }

/* 33. /about/ layout (Matt 2026-10-07): announcement split beside the merger photo, features as a 3-column icon row
       on a soft panel; no borders anywhere on the page */
.fw-about-intro { padding-bottom: 40px; }
.fw-about-split { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 60px; align-items: center; width: 100%; }
.fw-eyebrow { margin: 0 0 14px; font-size: 15px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--uro-accent); }
.fw-about-h2 { margin: 0 0 18px; color: var(--uro-primary); font-size: var(--h2-text); line-height: 1.15; text-wrap: balance; }
.fw-about-p { margin: 0 0 18px; font-size: 19px; line-height: 1.7; max-width: 620px; }
.fw-about-link { margin: 0; font-size: 18px; color: var(--uro-primary); }
.fw-about-link a { color: var(--uro-primary); text-decoration: underline; text-underline-offset: 3px; }
.fw-about-link a:hover { color: var(--uro-accent); }
.fw-about-img, .fw-about-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 60% center;
	border-radius: 50% 0 0 50% / 70% 0 0 70%; box-shadow: -14px 0 0 var(--brand-secondary); }
.fw-about-features { padding-top: 20px; }
.fw-about-panel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; width: 100%; padding: 56px 50px;
	border-radius: 50px; background: var(--uro-light-color); }
.fw-about-feature { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.fw-about-icon, .fw-about-icon img { width: 96px; height: 96px; display: block; }
.fw-about-feature-title { margin: 6px 0 0; color: var(--uro-primary); font-size: var(--h4-text); }
.fw-about-feature p { margin: 0; font-size: 17px; line-height: 1.7; }
@media (max-width: 991px) {
	.fw-about-split { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.fw-about-img, .fw-about-img img { border-radius: 30px; box-shadow: none; aspect-ratio: 16 / 9; }
	.fw-about-panel { grid-template-columns: minmax(0, 1fr); gap: 40px; padding: 40px 24px; border-radius: 30px; }
}
/* the whole provider card opens the profile (ks app click handler) */
.page-id-7696 #listings .listing-card { cursor: pointer; }
.page-id-7696 #listings .listing-card:hover .provider-grid-name { text-decoration: underline; }
/* /services/ cards without photos (Matt 2026-10-07): text cards on the light panel colour, even heights */
.fw-feature-card { background: var(--uro-light-color); border-color: transparent; }
.fw-feature-body { padding: 36px 40px 40px; }

/* 34. Sidebar sections expand and collapse (Matt 2026-10-07): ks-fw1.js adds a toggle button to every item with sub-pages;
       the current branch starts open. Without the script, the current branch is simply open (section 32). */
.fw-side-nav li { position: relative; }
.fw-side-nav li.page_item_has_children > a { padding-right: 42px; }
.fw-side-nav .fw-sub-toggle { position: absolute; top: 3px; right: 4px; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 10px;
	background: transparent; color: var(--uro-text-gray); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.fw-side-nav .fw-sub-toggle::before { content: "\f054"; font-family: "Font Awesome 6 Solid"; font-weight: 900; font-size: 11px; transition: transform .2s; }
.fw-side-nav .fw-sub-toggle:hover { background: var(--uro-light-color); color: var(--uro-primary); }
.fw-side-nav .fw-sub-toggle:focus-visible { outline: 2px solid var(--brand-secondary); outline-offset: 1px; }
.fw-side-nav li.is-open > .fw-sub-toggle::before { transform: rotate(90deg); }
.fw-side-nav li.current_page_item > .fw-sub-toggle { color: var(--uro-white-color); }
.fw-side-nav li.current_page_item > .fw-sub-toggle:hover { background: rgba(255, 255, 255, .15); }
.fw-side-nav ul.children .fw-sub-toggle { top: 1px; }
.fw-side-nav.js-ready li > ul.children { display: none; }
.fw-side-nav.js-ready li.is-open > ul.children { display: block; }

/* 35. Homepage hero, desktop (Matt 2026-10-07: like the other Framework sites, the photo must not end in a hard edge):
       the rotating photo bleeds off the top and right of the screen, behind the header; its left and bottom edges are a
       large soft curve that fades into the page; a light-blue arc runs along its lower right (Potomac / UA hero). */
@media (min-width: 992px) {
	.fw-home-hero { padding: 230px 0 120px; }
	.fw-home-hero-inner { grid-template-columns: minmax(0, 1fr); min-height: 420px; }
	.fw-home-hero-text { max-width: 640px; position: relative; z-index: 2; }
	.fw-home-hero-media { position: absolute; top: 0; right: 0; bottom: 0; width: 64vw; min-height: 0; margin: 0 !important; z-index: 0;
		pointer-events: none; }
	.fw-slide-img, .fw-slide-img img, img.fw-slide-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
		object-position: 60% 35%; border-radius: 0; box-shadow: none; }
	.fw-slide-img { -webkit-mask-image: radial-gradient(ellipse 80% 80% at 80% 28%, #000 60%, rgba(0, 0, 0, .55) 68%, transparent 76%);
		mask-image: radial-gradient(ellipse 80% 80% at 80% 28%, #000 60%, rgba(0, 0, 0, .55) 68%, transparent 76%); }
	.fw-home-hero-media::after { content: ""; position: absolute; inset: 0; z-index: 2;
		background: radial-gradient(ellipse 80% 80% at 80% 28%, transparent 74.2%, var(--brand-secondary) 74.6%, var(--brand-secondary) 76.4%, transparent 76.8%);
		-webkit-mask-image: linear-gradient(110deg, transparent 52%, #000 72%); mask-image: linear-gradient(110deg, transparent 52%, #000 72%); }
	.fw-home-hero .fw-swoosh { width: 55%; }
}

/* 36. Homepage "Learn About Our Services" (Matt 2026-10-08: the white-to-navy gradient made the white service text hard
       to read where it sat on the light part): solid navy band, white heading, light-blue "See All" links. */
.fw-home-services, .fw-home-services { background: var(--uro-primary) !important; padding-top: 70px; }
.fw-home-services .fw-home-h2 { color: var(--uro-white-color) !important; }
.fw-home-service-text { color: rgba(255, 255, 255, .88); }
@media (max-width: 991px) { .fw-home-services { padding-top: 50px; } }

/* 37. Homepage "Why Choose Keystone Urology?" (Matt 2026-10-08: a different style from the bordered stat boxes above,
       fewer borders): a full-width soft band; three open columns, no card outlines; each icon sits in a white disc with a
       soft shadow; a short light-blue rule under each title. */
.fw-home-why { background: var(--uro-light-color); padding: 80px 0; margin-top: 40px; }
.fw-home-why .fw-wrap { row-gap: 50px; }
.fw-home-why .fw-icon-cards { gap: 50px; }
.fw-home-why .fw-icon-card { border: 0; border-radius: 0; padding: 0 10px; gap: 16px; background: none; }
.fw-home-why .fw-icon-card-img { width: 120px; height: 120px; padding: 14px; box-sizing: border-box; border-radius: 50%;
	background: var(--uro-white-color); box-shadow: 0 12px 30px rgba(43, 57, 78, .12); }
.fw-home-why .fw-icon-card-img img { width: 100%; height: 100%; }
.fw-home-why .fw-icon-card-title { margin-top: 8px; font-size: var(--h4-text); }
.fw-home-why .fw-icon-card-title::after { content: ""; display: block; width: 44px; height: 3px; margin: 14px auto 0; border-radius: 3px;
	background: var(--brand-secondary); }
.fw-home-why .fw-icon-card p { font-size: 17px; line-height: 1.7; max-width: 340px; }
@media (max-width: 767px) { .fw-home-why { padding: 56px 0; } .fw-home-why .fw-icon-cards { gap: 44px; } }

/* 38. Homepage providers promo (Matt 2026-10-08): navy panel, heading + button on the left, a row of overlapping round
       headshots on the right (first 6 featured providers), the whole photo row links to /providers/. */
.fw-promo { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 40px; align-items: center; width: 100%;
	padding: 60px 64px; border-radius: 50px; background: var(--uro-primary); position: relative; overflow: hidden; isolation: isolate; }
.fw-promo::before { content: ""; position: absolute; right: -120px; top: -160px; width: 520px; height: 520px; border-radius: 50%;
	border: 14px solid var(--brand-secondary); opacity: .35; z-index: -1; }
.fw-promo-text { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.fw-promo-title { margin: 0; color: var(--uro-white-color); font-size: var(--h2-text); line-height: 1.1; }
.fw-promo .fw-promo-btn { background: var(--uro-white-color) !important; color: var(--uro-primary) !important; }
.fw-promo .fw-promo-btn:hover { background: var(--brand-secondary) !important; color: var(--uro-white-color) !important; }
.fw-promo-faces { display: flex; justify-content: flex-end; flex-wrap: nowrap; padding-left: 30px; text-decoration: none; }
.fw-promo-face { flex: 0 0 auto; margin-left: -30px; transition: transform .2s; }
.fw-promo-face:nth-child(n+7) { display: none; }
.fw-promo-face img { display: block; width: 120px; height: 120px; border-radius: 50%; object-fit: cover; object-position: top center;
	border: 5px solid var(--uro-primary); background: var(--uro-light-color); }
.fw-promo-faces:hover .fw-promo-face { transform: translateY(-4px); }
@media (max-width: 1200px) { .fw-promo-face img { width: 96px; height: 96px; } }
@media (max-width: 991px) {
	.fw-promo { grid-template-columns: minmax(0, 1fr); padding: 44px 28px; border-radius: 30px; text-align: center; }
	.fw-promo-text { align-items: center; }
	.fw-promo-faces { justify-content: center; order: -1; }
}
@media (max-width: 480px) { .fw-promo-face:nth-child(n+5) { display: none; } .fw-promo-face img { width: 84px; height: 84px; } }

/* 39. Testimonial quote cards lift on hover (Matt 2026-10-08), everywhere they appear (home, /testimonials/, profiles) */
.fw-quote { transition: transform .25s ease, box-shadow .25s ease; }
.fw-quote:hover { transform: translateY(-6px); box-shadow: 0 16px 34px rgba(43, 57, 78, .14); }
@media (prefers-reduced-motion: reduce) { .fw-quote { transition: box-shadow .25s ease; } .fw-quote:hover { transform: none; } }
/* /services/: the intro sits just above the navy services band */
.page-id-7697 .fw-body { padding-bottom: 50px; }
/* the services band is the last section on /services/: keep a white gap before the footer (navy on phones) */
.page-id-7697 .fw-home-services { margin-bottom: 70px; }
@media (max-width: 767px) { .page-id-7697 .fw-home-services { margin-bottom: 50px; } }

/* 40. Homepage locations (Matt 2026-10-08): the office cards only - the locator's search bar, map and count are hidden */
.page-id-7694 .fw-locdir .app-wrapper, .page-id-7694 .fw-locdir #searchInfo, .page-id-7694 .fw-locdir #noResultsMessage { display: none !important; }
.page-id-7694 .fw-locdir #listings { margin-top: 10px; }
.fw-locdir, .fw-locdir > .brxe-code, .fw-locdir .main-listing, .fw-locdir #listings { width: 100%; }

/* 41. /services/ (Matt 2026-10-08): the services band without the dark background or heading - navy text on white,
       photo anchored to the band's bottom as on the homepage */
.page-id-7697 .fw-home-services { background: var(--uro-white-color) !important; padding-top: 10px; }
.page-id-7697 .fw-home-service-title a { color: var(--uro-primary); }
.page-id-7697 .fw-home-service-text { color: #363636; }
.page-id-7697 .fw-home-service-more a { color: var(--uro-accent); }
.page-id-7697 .fw-home-services-img, .page-id-7697 .fw-home-services-img img { border-radius: 50px; }
.page-id-7697 .fw-home-services-row { align-items: center; }
.page-id-7697 .fw-home-services-list { padding-bottom: 0; }

/* 42. Homepage office cards (Bricks loop, no map app): base card rules the locator app normally supplies */
.page-id-7694 .fw-locdir .listing-card { display: flex; flex-direction: column; background: var(--uro-white-color); }
.page-id-7694 .fw-locdir .listing-card h3 { margin: 0 0 4px; }
.page-id-7694 .fw-locdir .listing-card p { margin: 0; }
.page-id-7694 .fw-locdir .listing-card .listing-phone-link a { color: var(--uro-primary); text-decoration: none; }
.page-id-7694 .fw-locdir .listing-card .view-link { display: inline-flex; color: var(--uro-white-color); text-decoration: none; border-radius: 100px; }

/* 43. Home "Meet Our Providers": the headshots scroll as a carousel, one link per provider, like production's provider carousel (2026-10-14).
   The track is the old .fw-promo-faces row; ks-fw1.js wraps it in .fw-prov and adds the arrows and autoplay. */
.fw-prov { display: flex; align-items: center; gap: 12px; min-width: 0; }
.fw-promo-faces.fw-prov-track { flex: 1 1 auto; min-width: 0; justify-content: flex-start; gap: 20px; padding: 6px 0 2px;
	overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.fw-prov-track::-webkit-scrollbar { display: none; }
.fw-promo-faces.fw-prov-track .fw-promo-face { flex: 0 0 calc((100% - 40px) / 3); margin-left: 0; display: flex; flex-direction: column;
	align-items: center; gap: 12px; text-align: center; text-decoration: none; scroll-snap-align: start; }
.fw-promo-faces.fw-prov-track:hover .fw-promo-face { transform: none; }
.fw-promo-faces.fw-prov-track .fw-promo-face:hover { transform: translateY(-4px); }
.fw-prov-track .fw-promo-face img { transition: border-color .2s; }
.fw-prov-track .fw-promo-face:hover img, .fw-prov-track .fw-promo-face:focus-visible img { border-color: var(--brand-secondary); }
.fw-prov-track .fw-promo-face:focus-visible { outline: 2px solid var(--brand-secondary); outline-offset: 2px; border-radius: 12px; }
.fw-prov-name { margin: 0; color: var(--uro-white-color); font-size: 15px; font-weight: 600; line-height: 1.3; text-wrap: balance; }
.fw-prov-btn { flex: 0 0 auto; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border-radius: 50%;
	border: 2px solid var(--uro-white-color); background: transparent; color: var(--uro-white-color); cursor: pointer; transition: background .2s, color .2s; }
.fw-prov-btn:hover, .fw-prov-btn:focus-visible { background: var(--uro-white-color); color: var(--uro-primary); }
.fw-prov-btn svg { width: 16px; height: 16px; }
.fw-prov.is-static .fw-prov-btn { visibility: hidden; }
@media (max-width: 991px) { .fw-prov { order: -1; } .fw-prov .fw-prov-track { order: 0; } }
@media (max-width: 767px) { .fw-promo-faces.fw-prov-track .fw-promo-face { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 480px) { .fw-promo-faces.fw-prov-track .fw-promo-face { flex-basis: 100%; } .fw-prov-btn { width: 36px; height: 36px; } }
@media (prefers-reduced-motion: reduce) { .fw-promo-faces.fw-prov-track { scroll-behavior: auto; } .fw-promo-faces.fw-prov-track .fw-promo-face:hover { transform: none; } }

/* 44. Header badges (2026-10-16): production's UroLift Center of Excellence + US News badges, on the left of the
      top bar row above the nav pill (header template 7675, block hbdg01; revision 8128 is the header without it) */
.brxe-container:has(> .ks-header-badges) { flex-direction: row; justify-content: space-between; align-items: flex-end; }
.ks-header-badges { display: flex; align-items: center; gap: 14px; margin-left: 10px; }
.ks-header-badges a { display: block; line-height: 0; }
.ks-header-badge, .ks-header-badges img { height: 72px; width: auto; display: block; }
@media (max-width: 991px) { .ks-header-badges img { height: 56px; } .ks-header-badges { margin-left: 10px; } }
@media (max-width: 767px) {
	.brxe-container:has(> .ks-header-badges) { flex-direction: column; align-items: center; row-gap: 8px; }
	.ks-header-badges { margin: 8px 0 0; align-self: center; }
	.ks-header-badges img { height: 48px; }
}

/* 45. /services/conditions/ (2026-10-16): a three-column link list like production instead of 26 tiles,
      read top to bottom per column */
.postid-7435 .fw-tiles { display: block; columns: 3; column-gap: 40px; }
.postid-7435 .fw-tile { display: block; position: relative; break-inside: avoid; min-height: 0; padding: 9px 0 9px 24px;
	border: 0; border-radius: 0; background: none; text-align: left; justify-content: flex-start; }
.postid-7435 .fw-tile::before { content: "\f054"; position: absolute; left: 0; top: 15px; font-family: "Font Awesome 6 Solid";
	font-weight: 900; font-size: 12px; line-height: 1; color: var(--brand-secondary); }
.postid-7435 .fw-tile-title { font-size: 20px; line-height: 1.35; color: var(--uro-primary); }
.postid-7435 .fw-tile:hover { background: none; }
.postid-7435 .fw-tile:hover .fw-tile-title { color: var(--brand-secondary); text-decoration: underline; }
@media (max-width: 991px) { .postid-7435 .fw-tiles { columns: 2; } }
@media (max-width: 478px) { .postid-7435 .fw-tiles { columns: 1; } .postid-7435 .fw-tile-title { font-size: 18px; } }

/* 46. Location pages (2026-10-16): like production, details on the left with the photo on the right, and a wide,
      short map across the full width underneath (was a tall map column beside the details) */
.fw-location { grid-template-columns: minmax(0, 1fr); row-gap: 40px; }
.fw-location-card { display: flow-root; }
.fw-location-card > * + * { margin-top: 14px; }
.fw-location-card > .fw-location-name { margin-top: 0; }
.fw-location-photo, img.fw-location-photo { float: right; width: 42%; max-width: 500px; margin: 0 0 20px 40px; }
.fw-location-map { min-height: 0; aspect-ratio: 3 / 1; }
.fw-map, .fw-map iframe { min-height: 0; height: 100%; }
@media (max-width: 991px) {
	.fw-location-photo, img.fw-location-photo { float: none; width: 100%; max-width: none; margin: 0 0 6px; }
	.fw-location-map { min-height: 0; aspect-ratio: 16 / 9; }
	.fw-map, .fw-map iframe { min-height: 0; }
}
