/* Sikóe: quieter layouts, readable type, generous touch targets. */
body{font-size:16px;line-height:1.6}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #829b65;outline-offset:4px}button,a.button{transition:background .18s ease,color .18s ease,transform .18s ease}button:active,.button:active{transform:translateY(1px)}button:disabled{cursor:wait;opacity:.6}.section{padding-top:76px;padding-bottom:76px}.section-heading{margin-bottom:32px}.section-heading h2,.membership-top h2,.contact h2{margin-top:16px}.desktop-nav{font-size:14px}.header-book{font-size:14px}.hero-copy>p{font-size:18px;max-width:440px}.eyebrow{font-size:11px}.service-ribbon{padding-top:18px;padding-bottom:18px}.services-layout{gap:40px}.service-photo{min-height:460px}.service-description p,.faq-list p,.process-grid p,.about-copy>p{font-size:16px;line-height:1.65}.service-list summary{min-height:70px}.service-description{padding-bottom:20px}.section-footnote{font-size:14px}.membership-top{gap:45px}.membership-intro>p{font-size:21px;margin-top:12px}.membership-intro>p.muted{font-size:16px}.membership-tabs{margin-top:30px}.membership-tabs button{font-size:20px;min-height:64px}.plan-panel{padding:32px 0;gap:45px}.plan-story>p{font-size:16px;line-height:1.65}.plan-story>p.plan-note{font-size:14px}.plan-benefits>div{padding:16px 0}.plan-benefits h4{font-size:19px}.plan-benefits p{font-size:15px}.member-extra-hours p{font-size:15px;line-height:1.65}.membership-value{margin-top:16px;padding:20px 0}.membership-value h3{font-size:23px}.membership-value p{font-size:16px;line-height:1.65}.membership-value p+p{margin-top:10px}.plan-comparison{margin-top:20px}.compare-toggle{display:flex;justify-content:space-between;padding:20px 0;border-top:1px solid #ffffff30;font-size:18px;cursor:pointer}.membership-terms{margin:16px 0}.membership-terms summary{padding:18px 0}.membership-terms p{font-size:15px}.process-grid{margin-top:32px;gap:32px}.process-grid h3{margin-top:16px}.process-grid p{margin-top:8px}.faq-list summary{font-size:17px;min-height:64px}.about-image{min-height:530px}.about-copy{padding-top:60px;padding-bottom:60px}.contact-copy>p{font-size:17px}.project-form label{font-size:15px}.project-form input,.project-form select,.project-form textarea{font-size:16px}.project-form .button{font-size:16px;min-height:58px}.form-note{font-size:13px}.footer-top>div{font-size:15px}.footer-bottom{font-size:12px}.button{min-height:56px;font-size:15px}.membership-bottom,.billing-access p{font-size:15px}.member-intro{font-size:17px}.member-wrap{padding-top:44px}.member-wrap h1{font-size:56px}.member-card .small,.small{font-size:15px}.member-card{border-radius:8px}.booking-header{gap:24px;min-height:88px;height:auto;padding-top:18px;padding-bottom:18px}.booking-header .pay-header-link{font-size:14px}.talk-button{font-size:14px;min-height:48px}.booking-intro{padding:42px 0 30px}.booking-intro h1{font-size:clamp(46px,5vw,66px);margin-top:12px}.booking-intro>div>p{font-size:17px;margin-top:16px}.booking-progress{font-size:15px;margin-bottom:24px}.booking-step{padding:28px;border-radius:8px}.step-heading h2{font-size:32px}.step-heading p{font-size:15px}.service-option{min-height:80px;padding:18px 16px;border-radius:6px}.service-option strong{font-size:17px}.service-option small{display:none}.duration-row{margin-top:20px}.duration-row label,.duration-row select{font-size:16px}.duration-row select{min-height:52px}.help-caption{font-size:14px;line-height:1.6}.notice-strip{font-size:14px}.date-time-layout{gap:22px}.calendar-days button{min-height:46px;max-width:none;font-size:16px}.calendar-top h3,.times-heading h3{font-size:18px}.calendar-top button{min-width:44px;min-height:44px}.time-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.time-slot{min-height:48px;font-size:15px;padding:10px;border-radius:5px}.times-note{font-size:13px}.times-heading span{font-size:11px}.times-panel>.inline-button{margin-top:16px;min-height:44px;font-size:14px}.booking-step form label,#talk-form label{font-size:15px}.booking-step input,.booking-step textarea{font-size:16px;min-height:52px;border-radius:5px}.booking-step form label small{font-size:13px}.member-request small{font-size:13px}.request-explainer p,.summary-payment p{font-size:14px;line-height:1.6}.privacy-note{font-size:13px}.booking-step form .button{font-size:16px;min-height:58px}.session-summary{border-radius:8px;overflow:hidden}.session-summary h2{font-size:36px}.summary-cover{display:none}.session-summary dl{margin-top:24px}.session-summary dt{font-size:14px}.session-summary dd{font-size:16px}.summary-caption{font-size:12px}.summary-payment strong{font-size:34px}.summary-payment{padding-top:18px}.summary-topline{font-size:11px}.session-guide{padding:32px 0;margin-top:20px;gap:35px}.session-guide h2{font-size:36px;margin:12px 0}.guide-details summary{font-size:17px}.guide-details p{font-size:15px}.booking-footer{font-size:13px}.booking-footer>a,.booking-footer button{font-size:14px}.same-day-strip strong{font-size:16px}.same-day-strip small{font-size:14px}.same-day-button{min-height:48px;font-size:15px}.confirmed-payment{padding:22px;border-radius:6px}.payment-body p,.payment-body .payment-clarity{font-size:14px}.my-appointments{margin:30px 0;border-top:1px solid var(--line);padding-top:30px}.my-appointments h2{font-size:36px}.appointment-item{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:22px 0;border-bottom:1px solid var(--line)}.appointment-item>div{flex:1;min-width:180px}.appointment-item p{font-size:15px}.appointment-item small{font-size:13px;color:var(--muted)}.appointment-item button{min-height:44px;font-size:14px}.validation-message{font-size:15px}.booking-header .back-studio{display:none}
@media(max-width:800px){.wrap{padding-left:24px;padding-right:24px}.section{padding-top:48px;padding-bottom:48px}.hero{height:630px;min-height:570px;max-height:none}.hero-copy{padding-top:106px}.hero h1{font-size:clamp(47px,12vw,68px)}.hero-copy>p{font-size:17px;line-height:1.6;margin-top:22px}.hero-buttons{gap:18px}.hero-buttons .button{font-size:16px;min-height:58px}.header{min-height:84px}.header-book{font-size:13px}.service-ribbon{font-size:11px;flex-wrap:wrap;gap:12px}.service-photo{min-height:330px}.service-photo figcaption{font-size:10px}.membership-top h2{font-size:49px}.membership-intro>p{font-size:20px}.membership-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.membership-tabs button{padding:16px 10px;font-size:19px;min-height:74px}.membership-tabs button span{font-size:13px}.plan-panel{gap:24px}.plan-story h3{font-size:34px}.plan-story>p{font-size:16px}.plan-benefits p{font-size:15px}.plan-comparison{margin-top:8px}.membership-value h3{font-size:23px}.process-grid{gap:24px}.about-image{min-height:310px}.about-copy{padding:42px 24px}.about h2{font-size:46px}.faq{gap:20px}.contact-grid{gap:26px}.contact h2{font-size:48px}.project-form{padding:24px}.footer{padding-bottom:130px}.footer-top>div{font-size:14px}.mobile-book{padding:12px 18px calc(12px + env(safe-area-inset-bottom));gap:12px}.mobile-book a:first-child{min-height:58px;font-size:16px;padding:14px 20px;border-radius:5px}.mobile-book a:last-child{font-size:15px;min-height:58px}.booking-header{padding:18px 22px;gap:12px;flex-wrap:wrap}.booking-header .brand{margin-right:auto}.booking-header .pay-header-link{font-size:13px}.booking-header .pay-header-link[href="#confirmed-payment"]{display:none}.booking-wrap{padding:0 18px}.booking-intro{padding:30px 6px 24px}.booking-intro h1{font-size:49px}.booking-intro>div>p{font-size:16px}.hours-badge{padding-top:16px}.hours-badge strong{font-size:17px}.hours-badge small{font-size:13px}.hours-badge span:not(.hours-star){font-size:10px}.booking-progress{font-size:13px;gap:8px;margin-bottom:20px}.booking-step{padding:22px;margin-bottom:16px}.step-heading{margin-bottom:20px}.step-heading h2{font-size:29px}.step-heading p{font-size:14px}.service-choices{gap:10px}.service-option{min-height:72px;padding:18px 12px}.service-option strong{font-size:16px}.service-option:after{display:none}.help-caption{font-size:14px}.notice-strip{font-size:13px;padding:12px}.calendar-days button{min-height:46px;font-size:16px}.time-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.time-slot{font-size:15px;min-height:50px;padding:10px 4px}.times-heading span{font-size:10px}.booking-step form .button{font-size:15px}.request-explainer p,.privacy-note{font-size:13px}.booking-sidebar{display:none}.session-guide{padding:30px 6px}.session-guide>div>p{font-size:15px}.booking-footer{padding-bottom:140px}.mobile-summary{padding:14px 18px calc(14px + env(safe-area-inset-bottom));gap:12px;min-height:94px}.mobile-summary strong{font-size:14px}.mobile-summary>div>span{font-size:13px;line-height:1.5}.mobile-summary>a{min-height:58px;min-width:126px;padding:16px 18px;font-size:16px;border-radius:5px;justify-content:space-between}.my-appointments h2{font-size:30px}.member-header{flex-wrap:wrap}.member-header nav{font-size:14px}.member-wrap h1{font-size:46px}.member-wrap{padding:32px 20px}.member-card .small,.small{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

@media(min-width:801px){.booking-header .talk-button{margin-left:auto}}

/* Compact booking introduction and clear bundle savings. */
.booking-intro{padding-bottom:22px}
.booking-intro>div>p{margin-top:12px}
.booking-progress{padding-top:16px}
.summary-price-line,.payment-price-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 14px}
.summary-price-line del{font-size:20px;color:#b8c0b0;text-decoration-thickness:1.5px}
.summary-payment .booking-savings{width:fit-content;margin:8px 0 0;padding:3px 9px;background:#c6d5ac1c;color:#d3e2b9;font-size:14px;line-height:1.5;border-radius:4px}
.payment-price-line{justify-content:flex-end;gap:8px 12px}
.payment-price-line del{font-size:16px;color:var(--muted)}
.payment-price-line .booking-savings{font-size:14px;color:#4e6241}
.mobile-summary .mobile-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;margin:4px 0}
.mobile-summary .mobile-price strong{font-size:18px;font-weight:600;line-height:1.25}
.mobile-summary .mobile-price del{font-size:14px;line-height:1.5;color:var(--muted);text-decoration-thickness:1.5px}
.mobile-summary .mobile-price .booking-savings{font-size:13px;line-height:1.5;font-weight:500;color:#526742}
.summary-price-line [hidden],.summary-payment [hidden],.mobile-summary [hidden],.payment-price-line [hidden]{display:none!important}
@media(max-width:800px){
 .booking-intro{padding-top:26px;padding-bottom:18px}
 .booking-intro h1{margin-top:10px}
 .booking-progress{margin-bottom:18px}
 .mobile-summary{min-height:102px}
 .booking-footer{padding-bottom:165px}
}
@media(max-width:800px){
 .date-time-layout{grid-template-columns:minmax(0,1fr)}
 .calendar,.times-panel{min-width:0}
 .calendar-days,.weekdays{grid-template-columns:repeat(7,minmax(0,1fr))}
 .calendar-days button{min-width:0;aspect-ratio:auto;min-height:46px}
}

/* Let the hero finish naturally after its actions, without a fixed-height gap. */
.hero{height:auto;min-height:0;max-height:none}
.hero-copy{padding-bottom:28px}
.hero-bottom{position:relative;left:auto;right:auto;bottom:auto;margin:0 max(56px,calc((100vw - 1248px)/2));padding-bottom:26px}
.hero-bottom a{align-items:center}
.hero-bottom svg{width:20px;height:20px;flex-shrink:0}
.service-ribbon{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0;padding:20px max(32px,calc((100vw - 1248px)/2));gap:0;background:#e1e7d7;color:#34412e;border-top:1px solid #34412e14;border-bottom:1px solid #34412e14}
.ribbon-step{display:flex;align-items:center;justify-content:center;gap:12px;min-width:0;padding:0 14px;font-size:12px;font-weight:500;line-height:1.25;letter-spacing:.12em;text-transform:uppercase}
.ribbon-step+.ribbon-step{border-left:1px solid #53684c2b}
.ribbon-step svg{display:block;width:20px;height:20px;flex-shrink:0;fill:none;stroke:#53684c;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1100px){.hero-bottom{margin-inline:36px}}
@media(max-width:800px){
 .hero-copy{padding-bottom:24px}
 .hero-bottom{margin-inline:24px;padding-bottom:24px}
 .hero-bottom svg{width:22px;height:22px}
 .service-ribbon{padding:15px 10px;gap:0}
 .ribbon-step{flex-direction:column;gap:7px;padding:0 4px;font-size:clamp(9px,2.8vw,11px);letter-spacing:.08em}
 .ribbon-step svg{width:18px;height:18px}
}

/* Live process icons. Animate artwork inside the existing SVG boxes only. */
#creative-process{--meter-duration:1.4s;--meter-low:.25;--meter-high:1.08;--slider-duration:3.8s;--slider-top-start:2px;--slider-bottom-start:-2px;--slider-top:-6px;--slider-bottom:6px;--spark-duration:6s;--launch-duration:3.2s;--launch-x:3px;--launch-y:-3px;--cycle-duration:7s}
#creative-process .ribbon-step svg{transform:scale(1.15);overflow:visible}
#creative-process svg path,#creative-process svg circle{vector-effect:non-scaling-stroke}
#creative-process .ribbon-meter path{transform-box:fill-box;transform-origin:center;animation:ribbon-meter var(--meter-duration) ease-in-out infinite!important}
#creative-process .ribbon-meter path:nth-child(2){animation-delay:-.65s!important}
#creative-process .ribbon-meter path:nth-child(3){animation-delay:-1.15s!important}
#creative-process .ribbon-meter path:nth-child(4){animation-delay:-.35s!important}
#creative-process .ribbon-meter path:nth-child(5){animation-delay:-.95s!important}
#creative-process .ribbon-slider-top,#creative-process .ribbon-slider-bottom{fill:#e1e7d7;animation:ribbon-slider-top var(--slider-duration) ease-in-out infinite!important}
#creative-process .ribbon-slider-bottom{animation-name:ribbon-slider-bottom!important}
#creative-process .ribbon-spark{transform-box:fill-box;transform-origin:center;animation:ribbon-spark var(--spark-duration) linear infinite!important}
#creative-process .ribbon-launch{animation:ribbon-launch var(--launch-duration) cubic-bezier(.45,0,.25,1) infinite!important}
#creative-process .ribbon-cycle{transform-box:view-box;transform-origin:12px 12px;animation:ribbon-cycle var(--cycle-duration) linear infinite!important}
@keyframes ribbon-meter{0%,100%{transform:scaleY(var(--meter-low))}50%{transform:scaleY(var(--meter-high))}}
@keyframes ribbon-slider-top{0%,100%{transform:translateX(var(--slider-top-start))}50%{transform:translateX(var(--slider-top))}}
@keyframes ribbon-slider-bottom{0%,100%{transform:translateX(var(--slider-bottom-start))}50%{transform:translateX(var(--slider-bottom))}}
@keyframes ribbon-spark{0%{transform:rotate(0deg) scale(.95)}50%{transform:rotate(90deg) scale(1.1)}100%{transform:rotate(180deg) scale(.95)}}
@keyframes ribbon-launch{0%,100%{transform:translate(0,0)}50%{transform:translate(var(--launch-x),var(--launch-y))}}
@keyframes ribbon-cycle{to{transform:rotate(360deg)}}
/* A calmer live variant for Reduce Motion: less travel, longer cycles. */
@media(prefers-reduced-motion:reduce){#creative-process{--meter-duration:2.2s;--meter-low:.5;--meter-high:1;--slider-duration:5.2s;--slider-top-start:1px;--slider-bottom-start:-1px;--slider-top:-5px;--slider-bottom:5px;--spark-duration:9s;--launch-duration:4.8s;--launch-x:2px;--launch-y:-2px;--cycle-duration:11s}}

/* The existing scrolling header fills the top safe area in browsers and saved apps.
   Keep the page background and safe-area padding independent of display mode. */
body.studio-home { background-color: var(--dark); }
body.studio-home > #main, body.studio-home > .footer { background-color: var(--paper); }
.studio-home .header { height: calc(96px + env(safe-area-inset-top, 0px)); padding-top: env(safe-area-inset-top, 0px); }
@media (max-width: 760px) {
 .studio-home .header { height: calc(84px + env(safe-area-inset-top, 0px)); min-height: calc(84px + env(safe-area-inset-top, 0px)); }
 .studio-home .mobile-nav { top: calc(84px + env(safe-area-inset-top, 0px)); }
}
