/* RejuvStem inner pages, design v2.1 (Ryan, 16 Oct 2026): treatment and condition pages.
   Built by _dev/v2/build.js; loaded after home-v2/home.css (header, footer, contact panel, buttons).
   .v2-prose styles the page's original text (WordPress blocks and the audit's additions). */
.v2-wrap { max-width: 1440px; margin: 0 auto; padding-left: clamp(16px, 3vw, 40px); padding-right: clamp(16px, 3vw, 40px); }
.v2-eyebrow { font-family: var(--serif); font-size: 16px; letter-spacing: 1px; color: #b0924a; text-transform: uppercase; }
.v2-eyebrow--light { color: var(--gold-light); }
.v2-h2 { margin: 6px 0 0; font-family: var(--serif); font-weight: 400; font-size: clamp(28px, 3vw, 40px); line-height: 1.1; color: var(--green); text-wrap: balance; }
.v2-label { font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #6b7a74; }
.v2-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.v2-btn { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; text-align: center; font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; padding: 14px 24px; border-radius: 40px; border: 1.5px solid transparent; transition: background .2s, color .2s, border-color .2s; }
.home-v2 a.v2-btn--gold, .v2-btn--gold { background: var(--gold); color: var(--deep); }
.home-v2 a.v2-btn--gold:hover, .v2-btn--gold:hover { background: #fff; color: var(--deep); }
.home-v2 a.v2-btn--ghost { border-color: rgba(255,255,255,.6); color: #fff; }
.home-v2 a.v2-btn--ghost:hover { background: #fff; color: var(--deep); }
.home-v2 a.v2-btn--green, .v2-btn--green { background: var(--green); color: #fff; }
.home-v2 a.v2-btn--green:hover, .v2-btn--green:hover { background: var(--gold); color: #fff; }
.v2-btn:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* Hero */
.v2-hero { position: relative; background: var(--deep); color: #fff; overflow: hidden; }
.v2-hero__mark { position: absolute; left: -180px; top: -140px; width: 520px; opacity: .05; pointer-events: none; }
.v2-hero__in { position: relative; max-width: 1440px; margin: 0 auto; padding: 40px clamp(16px, 3vw, 40px) 64px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: 48px; align-items: center; }
.v2-hero__text { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.v2-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13.5px; color: #a9bfb7; }
.home-v2 .v2-crumbs a { color: #a9bfb7; }
.home-v2 .v2-crumbs a:hover { color: var(--gold-light); }
.v2-crumbs [aria-current] { color: var(--gold-light); }
.v2-hero h1 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(38px, 5vw, 64px); line-height: 1.04; letter-spacing: -.5px; text-wrap: balance; }
.v2-hero__sub { margin: 0; font-size: 19px; line-height: 1.6; color: #d5e1dc; max-width: 600px; text-wrap: pretty; }
.home-v2 a.v2-rating { display: flex; align-items: center; gap: 12px; align-self: flex-start; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: 14px; padding: 10px 16px; color: #fff; }
.home-v2 a.v2-rating:hover { border-color: var(--gold); color: #fff; }
.v2-rating__num { font-family: var(--serif); font-size: 30px; line-height: 1; }
.v2-rating > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.v2-rating__stars { color: var(--gold-light); letter-spacing: 3px; font-size: 15px; }
.v2-rating small { font-size: 13px; color: #cfdad6; }
.v2-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.v2-hero__media { position: relative; }
.v2-hero__media > img { width: 100%; aspect-ratio: 5/4; object-fit: cover; border-radius: 22px; display: block; box-shadow: 0 40px 80px rgba(0,0,0,.35); }
.v2-hero__badge { position: absolute; left: -18px; bottom: -22px; background: #fff; color: var(--green); border-radius: 16px; padding: 14px 18px; display: flex; align-items: center; gap: 14px; box-shadow: 0 20px 40px rgba(0,0,0,.25); max-width: calc(100% + 18px); }
.v2-hero__badge img { width: 40px; height: 40px; flex: none; }
.v2-hero__badge span { display: flex; flex-direction: column; gap: 2px; }
.v2-hero__badge b { font-size: 15px; }
.v2-hero__badge small { font-size: 13px; color: #6b7a74; }
.v2-hero__stats { border-top: 1px solid rgba(255,255,255,.12); }
.v2-hero__stats > div { max-width: 1440px; margin: 0 auto; padding: 22px clamp(16px, 3vw, 40px); display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 18px; }
.v2-hero__stats b { display: block; font-family: var(--serif); font-weight: 400; font-size: 30px; color: var(--gold-light); line-height: 1; }
.v2-hero__stats span { font-size: 14px; color: #cfdad6; }

/* Article: table of contents beside the text */
.v2-article { background: #fff; }
.v2-article__in { max-width: 1440px; margin: 0 auto; padding: 64px clamp(16px, 3vw, 40px) 80px; display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.v2-aside { position: sticky; top: 130px; display: flex; flex-direction: column; gap: 18px; max-height: calc(100vh - 150px); overflow-y: auto; }
.v2-toc { background: var(--sand); border-radius: 18px; padding: 22px 16px; }
.v2-toc .v2-label { padding: 0 4px 10px; }
.v2-toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.home-v2 .v2-toc a { display: grid; grid-template-columns: 26px 1fr; gap: 6px; padding: 8px 10px; border-radius: 10px; font-size: 14.5px; line-height: 1.35; color: #5b6b65; }
.v2-toc a span:first-child { color: var(--gold); font-weight: 700; }
.home-v2 .v2-toc a:hover { background: #fff; color: var(--green); }
.home-v2 .v2-toc a[aria-current] { background: #fff; color: var(--green); font-weight: 700; }
.v2-ask { background: var(--deep); color: #fff; border-radius: 18px; padding: 22px 20px; display: flex; flex-direction: column; gap: 12px; }
.v2-ask__q { font-family: var(--serif); font-size: 22px; line-height: 1.15; }
.v2-ask p { margin: 0; font-size: 14px; line-height: 1.55; color: #cfdad6; }
.v2-ask .v2-btn { font-size: 13.5px; padding: 12px 16px; }
.home-v2 a.v2-ask__tel { text-align: center; font-size: 14px; font-weight: 700; color: var(--gold-light); }
.v2-article__body { min-width: 0; display: flex; flex-direction: column; gap: 56px; }

/* Ryan's sections */
.v2-sec { scroll-margin-top: 130px; display: flex; flex-direction: column; gap: 18px; padding-bottom: 56px; border-bottom: 1px solid #ece7da; }
.v2-sec--last { border-bottom: 0; padding-bottom: 0; }
.v2-sec > .v2-h2 { margin-top: -10px; }
.v2-sec p { margin: 0; font-size: 17px; line-height: 1.7; color: #3d4a45; text-wrap: pretty; }
.v2-sec h3 { margin: 18px 0 0; font-size: 21px; color: var(--green); }
.v2-quote { margin: 6px 0; padding: 22px 26px; background: var(--mint); border-radius: 16px; font-family: var(--serif); font-size: clamp(22px, 2.2vw, 28px); line-height: 1.3; color: var(--green); }
.v2-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 14px; margin-top: 6px; }
.v2-card { border: 1px solid #ece7da; border-radius: 16px; padding: 20px; display: flex; flex-direction: column; gap: 8px; transition: border-color .2s; }
.v2-card:hover { border-color: var(--gold); }
.v2-card__tick { width: 34px; height: 34px; border-radius: 50%; background: var(--mint); color: var(--green); display: flex; align-items: center; justify-content: center; font-weight: 700; }
.v2-card b { font-size: 16.5px; color: var(--green); }
.v2-card > span:last-child { font-size: 15px; line-height: 1.55; color: #5b6b65; }
.v2-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; margin-top: 6px; }
.v2-chips-box { border-radius: 18px; padding: 24px; background: var(--sand); display: flex; flex-direction: column; gap: 12px; }
.v2-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.v2-chips span { background: #fff; border: 1px solid #e3ddcc; border-radius: 30px; padding: 7px 13px; font-size: 14px; color: var(--green); }
.v2-fact { border-radius: 18px; padding: 24px; background: var(--deep); color: #fff; display: flex; flex-direction: column; gap: 10px; }
.v2-fact .v2-label { color: var(--gold-light); }
.v2-fact span:last-child { font-size: 16.5px; line-height: 1.6; color: #e3ece8; }
.v2-table-wrap { overflow-x: auto; border: 1px solid #ece7da; border-radius: 18px; }
.v2-table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 15px; }
.v2-table th, .v2-table td { padding: 14px 18px; text-align: left; vertical-align: top; border-top: 1px solid #ece7da; }
.v2-table thead th { border-top: 0; background: var(--sand); font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #5b6b65; }
.v2-table thead th.is-us { background: var(--green); color: var(--gold-light); }
.v2-table tbody th { font-weight: 700; color: var(--green); }
.v2-table td { color: #5f6e68; }
.v2-table td.is-us { background: var(--mint); font-weight: 600; color: var(--green); }
.v2-steps3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 16px; }
.v2-steps3 > div { border-radius: 18px; padding: 24px; background: var(--mint); display: flex; flex-direction: column; gap: 10px; }
.v2-steps3--line > div { background: #fff; border: 1px solid #ece7da; }
.v2-steps3 .v2-label { color: var(--gold); }
.v2-num { font-family: var(--serif); font-size: 44px; line-height: 1; color: var(--gold); }
.v2-steps3 b { font-size: 18px; color: var(--green); }
.v2-steps3 > div > span:last-child { font-size: 15px; line-height: 1.6; color: #4f5e58; }
.v2-wide-img { width: 100%; aspect-ratio: 16/8; object-fit: cover; border-radius: 18px; display: block; margin-top: 8px; }
.v2-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 14px; }
.home-v2 .v2-links a { border: 1px solid #ece7da; border-radius: 16px; padding: 20px; display: flex; flex-direction: column; gap: 10px; color: inherit; transition: border-color .2s, box-shadow .2s; }
.home-v2 .v2-links a:hover { border-color: var(--gold); box-shadow: 0 14px 30px rgba(14,42,36,.08); color: inherit; }
.v2-links b { font-size: 17px; color: var(--green); }
.v2-links span { font-size: 14.5px; line-height: 1.55; color: #5b6b65; }
.v2-links .v2-more { margin-top: auto; font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #b0924a; }
.v2-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 14px; }
.v2-cols > div { border-radius: 16px; padding: 20px; background: var(--mint); display: flex; flex-direction: column; gap: 10px; }
.v2-cols > div.is-warm { background: #fbf6ea; }
.v2-cols b { color: var(--green); }
.v2-cols ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; font-size: 15px; line-height: 1.5; color: #4f5e58; }
.v2-diff { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 22px; align-items: start; }
.v2-diff > img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: 18px; display: block; }
.v2-diff > div { display: flex; flex-direction: column; gap: 18px; }
.v2-diff__row { display: grid; grid-template-columns: 40px 1fr; gap: 14px; font-size: 15px; line-height: 1.6; color: #5b6b65; }
.v2-diff__row > span:first-child { width: 40px; height: 40px; border-radius: 50%; background: var(--gold); color: var(--deep); display: flex; align-items: center; justify-content: center; font-weight: 700; }
.v2-diff__row b { display: block; font-size: 17px; color: var(--green); margin-bottom: 4px; }
.v2-timeline { border-radius: 18px; background: var(--deep); color: #fff; padding: 26px clamp(20px, 3vw, 32px); display: flex; flex-direction: column; gap: 18px; }
.v2-timeline__t { font-family: var(--serif); font-size: 24px; }
.v2-timeline > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 18px; }
.v2-timeline > div > div { border-top: 2px solid var(--gold); padding-top: 12px; display: flex; flex-direction: column; gap: 6px; }
.v2-timeline b { color: var(--gold-light); }
.v2-timeline > div span { font-size: 15px; line-height: 1.55; color: #d5e1dc; }
.v2-timeline small { font-size: 13px; color: #a9bfb7; }
.v2-faq { display: flex; flex-direction: column; gap: 10px; }
.v2-faq__item { border: 1px solid #ece7da; border-radius: 16px; background: #fff; overflow: hidden; transition: border-color .2s, background .2s; }
.v2-faq__item.is-open { border-color: var(--gold); background: #fffdf7; }
.v2-faq__item button { all: unset; box-sizing: border-box; cursor: pointer; width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 22px; font-weight: 700; font-size: 17px; color: var(--green); }
.v2-faq__item button:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
/* the question's heading (CON-04) adds no look of its own: the button inside keeps the styles above */
.v2-faq .v2-faq__q { margin: 0; padding: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; }
/* the sign is the logo's mark (audit line DES-10), as on the home page: it turns as the answer opens, on green */
.v2-faq__sign { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--mint); display: flex; align-items: center; justify-content: center; transition: background .2s; }
.v2-faq .v2-faq__sign img { width: 18px; max-width: none; border-radius: 0; height: 18px; display: block; transition: transform .3s; }
.v2-faq__item.is-open .v2-faq__sign { background: var(--green); }
.v2-faq .v2-faq__item.is-open .v2-faq__sign img { transform: rotate(90deg); }
.v2-summary-sign img { width: 20px; height: 20px; display: block; transition: transform .3s; }
details[open] > summary .v2-summary-sign img { transform: rotate(90deg); }
.v2-faq__a { display: none; padding: 0 22px 20px; }
.v2-faq__item.is-open .v2-faq__a { display: block; }
.v2-faq__a p { font-size: 16px; color: #4f5e58; }
.v2-refs { margin: 0; padding: 0; list-style: none; counter-reset: ref; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 8px 24px; }
.v2-refs li { counter-increment: ref; display: grid; grid-template-columns: 28px 1fr; font-size: 14.5px; line-height: 1.5; }
.v2-refs li::before { content: counter(ref); color: var(--gold); font-weight: 700; }
.v2-disclaimer { margin-top: 8px !important; padding: 16px 18px; background: var(--sand); border-radius: 12px; font-size: 13.5px !important; line-height: 1.6 !important; color: #5f6e68 !important; }

/* Two versions, one shown: Ryan's summary or the page's original text ("Full article" / "Full details").
   The switch swaps them in place; both stay in the HTML for search engines. */
[data-views][data-view="summary"] .v2-view--full, [data-views][data-view="full"] .v2-view--summary,
[data-views][data-view="summary"] .v2-toc--full, [data-views][data-view="full"] .v2-toc--summary { display: none; }
.v2-view { display: flex; flex-direction: column; gap: 56px; scroll-margin-top: 130px; }
.v2-view--full { gap: 0; }
.v2-views .v2-view { gap: 0; }
.v2-switch { scroll-margin-top: 140px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.v2-switch__label { font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #6b7a74; }
.v2-switch__seg { display: inline-flex; padding: 4px; gap: 4px; border-radius: 40px; background: var(--sand); border: 1px solid #e3ddcc; }
.v2-switch__seg button { all: unset; box-sizing: border-box; cursor: pointer; padding: 9px 20px; border-radius: 30px; font-size: 14.5px; font-weight: 700; color: var(--green); transition: background .2s, color .2s; }
.v2-switch__seg button:hover { background: #fff; }
.v2-switch__seg button[aria-pressed="true"] { background: var(--green); color: #fff; }
.v2-switch__seg button:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.v2-switch-wrap { max-width: 1240px; padding-top: 32px; padding-bottom: 8px; }
.v2-switch-cta { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; padding: 24px clamp(20px, 3vw, 32px); border-radius: 20px; background: var(--sand); border: 1px solid #e3ddcc; }
.v2-switch-cta > div { display: flex; flex-direction: column; gap: 4px; }
.v2-switch-cta b { font-family: var(--serif); font-weight: 400; font-size: 24px; color: var(--green); }
.v2-switch-cta span { font-size: 15px; color: #5b6b65; }
.v2-views > .v2-view > .v2-switch-cta { max-width: 1240px; margin: 24px auto 48px; width: calc(100% - 2 * clamp(16px, 3vw, 40px)); }

/* The page's video */
.home-v2 a.v2-video { position: relative; display: block; margin-bottom: 28px; border-radius: 18px; overflow: hidden; background: var(--deep); aspect-ratio: 16/9; }
.v2-video img { width: 100%; height: 100%; object-fit: cover; display: block; }
.v2-video .hv-video__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); margin: 0; width: 84px; height: 84px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 16px 40px rgba(0,0,0,.3); }
.v2-video:hover .hv-video__play { transform: translate(-50%, -50%) scale(1.06); }   /* centred: the home page's button is placed by a margin, which these drop */

/* The original text (WordPress blocks) */
.v2-prose { font-size: 17px; line-height: 1.7; color: #3d4a45; overflow-wrap: break-word; }
.v2-prose > :first-child { margin-top: 0; }
.v2-prose p { margin: 0 0 16px; }
.v2-prose h2 { scroll-margin-top: 130px; margin: 48px 0 16px; font-family: var(--serif); font-weight: 400; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.15; color: var(--green); text-wrap: balance; }
.v2-prose h3 { scroll-margin-top: 130px; margin: 30px 0 10px; font-size: 21px; line-height: 1.3; color: var(--green); }
.v2-prose h4, .v2-prose h5, .v2-prose h6 { margin: 22px 0 8px; font-size: 18px; line-height: 1.35; color: var(--green); }
.v2-prose ul, .v2-prose ol { margin: 0 0 18px; padding-left: 22px; }
.v2-prose li { margin: 0 0 8px; }
.v2-prose li::marker { color: var(--gold); }
.v2-prose strong { color: #26332e; }
.home-v2 .v2-prose a { color: var(--green); text-decoration: underline; text-decoration-color: rgba(194,168,94,.6); text-underline-offset: 3px; }
.home-v2 .v2-prose a:hover { color: #b0924a; }
.v2-prose img { max-width: 100%; height: auto; border-radius: 14px; }
.v2-prose figure { margin: 24px 0; }
.v2-prose figcaption { font-size: 14px; color: #6b7a74; margin-top: 8px; }
.v2-prose blockquote, .v2-prose .wp-block-quote { margin: 24px 0; padding: 20px 24px; background: var(--mint); border-left: 3px solid var(--gold); border-radius: 0 14px 14px 0; font-family: var(--serif); font-size: 21px; line-height: 1.4; color: var(--green); }
.v2-prose blockquote p:last-child { margin: 0; }
.v2-prose hr { border: 0; border-top: 1px solid #ece7da; margin: 32px 0; }
.v2-prose .has-text-align-center { text-align: center; }
/* Columns and image-beside-text groups */
.v2-prose .wp-block-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 24px 32px; margin: 24px 0; align-items: start; }
.v2-prose .wp-block-column > :last-child { margin-bottom: 0; }
.v2-prose .g--col-img-sticky img, .v2-prose .wp-block-image img { width: 100%; object-fit: cover; }
/* the photo beside a long text stays in view while the text scrolls past (as on the live pages), only while the
   two sit side by side; stacked on a phone, it scrolls with the text */
@media (min-width: 1024px) { .v2-prose .wp-block-column.g--col-img-sticky { position: sticky; top: 130px; } }
/* Sections that were white text on a dark band */
.v2-prose .g--full-width-with-bg { margin: 32px 0; padding: clamp(22px, 3vw, 34px); border-radius: 18px; background: var(--deep); color: #e3ece8; }
.v2-prose .g--full-width-with-bg h2, .v2-prose .g--full-width-with-bg h3, .v2-prose .g--full-width-with-bg h4, .v2-prose .g--full-width-with-bg strong, .v2-prose .has-white-color { color: #fff; }
.home-v2 .v2-prose .g--full-width-with-bg a { color: var(--gold-light); }
/* Tables */
.v2-prose .wp-block-table { margin: 24px 0; overflow-x: auto; border: 1px solid #ece7da; border-radius: 16px; }
.v2-prose table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.v2-prose th, .v2-prose td { padding: 12px 16px; border-top: 1px solid #ece7da; text-align: left; vertical-align: top; }
.v2-prose tr:first-child th, .v2-prose tr:first-child td { border-top: 0; }
.v2-prose thead th, .v2-prose tr:first-child td strong { color: var(--green); }
.v2-prose thead { background: var(--sand); }
/* Buttons the text carries */
.v2-prose .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0; justify-content: center; }
.home-v2 .v2-prose a.wp-block-button__link { display: inline-block; background: var(--gold) !important; color: var(--deep) !important; font-size: 15px; font-weight: 700; text-transform: uppercase; text-decoration: none; padding: 14px 24px; border-radius: 40px; }
.home-v2 .v2-prose a.wp-block-button__link:hover { background: var(--green) !important; color: #fff !important; }
/* The audit's calls to action, citations, pictures and FAQ marks */
.home-v2 p.rejuv-cta { margin: 22px 0; padding: 16px 20px; border-left: 3px solid var(--gold); background: rgba(194,168,94,.1); border-radius: 0 12px 12px 0; font-size: 16px; line-height: 1.55; }
.home-v2 p.rejuv-cta a { font-weight: 700; }
.home-v2 p.rejuv-cta a.rejuv-cta__button { display: inline-block; margin: 8px 0 0 4px; padding: 9px 18px; border-radius: 30px; background: var(--gold); color: var(--deep); text-decoration: none; text-transform: uppercase; font-size: 13.5px; letter-spacing: .4px; }
.home-v2 p.rejuv-cta a.rejuv-cta__button:hover { background: var(--green); color: #fff; }
.v2-prose sup.rejuv-cite { font-size: .7em; line-height: 0; margin-left: 1px; }
.home-v2 .v2-prose sup.rejuv-cite a { text-decoration: none; font-weight: 700; color: #b0924a; }
.v2-prose figure.rejuv-figure { margin: 28px auto; max-width: 620px; }
.v2-prose img.rejuv-faq-mark { width: 20px; height: 20px; border-radius: 0; vertical-align: -3px; margin-right: 8px; }
.v2-prose .rank-math-block { margin: 18px 0; }
.v2-prose .rank-math-list-item { padding: 18px 0; border-top: 1px solid #ece7da; }
.v2-prose .rank-math-question { margin: 0 0 8px; }
.v2-prose .rank-math-answer p:last-child { margin-bottom: 0; }
/* The Updated date and the Sources list (audit lines AI-03, CON-02) */
.v2-article__body div.rejuv-updated { margin: 24px 0 0; font-size: 14px; color: #6b7a74; }
:is(.v2-article__body, .v2-sources-end) .rejuv-sources { margin-top: 18px; padding: 24px 0 0; border-top: 1px solid #ece7da; }
:is(.v2-article__body, .v2-sources-end) .rejuv-sources__title { font-family: var(--serif); font-size: 24px; line-height: 1.2; margin: 0 0 14px; color: var(--green); }
:is(.v2-article__body, .v2-sources-end) .rejuv-sources ol { margin: 0; padding-left: 22px; font-size: 14.5px; line-height: 1.6; color: #5b6b65; }
:is(.v2-article__body, .v2-sources-end) .rejuv-sources li { margin: 0 0 6px; overflow-wrap: anywhere; scroll-margin-top: 130px; }

/* Reviews */
.v2-reviews { background: var(--mint); }
.v2-reviews .v2-wrap { padding-top: 72px; padding-bottom: 72px; }
.v2-headrow { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 18px; }
.v2-reviews__grid { margin-top: 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 18px; }
.v2-review { margin: 0; background: #fff; border-radius: 20px; padding: 26px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 18px 40px rgba(14,42,36,.06); }
.v2-review__stars { color: var(--gold); letter-spacing: 3px; }
.v2-review blockquote { margin: 0; flex: 1; font-size: 17px; line-height: 1.6; color: #2f3d38; }
.v2-review figcaption { font-weight: 700; color: var(--green); display: flex; flex-direction: column; gap: 2px; }
.v2-review figcaption small { font-weight: 400; font-size: 13px; color: #6b7a74; }

/* All treatments / conditions */
.v2-all { background: var(--sand); }
.v2-all .v2-wrap { padding-top: 64px; padding-bottom: 64px; display: flex; flex-direction: column; gap: 22px; }
.v2-all__list { display: flex; flex-wrap: wrap; gap: 10px; }
.home-v2 .v2-all__list a { display: flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 40px; font-size: 15px; font-weight: 600; background: #fff; color: var(--green); border: 1px solid #e3ddcc; }
.home-v2 .v2-all__list a:hover { border-color: var(--gold); }
.home-v2 .v2-all__list a.is-here { background: var(--green); color: #fff; border-color: var(--green); }
.v2-all__list small { font-size: 11.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--gold-light); }

/* Blog post: centred hero, the picture over its edge, the text beside a table of contents */
.v2-hero__mark--right { left: auto; right: -160px; top: -160px; }
.v2-phero { position: relative; background: var(--deep); color: #fff; overflow: hidden; }
.v2-phero__in { position: relative; max-width: 1100px; margin: 0 auto; padding: 44px clamp(16px, 3vw, 40px) 150px; display: flex; flex-direction: column; gap: 20px; align-items: center; text-align: center; }
.v2-phero .v2-crumbs { justify-content: center; }
.home-v2 a.v2-pill { display: inline-flex; align-items: center; background: rgba(194,168,94,.16); border: 1px solid rgba(194,168,94,.5); color: var(--gold-light); border-radius: 30px; padding: 7px 16px; font-size: 13px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; }
.home-v2 a.v2-pill:hover { background: var(--gold); color: var(--deep); }
.v2-phero h1, .v2-lhero h1 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(36px, 5vw, 62px); line-height: 1.06; letter-spacing: -.5px; text-wrap: balance; max-width: 920px; }
.v2-phero .v2-hero__sub { max-width: 720px; }
.v2-phero__meta { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 22px; font-size: 14.5px; color: #cfdad6; }
.v2-phero__by { display: flex; align-items: center; gap: 10px; }
.v2-phero__logo { width: 34px; height: 34px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; }
.v2-phero__logo img { width: 24px; height: 24px; }
.v2-pimage { background: #fff; }
.v2-pimage > div { max-width: 1100px; margin: -110px auto 0; padding: 0 clamp(16px, 3vw, 40px); position: relative; }
.v2-pimage img { width: 100%; aspect-ratio: 16/8; object-fit: cover; border-radius: 24px; display: block; box-shadow: 0 40px 80px rgba(14,42,36,.25); background: #e7e1d2; }
.v2-article--post .v2-article__in { max-width: 1240px; padding-top: 56px; }
.v2-article--post .v2-article__body { max-width: 780px; gap: 0; }
.home-v2 a.v2-link { font-size: 14px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--green); }
.home-v2 a.v2-link:hover { color: var(--gold); }
/* "View all" under a section's list of pages (audit line DES-08) */
.v2-related { background: var(--sand); }
.v2-related .v2-wrap { max-width: 1240px; padding-top: 64px; padding-bottom: 64px; }
/* Article cards */
.v2-posts { margin-top: 28px; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.home-v2 a.v2-post { background: #fff; border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; color: inherit; border: 1px solid #ece7da; transition: box-shadow .2s, transform .2s; }
.home-v2 a.v2-post:hover { box-shadow: 0 18px 40px rgba(14,42,36,.1); transform: translateY(-2px); color: inherit; }
.v2-post > img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; background: #e7e1d2; }
.v2-post__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.v2-post__meta { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: #b0924a; }
.v2-post__meta span:last-child { color: #6b7a74; }
.v2-post__title { font-family: var(--serif); font-size: 22px; line-height: 1.2; color: var(--green); }
.v2-post__desc { font-size: 16px; line-height: 1.6; color: #4f5e58; }
.v2-post .v2-more { margin-top: auto; font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #b0924a; }
.home-v2 a.v2-post--big { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); margin-top: 28px; }
.v2-post--big > img { aspect-ratio: auto; height: 100%; min-height: 300px; }
.v2-post--big .v2-post__body { padding: clamp(24px, 3vw, 40px); justify-content: center; gap: 14px; }
.v2-post--big .v2-post__title { font-size: clamp(28px, 3vw, 38px); }
/* Blog and topic pages */
.v2-lhero { position: relative; background: var(--deep); color: #fff; overflow: hidden; }
.v2-lhero__in { position: relative; max-width: 1240px; margin: 0 auto; padding: 40px clamp(16px, 3vw, 40px) 56px; display: flex; flex-direction: column; gap: 16px; }
.v2-listing { background: #fff; }
.v2-listing .v2-wrap { max-width: 1240px; padding-top: 48px; padding-bottom: 72px; }
.v2-cats { display: flex; flex-wrap: wrap; gap: 8px; }
.home-v2 .v2-cats a { padding: 9px 15px; border-radius: 30px; border: 1px solid #e0d9c6; font-size: 14px; font-weight: 600; color: var(--green); }
.home-v2 .v2-cats a:hover { border-color: var(--gold); }
.home-v2 .v2-cats a[aria-current] { background: var(--green); border-color: var(--green); color: #fff; }
@media (max-width: 767px) {
  .v2-phero__in { padding-bottom: 110px; }
  .v2-pimage > div { margin-top: -80px; }
}

/* Other pages: the original text's blocks (cards, listing items, pictures, buttons, galleries) */
.v2-article--plain .v2-article__in { grid-template-columns: minmax(0, 1fr); max-width: 980px; }
/* A page of cards (reviews, testimonials): the template's full width, its paragraphs and headings at a reading width. */
.v2-article--wide .v2-article__in { max-width: 1440px; padding-bottom: 0; }   /* the cards end about 90px above the contact panel */
.v2-article--wide .v2-prose > :not(.v2-items):not(.v2-boxes):not(.v2-video):not(figure):not(.v2-rating) { max-width: 760px; }
.v2-prose .v2-boxes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 18px; margin: 24px 0; }
.v2-prose .v2-box { border: 1px solid #ece7da; border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 8px; background: #fff; }
.v2-prose .v2-box img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; margin-bottom: 6px; }
.v2-prose .v2-box h3 { margin: 0; font-size: 18px; }
.v2-prose .v2-box p { margin: 0; font-size: 15px; line-height: 1.55; color: #5b6b65; }
/* A step's small icon at the top of its card (MarkUp pin 23), and two or four cards two to a row (pin 25). */
.v2-prose .v2-box img.v2-box__icon:is(.v2-small, .v2-box__icon) { width: 56px; height: 56px; aspect-ratio: auto; object-fit: contain; padding: 11px; border-radius: 50%; background: var(--deep); margin: 0 0 4px; }   /* the icons are pale line art, drawn for a dark ground */
.v2-prose .v2-box p.v2-box__lead { font-size: 12.5px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: #b0924a; }
@media (min-width: 700px) { .v2-prose .v2-boxes--pairs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* A box on its own (picture and text): the width of the text, the picture beside its words. */
.v2-prose > .v2-boxes--one { grid-template-columns: 1fr; }
@media (min-width: 700px) { .v2-prose > .v2-boxes--one .v2-box { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); column-gap: 24px; align-items: center; } .v2-prose > .v2-boxes--one .v2-box img { grid-row: span 3; margin: 0; } }
/* A section heading's subtitle (from the page builder's heading boxes). */
.v2-prose .v2-sub { margin: -8px 0 18px; font-size: 17px; color: #5b6b65; }
.v2-prose .v2-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 18px; margin: 24px 0; }
.v2-prose .v2-item { border-radius: 18px; padding: 22px; background: var(--mint); font-size: 15.5px; line-height: 1.6; }
.v2-prose .v2-item > :last-child { margin-bottom: 0; }
/* Cards of different lengths (reviews, testimonials) flow in columns, each as tall as its text; numbered steps keep the grid. */
.v2-prose .v2-items:not(.v2-items--steps) { display: block; columns: 3 260px; column-gap: 18px; }
.v2-prose .v2-items:not(.v2-items--steps) > .v2-item { break-inside: avoid; margin-bottom: 18px; }
/* (with inner.js: the cards in balanced columns, each placed in the shortest) */
.v2-prose .v2-items.v2-items--masonry { display: flex; align-items: flex-start; gap: 18px; columns: auto; }
.v2-prose .v2-items--masonry > .v2-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
/* Google review cards (the build's reviewCards: Written Reviews, Video Testimonials) and the rating above them. */
.v2-prose .v2-rating { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 0 auto 40px; text-align: center; }
.v2-prose .v2-rating img { width: 167px; height: auto; border-radius: 0; margin: 0; }
.v2-prose .v2-rating p { margin: 0; font-size: 18px; color: var(--green); }
.v2-prose .v2-item.v2-rcard { background: #fff; border: 1px solid #ece7da; border-radius: 20px; padding: 24px 26px; display: flex; flex-direction: column; gap: 16px; box-shadow: 0 12px 32px rgba(14,42,36,.05); font-size: 16px; line-height: 1.65; color: #2f3d38; }
.v2-prose .v2-rcard .v2-video { margin: 0; }
.v2-prose .v2-rcard__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.v2-prose .v2-rcard__stars { color: var(--gold); font-size: 19px; letter-spacing: 3px; line-height: 1; }
.v2-prose .v2-rcard img.v2-rcard__g { width: 22px; height: 22px; border-radius: 0; margin: 0; flex: none; }
.v2-prose .v2-rcard__text > * { margin: 0 0 12px; }
.v2-prose .v2-rcard__text > :last-child { margin-bottom: 0; }
.v2-prose .v2-rcard__text h2, .v2-prose .v2-rcard__text h3 { font-family: var(--sans); font-size: 18px; font-weight: 700; line-height: 1.35; color: var(--green); }
.v2-prose .v2-rcard__by { display: flex; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid #ece7da; }
.v2-prose .v2-rcard img.v2-rcard__face { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; margin: 0; flex: none; }
.v2-prose .v2-rcard__by span { display: flex; flex-direction: column; line-height: 1.3; }
.v2-prose .v2-rcard__by b { color: var(--green); font-size: 15px; }
.v2-prose .v2-rcard__by small { color: #6b7a74; font-size: 13px; }
.v2-prose .v2-item h2, .v2-prose .v2-item h3, .v2-prose .v2-item h4 { margin: 0 0 8px; font-size: 18px; font-family: var(--sans); font-weight: 700; }
.v2-prose .v2-item img { width: 100%; border-radius: 12px; }
.v2-prose .v2-item .v2-box { border: 0; padding: 0; background: transparent; }
.v2-prose figure.v2-fig { margin: 24px 0; }
.v2-prose figure.v2-fig img { width: 100%; }
/* Photos in the text share one height (MarkUp pin 22): never taller than 560px, shown whole and centred, so
   a square or tall photo is not a page-high block beside wide ones. Side pictures and small ones are apart. */
.v2-prose figure.v2-fig:not(.v2-fig--side) img:not(.v2-small) { width: auto; max-width: 100%; max-height: 560px; display: block; margin-inline: auto; }
/* A reviewer's photo is round, as the review cards' others are (MarkUp pin 28: Big E's was a rectangle). */
.v2-prose .v2-item:has(> h3.jet-listing-dynamic-field__content) .v2-box img { width: 97px; height: 97px; aspect-ratio: 1; object-fit: cover; object-position: 50% 25%; border-radius: 50%; }
/* Logos, star rows and little portraits at their own size (marked v2-small by the build). */
.v2-prose figure.v2-fig img.v2-small, .v2-prose .v2-box img.v2-small, .v2-prose .v2-item img.v2-small { width: auto; max-width: 100%; aspect-ratio: auto; object-fit: contain; border-radius: 0; align-self: flex-start; }
.v2-prose figure.v2-fig:has(img.v2-small) { margin: 12px 0; }
.v2-prose .v2-btnrow { margin: 18px 0; }
.home-v2 .v2-prose a.v2-btn { text-decoration: none; }
.v2-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px; margin: 24px 0; }
.v2-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; display: block; }
.v2-gallery--big { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 18px; margin: 0; }
.v2-gallery--big figure { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.v2-gallery--big img { border-radius: 18px; }
.v2-gallery--big figcaption { font-size: 15px; line-height: 1.5; color: #4f5e58; }
.v2-gallery--big figcaption span { display: block; font-size: 12px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #b0924a; margin-bottom: 2px; }
.v2-galpage .v2-wrap, .v2-faqpage .v2-wrap { max-width: 1240px; padding-top: 56px; padding-bottom: 72px; }
.v2-faqpage .v2-wrap { display: flex; flex-direction: column; gap: 48px; max-width: 1000px; }
.v2-faqgroup .v2-faq { margin-top: 20px; }
.v2-faqgroup .v2-faq__a p { margin: 0; font-size: 16px; line-height: 1.65; color: #4f5e58; }
.v2-fullwrap { background: #fff; }
.v2-fullwrap .v2-wrap { max-width: 1240px; padding-top: 40px; padding-bottom: 40px; }

/* Tablets and phones: the table of contents above the text */
@media (max-width: 1024px) {
  .v2-article__in { grid-template-columns: minmax(0, 1fr); }
  .v2-aside { position: static; max-height: none; overflow: visible; }
  .v2-ask { display: none; }
}
@media (max-width: 767px) {
  .v2-hero__in { padding-top: 28px; gap: 40px; }
  .v2-hero__sub { font-size: 17px; }
  .v2-hero__badge { left: 10px; right: 10px; bottom: -26px; }
  .v2-article__in { padding-top: 44px; }
  .v2-article__body { gap: 44px; }
  .v2-sec { padding-bottom: 44px; }
  .v2-prose { font-size: 16.5px; }
}
/* CON-02: the Sources list at the end of the page (moved there by _dev/v2/build.js) */
/* Written Reviews: the rating card fits its contents, at the right of the header, centred (MarkUp pin 29: it
   filled half the header with its contents at its left). Ryan's markup is kept as he wrote it, hence these. */
section[data-screen-label="Page Hero"] div[style*="border-radius:22px;padding:32px"] { justify-self: end; width: 100%; max-width: 380px; align-items: center; text-align: center; }
section[data-screen-label="Page Hero"] div[style*="border-radius:22px;padding:32px"] > a { align-self: center !important; }
@media (max-width: 1000px) { section[data-screen-label="Page Hero"] div[style*="border-radius:22px;padding:32px"] { justify-self: start; } }
.v2-sources-end { padding-block: 48px; }   /* (space above too: it sat against the band before it, MarkUp pin 27) */
.v2-sources-end .rejuv-sources { margin-top: 0; padding-top: 32px; }

/* ---- Design pass, Oct 28, 2026 ---- */
/* Whatever sits right above the contact panel ends about 90px above it (the panel's own top space). */
.v2-article:has(+ .hv-contact) .v2-article__in,
.v2-listing:has(+ .hv-contact) .v2-wrap,
.v2-galpage:has(+ .hv-contact) .v2-wrap,
.v2-faqpage:has(+ .hv-contact) .v2-wrap { padding-bottom: 0; }
/* Reading width: lines of text stay under about 85 characters; pictures, cards and tables keep the column. */
.v2-article__body .v2-prose > :is(p, ul, ol, h2, h3, h4, blockquote, .rejuv-cta) { max-width: 760px; }
/* A portrait opening the page (team profiles): its own size, the text beside it; above the text on phones. */
.v2-prose > figure.v2-fig--side { float: left; margin: 6px 40px 24px 0; }
.v2-prose > figure.v2-fig--side img { width: auto; max-width: 100%; border-radius: 18px; }
.v2-prose > figure.v2-fig--side + h2 { margin-top: 0; }
.v2-prose::after { content: ""; display: block; clear: both; }
@media (max-width: 700px) {
  .v2-prose > figure.v2-fig--side { float: none; margin: 0 0 24px; }
  .v2-prose > figure.v2-fig--side img { max-width: 240px; }
}
/* The "Updated" date: a line under the hero's introduction (article pages only). */
.v2-hero__updated { margin: 14px 0 0; font-size: 14px; letter-spacing: .2px; color: rgba(255, 255, 255, .72); }
.v2-hero__updated time { color: #fff; }
/* Videos never wider than the column (a 568px one pushed a phone page sideways). */
.v2-prose video { max-width: 100%; height: auto; }
/* "Citations and References" (the build's citationCard): a card closing the page, in the site's colors. */
.v2-sources-end .rejuv-sources { margin: 0; padding: 0; border: 0; }
.v2-sources-end .rejuv-sources__in { max-width: none; background: var(--sand, #f6f4f0); border: 1px solid #ece7da; border-radius: 20px; padding: 28px 32px 22px; }
.v2-sources-end .rejuv-sources__title { font-family: var(--serif); font-size: 26px; line-height: 1.2; margin: 0 0 8px; color: var(--green); }
.v2-sources-end .rejuv-sources__intro { margin: 0 0 16px; max-width: 760px; font-size: 15px; line-height: 1.6; color: #5b6b65; }
.v2-sources-end .rejuv-sources ol { margin: 0; padding-left: 24px; font-size: 14.5px; line-height: 1.65; color: #2f3d38; }
.v2-sources-end .rejuv-sources li { margin: 0 0 6px; overflow-wrap: anywhere; scroll-margin-top: 130px; }
.v2-sources-end .rejuv-sources li::marker { color: #b0924a; font-weight: 700; }
.v2-sources-end .rejuv-sources a { color: var(--green); text-decoration: underline; text-decoration-color: rgba(194, 168, 94, .7); text-underline-offset: 3px; }
.v2-sources-end .rejuv-sources a:hover { color: #b0924a; }
.v2-sources-end .rejuv-sources li:target { background: #fffdf3; border-radius: 6px; }
@media (max-width: 700px) { .v2-sources-end .rejuv-sources__in { padding: 22px 18px 16px; } }
.v2-article__body .v2-prose > .v2-faq { max-width: 760px; }   /* an article's FAQ lines up with its text */

/* Laptop screens: the contents list scrolls inside the sidebar, so the consultation box under it always shows whole. */
@media (min-width: 1025px) {
  .v2-aside { overflow: hidden; }
  .v2-aside > .v2-toc { flex: 0 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
  .v2-aside > :not(.v2-toc) { flex-shrink: 0; }
}
/* Site map: a group's page count on one line, level with its title. */
div[style*="justify-content:space-between;align-items:baseline"] > span[style*="color:#b0924a"] { white-space: nowrap; flex-shrink: 0; }
/* Treatment card lists (/cancun/, Choose RejuvStem): a grid, so each row shares one top line, "Read More" at the foot. */
.v2-prose .v2-items:not(.v2-items--steps):not(.v2-items--masonry):has(> .v2-item > p.jet-listing-dynamic-field__content) { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); columns: auto; }
.v2-prose .v2-items:has(> .v2-item > p.jet-listing-dynamic-field__content) > .v2-item { margin-bottom: 0; display: flex; flex-direction: column; }
.v2-prose .v2-items:has(> .v2-item > p.jet-listing-dynamic-field__content) > .v2-item > p:last-child { margin-top: auto; }
/* "More About RejuvStem" cards: a deeper shade under the white titles, over bright photos too. */
a[style*="justify-content:flex-end;min-height:300px"] > span[style*="linear-gradient(180deg,rgba(15,58,48,0) 25%"] { background: linear-gradient(180deg, rgba(15,58,48,0) 15%, rgba(15,58,48,.6) 50%, rgba(15,58,48,.95) 100%) !important; }
a[style*="justify-content:flex-end;min-height:300px"] > span:last-child { text-shadow: 0 1px 12px rgba(9,26,22,.45); }
@media (max-width: 640px) {
  /* Treatment hero badge: inside the screen, with the photo's side margin. */
  div[style*="position:absolute;left:-18px;bottom:-22px"] { left: 12px !important; right: 12px; }
  /* Comparison tables: say they scroll, and keep the first column in view. */
  div[style*="overflow-x:auto;border:1px solid #ece7da"]::before { content: "Swipe to compare \2192"; position: sticky; left: 0; display: block; padding: 9px 14px; font-size: 12.5px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: #b0924a; background: #fffdf6; border-bottom: 1px solid #ece7da; }
  div[style*="overflow-x:auto;border:1px solid #ece7da"] table { font-size: 14px !important; }
  div[style*="overflow-x:auto;border:1px solid #ece7da"] :is(th, td) { padding: 11px 12px !important; }
  div[style*="overflow-x:auto;border:1px solid #ece7da"] :is(th, td):first-child { position: sticky; left: 0; z-index: 1; max-width: 120px; box-shadow: 6px 0 10px -6px rgba(14,42,36,.25); }
}

/* The scrolling rows on Ryan's pages (his rv-carousel and pf-carousel; their tracks name these animations) */
@keyframes rvScroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 9px)); } }
@keyframes pfScroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 9px)); } }
[data-rv-wrap]:hover [data-rv-track], [data-pf-wrap]:hover [data-pf-track] { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) { [data-rv-track], [data-pf-track] { animation: none !important; } }

/* Play buttons on video cards: a soft pulse, and they grow and turn green on hover */
@keyframes rjPlayPulse { 0% { box-shadow: 0 0 0 0 rgba(194,168,94,.55); } 70% { box-shadow: 0 0 0 16px rgba(194,168,94,0); } 100% { box-shadow: 0 0 0 0 rgba(194,168,94,0); } }
[data-screen-label="Videos"] a span[style*="border-radius:50%"] { z-index: 1; animation: rjPlayPulse 2.2s ease-out infinite; transition: transform .25s ease, background .25s ease; }
[data-screen-label="Videos"] a:hover span[style*="border-radius:50%"] { transform: scale(1.14); background: #134b3d !important; }
@media (prefers-reduced-motion: reduce) { [data-screen-label="Videos"] a span[style*="border-radius:50%"] { animation: none; } }

/* FAQ page as Ryan's: sidebar of topics, call panel, + and - */
.v2-faqpage { background: #f6f4f0; }
.v2-faqpage__in { max-width: 1340px; margin: 0 auto; padding: 56px clamp(16px,3vw,40px) 80px; display: grid; grid-template-columns: 270px minmax(0,1fr); gap: clamp(24px,3vw,48px); align-items: start; }
.v2-faqside { position: sticky; top: 130px; display: flex; flex-direction: column; gap: 14px; }
.v2-faqside__topics { background: #fff; border-radius: 18px; padding: 18px 14px; display: flex; flex-direction: column; gap: 2px; }
.v2-faqside__label { font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #8a978f; padding: 0 10px 8px; }
.v2-faqtopic { all: unset; box-sizing: border-box; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 10px; font-size: 14.5px; font-weight: 500; color: #134b3d; }
.v2-faqtopic span:last-child { font-size: 12px; font-weight: 700; color: #8a978f; }
.v2-faqtopic:hover { background: #f4faf7; }
.v2-faqtopic:focus-visible { outline: 2px solid #c2a85e; }
.v2-faqtopic.is-on { background: #134b3d; color: #fff; font-weight: 700; }
.v2-faqtopic.is-on span:last-child { color: #e0c06b; }
.v2-faqside__call { background: #0f3a30; color: #fff; border-radius: 18px; padding: 20px 18px; display: flex; flex-direction: column; gap: 10px; }
.v2-faqside__call > div { font-family: var(--serif); font-size: 21px; line-height: 1.2; }
.v2-faqside__call p { margin: 0; font-size: 14px; line-height: 1.55; color: #cfdad6; }
.v2-faqside__call a { text-align: center; background: #c2a85e; color: #0f3a30; font-size: 13.5px; font-weight: 700; text-transform: uppercase; padding: 12px 16px; border-radius: 30px; }
.v2-faqside__call a:hover { background: #fff; }
.v2-faqmain { min-width: 0; display: flex; flex-direction: column; gap: 36px; }
.v2-faqmain .v2-h2 { font-size: clamp(24px,2.4vw,32px); }
.v2-faqmain .v2-faq { margin-top: 12px; }
.v2-faqmain .v2-faq__sign img { display: none; }
.v2-faqmain .v2-faq__sign::before { content: '+'; font-size: 18px; color: #134b3d; }
.v2-faqmain .v2-faq__item.is-open .v2-faq__sign::before { content: '−'; color: #fff; }
.v2-faqgroup[hidden], .v2-faq__item[hidden] { display: none; }
@media (max-width: 1100px) { .v2-faqpage__in { grid-template-columns: minmax(0,1fr); } .v2-faqside { position: static; } }

/* Gallery as Ryan's: filters, photos in columns with the caption over them, a photo opens large */
.v2-gal { background: #fff; scroll-margin-top: 110px; }
.v2-gal__in { max-width: 1440px; margin: 0 auto; padding: clamp(48px,5vw,72px) clamp(16px,3vw,40px) clamp(64px,7vw,100px); }
.v2-gal__filters { display: flex; justify-content: center; margin-bottom: 32px; }
.v2-gal__filters > div { display: flex; flex-wrap: wrap; gap: 8px; padding: 6px; border-radius: 40px; background: #f6f4f0; }
.v2-gal__filters button { all: unset; cursor: pointer; padding: 10px 18px; border-radius: 40px; font-size: 14.5px; font-weight: 700; color: #134b3d; transition: background .3s; }
.v2-gal__filters button[aria-pressed="true"] { background: #134b3d; color: #fff; }
.v2-gal__filters button:focus-visible, .v2-gal__item:focus-visible { outline: 2px solid #c2a85e; outline-offset: 2px; }
.v2-gal__grid { columns: 3 300px; column-gap: 14px; }
.v2-gal__item { all: unset; cursor: zoom-in; display: block; width: 100%; margin-bottom: 14px; break-inside: avoid; border-radius: 22px; overflow: hidden; position: relative; background: #e9e4d6; }
.v2-gal__item[hidden] { display: none; }
.v2-gal__item:hover { box-shadow: 0 24px 50px rgba(14,42,36,.16); }
.v2-gal__item img { width: 100%; display: block; transition: transform 1.2s cubic-bezier(.22,1,.36,1); }
.v2-gal__item:hover img { transform: scale(1.05); }
.v2-gal__cap { position: absolute; inset: auto 0 0 0; padding: 40px 16px 14px; background: linear-gradient(0deg, rgba(11,38,32,.78), rgba(11,38,32,0)); display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; color: #fff; }
.v2-gal__cap span:first-child { font-size: 14px; line-height: 1.35; }
.v2-gal__cap span:last-child { flex: none; font-size: 11px; font-weight: 700; letter-spacing: 1.3px; text-transform: uppercase; color: #e0c06b; }
.v2-gal__box { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.v2-gal__box[open] { display: flex; align-items: center; justify-content: center; gap: 12px; }
.v2-gal__box::backdrop { background: rgba(11,38,32,.92); }
.v2-gal__box figure { margin: 0; text-align: center; color: #fff; }
.v2-gal__box img { max-width: 82vw; max-height: 82vh; border-radius: 14px; display: block; margin: 0 auto; }
.v2-gal__box figcaption { margin-top: 10px; font-size: 15px; }
.v2-gal__nav, .v2-gal__x { all: unset; cursor: pointer; color: #fff; font-size: 40px; line-height: 1; padding: 8px 14px; }
.v2-gal__x { position: absolute; top: 14px; right: 18px; }

/* No shadow on the scrolling review cards: the row clips it, leaving a gray haze between the cards (the user, 2 Nov 2026) */
[data-rv-track] > div { box-shadow: none !important; }
