/* ==========================================================================
   Lisbon Private Tours 2026 — main stylesheet
   1. Tokens   2. Base   3. Layout   4. Components   5. Header   6. Footer
   7. Home     8. Pages  9. Legacy content compatibility   10. Utilities
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--ink: #161513;
	--ink-2: #2a2824;
	--text: #3b3833;
	--muted: #6b665d;
	--bg: #f7f4ee;
	--paper: #ffffff;
	--sand: #efe9dd;
	--line: #e3dccd;
	--gold: #c5ab67;
	--gold-dark: #8a6d2c;
	--gold-soft: rgba(197, 171, 103, .16);
	--azul: #1f3d63;
	--night: #0f0f0e;
	--night-2: #1b1a18;

	--serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	--wrap: 1200px;
	--wrap-narrow: 820px;
	--gutter: clamp(16px, 4vw, 32px);
	--radius: 14px;
	--radius-sm: 8px;
	--shadow: 0 1px 2px rgba(22, 21, 19, .05), 0 8px 28px rgba(22, 21, 19, .07);
	--shadow-lg: 0 2px 4px rgba(22, 21, 19, .06), 0 24px 60px rgba(22, 21, 19, .14);
	--header-h: 76px;
}

/* 2. Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--gold-dark); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--ink); }
h1, h2, h3, h4, h5, h6 { color: var(--ink); font-family: var(--serif); font-weight: 600; line-height: 1.15; margin: 0 0 .5em; letter-spacing: -.005em; }
p { margin: 0 0 1em; }
:focus-visible { outline: 2px solid var(--gold-dark); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--gold); color: var(--night); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--ink); color: #fff; padding: 10px 16px; border-radius: 6px; }
.skip-link:focus { top: 12px; color: #fff; }

/* 3. Layout ---------------------------------------------------------------- */
.wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--narrow { max-width: calc(var(--wrap-narrow) + var(--gutter) * 2); }
.section { padding-block: clamp(56px, 8vw, 104px); }
.section--paper { background: var(--paper); }
.section--dark { background: var(--night); color: #d9d4c8; }
.section-head { max-width: 760px; margin-bottom: clamp(28px, 4vw, 44px); }
.section-head--split { max-width: none; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; }
.section-title { font-size: clamp(32px, 4.2vw, 50px); margin: 0; }
.section-title--sm { font-size: clamp(26px, 3vw, 34px); margin-bottom: 20px; }
.section-title--light { color: #f5f4f0; }
.eyebrow { font-family: var(--sans); font-size: 12.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-dark); margin: 0 0 12px; }
.eyebrow a { color: inherit; text-decoration: none; }
.eyebrow--light { color: var(--gold); }
.layout-sidebar { display: grid; gap: 40px; padding-block: 48px 72px; }
@media (min-width: 960px) { .layout-sidebar { grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; } }

/* 4. Components ------------------------------------------------------------ */
.icon { flex: none; vertical-align: middle; }
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 48px; padding: 12px 24px; border-radius: 999px; border: 1px solid transparent;
	font: 600 15px/1.2 var(--sans); letter-spacing: .01em; text-decoration: none; cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.btn:hover { transform: translateY(-1px); }
.btn .icon { width: 18px; height: 18px; transition: transform .2s; }
.btn:hover .icon-arrow { transform: translateX(3px); }
.btn--gold { background: var(--gold); color: var(--night); box-shadow: 0 6px 18px rgba(197, 171, 103, .35); }
.btn--gold:hover { background: #d4bc7d; color: var(--night); }
.btn--dark { background: var(--ink); color: #fff; }
.btn--dark:hover { background: var(--ink-2); color: #fff; }
.btn--ghost { background: transparent; color: var(--ink); border-color: rgba(22, 21, 19, .22); }
.btn--ghost:hover { border-color: var(--ink); color: var(--ink); }
.btn--ghost-light { background: transparent; color: #f5f4f0; border-color: rgba(245, 244, 240, .35); }
.btn--ghost-light:hover { border-color: #f5f4f0; color: #fff; }
.btn--sm { min-height: 40px; padding: 8px 18px; font-size: 14px; }
.btn--lg { min-height: 54px; padding: 14px 28px; font-size: 16px; }
.btn--block { width: 100%; }
.text-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--gold); padding-bottom: 2px; }
.text-link:hover { color: var(--gold-dark); }
.icon-btn { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); cursor: pointer; }
.icon-btn:hover { border-color: var(--ink); }

.phones { display: inline-flex; flex-wrap: wrap; gap: 6px 18px; }
.phones a { color: inherit; text-decoration: none; white-space: nowrap; }
.phones a:hover { color: var(--gold); }
.phones__label { display: inline-block; font-size: 10.5px; font-weight: 600; letter-spacing: .08em; padding: 1px 6px; border-radius: 4px; border: 1px solid currentColor; opacity: .7; margin-right: 4px; vertical-align: 1px; }
.phones--stack { flex-direction: column; }
.phones--inline a { color: var(--ink); font-weight: 600; }

.search-form { display: flex; gap: 8px; max-width: 640px; }
.search-form__input { flex: 1; min-width: 0; min-height: 50px; padding: 12px 18px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); font: 16px var(--sans); color: var(--ink); }
.search-form__input:focus { outline: none; border-color: var(--gold-dark); box-shadow: 0 0 0 4px var(--gold-soft); }
.search-form__btn { width: 50px; padding: 0; min-height: 50px; }

.card-grid { display: grid; gap: 28px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.card-grid--2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.card { background: var(--paper); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.card__media { display: block; aspect-ratio: 16 / 10; background: var(--sand); overflow: hidden; }
.card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.card:hover .card__media img { transform: scale(1.04); }
.card__placeholder { display: block; width: 100%; height: 100%; background: var(--sand) url("../img/tile.svg") center / 64px repeat; opacity: .8; }
.card__body { padding: 22px 24px 26px; }
.card__meta { font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.card__title { font-size: 24px; margin-bottom: 8px; }
.card__title a { color: var(--ink); text-decoration: none; }
.card__title a:hover { color: var(--gold-dark); }
.card__text { font-size: 15.5px; color: var(--muted); margin: 0; }

.link-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); }
.link-grid a { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 100%; padding: 16px 20px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); font-weight: 500; font-size: 15.5px; line-height: 1.4; text-decoration: none; transition: border-color .2s, transform .2s; }
.link-grid a:hover { border-color: var(--gold); transform: translateY(-1px); }
.link-grid .icon { color: var(--gold-dark); }

.pagination { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 8px; }
.pagination .page-numbers { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); text-decoration: none; }
.pagination .page-numbers.current { background: var(--ink); color: #fff; border-color: var(--ink); }

.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0 0 18px; padding: 0; font-size: 13.5px; color: var(--muted); }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin: 0 10px; color: var(--line); color: #b9b1a0; }
.breadcrumbs a { color: var(--muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--ink); }
.breadcrumbs [aria-current] { color: var(--ink); }

/* 5. Header ---------------------------------------------------------------- */
.topbar { background: var(--night); color: #cfc9bc; font-size: 13px; }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.topbar__note { display: inline-flex; align-items: center; gap: 8px; }
.topbar__note .icon { width: 16px; height: 16px; color: var(--gold); }
.topbar .phones a:hover { color: var(--gold); }
@media (max-width: 720px) { .topbar__note { display: none; } .topbar__inner { justify-content: center; } }

.site-header { position: sticky; top: 0; z-index: 100; background: rgba(247, 244, 238, .92); -webkit-backdrop-filter: saturate(1.4) blur(12px); backdrop-filter: saturate(1.4) blur(12px); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.site-header.is-scrolled { border-bottom-color: var(--line); box-shadow: 0 6px 20px rgba(22, 21, 19, .05); }
.site-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--header-h); }
.site-logo { display: inline-flex; align-items: center; text-decoration: none; flex: none; }
.site-logo img { display: block; width: auto; max-height: 54px; }
.site-logo__text { font-family: var(--serif); font-size: 26px; font-weight: 700; color: var(--ink); }
.main-nav { margin-left: auto; }
.main-nav__list { list-style: none; display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; }
.main-nav__list > li { position: relative; }
.main-nav__list a { display: block; padding: 10px 14px; border-radius: 999px; color: var(--ink); font-size: 15px; font-weight: 500; text-decoration: none; white-space: nowrap; }
.main-nav__list a:hover, .main-nav__list .current-menu-item > a { background: var(--gold-soft); color: var(--ink); }
.main-nav__list .sub-menu { list-style: none; position: absolute; left: 0; top: 100%; min-width: 240px; margin: 0; padding: 8px; background: var(--paper); border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s, visibility .2s; }
.main-nav__list li:hover > .sub-menu, .main-nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.main-nav__list .sub-menu a { border-radius: 6px; white-space: normal; }
.main-nav__mobile-extra { display: none; }
.site-header__actions { display: flex; align-items: center; gap: 10px; flex: none; }
.nav-toggle { display: none; }
.nav-toggle__close { display: none; }
.site-search { border-top: 1px solid var(--line); padding: 16px 0; background: var(--bg); }
.site-search .search-form { margin-inline: auto; }

@media (max-width: 1080px) {
	/* No backdrop-filter here: it would make the header the containing block of the fixed drawer. */
	.site-header { background: var(--bg); -webkit-backdrop-filter: none; backdrop-filter: none; }
	.nav-toggle { display: inline-grid; }
	.main-nav { position: fixed; inset: 0 0 0 auto; width: min(380px, 88vw); margin: 0; padding: 96px 28px 32px; background: var(--paper); box-shadow: var(--shadow-lg); transform: translateX(100%); visibility: hidden; transition: transform .3s ease, visibility 0s linear .3s; overflow-y: auto; z-index: 90; }
	.nav-open .main-nav { transform: none; visibility: visible; transition: transform .3s ease, visibility 0s; }
	.main-nav__list { flex-direction: column; align-items: stretch; gap: 2px; }
	.main-nav__list a { font-size: 18px; padding: 14px 16px; border-radius: 10px; }
	.main-nav__list .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; padding: 0 0 0 14px; min-width: 0; }
	.main-nav__mobile-extra { display: block; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--ink); font-weight: 600; }
	.site-header__actions { margin-left: auto; position: relative; z-index: 95; }
	.nav-open .nav-toggle__open { display: none; }
	.nav-open .nav-toggle__close { display: inline; }
	.nav-open::after { content: ""; position: fixed; inset: 0; background: rgba(15, 15, 14, .4); z-index: 80; }
	.nav-open { overflow: hidden; }
}
@media (max-width: 560px) {
	:root { --header-h: 64px; }
	.site-header__cta { display: none; }
	.site-logo img { max-height: 44px; }
}

/* Legacy plugin header pieces replaced by this header (toggle in Customizer). */
body.lpt-hide-legacy-bar .mtsnb,
body.lpt-hide-legacy-bar .mtsnb-show,
body.lpt-hide-legacy-bar > header.gm-navbar { display: none !important; }
body.lpt-hide-legacy-bar { padding-top: 0 !important; }

/* 6. Footer ---------------------------------------------------------------- */
.cta-band { background: var(--azul) url("../img/tile-light.svg") right -40px center / 220px repeat-y; color: #e6e2d8; }
.cta-band__inner { display: grid; gap: 28px; align-items: center; padding-block: clamp(48px, 7vw, 80px); }
@media (min-width: 900px) { .cta-band__inner { grid-template-columns: 1.4fr 1fr; } }
.cta-band__title { color: #fff; font-size: clamp(30px, 4vw, 46px); }
.cta-band__text { max-width: 600px; margin: 0; }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (min-width: 900px) { .cta-band__actions { justify-content: flex-end; } }

.site-footer { background: var(--night); color: #b9b3a6; font-size: 15px; padding-top: clamp(48px, 7vw, 80px); }
.site-footer a { color: #e7e2d6; }
.site-footer a:hover { color: var(--gold); }
.site-footer__top { display: grid; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid rgba(255, 255, 255, .08); }
@media (min-width: 960px) { .site-footer__top { grid-template-columns: 300px 1fr; gap: 64px; } }
.site-footer__name { display: inline-block; font-family: var(--serif); font-size: 30px; font-weight: 600; color: #f5f4f0; text-decoration: none; line-height: 1.1; }
.site-footer__name:hover { color: var(--gold); }
.site-footer__brand p { margin: 18px 0; }
.phones--footer { color: #f5f4f0; font-weight: 600; gap: 8px; }
.site-footer__widgets { display: grid; gap: 32px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.site-footer .widget-title { font-family: var(--sans); font-size: 12.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin: 0 0 10px; }
.site-footer .widget { margin-bottom: 24px; }
.site-footer .widget p { margin-bottom: .6em; }
.site-footer .widget img { max-width: 120px !important; }
.site-footer .widget center { text-align: left; }
.newsletter { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; padding: 48px 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.newsletter > br { display: none; }
.newsletter .ml-form-embedContainer { flex: 0 1 440px; width: auto !important; margin: 0 !important; }
.newsletter .ml-form-embedContainer .ml-form-align-center { text-align: center; }
/* Bring the MailerLite embeds (styled by MailerLite with ID selectors) in line with the brand. */
body .newsletter #mlb2-5992638.ml-form-embedContainer .ml-form-embedWrapper,
body .newsletter #mlb2-5625344.ml-form-embedContainer .ml-form-embedWrapper { border: 0 !important; border-radius: var(--radius) !important; overflow: hidden; }
body .newsletter #mlb2-5625344.ml-form-embedContainer .ml-form-embedWrapper { background-color: var(--night-2) !important; border: 1px solid rgba(255, 255, 255, .1) !important; }
body .newsletter #mlb2-5625344.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent h4 { color: #f5f4f0 !important; font-family: var(--serif) !important; font-size: 26px !important; font-weight: 600 !important; }
body .newsletter #mlb2-5625344.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedContent p { color: #b9b3a6 !important; }
body .newsletter #mlb2-5992638.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody button.primary,
body .newsletter #mlb2-5625344.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody button.primary { background-color: var(--gold) !important; border-color: var(--gold) !important; color: var(--night) !important; border-radius: 999px !important; font-family: var(--sans) !important; }
body .newsletter #mlb2-5992638.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody button.primary:hover,
body .newsletter #mlb2-5625344.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody button.primary:hover { background-color: #d4bc7d !important; border-color: #d4bc7d !important; }
body .newsletter .ml-form-embedContainer .ml-form-embedWrapper .ml-form-fieldRow input, body .newsletter .ml-form-embedContainer .ml-form-embedWrapper .horizontal-fields input { border-radius: 999px !important; }
.site-footer__bottom { padding: 28px 0 40px; font-size: 13.5px; display: grid; gap: 10px; }
.footer-links { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0 0 6px; padding: 0; }
.footer-links a { text-decoration: none; font-weight: 500; }
.site-footer__legal, .site-footer__copy { margin: 0; color: #8e887b; }
.site-footer__legal a { color: #b9b3a6; }

.mobile-bar { display: none; }
@media (max-width: 760px) {
	.mobile-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: grid; grid-template-columns: 1fr 1.6fr; gap: 8px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(15, 15, 14, .96); transform: translateY(110%); transition: transform .3s; }
	.mobile-bar.is-visible { transform: none; }
	.mobile-bar a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border-radius: 999px; font-weight: 600; text-decoration: none; }
	.mobile-bar__call { color: #f5f4f0; border: 1px solid rgba(245, 244, 240, .3); }
	.mobile-bar__book { background: var(--gold); color: var(--night); }
	body { padding-bottom: 72px; }
}

/* 7. Home ------------------------------------------------------------------ */
.hero { position: relative; overflow: hidden; padding-block: clamp(40px, 6vw, 88px) clamp(56px, 8vw, 110px); }
.hero::before { content: ""; position: absolute; inset: 0 0 auto auto; width: 46%; height: 100%; background: url("../img/tile.svg") center / 88px repeat; opacity: .5; -webkit-mask-image: linear-gradient(to left, #000 30%, transparent); mask-image: linear-gradient(to left, #000 30%, transparent); pointer-events: none; }
.hero__inner { position: relative; display: grid; gap: clamp(36px, 5vw, 64px); align-items: center; }
@media (min-width: 980px) { .hero__inner { grid-template-columns: 1.05fr 1fr; } }
.hero__title { font-size: clamp(42px, 6.2vw, 78px); line-height: 1.02; margin-bottom: 22px; }
.hero__text { font-size: clamp(17px, 1.6vw, 20px); max-width: 560px; color: var(--text); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0 34px; }
.hero__trust { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 14px 26px; font-size: 14.5px; color: var(--ink); font-weight: 500; }
.hero__trust li { display: inline-flex; align-items: center; gap: 8px; }
.hero__trust .icon { color: var(--gold-dark); }
.hero__media { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px; aspect-ratio: 1 / 1; max-height: 620px; }
.hero__media--single { display: block; aspect-ratio: 4 / 5; }
.hero__media--single img { width: 100%; height: 100%; object-fit: cover; border-radius: 220px 220px var(--radius) var(--radius); box-shadow: var(--shadow-lg); }
.hero__tile { position: relative; display: block; overflow: hidden; border-radius: var(--radius); box-shadow: var(--shadow); background: var(--sand); }
.hero__tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.hero__tile:hover img { transform: scale(1.05); }
.hero__tile span { position: absolute; left: 12px; bottom: 12px; padding: 6px 12px; border-radius: 999px; background: rgba(247, 244, 238, .92); color: var(--ink); font-size: 13px; font-weight: 600; }
.hero__tile--1 { border-radius: 180px 180px var(--radius) var(--radius); }
.hero__tile--4 { border-radius: var(--radius) var(--radius) 180px var(--radius); }

.dest-grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.dest { display: flex; flex-direction: column; background: var(--paper); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); text-decoration: none; color: var(--text); transition: transform .25s, box-shadow .25s; }
.dest:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); color: var(--text); }
.dest__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--sand); }
.dest__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.dest:hover .dest__media img { transform: scale(1.05); }
.dest__body { display: flex; flex-direction: column; gap: 8px; padding: 22px 22px 24px; flex: 1; }
.dest__title { font-family: var(--serif); font-size: 26px; font-weight: 600; color: var(--ink); line-height: 1.15; }
.dest__text { font-size: 15px; color: var(--muted); line-height: 1.6; flex: 1; }
.dest__link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14.5px; color: var(--gold-dark); }

.why { display: grid; gap: 40px; }
@media (min-width: 980px) { .why { grid-template-columns: 1fr 1.4fr; gap: 72px; align-items: start; } .why__intro { position: sticky; top: calc(var(--header-h) + 32px); } }
.why__intro p:not(.eyebrow) { margin: 18px 0 24px; font-size: 18px; }
.why__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.why__list li { padding: 26px; border-radius: var(--radius); background: var(--bg); border: 1px solid var(--line); }
.why__list h3 { font-size: 24px; margin: 14px 0 8px; }
.why__list p { margin: 0; font-size: 15.5px; color: var(--muted); }
.why__icon { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--gold-soft); color: var(--gold-dark); }

.directory { background: linear-gradient(var(--sand), var(--bg)); }
.directory__filter { position: relative; flex: 1 1 320px; max-width: 420px; }
.directory__filter .icon { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.directory__filter input { width: 100%; min-height: 52px; padding: 12px 18px 12px 48px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); font: 16px var(--sans); color: var(--ink); }
.directory__filter input:focus { outline: none; border-color: var(--gold-dark); box-shadow: 0 0 0 4px var(--gold-soft); }
.directory__empty { padding: 16px 0; color: var(--muted); }
.directory__groups { display: grid; gap: 14px; }
.dir-group { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.dir-group summary { display: flex; align-items: center; gap: 14px; padding: 20px 24px; cursor: pointer; list-style: none; }
.dir-group summary::-webkit-details-marker { display: none; }
.dir-group__title { font-family: var(--serif); font-size: 26px; font-weight: 600; color: var(--ink); }
.dir-group__count { font-size: 13px; font-weight: 600; padding: 2px 10px; border-radius: 999px; background: var(--gold-soft); color: var(--gold-dark); }
.dir-group summary .icon { margin-left: auto; transition: transform .2s; color: var(--muted); }
.dir-group[open] summary .icon { transform: rotate(90deg); }
.dir-list { list-style: none; margin: 0; padding: 4px 24px 24px; columns: 3 280px; column-gap: 32px; }
.dir-list li { break-inside: avoid; padding: 6px 0; border-bottom: 1px dashed var(--line); font-size: 15px; line-height: 1.45; }
.dir-list a { color: var(--ink); text-decoration: none; }
.dir-list a:hover { color: var(--gold-dark); text-decoration: underline; }
.dir-list li[hidden] { display: none; }

.video { display: grid; gap: 36px; align-items: center; }
@media (min-width: 900px) { .video { grid-template-columns: 1fr 1.5fr; gap: 64px; } }
.video__copy .section-title { margin-bottom: 26px; }
.video__frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; background: #000; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video__poster { position: absolute; inset: 0; padding: 0; border: 0; background: none; cursor: pointer; }
.video__poster img { width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: opacity .3s; }
.video__poster:hover img { opacity: 1; }
.video__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 78px; height: 78px; border-radius: 50%; background: var(--gold); color: var(--night); box-shadow: 0 10px 30px rgba(0, 0, 0, .4); }

/* 8. Pages ----------------------------------------------------------------- */
.page-hero { position: relative; background: var(--sand); border-bottom: 1px solid var(--line); overflow: hidden; }
.page-hero::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 34%; background: url("../img/tile.svg") center / 72px repeat; opacity: .55; -webkit-mask-image: linear-gradient(to left, #000, transparent); mask-image: linear-gradient(to left, #000, transparent); pointer-events: none; }
.page-hero__inner { position: relative; z-index: 1; padding-block: clamp(32px, 5vw, 64px); }
.page-hero__title { font-size: clamp(34px, 5vw, 60px); max-width: 900px; margin-bottom: 0; }
.page-hero__desc { max-width: 680px; margin-top: 16px; font-size: 18px; }
.page-hero__search { margin-top: 24px; }
.page-hero__facts { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 22px 0 0; padding: 0; font-size: 14.5px; font-weight: 500; color: var(--ink); }
.page-hero__facts li { display: inline-flex; align-items: center; gap: 6px; }
.page-hero__facts .icon { color: var(--gold-dark); width: 18px; height: 18px; }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.post-meta { margin: 16px 0 0; color: var(--muted); font-size: 14.5px; }
.post-cover { margin-top: 40px; margin-bottom: 0; }
.post-cover img { width: 100%; border-radius: var(--radius); }
.page-body { padding-block: clamp(36px, 5vw, 64px); }
.post-tags { margin-top: 32px; }
.post-tags a { display: inline-block; margin: 0 6px 6px 0; padding: 4px 12px; border-radius: 999px; background: var(--paper); border: 1px solid var(--line); font-size: 13.5px; text-decoration: none; color: var(--text); }

.help-box { margin-bottom: clamp(40px, 6vw, 72px); }
.help-box__inner { display: grid; gap: 24px; align-items: center; padding: clamp(26px, 4vw, 44px); background: var(--paper); border: 1px solid var(--line); border-radius: calc(var(--radius) + 6px); box-shadow: var(--shadow); position: relative; overflow: hidden; }
.help-box__inner::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--gold); }
@media (min-width: 860px) { .help-box__inner { grid-template-columns: 1fr auto; } }
.help-box__title { font-size: clamp(26px, 3vw, 34px); }
.help-box__text p { margin-bottom: 10px; }
.help-box__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.related { padding-bottom: clamp(48px, 7vw, 88px); }
.photo-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); padding-bottom: 64px; }
.photo-grid__item { display: block; border-radius: var(--radius-sm); overflow: hidden; aspect-ratio: 4 / 3; }
.photo-grid__item img { width: 100%; height: 100%; object-fit: cover; }
.empty { padding: 40px; background: var(--paper); border-radius: var(--radius); text-align: center; }
.layout-sidebar__aside .widget { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; margin-bottom: 20px; }
.layout-sidebar__aside .widget-title { font-size: 24px; }
.layout-sidebar__aside ul { margin: 0; padding-left: 18px; }
.comments { padding-bottom: 64px; }

/* 9. Legacy content compatibility -------------------------------------------
   300+ pages were written for the old fixed-width theme: <center>, <font>,
   fixed pixel widths, inline iframes, plugin shortcodes. These rules make that
   content responsive and on-brand without editing a single page.            */
.entry { max-width: 920px; margin-inline: auto; overflow-wrap: break-word; }
.wrap--narrow .entry { max-width: none; }
.entry::after { content: ""; display: table; clear: both; }
.entry > :first-child { margin-top: 0; }
.entry h1, .entry h2, .entry h3, .entry h4, .entry h5, .entry h6 { margin: 1.4em 0 .5em; padding: 0; }
.entry h1 { font-size: clamp(30px, 3.4vw, 40px); }
.entry h2 { font-size: clamp(27px, 3vw, 34px); }
.entry h3 { font-size: clamp(23px, 2.4vw, 27px); }
.entry h4 { font-size: 22px; }
.entry h5, .entry h6 { font-family: var(--sans); font-size: 17px; font-weight: 600; }
.entry ul, .entry ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.entry li { margin-bottom: .35em; }
.entry ul li::marker { color: var(--gold-dark); }
.entry blockquote { margin: 1.6em 0; padding: 6px 0 6px 24px; border-left: 3px solid var(--gold); font-family: var(--serif); font-size: 23px; line-height: 1.45; color: var(--ink); }
.entry hr { border: 0; height: 1px; background: var(--line); margin: 2em 0; }
.entry table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: 15.5px; background: var(--paper); }
.entry th, .entry td { padding: 10px 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.entry img { max-width: 100%; height: auto; border-radius: 6px; }
.entry img[width="1"], .entry img[height="1"] { border-radius: 0; }
.entry iframe, .entry embed, .entry object, .entry video { max-width: 100%; }
.entry iframe[src*="youtube"], .entry iframe[src*="vimeo"] { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: var(--radius-sm); }
/* Fixed-width wrappers from the old theme era (e.g. style="width:580px"). */
.entry div[style*="width"], .entry table[style*="width"], .entry table[width], .entry center, .entry p[style*="width"], .entry span[style*="width"] { max-width: 100% !important; }
.entry center { display: block; }
.entry font[size="5"], .entry font[size="6"], .entry font[size="7"] { font-size: 1.4em; line-height: 1.3; }
.entry .alignleft { float: left; margin: .3em 1.6em 1em 0; }
.entry .alignright { float: right; margin: .3em 0 1em 1.6em; }
.entry .aligncenter, .entry img.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.entry .alignnone { margin: .3em 0 1em; }
@media (max-width: 600px) { .entry .alignleft, .entry .alignright { float: none; margin: 0 auto 1em; display: block; } }
.entry .wp-caption { max-width: 100%; }
.entry .wp-caption-text, .entry figcaption { font-size: 14px; color: var(--muted); margin-top: 6px; }
.clear { clear: both; }
/* Ported from the old theme's custom CSS option (used on ~70 pages). */
.responsive-container { position: relative; padding-bottom: 53.25%; padding-top: 30px; height: 0; overflow: hidden; }
.responsive-container, .responsive-container iframe { max-width: 760px; max-height: 428px; }
.responsive-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; aspect-ratio: auto; }
.responsive { width: 100%; height: auto; }
.boxed { border: 1px solid var(--gold); border-radius: var(--radius-sm); padding: 16px; }
.contactform { width: 250px; max-width: 100%; }
.grecaptcha-badge { visibility: hidden; }
/* Ported from the old theme's "Additional CSS" (Customizer CSS is stored per theme). */
@media (max-width: 768px) { .page-id-725 #form, .page-id-725 #map { display: block; float: unset; width: 100% !important; } }
#popmake-10809 .nf-form-content label { font-size: 15px; }
#popmake-10809 .nf-form-content input.ninja-forms-field { height: unset; padding: 5px; }
#popmake-10809 .nf-field-container { margin-bottom: 10px; }
#popmake-10809 .nf-error.field-wrap .nf-field-element:after, #popmake-10809 .nf-pass.field-wrap .nf-field-element:after { height: 30px; line-height: 30px; }

/* Plugin content: accordion toggles (smpl-shortcodes). */
.entry .accordion { margin: 1.4em 0; border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; background: var(--paper); }
.entry p.trigger { margin: 0; padding: 16px 20px 16px 48px; background-color: var(--paper); background-position: 18px center; border-top: 1px solid var(--line); border-bottom: 0; font-size: 17px; }
.entry .accordion p.trigger:first-child { border-top: 0; }
.entry p.trigger:hover, .entry p.trigger.active { background-color: var(--bg); }
.entry p.trigger a { color: var(--ink); font-weight: 600; }
.entry .toggle_container { border-top: 1px solid var(--line); }
.entry .toggle_container .block { padding: 18px 22px 8px; }
/* Xola booking buttons inside content. */
.entry .xola-checkout, .entry .xola-custom { cursor: pointer; }
.entry button.xola-checkout, .entry a.xola-checkout:not(:has(img)) { display: inline-flex; align-items: center; min-height: 46px; padding: 10px 22px; border-radius: 999px; border: 0; background: var(--gold); color: var(--night); font: 600 15px var(--sans); text-decoration: none; }
/* Old inline-styled "Book Now" buttons (e.g. style="background:LimeGreen; font-size:7.4em") — keep them, tame the size. */
.entry a[style*="background"][style*="font-size"] { display: inline-block; font-size: 20px !important; line-height: 1.3 !important; padding: 12px 24px 12px 44px !important; border-radius: 999px !important; text-decoration: none; max-width: 100%; }
/* Galleries: keep plugin layouts intact, just remove theme image radius inside them. */
.entry .foogallery img, .entry .easy-image-gallery img { border-radius: 0; }
.entry .foogallery { margin-block: 1.4em; }

/* 10. Utilities ------------------------------------------------------------ */
.page-links { margin-top: 2em; }

/* Images whose file is missing on the server are hidden by main.js */
.lpt-img-missing { display: none !important; }

/* Lead sidebar (enquiry form on every page except the homepage) -------------- */
.page-aside { margin-top: 40px; max-width: 460px; margin-inline: auto; width: 100%; }
.lead-box { min-height: 120px; }
.layout-sidebar__aside .lead-box { margin-bottom: 20px; }
@media (min-width: 1080px) {
	.page-body.has-aside { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(32px, 4vw, 56px); align-items: start; }
	.page-body.has-aside.wrap--narrow { max-width: calc(var(--wrap) + var(--gutter) * 2); }
	.page-body.has-aside .entry { margin-inline: 0; width: 100%; }
	.page-body.has-aside .post-tags { grid-column: 1; }
	.page-aside { grid-column: 2; grid-row: 1 / span 3; margin: 0; max-width: none; position: sticky; top: calc(var(--header-h) + 20px); }
}

/* Comment form fields must never be wider than the screen */
.comment-form textarea, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"] { width: 100%; max-width: 100%; box-sizing: border-box; }

/* Reviews & trust */
.section-head--center { text-align: center; margin-inline: auto; max-width: 720px; }
.rev-stats { list-style: none; margin: 36px 0 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); text-align: center; }
.rev-stats strong { display: block; font-family: var(--font-display, inherit); font-size: clamp(36px, 5vw, 54px); line-height: 1.1; color: var(--gold-dark); }
.rev-stats span { color: var(--muted); font-size: 15px; }
.rev-badges { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.rev-badges li { display: grid; gap: 4px; justify-items: center; text-align: center; padding: 22px 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.rev-badges__icon { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--gold-soft); color: var(--gold-dark); margin-bottom: 6px; }
.rev-badges small { color: var(--muted); }
.rev-quotes { display: grid; gap: 18px; margin-top: 36px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.rev-quote { margin: 0; padding: 26px; border-radius: var(--radius); background: var(--paper); border: 1px solid var(--line); }
.rev-quote__stars { color: var(--gold-dark); letter-spacing: 3px; }
.rev-quote blockquote { margin: 10px 0 14px; padding: 0; border: 0; font-size: 16.5px; }
.rev-quote blockquote p { margin: 0; }
.rev-quote figcaption span { color: var(--muted); font-weight: 400; }
.rev-cta { text-align: center; margin: 36px 0 0; }
.lead-trust { margin: 0 0 12px; padding: 12px 14px; border-radius: 10px; background: var(--gold-soft); font-size: 14px; display: grid; gap: 2px; }
.lead-trust span { color: var(--muted); }

/* Promo banner */
.promo-banner-wrap { padding: clamp(8px, 2vw, 24px) 0; }
.promo-banner { display: block; overflow: hidden; border-radius: var(--radius); box-shadow: 0 10px 30px rgba(0,0,0,.14); background: #3b2b1c; }
.promo-banner picture, .promo-banner__img { display: block; width: 100%; height: auto; }
.promo-banner__img { transition: transform .6s ease; }
a.promo-banner:hover .promo-banner__img, a.promo-banner:focus-visible .promo-banner__img { transform: scale(1.025); }
a.promo-banner:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
@media (max-width: 640px) {
	.promo-banner picture, .promo-banner__img { aspect-ratio: 1.45; object-fit: cover; object-position: 50% 50%; }
}
@media (prefers-reduced-motion: reduce) { .promo-banner__img { transition: none; } }

/* Touch and small-screen polish: comfortable tap targets, no iOS zoom on inputs, scrollable tables */
@media (hover: none), (max-width: 900px) {
	.phones a, .help-box a[href^="tel"], .site-footer a[href^="tel"] { display: inline-flex; align-items: center; min-height: 44px; }
	.text-link { min-height: 44px; }
	.footer-links a, .site-footer__legal a, .breadcrumbs a { display: inline-flex; align-items: center; min-height: 40px; }
	.site-footer input[type="checkbox"], .entry input[type="checkbox"], .comment-form input[type="checkbox"] { width: 22px; height: 22px; }
	.dir-list a { display: block; padding-block: 10px; }
}
@media (max-width: 900px) {
	input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], input[type="number"], select, textarea { font-size: 16px; }
	.entry table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.entry img, .entry video { height: auto; }
	.entry pre, .entry code { overflow-x: auto; max-width: 100%; }
}
@media (max-width: 380px) {
	.btn { padding-inline: 18px; }
	.hero__cta, .hero__actions { flex-direction: column; align-items: stretch; }
}
@supports (padding: max(0px)) {
	.wrap { padding-left: max(var(--gutter, 16px), env(safe-area-inset-left)); padding-right: max(var(--gutter, 16px), env(safe-area-inset-right)); }
}
.entry a, .entry li, .entry td, .comment-content { overflow-wrap: anywhere; }
@media (max-width: 900px) { .site-footer input[type="checkbox"], .entry input[type="checkbox"], .comment-form input[type="checkbox"] { width: 24px; height: 24px; } }
.site-main p, .site-main a, .site-main li, .site-main td, .site-main h1, .site-main h2, .site-main h3 { overflow-wrap: anywhere; }

.nav-toggle, .icon-btn { touch-action: manipulation; -webkit-tap-highlight-color: transparent; cursor: pointer; }

/* Keep icons at their size even if a plugin styles generic "svg" or ".icon" elements */
svg.icon { width: 20px; height: 20px; min-width: 20px; max-width: none; }
.icon-btn svg.icon { width: 22px; height: 22px; min-width: 22px; }
.btn svg.icon { width: 18px; height: 18px; min-width: 18px; }

/* Footer embed: heights measured from the real footer at each screen width, so it shows in full even if no script runs.
   When the script does run it replaces these with the exact height. The dark band hides any small difference. */
.footer-embed { background: #121518; }
.footer-embed__frame { width: 100%; height: 695px; min-height: 695px; }
@media (max-width: 1023px) { .footer-embed__frame { height: 715px; min-height: 715px; } }
@media (max-width: 767px) { .footer-embed__frame { height: 1135px; min-height: 1135px; } }
@media (max-width: 620px) { .footer-embed__frame { height: 1175px; min-height: 1175px; } }
@media (max-width: 440px) { .footer-embed__frame { height: 1195px; min-height: 1195px; } }
@media (max-width: 375px) { .footer-embed__frame { height: 1215px; min-height: 1215px; } }
@media (max-width: 340px) { .footer-embed__frame { height: 1270px; min-height: 1270px; } }
