.ctf-overlay,.ctf-page{--ctf-gold:var(--moroccan-gold,#d4af37);--ctf-terracotta:var(--moroccan-terracotta,#d2691e);--ctf-blue:var(--moroccan-blue,#1e3a5f);--ctf-cream:var(--cream,#faf6f1);--ctf-border:var(--border,#e8ddd1);--ctf-text:var(--text,#333);--ctf-muted:#6b6b6b;--ctf-danger:#b42318;--ctf-danger-bg:#fef3f2;--ctf-radius:12px}.ctf-page{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:110px 20px 56px;background:linear-gradient(135deg,rgba(30,58,95,.93),rgba(30,58,95,.8) 45%,rgba(210,105,30,.78)),url(https://images.unsplash.com/photo-1539768942893-daf53e448371?q=80&w=2071) 50% /cover}.ctf-hero{width:min(720px,100%);text-align:center;color:#fff}.ctf-hero-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:999px;border:1px solid rgba(212,175,55,.55);background:hsla(0,0%,100%,.08);color:var(--ctf-gold);font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.ctf-hero h1{margin:18px 0 14px;color:#fff;font-family:Cormorant Garamond,serif;font-size:clamp(2.2rem,6vw,3.8rem);font-weight:700;line-height:1.1}.ctf-hero p{margin:0 auto 30px;max-width:560px;color:hsla(0,0%,100%,.88);font-size:clamp(1rem,2.4vw,1.15rem);line-height:1.6}.ctf-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:14px 34px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--ctf-gold),var(--ctf-terracotta));color:#fff;font-family:Lato,sans-serif;font-size:1.05rem;font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.3);transition:transform .2s ease,box-shadow .2s ease}.ctf-cta:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(0,0,0,.36)}.ctf-cta:focus-visible{outline:3px solid #fff;outline-offset:3px}.ctf-hero-points{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;margin:30px 0 0;padding:0;list-style:none;color:hsla(0,0%,100%,.9);font-size:.92rem}.ctf-hero-points li{display:inline-flex;align-items:center;gap:8px}.ctf-hero-points svg{color:var(--ctf-gold);flex:none}.ctf-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(14,24,40,.68);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.ctf-overlay.is-open{opacity:1;visibility:visible}.ctf-modal{position:relative;display:flex;flex-direction:column;width:min(820px,100%);max-height:min(92vh,900px);max-height:min(92dvh,900px);overflow:hidden;border-radius:20px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.45);transform:translateY(14px) scale(.98);transition:transform .25s ease}.ctf-overlay.is-open .ctf-modal{transform:none}.ctf-header{position:relative;flex:none;padding:22px 28px 16px;color:#fff;background:linear-gradient(135deg,var(--ctf-blue) 0,#16304f 100%);border-bottom:3px solid var(--ctf-gold)}.ctf-close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:hsla(0,0%,100%,.12);color:#fff;cursor:pointer;transition:background .2s ease}.ctf-close:hover{background:hsla(0,0%,100%,.24)}.ctf-close:focus-visible{outline:2px solid var(--ctf-gold);outline-offset:2px}.ctf-header-main{display:flex;align-items:center;gap:14px;padding-right:48px}.ctf-header-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:rgba(212,175,55,.18);border:1px solid rgba(212,175,55,.5);color:var(--ctf-gold)}.ctf-header h2{margin:0;color:#fff;font-family:Cormorant Garamond,serif;font-size:1.65rem;font-weight:700;line-height:1.15}.ctf-header p{margin:2px 0 0;color:hsla(0,0%,100%,.78);font-size:.92rem;line-height:1.4}.ctf-stepper{display:flex;align-items:flex-start;margin:18px 0 0;padding:0;list-style:none}.ctf-step{position:relative;flex:1 1;display:flex;justify-content:center}.ctf-step:before{content:"";position:absolute;top:15px;right:50%;width:100%;height:2px;background:hsla(0,0%,100%,.2)}.ctf-step:first-child:before{display:none}.ctf-step.is-current:before,.ctf-step.is-done:before{background:var(--ctf-gold)}.ctf-step button{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;border:0;background:none;color:hsla(0,0%,100%,.6);font:inherit;cursor:pointer}.ctf-step-dot{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:2px solid hsla(0,0%,100%,.35);background:#1b3858;font-size:.85rem;font-weight:700;transition:all .2s ease}.ctf-step-label{font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.ctf-step.is-done .ctf-step-dot{background:var(--ctf-gold);border-color:var(--ctf-gold);color:var(--ctf-blue)}.ctf-step.is-done button{color:hsla(0,0%,100%,.85)}.ctf-step.is-current .ctf-step-dot{background:linear-gradient(135deg,var(--ctf-gold),var(--ctf-terracotta));border-color:#fff;color:#fff;box-shadow:0 0 0 4px rgba(212,175,55,.25)}.ctf-step.is-current button{color:#fff}.ctf-step button:focus-visible .ctf-step-dot{outline:2px solid #fff;outline-offset:2px}.ctf-step-count{display:none;margin:10px 0 0;font-size:.82rem;color:hsla(0,0%,100%,.8)}.ctf-form{display:flex;flex-direction:column}.ctf-body,.ctf-form{flex:1 1 auto;min-height:0}.ctf-body{overflow-y:auto;overscroll-behavior:contain;padding:24px 28px 8px;background:var(--ctf-cream);color:var(--ctf-text)}.ctf-alert{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px;padding:12px 14px;border:1px solid #fda29b;border-left:4px solid var(--ctf-danger);border-radius:10px;background:var(--ctf-danger-bg);color:var(--ctf-danger);font-size:.92rem;font-weight:600}.ctf-alert svg{flex:none;margin-top:2px}.ctf-step-title{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--ctf-border)}.ctf-step-title-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:rgba(212,175,55,.16);color:#9a7b12}.ctf-step-title h3{margin:0;color:var(--ctf-blue);font-family:Cormorant Garamond,serif;font-size:1.55rem;font-weight:700}.ctf-fields{display:flex;flex-direction:column;gap:20px;padding-bottom:12px}.ctf-grid{display:grid;grid-gap:16px;gap:16px}.ctf-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ctf-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ctf-field{display:flex;flex-direction:column;gap:6px;min-width:0}.ctf-field label,.ctf-label{color:var(--ctf-blue);font-size:.88rem;font-weight:700;letter-spacing:.01em}.ctf-field small{color:var(--ctf-muted);font-size:.8rem;line-height:1.4}.ctf-field input[type=date],.ctf-field input[type=email],.ctf-field input[type=number],.ctf-field input[type=tel],.ctf-field input[type=text],.ctf-field textarea{width:100%;min-height:46px;padding:11px 14px;border:1.5px solid var(--ctf-border);border-radius:var(--ctf-radius);background:#fff;color:var(--ctf-text);font-family:Lato,sans-serif;font-size:1rem;line-height:1.4;transition:border-color .2s ease,box-shadow .2s ease;-moz-appearance:none;appearance:none;-webkit-appearance:none}.ctf-field textarea{min-height:96px;resize:vertical}.ctf-field input::placeholder,.ctf-field textarea::placeholder{color:#a39a8f}.ctf-field input:focus,.ctf-field textarea:focus{outline:none;border-color:var(--ctf-gold);box-shadow:0 0 0 4px rgba(212,175,55,.2)}.ctf-field.has-error input,.ctf-field.has-error textarea{border-color:var(--ctf-danger);background:var(--ctf-danger-bg)}.ctf-field.has-error input:focus,.ctf-field.has-error textarea:focus{box-shadow:0 0 0 4px rgba(180,35,24,.15)}.ctf-error{display:flex;align-items:flex-start;gap:6px;margin:0;color:var(--ctf-danger);font-size:.82rem;font-weight:600;line-height:1.35}.ctf-error svg{flex:none;margin-top:1px}.ctf-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));grid-gap:10px;gap:10px}.ctf-chips-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ctf-chip{position:relative;display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:10px 14px;border:1.5px solid var(--ctf-border);border-radius:var(--ctf-radius);background:#fff;color:var(--ctf-blue);font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s ease}.ctf-chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.ctf-chip svg{flex:none;color:var(--ctf-muted);transition:color .2s ease}.ctf-chip.is-selected,.ctf-chip:hover{border-color:var(--ctf-gold)}.ctf-chip.is-selected{background:linear-gradient(135deg,rgba(212,175,55,.18),rgba(210,105,30,.1));box-shadow:0 4px 14px rgba(212,175,55,.22)}.ctf-chip.is-selected svg{color:var(--ctf-terracotta)}.ctf-chip:focus-within{outline:3px solid rgba(212,175,55,.45);outline-offset:2px}.ctf-themes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:4px}.ctf-theme{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:108px;padding:14px 8px;border:1.5px solid var(--ctf-border);border-radius:14px;background:#fff;color:var(--ctf-blue);font-family:Lato,sans-serif;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s ease}.ctf-theme-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:rgba(30,58,95,.07);color:var(--ctf-blue);transition:all .2s ease}.ctf-theme:hover{border-color:var(--ctf-gold);transform:translateY(-2px)}.ctf-theme.is-selected{border-color:var(--ctf-gold);background:linear-gradient(160deg,rgba(212,175,55,.2),rgba(210,105,30,.08));box-shadow:0 6px 18px rgba(212,175,55,.25)}.ctf-theme.is-selected .ctf-theme-icon{background:linear-gradient(135deg,var(--ctf-gold),var(--ctf-terracotta));color:#fff}.ctf-theme-check{position:absolute;top:8px;right:8px;padding:2px;border-radius:50%;background:var(--ctf-gold);color:#fff}.ctf-theme:focus-visible{outline:3px solid rgba(212,175,55,.5);outline-offset:2px}.ctf-option{position:relative;display:flex;align-items:center;gap:14px;padding:16px;border:1.5px solid var(--ctf-border);border-radius:14px;background:#fff;cursor:pointer;transition:all .2s ease}.ctf-option input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.ctf-option-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:rgba(30,58,95,.07);color:var(--ctf-blue);transition:all .2s ease}.ctf-option-text{display:flex;flex-direction:column;flex:1 1;min-width:0}.ctf-option-text strong{color:var(--ctf-blue);font-size:1rem}.ctf-option-text small{margin-top:2px;color:var(--ctf-muted);font-size:.84rem;line-height:1.35}.ctf-option-check{flex:none;display:grid;place-items:center;width:24px;height:24px;border:2px solid var(--ctf-border);border-radius:50%;color:transparent;transition:all .2s ease}.ctf-option.is-selected,.ctf-option:hover{border-color:var(--ctf-gold)}.ctf-option.is-selected{background:linear-gradient(135deg,rgba(212,175,55,.16),rgba(210,105,30,.07))}.ctf-option.is-selected .ctf-option-icon{background:linear-gradient(135deg,var(--ctf-gold),var(--ctf-terracotta));color:#fff}.ctf-option.is-selected .ctf-option-check{border-color:var(--ctf-gold);background:var(--ctf-gold);color:#fff}.ctf-option:focus-within{outline:3px solid rgba(212,175,55,.45);outline-offset:2px}.ctf-footer{flex:none;padding:14px 28px calc(14px + env(safe-area-inset-bottom, 0px));border-top:1px solid var(--ctf-border);background:#fff}.ctf-login-note{margin:0 0 10px;color:var(--ctf-muted);font-size:.82rem;text-align:center}.ctf-nav{display:flex;gap:12px}.ctf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:12px 26px;border-radius:var(--ctf-radius);font-family:Lato,sans-serif;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease}.ctf-btn:disabled{opacity:.6;cursor:not-allowed}.ctf-btn-ghost{border:1.5px solid var(--ctf-border);background:#fff;color:var(--ctf-blue)}.ctf-btn-ghost:hover:not(:disabled){border-color:var(--ctf-blue)}.ctf-btn-primary{flex:1 1;border:0;background:linear-gradient(135deg,var(--ctf-gold),var(--ctf-terracotta));color:#fff;box-shadow:0 8px 20px rgba(210,105,30,.28)}.ctf-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 26px rgba(210,105,30,.36)}.ctf-btn:focus-visible{outline:3px solid rgba(30,58,95,.4);outline-offset:2px}.ctf-spin{animation:ctf-spin .9s linear infinite}@keyframes ctf-spin{to{transform:rotate(1turn)}}@media (max-width:860px){.ctf-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.ctf-grid-3>:last-child:nth-child(odd){grid-column:1/-1}}@media (max-width:640px){.ctf-page{padding:96px 16px 40px}.ctf-hero-points{flex-direction:column;align-items:center;gap:10px}.ctf-cta{width:100%}.ctf-overlay{padding:0;align-items:stretch}.ctf-modal{width:100%;max-height:none;height:100vh;height:100dvh;border-radius:0}.ctf-header{padding:16px 16px 12px}.ctf-close{top:10px;right:10px}.ctf-header-main{gap:10px;padding-right:44px}.ctf-header-icon{width:38px;height:38px;border-radius:10px}.ctf-header h2{font-size:1.3rem}.ctf-header p{font-size:.82rem}.ctf-stepper{margin-top:14px}.ctf-step-dot{width:28px;height:28px;font-size:.78rem}.ctf-step:before{top:13px}.ctf-step-label{display:none}.ctf-step-count{display:block}.ctf-body{padding:18px 16px 4px}.ctf-step-title{margin-bottom:16px}.ctf-step-title h3{font-size:1.35rem}.ctf-grid-2,.ctf-grid-3{grid-template-columns:minmax(0,1fr)}.ctf-grid-3>:last-child:nth-child(odd){grid-column:auto}#ctf-adults,#ctf-children,#ctf-rooms{text-align:left}.ctf-chips,.ctf-chips-2,.ctf-themes{grid-template-columns:repeat(2,minmax(0,1fr))}.ctf-themes{gap:10px}.ctf-theme{min-height:96px}.ctf-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px))}.ctf-btn{padding:12px 16px}.ctf-btn-ghost{flex:0 0 auto}}@media (max-width:360px){.ctf-chips{grid-template-columns:minmax(0,1fr)}.ctf-btn-ghost{padding:12px}}@media (max-height:520px) and (orientation:landscape){.ctf-modal{width:100%;max-height:100dvh;height:100dvh;border-radius:0}.ctf-header{padding:10px 16px 8px}.ctf-header p,.ctf-step-label{display:none}.ctf-stepper{margin-top:8px}}@media (prefers-reduced-motion:reduce){.ctf-btn,.ctf-chip,.ctf-cta,.ctf-modal,.ctf-option,.ctf-overlay,.ctf-theme{transition:none}.ctf-spin{animation-duration:2s}}.ctf-secondary{display:flex;align-items:center;justify-content:center;gap:8px;width:-moz-fit-content;width:fit-content;margin:18px auto 0;padding:10px 20px;border:1.5px solid hsla(0,0%,100%,.55);border-radius:12px;color:#fff;font-weight:700;text-decoration:none;transition:all .2s ease}.ctf-secondary:hover{background:hsla(0,0%,100%,.14);border-color:#fff}.ctf-secondary:focus-visible{outline:3px solid #fff;outline-offset:3px}@media (max-width:640px){.ctf-secondary{width:100%}}