/* Shared destination controls and holiday search; 30px corners match the site. */
.cth-holiday-search .cth-search__main{grid-template-columns:minmax(190px,1.6fr) minmax(155px,1.05fr) minmax(110px,.8fr) minmax(125px,.85fr) auto;align-items:start;gap:16px}
.cth-holiday-search .cth-search__main>label{min-width:0;grid-template-columns:minmax(0,1fr)}
.cth-holiday-search .cth-search__main :is(input,select){box-sizing:border-box;min-width:0;max-width:100%}
/* iOS date inputs otherwise keep their native minimum size inside grid tracks. */
.cth-holiday-search input[type="date"]{display:block;-webkit-appearance:none;appearance:none;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:52px;min-height:52px;padding:12px 16px;line-height:26px;text-align:left}
.cth-holiday-search input[type="date"]::-webkit-date-and-time-value{min-height:26px;text-align:left}
.cth-holiday-search input[type="date"]::-webkit-datetime-edit{padding:0}
.cth-search-destination{min-width:0}
.cth-search-field-label{display:block;font-size:13px;font-weight:700;margin-bottom:9px}
.cth-holiday-search .cth-search__main>.cth-button{margin-top:28px}
.cth-holiday-search .cth-search__main>label>small{font-size:11px;font-weight:400;color:#49615f;line-height:1.4}
.cth-destination-open{display:flex;gap:10px;align-items:center;width:100%;height:52px;border:1px solid #d7e0d8;border-radius:30px;padding:12px 17px;background:#f6f7f1;color:#123f46;text-align:left;font:inherit;font-size:14px;cursor:pointer}
.cth-destination-open svg{flex:none}.cth-destination-open [data-destination-summary]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.cth-destination-open>span:last-child{flex:none}
.cth-destination-dialog{box-sizing:border-box;width:min(600px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:30px;background:#fffdf7;color:#123f46;box-shadow:0 24px 90px #092e4650;overflow:auto}
.cth-destination-dialog::backdrop{background:rgba(10,37,42,.55)}
.cth-destination-panel{padding:28px;min-width:0}.cth-destination-heading{display:flex;align-items:center;gap:20px;justify-content:space-between;border-bottom:1px solid #dbe4dc;padding-bottom:22px;margin-bottom:24px}
.cth-destination-heading h2{font-size:27px;margin:0;letter-spacing:-.03em}
.cth-destination-close{flex:none;width:42px;height:42px;border:0;border-radius:50%;background:#e9f0e8;color:#123f46;font-size:28px;line-height:1;cursor:pointer}
.cth-destination-fields{display:grid;gap:20px;min-width:0}
.cth-destination-fields label{display:grid;gap:8px;min-width:0;font-size:14px;font-weight:600}
.cth-destination-fields :is(input,select){box-sizing:border-box;width:100%;min-width:0;height:54px;border:1px solid #b9ccca;border-radius:30px;padding:12px 15px;background:#fff;color:#123f46;font:inherit;font-size:16px;line-height:1.4}
.cth-destination-panel>.cth-small{font-size:12px;line-height:1.6;color:#49615f;margin:20px 0}
.cth-destination-panel>.cth-button{width:100%}
.cth-destination-editor{box-sizing:border-box;border:1px solid #dce5dd;border-radius:24px;padding:22px;margin:12px 0;grid-column:1/-1;min-width:0}
.cth-destination-editor legend{font-size:17px;font-weight:700;padding:0 8px}
.cth-destination-editor>p{font-size:13px;line-height:1.6;margin:0 0 18px}
.cth-destination-editor .cth-destination-fields{grid-template-columns:1fr 1fr}.cth-destination-editor [data-destination-custom]{grid-column:1/-1}
.cth-search-date-error{padding:14px 18px;background:#fff0e9;color:#8a3025;border-radius:15px;font-size:14px;margin:18px 0 0}
.cth-search-stay{font-size:12px;line-height:1.6;color:#49615f;margin:16px 0 0}
.cth-holiday-search [hidden],.cth-destination-editor [hidden]{display:none!important}
.cth-destination-dialog :is(input,select,button):focus-visible,.cth-destination-editor :is(input,select):focus-visible{outline:3px solid #17675e;outline-offset:3px}
@media(max-width:1100px){.cth-holiday-search .cth-search__main{grid-template-columns:repeat(4,minmax(0,1fr))}.cth-search-destination{grid-column:1/-1}.cth-holiday-search .cth-search__main>.cth-button{margin-top:28px}}
@media(max-width:680px){.cth-holiday-search .cth-search__main{grid-template-columns:repeat(2,minmax(0,1fr))}.cth-holiday-search .cth-search__main>label:nth-child(-n+2){grid-column:auto}.cth-holiday-search .cth-search__main>label:nth-of-type(3){grid-column:1/-1}.cth-holiday-search .cth-search__main :is(input,select){font-size:16px}.cth-holiday-search .cth-search__main>.cth-button{grid-column:1/-1;margin-top:0}.cth-destination-editor .cth-destination-fields{grid-template-columns:1fr}.cth-destination-panel{padding:23px}.cth-destination-heading h2{font-size:24px}.cth-destination-dialog{max-height:calc(100dvh - 24px)}.cth-destination-editor{padding:16px}}
@media(max-width:480px){.cth-holiday-search .cth-search__main{grid-template-columns:minmax(0,1fr)}.cth-holiday-search .cth-search__main>label{grid-column:1/-1}}
.cth-destination-editor .cth-town-field{grid-column:1/-1}.cth-town-field small{display:block;font-size:12px;font-weight:400;line-height:1.65;color:#345257}

.cth-destination-editor .cth-park-field{grid-column:1/-1}

/* Branded town picker; the native select remains available without dialog support. */
.cth-destination-fields .cth-town-picker-field{display:grid;gap:10px;min-width:0}
.cth-town-picker-open{display:flex;align-items:center;gap:15px;width:100%;min-height:78px;padding:14px 20px;border:1px solid #9bb9af;border-radius:30px;background:#f6faf4;color:#123f46;cursor:pointer;text-align:left;font:inherit;box-shadow:0 3px 10px #123f4605}
.cth-town-picker-open:hover{background:#edf5e9;border-color:#417d70}
.cth-town-picker-pin{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:#e0eddd;color:#276a5e}
.cth-town-picker-value{flex:1;min-width:0}.cth-town-picker-value strong{display:block;font-size:16px;line-height:1.45;font-weight:700}.cth-town-picker-value small{margin-top:3px;font-size:12px;line-height:1.5;color:#345257}
.cth-town-picker-chevron{flex:none;font-size:25px;line-height:1;color:#276a5e}
.cth-town-picker-dialog{box-sizing:border-box;width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid #d0dfd3;border-radius:30px;background:#fffdf7;color:#123f46;box-shadow:0 24px 90px #092e4650;overflow:hidden;font:inherit}
.cth-town-picker-dialog[open]{display:flex;flex-direction:column}
.cth-town-picker-dialog::backdrop{background:rgba(10,37,42,.6)}
.cth-town-picker-dialog *{box-sizing:border-box}
.cth-town-picker-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:25px 28px 20px;background:#edf4e9;flex:none}
.cth-town-picker-header p{font-size:10px;font-weight:750;letter-spacing:.13em;line-height:1.6;margin:0 0 5px;color:#36645a}
.cth-town-picker-header h2{font-size:28px;line-height:1.2;letter-spacing:-.02em;margin:0;color:#123f46}
.cth-town-picker-dialog .cth-town-picker-close{display:grid;place-items:center;flex:none;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:#123f46;cursor:pointer;font:inherit;font-size:28px;line-height:1;padding:0}
.cth-town-picker-search-wrap{padding:20px 28px 10px;flex:none}
.cth-town-picker-dialog .cth-town-picker-search-wrap label{display:block;font-size:13px;font-weight:650;line-height:1.6;color:#234f53}
.cth-town-picker-dialog input[data-town-picker-search]{display:block;box-sizing:border-box;width:100%;min-width:0;height:52px;margin:9px 0 0;padding:12px 18px;border:1px solid #9bb9af;border-radius:30px;background:#fff;color:#123f46;font:inherit;font-size:16px;line-height:1.5}
.cth-town-picker-dialog input::placeholder{color:#516b67;opacity:1}
.cth-town-picker-dialog .cth-town-picker-count{margin:12px 0 0;font-size:12px;line-height:1.5;color:#345257}
.cth-town-picker-list{overflow-y:auto;overscroll-behavior:contain;min-height:0;max-height:340px;padding:4px 20px 14px;scroll-padding:6px;flex:1 1 auto}
.cth-town-picker-dialog [data-town-picker-option]{display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:3px 12px;align-items:center;width:100%;margin:6px 0;padding:14px 18px;border:1px solid #e0e8dc;border-radius:22px;background:#fff;color:#123f46;cursor:pointer;text-align:left;font:inherit}
.cth-town-picker-dialog [data-town-picker-option] strong{font-size:16px;font-weight:700;line-height:1.4}.cth-town-picker-dialog [data-town-picker-option] small{font-size:12px;font-weight:400;line-height:1.5;color:#42635e}
.cth-town-picker-dialog [data-town-picker-option] span{grid-column:2;grid-row:1/3;text-align:center;font-size:20px;color:#317467}
.cth-town-picker-dialog [data-town-picker-option]:is(:hover,.is-active,[aria-selected="true"]){border-color:#6f9d83;background:#edf5e8}
.cth-town-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;flex:none;padding:16px 28px;border-top:1px solid #dbe5d7;background:#f6f8ef}
.cth-town-picker-footer p{font-size:13px;line-height:1.5;margin:0;color:#345257}
.cth-town-picker-dialog [data-town-picker-other]{display:flex;gap:25px;align-items:center;border:0;border-radius:30px;padding:12px 22px;background:#123f46;color:#fff;cursor:pointer;font:inherit;font-size:14px;font-weight:700}
.cth-town-picker-field>.cth-town-picker-error{margin:0;font-size:13px;color:#973d2c}
.cth-town-picker-open:focus-visible,.cth-town-picker-dialog :is(input,button):focus-visible{outline:3px solid #17675e;outline-offset:3px}
@media(max-width:580px){.cth-town-picker-open{padding:13px 16px;gap:11px}.cth-town-picker-pin{width:34px;height:34px}.cth-town-picker-value strong{font-size:14px}.cth-town-picker-dialog{max-height:calc(100dvh - 24px)}.cth-town-picker-header{padding:20px}.cth-town-picker-header h2{font-size:24px}.cth-town-picker-search-wrap{padding:16px 20px 8px}.cth-town-picker-list{padding:3px 13px 12px}.cth-town-picker-footer{padding:14px 20px}.cth-town-picker-footer p{font-size:12px}}
