/* ============================================================
   Tailor Made — step-by-step trip builder (/tailor-made/).
   Loads only on page 21947. Uses the shared design tokens.
   ============================================================ */

.nct-tm .tm-wrap{max-width:940px;margin-inline:auto}

/* ---- progress ---- */
.nct-tm .tm-steps{display:flex;gap:.4rem;list-style:none;margin:0 0 1.6rem;padding:0;counter-reset:s}
.nct-tm .tm-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:.45rem;text-align:center;position:relative;opacity:.45;transition:opacity .3s}
.nct-tm .tm-step.active,.nct-tm .tm-step.done{opacity:1}
.nct-tm .tm-step::before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:2px;background:var(--line);z-index:0}
.nct-tm .tm-step:first-child::before{display:none}
.nct-tm .tm-step.done::before{background:var(--deep)}
.nct-tm .tm-num{position:relative;z-index:1;width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid var(--line);display:grid;place-items:center;font-size:.85rem;font-weight:700;color:var(--muted);transition:.25s}
.nct-tm .tm-step.active .tm-num{border-color:var(--deep);color:var(--deep);box-shadow:0 0 0 4px rgba(24,64,224,.12)}
.nct-tm .tm-step.done .tm-num{background:var(--deep);border-color:var(--deep);color:#fff}
.nct-tm .tm-step.done .tm-num::after{content:"\2713"}
.nct-tm .tm-step.done .tm-num{font-size:0}
.nct-tm .tm-step.done .tm-num::after{font-size:.9rem}
.nct-tm .tm-lb{font-size:.72rem;font-weight:600;color:var(--muted);line-height:1.25;max-width:11ch}
.nct-tm .tm-step.active .tm-lb{color:var(--ink)}
@media(max-width:700px){.nct-tm .tm-lb{display:none}.nct-tm .tm-steps{gap:.2rem}}

/* ---- form shell ---- */
.nct-tm .tm-form{background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(1.4rem,4vw,2.6rem);box-shadow:0 20px 54px rgba(15,29,61,.09)}
.nct-tm .tm-panel{display:none;border:0;padding:0;margin:0;min-inline-size:0}
.nct-tm .tm-panel.active{display:block;animation:tmIn .32s ease}
@keyframes tmIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.nct-tm .tm-q{font-size:clamp(1.25rem,2.6vw,1.65rem);font-weight:600;color:var(--ink);letter-spacing:-.02em;line-height:1.2;margin:0 0 .5rem;padding:0}
.nct-tm .tm-hint{color:var(--muted);font-size:.92rem;line-height:1.6;margin:0 0 1.2rem}
.nct-tm .tm-opt{color:var(--muted);font-weight:400;font-size:.85em}

/* ---- radio cards ---- */
.nct-tm .tm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.8rem;margin-top:1.1rem}
.nct-tm .tm-card{position:relative;cursor:pointer}
.nct-tm .tm-card input{position:absolute;opacity:0;width:0;height:0}
.nct-tm .tm-card-in{display:flex;align-items:flex-start;gap:.85rem;padding:1rem 1.1rem;border:2px solid var(--line);border-radius:15px;background:#fff;transition:.22s;height:100%}
.nct-tm .tm-card:hover .tm-card-in{border-color:#c3d4f5;transform:translateY(-2px)}
.nct-tm .tm-card input:checked + .tm-card-in{border-color:var(--deep);background:#f5f8ff;box-shadow:0 8px 22px rgba(24,64,224,.14)}
.nct-tm .tm-card input:focus-visible + .tm-card-in{outline:2px solid var(--deep);outline-offset:2px}
.nct-tm .tm-card-ic{flex:0 0 auto;width:38px;height:38px;border-radius:11px;background:var(--sky-2);display:grid;place-items:center;transition:.22s}
.nct-tm .tm-card input:checked + .tm-card-in .tm-card-ic{background:var(--deep)}
.nct-tm .tm-card-ic svg{width:20px;height:20px;stroke:var(--deep);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nct-tm .tm-card input:checked + .tm-card-in .tm-card-ic svg{stroke:#fff}
.nct-tm .tm-card-tx b{display:block;font-size:.98rem;font-weight:600;color:var(--ink);line-height:1.25}
.nct-tm .tm-card-tx small{display:block;margin-top:.2rem;font-size:.82rem;color:var(--muted);line-height:1.45}

/* ---- inputs ---- */
.nct-tm .frow{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media(max-width:640px){.nct-tm .frow{grid-template-columns:1fr}}
.nct-tm .field{margin-bottom:.9rem;display:flex;flex-direction:column}
.nct-tm .field label{font-size:.85rem;font-weight:600;color:var(--ink);margin-bottom:.35rem}
.nct-tm .field .req{color:#dc2626}
.nct-tm .field input,.nct-tm .field select,.nct-tm .field textarea{width:100%;font-family:inherit;font-size:.95rem;color:var(--ink);padding:.8em .95em;border:1.5px solid var(--line);border-radius:11px;background:#fff;transition:.2s}
.nct-tm .field input:focus,.nct-tm .field select:focus,.nct-tm .field textarea:focus{outline:0;border-color:var(--deep);box-shadow:0 0 0 3px rgba(24,64,224,.12)}
.nct-tm .field input.tm-err,.nct-tm .field select.tm-err{border-color:#dc2626}
.nct-tm .phone-wrap{display:grid;grid-template-columns:130px 1fr;gap:.5rem}
.nct-tm .phone-code{min-width:0}

/* ---- checkboxes ---- */
.nct-tm .tm-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.55rem;margin:0 0 1.3rem}
.nct-tm .tm-check{display:flex;align-items:center;gap:.6rem;padding:.7em .9em;border:1.5px solid var(--line);border-radius:11px;cursor:pointer;transition:.2s;font-size:.92rem;color:var(--ink)}
.nct-tm .tm-check:hover{border-color:#c3d4f5}
.nct-tm .tm-check input{width:18px;height:18px;accent-color:var(--deep);flex:0 0 auto;cursor:pointer}
.nct-tm .tm-check:has(input:checked){border-color:var(--deep);background:#f5f8ff}

/* ---- nav ---- */
.nct-tm .tm-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.6rem;padding-top:1.3rem;border-top:1px solid var(--line);flex-wrap:wrap}
.nct-tm .tm-nav-right{display:flex;align-items:center;gap:.9rem;margin-left:auto}
.nct-tm .tm-count{font-size:.85rem;color:var(--muted);font-weight:500}
.nct-tm .tm-alt{text-align:center;margin-top:1.1rem;font-size:.9rem;color:var(--muted)}
.nct-tm .tm-alt a{color:var(--deep);font-weight:600}
.nct-tm .tm-privacy{font-size:.82rem;color:var(--muted);line-height:1.6;margin:.4rem 0 0}
.nct-tm .tm-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:11px;padding:.7em 1em;font-size:.9rem;margin-bottom:1rem}
@media(max-width:520px){.nct-tm .tm-nav{flex-direction:column-reverse;align-items:stretch}.nct-tm .tm-nav-right{margin-left:0;justify-content:space-between}.nct-tm .tm-nav .btn{justify-content:center}}

/* The shared `.btn{display:inline-flex}` rule (specificity 0,2,0) beats the UA's
   `[hidden]{display:none}`, so Back/Submit stayed visible on every step. Re-assert
   it with higher specificity so the JS `hidden` flag actually hides them. */
.nct-tm .tm-nav .btn[hidden],
.nct-tm [hidden]{display:none !important}
