/* 4Design Experience */
:root{--fdx-deep:#12343b;--fdx-teal:#1f5257;--fdx-mint:#8fc9c4;--fdx-glow:#62d9d6;--fdx-purple:#7b5fae;--fdx-cream:#faf7f2;--fdx-ink:#163a40}

/* 3D logo */
.fdx-logo{position:absolute;inset:-6%;perspective:900px;display:grid;place-items:center;pointer-events:none}
.fdx-logo__rig{position:relative;width:86%;aspect-ratio:1;transform-style:preserve-3d;will-change:transform}
.fd-orbit__core .fdx-logo img.fdx-logo__layer,.fdx-logo img.fdx-logo__layer{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;margin:0!important;object-fit:contain;mix-blend-mode:normal!important;backface-visibility:hidden;animation:none!important}
.fdx-logo__layer.is-front{filter:drop-shadow(0 0 18px rgba(98,217,214,.35))}
.fdx-logo__sheen{position:absolute;inset:0;transform:translateZ(19px);-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;opacity:.45;mix-blend-mode:soft-light}

/* interactive waves */
.fdx-wave{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}

/* modal */
.fdx-lock,.fdx-lock body{overflow:hidden}
.fdx-modal{position:fixed;inset:0;z-index:2147483600;display:grid;place-items:center;padding:16px;visibility:hidden;opacity:0;transition:opacity .25s,visibility 0s .25s}
.fdx-modal.is-open{visibility:visible;opacity:1;transition:opacity .25s}
.fdx-modal__back{position:absolute;inset:0;background:rgba(8,26,30,.72);backdrop-filter:blur(6px)}
.fdx-modal__box{position:relative;width:min(640px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--fdx-cream);color:var(--fdx-ink);border-radius:24px;padding:34px 30px 26px;box-shadow:0 40px 90px rgba(0,0,0,.45);transform:translateY(16px) scale(.98);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.fdx-modal.is-wide .fdx-modal__box{width:min(900px,100%)}
.fdx-modal.is-open .fdx-modal__box{transform:none}
.fdx-modal__x{position:absolute;top:12px;inset-inline-end:14px;width:40px;height:40px;border:0;border-radius:50%;background:rgba(18,52,59,.08);color:var(--fdx-ink);font-size:26px;line-height:1;cursor:pointer}
.fdx-modal__x:focus-visible,.fdx-chip:focus-visible,.fdx-btn:focus-visible{outline:2px solid var(--fdx-purple);outline-offset:3px}
.fdx-h{font-size:1.6rem;line-height:1.3;margin:0 0 8px;color:var(--fdx-ink)}
.fdx-p{color:#5c6b6e;margin:0 0 18px}

/* planner */
.fdx-prog{height:4px;background:rgba(18,52,59,.1);border-radius:9px;margin:0 0 22px;overflow:hidden}
.fdx-prog span{display:block;height:100%;background:linear-gradient(90deg,var(--fdx-glow),var(--fdx-purple));transition:width .4s cubic-bezier(.2,.8,.2,1)}
.fdx-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.fdx-chip{text-align:start;padding:15px 16px;border-radius:14px;border:1.5px solid #e2dbd0;background:#fff;color:var(--fdx-ink);font:inherit;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s,transform .15s}
.fdx-chip{font-family:var(--fd-serif,inherit);font-size:1.15rem;font-weight:700;line-height:1.45}
.fdx-sum dd,.fdx-path li{font-family:var(--fd-serif,inherit)}
.fdx-chip:hover{border-color:var(--fdx-mint)}
.fdx-chip.is-on{border-color:var(--fdx-teal);background:#e8f4f2;box-shadow:inset 0 0 0 1px var(--fdx-teal)}
.fdx-chip:active{transform:scale(.98)}
.fdx-form{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.fdx-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.92rem}
.fdx-form .fdx-full{grid-column:1/-1}
.fdx-form input,.fdx-form textarea{font:inherit;font-weight:400;padding:12px 14px;border:1.5px solid #e2dbd0;border-radius:12px;background:#fff;color:var(--fdx-ink)}
.fdx-form input:focus,.fdx-form textarea:focus{outline:0;border-color:var(--fdx-teal);box-shadow:0 0 0 3px rgba(31,82,87,.12)}
.fdx-err{color:#a12d3a;font-weight:600;min-height:1.2em;margin:10px 0 0}
.fdx-nav{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:22px}
.fdx-btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 24px;border-radius:999px;border:2px solid var(--fdx-teal);background:var(--fdx-teal);color:#fff!important;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.fdx-btn:disabled{opacity:.4;cursor:default}
.fdx-btn--ghost{background:transparent;color:var(--fdx-teal)!important}
.fdx-done{text-align:center}
.fdx-check{width:72px;height:72px;margin:0 auto 12px}
.fdx-check svg{width:100%;height:100%;fill:none;stroke:var(--fdx-teal);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.fdx-check circle{stroke:var(--fdx-mint);stroke-dasharray:151;stroke-dashoffset:151;animation:fdx-draw .7s forwards}
.fdx-check path{stroke-dasharray:40;stroke-dashoffset:40;animation:fdx-draw .4s .55s forwards}
@keyframes fdx-draw{to{stroke-dashoffset:0}}
.fdx-sum{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;text-align:start;background:#fff;border:1px solid #e9e2d8;border-radius:14px;padding:16px 18px;margin:0 0 14px}
.fdx-sum dt{font-weight:700;color:#5c6b6e}.fdx-sum dd{margin:0}
.fdx-path{display:flex;gap:8px;list-style:none;padding:0;margin:0;justify-content:center;flex-wrap:wrap;counter-reset:s}
.fdx-path li{counter-increment:s;font-size:.9rem;background:#e8f4f2;border-radius:999px;padding:8px 14px}
.fdx-path li::before{content:counter(s) ". ";font-weight:700;color:var(--fdx-purple)}

/* booking */
.fdx-book iframe{width:100%;height:min(640px,70vh);border:0;border-radius:14px;background:#fff}

/* intro */
#fdx-intro{position:fixed;inset:0;z-index:2147483646;display:grid;place-items:center;background:radial-gradient(1000px 600px at 50% 40%,#1f5257,#0b2328 70%);transition:clip-path .9s cubic-bezier(.7,0,.2,1),opacity .4s;clip-path:circle(150% at 50% 50%)}
#fdx-intro.is-out{clip-path:circle(0% at 50% 46%)}
#fdx-intro .fdx-i{width:min(240px,50vw);aspect-ratio:1;position:relative}
#fdx-intro svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#fdx-intro circle{fill:none;stroke:#8fc9c4;stroke-width:1;stroke-dasharray:600;stroke-dashoffset:600;animation:fdx-draw 1s cubic-bezier(.6,0,.2,1) forwards}
#fdx-intro circle+circle{stroke:#9d84d0;stroke-width:2;animation-delay:.15s}
#fdx-intro img{position:absolute;inset:16%;width:68%;height:68%;object-fit:contain;opacity:0;transform:scale(.85);animation:fdx-logo .7s .45s cubic-bezier(.2,.8,.2,1) forwards}
#fdx-intro .fdx-w{position:absolute;left:50%;bottom:-54px;transform:translateX(-50%);color:#e6f1ef;font:600 15px/1 Poppins,system-ui,sans-serif;letter-spacing:.5em;white-space:nowrap;opacity:0;animation:fdx-word .6s .8s forwards}
@keyframes fdx-logo{to{opacity:1;transform:none}}
@keyframes fdx-word{from{opacity:0;letter-spacing:1.2em}to{opacity:.85;letter-spacing:.5em}}

@media (max-width:600px){.fdx-form{grid-template-columns:1fr}.fdx-modal__box{padding:30px 18px 20px;border-radius:20px}.fdx-h{font-size:1.35rem}}
@media (prefers-reduced-motion:reduce){#fdx-intro{display:none}.fdx-modal,.fdx-modal__box,.fdx-prog span{transition:none}.fdx-check *{animation:none!important;stroke-dashoffset:0}}
