/* Rosa's: warm domestic photography, editorial scale, precise cobalt details. */
.r-home { --r-ink:#102d3f; --r-blue:#1649de; --r-paper:#f4f3ed; --r-yellow:#f5eb66; --r-line:rgba(16,45,63,.2); margin:0; color:var(--r-ink); background:var(--r-paper); font-family:Manrope,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
.r-home main { padding-top:80px; }
.r-home main *, .r-home main *::before, .r-home main *::after { box-sizing:border-box; }
:where(.r-home main) :is(p,h1,h2,h3,figure) { margin:0; }
.r-home main a { color:inherit; text-decoration:none; }
.r-home main button { font:inherit; }
.r-home main img { display:block; width:100%; object-fit:cover; }
.r-home main h1,.r-home main h2 { font-family:Newsreader,Georgia,serif; font-weight:400; letter-spacing:-.045em; }
.r-home main em { font-weight:400; }
.r-home ::selection { background:var(--r-yellow); color:var(--r-ink); }
.r-home main :is(a,button):focus-visible { outline:3px solid var(--r-blue); outline-offset:6px; border-radius:0; }
.r-home main section { scroll-margin-top:80px; }
.r-home .site-progress { background:var(--r-blue); height:2px; }
.r-section { padding:110px 48px; }
.r-eyebrow { font-size:11px; font-weight:650; letter-spacing:.1em; text-transform:uppercase; line-height:1.6; }
.r-display { font-size:clamp(44px,5.2vw,82px); line-height:1.04; }
.r-display em { color:var(--r-blue); }
.r-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:52px; }
.r-section-heading .r-eyebrow { margin-bottom:28px; }
.r-section-aside { font-size:14px; line-height:1.7; }
.r-text-link { display:inline-flex; gap:28px; align-items:center; width:fit-content; padding:13px 0; border-bottom:1px solid currentColor; font-size:13px; font-weight:650; line-height:1.6; }
.r-text-link span { font-size:22px; transition:transform .25s ease; }
.r-text-link:hover span { transform:translate(3px,-3px); }
.r-button { display:inline-flex; align-items:stretch; justify-content:space-between; min-height:62px; font-size:14px; font-weight:650; transition:background .25s,color .25s; }
.r-button > span:first-child { display:flex; align-items:center; padding:18px 28px; }
.r-button .r-arrow { border-left:1px solid currentColor; width:62px; flex-shrink:0; display:grid; place-items:center; font-size:29px; }
.r-home main .r-button-yellow { background:var(--r-yellow); color:var(--r-ink); }
.r-home main .r-button-yellow:hover { background:var(--r-paper); }
.r-home main .r-button-blue { background:var(--r-blue); color:white; }
.r-home main .r-button-blue:hover { background:var(--r-ink); }
.r-arrow { transition:padding .25s ease; }
.r-button:hover .r-arrow { padding-left:5px; padding-bottom:5px; }
.r-hero { position:relative; isolation:isolate; height:calc(100svh - 80px); min-height:680px; max-height:1080px; padding:0 48px; overflow:hidden; color:var(--r-paper); display:flex; flex-direction:column; }
.r-hero-media,.r-hero-shade { position:absolute; inset:0; z-index:-2; }
.r-hero .r-hero-image { width:100%; height:100%; object-position:50% 58%; transform:translateY(var(--hero-shift,0px)) scale(1.035); }
.r-hero-shade { z-index:-1; background:linear-gradient(180deg,rgba(11,25,25,.64) 0%,rgba(11,25,25,.36) 35%,rgba(11,25,25,.16) 48%,rgba(11,25,25,.8) 100%); }
.r-hero-topline { display:flex; align-items:center; justify-content:space-between; padding:22px 0 19px; border-bottom:1px solid rgba(255,255,255,.45); font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.r-hero-identity { display:flex; align-items:center; justify-content:space-between; }
.r-hero .r-hero-wordmark { position:relative; font-family:Newsreader,Georgia,serif; font-size:clamp(150px,23.3vw,370px); line-height:1.07; letter-spacing:-.075em; padding-top:12px; margin-left:-.025em; font-weight:400; }
.r-hero-flower { display:inline-block; font-size:.28em; color:var(--r-yellow); vertical-align:top; margin:.36em 0 0 .34em; line-height:1; letter-spacing:0; }
.r-hero-descriptor { align-self:center; padding-right:4px; font-size:17px; line-height:1.65; }
.r-hero-descriptor span { display:block; font-size:10px; letter-spacing:.14em; text-transform:uppercase; margin-top:23px; }
.r-hero-bottom { margin-top:auto; padding:30px 0 33px; display:flex; align-items:flex-end; justify-content:space-between; gap:32px; }
.r-hero h1 { font-size:clamp(44px,4.9vw,74px); line-height:.99; }
.r-hero-message > p { margin-top:21px; font-size:13px; line-height:1.7; }
.r-hero-action { padding-bottom:3px; }
.r-hero-action .r-button { min-width:305px; }
.r-hero-action p { margin-top:14px; font-size:11px; }
.r-hero-foot { display:flex; justify-content:space-between; gap:20px; align-items:center; border-top:1px solid rgba(255,255,255,.45); font-size:11px; padding:18px 0 21px; }
.r-hero-foot a { display:inline-flex; align-items:center; gap:24px; min-height:24px; }
.r-hero-foot a:last-child span { font-size:13px; }
.r-hero :is(a,button):focus-visible { outline-color:var(--r-yellow)!important; }
.r-intro { display:grid; grid-template-columns:1fr 3fr; gap:50px; padding-top:100px; padding-bottom:105px; }
.r-section-note { display:flex; align-items:center; align-self:start; gap:12px; font-size:11px; line-height:1.6; padding-top:9px; }
.r-tiny-star { color:var(--r-blue); font-size:30px; line-height:1; }
.r-intro .r-display { font-size:clamp(36px,4.1vw,65px); }
.r-intro-bottom { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-top:34px; }
.r-intro-bottom > p { font-size:14px; line-height:1.85; max-width:400px; }
.r-intro-bottom .r-text-link { flex-shrink:0; }
.r-services { border-top:1px solid var(--r-line); padding-top:80px; }
.r-service-grid { display:grid; grid-template-columns:1.08fr 1fr; gap:70px; align-items:start; }
.r-service-figure { position:sticky; top:108px; }
.r-home .r-service-stage { position:relative; height:560px; border-radius:0; overflow:hidden; background:#dce0d8; }
.r-service-stage .service-stage__image { width:100%; height:100%; object-position:54% 50%; }
.r-image-cross { color:white; font-size:32px; position:absolute; font-weight:400; line-height:1; }
.r-image-cross-top { top:14px; left:18px; }
.r-image-cross-bottom { bottom:14px; right:18px; }
.r-service-figure figcaption { display:flex; justify-content:space-between; gap:16px; margin-top:16px; font-size:10px; text-transform:uppercase; letter-spacing:.07em; line-height:1.6; }
.r-service-item { display:grid; grid-template-columns:22px 1fr 24px; gap:18px; padding:29px 0; border-top:1px solid var(--r-line); position:relative; transition:color .25s,background .25s; }
.r-service-item:first-child { padding-top:17px; }
.r-service-item::after { content:""; height:2px; background:var(--r-blue); position:absolute; left:0; right:0; top:-1px; transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.r-service-item.is-active::after { transform:scaleX(1); }
.r-service-index { font-size:10px; padding-top:8px; }
.r-service-item h3 { font:500 clamp(23px,2vw,30px)/1.2 Manrope,Arial,sans-serif; letter-spacing:-.045em; }
.r-service-item p { font-size:12px; line-height:1.7; margin-top:11px!important; }
.r-service-tags { display:block; color:#5b676b; font-size:10px; margin-top:15px; }
.r-service-arrow { font-size:25px; line-height:1; transition:transform .25s; }
.r-service-item.is-active h3,.r-service-item.is-active .r-service-arrow { color:var(--r-blue); }
.r-service-item:hover .r-service-arrow { transform:translate(3px,-3px); }
.r-service-frequency { border-top:1px solid var(--r-line); display:flex; gap:18px; padding-top:23px; font-size:12px; line-height:1.9; }
.r-service-frequency a { border-bottom:1px solid; }
.r-care { background:var(--r-blue); color:var(--r-paper); display:grid; grid-template-columns:1fr 1fr; }
.r-care-copy { padding:82px 65px 78px 48px; }
.r-care h2 { font-size:clamp(68px,7.8vw,116px); line-height:.95; margin-top:45px!important; }
.r-care h2 em { color:var(--r-yellow); }
.r-care-lede { font-size:15px; line-height:1.8; max-width:395px; margin-top:25px!important; }
.r-care-principles { margin:36px 0 26px; }
.r-care-principles > div { display:flex; gap:27px; padding:19px 0; border-top:1px solid rgba(255,255,255,.3); }
.r-care-principles > div > span { font-size:10px; padding-top:3px; }
.r-care-principles p { font-size:12px; line-height:1.7; max-width:340px; }
.r-care-principles strong { display:block; font-weight:650; font-size:14px; margin-bottom:4px; }
.r-care .r-text-link { color:var(--r-yellow); }
.r-care .r-care-image { position:relative; min-height:650px; overflow:hidden; }
.r-care-image img { width:100%; height:100%; position:absolute; inset:0; object-position:56% center; }
.r-care-image::after { content:""; position:absolute; inset:60% 0 0; background:linear-gradient(transparent,rgba(11,25,25,.65)); }
.r-care-image figcaption { position:absolute; bottom:27px; left:30px; right:30px; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:12px; }
.r-care-image figcaption span:last-child { font-size:36px; color:var(--r-yellow); }
.r-care :is(a,button):focus-visible { outline-color:var(--r-yellow)!important; }
.r-process .r-section-heading { margin-bottom:58px; }
.r-process-list { display:grid; grid-template-columns:repeat(3,1fr); gap:56px; list-style:none; padding:0; margin:0 0 48px; }
.r-process-list li { border-top:1px solid var(--r-line); }
.r-process-number { display:flex; align-items:center; justify-content:space-between; font:400 72px/1 Newsreader,Georgia,serif; color:var(--r-blue); padding:26px 0 23px; letter-spacing:-.065em; }
.r-process-number > span { font:400 26px/1 Manrope,sans-serif; }
.r-process-list h3 { font:600 20px/1.4 Manrope,sans-serif; letter-spacing:-.035em; margin-bottom:14px!important; }
.r-process-list p { font-size:13px; line-height:1.85; max-width:300px; }
.r-local { display:grid; grid-template-columns:1fr 1fr; background:#e9ede8; }
.r-local-area { padding:60px 65px 65px 48px; border-right:1px solid var(--r-line); }
.r-local-number { font:400 clamp(105px,14vw,205px)/.95 Newsreader,Georgia,serif; letter-spacing:-.08em; color:var(--r-blue); margin:32px 0 23px!important; display:flex; gap:34px; align-items:flex-start; }
.r-local-number > span { font:400 48px/1 Manrope,sans-serif; padding-top:8px; }
.r-local h2 { font-size:clamp(44px,4.5vw,66px); line-height:1.03; }
.r-local-area > p:not([class]) { max-width:320px; font-size:13px; line-height:1.85; margin-top:21px; }
.r-local-area .r-text-link { margin-top:12px; }
.r-local-note { font-size:10px; line-height:1.7; margin-top:21px!important; color:#536263; }
.r-local-reviews { position:relative; padding:100px 70px 65px; }
.r-reviews-star { display:block; font-size:62px; line-height:1; color:var(--r-blue); margin-bottom:47px; }
.r-local-reviews .r-eyebrow { font-size:10px; margin-bottom:20px; }
.r-local-reviews > p:not([class]) { font-size:13px; line-height:1.85; max-width:350px; margin-top:23px; }
.r-review-source { display:flex; align-items:center; gap:22px; margin-top:30px; min-height:36px; }
.r-review-source a { display:inline-flex; align-items:center; min-height:44px; }
.r-review-source img { width:98px!important; height:18px; object-fit:contain; }
.r-live-rating { align-items:center; gap:12px; }
.r-live-rating:not([hidden]) { display:flex; }
.r-live-rating > span:first-child { font-size:21px; font-weight:600; }
.r-live-rating > span:last-child { font-size:10px; max-width:90px; }
.r-home main .r-review-status { font-size:11px; line-height:1.6; max-width:330px; margin-top:12px; color:#526266; }
.r-review-loading { font-size:11px; }
.r-local-reviews .r-text-link { margin-top:18px; }
.r-review-retry { display:block; padding:12px 0; font-size:11px!important; text-decoration:underline; background:none; border:0; cursor:pointer; }
.r-home [hidden] { display:none!important; }
.r-closing { color:var(--r-blue); padding-top:93px; padding-bottom:58px; }
.r-closing > div:not(.r-closing-bottom) { display:flex; align-items:center; justify-content:space-between; gap:40px; margin:34px 0 56px; }
.r-closing h2 { font-size:clamp(75px,10.5vw,160px); line-height:.95; }
.r-closing-action { width:200px; height:200px; border:1px solid var(--r-blue); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; flex-shrink:0; margin-right:32px; transition:background .3s,color .3s, border-color .3s; }
.r-closing-action > span:first-child { font-size:67px; line-height:1.1; transition:transform .3s; }
.r-closing-action > span:last-child { font-size:13px; font-weight:600; }
.r-closing-action:hover { background:var(--r-yellow); border-color:var(--r-yellow); color:var(--r-ink); }
.r-closing-action:hover > span:first-child { transform:translate(5px,-5px); }
.r-closing-bottom { border-top:1px solid var(--r-line); padding-top:24px; display:flex; align-items:center; justify-content:space-between; gap:24px; font-size:12px; color:var(--r-ink); line-height:1.7; }
.r-closing-bottom a { display:flex; gap:22px; }
.r-closing-bottom a > span { border-bottom:1px solid; }
/* One entrance, one depth cue, and direct hover feedback. Content is always present. */
@keyframes r-settle { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
@keyframes r-photo-arrive { from { opacity:.4; scale:1.025; } to { opacity:1; scale:1; } }
@media (prefers-reduced-motion:no-preference) {
  .r-hero-media { animation:r-photo-arrive 1.35s ease-out both; }
  .r-hero-topline { animation:r-settle .65s .05s both; }
  .r-hero-identity { animation:r-settle .9s .12s both; }
  .r-hero-message { animation:r-settle .8s .22s both; }
  .r-hero-action { animation:r-settle .8s .3s both; }
  .r-motion-ready .r-scroll-settle { transform:translateY(22px); transition:transform .8s cubic-bezier(.2,.7,.2,1); }
  .r-motion-ready .r-scroll-settle.r-in-view { transform:none; }
}
@media(min-width:1600px) { .r-section { padding-left:5vw; padding-right:5vw; } .r-hero { padding-left:5vw; padding-right:5vw; } .r-service-grid { gap:6vw; } .r-service-stage { height:650px; } .r-care-copy { padding-left:5vw; } .r-local-area { padding-left:5vw; } }
@media(max-width:1100px) { .r-section { padding:80px 32px; } .r-hero { padding-left:32px; padding-right:32px; } .r-hero-descriptor { font-size:14px; } .r-intro { grid-template-columns:1fr; gap:28px; } .r-intro .r-display { font-size:55px; } .r-intro-bottom { margin-top:27px; } .r-service-grid { gap:35px; } .r-home .r-service-stage { height:540px; } .r-service-item { gap:12px; } .r-care-copy { padding:65px 35px 60px 32px; } .r-care h2 { font-size:82px; } .r-process-list { gap:30px; } .r-local-area { padding:55px 32px; } .r-local-reviews { padding:70px 40px 55px; } .r-closing-action { margin-right:0; width:170px; height:170px; } }
@media(max-width:760px) {
  .r-home main { padding-top:68px; }
  .r-home main section { scroll-margin-top:68px; }
  .r-section { padding:64px 20px; }
  .r-hero { padding:0 20px; height:calc(100svh - 68px); min-height:660px; max-height:920px; }
  .r-hero-topline { padding:18px 0 15px; font-size:8px; letter-spacing:.08em; }
  .r-hero-topline span:last-child { max-width:114px; text-align:right; }
  .r-hero-identity { align-items:flex-start; }
  .r-hero .r-hero-wordmark { font-size:31vw; line-height:1.2; padding-top:8px; }
  .r-hero-flower { margin-left:.26em; margin-top:.44em; font-size:.25em; }
  .r-hero-descriptor { display:none; }
  .r-hero .r-hero-image { object-position:39% center; }
  .r-hero-shade { background:linear-gradient(180deg,rgba(11,25,25,.5),rgba(11,25,25,.1) 32%,rgba(11,25,25,.26) 42%,rgba(11,25,25,.85) 100%); }
  .r-hero-bottom { display:block; padding:35px 0 21px; }
  .r-hero h1 { font-size:clamp(42px,9.5vw,65px); line-height:1; }
  .r-hero-message > p { margin-top:16px; max-width:330px; font-size:12px; line-height:1.7; }
  .r-hero-action { margin-top:23px; }
  .r-hero-action .r-button { min-width:0; width:100%; min-height:55px; }
  .r-button .r-arrow { width:56px; }
  .r-button > span:first-child { padding:16px 20px; }
  .r-hero-action p { margin-top:10px; font-size:10px; }
  .r-hero-foot { padding:14px 0 15px; font-size:9px; }
  .r-hero-foot a { gap:12px; }
  .r-hero-foot a:last-child { font-size:0; gap:0; }
  .r-hero-foot a:last-child span { font-size:11px; }
  .r-intro { gap:25px; }
  .r-intro .r-display { font-size:clamp(35px,7.8vw,53px); line-height:1.1; }
  .r-intro .r-display br { display:none; }
  .r-intro-bottom { display:block; margin-top:22px; }
  .r-intro-bottom > p { font-size:13px; line-height:1.8; }
  .r-intro-bottom .r-text-link { margin-top:20px; }
  .r-section-heading { display:block; margin-bottom:32px; }
  .r-section-heading .r-eyebrow { margin-bottom:22px; }
  .r-eyebrow { font-size:9px; }
  .r-display { font-size:49px; }
  .r-section-heading > .r-text-link { margin-top:24px; }
  .r-service-grid { grid-template-columns:1fr; gap:29px; }
  .r-service-figure { position:static; }
  .r-home .r-service-stage { height:365px; }
  .r-service-figure figcaption { margin-top:12px; font-size:8px; }
  .r-service-item { grid-template-columns:20px 1fr 24px; gap:12px; padding:25px 0; }
  .r-service-item h3 { font-size:24px; }
  .r-service-tags { margin-top:10px; }
  .r-care { grid-template-columns:1fr; }
  .r-care-copy { padding:59px 20px 50px; }
  .r-care h2 { font-size:87px; margin-top:30px!important; }
  .r-care-lede { font-size:14px; }
  .r-care-principles { margin-top:28px; }
  .r-care-principles > div { gap:23px; }
  .r-care .r-care-image { min-height:440px; }
  .r-care-image img { object-position:50% center; }
  .r-care-image figcaption { left:20px; right:20px; bottom:20px; font-size:11px; }
  .r-process .r-section-heading { margin-bottom:36px; }
  .r-process .r-display { max-width:350px; }
  .r-section-aside { margin-top:20px!important; font-size:12px; }
  .r-process-list { grid-template-columns:1fr; gap:30px; margin-bottom:32px; }
  .r-process-number { font-size:56px; padding:21px 0 14px; }
  .r-process-list h3 { font-size:21px; margin-bottom:9px!important; }
  .r-process-list p { max-width:340px; }
  .r-process .r-button { width:100%; }
  .r-local { grid-template-columns:1fr; }
  .r-local-area { border-right:0; border-bottom:1px solid var(--r-line); padding:50px 20px; }
  .r-local-number { font-size:155px; margin:27px 0 17px!important; }
  .r-local h2 { font-size:54px; }
  .r-local-reviews { padding:50px 20px; }
  .r-reviews-star { font-size:50px; margin-bottom:28px; }
  .r-local-reviews .r-eyebrow { font-size:9px; }
  .r-closing { padding-top:60px; padding-bottom:38px; }
  .r-closing > div:not(.r-closing-bottom) { flex-wrap:wrap; gap:30px; margin:28px 0 34px; }
  .r-closing h2 { font-size:clamp(68px,16vw,100px); }
  .r-closing-action { height:125px; width:125px; margin-left:auto; margin-top:-10px; gap:5px; }
  .r-closing-action > span:first-child { font-size:44px; }
  .r-closing-action > span:last-child { font-size:10px; }
  .r-closing-bottom { display:block; font-size:11px; }
  .r-closing-bottom a { margin-top:17px; gap:20px; }
}
@media(max-width:360px) { .r-hero { min-height:645px; } .r-hero h1 { font-size:40px; } .r-hero-topline { font-size:7px; } .r-display { font-size:43px; } .r-care h2 { font-size:77px; } .r-service-item h3 { font-size:21px; } }
@media(min-width:761px) and (max-height:760px) { .r-hero { min-height:620px; } .r-hero .r-hero-wordmark { font-size:18vw; } .r-hero h1 { font-size:52px; } .r-hero-topline { padding:16px 0; } }
@media(prefers-reduced-motion:reduce) { .r-home { scroll-behavior:auto; } .r-home main *, .r-home main *::before, .r-home main *::after { animation:none!important; transition:none!important; } .r-home .r-hero-image { transform:none; } .r-home .r-scroll-settle { transform:none!important; } }
/* The homepage already closes with its own invitation. */
.r-home .r-footer-invitation { display:none; }
.r-home .r-site-footer { border-top:1px solid var(--r-line); }

@media (min-width:761px) and (max-width:1023px) { .r-home main { padding-top:68px; } .r-hero { height:calc(100svh - 68px); } }
@media (max-width:760px) {
  .r-local { grid-template-columns:minmax(0,1fr); }
  .r-local-number { font-size:clamp(120px,39.7vw,155px); gap:24px; }
  .r-local-number > span { font-size:40px; }
}
/* Sunny accents and tactile interactions, keeping the editorial composition. */
.r-service-figure-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:16px; }
.r-service-caption-copy { display:flex; align-items:center; justify-content:space-between; gap:12px; flex:1; }
.r-service-figure > .r-service-figure-footer { margin:0; }
.r-service-controls { display:flex; gap:8px; }
.r-service-controls button { width:44px; height:44px; padding:0; font-size:24px!important; background:transparent; color:var(--r-blue); border:1px solid var(--r-line); border-radius:50%; cursor:pointer; transition:background .2s,border-color .2s; }
.r-service-controls button:hover { background:var(--r-yellow); border-color:var(--r-yellow); }
.r-service-item { padding-left:10px; padding-right:10px; }
.r-service-item.is-active { background:#e7edfc; }
.r-service-item.is-active .r-service-index { color:var(--r-blue); }
.r-process { background:var(--r-yellow); }
.r-process .r-process-number > span { transition:transform .35s ease; }
.r-process-list li:hover .r-process-number > span { transform:rotate(-12deg); }
.r-home .r-closing-action { background:var(--r-yellow); border-color:var(--r-yellow); color:var(--r-ink); }
.r-home .r-closing-action:hover { background:var(--r-blue); border-color:var(--r-blue); color:var(--r-paper); }
.r-hero-flower { transform:rotate(var(--bloom-turn,0deg)); }
.r-care-image img { transition:transform 1.1s cubic-bezier(.2,.7,.2,1); }
@media(hover:hover) { .r-care-image:hover img { transform:scale(1.035); } }
@media(max-width:760px) {
  .r-service-figure-footer { gap:14px; }
  .r-service-caption-copy { flex-direction:column; align-items:flex-start; gap:4px; }
  .r-service-controls { gap:7px; }
}
@media(prefers-reduced-motion:reduce) {
  .r-hero-flower { transform:none; }
  .r-care-image img { transition:none; }
  .r-care-image:hover img { transform:none; }
}

@media(max-width:760px) { .r-hero .r-hero-image { object-position:72% center; } }

/* The logo becomes a finishing gesture: sweep, reveal, sparkle, then rest. */
.r-signature { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); align-items:center; gap:32px; padding-top:80px; padding-bottom:72px; overflow:hidden; }
.r-signature-copy { max-width:590px; }
.r-signature .r-eyebrow { margin-bottom:27px; color:var(--r-blue); }
.r-signature h2 { font-size:clamp(45px,4.75vw,76px); line-height:1.02; }
.r-signature h2 em { color:var(--r-blue); }
.r-signature-description { max-width:360px; margin-top:24px!important; font-size:13px; line-height:1.85; }
.r-signature .r-text-link { margin-top:16px; }
.r-signature-figure { min-width:0; }
.r-signature-artwork { aspect-ratio:800/450; width:100%; }
.r-signature-artwork > :is(svg,img) { display:block; width:100%; height:100%; overflow:visible; }
.r-signature-caption { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; padding:8px 0 0; margin:10px 8% 0; border-top:1px solid var(--r-line); }
.r-signature-caption > span { font:400 italic 19px/1.3 Newsreader,Georgia,serif; }
.r-signature-replay { display:inline-flex; align-items:center; gap:8px; flex-shrink:0; min-height:44px; padding:0; border:0; background:transparent; color:var(--r-blue); cursor:pointer; }
.r-signature-replay > span { font-size:10px; font-weight:600; }
.r-signature-replay > svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.r-signature-replay:hover > span { text-decoration:underline; text-underline-offset:4px; }
.r-signature-replay[aria-disabled="true"] { cursor:default; }
.r-rose-bloom { transform-box:fill-box; }
.r-rose-glint { transform-box:fill-box; transform-origin:center; }
@keyframes r-rose-clean-sweep { from { stroke-dashoffset:1; opacity:0; } 12% { opacity:1; } to { stroke-dashoffset:0; opacity:1; } }
@keyframes r-rose-unveil { from { clip-path:inset(-5% 105% -5% -5%); } to { clip-path:inset(-5% -5% -5% -5%); } }
@keyframes r-rose-gold-arrive { from { opacity:0; } to { opacity:1; } }
@keyframes r-rose-catch-light { from { opacity:0; transform:scale(.2) rotate(-12deg); } 45% { opacity:1; transform:scale(1.16) rotate(3deg); } to { opacity:1; transform:scale(1) rotate(0deg); } }
@media(prefers-reduced-motion:no-preference) {
  .r-signature-artwork.is-awaiting .r-rose-bloom { opacity:.12; }
  .r-signature-artwork.is-awaiting .r-rose-glint { opacity:0; }
  .r-signature-artwork.is-awaiting .r-rose-sweep { opacity:.2; }
  .r-signature-artwork.is-playing .r-rose-sweep path { stroke-dasharray:1; animation:r-rose-clean-sweep 1.65s cubic-bezier(.22,.65,.22,1) both; }
  .r-signature-artwork.is-playing .r-rose-bloom { animation:r-rose-unveil 1.6s .42s cubic-bezier(.3,0,.2,1) both; }
  .r-signature-artwork.is-playing .r-rose-core { animation:r-rose-gold-arrive .7s 1.35s ease-out both; }
  .r-signature-artwork.is-playing .r-rose-glint { animation:r-rose-catch-light 1.15s cubic-bezier(.2,.6,.25,1) both; }
  .r-signature-artwork.is-playing .r-rose-glint--1 { animation-delay:1.9s; }
  .r-signature-artwork.is-playing .r-rose-glint--2 { animation-delay:2.2s; }
  .r-signature-artwork.is-playing .r-rose-glint--3 { animation-delay:1.65s; }
  .r-signature-artwork.is-playing .r-rose-glint--4 { animation-delay:2.55s; }
}
@media(min-width:1600px) { .r-signature { gap:4vw; padding-top:90px; padding-bottom:82px; } }
@media(min-width:761px) and (max-width:1100px) {
  .r-signature { gap:8px; padding-top:64px; padding-bottom:58px; }
  .r-signature h2 { font-size:clamp(39px,5.3vw,58px); }
  .r-signature-caption { margin-left:4%; margin-right:4%; flex-wrap:wrap; gap:0; }
}
@media(max-width:760px) {
  .r-signature { grid-template-columns:minmax(0,1fr); gap:22px; padding-top:55px; padding-bottom:42px; }
  .r-signature-copy { max-width:550px; }
  .r-signature .r-eyebrow { font-size:10px; margin-bottom:21px; }
  .r-signature h2 { font-size:clamp(42px,8.9vw,62px); }
  .r-signature-description { margin-top:20px!important; max-width:345px; font-size:12px; }
  .r-signature .r-text-link { margin-top:10px; }
  .r-signature-artwork { width:calc(100% + 32px); margin-left:-16px; }
  .r-signature-caption { margin:2px 0 0; gap:12px; }
  .r-signature-caption > span { font-size:18px; }
  .r-signature-replay { gap:6px; }
  .r-signature-replay > span { font-size:9px; }
}
@media(max-width:360px) { .r-signature-caption { align-items:flex-start; flex-direction:column; gap:0; padding-top:13px; } }

/* Live proof stays beside the first decision, without shifting the hero. */
.r-hero-proof { display:flex; align-items:center; flex-wrap:wrap; gap:9px 12px; margin-top:17px; min-height:30px; max-width:320px; }
.r-hero-proof .r-hero-rating { font-size:11px; color:#fffef9; text-decoration:none; line-height:1.7; }
.r-hero-proof .r-hero-rating strong { font-size:14px; margin-right:4px; }
.r-hero-proof .r-hero-rating [aria-hidden] { color:#f5eb66; }
.r-hero-proof [data-review-summary]:not([hidden]) + .r-hero-rating-fallback { display:none; }
.r-hero-proof .r-hero-google { display:inline-flex; align-items:center; padding:7px 9px; background:#fff; }
.r-hero-proof .r-hero-google img { width:98px; height:18px; }
.r-hero-proof [data-review-status], .r-hero-proof [data-review-attributions] { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.r-hero-proof a:focus-visible { outline:2px solid #f5eb66; outline-offset:4px; }
