/* Opening: the question on the left, the review request on the right. Then what clients say, three starting points, and the cost estimate. */
.hero{background:#fff;padding:calc(92px + clamp(28px,5vw,72px)) 0 clamp(48px,6vw,88px);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(36px,6vw,96px);align-items:center;min-height:calc(100svh - 92px - clamp(76px,11vw,160px))}
.hero-copy{min-width:0}
.hero h1{font-size:clamp(44px,4.9vw,72px);letter-spacing:-.055em;line-height:1.02}
.hero h1 span{color:#674181}
.hero-lede{max-width:440px;font-size:18px;line-height:1.6;margin-top:24px}
.hero-copy .hero-secondary{margin-top:26px}
/* The request card. Nothing is sent until a destination exists in site-config.js. */
.hero-form{position:relative;width:100%;max-width:520px;justify-self:end;display:grid;gap:14px;padding:clamp(22px,2.6vw,34px);background:#fff;border:1px solid #e3d9e9;border-radius:16px;box-shadow:0 30px 70px -24px #4a2d5d40,0 2px 6px #24242808}
.hero-form-title{font:500 clamp(22px,2vw,28px)/1.15 var(--display);letter-spacing:-.035em}
.hero-form-note{font-size:14px;line-height:1.5;color:#706978;margin-top:-6px}
.hero-form label{display:block;font-size:13px;color:#5f5767}
.hero-form label>input,.hero-form label>textarea{display:block;margin-top:6px}
.hero-form label>span{color:#9a90a2}
.hero-form input,.hero-form textarea{width:100%;min-width:0;min-height:46px;border:1px solid #c5aed3;border-radius:8px;padding:10px 12px;font:16px/1.4 var(--text);color:#242428;background:#fff}
.hero-form textarea{resize:vertical;min-height:88px}
.hero-form input:disabled,.hero-form textarea:disabled{background:#faf8fc;color:#706978}
.hero-form [aria-invalid=true]{border:2px solid #8d3150;background:#fff7fa}
.hero-form .button{justify-content:space-between;width:100%;margin-top:4px}
.hero-form-status{font-size:13px;line-height:1.5;color:#706978;min-height:1.3em;margin:0}
.hero-form-status.is-error{color:#8d3150}
.hero-form-booking{font-size:13px;margin:0}
.hero-form-booking a{color:#674181;text-decoration:underline;text-underline-offset:4px}
.hero-form-privacy{font-size:12px;color:#9a90a2;margin:0}
.hero-form-privacy a{text-decoration:underline;text-underline-offset:3px}
.hero-form-honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0}
.hero-form-sent{font:500 clamp(20px,1.8vw,24px)/1.3 var(--display);letter-spacing:-.03em;color:#674181;margin:0;padding:12px 0}
/* What clients say: a label and a slow marquee of the quotes, directly under the opening. Hover or focus pauses it. */
.proof{overflow:hidden}
.proof.section-pad{padding-block:clamp(44px,5vw,64px)}
.proof-label{font:500 12px/1.6 var(--text);letter-spacing:.06em;text-transform:uppercase;margin:0 0 22px}
.marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 52s linear infinite}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}
.marquee-group{list-style:none;margin:0;padding:0 18px 0 0;display:flex;gap:18px}
.marquee-group li{width:400px;flex:none}
.marquee-group blockquote{margin:0;height:100%;display:flex;flex-direction:column;gap:16px;padding:24px 26px;background:#fff;color:#242428;border-radius:12px;box-shadow:0 22px 50px #2a123a40}
.marquee-group p{font-size:15px;line-height:1.6}
.marquee-group footer{margin-top:auto;font-size:13px;color:#706978}
@keyframes marquee{to{transform:translateX(-50%)}}
html.reduce-motion .marquee,html:not(.enhanced) .marquee{mask-image:none;-webkit-mask-image:none}
html.reduce-motion .marquee-track,html:not(.enhanced) .marquee-track{animation:none;width:auto}
html.reduce-motion .marquee-group[aria-hidden],html:not(.enhanced) .marquee-group[aria-hidden]{display:none}
html.reduce-motion .marquee-group,html:not(.enhanced) .marquee-group{flex-wrap:wrap;padding:0}
html.reduce-motion .marquee-group li,html:not(.enhanced) .marquee-group li{width:calc(33.333% - 12px)}
@media(prefers-reduced-motion:reduce){.marquee{mask-image:none;-webkit-mask-image:none}.marquee-track{animation:none;width:auto}.marquee-group[aria-hidden]{display:none}.marquee-group{flex-wrap:wrap;padding:0}.marquee-group li{width:calc(33.333% - 12px)}}
/* Three starting points, each pointing at its example. */
.service-section .service-intro{display:block}
.value-cards{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.value-cards li{min-width:0}
.value-cards a{display:flex;flex-direction:column;gap:12px;height:100%;padding:26px 26px 22px;background:#fff;border:1px solid #dccfe4;border-radius:12px;box-shadow:0 14px 34px #67418110;transition:transform .2s,box-shadow .2s}
.value-number{font-size:12px;color:#857a8e}
.value-cards strong{font:500 clamp(22px,2vw,28px)/1.15 var(--display);letter-spacing:-.035em}
.value-cards p{font-size:15px;line-height:1.55;color:#5f5767;max-width:300px}
.value-link{margin-top:auto;padding-top:10px;font-size:13px;color:#674181;text-decoration:underline;text-underline-offset:4px}
.value-link i{font-style:normal;margin-left:8px}
/* How much time goes to the same task: one input, one big number, one button into the funnel. */
.cost-center{text-align:center;max-width:840px;margin:0 auto}
.cost-panel{margin:clamp(28px,4vw,44px) auto 0;max-width:640px}
.cost-fields{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap}
.cost-fields label{display:inline-flex;align-items:center;gap:10px;font-size:16px;color:#5f5767}
.cost-fields input{width:112px;min-height:56px;border:1px solid #c5aed3;border-radius:8px;padding:8px;font:500 26px/1.2 var(--text);text-align:center;background:#fff;color:#242428;appearance:textfield;-moz-appearance:textfield}
.cost-fields input::-webkit-outer-spin-button,.cost-fields input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cost-fields input:disabled{color:#242428;opacity:1}
.cost-currency{font-size:18px;color:#674181}
.cost-fields i{font-style:normal;font-size:22px;color:#b99acc}
.cost-result{margin:28px 0 0;display:grid;gap:8px}
.cost-result strong{font:500 clamp(40px,5.4vw,82px)/1.05 var(--display);letter-spacing:-.05em;color:#674181;text-wrap:balance}
.cost-result span{font-size:16px;color:#5f5767}
.cost-panel .button{margin-top:28px}
.cost-note{font-size:12px;color:var(--tint-muted);margin-top:14px}
@media(hover:hover) and (pointer:fine){.value-cards a:hover{transform:translateY(-3px);box-shadow:0 20px 44px #67418118}}
@media(min-width:761px) and (max-width:1100px){.hero-grid{gap:30px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero h1{font-size:clamp(38px,4.6vw,52px)}.hero-lede{font-size:16px}.hero-form{padding:20px}.value-cards{gap:10px}.value-cards a{padding:20px 18px}.marquee-group li{width:340px}}
@media(max-width:760px){
 .hero{padding-top:112px;padding-bottom:48px}
 .hero-grid{display:block;min-height:0}
 .hero h1{font-size:clamp(40px,11vw,58px)}
 .hero-lede{font-size:16px;margin-top:18px}
 .hero-copy .hero-secondary{margin-top:20px}
 .hero-form{max-width:none;margin-top:34px;padding:20px 18px}
 .value-cards{grid-template-columns:1fr;margin-top:28px;gap:12px}
 .value-cards a{padding:20px 20px 18px}
 .value-cards strong{font-size:22px}
 .marquee-group li{width:300px}
 .marquee-group blockquote{padding:22px}
 .marquee-group p{font-size:15px}
 html.reduce-motion .marquee-group li,html:not(.enhanced) .marquee-group li{width:100%}
 .cost-fields{gap:10px}.cost-fields i{display:none}.cost-fields input{width:92px;min-height:50px;font-size:22px}.cost-fields label{font-size:15px}.cost-result strong{font-size:clamp(34px,10vw,46px)}.cost-result span{font-size:14px}
}
@media(max-width:760px) and (prefers-reduced-motion:reduce){.marquee-group li{width:100%}}
