:root{--bg: #f5efe3;--bg-soft: #faf6ec;--bg-deep: #ebe3d2;--ink: #2a241a;--ink-soft: #5a4f3e;--ink-mute: #8a7f6a;--olive: #8a8336;--olive-deep: #6a6428;--olive-soft: #b8b07a;--line: rgba(42, 36, 26, .12);--line-strong: rgba(42, 36, 26, .22);--serif: "Instrument Serif", "Cormorant Garamond", Georgia, serif;--sans: "Schibsted Grotesk", -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--pad: clamp(20px, 5vw, 80px);--gutter: clamp(16px, 3vw, 48px);--max: 1240px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","kern"}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}::selection{background:var(--olive);color:#fff}.container{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}.section{padding:clamp(80px,12vw,160px) 0;position:relative}.section--soft{background:var(--bg-soft)}.section--deep{background:var(--bg-deep)}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--olive);font-weight:500;display:inline-flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:28px;height:1px;background:var(--olive)}.display{font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.01em;color:var(--ink);font-size:clamp(44px,7vw,96px)}.display em{font-style:italic;color:var(--olive-deep)}.h2{font-family:var(--serif);font-weight:400;font-size:clamp(36px,5vw,64px);line-height:1.05;letter-spacing:-.01em}.h2 em{font-style:italic;color:var(--olive-deep)}.lede{font-family:var(--serif);font-size:clamp(20px,2vw,26px);line-height:1.4;color:var(--ink-soft);font-style:italic;max-width:36ch}.body-text{color:var(--ink-soft);font-size:17px;line-height:1.65;max-width:56ch}.body-text+.body-text{margin-top:1em}.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:18px var(--pad);display:flex;align-items:center;justify-content:space-between;transition:background .4s ease,backdrop-filter .4s ease,padding .3s ease}.nav.is-scrolled{background:#f5efe3d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:12px var(--pad)}.nav__brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-style:italic;font-size:22px;color:var(--ink)}.nav__brand img{width:44px;height:44px;object-fit:contain}.nav__links{display:flex;gap:32px;font-size:14px;letter-spacing:.02em}.nav__links a{color:var(--ink-soft);position:relative;padding:6px 0;transition:color .2s}.nav__links a:hover{color:var(--olive-deep)}.nav__links a:after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--olive);transition:width .3s ease}.nav__links a:hover:after{width:100%}.nav__cta{background:var(--ink);color:var(--bg);padding:10px 20px;border-radius:999px;font-size:14px;letter-spacing:.02em;transition:background .2s,transform .2s}.nav__cta:hover{background:var(--olive-deep);transform:translateY(-1px)}@media(max-width:720px){.nav__links{display:none}}.hero{min-height:100vh;padding:clamp(120px,18vh,180px) var(--pad) clamp(60px,8vh,100px);position:relative;overflow:hidden;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:var(--gutter);max-width:var(--max);margin:0 auto}@media(max-width:900px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:140px}}.hero__title,.hero__lede{margin-top:28px}.hero__meta{margin-top:48px;display:flex;flex-wrap:wrap;gap:32px 40px;padding-top:28px;border-top:1px solid var(--line)}.hero__meta-item .label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);display:block;margin-bottom:4px}.hero__meta-item .value{font-family:var(--serif);font-size:22px;color:var(--ink)}.hero__visual{position:relative;aspect-ratio:1 / 1.05;display:flex;align-items:center;justify-content:center}.hero__logo{width:100%;height:100%;object-fit:contain;position:relative;z-index:2;filter:drop-shadow(0 8px 24px rgba(138,131,54,.12))}.hero__circle{position:absolute;top:8%;right:8%;bottom:8%;left:8%;border-radius:50%;border:1px solid var(--olive-soft);z-index:1;display:none}.hero__circle--2{top:18%;right:18%;bottom:18%;left:18%;border-style:dashed;border-color:#8a833640;animation:spin 80s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hero__scroll-cue{position:absolute;bottom:32px;left:50%;transform:translate(-50%);font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);display:flex;align-items:center;flex-direction:column;gap:10px}.hero__scroll-cue:after{content:"";width:1px;height:48px;background:linear-gradient(to bottom,var(--olive) 0%,transparent 100%);animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,to{transform:scaleY(.4);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}}#dorka{overflow:hidden;z-index:0}.about__bg-shape{position:absolute;z-index:-1;top:0;left:-20vw;width:60vw;height:58%;border-radius:38% 62% 58% 42%/48% 42% 58% 52%;background:linear-gradient(155deg,var(--olive-soft) 0%,var(--olive) 100%);transform:rotate(-4deg)}@media(max-width:900px){.about__bg-shape{width:90vw;left:-30vw;height:44%}}.about{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);align-items:center}@media(max-width:900px){.about{grid-template-columns:1fr}}.about__portrait{position:relative;perspective:1300px;display:flex;justify-content:center}.about__portrait-img{position:relative;z-index:1;width:100%;max-width:440px;height:auto;object-fit:contain;filter:drop-shadow(0 30px 40px rgba(42,36,26,.35)) drop-shadow(0 10px 16px rgba(42,36,26,.22));transform:rotateY(-7deg) rotateX(3deg);transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .6s ease;will-change:transform}.about__portrait:hover .about__portrait-img{transform:rotateY(0) rotateX(0) translateY(-4px);filter:drop-shadow(0 40px 54px rgba(42,36,26,.4)) drop-shadow(0 14px 20px rgba(42,36,26,.26))}@media(prefers-reduced-motion:reduce){.about__portrait-img{transition:none}}@media(max-width:900px){.about__portrait{max-width:340px;margin:0 auto}}.about__copy{max-width:56ch}.about__copy .h2{margin-top:18px}.about__role{margin-top:10px;font-size:14px;letter-spacing:.04em;color:var(--ink-soft)}.about__copy .lede{margin-top:24px;max-width:none}.about__copy .body-text{margin-top:24px}.signature{margin-top:36px;font-family:var(--serif);font-style:italic;font-size:28px;color:var(--olive-deep);display:inline-block;position:relative}.signature:after{content:"";position:absolute;left:0;bottom:-8px;width:60%;height:1px;background:var(--olive-soft)}.credentials{margin-top:48px;display:grid;grid-template-columns:repeat(2,1fr);gap:18px 32px;padding-top:32px;border-top:1px solid var(--line)}.credentials__item .year{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--olive);display:block;margin-bottom:4px}.credentials__item .title{font-size:15px;color:var(--ink);line-height:1.4}.placeholder{background:repeating-linear-gradient(135deg,rgba(138,131,54,.08) 0 1px,transparent 1px 14px),var(--bg-deep);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;position:relative;color:var(--ink-mute);font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.placeholder:before,.placeholder:after{content:"";position:absolute;width:16px;height:16px;border:1px solid var(--olive)}.placeholder:before{top:12px;left:12px;border-right:0;border-bottom:0}.placeholder:after{bottom:12px;right:12px;border-left:0;border-top:0}.placeholder span{background:var(--bg-soft);padding:8px 14px;border:1px solid var(--line)}#szolgaltatasok{padding-top:clamp(40px,4vw,64px)}.service{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:center}.service+.service{margin-top:clamp(80px,10vw,140px)}.service--reverse .service__visual{order:2}@media(max-width:900px){.service,.service--reverse{grid-template-columns:1fr}.service--reverse .service__visual{order:0}}.service__visual{aspect-ratio:5 / 4;position:relative}.service__copy .h2{margin-top:18px}.service__copy .body-text{margin-top:24px}.benefits{margin-top:36px;display:grid;gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.benefits__item{background:var(--bg);padding:16px 0;display:grid;grid-template-columns:32px 1fr;gap:16px;align-items:baseline}.section--soft .benefits__item{background:var(--bg-soft)}.benefits__item .num{font-family:var(--mono);font-size:12px;color:var(--olive);letter-spacing:.1em}.benefits__item .text{font-size:16px;color:var(--ink);line-height:1.5}.section-header{display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter);align-items:end;margin-bottom:clamp(60px,8vw,100px)}@media(max-width:720px){.section-header{grid-template-columns:1fr}}.section-header__title{margin-top:18px}.section-header__sub{color:var(--ink-soft);max-width:42ch;justify-self:end}.kezeles-nav{padding:20px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);flex-wrap:wrap}.kezeles-nav__brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-style:italic;font-size:20px;color:var(--ink)}.kezeles-nav__brand img{width:36px;height:36px;object-fit:contain}.kezeles-back{font-size:14px;color:var(--ink-soft);transition:color .2s}.kezeles-back:hover{color:var(--olive-deep)}.kezeles-hero{padding-top:clamp(48px,8vw,96px)}.kezeles-hero .h2{margin-top:14px;max-width:26ch}.kezeles-hero .lede{margin-top:20px;max-width:56ch}.kezeles-block{max-width:640px}.kezeles-block .h2{margin-top:14px}.kezeles-block .lede{margin-top:12px}.kezeles-block .body-text{margin-top:22px}.kezeles-block .benefits{margin-top:28px}.kezeles-subhead{margin-top:36px;font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--ink)}.kezeles-subhead+.body-text,.kezeles-subhead+.benefits{margin-top:14px}.kezeles-cta{display:inline-block;margin-top:32px}.service__more{display:inline-block;margin-top:20px;font-size:14px;color:var(--olive-deep);border-bottom:1px solid var(--olive-soft);transition:color .2s,border-color .2s}.service__more:hover{color:var(--ink);border-color:var(--ink)}@media(max-width:720px){.section-header__sub{justify-self:start}}.booking{background:var(--ink);color:var(--bg);border-radius:4px;padding:clamp(28px,4vw,56px);display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(32px,4vw,64px);min-height:640px}@media(max-width:900px){.booking{grid-template-columns:1fr;min-height:0}}.booking__side{border-right:1px solid rgba(245,239,227,.12);padding-right:clamp(20px,3vw,40px);display:flex;flex-direction:column}@media(max-width:900px){.booking__side{border-right:0;padding-right:0;padding-bottom:24px;border-bottom:1px solid rgba(245,239,227,.12)}}.booking__side .eyebrow{color:var(--olive-soft)}.booking__side .eyebrow:before{background:var(--olive-soft)}.booking__title{font-family:var(--serif);font-size:clamp(32px,4vw,48px);line-height:1.05;margin-top:16px;color:var(--bg)}.booking__title em{font-style:italic;color:var(--olive-soft)}.booking__lede{margin-top:20px;color:#f5efe3b3;font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.45}.steps{margin-top:auto;padding-top:40px;display:flex;flex-direction:column;gap:14px}.step{display:flex;align-items:baseline;gap:14px;font-size:14px;color:#f5efe380;transition:color .3s;cursor:pointer}.step.is-active{color:var(--bg)}.step.is-done{color:#f5efe3d9}.step__num{font-family:var(--mono);font-size:11px;letter-spacing:.15em;width:32px;flex-shrink:0;color:var(--olive-soft)}.step.is-done .step__num:after{content:" ✓";color:var(--olive-soft)}.booking__main{position:relative;display:flex;flex-direction:column}.step-panel{display:none;flex:1;flex-direction:column}.step-panel.is-active{display:flex;animation:stepIn .5s cubic-bezier(.2,.8,.2,1)}@keyframes stepIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.step-panel h3{font-family:var(--serif);font-size:28px;font-weight:400;margin-bottom:6px}.step-panel .sub{color:#f5efe399;font-size:14px;margin-bottom:28px}.service-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:720px){.service-card-grid{grid-template-columns:1fr}}.service-card{border:1px solid rgba(245,239,227,.14);padding:18px 20px;display:grid;gap:4px;align-content:start;cursor:pointer;transition:background .2s,border-color .2s,transform .2s;text-align:left;width:100%}.service-card:hover{border-color:var(--olive-soft);background:#b8b07a0f}.service-card.is-selected{border-color:var(--olive-soft);background:#b8b07a1a}.service-card__title{font-family:var(--serif);font-size:19px;line-height:1.25}.service-card__price{font-family:var(--mono);font-size:12px;color:var(--olive-soft);letter-spacing:.04em}.service-card__desc{margin-top:6px;font-size:13px;color:#f5efe399;line-height:1.5}.cancel-note{margin-top:20px;font-size:12px;line-height:1.5;color:#f5efe373}.duration-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px}.duration-pill{border:1px solid rgba(245,239,227,.16);padding:18px 20px;text-align:left;cursor:pointer;transition:all .2s}.duration-pill:hover{border-color:var(--olive-soft)}.duration-pill.is-selected{background:var(--olive-soft);color:var(--ink);border-color:var(--olive-soft)}.duration-pill .min{font-family:var(--serif);font-size:32px;display:block}.duration-pill .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;margin-top:2px;opacity:.7}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal__head{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#f5efe366;text-align:center;padding-bottom:8px}.cal__day{aspect-ratio:1;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:all .15s;position:relative;border-radius:2px}.cal__day:hover:not(.is-disabled):not(.is-empty){border-color:var(--olive-soft);background:#b8b07a14}.cal__day.is-selected{background:var(--bg);color:var(--ink)}.cal__day.is-disabled{color:#f5efe32e;cursor:not-allowed}.cal__day.is-empty{cursor:default}.cal__day.is-today:after{content:"";position:absolute;bottom:6px;width:4px;height:4px;border-radius:50%;background:var(--olive-soft)}.cal__day.is-selected.is-today:after{background:var(--olive-deep)}.cal__day .dow{font-family:var(--mono);font-size:9px;opacity:.5;letter-spacing:.08em}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cal-nav__month{font-family:var(--serif);font-size:20px}.cal-nav button{width:32px;height:32px;border:1px solid rgba(245,239,227,.18);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--bg);transition:all .2s}.cal-nav button:hover:not(:disabled){background:var(--olive-soft);color:var(--ink);border-color:var(--olive-soft)}.cal-nav button:disabled{opacity:.3;cursor:not-allowed}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.slot{border:1px solid rgba(245,239,227,.18);padding:12px 8px;font-family:var(--mono);font-size:14px;letter-spacing:.04em;cursor:pointer;transition:all .15s;border-radius:2px}.slot:hover:not(:disabled){border-color:var(--olive-soft);background:#b8b07a14}.slot.is-selected{background:var(--bg);color:var(--ink);border-color:var(--bg)}.slot:disabled{color:#f5efe333;cursor:not-allowed;text-decoration:line-through}.field{margin-bottom:18px}.field label{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#f5efe399;display:block;margin-bottom:6px}.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(245,239,227,.22);padding:10px 0;color:var(--bg);font-size:16px;transition:border-color .2s;font-family:var(--sans)}.field input:focus,.field textarea:focus{outline:0;border-bottom-color:var(--olive-soft)}.field textarea{resize:vertical;min-height:60px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:540px){.field-row{grid-template-columns:1fr}}.consent-check{margin-top:24px;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;cursor:pointer;font-size:13px;line-height:1.5;color:#f5efe3bf}.consent-check input{margin-top:3px;width:16px;height:16px;accent-color:var(--olive-soft);cursor:pointer}.consent-check a{color:var(--olive-soft);text-decoration:underline;text-decoration-color:#b8b07a66}.consent-check a:hover{color:var(--bg)}.admin .consent-check{color:var(--ink-soft)}.admin .consent-check a{color:var(--olive-deep)}.booking__actions{margin-top:auto;padding-top:28px;display:flex;justify-content:space-between;align-items:center;gap:16px}.btn-back{font-size:14px;color:#f5efe38c;transition:color .2s}.btn-back:hover{color:var(--bg)}.btn-primary{background:var(--olive-soft);color:var(--ink);padding:14px 28px;border-radius:999px;font-size:14px;letter-spacing:.04em;transition:all .2s;font-weight:500}.btn-primary:hover:not(:disabled){background:var(--bg);transform:translateY(-1px)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.summary{margin-top:28px;padding:20px;background:#f5efe30d;border:1px solid rgba(245,239,227,.12);border-radius:2px}.summary__row{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;font-size:14px}.summary__row .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#f5efe380}.summary__row .val{color:var(--bg)}.confirm{text-align:center;padding:40px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.confirm__mark{width:64px;height:64px;border:1px solid var(--olive-soft);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--olive-soft);margin-bottom:28px;font-family:var(--serif);font-size:32px;animation:pop .6s cubic-bezier(.2,1.4,.4,1)}@keyframes pop{0%{transform:scale(.6);opacity:0}}.confirm h3{font-size:36px}.confirm .sub{margin-bottom:24px;max-width:36ch;margin-left:auto;margin-right:auto}.footer{padding:80px var(--pad) 40px;max-width:var(--max);margin:0 auto;border-top:1px solid var(--line)}.footer__top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--gutter);margin-bottom:60px}@media(max-width:720px){.footer__top{grid-template-columns:1fr 1fr}}.footer__brand{font-family:var(--serif);font-size:28px;font-style:italic;margin-bottom:12px}.footer__brand-sub{color:var(--ink-mute);font-size:14px;max-width:32ch}.footer__col h4{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--olive);margin-bottom:16px;font-weight:500}.footer__col a,.footer__col p{display:block;font-size:14px;color:var(--ink-soft);padding:4px 0;transition:color .2s}.footer__col a:hover{color:var(--olive-deep)}.footer__bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-mute);text-transform:uppercase}[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}[data-reveal].is-in{opacity:1;transform:translateY(0)}[data-reveal-delay="1"]{transition-delay:.08s}[data-reveal-delay="2"]{transition-delay:.16s}[data-reveal-delay="3"]{transition-delay:.24s}[data-reveal-delay="4"]{transition-delay:.32s}[data-reveal-delay="5"]{transition-delay:.4s}[data-reveal-delay="6"]{transition-delay:.48s}[data-reveal=rise-strong]{transform:translateY(48px)}[data-reveal=fade]{transform:none}[data-reveal=slide-left]{transform:translate(40px)}[data-reveal=slide-right]{transform:translate(-40px)}[data-reveal=scale]{transform:scale(.96)}[data-reveal=scale].is-in{transform:scale(1)}@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}.hero__circle--2{animation:none}.hero__scroll-cue:after{animation:none}}.word-reveal{display:inline-block;overflow:hidden;vertical-align:bottom}.word-reveal>span{display:inline-block;transform:translateY(110%);animation:wordRise 1s cubic-bezier(.2,.8,.2,1) forwards}.word-reveal.delay-1>span{animation-delay:.1s}.word-reveal.delay-2>span{animation-delay:.22s}.word-reveal.delay-3>span{animation-delay:.34s}.word-reveal.delay-4>span{animation-delay:.46s}.word-reveal.delay-5>span{animation-delay:.58s}@keyframes wordRise{to{transform:translateY(0)}}.fade-up-delay{opacity:0;transform:translateY(16px);animation:fadeUp 1s .8s cubic-bezier(.2,.8,.2,1) forwards}@keyframes fadeUp{to{opacity:1;transform:none}}.booking__notice{margin-top:16px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--olive-soft);display:inline-flex;align-items:center;gap:8px}.booking__notice:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--olive-soft)}.booking__notice.is-demo:before{background:#c9a227}.slots-state{font-family:var(--mono);font-size:13px;letter-spacing:.04em;color:#f5efe38c;padding:24px 0}.form-error{margin-top:16px;padding:12px 16px;border:1px solid rgba(220,120,100,.5);border-radius:2px;background:#dc786414;color:#f0c4ba;font-size:13px;line-height:1.5}.btn-primary.is-loading{opacity:.7;cursor:wait}@keyframes spinDot{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(42,36,26,.3);border-top-color:var(--ink);border-radius:50%;animation:spinDot .7s linear infinite;vertical-align:-2px;margin-right:8px}.admin{--a-line: var(--line);--a-line-2: var(--line-strong);min-height:100vh;background:var(--bg);color:var(--ink);padding:clamp(28px,5vw,64px) var(--pad)}.admin__bar{max-width:1500px;margin:0 auto 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--a-line)}.admin__brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-style:italic;font-size:22px;color:var(--ink)}.admin__brand img{width:40px;height:40px;object-fit:contain}.admin__logout{font-size:13px;color:var(--ink-soft);border:1px solid var(--a-line-2);border-radius:999px;padding:8px 18px;transition:all .2s}.admin__logout:hover{color:var(--ink);border-color:var(--olive);background:var(--bg-soft)}.admin__login{max-width:360px;margin:12vh auto 0}.admin__login h1{font-family:var(--serif);font-weight:400;font-size:40px;margin-bottom:8px}.admin__login p{color:var(--ink-soft);font-size:14px;margin-bottom:32px}.admin__login .btn-primary{width:100%;margin-top:12px;justify-content:center;display:flex}.admin__content{max-width:1500px;margin:0 auto}.admin .field label{color:var(--ink-mute)}.admin .field input,.admin .field textarea,.admin .field select{color:var(--ink);border-bottom-color:var(--a-line-2)}.admin .field input::placeholder,.admin .field textarea::placeholder{color:var(--ink-mute);opacity:.75}.admin .field input:focus,.admin .field textarea:focus,.admin .field select:focus{border-bottom-color:var(--olive)}.admin .slots-state{color:var(--ink-mute)}.admin .btn-primary{background:var(--olive-deep);color:var(--bg)}.admin .btn-primary:hover:not(:disabled){background:var(--olive)}.admin__empty{padding:60px 0;text-align:center;color:var(--ink-mute);font-family:var(--mono);font-size:13px;letter-spacing:.08em}.admin__demo-banner{margin-bottom:20px;padding:10px 16px;border:1px dashed var(--olive);border-radius:4px;background:#8a833614;color:var(--olive-deep);font-size:12px;line-height:1.5}.admin__tabs{display:flex;gap:6px;margin:0 auto}.admin__tab{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:8px 18px;border-radius:999px;color:var(--ink-soft);transition:all .18s}.admin__tab:hover{color:var(--ink);background:var(--bg-soft)}.admin__tab.is-active{background:var(--olive-deep);color:var(--bg)}@media(max-width:640px){.admin__bar{flex-wrap:wrap}.admin__tabs{order:3;width:100%;margin:8px 0 0;justify-content:center}}.cal-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.cal-nav{display:flex;align-items:center;gap:6px}.cal-nav button{width:32px;height:32px;border:1px solid var(--a-line-2);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);transition:all .18s}.cal-nav button:hover{background:var(--olive-deep);color:var(--bg);border-color:var(--olive-deep)}.cal-range{font-family:var(--serif);font-size:19px;min-width:190px}.cal-today-btn{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:7px 14px;border:1px solid var(--a-line-2);border-radius:999px;color:var(--ink-soft);transition:all .18s}.cal-today-btn:hover{border-color:var(--olive);color:var(--ink);background:var(--bg-soft)}.cal-chips{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.cal-chip{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--a-line);border-radius:999px;padding:6px 12px}.cal-chip b{color:var(--ink);font-weight:600}.cal-chip.is-flag{color:#9a6b1a;border-color:#9a6b1a66}.cal-chip.is-flag b{color:#9a6b1a}.cal-search{background:var(--bg-soft);border:1px solid var(--a-line-2);border-radius:999px;padding:8px 16px;color:var(--ink);font-size:13px;min-width:180px}.cal-search::placeholder{color:var(--ink-mute)}.cal-search:focus{outline:0;border-color:var(--olive)}.cal-scroll{overflow-x:auto;border:1px solid var(--a-line);border-radius:6px;background:var(--bg-soft)}.cal-grid{display:grid;grid-template-columns:52px repeat(6,minmax(116px,1fr));min-width:760px}.cal-corner{border-bottom:1px solid var(--a-line)}.cal-colhead{padding:10px 6px;text-align:center;border-left:1px solid var(--a-line);border-bottom:1px solid var(--a-line)}.cal-colhead__dow{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.cal-colhead__num{font-family:var(--serif);font-size:21px;margin-top:2px;color:var(--ink)}.cal-colhead.is-today .cal-colhead__num{color:var(--bg);background:var(--olive-deep);border-radius:999px;width:30px;height:30px;line-height:30px;display:inline-block}.cal-colhead.is-today .cal-colhead__dow{color:var(--olive-deep)}.cal-gutter{position:relative}.cal-gutter__h{position:absolute;right:8px;transform:translateY(-50%);font-family:var(--mono);font-size:10px;color:var(--ink-mute)}.cal-col{position:relative;border-left:1px solid var(--a-line);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour) - 1px),rgba(42,36,26,.07) calc(var(--hour) - 1px),rgba(42,36,26,.07) var(--hour))}.cal-col.is-today{background-color:#8a83360f}.cal-event{position:absolute;left:3px;right:3px;border-radius:4px;padding:3px 6px;overflow:hidden;cursor:pointer;background:#8a833629;border-left:3px solid var(--olive);transition:background .15s;min-height:22px}.cal-event:hover{background:#8a833647}.cal-event__row{display:flex;align-items:baseline;gap:6px}.cal-event__t{font-family:var(--mono);font-size:10px;color:var(--olive-deep);letter-spacing:.02em;flex-shrink:0}.cal-event__n{font-size:12px;color:var(--ink);font-weight:500;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event__o{font-size:10px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event.s-confirmed{border-left-color:#4f9a48;background:#4f9a4829}.cal-event.s-confirmed:hover{background:#4f9a4842}.cal-event.s-cancelled{border-left-color:#c0573f;opacity:.5}.cal-event.s-cancelled .cal-event__n{text-decoration:line-through}.cal-event.is-dim{opacity:.2}.cal-event__mail{position:absolute;top:4px;right:5px;width:6px;height:6px;border-radius:50%;background:#c0573f}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a241a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--bg-soft);border:1px solid var(--a-line);box-shadow:0 24px 60px #2a241a38;border-radius:8px;padding:28px;width:min(440px,94vw);max-height:90vh;overflow-y:auto;color:var(--ink)}.modal__close{float:right;color:var(--ink-mute);font-size:22px;line-height:1}.modal__close:hover{color:var(--ink)}.modal h3{font-family:var(--serif);font-weight:400;font-size:26px;margin-bottom:4px}.modal__when{font-family:var(--mono);font-size:12px;color:var(--olive-deep);letter-spacing:.06em;margin-bottom:20px}.modal__row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--a-line);font-size:14px}.modal__row .k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);flex-shrink:0}.modal__row .v{text-align:right}.modal__row .v a{color:var(--olive-deep)}.modal__badges{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}.modal__actions{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}.modal__actions .card-btn{flex:1;text-align:center}.pat{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start}@media(max-width:820px){.pat{grid-template-columns:1fr}}.pat__list{border:1px solid var(--a-line);border-radius:6px;padding:14px;position:sticky;top:20px;background:var(--bg-soft)}@media(max-width:820px){.pat__list{position:static}}.pat__list-top{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.pat__list-top .card-btn{text-align:center}.pat__row{display:block;width:100%;text-align:left;padding:11px 12px;border-radius:4px;border:1px solid transparent;transition:all .15s;color:var(--ink)}.pat__row+.pat__row{margin-top:4px}.pat__row:hover{background:#2a241a0d}.pat__row.is-active{background:#8a833624;border-color:var(--olive)}.pat__row-name{display:block;font-family:var(--serif);font-size:18px}.pat__row-sub{display:block;font-size:12px;color:var(--ink-mute);margin-top:2px}.pat__main{min-height:400px;padding-top:2px}.pat__empty{display:flex;align-items:center;justify-content:center;min-height:320px;color:var(--ink-mute);font-size:14px}.pat__body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:32px;align-items:start}@media(max-width:1040px){.pat__body{grid-template-columns:1fr}.pat__side,.pat__log-col{grid-column:auto;grid-row:auto}.pat__side{position:static}}.pat__log-col{grid-column:1;grid-row:1}.pat__log-col .log{margin-top:0}.pat__log-col .log__head h3{font-size:28px}.pat__side{grid-column:2;grid-row:1;position:sticky;top:20px;border:1px solid var(--a-line);border-radius:6px;background:var(--bg);overflow:hidden}.pat__side>*{padding:16px 18px}.pat__side>*+*{border-top:1px solid var(--a-line)}.pat__side .pat__field+.pat__field{margin-top:12px}.pat__side .wchart{margin:0;border:0;background:none;border-radius:0}.pat__side-lbl{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--olive-deep);margin-bottom:8px}.pat__side-diag p{font-size:14px;line-height:1.6;color:var(--ink-soft)}.pat-form{max-width:760px}.pat__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.pat__name{font-family:var(--serif);font-weight:400;font-size:clamp(28px,4vw,38px)}.pat__meta{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--olive-deep);margin-top:6px}.pat__header-actions{display:flex;gap:8px}.pat__data{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 24px;padding:18px 0;border-top:1px solid var(--a-line);border-bottom:1px solid var(--a-line)}@media(max-width:540px){.pat__data{grid-template-columns:1fr}}.pat__field-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);display:block;margin-bottom:3px}.pat__field-val{font-size:15px}.pat__field-val a{color:var(--olive-deep)}.pat__diag{margin-top:18px;padding:16px 18px;background:var(--bg);border:1px solid var(--a-line);border-radius:4px;font-size:14px;line-height:1.6;color:var(--ink-soft)}.pat__diag-lbl{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--olive-deep);margin-bottom:8px}.pat-form__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 20px}@media(max-width:540px){.pat-form__grid{grid-template-columns:1fr}}.field select{width:100%;background:var(--bg-soft);border:0;border-bottom:1px solid var(--a-line-2);padding:10px 0;color:var(--ink);font-size:16px}.field select:focus{outline:0;border-bottom-color:var(--olive)}.field select option{background:var(--bg-soft);color:var(--ink)}.pat-form__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.pat-form__actions .btn-primary{display:inline-flex;align-items:center}.wchart{margin-top:18px;padding:16px 20px 12px;border:1px solid var(--a-line);border-radius:6px;background:var(--bg)}.wchart__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px}.wchart__title{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--olive-deep)}.wchart__now{font-family:var(--serif);font-size:22px;color:var(--ink);display:inline-flex;align-items:baseline;gap:10px}.wchart__delta{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-soft)}.wchart__hint{font-size:13px;color:var(--ink-mute);margin-top:6px}.wchart__svg{width:100%;height:auto;display:block}.wchart__grid{stroke:var(--a-line);stroke-width:1}.wchart__area{fill:url(#wgrad)}.wchart__line{fill:none;stroke:var(--olive-deep);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.wchart__dot{fill:var(--bg);stroke:var(--olive-deep);stroke-width:2}.wchart__dot--last{fill:var(--olive-deep)}.wchart__ylbl,.wchart__xlbl{font-family:var(--mono);font-size:11px;fill:var(--ink-mute)}.log{margin-top:32px}.log__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.log__head h3{font-family:var(--serif);font-weight:400;font-size:24px}.log-form{border:1px solid rgba(138,131,54,.35);border-radius:6px;padding:20px;margin-bottom:20px;background:#8a83360f}.log-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);margin:6px 0 4px;cursor:pointer}.log-check input{width:16px;height:16px;accent-color:var(--olive)}.log-check__warn{color:#c0573f}.log-entry{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:16px 0;border-top:1px solid var(--a-line)}@media(max-width:540px){.log-entry{grid-template-columns:1fr;gap:6px}}.log-entry__date{font-family:var(--serif);font-size:15px;color:var(--ink)}.log-entry__w{display:inline-block;margin-left:8px;font-family:var(--mono);font-size:11px;color:var(--olive-deep)}.log-entry__title{font-family:var(--serif);font-size:18px;margin-bottom:4px}.log-entry__text{font-size:14px;line-height:1.6;color:var(--ink-soft);white-space:pre-wrap}.log-entry__prog{font-size:13px;line-height:1.55;color:var(--olive-deep);margin-top:6px;font-style:italic}.log-entry__foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.admin__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px}@media(max-width:720px){.admin__stats{grid-template-columns:1fr 1fr}}.stat{border:1px solid var(--a-line);border-radius:4px;padding:18px 20px;background:var(--bg-soft)}.stat__num{font-family:var(--serif);font-size:38px;line-height:1}.stat__num.is-flag{color:#9a6b1a}.stat__lbl{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-top:8px;display:block}.admin__tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.admin__search{flex:1;min-width:200px;background:var(--bg-soft);border:1px solid var(--a-line-2);border-radius:999px;padding:10px 18px;color:var(--ink);font-size:14px}.admin__search:focus{outline:0;border-color:var(--olive)}.admin__day{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--olive-deep);margin:28px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--a-line)}.admin__day:first-of-type{margin-top:0}.admin__filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.admin__filter{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:8px 16px;border:1px solid var(--a-line-2);border-radius:999px;color:var(--ink-soft);transition:all .2s}.admin__filter.is-active{background:var(--olive-deep);color:var(--bg);border-color:var(--olive-deep)}.badge{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid currentColor;white-space:nowrap}.badge--pending{color:#9a6b1a}.badge--confirmed{color:#3f7d39}.badge--cancelled{color:#c0573f}.badge--email-sent{color:#3f7d39}.badge--email-partial{color:#9a6b1a}.badge--email-failed{color:#c0573f}.badge--email-pending,.badge--email-skipped{color:var(--ink-mute)}.card-btn{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:7px 14px;border:1px solid var(--a-line-2);border-radius:999px;color:var(--ink-soft);transition:all .18s;white-space:nowrap;background:transparent}.card-btn:hover:not(:disabled){border-color:var(--olive);color:var(--ink);background:var(--bg)}.card-btn:disabled{opacity:.4;cursor:not-allowed}.card-btn--confirm:hover:not(:disabled){background:#4f9a481f;border-color:#4f9a48;color:#2f6a2a}.card-btn--cancel:hover:not(:disabled){background:#c0573f1a;border-color:#c0573f;color:#a8472f}.card-err{font-size:11px;color:#c0573f;margin-top:4px}.booking-card{border:1px solid var(--a-line);border-radius:4px;padding:20px 24px;display:grid;grid-template-columns:160px 1fr auto;gap:8px 24px;align-items:start;background:var(--bg-soft)}.booking-card+.booking-card{margin-top:12px}@media(max-width:720px){.booking-card{grid-template-columns:1fr}}.booking-card.is-cancelled{opacity:.5}.booking-card__when{font-family:var(--serif);font-size:18px}.booking-card__when .time{font-family:var(--mono);font-size:13px;color:var(--olive-deep);display:block;margin-top:4px}.booking-card__who{font-size:15px;line-height:1.6}.booking-card__who a{color:var(--olive-deep)}.booking-card__who .notes{margin-top:8px;font-size:13px;color:var(--ink-soft);font-style:italic}.booking-card__badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.booking-card__tag{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--olive-deep);border:1px solid rgba(138,131,54,.4);border-radius:999px;padding:4px 12px;white-space:nowrap;height:fit-content}.booking-card__actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}
