
.hero-description{max-width:650px;margin:0 auto 30px;font-size:20px}.hero{min-height:620px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;position:relative;z-index:1}.service-grid article{display:flex;flex-direction:column}.service-grid h3{font-size:27px;margin:25px 0 14px}.service-grid p{font-size:16px;margin:0 0 24px}.service-photo{width:100%;height:320px;object-fit:cover;}.service-grid article:nth-child(2) .service-photo{}.service-grid article:nth-child(3) .service-photo{}.photo-pending{background:#e2e4d9;border:1px solid #cbd1c0;display:grid;place-items:center;text-align:center;color:#63705e;padding:25px}.photo-pending small{display:block;font-size:12px;margin-top:8px}.service-actions{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:auto}.service-actions button{font-family:inherit;background:none;color:inherit;border:0;border-bottom:1px solid #223b2730}.service-rice{position:relative;left:-180px;top:0;margin:0 0 -100px;width:500px;height:500px;opacity:.42}.experiences>.section{position:relative;padding-bottom:15px}.cedar-intro .service-photo{height:540px}.cedar-intro{padding-top:65px}.cedar-intro h1{font-size:clamp(42px,4.8vw,66px)}.cedar-story{position:relative;overflow:clip;background:#f2ebe1;border-radius:35px}.cedar-story .details-grid{position:relative;z-index:1}.cedar-rice{position:relative;left:-100px;top:0;width:500px;height:500px;margin:-80px 0 -160px;opacity:.4}.cedar-next{text-align:center}.cedar-next p{margin-bottom:25px}.contact .outline{text-decoration:none}.contact .text-link{border-color:#fff6}.booking-shell{max-width:920px;padding-top:50px}.booking-heading{text-align:center}.booking-heading h1{font-size:48px}.step-track{padding:0;margin:35px 0;display:flex;list-style:none;gap:25px;justify-content:center}.step-track li{font-size:14px;color:#7a8274;border-bottom:2px solid transparent;padding-bottom:10px}.step-track [aria-current]{color:#223b27;border-color:#223b27}.booking-step,#booking-receipt{padding:40px;background:#f0eee4;border-radius:24px;scroll-margin-top:115px}.booking-step h2{font-size:32px}.booking-step h2:focus{outline:none}.service-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}.choice{display:flex;align-items:center;gap:12px;border:1px solid #c3cabb;border-radius:12px;padding:17px;background:#fffaf2;margin:0;cursor:pointer}.choice:has(input:checked){border-color:#223b27;background:#e2e8da}.choice input{width:18px;height:18px;flex:0 0 18px}.channel-choices{display:flex;gap:12px}.channel-choices .choice{flex:1}.optional-extras small{display:block;color:#63705e;font-size:13px;margin-top:3px}.step-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:25px}.back-step,#edit-booking{background:none;border:0;font:inherit;color:inherit}.prototype-note{font-size:12px;color:#66745d;border-left:2px solid #9b9d7f;padding-left:12px}.request-review{margin-top:30px;border-top:1px solid #c3cabb;padding-top:20px}.request-review summary,#booking-receipt summary{cursor:pointer;font-size:16px}.request-review p,#handoff-record p{font-size:14px}.request-review strong,#handoff-record strong{font-weight:400;color:#68745f}#call-entry fieldset{flex-wrap:wrap}#booking-receipt{max-width:750px;margin:auto}#booking-receipt details{margin-top:30px}#booking-form input[type=radio],#booking-form input[type=checkbox]{accent-color:#223b27}.v1-footer{margin-top:0}@media(max-width:800px){.hero-description{font-size:17px;max-width:300px}.hero{min-height:590px}.service-grid{grid-template-columns:1fr;gap:55px}.service-photo{height:340px}.service-grid h3{font-size:28px}.service-rice{width:340px;height:340px;left:-100px;margin:10px 0 -75px}.cedar-intro .service-photo{height:350px}.cedar-rice{width:340px;height:340px;margin:-20px 0 -90px}.booking-shell{padding:35px 6% 65px}.booking-step,#booking-receipt{padding:23px}.service-choices{grid-template-columns:1fr}.channel-choices{flex-direction:column;gap:10px}.step-track{gap:20px}.step-track li{font-size:12px}.booking-heading h1{font-size:40px}.step-actions .outline{padding:12px 17px;font-size:13px}.booking-step h2{font-size:28px}}
/* Keep paintings in the margins without inserting empty blocks into the page rhythm. */
.service-rice{position:absolute;left:-240px;top:-85px;margin:0;opacity:.25}.experiences>.section{padding-bottom:105px}.experiences .section-heading{position:relative;z-index:1}.cedar-rice{position:absolute;left:-200px;top:auto;bottom:-150px;margin:0;opacity:.23}.cedar-next{position:relative;z-index:1}@media(max-width:800px){.service-rice{left:-190px;top:-50px;opacity:.2}.experiences>.section{padding-bottom:65px}.cedar-rice{left:-180px;bottom:-100px}}
.service-photo{}.service-grid article:nth-child(2) .service-photo{}.service-grid article:nth-child(3) .service-photo{}

/* A quiet invitation: two soft halos after arrival, then a still control. */
@keyframes tho-guide-invitation{0%,65%,100%{box-shadow:0 4px 20px #12201619,0 0 0 0 rgba(144,116,62,0)}72%{box-shadow:0 4px 20px #12201619,0 0 0 0 rgba(144,116,62,.18)}92%{box-shadow:0 4px 20px #12201619,0 0 0 11px rgba(144,116,62,0)}}
.guide-launch{animation:tho-guide-invitation 7s ease-out 2s 2}.guide-launch:hover,.guide-launch:focus-visible,.guide-launch[aria-expanded="true"]{animation:none}@media(prefers-reduced-motion:reduce){.guide-launch{animation:none}}
/* Soft, looping fog around the guide; the label and hit area stay still. */
.guide-launch{animation:none;isolation:isolate;overflow:visible}
.guide-launch::before,.guide-launch::after{content:"";position:absolute;z-index:-1;pointer-events:none;inset:-13px -17px;border-radius:50%;background:radial-gradient(ellipse at 30% 58%,rgba(255,250,242,.75),transparent 58%),radial-gradient(ellipse at 72% 40%,rgba(224,219,207,.5),transparent 57%);filter:blur(9px);opacity:0;transform-origin:50% 65%;animation:tho-guide-fog 11s ease-in-out infinite}
.guide-launch::after{inset:-17px -11px;animation-delay:-5.5s;animation-duration:13s}
@keyframes tho-guide-fog{0%,100%{opacity:.08;transform:translate(-3px,5px) scale(.94)}35%{opacity:.48;transform:translate(3px,-2px) scale(1.06)}70%{opacity:.22;transform:translate(-2px,-8px) scale(1.12)}}
.guide-launch[aria-expanded="true"]::before,.guide-launch[aria-expanded="true"]::after{animation-play-state:paused;opacity:0}
@media(prefers-reduced-motion:reduce){.guide-launch::before,.guide-launch::after{animation:none;display:none}}
/* Distinct drifting wisps, rather than an evenly blurred button shadow. */
.guide-launch::before,.guide-launch::after{inset:auto;left:50%;bottom:-9px;width:245px;height:115px;border-radius:0;filter:blur(7px);background:radial-gradient(ellipse 42px 20px at 25% 65%,rgba(195,199,186,.70),transparent 75%),radial-gradient(ellipse 58px 22px at 51% 48%,rgba(244,241,228,.95),transparent 75%),radial-gradient(ellipse 39px 26px at 72% 30%,rgba(185,193,178,.55),transparent 75%),radial-gradient(ellipse 48px 16px at 66% 75%,rgba(255,250,238,.95),transparent 75%);transform:translateX(-50%);animation:tho-guide-wisps 8s ease-in-out infinite;opacity:0}
.guide-launch::after{width:225px;height:130px;bottom:-4px;background:radial-gradient(ellipse 46px 20px at 32% 70%,rgba(241,236,220,.95),transparent 75%),radial-gradient(ellipse 46px 26px at 66% 52%,rgba(178,188,169,.6),transparent 75%),radial-gradient(ellipse 36px 22px at 47% 25%,rgba(254,251,239,.95),transparent 75%);animation:tho-guide-wisps-counter 10s ease-in-out -5s infinite}
@keyframes tho-guide-wisps{0%{opacity:0;transform:translate(-55%,18px) scale(.8,.65)}20%{opacity:.8}55%{opacity:.95;transform:translate(-43%,-17px) scale(1.12,1.08)}85%{opacity:.4}100%{opacity:0;transform:translate(-58%,-50px) scale(1.25,1.15)}}
@keyframes tho-guide-wisps-counter{0%{opacity:0;transform:translate(-40%,12px) scale(.85,.7)}25%{opacity:.85}60%{opacity:.9;transform:translate(-58%,-22px) scale(1.1,1.1)}100%{opacity:0;transform:translate(-44%,-60px) scale(1.2,1.2)}}
@media(prefers-reduced-motion:reduce){.guide-launch::before,.guide-launch::after{animation:none;display:none}}
.guide-launch::before,.guide-launch::after{filter:url(#guide-fog-texture);will-change:transform,opacity}


.request-error{border:1px solid #9b765b;padding:20px;border-radius:12px;background:#fffaf2;margin:20px 0}.request-error h3{font-size:22px;margin-top:0}.request-error pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:14px}.request-error .text-link{font:inherit;background:none;border:0;cursor:pointer}.request-error[hidden]{display:none}
