.collection-hero{background:#faeddb;color:#112f51;padding:3rem 0}.collection-hero h1{font-size:clamp(2.2rem,5vw,3.7rem);line-height:1.08;max-width:850px;margin-bottom:1rem}.collection-hero p{max-width:780px}.collection-eyebrow{font-weight:700;letter-spacing:.08em;text-transform:uppercase}.collection-page{padding-top:2rem;padding-bottom:3rem;color:#173453}.collection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1.2rem;margin:1.5rem 0}.collection-card{border:1px solid #dce1e5;border-radius:12px;overflow:hidden;background:#fff}.collection-card>div{padding:1.3rem}.collection-card img{display:block;width:100%;height:220px;object-fit:cover}.collection-card h2{font-size:1.35rem;line-height:1.2}.collection-card input[type=checkbox]{width:1.1em;height:1.1em;margin-right:.4rem}.collection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin:1rem 0}.collection-button,.collection-secondary{display:inline-flex;gap:.5rem;align-items:center;justify-content:center;border-radius:7px;padding:.65rem 1rem;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}.collection-button{background:#fc7650;border:1px solid #fc7650;color:#102c4c}.collection-secondary{background:#fff;border:1px solid #b9c5d0;color:#173453}.collection-secondary[aria-pressed=true]{background:#e1f2fc;border-color:#173453}.collection-date{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}.collection-date input{padding:.6rem;border:1px solid #b9c5d0;border-radius:6px}.collection-table{overflow:auto}.collection-table table{border-collapse:collapse;width:100%;min-width:650px}.collection-table th,.collection-table td{padding:1rem;border:1px solid #dce1e5;vertical-align:top;min-width:190px;max-width:320px}.collection-table th{background:#fcf6ec}.collection-table img{display:block;object-fit:cover;max-width:100%;margin-bottom:.7rem}.collection-table caption{caption-side:top}.collection-table td a{display:block;margin-bottom:.5rem}.collection-card .ht-icon{font-size:2rem}.collection-button:focus-visible,.collection-secondary:focus-visible{outline:3px solid #112f51;outline-offset:3px}@media print{.ht-site-header,.ht-site-footer,.collection-actions,.collection-date,button{display:none!important}.collection-card{break-inside:avoid}.collection-grid{display:block}.collection-card{margin:1rem 0}.collection-card img{height:150px;width:auto}}
.collection-card a{overflow-wrap:anywhere}.collection-card textarea,.account-panel textarea{max-width:100%}

.visitor-tools{min-width:0}.visitor-tools a{overflow-wrap:anywhere}.visitor-tools form{margin:1.2rem 0}.visitor-tools label{display:block;margin:.8rem 0 .4rem;font-weight:600}.visitor-tools :is(input:not([type=checkbox]):not([type=hidden]),textarea,select){display:block;width:100%;max-width:100%;padding:.7rem;border:1px solid #b9c5d0;border-radius:6px;background:#fff;color:#173453;font:inherit;box-sizing:border-box}.visitor-tools textarea{resize:vertical}.visitor-tools button{max-width:100%;white-space:normal;margin-top:.8rem}.visitor-tools :is(input,textarea,select):focus-visible{outline:3px solid #112f51;outline-offset:2px}.visitor-tools .collection-card{margin-bottom:1rem}.visitor-tools .collection-date{display:grid;grid-template-columns:minmax(0,1fr);width:100%}
@media(min-width:768px){.visitor-tools .collection-date{grid-template-columns:max-content minmax(0,1fr);align-items:center}}

.collection-page a,.collection-hero a{color:#173453;text-underline-offset:3px}.collection-image-note{font-size:.8rem;font-weight:400;color:#526279}.collection-card img[src$="coastal-hut.svg"],.collection-table img[src$="coastal-hut.svg"]{object-fit:contain;background:#fcf6ec;padding:1rem}

/* Favourites use the existing Tabler CDN. Scope the filled font to this control
   so its glyph names cannot replace outline icons elsewhere on the site. */
@font-face {
    font-family: "ht-tabler-filled";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/dist/fonts/tabler-icons-filled.core.woff2") format("woff2");
    unicode-range: U+F67C;
}
:is(.search-hut-card, .town-hut-card, .day-hut-card, .saved-card) { position: relative; }
.ht-site .hut-save-button {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
    width: 44px; height: 44px; padding: 0; border: 1px solid #d3dce4; border-radius: 50%;
    background: #fff; color: #163553; box-shadow: 0 2px 8px #112f5117; cursor: pointer;
}
.ht-site .hut-save-button.hut-save-overlay { position: absolute; top: 12px; right: 12px; z-index: 2; }
.ht-site .hut-save-button .ht-icon { width: 24px; height: 24px; font-size: 24px; }
.ht-site .hut-save-button[aria-pressed="true"] { background: #fff1eb; color: #ba402b; border-color: #f2b6a7; }
.ht-site .hut-save-button[aria-pressed="true"] .ht-icon::before { font-family: "ht-tabler-filled" !important; content: "\f67c"; }
.ht-site .hut-save-button:hover { border-color: #173453; background: #fff5ee; }
.ht-site .hut-save-button:focus-visible { outline: 3px solid #185f8b; outline-offset: 3px; }
.ht-site .hut-save-button:disabled { cursor: wait; opacity: .6; }
.ht-site .hut-save-button[hidden], .ht-saved [hidden] { display: none !important; }
.ht-search .search-card-booking { padding-top: 45px; }
.saved-toast { position: fixed; z-index: 1050; bottom: 20px; left: 50%; transform: translateX(-50%); max-width: calc(100vw - 32px); width: max-content; margin: 0; padding: 12px 20px; background: #163553; color: #fff; border-radius: 9px; box-shadow: 0 4px 20px #122c4d26; font-size: 14px; pointer-events: none; }
.saved-toast:empty { display: none; }
.saved-hero { padding: 25px 0 34px; }
.saved-hero h1 { margin: 18px 0 12px; font-weight: 750; letter-spacing: -.04em; }
.saved-hero p { margin: 0; font-size: 18px; }
.saved-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; font-size: 13px; }
.ht-saved :is(.collection-page, .collection-hero > .container) { max-width: 1320px; padding-inline: 32px; }
@media (max-width: 575.98px) { .ht-saved :is(.collection-page, .collection-hero > .container) { padding-inline: 20px; } }
.saved-storage-note { display: flex; gap: 10px; align-items: flex-start; color: #526279; font-size: 14px; }
.saved-storage-note .ht-icon { font-size: 21px; }
.saved-import { display: flex; align-items: center; flex-wrap: wrap; gap: 15px; padding: 15px 20px; border-radius: 9px; background: #e7f4fc; }
.saved-import p { flex: 1 1 260px; margin: 0; }
.saved-status:not(:empty) { padding: 12px 16px; border-radius: 8px; background: #e7f4fc; }
.saved-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-top: 24px; }
.saved-toolbar h2 { margin: 0; font-size: 22px; }
.saved-toolbar .collection-actions { margin: 0; gap: 10px; }
.saved-toolbar .ht-icon { font-size: 20px; }
.saved-toolbar .saved-browse-link { margin-right: 12px; }
.saved-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.saved-card { display: flex; flex-direction: column; }
.saved-card-photo { display: block; }
.saved-card-photo img { height: auto; aspect-ratio: 3 / 2; }
.saved-card-body { display: flex; flex-direction: column; flex: 1; }
.saved-card-body h2 { margin: 0 0 9px; font-weight: 700; letter-spacing: -.025em; }
.saved-card-body h2 a { text-decoration: none; }
.saved-card-body h2 a:hover { text-decoration: underline; }
.saved-card .saved-location { color: #526279; font-size: 14px; margin: 0 0 10px; }
.saved-booking-route { font-size: 13px; color: #526279; }
.saved-card-actions { display: grid; gap: 12px; margin-top: auto; padding-top: 14px; }
.saved-card-actions > a:last-child { font-size: 14px; text-align: center; }
.saved-visit-date { margin: 14px 0 0; font-size: 13px; }
.saved-compare-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 18px; margin-top: 18px; border: 1px solid #c9deeb; border-radius: 9px; background: #eff8fd; }
.saved-compare-tools p { flex: 1 1 200px; margin: 0; }
.saved-compare-choice { display: flex; align-items: center; gap: 8px; padding: 10px 0; font-size: 14px; }
.saved-comparing .saved-card:has(input:checked) { border-color: #1c6891; box-shadow: 0 0 0 2px #1c6891; }
.ht-saved button:disabled { opacity: .55; cursor: not-allowed; }
.saved-empty { text-align: center; margin: 25px 0; padding: 50px 20px; border-radius: 14px; background: #fbf6ef; }
.saved-empty > .ht-icon { display: inline-block; margin-bottom: 18px; font-size: 48px; color: #d15b40; }
.saved-empty h2 { font-size: clamp(25px, 3vw, 34px); }
.saved-empty p { max-width: 530px; margin: 12px auto 24px; color: #526279; }
.saved-footnote { color: #526279; font-size: 13px; }
@media (max-width: 1199.98px) and (min-width: 768px) {
    .ht-search .search-card-copy { padding-top: 64px; }
    .ht-search .search-card-booking { padding-top: 12px; }
}
@media (max-width: 991.98px) { .saved-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
    .ht-search .search-card-booking { padding-top: 14px; }
    .saved-hero { padding: 20px 0 28px; }
    .saved-hero p { font-size: 16px; }
    .saved-toolbar { align-items: flex-start; }
    .saved-toolbar .collection-actions { width: 100%; }
}
@media (max-width: 575.98px) { .saved-grid { grid-template-columns: minmax(0, 1fr); } }
@media print { .hut-save-button, .saved-toast { display: none !important; } }

/* Space review cards independently of their page wrapper. */
.guest-reviews .collection-card { margin-block: 1rem; }
.collection-page :is(p, li, .collection-card) { overflow-wrap: anywhere; }
.collection-date > * { min-width: 0; max-width: 100%; }
.collection-actions a { color: var(--ht-navy); text-underline-offset: 3px; }
