.destinations-page{background:#f8fafb;color:#162333;padding-bottom:70px}.destination-container{max-width:1240px;margin:auto;padding:0 24px}.destination-intro{background:#fff;border-bottom:1px solid #e8edf0;padding:30px 0 42px}.destination-breadcrumb{display:flex;gap:12px;align-items:center;font-size:13px;color:#718096;margin-bottom:25px;flex-wrap:wrap}.destination-breadcrumb a:hover{color:#00a82b}.destination-intro__row{display:flex;gap:30px;align-items:center;justify-content:space-between}.destination-eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:700;color:#079b32}.destinations-page h1{font-size:38px;font-weight:750;line-height:1.2;margin:10px 0}.destinations-page p{font-size:14px;line-height:1.75;color:#657184}.destination-search{display:flex;gap:8px;padding:6px;border:1px solid #e2e7ec;border-radius:30px;background:white;min-width:350px;box-shadow:0 3px 10px #132b3210}.destination-search input{min-width:0;flex:1;border:0;border-radius:25px;padding:8px 14px;background:transparent}.destination-button{display:inline-flex;align-items:center;justify-content:center;gap:15px;border:1px solid #00c832;background:#00cf35;border-radius:13px;padding:12px 20px;color:#fff;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer}.destination-button:hover{background:#00b92e;color:white}.destination-button--light{background:#f1fcf4;color:#079b32;border-color:#b2e9bd}.destination-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;padding-top:32px}.destination-panel{background:#fff;border:1px solid #e2e7ec;border-radius:22px;padding:24px;box-shadow:0 1px 2px #17283108;margin-bottom:20px;min-width:0}.destination-filters fieldset{padding-top:10px}.destination-filters legend{font-size:15px;font-weight:700;padding:0 10px;color:#168539}.destination-filters label{display:flex;align-items:center;gap:12px;font-size:14px;color:#58677b;padding:12px 0;cursor:pointer}.destinations-page input[type=radio]{accent-color:#00c832}.destination-filters>.destination-button{width:100%}.destination-reset{display:block;text-align:center;border:1px dashed #d6dee4;border-radius:20px;padding:15px;margin:16px 0;color:#657184;font-size:13px}.destination-tip{padding:24px;border-radius:20px;background:#eefaef;margin-top:20px}.destination-tip strong{font-size:16px}.destination-tip p{margin:12px 0}.destination-tip a{color:#087f30;font-size:13px;font-weight:650}.destination-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;flex-wrap:wrap}.destination-toolbar form{display:flex;gap:8px;align-items:center;font-size:12px;color:#657184}.destination-toolbar select,.destination-toolbar button{background:white;border:1px solid #e2e7ec;border-radius:20px;padding:9px}.destination-toolbar button{color:#087f30}.destination-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.destination-card{border:1px solid #e2e7ec;border-radius:23px;overflow:hidden;background:#fff;box-shadow:0 2px 3px #17283106;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.destination-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #164b2214;border-color:#b4e7bf}.destination-card__image{display:block;position:relative;aspect-ratio:1.6;overflow:hidden}.destination-card__image img{width:100%;height:100%;object-fit:cover}.destination-card__image>span{position:absolute;bottom:12px;left:12px;background:#f2fff5;color:#079332;border-radius:18px;padding:4px 10px;font-size:10px;font-weight:700}.destination-card__body{padding:20px;display:flex;flex-direction:column;flex:1;gap:12px}.destination-card h2{font-size:17px;font-weight:700;line-height:1.4}.destination-card__body>p:not(.destination-region){display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.destination-region{display:flex;align-items:center;gap:6px;font-size:12px!important}.destination-region .material-symbols-outlined{font-size:18px;color:#00c832}.destination-card .destination-button{margin:auto auto 0}.destination-empty{grid-column:1/-1;text-align:center;padding:70px 20px;background:white;border-radius:22px}.destination-empty>.material-symbols-outlined{font-size:48px;color:#00bc32}.destination-empty h2{font-size:22px;font-weight:700;margin:15px}.destination-empty p{margin-bottom:20px}.destination-pagination{margin-top:30px}.destination-detail{padding-top:25px}.destination-gallery{height:430px;border-radius:24px;overflow:hidden;position:relative;margin-bottom:35px}.destination-gallery>img{height:100%;width:100%;object-fit:cover}.destination-gallery>div{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:35px;background:linear-gradient(transparent 35%,#06170dcc)}.destination-gallery h1,.destination-gallery p{color:white}.destination-gallery .destination-eyebrow{color:#a4ffbc}.destination-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:30px}.destinations-page h2{font-size:22px;font-weight:700}.destination-summary>p{margin-top:18px}.destination-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.destination-tabs{display:flex;gap:24px;background:white;border:1px solid #e2e7ec;border-radius:16px;padding:18px;margin:25px 0;overflow:auto;font-size:13px;white-space:nowrap}.destination-tabs a:hover{color:#00a82b}.destination-copy{padding:28px;scroll-margin-top:110px}.destination-copy h2{border-left:4px solid #00cf35;padding-left:12px;margin-bottom:22px}.destination-copy h3{font-size:17px;font-weight:650;margin-bottom:12px}.destination-copy p{margin:12px 0}.destination-experiences{display:grid;gap:15px}.destination-experiences article{display:flex;gap:12px;padding:18px;background:#f5fbf6;border-radius:14px;align-items:center}.destination-experiences .material-symbols-outlined{color:#00b832}.destination-experiences h3{margin:0;font-size:15px}.destination-copy details{border:1px solid #e2e7ec;padding:18px;border-radius:12px;margin-bottom:12px}.destination-copy summary{cursor:pointer;font-size:14px;font-weight:650}.destination-consultation{border-color:#b4edbf;scroll-margin-top:110px}.destination-consultation h2{margin:12px 0}.destination-consultation form{display:grid;gap:18px;margin-top:20px}.destination-consultation label{display:grid;gap:8px;font-size:13px;font-weight:650}.destination-consultation input{border:1px solid #e2e7ec;border-radius:10px;background:#f8fafb;width:100%;padding:12px;font:inherit}.destination-consultation small{color:#718096;line-height:1.6;font-size:12px}.destination-related{margin-top:45px;border-top:1px solid #e2e7ec;padding-top:32px;scroll-margin-top:110px}.destination-related>h2{margin:8px 0}.destination-related>p{margin-bottom:25px}.destination-card h2{font-size:17px}.destinations-page a:focus-visible,.destinations-page button:focus-visible,.destinations-page input:focus-visible,.destinations-page select:focus-visible{outline:2px solid #079b32;outline-offset:3px}@media(max-width:1050px){.destination-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.destination-intro__row{align-items:stretch;flex-direction:column}.destination-detail-layout{grid-template-columns:minmax(0,1fr) 300px}}@media(max-width:700px){.destination-container{padding-left:16px;padding-right:16px}.destinations-page h1{font-size:29px}.destination-layout,.destination-detail-layout{grid-template-columns:1fr;gap:24px}.destination-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.destination-filters fieldset{margin-bottom:5px;padding:12px}.destination-filters legend{font-size:13px}.destination-filters label{font-size:12px;padding:9px 0}.destination-reset{margin:0}.destination-layout>aside>.destination-tip{display:none}.destination-grid{gap:14px}.destination-card__body{padding:14px}.destination-card h2{font-size:16px}.destination-card .destination-button{padding:10px;font-size:12px;gap:8px}.destination-search{min-width:0}.destination-gallery{height:300px;margin-bottom:22px}.destination-gallery>div{padding:24px}.destination-toolbar form{flex-wrap:wrap}.destination-summary,.destination-copy{padding:22px}.destination-related .destination-grid{grid-template-columns:1fr}.destination-detail-layout>aside{grid-row:2}}@media(max-width:420px){.destination-grid{grid-template-columns:1fr}.destination-card__image{aspect-ratio:1.8}}

/* Destination listing: dimensions and visual hierarchy from the reference. */
.destinations-page { --destination-accent: #00ce35; --destination-border: #e5e7eb; }
.destinations-page *, .destinations-page *::before, .destinations-page *::after { box-sizing: border-box; }
.destination-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.destinations-page--index { background: #f8fafc; min-height: 75vh; padding-bottom: 64px; }
.destination-container { max-width: 1264px; }
.destinations-page--index .destination-intro { padding: 48px 0; background: linear-gradient(110deg,#fff,#fff 75%,#fbfefc); }
.destinations-page--index .destination-breadcrumb { margin-bottom: 22px; color: #94a3b8; }
.destination-breadcrumb > span:last-child { color: #142033; font-weight: 600; }
.destination-intro__row { gap: 28px; align-items: flex-end; }
.destination-intro__row > div { flex: 1; min-width: 0; }
.destinations-page--index h1 { font-size: 40px; line-height: 1.2; letter-spacing: -1.1px; margin: 0 0 7px; color: #101827; }
.destination-intro__row p { margin: 0; font-size: 14px; line-height: 1.7; }
.destination-search { flex: 0 1 448px; min-width: 300px; height: 56px; align-items: center; padding: 6px; gap: 6px; border: 1px solid var(--destination-border); box-shadow: 0 2px 4px #10182708,0 7px 16px #10182704; }
.destination-search > .material-symbols-outlined { margin-left: 12px; color: #94a3b8; font-size: 22px; flex-shrink: 0; }
.destination-search input { padding: 8px 0; font: inherit; font-size: 14px; box-shadow: none; outline-offset: 0; }
.destination-search input::placeholder { color: #94a3b8; opacity: 1; }
.destination-search .destination-button { height: 42px; min-width: 66px; padding: 0 18px; border-radius: 18px; box-shadow: 0 3px 6px #00c83230; font-size: 14px; }
.destination-layout { grid-template-columns: 288px minmax(0,1fr); gap: 40px; padding-top: 32px; align-items: start; }
.destination-layout > section { min-width: 0; }
.destination-filters { display: grid; gap: 20px; }
.destination-filter { border: 1px solid var(--destination-border); border-radius: 24px; background: white; overflow: hidden; box-shadow: 0 1px 2px #1018270a; }
.destination-filter summary { display: flex; align-items: center; gap: 16px; min-height: 64px; padding: 18px 24px; list-style: none; cursor: pointer; font-size: 14px; font-weight: 700; color: #101827; background: linear-gradient(90deg,#edfcf1,#fff); }
.destination-filter summary::-webkit-details-marker { display: none; }
.destination-filter summary > .material-symbols-outlined { font-size: 20px; color: var(--destination-accent); }
.destination-filter summary > .destination-filter__chevron { margin-left: auto; color: #94a3b8; transition: transform .15s; }
.destination-filter:not([open]) .destination-filter__chevron { transform: rotate(-90deg); }
.destination-filter fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.destination-filter__options { padding: 12px 18px 16px; max-height: 390px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #cbd5e1 transparent; }
.destination-filters .destination-filter label { min-height: 38px; padding: 8px 0; gap: 12px; font-size: 14px; line-height: 1.5; color: #52627b; }
.destination-filter input:is([type=radio], [type=checkbox]) { appearance: none; width: 16px; height: 16px; border: 1px solid #cbd5e1; border-radius: 50%; flex: 0 0 16px; margin: 0; background: #fff; box-shadow: none; cursor: pointer; }
.destination-filter input:is([type=radio], [type=checkbox]):checked { border: 5px solid var(--destination-accent); }
.destination-filter label:has(input:checked) { color: #087d2b; font-weight: 600; }
.destination-filters > .destination-button { min-height: 44px; border-radius: 15px; }
.destination-reset { margin: 0; min-height: 54px; border: 2px dashed #e2e7ec; border-radius: 24px; font-size: 14px; }
.destination-reset:hover { border-color: #00ce35; color: #079b32; }
.destination-layout > aside > .destination-tip { display: none; }
.destination-toolbar { min-height: 42px; margin-bottom: 24px; gap: 12px; }
.destination-toolbar .destination-result-count { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; margin: 0; background: white; border: 1px solid var(--destination-border); border-radius: 24px; box-shadow: 0 1px 2px #10182708; font-size: 14px; line-height: 1.5; }
.destination-result-count > .material-symbols-outlined { color: var(--destination-accent); font-size: 20px; }
.destination-result-count strong { color: #172033; }
.destination-toolbar form { gap: 8px; }
.destination-toolbar form > label { font-size: 10px; text-transform: uppercase; color: #94a3b8; letter-spacing: .3px; }
.destination-toolbar select { width: 164px; padding: 9px 28px 9px 16px; font-size: 13px; font-weight: 600; color: #00b72f; border-radius: 24px; border-color: var(--destination-border); }
.destination-toolbar button { color: #52627b; font-size: 12px; padding: 10px 12px; cursor: pointer; }
.destination-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; align-items: stretch; }
.destination-card { border-radius: 24px; border-color: var(--destination-border); box-shadow: 0 1px 2px #1018270a; }
.destination-card__image { aspect-ratio: 280 / 174; flex-shrink: 0; }
.destination-card__image img { display: block; transition: transform .3s ease; }
.destination-card:hover .destination-card__image img { transform: scale(1.035); }
.destination-card__image > .destination-card__category { display: inline-flex; align-items: center; gap: 4px; max-width: calc(100% - 24px); left: 12px; bottom: 12px; padding: 4px 10px; border-radius: 20px; background: #f3fff5; font-size: 10px; line-height: 1.4; font-weight: 750; text-transform: uppercase; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.destination-card__category .material-symbols-outlined { font-size: 13px; }
.destination-card__image > .destination-card__featured { position: absolute; inset: 12px 12px auto auto; display: inline-flex; align-items: center; gap: 4px; background: #ffd348; color: #49320a; padding: 4px 10px; border-radius: 20px; font-size: 10px; line-height: 1.5; text-transform: uppercase; font-weight: 700; }
.destination-card__featured .material-symbols-outlined { font-size: 14px; }
.destination-card__body { padding: 20px; gap: 12px; min-height: 242px; }
.destinations-page .destination-card h2 { font-size: 16px; font-weight: 700; line-height: 1.5; margin: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.destination-card h2 a:hover { color: #00be32; }
.destination-card .destination-region { margin: 0; align-items: center; gap: 6px; line-height: 1.4; color: #7a8597; min-height: 34px; }
.destination-card .destination-region > .material-symbols-outlined { font-size: 16px; flex-shrink: 0; }
.destination-card .destination-region > span:last-child { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.destination-card__body > .destination-card__description { -webkit-line-clamp: 2; margin: 0; line-height: 1.7; color: #5d687b; }
.destination-card__footer { border-top: 1px solid #f0f2f5; padding-top: 16px; margin-top: auto; text-align: center; }
.destination-card .destination-button { min-height: 46px; padding: 12px 16px; border-radius: 17px; border-color: #a4edb5; background: #f3fcf5; color: #00bd31; text-transform: uppercase; font-size: 12px; line-height: 1.5; gap: 10px; }
.destination-card .destination-button > .material-symbols-outlined { font-size: 17px; }
.destination-card .destination-button:hover { background: #00c832; color: white; }
.destination-copy > p { white-space: pre-line; }
@media (max-width: 1100px) {
    .destination-layout { grid-template-columns: 248px minmax(0,1fr); gap: 24px; }
    .destination-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
    .destination-intro__row { flex-direction: column; align-items: stretch; }
    .destination-search { flex: auto; width: 100%; max-width: 540px; }
}
@media (max-width: 700px) {
    .destinations-page--index .destination-intro { padding: 28px 0; }
    .destinations-page--index h1 { font-size: 30px; letter-spacing: -.6px; }
    .destination-intro__row { gap: 20px; }
    .destination-search { min-width: 0; max-width: none; height: 52px; }
    .destination-search .destination-button { height: 38px; }
    .destination-layout { grid-template-columns: minmax(0,1fr); gap: 24px; padding-top: 24px; }
    .destination-filters { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; align-items: stretch; }
    .destination-filter { border-radius: 18px; align-self: start; }
    .destination-filter summary { min-height: 52px; padding: 14px; gap: 8px; font-size: 13px; }
    .destination-filter__options { padding: 8px 12px 12px; max-height: 200px; }
    .destination-filters .destination-filter label { font-size: 12px; gap: 8px; }
    .destination-filters > .destination-button, .destination-reset { min-height: 46px; border-radius: 15px; padding: 11px 8px; font-size: 12px; }
    .destination-toolbar { align-items: flex-start; gap: 14px; margin-bottom: 20px; }
    .destination-toolbar form { flex-wrap: wrap; }
    .destination-toolbar .destination-result-count { font-size: 12px; padding: 8px 12px; }
    .destination-toolbar select { width: 150px; }
    .destination-grid { gap: 16px; }
    .destination-card { border-radius: 20px; }
    .destination-card__body { padding: 16px; min-height: 236px; }
    .destinations-page .destination-card h2 { font-size: 15px; }
    .destination-card__image > .destination-card__category { font-size: 9px; padding: 4px 7px; left: 8px; bottom: 8px; max-width: calc(100% - 16px); }
    .destination-card__image > .destination-card__featured { top: 8px; right: 8px; font-size: 9px; padding: 3px 7px; }
    .destination-card .destination-button { padding: 10px 12px; font-size: 11px; }
}
@media (max-width: 480px) {
    .destination-grid { grid-template-columns: minmax(0,1fr); }
    .destination-card__image { aspect-ratio: 1.8; }
    .destination-card__body { min-height: 220px; padding: 20px; }
    .destinations-page .destination-card h2 { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
    .destination-card, .destination-card__image img, .destination-filter__chevron { transition: none; }
    .destination-card:hover, .destination-card:hover .destination-card__image img { transform: none; }
}

/* Mobile filters use the same form as the desktop sidebar. */
.destination-mobile-refine, .destination-drawer-heading, .destination-search__arrow { display: none; }
.destination-filter-backdrop[hidden] { display: none; }
.destination-filter-actions { display: flex; flex-direction: column-reverse; gap: 16px; }
.destination-filter-actions .destination-button, .destination-filter-actions .destination-reset { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; }
.destination-filter-actions .material-symbols-outlined { font-size: 18px; }
.destination-sort-auto > button { display: none; }
@media (max-width: 700px) {
    .destinations-page--index .destination-intro { padding: 22px 0; }
    .destinations-page--index .destination-breadcrumb { margin-bottom: 14px; font-size: 12px; gap: 10px; }
    .destinations-page--index h1 { font-size: 25px; line-height: 1.35; letter-spacing: -.6px; margin-bottom: 8px; }
    .destination-intro__row p { font-size: 13px; line-height: 1.65; }
    .destination-search { height: 54px; border-radius: 15px; gap: 8px; padding: 4px; }
    .destination-search input { font-size: 12px; }
    .destination-search .destination-button { height: 44px; width: 44px; min-width: 44px; padding: 0; border-radius: 17px; }
    .destination-search__text { display: none; }
    .destination-search__arrow { display: inline-block; font-size: 22px; }
    .destination-layout { padding-top: 18px; display: block; }
    .destination-mobile-refine { display: none; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
    .destination-mobile-refine > span { font-size: 12px; color: #7d8b9e; }
    .destination-mobile-refine button { display: flex; align-items: center; justify-content: center; gap: 9px; padding: 12px 16px; min-height: 44px; border: 1px solid #e2e7ec; border-radius: 24px; background: white; box-shadow: 0 1px 4px #14203312; font-size: 13px; font-weight: 700; }
    .destination-mobile-refine button > .material-symbols-outlined { color: #00ce35; font-size: 19px; }
    .destination-filter-dot { width: 7px; height: 7px; border-radius: 50%; background: #00ce35; }
    .destination-toolbar { display: flex; flex-direction: column; gap: 10px; align-items: stretch; margin-bottom: 16px; }
    .destination-toolbar .destination-result-count { width: 100%; min-height: 34px; padding: 6px 12px; font-size: 12px; }
    .destination-toolbar .destination-result-count > .material-symbols-outlined { font-size: 19px; }
    .destination-toolbar form { min-height: 44px; flex-wrap: nowrap; gap: 8px; }
    .destination-toolbar select { width: 178px; min-height: 44px; background-color: white; font-size: 14px; }
    .destination-toolbar form > label { font-size: 10px; }
    .destinations-page--index .destination-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
    .destination-card__image { aspect-ratio: 1.8; }
    .destination-card__body { min-height: 220px; padding: 20px; }
    .destination-filters-ready .destination-mobile-refine { display: flex; }
    .destination-filters-ready .destination-filter-drawer { position: fixed; z-index: 10001; inset: 0 auto 0 0; width: min(80vw,360px); height: 100dvh; background: #fff; display: flex; flex-direction: column; transform: translateX(-100%); visibility: hidden; transition: transform .22s ease, visibility .22s; box-shadow: 6px 0 30px #10182715; }
    .destination-filters-ready .destination-filter-drawer.is-open { visibility: visible; transform: translateX(0); }
    .destination-filter-backdrop { position: fixed; z-index: 10000; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; background: #0008; backdrop-filter: blur(3px); cursor: pointer; }
    .destination-drawer-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 72px; padding: 16px; background: linear-gradient(90deg,#e8fced,#fff); flex-shrink: 0; }
    .destination-drawer-heading h2 { display: flex; gap: 10px; align-items: center; font-size: 16px; margin: 0; }
    .destination-drawer-heading h2 .material-symbols-outlined { color: #00ce35; font-size: 22px; }
    .destination-drawer-heading button { display: grid; place-items: center; background: #f2f4f7; border: 0; width: 40px; height: 40px; border-radius: 50%; color: #526071; }
    .destination-filter-drawer .destination-filters { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 16px 16px calc(90px + env(safe-area-inset-bottom,0px)); overflow-y: auto; overscroll-behavior: contain; flex: 1; min-height: 0; }
    .destination-filter-drawer .destination-filter { flex-shrink: 0; width: 100%; border-radius: 24px; background: #f9fafb; }
    .destination-filter-drawer .destination-filter summary { min-height: 44px; padding: 14px 12px; font-size: 12px; font-weight: 700; text-transform: uppercase; background: #f9fafb; border-bottom: 1px solid #e8ecf0; }
    .destination-filter-drawer .destination-filter summary > .material-symbols-outlined:first-child { display: none; }
    .destination-filter-drawer .destination-filter__options { max-height: 370px; padding: 10px 16px 12px; }
    .destination-filter-drawer .destination-filter label { font-size: 14px; font-weight: 400; gap: 12px; min-height: 36px; padding: 8px 0; }
    .destination-filter-drawer .destination-filter-actions { position: absolute; inset: auto 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; background: #fff; border-top: 1px solid #e8ecf0; padding: 16px 16px calc(16px + env(safe-area-inset-bottom,0px)); }
    .destination-filter-actions .destination-button, .destination-filter-actions .destination-reset { min-height: 40px; padding: 10px 6px; border-radius: 9px; margin: 0; font-size: 13px; }
    .destination-filter-actions .destination-reset { border: 1px solid #dfe4eb; background: white; color: #475569; }
}
@media (prefers-reduced-motion: reduce) {
    .destination-filters-ready .destination-filter-drawer { transition: none; }
}

.destination-experiences .destination-experience-card { align-items: flex-start; background: white; border: 1px solid #e5e7eb; border-radius: 20px; padding: 20px; }
.destination-experience-card > img { width: 108px; height: 108px; flex: 0 0 108px; object-fit: cover; border-radius: 15px; }
.destination-experience-card > div { min-width: 0; }
.destination-experience-card h3 { font-size: 16px; line-height: 1.5; margin: 0 0 6px; }
.destination-experience-label { display: inline-block; background: #e6fbed; color: #00ab30; border-radius: 6px; padding: 2px 7px; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.destination-experience-card p { margin: 8px 0 0; font-size: 14px; line-height: 1.6; white-space: pre-line; }
.destination-amenities { list-style: none; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; padding: 0; }
.destination-amenities li { display: flex; align-items: center; gap: 10px; color: #657184; font-size: 14px; }
.destination-amenities .material-symbols-outlined { color: #00c832; font-size: 22px; flex-shrink: 0; }
@media(max-width:700px) { .destination-amenities { grid-template-columns: repeat(2,minmax(0,1fr)); } .destination-experience-card > img { width: 80px; height: 80px; flex-basis: 80px; } }

/* Compact typography for the mobile destination listing. */
@media (max-width: 700px) {
    .destinations-page--index h1 { font-size: 22px; font-weight: 700; line-height: 1.35; letter-spacing: -.4px; }
    .destinations-page--index .destination-breadcrumb { font-size: 11px; }
    .destinations-page--index .destination-intro__row p { font-size: 12px; line-height: 1.65; }
    .destinations-page--index .destination-search input { font-size: 12px !important; line-height: 1.5; }
    .destinations-page--index .destination-mobile-refine > span { font-size: 11px; }
    .destinations-page--index .destination-mobile-refine button { font-size: 12px; }
    .destinations-page--index .destination-toolbar .destination-result-count { font-size: 11px; }
    .destinations-page--index .destination-toolbar form > label { font-size: 9px; }
    .destinations-page--index .destination-toolbar select { font-size: 12px !important; font-weight: 500; }
    .destinations-page--index .destination-card h2 { font-size: 15px; line-height: 1.45; }
    .destinations-page--index .destination-card .destination-region { font-size: 11px !important; }
    .destinations-page--index .destination-card__description { font-size: 12px; line-height: 1.65; }
    .destinations-page--index .destination-card .destination-button { font-size: 11px; }
    .destinations-page--index .destination-filter-drawer .destination-filter label { font-size: 12px; }
    .destinations-page--index .destination-filter-drawer .destination-filter summary { font-size: 11px; }
    .destinations-page--index .destination-drawer-heading h2 { font-size: 15px; }
}

/* Keep the search field inside its outer shell without an inner focus border. */
.destinations-page--index .destination-search input[type="search"],
.destinations-page--index .destination-search input[type="search"]:focus,
.destinations-page--index .destination-search input[type="search"]:focus-visible {
    border: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    --tw-ring-shadow: 0 0 #0000;
    --tw-ring-offset-shadow: 0 0 #0000;
}
.destination-search:has(input:focus-visible) {
    border-color: #9bdcac;
}

/* Listing cards: photo overlays, rating row and fixed-height content. */
.destination-card__visual { position: relative; flex-shrink: 0; }
.destination-card__visual .destination-card__image { display: block; aspect-ratio: 280 / 174; }
.destination-card__image > .destination-card__badges { position: absolute; inset: auto 10px 12px; display: flex; justify-content: space-between; align-items: center; gap: 6px; padding: 0; background: none; border-radius: 0; }
.destination-card__badges .destination-card__category { display: inline-flex; align-items: center; gap: 4px; min-width: 0; max-width: 100%; border-radius: 16px; background: #f5fff6; padding: 4px 9px; color: #00bb30; font-size: 10px; line-height: 1.4; font-weight: 700; text-transform: uppercase; }
.destination-card__category > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.destination-card__badges .destination-card__price { flex-shrink: 0; padding: 5px 8px; border-radius: 7px; color: white; background: #071005d9; font-size: 10px; line-height: 1.4; font-weight: 750; white-space: nowrap; }
.destination-card__favorite { position: absolute; top: 12px; left: 12px; display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #fffffff2; box-shadow: 0 1px 3px #17233312; cursor: pointer; color: #98a2b3; }
.destination-card__favorite[hidden] { display: none; }
.destination-card__favorite .material-symbols-outlined { font-size: 23px; font-variation-settings: 'FILL' 0; }
.destination-card__favorite[aria-pressed=true] { color: #00c832; }
.destination-card__favorite[aria-pressed=true] .material-symbols-outlined { font-variation-settings: 'FILL' 1; }
.destination-card__body { min-height: 256px; gap: 10px; }
.destination-card__stats { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: #7a8596; font-size: 12px; line-height: 1.4; min-height: 18px; }
.destination-card__rating, .destination-card__views { display: inline-flex; align-items: center; gap: 4px; }
.destination-card__rating .material-symbols-outlined { color: #ffbc26; font-size: 17px; font-variation-settings: 'FILL' 1; }
.destination-card__views .material-symbols-outlined { color: #98a2b3; font-size: 16px; }
.destination-card .destination-region { min-height: 34px; }
.destination-card__description { min-height: 47px; }
.destination-card__footer { padding-top: 16px; }
@media(max-width:700px) {
    .destination-card__visual .destination-card__image { aspect-ratio: 1.8; }
    .destination-card__stats { font-size: 11px; }
    .destination-card__body { min-height: 246px; }
    .destination-card__description { min-height: 40px; }
}

.destination-price-content { padding: 16px 14px 22px; }
.destination-price-caption { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 12px; color: #7a8596; }
.destination-price-caption > span { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.destination-price-caption .material-symbols-outlined { font-size: 15px; }
.destination-price-caption output { font-size: 12px; color: #00bf32; font-weight: 700; text-align: right; }
.destination-filters .destination-price-currency { display: flex; justify-content: space-between; gap: 8px; padding: 10px 0; font-size: 11px; }
.destination-price-currency select { font-size: 12px !important; border: 1px solid #e2e7ec; border-radius: 9px; background-color: #fff; padding: 4px 26px 4px 8px; }
.destination-price-range { position: relative; height: 24px; margin: 8px 6px 0; --price-start: 0%; --price-end: 100%; }
.destination-price-track { position: absolute; inset: 10px 0 auto; height: 5px; border-radius: 10px; background: linear-gradient(to right,#e5e7eb var(--price-start),#00ce35 var(--price-start),#00ce35 var(--price-end),#e5e7eb var(--price-end)); }
.destination-price-range input[type=range] { appearance: none; -webkit-appearance: none; position: absolute; inset: 0; width: 100%; height: 24px; margin: 0; padding: 0; pointer-events: none; border: 0; box-shadow: none; background: transparent; }
.destination-price-range input[type=range]::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 15px; height: 15px; border: 0; border-radius: 50%; background: #00ce35; box-shadow: 0 2px 4px #10182724; pointer-events: auto; cursor: grab; }
.destination-price-range input[type=range]::-moz-range-thumb { width: 15px; height: 15px; border: 0; border-radius: 50%; background: #00ce35; box-shadow: 0 2px 4px #10182724; pointer-events: auto; cursor: grab; }
.destination-price-range input[type=range]:focus-visible { z-index: 2; }

.destination-card__image > .destination-card__distance { position: absolute; inset: 12px 12px auto auto; display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 15px; background: #ffdb60; color: #49320a; font-size: 11px; line-height: 1.4; font-weight: 750; }
.destination-card__featured ~ .destination-card__distance { top: 42px; }
.destination-card__distance[hidden], [data-use-destination-location][hidden] { display: none; }
.destination-location-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 14px; }
.destination-location-controls button { display: inline-flex; gap: 6px; align-items: center; border: 1px solid #e2e7ec; border-radius: 22px; padding: 8px 12px; background: white; color: #52627b; font-size: 12px; cursor: pointer; }
.destination-location-controls button .material-symbols-outlined { font-size: 18px; color: #00bf32; }
.destination-location-controls button:disabled { opacity: .6; cursor: wait; }
.destination-location-controls p { margin: 0; font-size: 11px; line-height: 1.5; }
.destination-location-controls:has(button[hidden]):has(p:empty) { display: none; }

/* Destination detail layout. */
.destinations-page--detail { background: #fafafa; padding-bottom: 64px; }
.destinations-page--detail .destination-container { max-width: 1336px; }
.destination-detail-breadcrumb { padding: 20px 0; background: #fff; border-bottom: 1px solid #e8ebef; }
.destination-detail-breadcrumb .destination-breadcrumb { margin-bottom: 0; }
.destinations-page--detail .destination-detail { padding-top: 40px; }
.destination-photo-grid { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,3fr); gap: 10px; height: 450px; margin-bottom: 40px; }
.destination-photo-grid--single { grid-template-columns: minmax(0,1fr); }
.destination-photo-main { position: relative; border-radius: 24px; overflow: hidden; min-width: 0; }
.destination-photo-open { display: block; width: 100%; height: 100%; padding: 0; border: 0; cursor: zoom-in; background: #eef1f4; }
.destination-photo-open img { display: block; width: 100%; height: 100%; object-fit: cover; }
.destination-photo-tags { position: absolute; top: 16px; left: 16px; display: flex; gap: 8px; pointer-events: none; }
.destination-photo-tags > span { background: #00ce35; color: #fff; font-weight: 700; padding: 4px 10px; border-radius: 20px; font-size: 12px; }
.destination-photo-tags > .destination-tag-featured { background: #fff0ba; color: #9b5a08; text-transform: uppercase; }
.destination-photo-views { position: absolute; bottom: 16px; left: 16px; display: flex; gap: 6px; align-items: center; border-radius: 20px; padding: 6px 12px; font-weight: 650; font-size: 13px; background: #152006d9; color: white; pointer-events: none; }
.destination-photo-views .material-symbols-outlined { font-size: 18px; }
.destination-photo-distance { position: absolute; bottom: 18px; right: 16px; background: #ffda5f; color: #49320a; font-size: 13px; font-weight: 750; padding: 5px 12px; border-radius: 20px; }
.destination-photo-distance[hidden] { display: none; }
.destination-photo-thumbs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(2,minmax(0,1fr)); gap: 8px; min-height: 0; }
.destination-photo-thumbs a { position: relative; padding: 0; border: 0; background: #edf2ef; border-radius: 18px; overflow: hidden; cursor: zoom-in; }
.destination-photo-thumbs a:first-child:last-child { grid-column: 1/-1; grid-row: 1/-1; }
.destination-photo-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.destination-photo-thumbs a > span { position: absolute; inset: 0; display: grid; place-items: center; background: #0006; color: white; font-weight: 700; }
.destinations-page--detail .destination-detail-layout { grid-template-columns: minmax(0,7fr) minmax(320px,3fr); gap: 40px; align-items: start; }
.destination-detail-main, .destination-detail-sidebar { min-width: 0; }
.destinations-page--detail .destination-summary { padding: 28px; border-radius: 24px; }
.destinations-page--detail .destination-summary h1 { margin: 0 0 16px; padding-bottom: 18px; border-bottom: 1px solid #f0f2f5; font-size: 36px; font-weight: 750; letter-spacing: -.8px; }
.destination-summary-rows { display: grid; gap: 10px; }
.destination-summary-rows p { display: flex; align-items: center; gap: 12px; background: #fafafb; border: 1px solid #f0f2f5; border-radius: 18px; padding: 8px 14px; margin: 0; font-size: 14px; line-height: 1.5; min-height: 38px; }
.destination-summary-rows .material-symbols-outlined { color: #00c832; font-size: 20px; flex-shrink: 0; }
.destination-summary-rows .destination-star { color: #ffad13; }
.destination-summary-rows strong { font-weight: 500; color: #00c832; }
.destination-summary-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 20px; margin-top: 20px; border-top: 1px solid #f0f2f5; }
.destination-summary-actions a, .destination-summary-actions button { display: inline-flex; gap: 8px; align-items: center; background: white; border: 1px solid #e5e7eb; border-radius: 16px; padding: 11px 16px; font-size: 13px; font-weight: 650; color: #23334b; box-shadow: 0 1px 2px #1018270a; }
.destination-summary-actions button[hidden] { display: none; }
.destination-summary-actions .material-symbols-outlined { color: #00c832; font-size: 20px; }
.destination-summary-actions button[aria-pressed=true] .material-symbols-outlined { font-variation-settings: 'FILL' 1; }
.destinations-page--detail .destination-tabs { gap: 26px; margin: 30px 0; padding: 18px 16px; font-size: 13px; font-weight: 650; }
.destinations-page--detail .destination-tabs a.is-active { color: #00c832; }
.destinations-page--detail .destination-copy { padding: 24px; margin-bottom: 30px; border-radius: 18px; scroll-margin-top: 100px; }
.destinations-page--detail .destination-copy h2 { font-size: 21px; margin-bottom: 20px; }
.destination-rich-content { font-size: 14px; line-height: 1.85; color: #5c6c80; overflow-wrap: anywhere; }
.destination-rich-content h2, .destination-rich-content h3 { color: #152335; font-size: 19px; font-weight: 700; line-height: 1.5; margin: 24px 0 10px; }
.destination-rich-content p { margin: 12px 0; }
.destination-rich-content ul { list-style: disc; padding-left: 24px; }
.destination-rich-content ol { list-style: decimal; padding-left: 24px; }
.destination-rich-content img { max-width: 100%; height: auto; border-radius: 14px; }
.destination-rich-content table { width: 100%; }
.destinations-page--detail .destination-experience-section { padding: 10px 0 0; }
.destinations-page--detail .destination-experiences { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.destination-experience-card h3 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.destination-experience-card p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.destinations-page--detail .destination-amenities .material-symbols-outlined { background: #effcf3; border-radius: 9px; padding: 10px; font-size: 23px; }
.destination-map { position: relative; height: 300px; overflow: hidden; border-radius: 18px; background: #e8ece9; margin-bottom: 16px; }
.destination-map iframe { display: block; border: 0; width: 100%; height: 100%; }
.destination-map > a { position: absolute; top: 10px; left: 10px; background: white; border-radius: 4px; padding: 6px 10px; box-shadow: 0 1px 4px #0002; font-size: 12px; color: #297bff; }
.destination-detail-reviews { scroll-margin-top: 110px; margin: 40px 0; }
.destination-detail-reviews > h2 { border-left: 5px solid #00ce35; padding-left: 12px; font-size: 24px; }
.destination-detail-reviews > p { margin: 4px 0 20px 17px; font-size: 13px; }
.destinations-page--detail .listing-reviews__card { border-radius: 24px; }
.destination-registration { padding: 0; border: 1px solid #b2efc1; border-radius: 22px; overflow: hidden; box-shadow: 0 10px 20px #10182712; scroll-margin-top: 110px; }
.destination-registration > header { padding: 22px 20px 14px; border-bottom: 1px dotted #c3eacb; }
.destination-registration h2 { color: #00c832; font-size: 18px; }
.destination-registration header p { font-size: 14px; line-height: 1.5; margin-top: 6px; }
.destination-registration form { display: grid; gap: 16px; padding: 24px 20px 18px; }
.destination-registration label { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .8px; color: #334155; font-weight: 700; }
.destination-registration label b { color: #ef4444; }
.destination-registration input:not([type=checkbox]), .destination-registration textarea, .destination-registration select { display: block; width: 100%; min-width: 0; margin-top: 6px; border: 1px solid #e0e5ec; border-radius: 8px; padding: 9px 12px; background: #f8f9fb; font-size: 13px; line-height: 1.5; letter-spacing: 0; color: #334155; font-weight: 400; box-shadow: inset 0 1px 2px #10182704; }
.destination-registration input::placeholder, .destination-registration textarea::placeholder { color: #94a3b8; }
.destination-registration select { border-color: #00c832; background-color: white; }
.destination-registration-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.destination-registration .destination-privacy { display: flex; align-items: flex-start; gap: 8px; font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; line-height: 1.5; }
.destination-privacy input { accent-color: #00c832; margin-top: 2px; }
.destination-registration .destination-button { border-radius: 9px; width: 100%; text-transform: uppercase; box-shadow: 0 3px 5px #00c83230; }
.destination-registration small { text-align: center; color: #8791a3; font-size: 11px; font-style: italic; line-height: 1.6; }
.destination-form-success { color: #087d2b !important; background: #effcf3; border-radius: 10px; padding: 12px; }
.destination-form-errors { background: #fff3f3; border-radius: 10px; padding: 12px; }
.destination-form-errors p { color: #bc2929; font-size: 12px; }
.destination-sidebar-panel { padding: 24px; border-color: #f0f2f5; border-radius: 18px; margin-top: 24px; }
.destination-sidebar-panel h2 { display: flex; align-items: center; gap: 10px; font-size: 16px; margin-bottom: 16px; }
.destination-sidebar-panel h2 .material-symbols-outlined { color: #00c832; font-size: 22px; }
.destination-hours > div { display: flex; justify-content: space-between; gap: 10px; border-top: 1px solid #f1f3f6; padding: 12px 0; font-size: 13px; color: #66748a; }
.destination-hours dd { color: #22314a; text-align: right; }
.destination-contact-lines > div { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.destination-contact-lines .material-symbols-outlined { color: #94a3b8; font-size: 20px; margin-top: 3px; }
.destination-contact-lines p { font-size: 13px; line-height: 1.6; margin: 0; }
.destination-contact-lines a { display: block; overflow-wrap: anywhere; }
.destination-contact-lines a[href^="tel:"] { color: #00c832; font-weight: 700; }
.destination-contact-social { display: flex; flex-wrap: wrap; gap: 8px; }
.destination-contact-social a { padding: 8px 12px; border: 1px solid #8dbaff; color: #4385ff; border-radius: 12px; font-size: 12px; }
.destination-related-heading { display: flex; justify-content: space-between; gap: 16px; align-items: flex-end; margin-bottom: 22px; }
.destination-related-heading h2 { margin: 8px 0; }
.destination-slider-controls { display: flex; gap: 8px; }
.destination-slider-controls button { border: 1px solid #00ce35; border-radius: 50%; width: 38px; height: 38px; background: white; color: #00c832; font-size: 24px; }
.destination-slider-controls button:disabled { opacity: .3; border-color: #cbd5e1; color: #94a3b8; }
.destination-related-track { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 8px; }
.destination-related-track > .destination-card { flex: 0 0 calc((100% - 44px) / 2.5); min-width: 260px; scroll-snap-align: start; }
@media(max-width:1050px) {
    .destinations-page--detail .destination-detail-layout { grid-template-columns: minmax(0,1fr) 310px; gap: 24px; }
    .destination-photo-grid { height: 370px; }
    .destinations-page--detail .destination-experiences { grid-template-columns: 1fr; }
}
@media(max-width:700px) {
    .destinations-page--detail .destination-detail { padding-top: 20px; }
    .destination-detail-breadcrumb { padding: 14px 0; }
    .destination-photo-grid { grid-template-columns: 1fr; height: auto; margin-bottom: 24px; }
    .destination-photo-main { height: 260px; border-radius: 20px; }
    .destination-photo-thumbs { grid-template-columns: repeat(4,minmax(0,1fr)); grid-template-rows: 74px; }
    .destination-photo-thumbs a:first-child:last-child { grid-column: auto; grid-row: auto; }
    .destination-photo-thumbs a { border-radius: 12px; }
    .destinations-page--detail .destination-detail-layout { display: flex; flex-direction: column; gap: 26px; }
    .destination-detail-main, .destination-detail-sidebar { width: 100%; }
    .destinations-page--detail .destination-summary { padding: 22px 18px; }
    .destinations-page--detail .destination-summary h1 { font-size: 26px; }
    .destination-summary-rows p { font-size: 12px; padding: 8px 10px; gap: 8px; }
    .destination-summary-actions { gap: 8px; }
    .destination-summary-actions a, .destination-summary-actions button { font-size: 12px; padding: 9px 11px; }
    .destinations-page--detail .destination-tabs { gap: 22px; font-size: 12px; margin: 24px 0; }
    .destinations-page--detail .destination-copy { padding: 20px 16px; }
    .destinations-page--detail .destination-copy h2 { font-size: 18px; }
    .destinations-page--detail .destination-experience-section { padding: 0; }
    .destination-rich-content, .destination-rich-content p { font-size: 13px; }
    .destination-rich-content h2, .destination-rich-content h3 { font-size: 17px; }
    .destination-map { height: 250px; }
    .destination-detail-reviews > h2 { font-size: 20px; }
    .destination-related-track > .destination-card { flex-basis: 82%; }
    .destination-photo-tags > span { font-size: 10px; }
    .destination-registration input:not([type=checkbox]), .destination-registration textarea, .destination-registration select { font-size: 12px !important; }
    .destination-sidebar-panel { padding: 22px; }
}
@media(min-width:701px) { .destinations-page--detail .destination-detail-sidebar { display: block; } }

/* Contact icons in the destination detail sidebar. */
.destination-contact-card .destination-contact-mail-icon { display: block; flex: 0 0 18px; width: 18px; height: 18px; object-fit: contain; margin-top: 3px; }
.destination-contact-card .destination-contact-social { gap: 8px; }
.destination-contact-card .destination-contact-social a { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 38px; padding: 8px 9px; border: 1px solid #659eff; border-radius: 11px; font-size: 12px; line-height: 1.3; font-weight: 500; color: #4385ff; white-space: nowrap; }
.destination-contact-card .destination-contact-social img { display: block; flex: 0 0 16px; width: 16px; height: 16px; object-fit: contain; }
.destination-contact-card .destination-contact-social .destination-contact-social--whatsapp { color: #00ad3b; border-color: #47cc76; }
.destination-contact-card .destination-contact-social a:hover { background: #f4f8ff; }
.destination-contact-card .destination-contact-social .destination-contact-social--whatsapp:hover { background: #effcf3; }

/* Full-screen photo viewer with caption and a thumbnail strip. */

.destination-card__favorite[aria-pressed=true],
.destination-summary-actions button[data-destination-favorite][aria-pressed=true] .material-symbols-outlined {
    color: #ec4899;
}
.destination-card__favorite[aria-pressed=true] .material-symbols-outlined,
.destination-summary-actions button[data-destination-favorite][aria-pressed=true] .material-symbols-outlined {
    font-variation-settings: 'FILL' 1;
}

.destination-sort-status { margin: -10px 0 18px; font-size: 12px; line-height: 1.5; color: #7a8596; }
.destination-sort-status:empty { display: none; }

/* Grid/list switch and horizontal destination cards. */
.destination-toolbar-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.destination-view-toggle { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid #e5e7eb; border-radius: 24px; background: white; box-shadow: 0 1px 3px #10182708; }
.destination-view-toggle[hidden] { display: none; }
.destination-toolbar .destination-view-toggle button { display: grid; place-items: center; width: 33px; height: 33px; border: 0; border-radius: 50%; padding: 0; background: transparent; color: #748296; cursor: pointer; }
.destination-view-toggle .material-symbols-outlined { font-size: 21px; }
.destination-toolbar .destination-view-toggle button[aria-pressed=true] { color: #00c832; background: #e1fbe8; }
.destination-toolbar .destination-view-toggle button:hover { background: #effaf2; }
#destination-results.is-list { grid-template-columns: minmax(0,1fr); }
#destination-results.is-list .destination-card { display: grid; grid-template-columns: 250px minmax(0,1fr); }
#destination-results.is-list .destination-card__visual { min-height: 220px; }
#destination-results.is-list .destination-card__image { height: 100%; aspect-ratio: auto; }
#destination-results.is-list .destination-card__body { min-width: 0; min-height: 220px; padding: 20px 24px; gap: 8px; }
#destination-results.is-list .destination-card h2 { white-space: normal; font-size: 18px; }
#destination-results.is-list .destination-region { min-height: 0; }
#destination-results.is-list .destination-card__description { min-height: 0; -webkit-line-clamp: 2; }
#destination-results.is-list .destination-card__footer { text-align: right; padding-top: 12px; }
#destination-results.is-list .destination-card__footer .destination-button { min-height: 40px; padding: 9px 14px; }
@media(max-width:1050px) and (min-width:701px) {
    #destination-results.is-list .destination-card { grid-template-columns: 190px minmax(0,1fr); }
    #destination-results.is-list .destination-card__body { padding: 18px; }
}
@media(max-width:700px) {
    .destination-toolbar-controls { flex-wrap: nowrap; justify-content: space-between; gap: 8px; }
    .destination-toolbar-controls form { flex: 1; min-width: 0; }
    .destination-toolbar-controls select { width: 155px; max-width: 100%; }
    .destination-toolbar .destination-view-toggle button { width: 30px; height: 30px; }
    #destination-results.is-list .destination-card { grid-template-columns: 118px minmax(0,1fr); border-radius: 18px; }
    #destination-results.is-list .destination-card__visual { min-height: 200px; }
    #destination-results.is-list .destination-card__body { min-height: 200px; padding: 14px 12px; gap: 7px; }
    #destination-results.is-list .destination-card h2 { font-size: 14px; }
    #destination-results.is-list .destination-card__stats { font-size: 10px; gap: 5px; }
    #destination-results.is-list .destination-card__description { font-size: 11px; }
    #destination-results.is-list .destination-card__footer .destination-button { min-height: 36px; font-size: 10px; padding: 7px 10px; gap: 5px; }
    #destination-results.is-list .destination-card__badges { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; inset: auto 6px 8px; }
    #destination-results.is-list .destination-card__category { font-size: 8px; padding: 4px 6px; }
    #destination-results.is-list .destination-card__featured { font-size: 8px; right: 6px; top: 46px; padding: 3px 6px; }
    #destination-results.is-list .destination-card__distance { top: 72px; right: 6px; font-size: 9px; padding: 3px 6px; }
    #destination-results.is-list .destination-card__favorite { top: 8px; left: 8px; width: 30px; height: 30px; }
}

/* Mobile tour registration reuses the desktop form inside a native dialog. */
.destination-booking-close { display: none; }
.destination-booking-modal { width: min(440px, calc(100vw - 24px)); max-width: 440px; max-height: calc(100dvh - 32px); padding: 0; margin: auto; border: 0; border-radius: 22px; background: white; overflow-y: auto; overscroll-behavior: contain; box-shadow: 0 24px 70px #10182740; }
.destination-booking-modal::backdrop { background: #10182780; backdrop-filter: blur(3px); }
.destination-booking-modal .destination-registration { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.destination-booking-modal .destination-registration > header { position: relative; padding: 22px 50px 18px 20px; background: linear-gradient(110deg,#edfcf1,#fff); }
.destination-booking-modal .destination-registration h2 { font-size: 17px; }
.destination-booking-modal .destination-registration header p { font-size: 12px; }
.destination-booking-modal .destination-booking-close { display: grid; place-items: center; position: absolute; right: 12px; top: 14px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: #f1f5f3; color: #657184; cursor: pointer; }
.destination-booking-modal .destination-booking-close .material-symbols-outlined { font-size: 21px; }
.destination-booking-modal .destination-registration form { gap: 16px; padding: 20px; }
.destination-booking-modal .destination-registration label { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .6px; color: #334155; font-weight: 700; }
.destination-booking-modal .destination-registration input:not([type=checkbox]), .destination-booking-modal .destination-registration select, .destination-booking-modal .destination-registration textarea { font-size: 12px !important; }
.destination-booking-modal .destination-registration .destination-privacy { display: flex; font-size: 11px; text-transform: none; letter-spacing: 0; font-weight: 400; }
.destination-booking-modal button:focus-visible { outline: 2px solid #00c832; outline-offset: 2px; }
@media(max-width:360px) { .destination-booking-modal .destination-registration form { padding: 16px 10px; } }

/* Compact, touch-friendly destination detail on phones. */
@media(max-width:700px) {
    .destinations-page--detail .destination-container { padding-inline: 16px; }
    .destinations-page--detail .destination-summary { padding: 20px 16px 16px; border-radius: 22px; margin-bottom: 0; }
    .destinations-page--detail .destination-summary h1 { font-size: 23px; font-weight: 700; letter-spacing: -.45px; line-height: 1.3; margin-bottom: 14px; padding-bottom: 14px; }
    .destination-summary-rows { gap: 8px; }
    .destination-summary-rows p { min-height: 36px; padding: 8px 10px; border-radius: 13px; font-size: 12px; line-height: 1.5; gap: 9px; }
    .destination-summary-rows .material-symbols-outlined { font-size: 19px; }
    .destination-summary-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; padding-top: 15px; margin-top: 15px; }
    .destination-summary-actions a, .destination-summary-actions button { justify-content: center; min-width: 0; min-height: 44px; padding: 10px 8px; font-size: 12px; line-height: 1.4; border-radius: 12px; gap: 7px; box-shadow: 0 1px 2px #10182706; }
    .destination-summary-actions .material-symbols-outlined { font-size: 20px; }
    .destination-summary-actions a[href="#destination-consultation"] { background: #00ce35; border-color: #00ce35; color: #fff; box-shadow: 0 3px 7px #00ce351c; }
    .destination-summary-actions a[href="#destination-consultation"] .material-symbols-outlined { color: #fff; }
    .destinations-page--detail .destination-tabs { display: flex; align-items: center; max-width: 100%; gap: 3px; margin: 20px 0; padding: 5px; border-radius: 15px; border-color: #e5e9ef; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-width: none; -ms-overflow-style: none; scroll-padding-inline: 5px; box-shadow: 0 1px 2px #10182704; }
    .destination-tabs::-webkit-scrollbar { display: none; height: 0; }
    .destinations-page--detail .destination-tabs a { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-height: 42px; padding: 10px 12px; border-radius: 10px; font-size: 12px; line-height: 1.5; font-weight: 600; color: #64748b; text-decoration: none; }
    .destinations-page--detail .destination-tabs a.is-active { background: #eafbf0; color: #00ae30; }
    .destinations-page--detail .destination-copy { padding: 20px 16px; margin-bottom: 20px; border-radius: 18px; }
    .destinations-page--detail .destination-copy h2 { font-size: 18px; margin-bottom: 16px; line-height: 1.4; }
    .destinations-page--detail .destination-experience-section { padding: 0; }
    .destination-experiences .destination-experience-card { padding: 16px; gap: 12px; }
    .destination-experience-card h3 { font-size: 14px; }
    .destination-experience-card p { font-size: 12px; }
    .destination-amenities { gap: 16px 12px; }
    .destination-amenities li { font-size: 12px; gap: 8px; }
    .destinations-page--detail .destination-amenities .material-symbols-outlined { font-size: 20px; padding: 8px; }
    .destination-detail-main { min-width: 0; }
}

@media(max-width:700px) {
    .destination-detail-main > .destination-location-info .destination-sidebar-panel { margin-top: 0; margin-bottom: 20px; }
    .destination-detail-sidebar:not(:has(.destination-panel)) { display: none; }
}

@media(max-width:700px) {
    .destination-related-heading > div > p { display: none; }
}

/* Inline errors for tour registration, including the mobile modal. */
.destination-registration .is-invalid:not(.destination-captcha-field),
.destination-registration .is-invalid:not(.destination-captcha-field):focus {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 2px #ef444414 !important;
}
.destination-registration input[type=checkbox].is-invalid { outline: 1px solid #ef4444; outline-offset: 2px; }
.destination-field-error { display: block; margin-top: 6px; color: #dc2626; font-size: 11px; line-height: 1.5; letter-spacing: 0; text-transform: none; font-weight: 400; }
.destination-field-error[hidden] { display: none; }
.destination-registration form > .destination-field-error { margin-top: -10px; }
.destination-captcha-field.is-invalid { outline: 1px solid #ef4444; outline-offset: 3px; border-radius: 4px; }

.destination-favorite-toast { position: fixed; z-index: 20000; top: max(24px, env(safe-area-inset-top)); right: 24px; display: flex; align-items: center; gap: 10px; width: max-content; max-width: calc(100vw - 32px); padding: 14px 14px 14px 16px; border: 1px solid #e2e8f0; border-left: 4px solid #00ce35; border-radius: 12px; background: white; color: #334155; box-shadow: 0 8px 30px #10182726; font-size: 13px; line-height: 1.5; }
.destination-favorite-toast[hidden] { display: none; }
.destination-favorite-toast > .material-symbols-outlined { color: #00bd32; font-size: 22px; flex-shrink: 0; }
.destination-favorite-toast button { display: grid; place-items: center; flex-shrink: 0; width: 28px; height: 28px; border: 0; border-radius: 7px; background: transparent; color: #94a3b8; font-size: 24px; cursor: pointer; }
.destination-favorite-toast button:hover { background: #f1f5f9; color: #475569; }
@media(max-width:700px) { .destination-favorite-toast { top: max(16px, env(safe-area-inset-top)); right: 16px; font-size: 12px; gap: 8px; padding: 12px; } }

.destination-filter input[type=checkbox]:checked { background: #fff; background-image: none; }
