@font-face{font-family: "Fraunces";font-style: normal;font-weight: 400 700;font-display: swap;src: url("/assets/fonts/fraunces-latin.woff2") format("woff2");unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: "Fraunces";font-style: normal;font-weight: 400 700;font-display: swap;src: url("/assets/fonts/fraunces-latin-ext.woff2") format("woff2");unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: "LoraJ";font-style: normal;font-weight: 500;font-display: swap;src: url("/assets/fonts/lora-500-latin.woff2") format("woff2");unicode-range: U+004A}@font-face{font-family: "LoraJ";font-style: normal;font-weight: 600;font-display: swap;src: url("/assets/fonts/lora-600-latin.woff2") format("woff2");unicode-range: U+004A}@view-transition{navigation: auto}:root{--ink: #24312d;--ink-soft: #3a4944;--muted: #65736c;--paper: #fffaf4;--paper-warm: #fbf4ea;--surface: #ffffff;--mist: #edf3ee;--sage: #607d68;--sage-dark: #365a4a;--sage-deep: #294a3b;--rose: #c98576;--clay: #a96f5a;--error: #c2412d;--sky: #dce8ec;--line: rgba(36,49,45,0.16);--line-soft: rgba(36,49,45,0.08);--shadow: 0 20px 48px rgba(36,49,45,0.14);--shadow-soft: 0 16px 34px rgba(36,49,45,0.08);--shadow-card-hover: 0 28px 60px rgba(36,49,45,0.16);--shadow-primary: 0 10px 24px rgba(54,90,74,0.24);--shadow-primary-hover: 0 16px 36px rgba(54,90,74,0.32);--serif: "Fraunces",Georgia,"Times New Roman",serif;--wordmark: "LoraJ","Fraunces",Georgia,"Times New Roman",serif;--sans: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--ease: cubic-bezier(0.22,0.61,0.36,1);--ease-in: cubic-bezier(0.4,0,1,1);--header-height: 78px}*{box-sizing: border-box}html{scroll-behavior: smooth}body{margin: 0;background: var(--paper);color: var(--ink);font-family: var(--sans);font-size: 1rem;line-height: 1.6;letter-spacing: 0;overflow-x: clip}@keyframes page-enter{from{opacity: 0;transform: translateY(6px)}to{opacity: 1;transform: none}}@media (prefers-reduced-motion: no-preference){main{animation: page-enter 240ms var(--ease) both}}body.nav-open{overflow: hidden}img{display: block;max-width: 100%;height: auto}a{color: inherit;text-decoration: none}a:hover{color: var(--sage-dark)}button,input,textarea{font: inherit;letter-spacing: 0}.skip-link{position: absolute;top: 10px;left: 10px;z-index: 20;transform: translateY(-140%);background: var(--ink);color: #fff;padding: 10px 14px;border-radius: 4px;transition: transform 200ms var(--ease)}.skip-link:focus{transform: translateY(0)}.site-header{position: sticky;top: 0;z-index: 15;background: rgba(255,250,244,0.86);border-bottom: 1px solid var(--line);backdrop-filter: saturate(140%) blur(18px);-webkit-backdrop-filter: saturate(140%) blur(18px);transition: background 200ms var(--ease),box-shadow 200ms var(--ease);view-transition-name: site-header}.site-header.is-scrolled{background: rgba(255,250,244,0.96);box-shadow: 0 6px 20px rgba(36,49,45,0.05)}.header-inner{width: min(1180px,calc(100% - 48px));min-height: var(--header-height);margin: 0 auto;display: flex;align-items: center;justify-content: space-between;gap: 24px}.brand{display: inline-flex;align-items: center;gap: 12px;min-width: max-content}.brand-mark{display: inline-block;width: 44px;height: 44px;background-color: #E5B324;-webkit-mask: url("/assets/images/jojo-logo.png") center / contain no-repeat;mask: url("/assets/images/jojo-logo.png") center / contain no-repeat;-webkit-mask-mode: luminance;mask-mode: luminance;transition: transform 360ms var(--ease),background-color 320ms var(--ease)}.brand:hover .brand-mark{transform: rotate(-6deg) scale(1.06)}.brand-footer .brand-mark{background-color: #E5B324}.brand-text{display: grid;line-height: 1.05}.brand-text strong{font-family: var(--wordmark);font-size: 1.22rem;font-weight: 600;letter-spacing: -0.01em}.brand-text span{color: var(--muted);font-size: 0.88rem}.site-nav{display: flex;align-items: center;gap: 18px}.nav-scrim{display: none}.nav-links{display: flex;align-items: center;gap: 4px}.nav-link,.language-link{position: relative;display: inline-flex;align-items: center;min-height: 42px;padding: 0 12px;border-radius: 4px;color: var(--muted);font-size: 0.96rem;transition: color 180ms var(--ease)}.nav-link::after{content: "";position: absolute;left: 12px;right: 12px;bottom: 8px;height: 1.5px;background: var(--sage-dark);transform-origin: left center;transform: scaleX(0);transition: transform 280ms var(--ease)}.nav-link:hover{color: var(--ink);background: transparent}.nav-link:hover::after,.nav-link.is-active::after{transform: scaleX(1)}.nav-link.is-active{color: var(--ink);background: transparent}.language-link:hover,.language-link.is-active{background: rgba(96,125,104,0.12);color: var(--ink)}.language-switcher{display: inline-flex;align-items: center;border: 1px solid var(--line);border-radius: 6px;padding: 2px}.language-link{min-height: 32px;padding: 0 8px;font-size: 0.82rem}.nav-toggle{display: none;align-items: center;justify-content: center;min-width: 44px;min-height: 40px;border: 1px solid var(--line);background: transparent;color: var(--ink);padding: 9px 12px;border-radius: 4px;transition: background 180ms var(--ease),border-color 180ms var(--ease)}.nav-toggle:hover{border-color: var(--sage)}.nav-toggle-icon,.nav-toggle-icon::before,.nav-toggle-icon::after{display: block;width: 18px;height: 2px;background: currentColor;border-radius: 2px;transition: transform 300ms var(--ease)}.nav-toggle-icon{position: relative}.nav-toggle-icon::before,.nav-toggle-icon::after{content: "";position: absolute;left: 0}.nav-toggle-icon::before{top: -6px}.nav-toggle-icon::after{top: 6px}body.nav-open .nav-toggle-icon{transform: rotate(90deg)}.button{position: relative;display: inline-flex;align-items: center;justify-content: center;gap: 10px;min-height: 48px;padding: 0 22px;border: 1px solid transparent;border-radius: 999px;font-weight: 600;letter-spacing: 0.01em;overflow: hidden;overflow-wrap: anywhere;isolation: isolate;transition: transform 220ms var(--ease),box-shadow 220ms var(--ease),background 220ms var(--ease),color 220ms var(--ease),border-color 220ms var(--ease)}.button::after{content: "→";font-weight: 600;transition: transform 240ms var(--ease)}.button:hover::after{transform: translateX(4px)}.button:hover{transform: translateY(-1px)}.button:focus-visible{outline: 3px solid rgba(96,125,104,0.34);outline-offset: 3px}.button-primary{background: linear-gradient(135deg,var(--sage-dark),var(--sage-deep));color: #fff;box-shadow: var(--shadow-primary)}.button-primary::before{content: "";position: absolute;inset: 0;z-index: -1;background: linear-gradient(135deg,#294a3b,#1f3d31);opacity: 0;transition: opacity 260ms var(--ease)}.button-primary:hover{color: #fff;box-shadow: var(--shadow-primary-hover)}.button-primary:hover::before{opacity: 1}.button-secondary{background: rgba(255,255,255,0.92);color: var(--ink);border-color: rgba(255,255,255,0.56);backdrop-filter: blur(8px);-webkit-backdrop-filter: blur(8px)}.button-secondary:hover{background: #ffffff;border-color: rgba(36,49,45,0.18)}.button-small{min-height: 40px;padding: 0 18px;font-size: 0.92rem}.hero{position: relative;min-height: 560px;display: flex;align-items: flex-end;background-color: var(--sage);color: #fff;isolation: isolate;overflow: hidden}.hero-home{min-height: max(480px,calc(100svh - 205px))}.hero::before{content: "";position: absolute;inset: 0;z-index: -2;background-image: var(--hero-image-jpg);background-size: cover;background-position: center;transform: scale(1.02);transition: transform 1200ms var(--ease)}.hero-home::before{background-position: center 65%}.hero.is-ready::before{animation: hero-zoom 24s ease-out forwards}@keyframes hero-zoom{from{transform: scale(1.02)}to{transform: scale(1.10)}}.hero-shade{position: absolute;inset: 0;z-index: -1;background: radial-gradient(120% 70% at 20% 80%,rgba(22,33,29,0.34),rgba(22,33,29,0) 60%),linear-gradient(90deg,rgba(22,33,29,0.64),rgba(22,33,29,0.26) 52%,rgba(22,33,29,0.05)),linear-gradient(0deg,rgba(22,33,29,0.42),rgba(22,33,29,0.03) 60%)}.hero-inner{width: min(1180px,calc(100% - 48px));margin: 0 auto;padding: 142px 0 78px}.hero-home .hero-inner{padding-top: 88px;padding-bottom: 48px}.hero h1{max-width: 760px;margin: 0;font-family: var(--wordmark);font-size: clamp(2.6rem,5.2vw,4.4rem);line-height: 0.98;font-weight: 400;letter-spacing: -0.02em;text-wrap: pretty;transform: translateZ(0);-webkit-transform: translateZ(0)}.brand-icon{display: block;height: 52px;width: auto;transition: transform 320ms var(--ease)}.brand:hover .brand-icon{transform: rotate(-6deg) scale(1.05)}@media (max-width: 560px){.brand-icon{height: 44px}}.hero .eyebrow,.hero-lead,.hero-actions,.hero-facts{transform: translateZ(0);-webkit-transform: translateZ(0)}.hero-lead{max-width: 660px;margin: 24px 0 0;color: rgba(255,255,255,0.92);font-size: 1.18rem;text-wrap: pretty}.hero-lead--short{display: none}.hero-actions{display: flex;flex-wrap: wrap;gap: 12px;margin-top: 30px}.hero-facts{display: flex;flex-wrap: wrap;gap: 10px;padding: 0;margin: 34px 0 0;list-style: none}.hero-facts li{padding: 9px 14px;border: 1px solid rgba(255,255,255,0.32);border-radius: 999px;background: rgba(255,255,255,0.08);color: rgba(255,255,255,0.94);font-size: 0.9rem;backdrop-filter: blur(4px);-webkit-backdrop-filter: blur(4px)}.eyebrow{position: relative;margin: 0 0 12px;color: var(--clay);font-size: 0.78rem;font-weight: 700;letter-spacing: 0.14em;text-transform: uppercase}.eyebrow::before{content: "—";display: inline-block;margin-right: 8px;color: var(--clay);opacity: 0.6}.hero .eyebrow{color: #f2c9b9}.hero .eyebrow::before{color: #f2c9b9}.section{width: min(1180px,calc(100% - 48px));margin: 0 auto;padding: 64px 0}.section-heading{max-width: 760px;margin-bottom: 38px}.section-heading h2,.split-copy h2,.price-callout h2,.cta-band h2,.contact-panel h2,.enquiry-form h2,.faq-group h2,.policy-section h2,.price-table-block h2{margin: 0;font-family: var(--serif);font-size: clamp(1.85rem,2.6vw,2.45rem);line-height: 1.08;letter-spacing: -0.015em;font-weight: 500;text-wrap: balance}.section-heading p,.split-copy p,.cta-band p,.contact-panel p,.enquiry-form p,.policy-section p{color: var(--muted);text-wrap: pretty}main > .section + .section:not(.band):not(.reel-section)::before{content: "";display: block;grid-column: 1 / -1;justify-self: center;width: 64px;height: 1px;margin: 0 auto 64px;background: linear-gradient(90deg,transparent,rgba(96,125,104,0.4),transparent);transform: translateY(-48px)}.service-grid{display: grid;grid-template-columns: repeat(4,minmax(0,1fr));gap: 20px}.service-grid--3{grid-template-columns: repeat(3,minmax(0,1fr))}.service-scroller{display: contents}.service-card{position: relative;display: grid;grid-template-rows: 220px 1fr;min-height: 100%;overflow: hidden;border: 1px solid var(--line);border-radius: 14px;background: var(--surface);box-shadow: var(--shadow-soft);transition: transform 360ms var(--ease),box-shadow 360ms var(--ease),border-color 360ms var(--ease);will-change: transform}.service-card:hover{color: var(--ink);transform: translateY(-6px);box-shadow: var(--shadow-card-hover);border-color: rgba(96,125,104,0.36)}.service-card:focus-visible{outline: 3px solid rgba(96,125,104,0.4);outline-offset: 3px}.service-media{display: block;position: relative;overflow: hidden;background: var(--sky)}.service-media::after{content: "";position: absolute;inset: 0;background: linear-gradient(180deg,rgba(36,49,45,0) 60%,rgba(36,49,45,0.18));opacity: 0;transition: opacity 360ms var(--ease);pointer-events: none}.service-card:hover .service-media::after{opacity: 1}.service-media img{width: 100%;height: 100%;object-fit: cover;transition: transform 800ms var(--ease)}.service-card:hover .service-media img{transform: scale(1.06)}.service-card-copy{display: grid;gap: 10px;padding: 22px 22px 24px}.card-kicker{display: inline-flex;align-items: center;gap: 6px;color: var(--rose);font-weight: 700;font-size: 0.86rem;letter-spacing: 0.02em}.card-title{font-family: var(--serif);font-size: 1.5rem;line-height: 1.12;letter-spacing: -0.01em;font-weight: 500;transition: color 240ms var(--ease)}.service-card:hover .card-title{color: var(--sage-dark)}.card-text{color: var(--muted)}.tag-row{display: flex;flex-wrap: wrap;gap: 6px;margin-top: 6px}.tag-row span{padding: 4px 9px;border-radius: 999px;background: var(--mist);color: var(--sage-dark);font-size: 0.76rem;letter-spacing: 0.01em;text-align: center}.band{position: relative;width: 100%;max-width: none;background: var(--mist);padding-left: 24px;padding-right: 24px;isolation: isolate}.band::before,.band::after{content: "";position: absolute;left: 0;right: 0;height: 1px;background: linear-gradient(90deg,transparent,rgba(36,49,45,0.08),transparent)}.band::before{top: 0}.band::after{bottom: 0}.band > .section-heading,.band > .feature-grid,.band > .process-list{width: min(1180px,100%);margin-left: auto;margin-right: auto}.feature-grid{display: grid;grid-template-columns: repeat(4,minmax(0,1fr));gap: 18px}.feature-card{position: relative;min-height: 220px;padding: 26px;border: 1px solid rgba(36,49,45,0.1);border-radius: 14px;background: rgba(255,255,255,0.78);transition: transform 360ms var(--ease),box-shadow 360ms var(--ease),background 360ms var(--ease),border-color 360ms var(--ease)}.feature-card:hover{transform: translateY(-3px);background: #ffffff;border-color: rgba(96,125,104,0.28);box-shadow: 0 18px 36px rgba(36,49,45,0.08)}.feature-icon{display: grid;place-items: center;width: 46px;height: 46px;margin-bottom: 18px;border-radius: 12px;background: linear-gradient(135deg,rgba(96,125,104,0.18),rgba(201,133,118,0.22));color: var(--sage-dark);transition: transform 360ms var(--ease),background 360ms var(--ease)}.feature-card:hover .feature-icon{transform: scale(1.06) rotate(-3deg);background: linear-gradient(135deg,rgba(96,125,104,0.28),rgba(201,133,118,0.32))}.feature-icon svg{width: 24px;height: 24px;fill: none;stroke: currentColor;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.8}.feature-card h3,.process-step h3{margin: 0 0 10px;font-family: var(--serif);font-size: 1.22rem;line-height: 1.18;letter-spacing: -0.005em;font-weight: 500}.feature-card p,.process-step p{margin: 0;color: var(--muted)}.split-section{display: grid;grid-template-columns: minmax(0,0.9fr) minmax(0,1.1fr);align-items: center;gap: 56px}.split-section.reverse{grid-template-columns: minmax(0,1.05fr) minmax(0,0.95fr)}.split-section.reverse .split-copy{order: 2}.split-copy{max-width: 580px}.split-copy p{margin: 18px 0 0}.split-image{position: relative;overflow: hidden;border-radius: 14px;box-shadow: var(--shadow)}.split-image::after{content: "";position: absolute;inset: 0;border-radius: inherit;box-shadow: inset 0 0 0 1px rgba(36,49,45,0.06);pointer-events: none}.split-image img{width: 100%;aspect-ratio: 4 / 3;object-fit: cover;transition: transform 1200ms var(--ease)}.split-image:hover img{transform: scale(1.03)}.reel-marquee{--reel-card-w: 165px;--reel-gap: 12px;--reel-cycle: calc((var(--reel-card-w) + var(--reel-gap)) * 4);align-self: stretch;overflow: hidden}.reel-heading{display: flex;flex-direction: column;gap: 4px;margin-bottom: 18px;color: var(--ink);transition: color 200ms var(--ease)}.reel-heading:hover{color: var(--sage-dark)}.reel-handle{display: inline-flex;align-items: center;gap: 6px;color: var(--clay);font-size: 0.8rem;font-weight: 700;letter-spacing: 0.12em;text-transform: uppercase}.reel-handle .icon{width: 16px;height: 16px}.reel-title{position: relative;display: inline-block;font-family: var(--serif);font-size: clamp(1.15rem,1.6vw,1.5rem);font-weight: 500;letter-spacing: -0.01em;line-height: 1.18}.reel-title::after{content: "→";display: inline-block;margin-left: 8px;transition: transform 240ms var(--ease)}.reel-heading:hover .reel-title::after{transform: translateX(4px)}.reel-track{display: flex;width: max-content;animation: reel-marquee 70s linear infinite;will-change: transform;overflow: hidden;-webkit-mask-image: linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);mask-image: linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%)}.reel-marquee:hover .reel-track,.reel-marquee:focus-within .reel-track{animation-play-state: paused}@keyframes reel-marquee{from{transform: translate3d(0,0,0)}to{transform: translate3d(calc(-1 * var(--reel-cycle)),0,0)}}.reel-card{position: relative;display: block;flex: 0 0 var(--reel-card-w);width: var(--reel-card-w);margin-right: var(--reel-gap);aspect-ratio: 9 / 16;overflow: hidden;border-radius: 14px;background: var(--mist);box-shadow: var(--shadow-soft);transition: transform 360ms var(--ease),box-shadow 360ms var(--ease)}.reel-card:hover,.reel-card:focus-visible{transform: translateY(-3px);box-shadow: var(--shadow-card-hover);outline: none}.reel-card video,.reel-card img{width: 100%;height: 100%;object-fit: cover;display: block}.reel-overlay{position: absolute;inset: auto 8px 8px auto;width: 28px;height: 28px;display: grid;place-items: center;border-radius: 999px;background: rgba(20,20,20,0.5);color: #fff;backdrop-filter: blur(6px);-webkit-backdrop-filter: blur(6px);opacity: 0.92;transition: opacity 240ms var(--ease),transform 240ms var(--ease)}.reel-card:hover .reel-overlay{opacity: 1;transform: scale(1.06)}.reel-overlay .icon{width: 14px;height: 14px}@media (prefers-reduced-motion: reduce){.reel-track{animation: none}.reel-card[data-clone]{display: none}}.split-section.founder-reels{align-items: start}main > .section:has(+ .split-section){padding-bottom: 28px}main > .section + .split-section{padding-top: 24px}.founder-actions{display: flex;flex-wrap: wrap;align-items: center;gap: 12px 22px;margin-top: 22px}.founder-actions .text-link{margin-top: 0}.instagram-link{display: inline-flex;align-items: center;gap: 8px;padding: 10px 16px;border-radius: 999px;background: linear-gradient(135deg,rgba(201,133,118,0.16),rgba(96,125,104,0.16));color: var(--clay);font-weight: 700;font-size: 0.92rem;letter-spacing: 0.005em;transition: transform 240ms var(--ease),background 240ms var(--ease),color 240ms var(--ease),box-shadow 240ms var(--ease)}.instagram-link:hover{transform: translateY(-1px);color: var(--ink);background: linear-gradient(135deg,rgba(201,133,118,0.28),rgba(96,125,104,0.28));box-shadow: 0 8px 20px rgba(201,133,118,0.18)}.instagram-link .icon{width: 18px;height: 18px}.footer-actions a.footer-instagram{display: inline-flex;align-items: center;gap: 8px;line-height: 1}.footer-instagram .icon{width: 16px;height: 16px;flex-shrink: 0}@media (max-width: 820px){.footer-actions a.footer-instagram{display: flex}}.jojo-photo-card{justify-self: center;width: min(280px,100%);padding: 12px;border: 1px solid rgba(36,49,45,0.1);border-radius: 14px;background: rgba(255,255,255,0.78);box-shadow: var(--shadow-soft);transition: transform 360ms var(--ease),box-shadow 360ms var(--ease)}.band.split-section.reverse:has(.jojo-photo-card){position: relative;isolation: isolate;width: min(1180px,calc(100% - 48px));margin-left: auto;margin-right: auto;padding-left: 0;padding-right: 0;background: transparent}.band.split-section.reverse:has(.jojo-photo-card)::after{content: "";position: absolute;top: 0;bottom: 0;left: 50%;width: 100vw;margin-left: -50vw;background: var(--mist);z-index: -1;pointer-events: none}.jojo-photo-card:hover{transform: translateY(-3px) rotate(-0.4deg);box-shadow: var(--shadow)}.jojo-photo-card img{width: 100%;aspect-ratio: 4 / 5;border-radius: 8px;object-fit: cover}.reel-section{width: 100%;padding: 16px 0;overflow: hidden}.reel-section .reel-marquee{width: 100%}.reel-section .reel-heading{width: min(1180px,calc(100% - 48px));margin: 0 auto 18px}main > .section:has(+ .reel-section){padding-bottom: 24px}main > .reel-section + .section{padding-top: 24px}.text-link{position: relative;display: inline-flex;align-items: center;gap: 10px;margin-top: 24px;color: var(--sage-dark);font-weight: 700;letter-spacing: 0.005em;padding-bottom: 2px;background-image: linear-gradient(currentColor,currentColor);background-size: 0% 1.5px;background-repeat: no-repeat;background-position: 0 100%;transition: background-size 320ms var(--ease),color 200ms var(--ease)}.text-link::after{content: "→";transition: transform 260ms var(--ease)}.text-link:hover{color: var(--sage-deep);background-size: 100% 1.5px}.text-link:hover::after{transform: translateX(5px)}.faq-list{display: grid;gap: 10px}details{border: 1px solid var(--line);border-radius: 12px;background: var(--surface);overflow: clip;transition: border-color 220ms var(--ease),box-shadow 220ms var(--ease)}details:hover{border-color: rgba(96,125,104,0.32)}details[open]{border-color: rgba(96,125,104,0.32);box-shadow: var(--shadow-soft)}summary{display: flex;align-items: center;justify-content: space-between;gap: 18px;padding: 20px 22px;cursor: pointer;font-weight: 600;font-family: var(--serif);font-size: 1.05rem;letter-spacing: -0.005em;list-style: none}summary::-webkit-details-marker{display: none}summary::after{content: "+";display: grid;place-items: center;flex: 0 0 auto;width: 30px;height: 30px;border-radius: 50%;background: var(--mist);color: var(--sage-dark);font-weight: 500;font-size: 1.2rem;line-height: 1;transition: transform 320ms var(--ease),background 220ms var(--ease),color 220ms var(--ease)}details:hover summary::after{background: rgba(96,125,104,0.18)}details[open] summary::after{content: "+";transform: rotate(45deg);background: var(--sage-dark);color: #fff}summary small{margin-left: auto;color: var(--rose);font-family: var(--sans);font-weight: 700;font-size: 0.74rem;letter-spacing: 0.08em;text-transform: uppercase}details p{margin: 0;padding: 0 22px 22px;color: var(--muted)}@supports (interpolate-size: allow-keywords){:root{interpolate-size: allow-keywords}details::details-content{block-size: 0;height: 0;overflow: clip;transition: block-size 320ms var(--ease),height 320ms var(--ease),content-visibility 320ms allow-discrete}details[open]::details-content{block-size: auto;height: auto}}.cta-band{position: relative;width: min(1180px,calc(100% - 48px));margin: 0 auto 64px;display: grid;grid-template-columns: minmax(0,1fr) auto;align-items: center;gap: 28px;padding: 42px;border-radius: 16px;background: radial-gradient(120% 120% at 100% 0%,rgba(96,125,104,0.45),transparent 55%),linear-gradient(135deg,var(--sage-deep) 0%,var(--ink) 100%);color: #fff;overflow: hidden;isolation: isolate}.cta-band::after{content: "";position: absolute;right: -40px;bottom: -40px;width: 220px;height: 220px;background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='%23ffffff' opacity='0.06'><ellipse cx='32' cy='44' rx='10' ry='12'/><ellipse cx='14' cy='28' rx='5' ry='6.5'/><ellipse cx='22' cy='16' rx='5' ry='6.5'/><ellipse cx='42' cy='16' rx='5' ry='6.5'/><ellipse cx='50' cy='28' rx='5' ry='6.5'/></svg>");background-repeat: no-repeat;background-position: center;background-size: contain;opacity: 0.65;pointer-events: none;z-index: -1}.cta-band .eyebrow{color: #f2c9b9}.cta-band .eyebrow::before{color: #f2c9b9}.cta-band p{max-width: 740px;margin: 14px 0 0;color: rgba(255,255,255,0.78)}.cta-actions{display: flex;flex-wrap: wrap;gap: 12px;justify-content: flex-end}.process-list{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 18px}.process-step{padding: 28px;border-left: 3px solid var(--rose);border-radius: 12px;background: rgba(255,255,255,0.78);transition: transform 320ms var(--ease),background 320ms var(--ease),box-shadow 320ms var(--ease)}.process-step:hover{transform: translateY(-3px);background: #ffffff;box-shadow: 0 14px 28px rgba(36,49,45,0.08)}.process-step span{display: block;margin-bottom: 18px;color: var(--sage-dark);font-family: var(--serif);font-size: 1.5rem;font-weight: 600;letter-spacing: -0.01em}.price-preview .price-table-grid{grid-template-columns: 1fr}.price-table-grid{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 20px}.price-table-block{overflow: hidden;border: 1px solid var(--line);border-radius: 14px;background: var(--surface);box-shadow: var(--shadow-soft);transition: transform 320ms var(--ease),box-shadow 320ms var(--ease)}.price-table-block:hover{transform: translateY(-3px);box-shadow: var(--shadow)}.price-table-block h2{padding: 24px 24px 12px;font-size: 1.55rem}.price-list{display: grid;gap: 0;padding: 0 18px 18px;margin: 0;list-style: none}.price-list li{display: grid;grid-template-columns: minmax(0,1fr) auto;align-items: center;gap: 14px;min-height: 58px;padding: 14px 0;border-top: 1px dashed rgba(36,49,45,0.14);transition: padding 220ms var(--ease)}.price-service{color: var(--ink-soft);font-weight: 500;line-height: 1.35}.price-value{justify-self: end;min-width: 86px;color: var(--sage-dark);font-family: var(--serif);font-weight: 600;font-size: 1.05rem;text-align: right;white-space: nowrap;letter-spacing: -0.01em}.price-note{max-width: 860px;margin: 28px 0 0;color: var(--muted);font-size: 0.96rem}.two-column-band{display: grid;grid-template-columns: repeat(2,minmax(0,560px));justify-content: center;gap: 48px}.two-column-band > *,.band.split-section > *:not(.jojo-photo-card){width: auto;margin: 0}.two-column-band h2{margin: 0 0 14px;font-family: var(--serif);font-size: 2rem;letter-spacing: -0.015em;font-weight: 500}.two-column-band p{margin: 0;color: var(--muted)}.check-list,.plain-list{display: grid;gap: 14px;padding: 0;margin: 28px 0 0;list-style: none}.check-list li,.plain-list li{position: relative;padding-left: 30px;color: var(--ink-soft)}.check-list li::before,.plain-list li::before{content: "";position: absolute;top: 0.62em;left: 0;width: 10px;height: 10px;border-radius: 50%;background: var(--rose);box-shadow: 0 0 0 4px rgba(201,133,118,0.16)}.price-callout{padding: 38px;border-radius: 16px;background: var(--surface);box-shadow: var(--shadow)}.price-callout h2{max-width: 860px;font-size: 2rem}.faq-group + .faq-group{margin-top: 44px}.faq-group h2{margin-bottom: 18px}.contact-layout{display: grid;grid-template-columns: minmax(0,0.82fr) minmax(0,1.18fr);align-items: start;gap: 28px}.contact-panel,.enquiry-form{border: 1px solid var(--line);border-radius: 16px;background: var(--surface);box-shadow: var(--shadow-soft)}.contact-panel{padding: 34px}address{margin: 24px 0;color: var(--muted);font-style: normal}address a{text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: 4px;transition: color 200ms var(--ease)}address a:hover{color: var(--sage-dark)}.enquiry-form{display: grid;gap: 18px;padding: 34px}.enquiry-form label{display: grid;gap: 8px;color: var(--ink);font-weight: 600;font-size: 0.92rem;letter-spacing: 0.005em;transition: color 200ms var(--ease)}.enquiry-form label:focus-within{color: var(--sage-dark)}.enquiry-form input,.enquiry-form textarea,.enquiry-form select{width: 100%;border: 1px solid var(--line);border-radius: 8px;background: #fff;color: var(--ink);padding: 13px 14px;resize: vertical;transition: border-color 200ms var(--ease),box-shadow 200ms var(--ease)}.enquiry-form select{appearance: none;-webkit-appearance: none;-moz-appearance: none;padding-right: 36px;background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8' fill='none' stroke='%2365736c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M1 1l6 6 6-6'/></svg>");background-repeat: no-repeat;background-position: right 14px center;cursor: pointer}.enquiry-form input:hover,.enquiry-form textarea:hover,.enquiry-form select:hover{border-color: rgba(96,125,104,0.4)}.enquiry-form input:focus,.enquiry-form textarea:focus,.enquiry-form select:focus{outline: none;border-color: var(--sage);box-shadow: 0 0 0 4px rgba(96,125,104,0.18),0 0 0 8px rgba(201,133,118,0.08)}.enquiry-form .form-row{display: grid;gap: 18px;grid-template-columns: 1fr}@media (min-width: 560px){.enquiry-form .form-row{grid-template-columns: 1fr 1.2fr}}.enquiry-form label[hidden],.enquiry-form [hidden]{display: none}.form-status{margin: 0;color: var(--sage-dark);font-weight: 600}.form-status.is-error{color: var(--clay)}.hp-field{position: absolute;left: -9999px;width: 1px;height: 1px;overflow: hidden}.booking-integration{padding-top: 0}.booking-placeholder{display: grid;grid-template-columns: minmax(0,1fr) auto;align-items: center;gap: 24px;padding: 32px;border: 1px dashed rgba(96,125,104,0.4);border-radius: 16px;background: linear-gradient(135deg,rgba(237,243,238,0.6),rgba(251,244,234,0.6))}.booking-placeholder h2{margin: 0;font-family: var(--serif);font-size: 2rem;line-height: 1.1;letter-spacing: -0.015em;font-weight: 500}.booking-placeholder p:not(.eyebrow){max-width: 680px;margin: 12px 0 0;color: var(--muted)}.booking-actions{display: flex;flex-wrap: wrap;align-items: center;justify-content: flex-end;gap: 12px}.policy-section{display: grid;gap: 24px}.policy-section article{padding: 30px;border: 1px solid var(--line);border-radius: 14px;background: var(--surface);box-shadow: var(--shadow-soft)}.not-found{min-height: 52vh}.not-found h1{margin: 0;font-family: var(--serif);font-size: clamp(2.4rem,4vw,3.2rem);line-height: 1.05;font-weight: 500;letter-spacing: -0.02em}.not-found p{max-width: 620px;color: var(--muted)}.site-footer{margin-top: 32px;padding: 56px 0 28px;background: radial-gradient(120% 80% at 0% 0%,rgba(96,125,104,0.22),transparent 50%),linear-gradient(180deg,#25322d,#1c2622);color: #fff;view-transition-name: site-footer}.footer-inner,.footer-linkbar,.footer-bottom{width: min(1180px,calc(100% - 48px));margin: 0 auto}.footer-inner{display: grid;gap: 28px}.footer-card{border: 1px solid rgba(255,255,255,0.13);border-radius: 12px;background: rgba(255,255,255,0.06)}.footer-main{padding: 0}.brand-footer .brand-text span{color: rgba(255,255,255,0.7)}.footer-contact{display: grid;gap: 14px;padding: 24px 0 0;border: 0;border-top: 1px solid rgba(255,255,255,0.13);background: transparent}.footer-left{display: grid;gap: 28px}@media (min-width: 821px){.footer-inner{grid-template-columns: minmax(0,0.9fr) minmax(0,1.1fr);align-items: stretch;column-gap: 28px}.footer-inner > .footer-map{aspect-ratio: auto;align-self: stretch;height: 100%;min-height: 280px;margin-top: 0}}.footer-label{margin: 0;color: #f2c9b9;font-size: 0.78rem;font-weight: 700;letter-spacing: 0.14em;text-transform: uppercase}.footer-actions{display: flex;flex-wrap: wrap;gap: 10px}.footer-actions a,.footer-address{display: inline-flex;align-items: center;padding: 12px 16px;border-radius: 999px;background: rgba(255,255,255,0.08);color: rgba(255,255,255,0.92);overflow-wrap: anywhere;transition: background 220ms var(--ease),transform 220ms var(--ease)}.footer-address{justify-self: start;border-radius: 12px}.footer-map{margin-top: 4px;border-radius: 12px;overflow: hidden;border: 1px solid rgba(255,255,255,0.13);background: rgba(255,255,255,0.06);aspect-ratio: 16 / 10;filter: saturate(0.85) brightness(0.92);transition: filter 240ms var(--ease)}.footer-map:hover{filter: saturate(1) brightness(1)}.footer-map iframe{display: block;width: 100%;height: 100%;border: 0}.footer-actions a:hover,.footer-address:hover{background: rgba(255,255,255,0.16);color: #fff;transform: translateY(-1px)}.footer-linkbar{display: grid;grid-template-columns: 1fr 1fr;gap: 18px;padding: 22px 0;border-bottom: 1px solid rgba(255,255,255,0.13)}.footer-linkbar nav{display: flex;flex-wrap: wrap;gap: 10px 18px}.footer-linkbar nav:last-child{justify-content: flex-end}.footer-linkbar a{position: relative;color: rgba(255,255,255,0.78);font-weight: 500;transition: color 200ms var(--ease)}.footer-linkbar a::after{content: "";position: absolute;left: 0;right: 0;bottom: -3px;height: 1px;background: rgba(255,255,255,0.5);transform: scaleX(0);transform-origin: left center;transition: transform 240ms var(--ease)}.footer-linkbar a:hover{color: #fff}.footer-linkbar a:hover::after{transform: scaleX(1)}.footer-bottom{display: flex;justify-content: space-between;gap: 18px;padding-top: 22px;color: rgba(255,255,255,0.58);font-size: 0.9rem}.reveal{opacity: 0;transform: translateY(18px);transition: opacity 700ms var(--ease),transform 700ms var(--ease);will-change: opacity,transform}.reveal.is-visible{opacity: 1;transform: translateY(0)}.reveal .service-card,.reveal .feature-card,.reveal .process-step,.reveal .price-table-block{opacity: 0;transform: translateY(14px);transition: opacity 600ms var(--ease),transform 600ms var(--ease)}.reveal.is-visible .service-card,.reveal.is-visible .feature-card,.reveal.is-visible .process-step,.reveal.is-visible .price-table-block{opacity: 1;transform: translateY(0)}.reveal.is-visible .service-card:nth-child(2),.reveal.is-visible .feature-card:nth-child(2),.reveal.is-visible .process-step:nth-child(2),.reveal.is-visible .price-table-block:nth-child(2){transition-delay: 80ms}.reveal.is-visible .service-card:nth-child(3),.reveal.is-visible .feature-card:nth-child(3),.reveal.is-visible .process-step:nth-child(3),.reveal.is-visible .price-table-block:nth-child(3){transition-delay: 160ms}.reveal.is-visible .service-card:nth-child(4),.reveal.is-visible .feature-card:nth-child(4){transition-delay: 240ms}@media (max-width: 1040px){.site-nav{gap: 10px}.nav-link{padding: 0 8px}.service-grid,.feature-grid{grid-template-columns: repeat(2,minmax(0,1fr))}.price-table-grid{grid-template-columns: 1fr}.contact-layout,.split-section,.split-section.reverse,.two-column-band{grid-template-columns: 1fr}.split-section.reverse .split-copy{order: 0}main > .section + .split-section:not(.band):not(.reel-section)::before{display: none}.cta-band{grid-template-columns: 1fr}.cta-actions{justify-content: flex-start}.booking-placeholder{grid-template-columns: 1fr}.booking-actions{justify-content: flex-start}}@media (max-width: 820px){:root{--header-height: 68px}.header-inner{width: min(100% - 32px,1180px)}.nav-toggle{display: inline-flex}.site-nav{position: fixed;top: var(--header-height);right: 0;z-index: 2;display: flex;width: min(80%,360px);min-height: calc(100svh - var(--header-height));padding: 22px 16px 28px;background: var(--paper);border-left: 1px solid var(--line);box-shadow: -18px 0 48px rgba(36,49,45,0.18);flex-direction: column;align-items: stretch;overflow: auto;overscroll-behavior: contain;transform: translateX(100%);visibility: hidden;transition: transform 220ms var(--ease-in),visibility 0s linear 220ms}body.nav-open .site-nav{transform: translateX(0);visibility: visible;transition: transform 320ms var(--ease),visibility 0s}.nav-scrim{display: block;position: fixed;top: var(--header-height);left: 0;right: 0;z-index: 1;height: calc(100svh - var(--header-height));background: rgba(36,49,45,0.5);opacity: 0;pointer-events: none;transition: opacity 280ms var(--ease)}body.nav-open .nav-scrim{opacity: 1;pointer-events: auto}.nav-links{display: grid;gap: 6px}.nav-link{min-height: 48px;justify-content: center;font-size: 1.05rem}.nav-link::after{display: none}.language-switcher{justify-content: center}.hero{min-height: 480px}.hero-home{min-height: max(495px,calc(100svh - var(--header-height) - 165px));align-items: stretch}.hero-home::before{background-size: auto 132%;background-position: 72% 42%}.hero-home::before,.hero-home.is-ready::before{animation: none;transform: none}.hero-inner{width: min(100% - 32px,1180px);padding: 94px 0 52px}.hero-home .hero-inner{display: flex;flex-direction: column;padding: 56px 0 52px}.hero-home .hero-actions{margin-top: auto}.section{width: min(100% - 32px,1180px);padding: 48px 0}main > .section + .section:not(.band)::before{transform: translateY(-32px);margin-bottom: 48px}.band{width: 100%;padding-left: 16px;padding-right: 16px}.process-list{grid-template-columns: 1fr}.cta-band{width: min(100% - 32px,1180px);padding: 32px;margin-bottom: 48px}.footer-inner,.footer-linkbar,.footer-bottom{width: min(100% - 32px,1180px)}.footer-inner,.footer-linkbar{grid-template-columns: 1fr}.footer-contact{gap: 16px;padding: 28px;border: 1px solid rgba(255,255,255,0.13);background: rgba(255,255,255,0.06)}.footer-actions{display: grid}.footer-actions a,.footer-address{display: block}.footer-linkbar nav:last-child{justify-content: flex-start}.footer-bottom{flex-direction: column}}@media (max-width: 720px){.reel-marquee{--reel-card-w: 140px;--reel-gap: 10px}.reel-section .reel-heading{width: min(1180px,calc(100% - 32px))}}@media (max-width: 560px){.brand-mark{width: 38px;height: 38px}.brand-text strong{font-size: 1.05rem}.brand-text span{font-size: 0.78rem}.hero{min-height: 440px}.hero-home{min-height: max(485px,calc(100svh - var(--header-height) - 155px))}.hero-home .hero-lead--full{display: none}.hero-home .hero-lead--short{display: block}.hero-home h1{font-size: clamp(2.1rem,9.4vw,2.5rem)}.hero-home .hero-lead{margin-top: 18px;font-size: 1.04rem}.hero-home .hero-inner{padding-top: 68px;padding-bottom: 40px}.hero-actions,.cta-actions{display: grid;grid-template-columns: 1fr}.button{width: 100%}.hero-home .hero-actions .button{min-height: 44px;padding: 0 18px;font-size: 0.95rem}.hero-facts{display: none}.service-grid,.feature-grid{grid-template-columns: 1fr}.service-card{grid-template-rows: 210px 1fr}.service-grid--stack-scroll{grid-template-columns: 1fr;gap: 16px}.service-grid--stack-scroll .service-scroller{display: flex;gap: 14px;overflow-x: auto;scroll-snap-type: x mandatory;-webkit-overflow-scrolling: touch;scrollbar-width: none;margin: 0 -2px;padding: 4px 2px 6px}.service-grid--stack-scroll .service-scroller::-webkit-scrollbar{display: none}.service-grid--stack-scroll .service-scroller .service-card{flex: 0 0 86%;scroll-snap-align: start}summary{align-items: flex-start}summary small{display: none}.price-list{padding: 0 14px 16px}.price-list li{grid-template-columns: 1fr;gap: 8px;padding: 14px 0}.price-value{justify-self: start;min-width: 0;text-align: left}.footer-linkbar{gap: 10px;padding: 16px 0}.footer-linkbar nav{gap: 6px 12px}.footer-linkbar a{font-size: 0.82rem;font-weight: 500}.footer-bottom{gap: 8px;font-size: 0.78rem}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration: 0.001ms !important;animation-iteration-count: 1 !important;transition-duration: 0.001ms !important;scroll-behavior: auto !important}.hero.is-ready::before{animation: none;transform: scale(1.02)}.reveal,.reveal .service-card,.reveal .feature-card,.reveal .process-step,.reveal .price-table-block{opacity: 1;transform: none}}.booking-modal{position: fixed;inset: 0;z-index: 100}.booking-modal[hidden]{display: none}.booking-modal a[x-apple-data-detectors],.booking-modal a[data-href],.booking-modal a[href^="x-apple-data-detectors"],.booking-modal a[href*="://"]:not([href^="https://"]):not([href^="mailto:"]):not([href^="tel:"]){color: inherit !important;text-decoration: none !important;pointer-events: none !important;-webkit-tap-highlight-color: transparent}.booking-modal .category-name,.booking-modal .category-desc,.booking-modal .service-row-name,.booking-modal .service-row-blurb,.booking-modal .service-row-price,.booking-modal .service-row-duration,.booking-modal .time-chip,.booking-modal .week-cell,.booking-modal .week-cell *,.booking-modal .week-nav-label,.booking-modal .step-title,.booking-modal .step-lead,.booking-modal .summary-value{-webkit-text-fill-color: currentColor}.booking-modal .category-name a,.booking-modal .category-desc a,.booking-modal .service-row-name a,.booking-modal .service-row-blurb a,.booking-modal .service-row-price a,.booking-modal .service-row-duration a,.booking-modal .time-chip a,.booking-modal .week-cell a,.booking-modal .week-nav-label a,.booking-modal .step-title a,.booking-modal .step-lead a,.booking-modal .summary-value a{color: inherit !important;-webkit-text-fill-color: inherit !important;text-decoration: none !important;pointer-events: none !important}body.booking-open{overflow: hidden}.booking-modal .backdrop{position: absolute;inset: 0;display: grid;place-items: center;padding: 24px;background: rgba(36,49,45,0.5);backdrop-filter: blur(4px);-webkit-backdrop-filter: blur(4px);animation: booking-backdrop-in 240ms var(--ease) both}.booking-window{width: 100%;max-width: 760px;max-height: calc(100vh - 48px);max-height: calc(100svh - 48px);background: var(--paper);border-radius: 16px;box-shadow: 0 32px 80px rgba(0,0,0,0.22),0 8px 20px rgba(0,0,0,0.08);display: grid;grid-template-rows: auto auto 1fr auto;overflow: hidden;animation: booking-window-in 320ms var(--ease) both}@keyframes booking-backdrop-in{from{opacity: 0}to{opacity: 1}}@keyframes booking-window-in{from{opacity: 0;transform: translateY(12px) scale(0.99)}to{opacity: 1;transform: none}}@media (max-width: 560px){.booking-modal .backdrop{padding: 0;background: var(--paper);backdrop-filter: none;-webkit-backdrop-filter: none}.booking-window{max-width: none;max-height: none;width: 100%;height: 100vh;height: 100svh;border-radius: 0;box-shadow: none}}.booking-modal-header{display: flex;align-items: center;justify-content: space-between;gap: 16px;padding: 16px 22px;border-bottom: 1px solid var(--line);background: var(--surface)}.booking-modal-header .brand{display: inline-flex;align-items: center;gap: 12px}.booking-modal-header .brand-mark{width: 40px;height: 40px;background-color: #E5B324;-webkit-mask: url("/assets/images/jojo-logo.png") center / contain no-repeat;mask: url("/assets/images/jojo-logo.png") center / contain no-repeat;-webkit-mask-mode: luminance;mask-mode: luminance}.booking-modal-header .brand-text strong{font-family: var(--wordmark);font-weight: 500;font-size: 1.05rem;letter-spacing: -0.005em}.booking-modal-header .brand-text span{color: var(--muted);font-size: 0.82rem}.booking-close-btn{width: 36px;height: 36px;border: 1px solid var(--line);border-radius: 999px;background: var(--surface);color: var(--muted);font-size: 0.95rem;line-height: 1;display: grid;place-items: center;cursor: pointer;transition: background 200ms var(--ease),color 200ms var(--ease),border-color 200ms var(--ease)}.booking-close-btn:hover{background: var(--paper);color: var(--ink);border-color: rgba(36,49,45,0.28)}.booking-modal .progress{display: flex;flex-wrap: wrap;gap: 6px 14px;padding: 12px 22px;background: var(--surface);border-bottom: 1px solid var(--line);font-size: 0.74rem;letter-spacing: 0.06em;text-transform: uppercase;color: var(--muted);font-weight: 600;counter-reset: booking-step-counter}.booking-modal .progress-step{display: inline-flex;align-items: center;gap: 8px;white-space: nowrap}.booking-modal .progress-step::before{content: counter(booking-step-counter);counter-increment: booking-step-counter;display: grid;place-items: center;width: 22px;height: 22px;border-radius: 999px;background: var(--mist);color: var(--muted);font-size: 0.7rem;transition: background 200ms var(--ease),color 200ms var(--ease)}.booking-modal .progress-step.is-active{color: var(--ink)}.booking-modal .progress-step.is-active::before{background: var(--sage-dark);color: #fff}.booking-modal .progress-step.is-done::before{background: #e5b324;color: #fff;content: "✓"}.booking-modal .booking-main{padding: 24px;overflow-y: auto;display: grid;place-items: start center}.booking-modal .booking-card{width: 100%;max-width: 640px;display: grid;gap: 22px}@media (max-width: 560px){.booking-modal .booking-main{padding: 16px 14px}}.booking-modal .step-content{display: grid;gap: 22px}@media (prefers-reduced-motion: no-preference){.booking-modal .step-content{animation: step-enter 280ms var(--ease) both}}@keyframes step-enter{from{opacity: 0;transform: translateY(6px)}to{opacity: 1;transform: none}}.booking-modal .step-header{display: grid;gap: 6px}.booking-modal .step-title{margin: 0;font-family: var(--serif);font-size: clamp(1.5rem,3vw,1.85rem);font-weight: 500;letter-spacing: -0.015em;line-height: 1.15}.booking-modal .step-lead{margin: 0;color: var(--muted);font-size: 0.96rem}.booking-modal .category-grid{display: grid;grid-template-columns: 1fr;gap: 14px}@media (min-width: 560px){.booking-modal .category-grid{grid-template-columns: 1fr 1fr}}.booking-modal .category-card{display: grid;gap: 8px;padding: 24px;border: 1px solid var(--line);border-radius: 14px;background: var(--paper);text-align: left;cursor: pointer;transition: transform 240ms var(--ease),box-shadow 240ms var(--ease),border-color 240ms var(--ease),background 240ms var(--ease)}.booking-modal .category-card:hover,.booking-modal .category-card:focus-visible{transform: translateY(-2px);border-color: rgba(96,125,104,0.4);box-shadow: var(--shadow-soft);outline: none;background: var(--surface)}.booking-modal .category-card.is-selected{border-color: var(--sage-dark);background: rgba(96,125,104,0.08)}.booking-modal .category-name{font-family: var(--serif);font-size: 1.45rem;font-weight: 500;letter-spacing: -0.01em}.booking-modal .category-desc{margin: 0;color: var(--muted);font-size: 0.92rem}.booking-modal .category-both{justify-self: center;display: inline-flex;align-items: center;gap: 6px;padding: 10px 18px;border-radius: 999px;border: 1px solid var(--line);background: var(--surface);color: var(--ink-soft);font-size: 0.92rem;font-weight: 600;letter-spacing: 0.005em;cursor: pointer;transition: background 200ms var(--ease),border-color 200ms var(--ease),color 200ms var(--ease),transform 200ms var(--ease)}.booking-modal .category-both:hover,.booking-modal .category-both:focus-visible{border-color: rgba(96,125,104,0.45);background: var(--paper);color: var(--ink);outline: none;transform: translateY(-1px)}.booking-modal .category-both.is-selected{background: var(--sage-dark);border-color: var(--sage-dark);color: #fff}.booking-modal .service-list{display: grid;gap: 10px}.booking-modal .service-row{display: grid;grid-template-columns: 22px 1fr auto;align-items: center;gap: 14px;padding: 14px 18px;border: 1px solid var(--line);border-radius: 12px;background: var(--surface);text-align: left;cursor: pointer;transition: transform 200ms var(--ease),border-color 200ms var(--ease),background 200ms var(--ease)}.booking-modal .service-check{width: 22px;height: 22px;border-radius: 6px;border: 1.5px solid var(--line);display: grid;place-items: center;font-size: 0.8rem;color: #fff;background: transparent;transition: background 180ms var(--ease),border-color 180ms var(--ease)}.booking-modal .service-row.is-selected .service-check{background: var(--sage-dark);border-color: var(--sage-dark)}.booking-modal .service-foot{display: flex;justify-content: space-between;gap: 12px;flex-wrap: wrap;padding: 4px 2px 0;color: var(--muted);font-size: 0.9rem;font-weight: 600}.booking-modal .service-foot-hint{color: var(--clay)}.booking-modal .category-price{margin-top: 4px;color: var(--sage-dark);font-family: var(--serif);font-weight: 600;font-size: 1.05rem}.booking-modal .hour-len{margin-top: 18px}.booking-modal .hour-len-label{display: block;font-weight: 600;font-size: 0.9rem;margin-bottom: 8px}.booking-modal .hour-len-opts{display: flex;gap: 10px;flex-wrap: wrap}.booking-modal .hour-chip{min-width: 56px;padding: 12px 16px;border: 1px solid var(--line);border-radius: 12px;background: var(--surface);font-family: var(--serif);font-size: 1.02rem;cursor: pointer;transition: border-color 200ms var(--ease),background 200ms var(--ease)}.booking-modal .hour-chip:hover{border-color: rgba(96,125,104,0.45);background: var(--paper)}.booking-modal .hour-chip.is-selected{border-color: var(--sage-dark);background: var(--sage-dark);color: #fff}.booking-modal .hour-price{margin-top: 16px;font-size: 1rem;color: var(--ink)}.booking-modal .empty-note-call{margin: 8px 0 16px;color: var(--ink-soft)}.booking-modal .empty-note .button{display: inline-flex}.booking-modal .service-row:hover,.booking-modal .service-row:focus-visible{border-color: rgba(96,125,104,0.4);background: var(--paper);outline: none}.booking-modal .service-row.is-selected{border-color: var(--sage-dark);background: rgba(96,125,104,0.08);box-shadow: 0 0 0 2px rgba(96,125,104,0.18)}.booking-modal .service-row.is-included{cursor: default;opacity: 0.55}.booking-modal .service-row.is-included:hover,.booking-modal .service-row.is-included:focus-visible{border-color: var(--line);background: var(--surface)}.booking-modal .service-row-included{color: var(--muted);font-family: var(--serif);font-weight: 600;font-size: 0.9rem}.booking-modal .service-row-text{display: grid;gap: 4px}.booking-modal .service-row-name{font-family: var(--serif);font-size: 1.08rem;font-weight: 500;letter-spacing: -0.005em}.booking-modal .service-row-blurb{color: var(--muted);font-size: 0.88rem}.booking-modal .service-row-meta{display: grid;gap: 2px;justify-items: end;text-align: right;font-size: 0.8rem}.booking-modal .service-row-price{color: var(--sage-dark);font-family: var(--serif);font-weight: 600;font-size: 1rem}.booking-modal .service-row-duration{color: var(--muted)}.booking-modal .week-nav{display: grid;grid-template-columns: auto 1fr auto;align-items: center;gap: 12px}.booking-modal .week-nav-btn{width: 38px;height: 38px;border: 1px solid var(--line);border-radius: 999px;background: var(--surface);color: var(--ink);font-size: 1.1rem;line-height: 1;display: grid;place-items: center;cursor: pointer;transition: background 200ms var(--ease),border-color 200ms var(--ease)}.booking-modal .week-nav-btn:hover:not([disabled]){background: var(--paper);border-color: rgba(96,125,104,0.4)}.booking-modal .week-nav-btn[disabled]{opacity: 0.3;cursor: not-allowed}.booking-modal .week-nav-label{font-family: var(--serif);font-size: 1.05rem;font-weight: 500;letter-spacing: -0.005em;text-align: center}.booking-modal .week-grid{display: grid;grid-template-columns: repeat(7,minmax(0,1fr));gap: 6px}.booking-modal .week-cell{display: grid;gap: 4px;place-items: center;padding: 10px 4px 8px;border: 1px solid var(--line);border-radius: 10px;background: var(--surface);min-height: 76px;cursor: pointer;transition: transform 180ms var(--ease),border-color 180ms var(--ease),background 180ms var(--ease)}.booking-modal .week-cell:hover:not([disabled]),.booking-modal .week-cell:focus-visible:not([disabled]){border-color: rgba(96,125,104,0.5);background: var(--paper);outline: none;transform: translateY(-1px)}.booking-modal .week-cell.is-selected{border-color: var(--sage-dark);background: var(--sage-dark);color: #fff;box-shadow: 0 4px 12px rgba(54,90,74,0.25)}.booking-modal .week-cell[disabled]{opacity: 0.32;cursor: not-allowed}.booking-modal .week-cell.is-closed{background: var(--mist)}.booking-modal .week-cell-dow{font-size: 0.68rem;letter-spacing: 0.08em;text-transform: uppercase;color: var(--muted);font-weight: 600;line-height: 1}.booking-modal .week-cell.is-selected .week-cell-dow{color: rgba(255,255,255,0.78)}.booking-modal .week-cell-day{font-family: var(--serif);font-size: 1.35rem;font-weight: 500;letter-spacing: -0.01em;line-height: 1}.booking-modal .week-cell-dots{display: inline-flex;gap: 3px;min-height: 6px}.booking-modal .week-cell-dots .dot{width: 5px;height: 5px;border-radius: 50%;background: var(--sage);opacity: 0.75}.booking-modal .week-cell.is-selected .week-cell-dots .dot{background: rgba(255,255,255,0.9);opacity: 1}.booking-modal .week-foot{display: flex;align-items: center;justify-content: space-between;gap: 12px;flex-wrap: wrap}.booking-modal .next-month-link{border: 0;background: transparent;color: var(--sage-dark);font-weight: 600;font-size: 0.9rem;padding: 0;cursor: pointer;transition: color 180ms var(--ease),transform 240ms var(--ease)}.booking-modal .next-month-link:hover{color: var(--sage-deep);transform: translateX(2px)}.booking-modal .closed-note{font-size: 0.82rem;color: var(--muted)}@media (max-width: 460px){.booking-modal .week-grid{gap: 4px}.booking-modal .week-cell{padding: 8px 2px 6px;min-height: 64px}.booking-modal .week-cell-dow{font-size: 0.6rem;letter-spacing: 0.06em}.booking-modal .week-cell-day{font-size: 1.1rem}}.booking-modal .time-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(120px,1fr));gap: 10px}.booking-modal .time-chip{padding: 14px 12px;border: 1px solid var(--line);border-radius: 12px;background: var(--surface);font-family: var(--serif);font-size: 1.05rem;font-weight: 500;cursor: pointer;transition: border-color 200ms var(--ease),background 200ms var(--ease)}.booking-modal .time-chip:hover:not([disabled]),.booking-modal .time-chip:focus-visible:not([disabled]){border-color: rgba(96,125,104,0.45);background: var(--paper);outline: none}.booking-modal .time-chip.is-selected{border-color: var(--sage-dark);background: var(--sage-dark);color: #fff}.booking-modal .time-chip[disabled]{opacity: 0.4;cursor: not-allowed;text-decoration: line-through}.booking-modal .time-chip-tag{display: block;margin-top: 2px;font-family: var(--sans);font-size: 0.7rem;font-weight: 600;color: var(--rose);letter-spacing: 0.08em;text-transform: uppercase}.booking-modal .empty-note{padding: 28px;border: 1px dashed var(--line);border-radius: 12px;background: var(--paper);color: var(--muted);text-align: center}.booking-modal .booking-form{display: grid;gap: 14px}.booking-modal .booking-form label{display: grid;gap: 6px;color: var(--ink);font-weight: 600;font-size: 0.9rem}.booking-modal .booking-form input,.booking-modal .booking-form textarea{width: 100%;padding: 13px 14px;border: 1px solid var(--line);border-radius: 8px;background: var(--surface);color: var(--ink);transition: border-color 180ms var(--ease),box-shadow 180ms var(--ease)}.booking-modal .booking-form input:focus,.booking-modal .booking-form textarea:focus{outline: none;border-color: var(--sage);box-shadow: 0 0 0 4px rgba(96,125,104,0.18),0 0 0 8px rgba(201,133,118,0.08)}.booking-modal .booking-form-row{display: grid;gap: 14px}@media (min-width: 560px){.booking-modal .booking-form-row{grid-template-columns: 1fr 1fr}}.booking-modal .booking-form .field-req{margin-left: 3px;color: var(--error);font-weight: 700}.booking-modal .booking-form label.is-invalid{color: var(--error)}.booking-modal .booking-form label.is-invalid input,.booking-modal .booking-form label.is-invalid textarea{border-color: var(--error)}.booking-modal .booking-form label.is-invalid input:focus,.booking-modal .booking-form label.is-invalid textarea:focus{border-color: var(--error);box-shadow: 0 0 0 4px rgba(194,65,45,0.16)}.booking-modal .summary{display: grid;border: 1px solid var(--line);border-radius: 12px;overflow: hidden;background: var(--paper)}.booking-modal .summary-row{display: grid;grid-template-columns: 100px 1fr;gap: 12px;padding: 12px 16px;border-bottom: 1px solid var(--line);font-size: 0.95rem}.booking-modal .summary-row:last-child{border-bottom: 0}.booking-modal .summary-label{color: var(--muted);font-size: 0.82rem;letter-spacing: 0.04em;text-transform: uppercase;font-weight: 600;line-height: 1.6}.booking-modal .summary-value{color: var(--ink);font-weight: 500}.booking-modal .prototype-banner{margin: 0;padding: 12px 14px;border-radius: 10px;background: rgba(229,179,36,0.12);color: #7a5a0e;font-size: 0.84rem;border: 1px dashed rgba(229,179,36,0.6)}@media (max-width: 560px){.booking-modal .summary-row{grid-template-columns: 90px 1fr;padding: 11px 14px}}.booking-modal .booking-actions{display: flex;justify-content: space-between;align-items: center;gap: 12px;margin-top: 4px}@media (max-width: 560px){.booking-modal .booking-actions .button{flex: 1}.booking-modal .booking-actions .button-secondary{flex: 0 0 auto;padding: 0 16px}}.booking-modal .booking-error{padding: 12px 14px;border-radius: 10px;background: rgba(201,133,118,0.12);color: #7a3a26;font-size: 0.9rem;border: 1px solid rgba(201,133,118,0.4)}.booking-modal .week-loading{color: var(--muted);font-size: 0.9rem;letter-spacing: 0.1em;margin-left: 4px}.booking-modal-footer{padding: 14px 22px;text-align: center;color: var(--muted);font-size: 0.82rem;border-top: 1px solid var(--line);background: var(--surface)}