/* Contact and custom itinerary forms share one legible, accessible visual system. */
.contact-form-card{border-radius:20px;box-shadow:0 12px 42px #11355409;border:1px solid var(--line)!important}
.contact-form-card .card-body{padding:clamp(24px,4vw,40px)!important}
.form-heading-icon{width:46px;height:46px;border-radius:14px;background:#e7f5fd;color:var(--blue);display:grid;place-items:center;font-size:20px;margin-bottom:22px}
.contact-form-card h2{font-size:clamp(1.55rem,3vw,2rem);line-height:1.25}
.form-introduction{font-size:14px;line-height:1.85;color:var(--muted);max-width:600px;margin-bottom:24px}
.contact-form .form-label,.choice-group>.form-label{font-size:13px;line-height:1.6;font-weight:650;color:var(--navy);margin-bottom:8px}
.contact-form .form-control,.contact-form .form-select{font-size:16px;min-height:50px;line-height:1.6;padding:12px 14px;border-color:#c8d9e7;border-radius:9px;max-width:100%;color:var(--ink)}
.contact-form .form-select{padding-right:38px}
.contact-form textarea.form-control{min-height:130px;resize:vertical}
.contact-form .form-control::placeholder{color:#6b7e8d;opacity:1;font-size:14px}
.contact-form .form-check-label{font-size:13px;line-height:1.85;color:var(--muted)}
.contact-form .form-check-input{width:19px;height:19px;margin-top:3px}
.contact-form .consent{padding-left:28px}
.contact-form .consent .form-check-input{margin-left:-28px}
.field-help,.contact-form .form-note,.form-required{font-size:12px;color:var(--muted);line-height:1.75;margin-top:6px;margin-bottom:0}
.form-required{margin-top:0;margin-bottom:24px}
.field-optional{font-size:11px;font-weight:450;color:var(--muted)}
.contact-form .form-note i{color:var(--blue);margin-right:6px}
.enquiry-submit{min-height:52px;font-size:14px;justify-content:center;gap:16px}
.enquiry-submit:disabled{cursor:wait;opacity:.75}
.inquiry-tour-context{display:flex;gap:12px;align-items:flex-start;background:#eef7fc;border:1px solid #d1e8f5;border-radius:10px;padding:14px 16px;font-size:13px;line-height:1.7;color:var(--navy);margin-bottom:24px}
.inquiry-tour-context i{color:var(--blue);padding-top:4px}
.form-alternatives{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:28px;padding-top:22px;font-size:12px}
.form-alternatives>span{width:100%;color:var(--muted)}
.form-alternatives a{display:inline-flex;align-items:center;gap:8px;font-weight:650;text-decoration:none;min-height:32px}
.form-alternatives i{font-size:17px}
.form-policy-links,.designer-policy{display:flex;gap:10px 16px;flex-wrap:wrap;font-size:11px;line-height:1.8;margin:20px 0 0;color:var(--muted)}
.field-error{font-size:12px;font-weight:550;line-height:1.6;color:#a62b37;margin:7px 0 0}
.contact-form [aria-invalid="true"]{border-color:#b83845}
.contact-form [aria-invalid="true"]:focus{box-shadow:0 0 0 3px #b8384522}
.form-error-summary{padding:20px 22px;border:1px solid #edc0c5;border-left:4px solid #b83845;border-radius:10px;background:#fff6f7;margin:22px 0;color:#862331}
.form-error-summary h3{font-size:16px;letter-spacing:0;margin-bottom:10px}
.form-error-summary ul{margin:0;padding-left:20px;font-size:13px;line-height:1.8}
.form-error-summary a{color:inherit}
.form-success{display:flex;gap:16px;padding:24px;border-radius:12px;border:1px solid #a5d1c7;background:#edf9f5;color:#205c50;margin-bottom:25px}
.form-success>i{font-size:27px;flex:none;margin-top:3px}
.form-success h2,.form-success h3{font-size:20px;color:#174d42;margin:0 0 9px}
.form-success p{font-size:13px;line-height:1.8;margin-bottom:10px}
.form-success a{font-size:13px;font-weight:600;color:inherit}
.contact-dialog{width:760px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border-radius:20px}
.contact-dialog .contact-form-card{border:0!important}
.contact-dialog .contact-form-card .card-body{padding:40px!important}
body:has(.contact-dialog[open]:not(.contact-dialog-fallback)),body.contact-modal-open{overflow:hidden}
.contact-dialog[open].contact-dialog-fallback{position:relative;inset:auto;margin:30px auto;max-height:none;overflow:visible}
.contact-details{border-radius:20px}
.contact-details .contact-detail h3{font-size:11px}
.contact-details .contact-detail a{font-size:15px}
.contact-details .contact-detail address{font-size:13px}
.contact-design-card{margin-top:24px;padding:30px;background:var(--navy);color:#fff;border-radius:20px}
.contact-design-card>i{font-size:27px;color:#7bd5fa;margin-bottom:20px}
.contact-design-card h2{font-size:24px;color:#fff}
.contact-design-card p{font-size:13px;line-height:1.85;color:#d5e7f4}
.contact-design-card .btn{width:100%;margin-top:6px;font-size:13px;justify-content:center}
.designer-hero{background:linear-gradient(115deg,#eaf6fc 0%,#f4f9fd 60%,#e1f1fc 100%);padding:28px 0 48px;border-bottom:1px solid #d4e6f3}
.designer-hero h1{font-size:clamp(2.5rem,5vw,3.9rem);line-height:1.09;margin:18px 0 20px;letter-spacing:-.055em;max-width:800px}
.designer-hero .section-kicker{gap:10px;display:inline-flex;align-items:center}
.designer-hero .section-kicker i{font-size:15px}
.designer-hero h1+p{font-size:clamp(17px,2vw,21px);font-weight:550;line-height:1.5;color:var(--navy);margin-bottom:13px;letter-spacing:-.025em}
.designer-intro{font-size:14px;line-height:1.9;max-width:650px;color:var(--muted)}
.designer-promise{position:relative;padding:34px 30px;border:1px solid #b9dcea;background:#ffffff8c;border-radius:100px 100px 20px 20px;display:flex;align-items:center;flex-direction:column;gap:17px;text-align:center;max-width:310px;margin-inline:auto}
.designer-promise>i{display:grid;place-items:center;width:86px;height:86px;border-radius:50%;border:1px dashed #97cce5;box-shadow:0 0 0 9px #dff1fa;font-size:38px;color:var(--blue);margin-block:9px}
.designer-promise strong{font-size:20px;line-height:1.5;max-width:220px;letter-spacing:-.035em}
.designer-promise span{font-size:11px;line-height:1.9;color:var(--muted);max-width:220px}
.designer-section{padding-block:48px 64px}
.designer-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(24px,3vw,40px);box-shadow:0 12px 42px #11355406;scroll-margin-top:130px}
.designer-progress{list-style:none;padding:0 0 27px;margin:0 0 28px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.designer-progress li{font-size:12px;font-weight:600;color:var(--muted);display:flex;gap:10px;align-items:center;line-height:1.5}
.designer-progress li>span{border:1px solid var(--line);background:#f5f8fc;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:11px}
.designer-progress li[aria-current="step"]{color:var(--blue)}
.designer-progress li[aria-current="step"]>span{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 4px #e5f4fc}
.designer-progress li.is-complete>span{background:#e3f4fb;color:var(--blue);border-color:#beddeb}
.designer-step{min-width:0;margin:0 0 28px;padding:0;border:0}
.designer-step+.designer-step{border-top:1px solid var(--line);padding-top:30px}
.designer-form.is-stepped .designer-step{border:0;padding:0;margin-bottom:24px}
.designer-step>legend{float:none;width:100%;font-size:clamp(22px,2.3vw,28px);font-weight:650;line-height:1.35;letter-spacing:-.035em;margin-bottom:12px;color:var(--navy);scroll-margin-top:130px}
.step-description{font-size:13px;color:var(--muted);line-height:1.85;margin-bottom:24px}
.choice-group{min-width:0;padding:0;border:0;margin:0}
.choice-group>legend{float:none;width:auto;margin-bottom:12px}
.destination-choices,.interest-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.choice-card{display:block;position:relative;cursor:pointer;min-width:0}
.choice-card>input{position:absolute;width:1px;height:1px;opacity:0;left:12px;top:12px}
.choice-card>span{display:flex;align-items:center;gap:12px;min-height:66px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:15px 14px;transition:border-color .15s,background .15s}
.choice-card>span>i:first-child{color:var(--blue);font-size:20px;width:25px;text-align:center;flex:none}
.choice-card strong{font-size:12px;line-height:1.6;font-weight:550}
.choice-card .choice-check{display:grid;place-items:center;flex:none;margin-left:auto;border:1px solid #c4d5e1;border-radius:50%;width:20px;height:20px;font-size:10px;color:transparent;background:white}
.choice-card:hover>span{border-color:#7db8dc;background:#f7fbfe}
.choice-card>input:checked+span{background:#eaf6fd;border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.choice-card>input:checked+span .choice-check{color:#fff;background:var(--blue);border-color:var(--blue)}
.choice-card>input:focus-visible+span{outline:3px solid #1071b8;outline-offset:3px}
.designer-tip{display:flex;gap:12px;padding:18px 20px;margin-top:26px;background:#f2f8fc;border-radius:10px;font-size:13px;line-height:1.8;color:var(--muted)}
.designer-tip>i{font-size:20px;color:var(--blue);padding-top:3px}
.designer-controls{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:24px;margin-top:30px;flex-wrap:wrap}
.designer-controls .btn{font-size:13px;gap:10px}
.designer-controls [data-step-count]{font-size:11px;color:var(--muted);margin-left:auto}
.designer-submit{margin-top:20px}
.designer-aside{display:grid;gap:24px;min-width:0}
.designer-summary{border:1px solid #cce3f1;border-radius:18px;background:#eaf5fc;padding:28px}
.designer-summary h2{font-size:23px;margin:12px 0 24px}
.designer-summary dl{margin:0}
.designer-summary dl>div{padding:17px 0;border-top:1px solid #cce0ed}
.designer-summary dt{font-size:11px;display:flex;align-items:center;gap:10px;font-weight:650;color:var(--navy);margin-bottom:7px}
.designer-summary dt i{color:var(--blue);width:15px}
.designer-summary dd{font-size:13px;color:#425f74;line-height:1.8;margin:0;overflow-wrap:anywhere}
.designer-summary>p{font-size:11px;color:var(--muted);margin:10px 0 0}
.designer-next{background:white;border:1px solid var(--line);border-radius:18px;padding:28px}
.designer-next h2{font-size:22px;margin-bottom:25px}
.designer-next ol{list-style:none;padding:0;margin:0;display:grid;gap:24px}
.designer-next li{display:flex;gap:13px;align-items:flex-start}
.designer-next li>span{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:#edf6fc;color:var(--blue);font-size:12px;font-weight:650}
.designer-next h3{font-size:14px;line-height:1.6;margin:0 0 6px;letter-spacing:-.015em}
.designer-next p{font-size:12px;color:var(--muted);line-height:1.85;margin:0}
.designer-direct{padding:28px;background:var(--navy);border-radius:18px;color:#fff}
.designer-direct>i{font-size:28px;color:#83d8f8;margin-bottom:18px}
.designer-direct h2{font-size:21px;color:#fff}
.designer-direct p{font-size:13px;color:#ccdfec;line-height:1.8}
.designer-direct a{display:inline-flex;gap:14px;align-items:center;font-size:13px;font-weight:600;color:white;text-decoration:none;min-height:35px}
.designer-policy{justify-content:center;margin-top:30px}
@media(max-width:991.98px){.designer-promise{display:none}.designer-section{padding-block:28px 45px}.designer-hero{padding-bottom:34px}.designer-aside{grid-template-columns:repeat(2,minmax(0,1fr))}.designer-summary{grid-column:1/-1}.designer-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.designer-direct{align-self:start}}
@media(max-width:575.98px){.contact-form-card .card-body,.contact-dialog .contact-form-card .card-body{padding:26px 20px!important}.contact-dialog .contact-form-card .card-body{padding-top:40px!important}.contact-dialog{max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:14px}.contact-form .enquiry-submit{width:100%}.contact-design-card{padding:26px}.designer-card{padding:25px 20px;border-radius:16px}.designer-hero h1{font-size:2.6rem}.designer-progress{gap:8px}.designer-progress li{flex-direction:column;align-items:flex-start;font-size:11px;gap:9px}.destination-choices,.interest-choices{grid-template-columns:1fr;gap:9px}.choice-card>span{min-height:58px;padding:13px}.choice-card strong{font-size:13px}.designer-aside{grid-template-columns:1fr}.designer-summary dl{grid-template-columns:1fr;gap:0}.designer-summary,.designer-next,.designer-direct{padding:24px}.designer-controls{gap:8px}.designer-controls .btn{padding:11px 13px;font-size:12px}.designer-controls [data-step-count]{font-size:10px}.designer-step>legend{font-size:23px}}
@media(prefers-reduced-motion:reduce){.choice-card>span{transition:none}}
@media print{.designer-controls,.designer-submit,.contact-design-card{display:none}.designer-form .designer-step[hidden]{display:block!important}.designer-aside{display:none}}
