/*
 * UltraClear design system. Classes are prefixed uc-.
 * Visual language: cold fiber. Where the Acclaro site uses curves and bokeh, this one uses fiber light and dot fields
 * as full-width backgrounds. Pages are native Divi 5 (section > row > column > modules); the prototype copies Divi's DOM,
 * so these rules style both. Decorative layers (fiber canvas) are added by ultraclear.js, never stored as modules.
 */

/* ---------- tokens ---------- */
:root {
  --uc-navy: #0C1E39;
  --uc-navy-deep: #001430;
  --uc-navy-2: #0A1A33;
  --uc-cyan: #2DC0D4;
  --uc-blue: #0BAED7;
  --uc-peach: #F9B87E;
  --uc-white: #FFFFFF;
  --uc-mist: #F5F7F9;
  --uc-ink: #0C1E39;
  --uc-ink-2: #45546A;
  --uc-line: rgba(12, 30, 57, .12);
  --uc-line-dark: rgba(255, 255, 255, .12);
  --uc-grad: linear-gradient(90deg, #2DC0D4 0%, #8ED9E4 55%, #F9B87E 100%);
  --uc-grad-ink: linear-gradient(90deg, #0B8FB5 0%, #0BAED7 55%, #D9894C 100%);
  --uc-font: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --uc-wrap: 1200px;
  --uc-gutter: clamp(1rem, 4vw, 2rem);
  --uc-section: clamp(4rem, 9vw, 7rem);
  --uc-radius: 16px;
  --uc-header: 76px;
  /* the dot field: fine cyan points on a regular grid */
  --uc-dotfield: radial-gradient(rgba(45, 192, 212, .5) 1px, transparent 1.6px);
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.uc { margin: 0; font-family: var(--uc-font); font-weight: 300; font-size: 1.0625rem; line-height: 1.65; color: var(--uc-ink-2); background: var(--uc-navy-deep); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.uc #page-container, body.uc #et-main-area, body.uc #main-content { background: var(--uc-navy-deep); }
body.uc #main-content .container::before { display: none; }
body.uc :is(h1, h2, h3, h4, h5, h6) { font-family: var(--uc-font); color: inherit; padding: 0; margin: 0; }
body.uc img { max-width: 100%; height: auto; display: block; }
body.uc a { color: var(--uc-blue); text-decoration: none; }
body.uc p { margin: 0 0 1em; padding: 0; }
body.uc :focus-visible { outline: 2px solid var(--uc-cyan); outline-offset: 3px; border-radius: 4px; }
.uc-em { background: var(--uc-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
:is(.uc-sec.white, .uc-sec.mist) .uc-em { background-image: var(--uc-grad-ink); }
.uc-nw { white-space: nowrap; }

/* type: light, large, sentence case (ultraclearlaser.com's tone, sharpened) */
.uc-h1 { font-size: clamp(2.6rem, 6.4vw, 5.25rem); font-weight: 300; line-height: 1.02; letter-spacing: -.025em; color: #fff; margin-bottom: 1.25rem; }
.uc-h2 { font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 300; line-height: 1.08; letter-spacing: -.02em; color: var(--uc-ink); }
.uc-h3 { font-size: 1.3rem; font-weight: 500; line-height: 1.25; letter-spacing: -.005em; color: var(--uc-ink); }
:is(.uc-h1, .uc-h2, .uc-h3), :is(.uc-h1, .uc-h2, .uc-h3) :is(h1, h2, h3) { overflow-wrap: normal; word-break: normal; hyphens: manual; }
:where(.et_pb_heading_container) > :is(h1, h2, h3, h4, h5, h6) { font: inherit; letter-spacing: inherit; line-height: inherit; color: inherit; margin: 0; padding: 0; }
/* kicker: a short fiber with light at its tip */
.uc-kicker { display: flex; align-items: center; gap: .9rem; flex-direction: row; margin: 0 0 1.25rem; font-size: .8rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--uc-cyan); line-height: 1.3; }
.uc-kicker::before { content: ""; flex: none; width: 40px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, transparent, currentColor); box-shadow: 6px 0 8px -2px currentColor; }
.uc-kicker p { margin: 0; }
:is(.uc-sec.white, .uc-sec.mist) .uc-kicker { color: var(--uc-blue); }
.uc-label { font-size: .72rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--uc-cyan); line-height: 1.3; }
.uc-lede { font-size: clamp(1.05rem, 1.4vw, 1.25rem); line-height: 1.55; color: rgba(255, 255, 255, .82); max-width: 46ch; margin-bottom: 2.2rem; }
.uc-prose { font-size: 1.0625rem; line-height: 1.7; max-width: 60ch; }
.uc-sub { max-width: 62ch; font-size: 1.1rem; }
.uc-note { font-size: .9rem; opacity: .75; }

/* ---------- buttons: pill, 48px tall; solid cyan, ghost outline ---------- */
body.uc .uc-ctas { display: flex; flex-direction: row; flex-wrap: wrap; gap: .75rem; }
body.uc .uc-btn, body.uc .et_pb_button.uc-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 2.1rem !important; margin: 0;
  font-family: var(--uc-font); font-size: .88rem !important; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1.2 !important;
  border: 0 !important; border-radius: 100px !important; text-decoration: none; text-align: center; cursor: pointer; transition: background-color .2s, color .2s, box-shadow .2s;
}
body.uc .et_pb_button.uc-btn::before, body.uc .et_pb_button.uc-btn::after { display: none !important; }
body.uc .uc-btn.solid { background: var(--uc-cyan); color: var(--uc-navy) !important; }
body.uc .uc-btn.solid:hover { background: #fff; box-shadow: 0 0 0 1px var(--uc-cyan), 0 0 28px rgba(45, 192, 212, .45); }
body.uc .uc-btn.ghost { background: transparent; color: #fff !important; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45); }
body.uc .uc-btn.ghost:hover { box-shadow: inset 0 0 0 1px #fff; background: rgba(255, 255, 255, .06); }
body.uc :is(.uc-sec.white, .uc-sec.mist) .uc-btn.solid:hover { background: var(--uc-navy); color: #fff !important; box-shadow: none; }
body.uc :is(.uc-sec.white, .uc-sec.mist) .uc-btn.ghost { color: var(--uc-navy) !important; box-shadow: inset 0 0 0 1px rgba(12, 30, 57, .35); }

/* ---------- Divi 5 structure ----------
 * Neutralise Divi's spacing so these classes rule. Divi defines its spacing on :root; redefining it on body.uc
 * reaches every Divi element. Columns and groups stack as flex columns unless a component lays them out. */
body.uc { --section-padding: 0px; --section-gutter: 0px; --row-gutter-horizontal: 0px; --row-gutter-vertical: 0px; --module-gutter: 0px; --content-width: 100%; --content-max-width: none; }
:where(body.uc) .et_pb_section { background-color: transparent; }
body.uc .et_pb_section { position: relative; padding-top: 0; padding-bottom: 0; }
body.uc .et_pb_row { padding: 0; }
body.uc .et_pb_row.uc-wrap, .uc-wrap { width: min(100% - 2 * var(--uc-gutter), var(--uc-wrap)); max-width: none; margin-inline: auto; }
body.uc .et_pb_column, body.uc .et_pb_group { display: flex; flex-direction: column; width: 100%; margin: 0; }
body.uc .et_pb_section .et_pb_row .et_pb_module { margin: 0; }
.et_pb_text_inner > :last-child { margin-bottom: 0; }
/* module spacing: Divi zeroes module margins with four classes (.et_pb_section .et_pb_row .et_flex_group > .et_pb_module),
 * so these carry body.uc and four classes to win */
body.uc .et_pb_section .et_pb_module.uc-kicker { margin-bottom: 1.25rem; }
body.uc .et_pb_section .et_pb_module.uc-h1 { margin-bottom: 1.25rem; }
body.uc .et_pb_section .et_pb_module.uc-lede { margin-bottom: 2.2rem; }
body.uc .et_pb_section .uc-panel .et_pb_module.uc-h2, body.uc .et_pb_section .uc-copy .et_pb_module.uc-h2 { margin-bottom: 1.4rem; }
body.uc .et_pb_section .et_pb_module.uc-prose + .uc-ctas, body.uc .et_pb_section .uc-copy .uc-ctas { margin-top: 1.2rem; }
body.uc .et_pb_section .uc-head .et_pb_module.uc-sub { margin-top: 1.25rem; }
body.uc .et_pb_section .uc-mode .et_pb_module.uc-mode-fig { margin-bottom: .9rem; }
body.uc .et_pb_section .uc-ba .et_pb_group.uc-ba-pair { margin-bottom: .9rem; }
body.uc .et_pb_section .et_pb_group.uc-head { margin-bottom: 3rem; }
body.uc .et_pb_section .et_pb_group.uc-duo { margin-bottom: 2.5rem; }
body.uc .et_pb_section .et_pb_group.uc-modes-foot { margin-top: 3rem; }
body.uc .et_pb_section .et_pb_group.uc-results-foot { margin-top: 2.5rem; }
.et_pb_image > .et_pb_image_wrap { display: block; }

/* ---------- sections ---------- */
body.uc .et_pb_section.uc-sec { padding-top: var(--uc-section); padding-bottom: var(--uc-section); }
.uc-sec.white { background: #fff; }
.uc-sec.mist { background: var(--uc-mist); }
.uc-sec.navy { background: linear-gradient(180deg, var(--uc-navy) 0%, var(--uc-navy-deep) 100%); color: rgba(255, 255, 255, .78); }
.uc-sec.navy :is(.uc-h2, .uc-h3) { color: #fff; }
/* dot field: fine points fading in from the top corner, behind the content */
.uc-dots { isolation: isolate; overflow: hidden; }
.uc-dots::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--uc-dotfield) 0 0 / 22px 22px; opacity: .35;
  -webkit-mask: radial-gradient(70% 60% at 85% 0%, #000, transparent 70%); mask: radial-gradient(70% 60% at 85% 0%, #000, transparent 70%); }
.uc-head { gap: 0; margin-bottom: 3rem; max-width: 52rem; }
.uc-head .uc-h2 + .uc-sub { margin-top: 1.25rem; }

/* ---------- fiber field ----------
 * Sections marked uc-fibers get a full-width canvas of fine fibers carrying light (ultraclear.js), behind the content.
 * soft: quieter; rev: the bundle enters from the right; light: blue fibers for white sections. */
.uc-fibers { isolation: isolate; overflow: hidden; }
.uc-fiber-field { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; display: block; pointer-events: none; }
body.uc .uc-fibers > .et_pb_row:not(.uc-hero-row) { position: relative; z-index: 1; }
.uc-fibers.soft > .uc-fiber-field { opacity: .6; }
.uc-fibers.rev > .uc-fiber-field { transform: scaleX(-1); }
.uc-fibers.light > .uc-fiber-field { opacity: .55; }
/* uc-parallax: a photo as Divi's parallax section background (Divi moves it on scroll), under a navy tint */
body.uc .et_pb_section_parallax > .et_pb_row { position: relative; }
.uc-parallax .et-pb-parallax-wrapper::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 20, 48, .7), rgba(0, 20, 48, .35)); }
/* skin types: a small photo stretched tall, so softened; white cards keep their dark text */
.uc-skin .et-pb-parallax-background { filter: blur(3px); }
.uc-sec.navy .uc-panel-card { color: var(--uc-ink-2); }
.uc-sec.navy .uc-panel-card .uc-h3 { color: var(--uc-ink); }

/* ---------- hero (and the closing call to action) ----------
 * Two columns over one fiber field: the stage (the device, or a photograph) and the copy. No panel edge or divider:
 * the fibers run under both columns and a soft shade behind the copy keeps it readable. */
body.uc .et_pb_section.uc-hero, .uc-hero { display: grid; grid-template-columns: 1fr; background: radial-gradient(55% 60% at 72% 50%, rgba(45, 192, 212, .12), transparent 70%), var(--uc-navy-deep); }
body.uc .et_pb_row.uc-hero-row { display: contents; }
.uc-stage { position: relative; z-index: 2; aspect-ratio: 4 / 5; max-height: 600px; width: 100%; pointer-events: none; }
body.uc .et_pb_column.uc-stage { display: block; }
.uc-stage::after { content: ""; position: absolute; inset: 0; z-index: 0; background: var(--uc-dotfield) 0 0 / 18px 18px; opacity: .4;
  -webkit-mask: radial-gradient(45% 45% at 50% 50%, #000, transparent 75%); mask: radial-gradient(45% 45% at 50% 50%, #000, transparent 75%); }
.uc-stage .uc-device { position: absolute; z-index: 2; left: 50%; top: 4%; bottom: 2%; width: auto; transform: translateX(-50%); }
.uc-stage .uc-device .et_pb_image_wrap, .uc-stage .uc-device img { height: 100%; }
.uc-stage .uc-device img { width: auto; max-width: none; filter: drop-shadow(0 30px 60px rgba(0, 0, 0, .6)); }
/* a photograph fades into the navy instead of meeting it at an edge */
.uc-stage.photo { aspect-ratio: auto; height: 340px; max-height: none;
  -webkit-mask: linear-gradient(180deg, #000 55%, transparent); mask: linear-gradient(180deg, #000 55%, transparent); }
.uc-stage.photo::after { display: none; }
.uc-stage.photo .uc-photo { position: absolute; inset: 0; height: 100%; }
.uc-stage.photo .uc-photo .et_pb_image_wrap { height: 100%; }
.uc-stage.photo .uc-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 75% 35%; }
.uc-panel { position: relative; z-index: 3; padding: 1rem var(--uc-gutter) 4rem; }
body.uc .et_pb_column.uc-panel { display: flex; }
.uc-panel::before { content: ""; position: absolute; inset: -10% -20% -10% -10%; z-index: -1; pointer-events: none;
  background: radial-gradient(60% 55% at 35% 50%, rgba(0, 20, 48, .8), transparent 75%); }
.uc-panel .uc-h2 { color: #fff; }
@media (min-width: 1024px) {
  body.uc .et_pb_section.uc-hero, .uc-hero { grid-template-columns: 50% 50%; min-height: min(88vh, 860px); }
  .uc-stage, body.uc .et_pb_column.uc-stage { order: 2; aspect-ratio: auto; max-height: none; width: auto; align-self: stretch; }
  .uc-stage .uc-device { left: 32%; top: 6%; bottom: 6%; }
  .uc-panel, body.uc .et_pb_row .et_pb_column.uc-panel { order: 1; justify-content: center; width: auto;
    padding: 4rem 2rem 4rem max(2rem, calc((100vw - var(--uc-wrap)) / 2 + var(--uc-gutter))); }
  .uc-stage.photo { height: auto; -webkit-mask: linear-gradient(90deg, transparent, #000 40%); mask: linear-gradient(90deg, transparent, #000 40%); }
}
/* closing call to action: shorter, photo on the right (the face stays clear of the copy) */
@media (min-width: 1024px) { body.uc .et_pb_section.uc-cta, .uc-cta { min-height: 560px; grid-template-columns: 55% 45%; } }

/* ---------- benefit strip ---------- */
body.uc .et_pb_section.uc-strip { background: var(--uc-navy-deep); border-top: 1px solid var(--uc-line-dark); border-bottom: 1px solid var(--uc-line-dark); padding: 1.6rem 0; }
.uc-strip .uc-col { align-items: center; gap: .9rem; }
.uc-strip-items .et_pb_text_inner { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 2rem; font-size: .8rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #fff; line-height: 1.4; }
.uc-strip-items span { display: inline-flex; align-items: center; gap: .7rem; }
.uc-strip-items span::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--uc-cyan); box-shadow: 0 0 8px var(--uc-cyan); }
.uc-strip-line { text-align: center; font-size: .95rem; color: rgba(255, 255, 255, .6); letter-spacing: .04em; }
.uc-strip-line i { font-style: normal; color: var(--uc-peach); padding: 0 .4rem; }

/* ---------- photo and copy split ---------- */
.uc-split { display: grid !important; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .uc-split { grid-template-columns: 1.05fr .95fr; gap: 5rem; } }
.uc-media { position: relative; isolation: isolate; }
.uc-media::before { content: ""; position: absolute; z-index: -1; width: 62%; height: 70%; left: -1.5rem; bottom: -1.5rem; background: radial-gradient(rgba(11, 174, 215, .55) 1.3px, transparent 1.9px) 0 0 / 16px 16px; }
.uc-media .uc-photo img { width: 100%; border-radius: var(--uc-radius); aspect-ratio: 3 / 2; object-fit: cover; }
.uc-copy .uc-h2 { margin-bottom: 1.4rem; }
.uc-copy .uc-ctas { margin-top: 1rem; }
@media (max-width: 599.98px) { .uc-media::before { left: -.75rem; bottom: -.75rem; } }

/* ---------- treatment modes ---------- */
.uc-modes { display: flex !important; flex-direction: row !important; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.uc-mode { flex: 1 1 100%; gap: .5rem; padding: 1.5rem; border-radius: var(--uc-radius); border: 1px solid var(--uc-line-dark); background: linear-gradient(180deg, rgba(12, 30, 57, .85), rgba(0, 20, 48, .75)); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: border-color .2s; }
.uc-mode:hover { border-color: rgba(45, 192, 212, .45); }
@media (min-width: 600px) { .uc-mode { flex-basis: calc(50% - .5rem); max-width: calc(50% - .5rem); } }
@media (min-width: 1024px) { .uc-mode { flex-basis: calc(25% - .75rem); max-width: calc(25% - .75rem); } }
.uc-mode .uc-mode-fig { width: 112px; margin-bottom: .9rem; }
.uc-mode .uc-mode-fig img { width: 112px; height: 112px; border-radius: 12px; background: rgba(0, 20, 48, .7); box-shadow: inset 0 0 0 1px var(--uc-line-dark); }
.uc-mode .uc-h3 { font-size: 1.15rem; }
.uc-mode p { font-size: .95rem; line-height: 1.55; margin: 0; color: rgba(255, 255, 255, .7); }
.uc-modes-foot { align-items: center; gap: 2rem; margin-top: 3rem; }
.uc-checks ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem 2rem; }
.uc-checks li { display: flex; align-items: center; gap: .6rem; color: #fff; font-weight: 400; font-size: .98rem; }
.uc-checks li::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--uc-peach); box-shadow: 0 0 10px rgba(249, 184, 126, .7); }
.uc-modes-foot .uc-ctas { justify-content: center; }

/* ---------- skin types and pain ---------- */
.uc-duo { display: grid !important; gap: 1.25rem; margin-bottom: 2.5rem; }
@media (min-width: 1024px) { .uc-duo { grid-template-columns: 1fr 1fr; } }
.uc-panel-card { gap: 1rem; background: #fff; border-radius: 20px; padding: clamp(1.5rem, 3vw, 2.5rem); box-shadow: 0 1px 0 var(--uc-line), 0 20px 50px rgba(12, 30, 57, .06); }
.uc-types .et_pb_text_inner { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: .5rem; }
.uc-types span { display: flex; flex-direction: column; gap: .15rem; padding: .9rem 1rem; border-radius: 12px; background: var(--uc-mist); position: relative; overflow: hidden; }
.uc-types span::after { content: ""; position: absolute; right: -6px; top: -6px; width: 54px; height: 54px; background: radial-gradient(rgba(11, 174, 215, .45) 1.2px, transparent 1.8px) 0 0 / 9px 9px; -webkit-mask: radial-gradient(circle at 100% 0, #000, transparent 70%); mask: radial-gradient(circle at 100% 0, #000, transparent 70%); }
.uc-types b { color: var(--uc-ink); font-weight: 500; }
.uc-types small { font-size: .8rem; letter-spacing: .04em; color: var(--uc-ink-2); }
/* pain scale: a 0 to 10 bar, cool to warm, with the UltraClear average marked */
.uc-scale { margin-top: auto; padding-top: .5rem; }
.uc-scale-title { font-size: .72rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--uc-blue); margin-bottom: 2.4rem !important; }
.uc-scale-bar { position: relative; height: 10px; border-radius: 10px; background: linear-gradient(90deg, #2DC0D4 0%, #9ADBE2 25%, #F9B87E 60%, #E07A5F 100%); }
.uc-scale-mark { position: absolute; top: 50%; width: 22px; height: 22px; margin: -11px 0 0 -11px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px var(--uc-cyan), 0 4px 14px rgba(12, 30, 57, .25); }
.uc-scale-mark b { position: absolute; bottom: calc(100% + 10px); left: 50%; transform: translateX(-50%); font-size: 1.05rem; font-weight: 600; color: var(--uc-ink); white-space: nowrap; }
.uc-scale-ticks, .uc-scale-labels { display: flex; justify-content: space-between; font-size: .75rem; color: var(--uc-ink-2); }
.uc-scale-ticks { margin-top: .6rem; }
.uc-scale-labels { margin-top: .25rem; font-size: .68rem; letter-spacing: .03em; opacity: .8; }
.uc-scale-labels span { flex: 1; text-align: center; } .uc-scale-labels span:first-child { text-align: left; } .uc-scale-labels span:last-child { text-align: right; }
@media (max-width: 599.98px) { .uc-scale-labels span:nth-child(2n) { visibility: hidden; } }
.uc-scale-note { margin: 1rem 0 0 !important; font-size: .85rem; }

/* ---------- before and after ---------- */
.uc-results { display: grid !important; gap: 2rem 1.5rem; }
@media (min-width: 768px) { .uc-results { grid-template-columns: 1fr 1fr; } }
.uc-ba { gap: .4rem; }
.uc-ba-pair { display: grid !important; grid-template-columns: 1fr 1fr; gap: 4px; border-radius: var(--uc-radius); overflow: hidden; margin-bottom: .9rem; }
.uc-ba-pair .uc-ba-img { position: relative; }
.uc-ba-pair .uc-ba-img img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.uc-ba-pair .uc-ba-img::after { position: absolute; left: .6rem; top: .6rem; padding: .3rem .6rem; border-radius: 100px; background: rgba(0, 20, 48, .7); color: #fff; font-size: .65rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.uc-ba-pair .uc-ba-img:first-child::after { content: "Before"; }
.uc-ba-pair .uc-ba-img:last-child::after { content: "After"; background: rgba(11, 174, 215, .85); }
.uc-ba .uc-label { color: var(--uc-blue); }
.uc-ba p { margin: 0; }
.uc-results-foot { align-items: center; text-align: center; gap: 1.2rem; margin-top: 2.5rem; }
/* buttons closing a section sit centred under it */
body.uc .et_pb_section .uc-col > .et_pb_group.uc-ctas, body.uc .et_pb_section :is(.uc-results-foot, .uc-modes-foot) .et_pb_group.uc-ctas { flex-direction: row; justify-content: center; }

/* ---------- physician quotes: one row that rotates (ultraclear.js), swipeable without script ---------- */
.uc-quotes { display: flex !important; flex-direction: row !important; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; overscroll-behavior-x: contain; padding-bottom: .25rem; }
.uc-quotes::-webkit-scrollbar { display: none; }
.uc-quotes:focus-visible { outline-offset: 6px; }
body.uc .et_pb_section .uc-quotes .et_pb_group.uc-quote { flex: 0 0 86%; margin: 0; scroll-snap-align: start; }
@media (min-width: 768px) { body.uc .et_pb_section .uc-quotes .et_pb_group.uc-quote { flex-basis: calc((100% - 1.25rem) / 2); } }
@media (min-width: 1100px) { body.uc .et_pb_section .uc-quotes .et_pb_group.uc-quote { flex-basis: calc((100% - 2.5rem) / 3); } }
.uc-quote { gap: 1.4rem; padding: 1.75rem; border-radius: var(--uc-radius); border: 1px solid var(--uc-line-dark); background: linear-gradient(180deg, rgba(12, 30, 57, .85), rgba(0, 20, 48, .75)); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.uc-quote-text p { margin: 0; color: rgba(255, 255, 255, .88); font-size: 1.02rem; line-height: 1.6; }
body.uc .uc-quote .uc-quote-by { display: flex; flex-direction: row; align-items: center; gap: .9rem; margin-top: auto; }
.uc-quote-img { width: 52px !important; flex: none; }
.uc-quote-img img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--uc-navy), 0 0 0 3px rgba(45, 192, 212, .6); }
.uc-quote-name p { margin: 0; font-size: .92rem; } .uc-quote-name b { color: #fff; font-weight: 500; }
/* heading row with the previous and next buttons in the space beside the heading */
body.uc .uc-head.has-nav { display: grid; grid-template-columns: 1fr auto; column-gap: 2rem; align-items: end; max-width: none; }
.uc-head.has-nav > :not(.uc-rot-nav) { grid-column: 1; }
.uc-rot-nav { grid-column: 2; grid-row: 1 / span 9; align-self: end; display: flex; gap: .6rem; }
.uc-rot-btn { width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: transparent; color: #fff; cursor: pointer; display: grid; place-items: center; transition: border-color .2s, background-color .2s; }
.uc-rot-btn::before { content: ""; width: 9px; height: 9px; border: solid currentColor; border-width: 0 0 1.5px 1.5px; transform: translateX(2px) rotate(45deg); }
.uc-rot-btn.next::before { transform: translateX(-2px) rotate(-135deg); }
.uc-rot-btn:hover { border-color: var(--uc-cyan); background: rgba(45, 192, 212, .1); }
@media (max-width: 599.98px) { body.uc .uc-head.has-nav { grid-template-columns: 1fr; } .uc-rot-nav { grid-column: 1; grid-row: auto; margin-top: 1.25rem; } }

/* ---------- brochure request ---------- */
@media (min-width: 1024px) { .uc-split.form { grid-template-columns: 1fr 1fr; align-items: start; } }
.uc-list ul { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .75rem; }
.uc-list li { display: flex; gap: .8rem; align-items: baseline; color: var(--uc-ink); }
.uc-list li::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--uc-blue); transform: translateY(-1px); box-shadow: 0 0 8px rgba(11, 174, 215, .5); }
/* brochure: copy on a frosted card like the quotes, as tall as the form card, type a step up */
@media (min-width: 1024px) { .uc-brochure .uc-split.form { align-items: stretch; } }
body.uc .et_pb_section .et_pb_group.uc-glass { justify-content: center; padding: clamp(1.75rem, 3.5vw, 3rem); border-radius: 20px; border: 1px solid var(--uc-line-dark); background: linear-gradient(180deg, rgba(12, 30, 57, .72), rgba(0, 20, 48, .6)); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.uc-glass .uc-h2 { font-size: clamp(2.2rem, 3.6vw, 3.3rem); text-wrap: balance; }
.uc-glass .uc-prose { font-size: 1.15rem; max-width: none; color: rgba(255, 255, 255, .82); }
.uc-glass .uc-list li { color: #fff; font-size: 1.08rem; }
.uc-glass .uc-list li::before { background: var(--uc-cyan); }
.uc-form-card { background: #fff; border-radius: 20px; padding: clamp(1.5rem, 3vw, 2.5rem); box-shadow: 0 0 0 1px var(--uc-line), 0 30px 60px rgba(12, 30, 57, .1); }
.uc-form { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 600px) { .uc-form { grid-template-columns: 1fr 1fr; } .uc-field.wide, .uc-consent, .uc-form .uc-btn, .uc-status { grid-column: 1 / -1; } }
.uc-field { display: grid; gap: .35rem; font-size: .85rem; font-weight: 500; color: var(--uc-ink); }
.uc-field input { width: 100%; min-height: 48px; padding: 0 1rem; border: 1px solid rgba(12, 30, 57, .2); border-radius: 10px; background: var(--uc-mist); font: inherit; font-weight: 400; font-size: 1rem; color: var(--uc-ink); transition: border-color .2s, background-color .2s; }
.uc-field input:focus { outline: none; border-color: var(--uc-blue); background: #fff; box-shadow: 0 0 0 3px rgba(11, 174, 215, .18); }
.uc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.uc-consent { margin: 0 !important; font-size: .8rem; line-height: 1.5; color: var(--uc-ink-2); }
.uc-consent a { text-decoration: underline; }
body.uc .uc-form .uc-btn { width: 100%; }
.uc-status { display: none; margin: 0 !important; font-size: .9rem; padding: .8rem 1rem; border-radius: 10px; }
.uc-status.show { display: block; } .uc-status.ok { background: rgba(45, 192, 212, .12); color: var(--uc-ink); } .uc-status.err { background: rgba(249, 184, 126, .2); color: var(--uc-ink); }

/* ---------- stand-in header and footer (prototype only; the site uses Theme Builder layouts) ---------- */
.uc-hdr { position: sticky; top: 0; z-index: 40; background: rgba(0, 20, 48, .8); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--uc-line-dark); }
.uc-hdr-in { width: min(100% - 2 * var(--uc-gutter), var(--uc-wrap)); margin-inline: auto; min-height: var(--uc-header); display: flex; align-items: center; gap: 2rem; }
.uc-logo { flex: none; display: flex; align-items: center; min-height: 44px; }
.uc-logo img { height: 34px; width: 221px; max-width: none; }
header.uc-hdr nav { margin-left: auto; display: none; }
header.uc-hdr ul { list-style: none; display: flex; gap: 2rem; margin: 0; padding: 0; }
header.uc-hdr nav a { color: #fff; opacity: .8; font-size: .85rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; min-height: 44px; display: inline-flex; align-items: center; }
body.uc header.uc-hdr .uc-btn { margin-left: auto; min-height: 44px; }
@media (min-width: 1024px) { header.uc-hdr nav { display: block; } body.uc header.uc-hdr .uc-btn { margin-left: 0; } }
.uc-ftr { border-top: 1px solid var(--uc-line-dark); color: rgba(255, 255, 255, .6); font-size: .9rem; }
.uc-ftr .uc-hdr-in { padding: 2.5rem 0; flex-wrap: wrap; }
.uc-ftr p { margin: 0; }

/* ---------- Theme Builder header and footer (the same look from Divi's Menu, Image and Text modules) ---------- */
body.uc .et-l--header { position: sticky; top: 0; z-index: 40; }
body.uc.admin-bar .et-l--header { top: 32px; }
@media (max-width: 782px) { body.uc.admin-bar .et-l--header { top: 0; } }
body.uc .et_pb_section.uc-hdr { position: relative; background: rgba(0, 20, 48, .8); }
body.uc .et_pb_section .et_pb_row.uc-hdr-in { width: min(100% - 2 * var(--uc-gutter), var(--uc-wrap)); max-width: none; margin-inline: auto; padding: 0; }
body.uc .uc-hdr .et_pb_column, body.uc .uc-ftr .et_pb_column { width: 100%; }
body.uc .et_pb_menu.uc-menu { background-color: transparent; width: 100%; }
.uc-menu .et_pb_menu_inner_container { display: flex; align-items: center; min-height: var(--uc-header); gap: 2rem; }
.uc-menu .et_pb_menu__logo-wrap { flex: none; margin-right: auto; }
.uc-menu .et_pb_menu__logo, .uc-menu .et_pb_menu__logo a { display: flex; align-items: center; min-height: 44px; }
body.uc .uc-menu .et_pb_menu__logo img { height: 34px; width: 221px; max-width: none; }
.uc-menu .et_pb_menu__wrap { flex: 1; display: flex; justify-content: flex-end; align-items: center; }
body.uc .uc-menu .et-menu { display: flex; align-items: center; gap: 2rem; margin: 0; }
body.uc .uc-menu .et-menu > li { padding: 0; }
body.uc .uc-menu .et-menu > li > a { display: inline-flex; align-items: center; min-height: 44px; padding: 0; color: #fff; opacity: .8; font-size: .85rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
body.uc .uc-menu .et-menu > li > a:hover, body.uc .uc-menu .et-menu > li.current-menu-item > a { opacity: 1; }
body.uc .uc-menu .et-menu > li:last-child > a { opacity: 1; min-height: 44px; padding: 0 1.75rem; border-radius: 100px; background: var(--uc-cyan); color: var(--uc-navy); font-size: .8rem; font-weight: 600; letter-spacing: .12em; transition: background-color .2s, box-shadow .2s; }
body.uc .uc-menu .et-menu > li:last-child > a:hover { background: #fff; box-shadow: 0 0 0 1px var(--uc-cyan), 0 0 28px rgba(45, 192, 212, .45); }
body.uc .uc-menu .mobile_nav { display: grid; place-items: center; min-width: 44px; min-height: 44px; }
body.uc .uc-menu .mobile_menu_bar::before { color: #fff; font-size: 34px; }
body.uc .uc-menu .et_mobile_menu { background: var(--uc-navy-deep); border: 0; border-top: 1px solid var(--uc-line-dark); padding: .5rem var(--uc-gutter) 2rem; box-shadow: 0 30px 60px rgba(0, 0, 0, .35); max-height: calc(100vh - var(--uc-header)); overflow: auto; }
body.uc .uc-menu .et_mobile_menu li a { color: #fff; font-size: 1.15rem; min-height: 52px; display: flex; align-items: center; padding: 0 .25rem; border-bottom: 1px solid var(--uc-line-dark); }
body.uc .uc-menu .et_mobile_menu > li:last-child > a { color: var(--uc-cyan); font-weight: 600; border-bottom: 0; }
body.uc .et_pb_section.uc-ftr { background: var(--uc-navy-deep); }
body.uc .uc-ftr .et_pb_column.uc-ftr-col { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 2rem; padding: 2.5rem 0; }
body.uc .uc-ftr .et_pb_module.uc-ftr-logo { flex: none; width: auto; }
body.uc .uc-ftr .uc-ftr-logo img { height: 36px; width: 160px; }
body.uc .uc-ftr .uc-ftr-note { width: auto; color: rgba(255, 255, 255, .6); font-size: .9rem; }

@media (prefers-reduced-motion: reduce) { body.uc * { transition: none !important; animation: none !important; } }
