:root{--color-primary: #1a365d;--color-primary-deep: #0f2440;--color-primary-light: #2c4a7c;--color-accent: #d69e2e;--color-accent-light: #ecc94b;--color-accent-muted: #b7862a;--color-background: #faf8f5;--color-background-warm: #f5f0e8;--color-surface: #ffffff;--color-text: #1a365d;--color-text-muted: #6b7280;--color-white: #ffffff;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-error: #dc2626;--color-error-light: #fef2f2;--color-success: #059669;--color-success-light: #ecfdf5;--font-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--shadow-sm: 0 1px 2px rgba(26, 54, 93, .05);--shadow-md: 0 4px 6px -1px rgba(26, 54, 93, .07), 0 2px 4px -1px rgba(26, 54, 93, .04);--shadow-lg: 0 10px 15px -3px rgba(26, 54, 93, .08), 0 4px 6px -2px rgba(26, 54, 93, .04);--shadow-xl: 0 20px 25px -5px rgba(26, 54, 93, .1), 0 10px 10px -5px rgba(26, 54, 93, .04);--shadow-gold: 0 4px 14px rgba(214, 158, 46, .25);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--ease-out: cubic-bezier(.33, 1, .68, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);font-weight:400;line-height:1.6;color:var(--color-text);background:var(--color-background);min-height:100vh}body.dark-mode{color-scheme:dark}body.dark-mode:before{opacity:.15}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:.3;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");z-index:0}#root{position:relative;z-index:1}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:500;line-height:1.2;letter-spacing:-.01em;color:var(--color-text)}a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px;transition:color var(--duration-fast)}a:hover{color:var(--color-accent)}.booking-app{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}@media (min-width: 768px){.booking-app{padding:var(--space-8)}}.booking-card{width:100%;max-width:720px;background:var(--color-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;position:relative}.booking-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-accent) 0%,var(--color-accent-light) 50%,var(--color-accent) 100%)}.booking-card__inner{padding:var(--space-8) var(--space-6)}@media (min-width: 768px){.booking-card__inner{padding:var(--space-10) var(--space-10)}}.booking-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-gray-100)}.booking-header__logo{flex-shrink:0}.booking-header__logo svg{width:48px;height:48px;display:block}.booking-header__text{flex:1}.booking-header__title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:500;color:var(--color-text);margin-bottom:var(--space-1)}.booking-header__subtitle{font-size:var(--text-sm);color:var(--color-gray-500);letter-spacing:.03em}.step-indicator{display:flex;justify-content:center;align-items:center;margin-bottom:var(--space-10);gap:0}.step-indicator__step{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);opacity:.4;transition:opacity var(--duration-normal) var(--ease-out)}.step-indicator__step--active,.step-indicator__step--completed{opacity:1}.step-indicator__number{width:32px;height:32px;border-radius:50%;border:2px solid var(--color-gray-300);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;color:var(--color-gray-400);background:var(--color-white);transition:all var(--duration-normal) var(--ease-out)}.step-indicator__step--active .step-indicator__number{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-white)}.step-indicator__step--completed .step-indicator__number{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-white)}.step-indicator__label{font-size:var(--text-xs);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em;display:none}@media (min-width: 640px){.step-indicator__label{display:block}}.step-indicator__connector{width:40px;height:2px;background:var(--color-gray-200);margin:0 var(--space-2);margin-bottom:var(--space-6);border-radius:1px}@media (min-width: 640px){.step-indicator__connector{width:60px;margin:0 var(--space-3);margin-bottom:var(--space-6)}}.section-header{text-align:center;margin-bottom:var(--space-8)}.section-header__eyebrow{display:block;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--color-accent);margin-bottom:var(--space-2);font-weight:500}.section-header__title{font-family:var(--font-serif);font-size:clamp(var(--text-2xl),4vw,var(--text-3xl));font-weight:400;color:var(--color-text);margin-bottom:var(--space-3)}.section-header__description{font-size:var(--text-base);color:var(--color-gray-500);max-width:420px;margin:0 auto}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-gray-500);text-decoration:none;margin-bottom:var(--space-4);padding:var(--space-2) 0;border:none;background:none;cursor:pointer;transition:color var(--duration-fast)}.back-link:hover{color:var(--color-primary)}.back-link svg{width:16px;height:16px}.booking-section{animation:fadeSlideUp var(--duration-slow) var(--ease-out)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.calendar{max-width:380px;margin:0 auto;position:relative}.calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.calendar__month{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:500;color:var(--color-text)}.calendar__nav{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.calendar__nav:hover:not(:disabled){background:var(--color-background-warm);border-color:var(--color-gray-300)}.calendar__nav:disabled{opacity:.3;cursor:not-allowed}.calendar__nav svg{width:20px;height:20px}.calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1);margin-bottom:var(--space-2)}.calendar__weekday{text-align:center;font-size:var(--text-xs);font-weight:500;color:var(--color-gray-400);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-2) 0}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1)}.calendar__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:400;color:var(--color-gray-300);background:transparent;border:none;border-radius:var(--radius-md);cursor:default;transition:all var(--duration-fast) var(--ease-out);position:relative}.calendar__day--empty{cursor:default}.calendar__day--past{color:var(--color-gray-300)}.calendar__day--available{cursor:pointer;color:var(--color-text);font-weight:500;background:var(--color-background-warm)}.calendar__day--available:hover{background:var(--color-accent-light);color:var(--color-primary-deep);transform:scale(1.08)}.calendar__day--today{font-weight:600;color:var(--color-text)}.calendar__day--today:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:4px;height:4px;background:var(--color-accent);border-radius:50%}.calendar__day--selected{background:var(--color-primary)!important;color:var(--color-white)!important;font-weight:500;transform:scale(1.08)}.calendar__day--selected:after{display:none}.calendar__day:disabled{cursor:not-allowed}.calendar__loading{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffd9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);border-radius:var(--radius-md)}.calendar__loading span{font-size:var(--text-sm);color:var(--color-gray-500)}.calendar__legend{display:flex;justify-content:center;gap:var(--space-6);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-gray-100)}.calendar__legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-gray-500)}.calendar__legend-dot{width:8px;height:8px;border-radius:50%}.calendar__legend-dot--available{background:var(--color-background-warm);border:1px solid var(--color-gray-300)}.calendar__legend-dot--unavailable{background:var(--color-gray-100);border:1px solid var(--color-gray-200)}.time-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);max-width:400px;margin:0 auto}@media (min-width: 480px){.time-slots{grid-template-columns:repeat(4,1fr)}}.time-slot{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-4) var(--space-2);text-align:center;background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);animation:fadeSlideUp var(--duration-normal) var(--ease-out) both}.time-slot:hover{border-color:var(--color-primary);background:var(--color-background-warm);transform:translateY(-2px)}.time-slot--selected{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white);transform:translateY(-2px);box-shadow:var(--shadow-md)}.time-slot--selected:hover{background:var(--color-primary-deep)}.time-slot__time{font-size:var(--text-sm);font-weight:500;color:inherit}.time-slot__period{font-size:var(--text-xs);color:var(--color-gray-400);text-transform:capitalize}.time-slot--selected .time-slot__period{color:#ffffffb3}.time-slots__empty{grid-column:1 / -1;text-align:center;padding:var(--space-8);color:var(--color-gray-500)}.time-slots__empty p{margin-bottom:var(--space-4)}.appointment-summary{display:flex;align-items:flex-start;gap:var(--space-4);background:var(--color-background-warm);border-radius:var(--radius-md);padding:var(--space-5);margin-bottom:var(--space-8);border-left:3px solid var(--color-accent)}.appointment-summary__icon{flex-shrink:0;color:var(--color-accent)}.appointment-summary__icon svg{width:24px;height:24px}.appointment-summary__details{display:flex;flex-direction:column;gap:var(--space-1)}.appointment-summary__details strong{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:500;color:var(--color-text)}.appointment-summary__details span{font-size:var(--text-sm);color:var(--color-gray-600)}.contact-form{max-width:400px;margin:0 auto}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text);margin-bottom:var(--space-2)}.form-label__required{color:var(--color-accent)}.form-label__optional{color:var(--color-gray-400);font-weight:400}.form-input,.form-textarea{width:100%;padding:var(--space-4);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 26, 54, 93),.1)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-gray-400)}.form-textarea{min-height:100px;resize:vertical}.form-hint{font-size:var(--text-xs);color:var(--color-gray-500);margin-top:var(--space-2);font-style:italic}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);font-family:var(--font-sans);font-size:var(--text-base);font-weight:500;text-decoration:none;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--duration-normal) var(--ease-out)}.btn--primary{background:var(--color-primary);color:var(--color-white)}.btn--primary:hover:not(:disabled){background:var(--color-primary-deep);transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn--secondary{background:transparent;color:var(--color-text);border:1px solid var(--color-gray-300)}.btn--secondary:hover:not(:disabled){background:var(--color-background-warm);border-color:var(--color-gray-400)}.btn--ghost{background:transparent;color:var(--color-gray-500);padding:var(--space-2) var(--space-4)}.btn--ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-background-warm)}.btn--accent{background:var(--color-accent);color:var(--color-primary-deep)}.btn--accent:hover:not(:disabled){background:var(--color-accent-light);transform:translateY(-1px);box-shadow:0 4px 14px rgba(var(--color-accent-rgb, 214, 158, 46),.25)}.btn--full{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner--small{width:18px;height:18px;border-width:2px;border-color:transparent;border-top-color:currentColor}@keyframes spin{to{transform:rotate(360deg)}}.confirmation{text-align:center;animation:fadeSlideUp var(--duration-slow) var(--ease-out)}.confirmation__icon{width:80px;height:80px;margin:0 auto var(--space-6);color:var(--color-success);animation:scaleIn .5s var(--ease-out) .2s both}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.confirmation__icon svg{width:100%;height:100%}.confirmation__title{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:400;color:var(--color-text);margin-bottom:var(--space-3)}.confirmation__message{font-size:var(--text-base);color:var(--color-gray-600);max-width:400px;margin:0 auto var(--space-8)}.confirmation__details{background:var(--color-background-warm);border-radius:var(--radius-lg);padding:var(--space-6);text-align:left;max-width:400px;margin:0 auto var(--space-8)}.confirmation__detail{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-3) 0;border-bottom:1px solid rgba(26,54,93,.08);gap:var(--space-4)}.confirmation__detail:last-child{border-bottom:none}.confirmation__label{font-size:var(--text-sm);color:var(--color-gray-500);flex-shrink:0}.confirmation__value{font-size:var(--text-sm);font-weight:500;color:var(--color-text);text-align:right}.confirmation__secure{background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-6);text-align:center}.confirmation__secure h3{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:500;color:var(--color-text);margin-bottom:var(--space-2)}.confirmation__secure p{font-size:var(--text-sm);color:var(--color-gray-600);margin-bottom:var(--space-4)}.confirmation__secure .btn{margin-bottom:var(--space-4)}.confirmation__warning{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-accent-muted);margin-top:var(--space-3)}.confirmation__warning svg{flex-shrink:0}.confirmation__actions{margin-bottom:var(--space-6)}.confirmation__footer{font-size:var(--text-sm);color:var(--color-gray-500)}.confirmation__footer a{color:var(--color-primary)}.error-message{background:var(--color-error-light);border:1px solid rgba(220,38,38,.2);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-6);color:var(--color-error);font-size:var(--text-sm);display:flex;align-items:flex-start;gap:var(--space-3)}.error-message svg{flex-shrink:0;width:20px;height:20px}.booking-footer{padding:var(--space-6) 0 0;text-align:center;border-top:1px solid var(--color-gray-100);margin-top:var(--space-8)}.booking-footer p{font-size:var(--text-xs);color:var(--color-gray-400);margin-bottom:var(--space-1)}.booking-footer__disclaimer{font-style:italic}@media (max-width: 640px){.booking-card__inner{padding:var(--space-6) var(--space-4)}.booking-header{flex-direction:column;text-align:center;gap:var(--space-3)}.calendar__weekday{font-size:10px;letter-spacing:.05em}.calendar__day{font-size:var(--text-xs)}.time-slots{grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.time-slot{padding:var(--space-3) var(--space-1)}.time-slot__time{font-size:var(--text-xs)}.step-indicator__connector{width:24px}}@media print{body{background:#fff}body:before{display:none}.booking-card{box-shadow:none;border:1px solid var(--color-gray-200)}.btn,.step-indicator{display:none}}.logo-mark{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:var(--color-accent);font-family:var(--font-serif);font-size:var(--text-xl);font-weight:600;border-radius:var(--radius-md);letter-spacing:-.02em}.event-types{display:flex;flex-direction:column;gap:var(--space-4);max-width:480px;margin:0 auto}.event-type-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);text-align:left}.event-type-card:hover{border-color:var(--color-primary);background:var(--color-background-warm);transform:translateY(-2px);box-shadow:var(--shadow-md)}.event-type-card__content{flex:1}.event-type-card__title{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:500;color:var(--color-text);margin-bottom:var(--space-2)}.event-type-card__description{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5}.event-type-card__meta{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.event-type-card__duration{font-size:var(--text-sm);font-weight:500;color:var(--color-accent);background:var(--color-background-warm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.event-type-card__meta svg{color:var(--color-gray-400);transition:transform var(--duration-fast)}.event-type-card:hover .event-type-card__meta svg{color:var(--color-primary);transform:translate(4px)}.booking-app--embedded{min-height:auto;padding:0}.booking-app--embedded .booking-card{max-width:100%;border-radius:0;box-shadow:none}.booking-app--embedded .booking-card:before{display:none}.booking-app--embedded .booking-card__inner{padding:var(--space-6)}.booking-app--embedded .booking-header{margin-bottom:var(--space-6);padding-bottom:var(--space-4)}.booking-app--embedded .booking-footer{display:none}body.dark-mode .booking-card{background:var(--color-surface);border:1px solid rgba(255,255,255,.1)}body.dark-mode .booking-card:before{opacity:.8}body.dark-mode .calendar__day--past{color:var(--color-gray-600)}body.dark-mode .calendar__day--available{background:var(--color-primary-light)}body.dark-mode .calendar__day--available:hover{background:var(--color-accent);color:var(--color-primary-deep)}body.dark-mode .form-input,body.dark-mode .form-textarea{background:var(--color-background);border-color:#ffffff26}body.dark-mode .form-input:focus,body.dark-mode .form-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #10b98133}body.dark-mode .form-input::placeholder,body.dark-mode .form-textarea::placeholder{color:var(--color-gray-500)}body.dark-mode .step-indicator__number{border-color:var(--color-gray-600);color:var(--color-gray-500)}body.dark-mode .step-indicator__connector{background:var(--color-gray-700)}body.dark-mode .time-slot{background:var(--color-background);border-color:#ffffff1a}body.dark-mode .time-slot:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}body.dark-mode .calendar__legend-dot--available{background:var(--color-primary-light);border-color:#fff3}body.dark-mode .calendar__legend-dot--unavailable{background:var(--color-gray-700);border-color:var(--color-gray-600)}body.dark-mode .confirmation__secure{background:var(--color-background);border-color:#ffffff1a}body.dark-mode .error-message{background:#dc262626;border-color:#dc26264d}body.dark-mode .event-type-card{background:var(--color-background);border-color:#ffffff1a}body.dark-mode .event-type-card:hover{background:var(--color-primary-light);border-color:var(--color-accent)}body.dark-mode .event-type-card__duration{background:var(--color-primary-light)}
