/* =====================================================================
   ARTEMIS, editorial bridal theme
   Olive & Stone, botanical destination palette. No dark mode.
   ================================================================== */

:root {
	/* Olive & Stone — botanical destination palette (distinct from nude/peach). */
	--bg:        #F7F6F0;  /* soft stone, near-white base */
	--bg-alt:    #ECE9DD;  /* warmer greige for alternating sections */
	--ink:       #23251E;  /* olive-ink */
	--ink-soft:  #565A4C;  /* muted olive-grey text */
	--line:      #DBD6C6;  /* stone hairline */
	--clay:      #5E6B45;  /* deep olive/sage, the signature accent (shapes/fills) */
	--clay-deep: #3C4430;  /* forest olive, hover/detail */
	--accent:    #5E6B45;
	--accent-ink:#46532F;  /* legible deep olive for small labels on stone */
	--ivory:     #FBFAF5;  /* warm off-white for text on dark olive */

	--shell:     1240px;
	--gutter:    clamp(1.25rem, 5vw, 5rem);

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

	--ease: cubic-bezier(.22, .61, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: hidden; }

body {
	margin: 0;
	overflow-x: hidden;
	max-width: 100%;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--sans);
	font-weight: 300;
	font-size: 17px;
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; }

/* Pointer cursor on every interactive element. */
a[href], button, label[for], summary, select,
[role="button"], [role="link"], [role="tab"], [onclick], [data-video],
input[type="submit"], input[type="button"], input[type="checkbox"], input[type="radio"],
.btn, .phone--poster, .nav-toggle { cursor: pointer; }
button:disabled, [aria-disabled="true"], .btn:disabled { cursor: not-allowed; }

h1, h2, h3, h4 { margin: 0; font-weight: 400; }

::selection { background: var(--accent-ink); color: #fff; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px;
	clip: rect(1px, 1px, 1px, 1px); overflow: hidden; white-space: nowrap;
}
.skip-link {
	position: absolute; left: -999px; top: 0; z-index: 200;
	background: var(--ink); color: #fff; padding: .75rem 1.25rem;
}
.skip-link:focus { left: 1rem; top: 1rem; }

/* ----------------------------------------------------- layout primitives */
.shell { width: 100%; max-width: var(--shell); margin-inline: auto; padding-inline: var(--gutter); }

.section { padding-block: clamp(2.75rem, 7vw, 9rem); }
.section--alt    { background: var(--bg-alt); }
.section--ink    { background: var(--ink); color: var(--ivory); }
.section--accent { background: var(--clay-deep); color: var(--ivory); }
.section--accent .btn--fill { background: var(--ivory); color: var(--ink); }
.section--accent .btn--fill:hover { background: var(--clay); color: var(--ivory); }

/* ----------------------------------------------------------- typography */
.eyebrow {
	display: inline-block;
	font-family: var(--sans);
	font-weight: 500;
	font-size: .72rem;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--accent-ink);
	margin-bottom: 1.4rem;
}
.section--ink .eyebrow { color: #AEB893; }
.section--accent .eyebrow { color: #B7C09C; }

.display {
	font-family: var(--serif);
	font-weight: 500;
	font-size: clamp(2.2rem, 4.8vw, 4rem);
	line-height: 1.14;
	letter-spacing: 0;
}
.display--center { text-align: center; }

.prose p {
	margin: 0 0 1.25rem;
	color: var(--ink-soft);
	max-width: 60ch;
}
.section--ink .prose p { color: #d8cfc4; }
.section--accent .prose p { color: #D6D9C6; }
.prose p:last-child { margin-bottom: 0; }
.prose--center { margin-inline: auto; }
.prose--center p { margin-inline: auto; text-align: center; }
.prose--page { max-width: 760px; margin-inline: auto; }
.prose--page p, .prose--page li { color: var(--ink-soft); max-width: none; }
.prose--page h2, .prose--page h3 { font-family: var(--serif); font-weight: 500; margin: 2.5rem 0 1rem; line-height: 1.15; }
.prose--page a { color: var(--clay-deep); border-bottom: 1px solid var(--line); }

/* ----------------------------------------------------------- buttons */
.btn {
	display: inline-flex; align-items: center; gap: .6rem;
	font-family: var(--sans); font-weight: 500;
	font-size: .78rem; letter-spacing: .18em; text-transform: uppercase;
	padding: 1.05rem 1.9rem; border: 1px solid transparent;
	cursor: pointer; transition: all .45s var(--ease);
	line-height: 1;
}
.btn--sm { padding: .7rem 1.2rem; font-size: .7rem; }
.btn--fill { background: var(--ink); color: var(--ivory); }
.btn--fill:hover { background: var(--clay-deep); }
.btn--line { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn--line:hover { background: var(--ink); color: var(--ivory); }
.btn svg { transition: transform .45s var(--ease); }
.btn:hover svg { transform: translateX(4px); }
.section--ink .btn--fill { background: var(--ivory); color: var(--ink); }
.section--ink .btn--fill:hover { background: var(--clay); color: #fff; }

/* =========================================================== HEADER */
.site-header {
	position: fixed; inset: 0 0 auto 0; z-index: 90;
	transition: background .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
	border-bottom: 1px solid transparent;
}
.site-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	gap: 2rem; height: 92px;
}
.brand__word {
	font-family: var(--serif); font-size: 1.7rem; font-weight: 500;
	letter-spacing: .28em; text-transform: uppercase; padding-left: .28em;
	white-space: nowrap;
}
.brand { display: inline-flex; align-items: center; position: relative; }
.brand__logo, .custom-logo { width: 60px; height: 60px; object-fit: contain; display: block; }
/* One mark shows at a time: white over the dark hero, rose-gold once solid. */
.brand__logo--light { display: none; }
.has-hero .site-header:not(.is-solid) .brand__logo--color { display: none; }
.has-hero .site-header:not(.is-solid) .brand__logo--light { display: block; }

.site-nav__list {
	display: flex; gap: 1.7rem; list-style: none; margin: 0; padding: 0;
	flex-wrap: nowrap;
}
.site-nav__list a {
	font-size: .76rem; letter-spacing: .14em; text-transform: uppercase;
	font-weight: 400; position: relative; padding-block: .4rem;
	white-space: nowrap;
}
.site-nav__list a::after {
	content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 1px;
	background: currentColor; transition: width .45s var(--ease);
}
.site-nav__list a:hover::after { width: 100%; }

.site-header__actions { display: flex; align-items: center; gap: 1.2rem; }

/* Default (inner pages): solid header with dark text. */
.site-header {
	background: rgba(251,248,243,.92);
	backdrop-filter: saturate(140%) blur(10px);
	border-bottom-color: var(--line);
	color: var(--ink);
}
.site-header.is-solid .site-header__inner { height: 74px; }

/* Homepage with a dark hero: transparent + light text until scrolled. */
.has-hero .site-header:not(.is-solid) {
	background: transparent; backdrop-filter: none; border-bottom-color: transparent;
	color: var(--ivory);
}
.has-hero .site-header:not(.is-solid) .btn--line { color: var(--ivory); border-color: rgba(255,255,255,.55); }
.has-hero .site-header:not(.is-solid) .btn--line:hover { background: var(--ivory); color: var(--ink); border-color: var(--ivory); }

.nav-toggle {
	display: none; background: none; border: 0; color: inherit; cursor: pointer;
	width: 44px; height: 44px; align-items: center; justify-content: center;
}
.nav-toggle__open, .nav-toggle__close { width: 24px; height: 24px; }
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: inline-block; }

/* Switch to the hamburger before the desktop nav can crowd / wrap.
   (Placed after the base rule so it wins at <=1024px.) */
@media (max-width: 1024px) {
	.site-nav, .site-header__actions .btn--line { display: none; }
	.nav-toggle { display: inline-flex; }
}

/* mobile nav — must fit the viewport without scrolling */
.mobile-nav {
	position: fixed; inset: 0; z-index: 85;
	background: var(--bg);
	padding: clamp(70px, 14vh, 92px) var(--gutter) clamp(1rem, 3vh, 1.75rem);
	height: 100vh; height: 100svh; overflow: hidden;
	animation: navFade .4s var(--ease);
}
@keyframes navFade { from { opacity: 0; } to { opacity: 1; } }
.mobile-nav[hidden] { display: none; }
.mobile-nav__inner { display: flex; flex-direction: column; height: 100%; }
.mobile-nav__brand { display: block; text-align: center; margin: 0 auto 2rem; }
.mobile-nav__logo { width: 92px; height: 92px; object-fit: contain; display: inline-block; }
/* When the mobile menu is open, hide the header mark so only the in-menu one shows. */
.site-header:has( [data-nav-toggle][aria-expanded="true"] ) .brand { visibility: hidden; }
.mobile-nav__list { list-style: none; margin: 0 0 auto; padding: 0; }
.mobile-nav__list li { border-bottom: 1px solid var(--line); }
.mobile-nav__list a {
	display: flex; align-items: center; justify-content: space-between;
	padding: clamp(.55rem, 1.4vh, 1.1rem) 0; font-family: var(--serif);
	font-size: clamp(1.25rem, 4.2vh, 1.9rem); font-weight: 300; line-height: 1.1;
}
.mobile-nav__list a::after { content: "→"; color: var(--accent-ink); font-size: 1.1rem; opacity: .6; }
.mobile-nav__foot { margin-top: clamp(.9rem, 2.4vh, 2rem); }
.mobile-nav__cta { width: 100%; justify-content: center; }
.mobile-nav__contact { display: flex; gap: .8rem; margin-top: clamp(.6rem, 1.5vh, 1.1rem); }
.mobile-nav__contact a {
	flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	padding: clamp(.55rem, 1.3vh, .9rem) 1rem; border: 1px solid var(--line); color: var(--ink);
	font-size: .78rem; letter-spacing: .12em; text-transform: uppercase;
}
.mobile-nav__contact a:hover { border-color: var(--accent-ink); color: var(--accent-ink); }
.mobile-nav__social { display: flex; gap: 1.2rem; justify-content: center; margin-top: clamp(.6rem, 1.5vh, 1.4rem); color: var(--accent-ink); }
.mobile-nav__social a:hover { color: var(--ink); }

/* =========================================================== HERO */
.hero {
	position: relative; min-height: 100svh; display: flex; align-items: flex-end;
	color: var(--ivory); overflow: hidden;
}
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.hero__img--placeholder {
	width: 100%; height: 100%;
	background:
		radial-gradient(120% 90% at 78% 12%, #8a976a 0%, transparent 55%),
		radial-gradient(130% 120% at 12% 88%, #3c4430 0%, transparent 60%),
		linear-gradient(150deg, #5e6b45 0%, #23251e 100%);
}
.hero__veil {
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, rgba(25,18,13,.45) 0%, rgba(25,18,13,.1) 32%, rgba(25,18,13,.72) 100%),
		linear-gradient(90deg, rgba(25,18,13,.4) 0%, rgba(25,18,13,0) 55%);
}
.hero__inner { position: relative; z-index: 2; padding-bottom: clamp(2.5rem, 7vw, 7rem); padding-top: clamp(96px, 20vw, 140px); }
.hero .eyebrow { color: rgba(255,255,255,.88); }
.hero__title {
	font-family: var(--serif); font-weight: 500;
	font-size: clamp(3.4rem, 11.5vw, 9rem); line-height: .98;
	letter-spacing: .08em; text-transform: uppercase; margin: 0;
}
.hero__intro {
	font-family: var(--serif); font-size: clamp(1.25rem, 2.3vw, 1.75rem);
	font-style: italic; font-weight: 400; line-height: 1.5;
	max-width: 36ch; margin: 1.6rem 0 2.4rem; color: rgba(255,255,255,.92);
}
.hero__actions { display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.hero__loc { font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.82); }
.hero__scroll {
	position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
	z-index: 2; color: var(--ivory); opacity: .8;
	animation: bob 2.4s var(--ease) infinite;
}
@keyframes bob { 0%,100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 8px); } }

/* =========================================================== SPLIT */
.split__grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 6rem);
	align-items: center;
}
.split__grid--reverse .split__media { order: 2; }
.split__body .display { margin-bottom: 1.8rem; }
.about__more { margin-top: 1.8rem; }

/* ----------------------------------------------------------- media / placeholders */
.media { margin: 0; overflow: hidden; background: var(--bg-alt); position: relative; }
.media img { width: 100%; height: 100%; object-fit: cover; }
.media--placeholder { display: grid; place-items: center; }
.media__mark { color: rgba(35,37,30,.38); }
.media--placeholder::after {
	content: ""; position: absolute; inset: 0; opacity: .4; mix-blend-mode: overlay;
	background-image: radial-gradient(rgba(255,255,255,.18) 1px, transparent 1px);
	background-size: 4px 4px;
}
.media--tone-1 { background: linear-gradient(150deg, #d7dbc4 0%, #8a976a 100%); }
.media--tone-2 { background: linear-gradient(150deg, #b9c196 0%, #4a5536 100%); }
.media--tone-3 { background: linear-gradient(150deg, #e4e4d4 0%, #9aa478 100%); }
.media--tone-4 { background: linear-gradient(150deg, #a7b184 0%, #3c4430 100%); }

/* =========================================================== SERVICES */
.services { border: 1px solid var(--line); padding: clamp(1.8rem, 4vw, 3rem); background: var(--bg); }
.section--alt .services { background: var(--bg); }
.services__label {
	font-size: .72rem; letter-spacing: .24em; text-transform: uppercase;
	color: var(--accent-ink); margin: 0 0 1.5rem;
}
.services__list { list-style: none; margin: 0; padding: 0; }
.services__list li {
	display: flex; align-items: baseline; gap: 1rem;
	padding: .95rem 0; border-bottom: 1px solid var(--line);
	font-family: var(--serif); font-size: 1.5rem; font-weight: 500;
}
.services__list li:last-child { border-bottom: 0; }
.services__list li::before {
	content: ""; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%;
	background: var(--clay); transform: translateY(-4px);
}

/* =========================================================== GLAMOUR */
.glamour__inner { max-width: 820px; margin-inline: auto; text-align: center; }
.glamour__pulls {
	display: flex; align-items: center; justify-content: center; gap: 1.6rem;
	margin-top: 2.8rem;
}
.pull {
	font-family: var(--serif); font-style: italic; font-size: clamp(1.4rem, 3vw, 2rem);
	color: var(--ink);
}
.pull__div { width: 1px; height: 1.6em; background: var(--line); }
.glamour__coda {
	margin-top: 1.6rem; font-size: .8rem; letter-spacing: .2em;
	text-transform: uppercase; color: var(--accent-ink);
}

/* =========================================================== GALLERY */
.gallery__head { max-width: 640px; margin: 0 auto clamp(2.5rem, 5vw, 4rem); text-align: center; }
.gallery__pair {
	display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 3vw, 2.5rem);
}
.gallery__pair .media { width: 100%; }

/* =========================================================== EXPERIENCE */
.experience { background: var(--bg-alt); }
.experience__inner { max-width: 820px; margin-inline: auto; text-align: center; }
.experience__words {
	display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
	gap: 1.4rem; margin-top: 2.8rem;
}
.experience__word {
	font-family: var(--serif); font-size: clamp(1.5rem, 3.4vw, 2.4rem);
	font-weight: 500; letter-spacing: .02em;
}
.experience__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--clay); }

/* =========================================================== BRIDE */
.bride__inner { max-width: 880px; margin-inline: auto; text-align: center; }
.bride__lines { list-style: none; margin: 0 0 2.6rem; padding: 0; }
.bride__lines li {
	font-family: var(--serif); font-style: italic;
	font-size: clamp(1.25rem, 2.6vw, 1.75rem); line-height: 1.5;
	color: var(--ink-soft); padding: .55rem 0;
}
.bride__coda { font-size: clamp(2rem, 4.4vw, 3.4rem); }

/* =========================================================== YOUR DAY */
.day__head { max-width: 640px; margin-bottom: clamp(3rem, 6vw, 5rem); }
.day__head .display { margin: 1.2rem 0 1.4rem; }
.day__intro { color: #D6D9C6; font-size: 1.1rem; }
.day__steps {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1.6rem, 3vw, 2.6rem);
	counter-reset: none;
}
.day__step { border-top: 1px solid rgba(255,255,255,.22); padding-top: 1.6rem; }
.day__num {
	display: block; font-family: var(--serif); font-weight: 300; font-size: 2rem;
	color: #B7C09C; margin-bottom: 1rem;
}
.day__step-title { font-family: var(--serif); font-size: 1.3rem; font-weight: 400; margin-bottom: .7rem; }
.day__step p { color: #C6CAB6; margin: 0; font-size: .96rem; line-height: 1.75; }
.day__closing {
	margin-top: clamp(3rem, 6vw, 5rem); max-width: 48ch;
	font-family: var(--serif); font-style: italic; font-size: clamp(1.2rem, 2.4vw, 1.7rem);
	line-height: 1.55; color: var(--ivory);
}

/* =========================================================== ENQUIRY */
.enquiry__grid {
	display: grid; grid-template-columns: 0.95fr 1.05fr; gap: clamp(2.5rem, 6vw, 6rem);
	align-items: start;
}
.enquiry__intro .display { margin-bottom: 1.6rem; }
.enquiry__direct { margin-top: 2.2rem; display: flex; flex-direction: column; gap: .9rem; }
.enquiry__direct a { display: inline-flex; align-items: center; gap: .7rem; color: var(--clay-deep); font-size: .95rem; letter-spacing: .02em; }
.enquiry__direct a:hover { color: var(--ink); }

.enquiry__form {
	display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem 1.4rem;
	background: var(--bg); border: 1px solid var(--line); padding: clamp(1.8rem, 4vw, 2.8rem);
}
.field { display: flex; flex-direction: column; gap: .5rem; grid-column: 1 / -1; }
.field--half { grid-column: span 1; }
.field label { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-soft); }
.field input, .field textarea {
	font-family: var(--sans); font-size: 1rem; font-weight: 300; color: var(--ink);
	background: transparent; border: 0; border-bottom: 1px solid var(--line);
	padding: .7rem 0; transition: border-color .4s var(--ease);
}
.field input:focus, .field textarea:focus { outline: 0; border-bottom-color: var(--clay); }
.field textarea { resize: vertical; min-height: 96px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.enquiry__submit { grid-column: 1 / -1; display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; margin-top: .4rem; }
.enquiry__status { margin: 0; font-size: .92rem; color: var(--clay-deep); }
.enquiry__status.is-error { color: #a4443a; }
.enquiry.is-sent .enquiry__form > :not(.enquiry__submit) { opacity: .4; pointer-events: none; }

/* Contact Form 7 — keep the theme's form design */
.enquiry__form--cf7 .wpcf7-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
.enquiry__form--cf7 .field { grid-column: 1 / -1; }
.enquiry__form--cf7 .field--half { grid-column: span 1; }
.enquiry__form--cf7 .enquiry__submit { grid-column: 1 / -1; }
.enquiry__form--cf7 .wpcf7-form-control-wrap { display: block; width: 100%; }
.enquiry__form--cf7 .field input,
.enquiry__form--cf7 .field textarea { width: 100%; }
.enquiry__form--cf7 .wpcf7-response-output {
	grid-column: 1 / -1; margin: .6rem 0 0 !important; padding: .4rem 0 0 !important;
	border: 0 !important; font-size: .92rem; color: var(--clay-deep); letter-spacing: 0;
}
.wpcf7-not-valid-tip { color: #a4443a; font-size: .74rem; margin-top: .3rem; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { color: #a4443a; }
.wpcf7 form.sent .wpcf7-response-output { color: var(--accent-ink); }
.wpcf7-spinner { margin: .6rem auto 0; }
@media (max-width: 560px) {
	.enquiry__form--cf7 .wpcf7-form { grid-template-columns: 1fr; }
	.enquiry__form--cf7 .field--half { grid-column: 1 / -1; }
}

/* =========================================================== FOOTER */
.site-footer { background: var(--bg-alt); color: var(--ink); padding-block: clamp(2.25rem, 6vw, 6rem); }
.site-footer__top {
	display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem);
	padding-bottom: 2.6rem; border-bottom: 1px solid var(--line);
}
.site-footer__brand { max-width: 30ch; }
.site-footer__word { font-family: var(--serif); font-size: 1.8rem; font-weight: 300; letter-spacing: .26em; text-transform: uppercase; }
.site-footer__logo { height: 70px; width: auto; display: block; margin: 0 0 .2rem -.4rem; }
.site-footer__tag { color: var(--ink-soft); margin: .7rem 0 0; font-size: .95rem; }
.site-footer__loc { color: var(--ink-soft); margin: 1rem 0 0; font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; }
.site-footer__head { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--accent-ink); margin: .2rem 0 1.1rem; font-weight: 500; }
.site-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.site-footer__list a { color: var(--ink-soft); font-size: .95rem; transition: color .25s var(--ease); }
.site-footer__list a:hover { color: var(--accent-ink); }
.site-footer__bottom {
	display: flex; justify-content: space-between; align-items: center; gap: 1.5rem;
	flex-wrap: wrap; padding-top: 2rem;
}
.site-footer__copy, .site-footer__fine { margin: 0; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.site-footer__nav { display: flex; gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.site-footer__nav a { color: var(--ink-soft); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.site-footer__nav a:hover { color: var(--accent-ink); }
@media (max-width: 860px) { .site-footer__top { grid-template-columns: 1fr 1fr; } .site-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .site-footer__top { grid-template-columns: 1fr; } }

/* =========================================================== BLOG bits */
.page-head { padding-top: calc(92px + clamp(1.5rem, 5vw, 6rem)); padding-bottom: clamp(1.5rem,4vw,4rem); }
.page-head__inner { max-width: 820px; }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; }
.post-card__media { display: block; overflow: hidden; }
.post-card__media img { transition: transform .8s var(--ease); width: 100%; }
.post-card:hover .post-card__media img { transform: scale(1.04); }
.post-card__meta { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent-ink); margin: 1.2rem 0 .6rem; }
.post-card__title { font-family: var(--serif); font-size: 1.6rem; font-weight: 500; line-height: 1.2; }
.post-card__excerpt { color: var(--ink-soft); font-size: .98rem; }
.single-thumb { max-width: 720px; margin: 0 auto 2.6rem; overflow: hidden; }
.single-thumb img { width: 100%; display: block; }
.single-nav { max-width: 720px; margin: 2.8rem auto 0; }

/* Journal list (editorial, small thumbnails) */
.journal { display: flex; flex-direction: column; max-width: 880px; margin-inline: auto; }
.journal__item { display: grid; grid-template-columns: 190px 1fr; gap: clamp(1.5rem, 3vw, 2.6rem); align-items: center; padding: clamp(1.8rem, 4vw, 2.6rem) 0; border-top: 1px solid var(--line); }
.journal__item:first-child { border-top: 0; padding-top: 0; }
.journal__media { display: block; overflow: hidden; aspect-ratio: 4 / 5; background: var(--bg-alt); }
.journal__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.journal__item:hover .journal__media img { transform: scale(1.05); }
.journal__meta { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent-ink); margin: 0 0 .6rem; }
.journal__title { font-family: var(--serif); font-weight: 400; font-size: clamp(1.4rem, 2.6vw, 1.95rem); line-height: 1.2; margin: 0 0 .7rem; }
.journal__title a:hover { color: var(--accent-ink); }
.journal__excerpt { color: var(--ink-soft); font-size: .98rem; margin: 0 0 1rem; max-width: 56ch; }
.journal__more { font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent-ink); display: inline-flex; align-items: center; gap: .5rem; }
.journal__more:hover { color: var(--ink); }
@media (max-width: 600px) {
	.journal__item { grid-template-columns: 104px 1fr; gap: 1.1rem; align-items: start; }
}

.pagination { margin-top: 3.5rem; }
.pagination .page-numbers { padding: .4rem .8rem; border: 1px solid var(--line); margin-right: .4rem; }
.pagination .current { background: var(--ink); color: var(--ivory); border-color: var(--ink); }

/* =========================================================== FLOATING DOCK */
.dock {
	position: fixed; right: clamp(1rem, 3vw, 1.75rem); bottom: clamp(1rem, 3vw, 1.75rem);
	z-index: 80; display: flex; flex-direction: column; gap: .7rem;
}
.dock__btn {
	width: 52px; height: 52px; border-radius: 50%; border: 0; cursor: pointer;
	display: grid; place-items: center; color: #fff;
	box-shadow: 0 8px 24px rgba(28,20,12,.22);
	transition: transform .35s var(--ease), box-shadow .35s var(--ease), opacity .35s var(--ease);
}
.dock__btn:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(28,20,12,.3); }
.dock__btn--wa  { background: #25D366; }
.dock__btn--vib { background: #7360F2; }
.dock__btn--top { background: var(--ink); }
.dock__btn--top[hidden] { display: none; }

/* =========================================================== SOCIAL VIDEO */
.social { background: var(--bg); }
.social__head { max-width: 640px; margin: 0 auto clamp(2rem, 4vw, 3.2rem); text-align: center; }
.social__lead { max-width: 46ch; margin: 1.1rem auto 0; color: var(--ink-soft); }
.social__links { display: flex; flex-wrap: wrap; gap: 1.4rem; align-items: center; justify-content: center; margin-top: clamp(2rem, 4vw, 3rem); }

/* carousel */
.social__carousel { position: relative; margin-top: clamp(2rem, 4vw, 3rem); }
.social__track {
	display: flex; gap: clamp(1rem, 2.5vw, 2rem);
	overflow-x: auto; scroll-snap-type: x mandatory;
	padding: .6rem .3rem 1.2rem; scroll-padding-inline: 1rem;
	scrollbar-width: none; -ms-overflow-style: none;
}
.social__track::-webkit-scrollbar { display: none; }
.social__track > .phone { scroll-snap-align: center; }
.phone--poster { cursor: pointer; }
.social__nav {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 6;
	width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--line);
	background: var(--bg); color: var(--ink); cursor: pointer; display: grid; place-items: center;
	box-shadow: 0 10px 26px rgba(20,20,12,.14); transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.social__nav:hover { background: var(--ink); color: var(--ivory); border-color: var(--ink); }
.social__nav--prev { left: clamp(-10px, -1vw, 0px); }
.social__nav--prev svg { transform: rotate(180deg); }
.social__nav--next { right: clamp(-10px, -1vw, 0px); }
.social__nav[hidden] { display: none; }
.phone.is-playing .phone__play { display: none; }
@media (max-width: 560px) {
	.social__nav { width: 42px; height: 42px; }
}
.social__links a { display: inline-flex; align-items: center; gap: .5rem; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent-ink); }
.social__links a:hover { color: var(--ink); }
/* phone mockups */
.social__phones {
	display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start;
	gap: clamp(1.5rem, 4vw, 3rem);
}
.phone {
	position: relative; flex: 0 0 auto;
	width: clamp(230px, 24vw, 280px); aspect-ratio: 9 / 16;
	background: #0f1012; border-radius: 2.4rem; padding: .55rem;
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 18px 44px rgba(20,20,12,.22);
}
.phone__speaker {
	position: absolute; top: .95rem; left: 50%; transform: translateX(-50%);
	width: 34%; height: 7px; border-radius: 99px; background: #26272b; z-index: 3;
}
.phone__screen {
	display: block; position: relative; width: 100%; height: 100%;
	border-radius: 1.95rem; overflow: hidden; background: #000 center/cover no-repeat;
}
.phone__speaker, .phone__play, .phone__gate { display: block; }
.phone__media { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }

/* poster teaser (not playable, links to enquiry) */
.phone--poster { display: block; text-decoration: none; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.phone--poster:hover { transform: translateY(-5px); }
.phone--poster .phone__screen::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(15,16,12,.12) 0%, rgba(15,16,12,0) 35%, rgba(15,16,12,.72) 100%);
}
.phone__screen--ph { background: #3c4430; }
.phone__screen--tone-1 { background: linear-gradient(160deg, #8a976a, #3c4430); }
.phone__screen--tone-2 { background: linear-gradient(160deg, #9aa478, #23251e); }
.phone__screen--tone-3 { background: linear-gradient(160deg, #b9c196, #4a5536); }
.phone__screen--tone-4 { background: linear-gradient(160deg, #a7b184, #3c4430); }
.phone__play {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 2;
	width: 58px; height: 58px; border-radius: 50%;
	background: rgba(251,250,245,.92); color: var(--clay-deep);
	display: grid; place-items: center; padding-left: 3px;
	box-shadow: 0 8px 22px rgba(0,0,0,.28); transition: transform .4s var(--ease);
}
.phone--poster:hover .phone__play { transform: translate(-50%, -50%) scale(1.08); }

/* Inline embed inside the phone frame once the poster is tapped */
.phone__iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; background: #000; }
.phone.is-playing { cursor: default; }
.phone.is-playing .phone__screen::after { display: none; }
.phone.is-playing .phone__screen { background-image: none !important; }
.phone__gate {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
	padding: 1rem .9rem 1.1rem; color: #fff; text-align: center;
	font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; line-height: 1.5;
}
.phone__gate svg { vertical-align: -2px; margin-right: .35rem; }

/* =========================================================== SERVICE PAGE */
.svc-hero { padding-top: calc(92px + clamp(1.5rem, 4vw, 5rem)); padding-bottom: clamp(2rem, 5vw, 5rem); background: var(--bg-alt); }
.svc-hero__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2.5rem, 6vw, 5rem); align-items: start; }
.svc-hero__intro .display { margin: 1rem 0 1.4rem; }
.svc-hero__price { margin-top: 1.6rem; font-family: var(--serif); font-style: italic; font-size: 1.3rem; color: var(--accent-ink); }
.svc-hero__form h3 { font-family: var(--serif); font-weight: 400; font-size: 1.5rem; margin: 0 0 1.25rem; }
.svc-points { list-style: none; margin: 1.6rem 0 0; padding: 0; }
.svc-points li { display: flex; gap: .8rem; align-items: baseline; padding: .7rem 0; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: 1.2rem; }
.svc-points li::before { content: ""; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%; background: var(--clay); transform: translateY(-3px); }
.svc-body { max-width: 760px; }
.svc-cta { text-align: center; }
.svc-cta__flourish { color: var(--ivory); opacity: .9; display: inline-block; margin: 0 auto 1.1rem; }
.svc-cta__lead { text-align: center; margin: 1.3rem auto 2rem; max-width: 46ch; color: rgba(255,255,255,.85); }

/* services archive grid */
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.2rem; }
.svc-card { display: flex; flex-direction: column; background: var(--bg); border: 1px solid var(--line); }
.svc-card__media { overflow: hidden; }
.svc-card__media img { width: 100%; transition: transform .8s var(--ease); }
.svc-card:hover .svc-card__media img { transform: scale(1.04); }
.svc-card__body { padding: 1.6rem 1.6rem 1.8rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.svc-card__title { font-family: var(--serif); font-size: 1.5rem; font-weight: 400; line-height: 1.2; }
.svc-card__sub { color: var(--ink-soft); font-size: .95rem; }
.svc-card__link { margin-top: auto; padding-top: 1rem; font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent-ink); display: inline-flex; align-items: center; gap: .5rem; }

/* clickable homepage service list items */
.services__list li a { display: flex; align-items: baseline; gap: 1rem; width: 100%; }
.services__list li a:hover span { color: var(--accent-ink); }

/* =========================================================== DESTINATION */
.dest-tags { list-style: none; margin: 1.8rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .55rem; }
.dest-tags li {
	font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-ink);
	border: 1px solid var(--line); border-radius: 99px; padding: .5rem .95rem; background: var(--bg);
}
.section--alt .dest-tags li { background: var(--bg); }

.dest-band { padding-block: clamp(2.5rem, 6vw, 7rem); }
.dest-band__inner { max-width: 940px; margin-inline: auto; text-align: center; }
.dest-band__title { margin: 1.2rem auto 1.9rem; max-width: 20ch; }
.dest-band__places {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .85rem 1.1rem;
}
.dest-band__place { font-family: var(--serif); font-style: italic; font-size: clamp(1.1rem, 2.5vw, 1.7rem); color: var(--ivory); }
.dest-band__dot { width: 6px; height: 6px; border-radius: 50%; background: #B7C09C; flex: 0 0 auto; }
.dest-band__cta { margin-top: 2.6rem; }

/* =========================================================== DEST MAP */
.destmap { padding-block: 0; background: linear-gradient(160deg, #2a2e22 0%, #1b1d16 100%); position: relative; overflow: hidden; }
.destmap__stage { position: relative; max-width: 1200px; margin-inline: auto; padding: clamp(1.5rem, 4vw, 3rem) var(--gutter) 0; }
.destmap__svg { width: 100%; height: auto; display: block; }

.destmap__arc { stroke-dasharray: 6 8; animation: dm-flow 22s linear infinite; }
@keyframes dm-flow { to { stroke-dashoffset: -280; } }

.destmap__pulse { transform-box: fill-box; transform-origin: center; animation: dm-pulse 2.8s ease-out infinite; }
@keyframes dm-pulse { 0% { transform: scale(.5); opacity: .9; } 70% { opacity: 0; } 100% { transform: scale(2.8); opacity: 0; } }

.destmap__halo { opacity: .35; transition: opacity .35s var(--ease); }
.destmap__dot { transition: fill .3s var(--ease); }
.destmap__label { transition: fill .3s var(--ease); pointer-events: none; }
.destmap__point { cursor: pointer; outline: none; }
.destmap__point:hover .destmap__halo, .destmap__point:focus .destmap__halo { opacity: 1; }
.destmap__point:hover .destmap__dot, .destmap__point:focus .destmap__dot { fill: #cBd3a8; }
.destmap__point:hover .destmap__label, .destmap__point:focus .destmap__label { fill: #fff; }
.destmap__point--world .destmap__dot { fill: #cBd3a8; }

.destmap__card {
	position: absolute; z-index: 5; transform: translate(-50%, -140%);
	background: #F3F1E4; color: #23251E; padding: .7rem 1rem; border-radius: 8px;
	box-shadow: 0 14px 34px rgba(0,0,0,.4); text-align: center; pointer-events: none;
	white-space: nowrap; transition: opacity .2s var(--ease);
}
.destmap__card[hidden] { display: none; }
.destmap__card-name { display: block; font-family: var(--serif); font-size: 1.1rem; }
.destmap__card-note { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-ink); margin-top: 2px; }

.destmap__legend { text-align: center; padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.destmap__legend-lead { color: #cfc5b8; max-width: 52ch; margin: 1.5rem auto 0; font-size: .98rem; }

.dest-regions { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(2rem, 5vw, 4rem); }
.dest-regions__title { font-family: var(--serif); font-weight: 400; font-size: 1.6rem; margin: 0 0 1.2rem; padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
.dest-regions ul { list-style: none; margin: 0; padding: 0; }
.dest-regions li { padding: .55rem 0; color: var(--ink-soft); font-family: var(--serif); font-size: 1.2rem; }

@media (prefers-reduced-motion: reduce) {
	.destmap__arc, .destmap__pulse { animation: none; }
}
@media (max-width: 760px) {
	.dest-regions { grid-template-columns: 1fr; gap: 2rem; }
	/* The map is wide: let it stay large and scroll sideways so it is readable. */
	.destmap__stage { overflow-x: auto; -webkit-overflow-scrolling: touch; padding-inline: 0; scrollbar-width: none; }
	.destmap__stage::-webkit-scrollbar { display: none; }
	.destmap__svg { width: 820px; max-width: none; margin-inline: auto; }
	.destmap__label { font-size: 17px; }
	.destmap__hint { display: block; }
}
.destmap__hint { display: none; text-align: center; color: #9aa07f; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; padding: 1rem 0 0; }

/* destinations enquiry modal */
.dest-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.dest-modal[hidden] { display: none; }
.dest-modal__veil { position: absolute; inset: 0; background: rgba(28,30,22,.62); backdrop-filter: blur(2px); animation: navFade .3s var(--ease); }
.dest-modal__panel {
	position: relative; z-index: 2; width: min(620px, 100%); max-height: 90vh; overflow-y: auto;
	background: var(--bg); border: 1px solid var(--line); border-radius: 4px;
	padding: clamp(1.6rem, 4vw, 2.8rem); box-shadow: 0 30px 70px rgba(20,20,12,.4);
	animation: dm-modal .35s var(--ease);
}
@keyframes dm-modal { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.dest-modal__panel .display { font-size: clamp(1.8rem, 4vw, 2.6rem); margin: .4rem 0 1.6rem; }
.dest-modal__close {
	position: absolute; top: .9rem; right: .9rem; z-index: 3; width: 42px; height: 42px;
	display: grid; place-items: center; background: none; border: 0; color: var(--ink-soft); cursor: pointer; border-radius: 50%;
	transition: background .2s, color .2s;
}
.dest-modal__close:hover { background: var(--bg-alt); color: var(--ink); }

/* =========================================================== IMAGE FRAMES (botanical, OUTSIDE the photo) */
/* A thin matted frame that sits in the margin around each photo, never over it. */
.media { position: relative; overflow: visible; margin: 14px; }
.gallery__pair .media { margin: 0; } /* diptych keeps its own tight pairing */
.media::before {
	content: ""; position: absolute; inset: -11px; z-index: 2; pointer-events: none;
	border: 1px solid var(--line);
}
.media::after {
	content: ""; position: absolute; inset: -20px; z-index: 3; pointer-events: none;
	background-repeat: no-repeat; background-size: 56px 56px, 56px 56px;
	background-position: top left, bottom right;
	background-image:
		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='56' height='56'><path d='M5 34C11 18 22 9 36 5' fill='none' stroke='%235e6b45' stroke-opacity='.7' stroke-width='1' stroke-linecap='round'/><g fill='%235e6b45' fill-opacity='.7'><ellipse cx='13' cy='24' rx='5' ry='2.2' transform='rotate(-42 13 24)'/><ellipse cx='20' cy='15' rx='5' ry='2.2' transform='rotate(-32 20 15)'/><ellipse cx='29' cy='10' rx='5' ry='2.2' transform='rotate(-22 29 10)'/><ellipse cx='9' cy='30' rx='4' ry='1.9' transform='rotate(-55 9 30)'/></g></svg>"),
		url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='56' height='56'><g transform='rotate(180 28 28)'><path d='M5 34C11 18 22 9 36 5' fill='none' stroke='%235e6b45' stroke-opacity='.7' stroke-width='1' stroke-linecap='round'/><g fill='%235e6b45' fill-opacity='.7'><ellipse cx='13' cy='24' rx='5' ry='2.2' transform='rotate(-42 13 24)'/><ellipse cx='20' cy='15' rx='5' ry='2.2' transform='rotate(-32 20 15)'/><ellipse cx='29' cy='10' rx='5' ry='2.2' transform='rotate(-22 29 10)'/><ellipse cx='9' cy='30' rx='4' ry='1.9' transform='rotate(-55 9 30)'/></g></g></svg>");
}

/* =========================================================== DESTINATIONS (cinematic) */
.destcine { position: relative; min-height: min(78vh, 760px); display: flex; align-items: flex-end; overflow: hidden; color: var(--ivory); }
.destcine__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.destcine__img { width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(1.08); animation: destkb 18s ease-in-out infinite alternate; }
.destcine__img--ph { display: block; }
@keyframes destkb { from { transform: scale(1.08); } to { transform: scale(1.2); } }
.destcine__veil { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(20,22,15,.28) 0%, rgba(20,22,15,.08) 40%, rgba(20,22,15,.8) 100%); }
.destcine__inner { position: relative; z-index: 2; width: 100%; padding-block: clamp(2.25rem, 6vw, 6rem); }
.destcine .eyebrow { color: #cBd3a8; margin-bottom: 1rem; }
.destcine__name { font-family: var(--serif); font-weight: 300; font-size: clamp(2.6rem, 7vw, 5.5rem); line-height: 1.02; margin: 0 0 .7rem; }
.destcine__note { font-family: var(--serif); font-style: italic; font-size: clamp(1.15rem, 2.4vw, 1.7rem); color: rgba(255,255,255,.92); max-width: 34ch; margin: 0; }
.destcine--right .destcine__inner { text-align: right; }
.destcine--right .destcine__note { margin-left: auto; }
@media (prefers-reduced-motion: reduce) { .destcine__img { animation: none; transform: none; } }
@media (max-width: 600px) {
	.destcine { min-height: 66vh; }
	.destcine--right .destcine__inner, .destcine--right .destcine__note { text-align: left; margin-left: 0; }
}

/* =========================================================== CHART MAP (refined) */
.chartmap { padding: clamp(1.5rem, 4vw, 3rem) var(--gutter) clamp(1rem, 3vw, 2rem); background: var(--bg); }
.chartmap__stage { position: relative; max-width: 1100px; margin-inline: auto; }
.chartmap__svg { width: 100%; height: auto; display: block; }
.chartmap__route { stroke-dasharray: 5 7; animation: dm-flow 26s linear infinite; }
.chartmap__label, .chartmap__coord { transition: fill .3s var(--ease); pointer-events: none; }
.chartmap__halo { transition: fill-opacity .35s var(--ease); }
.chartmap__ring { transition: stroke-opacity .35s var(--ease); }
.chartmap__dot { transition: fill .3s var(--ease); }
.destmap__point:hover .chartmap__halo, .destmap__point:focus .chartmap__halo { fill-opacity: .2; }
.destmap__point:hover .chartmap__ring, .destmap__point:focus .chartmap__ring { stroke-opacity: 1; }
.destmap__point:hover .chartmap__dot, .destmap__point:focus .chartmap__dot { fill: #5e6b45; }
.destmap__point:hover .chartmap__label, .destmap__point:focus .chartmap__label { fill: #000; }
.chartmap__card.destmap__card { background: #3c4430; color: #F3F1E4; }
.chartmap__card .destmap__card-note { color: #B7C09C; }
@media (prefers-reduced-motion: reduce) { .chartmap__route { animation: none; } }
@media (max-width: 760px) {
	.chartmap__stage { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	.chartmap__stage::-webkit-scrollbar { display: none; }
	.chartmap__svg { width: 900px; max-width: none; }
}

/* =========================================================== ROMANTIC MAP */
.romap { background: var(--bg); padding-bottom: clamp(1rem, 3vw, 2rem); }
.romap__head { max-width: 640px; margin: 0 auto clamp(1.5rem, 4vw, 3rem); text-align: center; }
.romap__stage { position: relative; max-width: 1000px; margin-inline: auto; }
.romap__svg { width: 100%; height: auto; display: block; }
.romap__route { stroke-dasharray: 2 7; animation: dm-flow 30s linear infinite; }
.romap__halo { transform-box: fill-box; transform-origin: center; animation: ro-breathe 4.5s ease-in-out infinite; }
@keyframes ro-breathe { 0%, 100% { transform: scale(.9); opacity: .6; } 50% { transform: scale(1.12); opacity: .95; } }
.romap__mark path, .romap__label { transition: fill .3s var(--ease); }
.romap__point { cursor: pointer; outline: none; }
.destmap__point:hover .romap__mark path, .destmap__point:focus .romap__mark path { fill: #c2a594; }
.destmap__point:hover .romap__label, .destmap__point:focus .romap__label { fill: #000; }
.romap__card.destmap__card { background: #FBFAF5; color: #23251E; border: 1px solid var(--line); }
.romap__card .destmap__card-note { color: var(--accent-ink); }
@media (prefers-reduced-motion: reduce) { .romap__route, .romap__halo { animation: none; } }
@media (max-width: 760px) {
	.romap__stage { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	.romap__stage::-webkit-scrollbar { display: none; }
	.romap__svg { width: 880px; max-width: none; }
}

/* =========================================================== CONTACT */
.contact-methods { display: flex; flex-direction: column; gap: 0; margin-top: 2.2rem; }
.contact-methods__item { display: inline-flex; align-items: center; gap: .85rem; padding: .85rem 0; color: var(--ink); font-size: 1rem; border-bottom: 1px solid var(--line); transition: color .25s var(--ease); }
.contact-methods__item:last-child { border-bottom: 0; }
.contact-methods__item svg { color: var(--accent-ink); flex: 0 0 auto; }
a.contact-methods__item:hover { color: var(--accent-ink); }
.contact-methods__item--plain { color: var(--ink-soft); }

/* =========================================================== REVEAL */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }

/* =========================================================== RESPONSIVE */
.services__all { margin-top: 1.6rem; }

@media (max-width: 1024px) {
	.day__steps { grid-template-columns: repeat(2, 1fr); row-gap: 2.5rem; }
	.post-grid, .svc-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
	.split__grid, .enquiry__grid { grid-template-columns: 1fr; }
	.split__grid--reverse .split__media { order: 0; }
	.gallery__pair { grid-template-columns: 1fr; gap: 1.25rem; }
	.svc-hero__grid { grid-template-columns: 1fr; }
	.svc-grid { grid-template-columns: 1fr; }
	.enquiry__form { order: -1; }
	.post-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	body { font-size: 16px; }
	.hero { min-height: 92svh; }
	.enquiry__form { grid-template-columns: 1fr; }
	.field--half { grid-column: 1 / -1; }
	.day__steps { grid-template-columns: 1fr; }
	.site-footer__bottom { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; }
	.reveal { opacity: 1 !important; transform: none !important; }
	.hero__scroll { animation: none; }
}
