:root{--ink:#241B33;--pl:#4B2E83;--pl2:#EEE8F7;--am:#F2B544;--bg:#FBF9FD;--mut:#6D6480;--ok:#1E9E73}
*{box-sizing:border-box}body{margin:0;font:16px/1.55 'DM Sans',sans-serif;background:var(--bg);color:var(--ink)}
h1,h2,h3{font-family:Fraunces,serif;line-height:1.1;margin:0}a{color:var(--pl)}.w{max-width:1040px;margin:auto;padding:0 20px}section{padding:56px 0}
.hero{background:var(--pl);color:#fff;padding:72px 0 80px;border-radius:0 0 40px 40px}.hero h1{font-size:clamp(2.2rem,6vw,4rem);max-width:12ch;margin-top:36px}.hero p{max-width:46ch;opacity:.85;margin:16px 0 28px}
.btn,button{border:0;cursor:pointer;font:700 1rem 'DM Sans',sans-serif;border-radius:999px;padding:14px 26px;background:var(--am);color:var(--ink);text-decoration:none;display:inline-block}
.btn.alt,button.alt{background:var(--pl);color:#fff}button:disabled{opacity:.4;cursor:not-allowed}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:24px}
.card,.box{background:#fff;border:1px solid #E6DFF2;border-radius:18px;padding:22px}.box{border-radius:22px;padding:28px;margin-top:24px}
.price{font:800 1.5rem Fraunces,serif;color:var(--pl);margin-top:10px}.mut{color:var(--mut);font-size:.92rem}
summary{cursor:pointer;color:var(--pl);font-weight:700;margin-top:10px}label{display:block;font-weight:700;margin:16px 0 6px;font-size:.92rem}
input,select,textarea{width:100%;padding:13px 14px;border:1.5px solid #D9D0EA;border-radius:12px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid var(--am);outline-offset:1px}
.slots{display:flex;flex-wrap:wrap;gap:8px}.slot{padding:10px 16px;border-radius:10px;border:1.5px solid #D9D0EA;background:#fff;font-size:.95rem}.slot.on{background:var(--pl);color:#fff;border-color:var(--pl)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:640px){.row{grid-template-columns:1fr}}
.pay{display:flex;gap:10px;flex-wrap:wrap}.pay label{flex:1;min-width:200px;border:1.5px solid #D9D0EA;border-radius:12px;padding:12px;margin:0;font-weight:500;cursor:pointer}
.chk{width:auto;margin-right:8px}.sum{background:var(--pl2);border-radius:14px;padding:14px 18px;margin:18px 0}.msg{margin-top:14px;font-weight:700}.err{color:#C0392B}.good{color:var(--ok)}
iframe{width:100%;height:340px;border:0;border-radius:20px;margin:16px 0}footer{padding:32px 0;text-align:center;color:var(--mut);font-size:.9rem}
@media(prefers-reduced-motion:no-preference){.hero h1{animation:u .7s ease both}@keyframes u{from{opacity:0;transform:translateY(14px)}}}

.gw{position:relative;margin:-22px -22px 14px}.gal{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:18px 18px 0 0}.gal img{flex:0 0 100%;scroll-snap-align:center;aspect-ratio:4/3;object-fit:cover}
.gb{position:absolute;top:50%;transform:translateY(-50%);padding:0;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.9);font-size:1.4rem;line-height:1}.gb.l{left:10px}.gb.r{right:10px}
.bs{display:none;position:relative}.bs.on{display:block}.bs img{width:100%;aspect-ratio:16/6;object-fit:cover;border-radius:22px;display:block}
.bs span{position:absolute;left:20px;bottom:18px;background:rgba(36,27,51,.78);color:#fff;padding:8px 14px;border-radius:10px;font-weight:700}#lg img{vertical-align:middle;margin-right:12px}

[hidden]{display:none!important}
.prog{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 22px}.prog li{flex:1;font-size:.85rem;color:var(--mut);border-top:4px solid #E6DFF2;padding-top:8px}.prog li.on{color:var(--pl);border-color:var(--pl);font-weight:700}
.svl{display:grid;gap:10px}.opt{display:flex;align-items:center;gap:12px;border:1.5px solid #D9D0EA;border-radius:14px;padding:14px 16px;margin:0;cursor:pointer;font-weight:500}.opt:has(input:checked){border-color:var(--pl);background:var(--pl2)}
.opt input{width:auto;margin:0}.opt span{flex:1}.opt small{display:block;color:var(--mut)}.opt em{font-style:normal;font-weight:700;color:var(--pl)}
.nav{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}button.ghost{background:none;color:var(--pl);border:1.5px solid #D9D0EA}
