:root {
  --forest: #12362b;
  --forest-deep: #071d17;
  --cream: #eee5d5;
  --paper: #fbf8f1;
  --gold: #c89e52;
  --gold-bright: #edcf92;
  --clay: #9a4d31;
  --ink: #142921;
  --muted: #5f6b64;
  --line: rgba(20, 41, 33, 0.16);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --radius: 1.75rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 1rem; line-height: 1.7; overflow-x: hidden; }
img, video { display: block; max-width: 100%; }
a { color: inherit; }
button, summary { font: inherit; }
.skip-link { position: fixed; top: .5rem; left: .5rem; z-index: 99; padding: .7rem 1rem; background: #fff; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: fixed; inset: 0 0 auto; z-index: 20; display: flex; align-items: center; justify-content: space-between; min-height: 6rem; padding: .9rem clamp(1.25rem, 4vw, 4rem); color: #fff; border-bottom: 1px solid rgba(255,255,255,.12); transition: background .35s, color .35s, box-shadow .35s, min-height .35s; }
.site-header.scrolled { min-height: 5rem; background: rgba(251, 248, 241, .9); color: var(--forest); border-bottom-color: rgba(20,41,33,.1); box-shadow: 0 18px 55px rgba(7, 29, 23, .08); backdrop-filter: blur(18px) saturate(140%); }
.brand { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; }
.brand strong { display: block; font-family: var(--serif); font-size: 1.55rem; font-weight: 500; letter-spacing: .025em; line-height: .95; }
.brand small { display: block; margin-top: .28rem; font-size: .61rem; letter-spacing: .22em; text-transform: uppercase; opacity: .68; }
.lotus-logo { width: 3.25rem; height: 3.25rem; overflow: visible; color: var(--gold-bright); fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 5px 12px rgba(0,0,0,.12)); }
.lotus-logo .petal { transform-box: fill-box; transform-origin: bottom center; }
.lotus-logo .petal-center { animation: lotus-center 5.2s ease-in-out infinite; }
.lotus-logo .petal-left { animation: lotus-left 5.2s ease-in-out infinite; }
.lotus-logo .petal-right { animation: lotus-right 5.2s ease-in-out infinite; }
.lotus-logo .petal-left-outer { animation: lotus-left-outer 5.2s ease-in-out infinite; }
.lotus-logo .petal-right-outer { animation: lotus-right-outer 5.2s ease-in-out infinite; }
.lotus-logo .lotus-base { opacity: .68; }
@keyframes lotus-center { 0%,100% { transform: scaleY(.82); } 50% { transform: scaleY(1); } }
@keyframes lotus-left { 0%,100% { transform: rotate(8deg) scale(.92); } 50% { transform: rotate(-3deg) scale(1); } }
@keyframes lotus-right { 0%,100% { transform: rotate(-8deg) scale(.92); } 50% { transform: rotate(3deg) scale(1); } }
@keyframes lotus-left-outer { 0%,100% { transform: rotate(16deg) scale(.88); } 50% { transform: rotate(-2deg) scale(1); } }
@keyframes lotus-right-outer { 0%,100% { transform: rotate(-16deg) scale(.88); } 50% { transform: rotate(2deg) scale(1); } }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ui-icon, .service-icon svg, .step-icon svg, .gallery-action svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.main-nav { display: flex; align-items: center; gap: clamp(.9rem, 2vw, 2rem); font-size: .92rem; }
.main-nav > a:not(.button) { position: relative; padding-block: .5rem; text-decoration: none; }
.main-nav > a:not(.button)::after { content: ""; position: absolute; right: 0; bottom: .15rem; left: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .3s ease; }
.main-nav > a:not(.button):hover::after { transform: scaleX(1); transform-origin: left; }
.main-nav > a:not(.button):hover { color: var(--gold-bright); }
.menu-toggle { display: none; border: 0; background: none; color: inherit; }
.button { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; min-height: 3.35rem; padding: .85rem 1.45rem; overflow: hidden; border: 1px solid var(--gold); border-radius: 999px; background: var(--gold); color: var(--forest-deep); box-shadow: 0 12px 30px rgba(7,29,23,.12); font-weight: 600; text-decoration: none; transition: transform .3s ease, background .3s ease, box-shadow .3s ease; }
.button::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.55) 48%, transparent 72%); transform: translateX(-120%); transition: transform .65s ease; }
.button:hover { transform: translateY(-3px); background: var(--gold-bright); box-shadow: 0 18px 38px rgba(7,29,23,.2); }
.button:hover::before { transform: translateX(120%); }
.button-small { min-height: 2.8rem; padding: .65rem 1.1rem; font-size: .88rem; }
.button-light { background: var(--cream); border-color: var(--cream); }
.text-link { display: inline-flex; gap: .5rem; align-items: center; text-underline-offset: .3em; font-weight: 600; }

.hero { min-height: 100svh; display: grid; grid-template-columns: 1.04fr .96fr; background: radial-gradient(circle at 15% 25%, rgba(200,158,82,.13), transparent 28%), linear-gradient(145deg, #164333, var(--forest-deep)); color: #fff; }
.hero-copy { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 8rem clamp(1.5rem, 6vw, 6.5rem) 4rem; }
.hero-copy::before { content: ""; position: absolute; width: 22rem; height: 22rem; right: -10rem; bottom: 6%; border: 1px solid rgba(237,207,146,.13); border-radius: 50%; box-shadow: 0 0 0 5rem rgba(237,207,146,.025), 0 0 0 10rem rgba(237,207,146,.015); pointer-events: none; }
.eyebrow { margin: 0 0 1.15rem; color: var(--clay); font-size: .76rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.hero .eyebrow, .contact .eyebrow { color: var(--gold-bright); }
h1, h2, h3 { margin-top: 0; line-height: 1.05; }
h1 { max-width: 12ch; margin-bottom: 1.6rem; font-family: var(--serif); font-size: clamp(3.2rem, 6.5vw, 7.2rem); font-weight: 500; letter-spacing: -.045em; }
h1 em, h2 em { color: var(--gold-bright); font-weight: 400; }
.hero-lead { max-width: 38rem; margin: 0; color: rgba(255,255,255,.76); font-size: clamp(1.05rem, 1.5vw, 1.3rem); }
.hero-actions { display: flex; align-items: center; gap: 1.5rem; margin-top: 2.2rem; }
.hero-notes { display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; margin-top: 3.5rem; color: rgba(255,255,255,.65); font-size: .73rem; letter-spacing: .09em; text-transform: uppercase; }
.hero-notes span { display: inline-flex; align-items: center; gap: .55rem; }
.hero-notes .ui-icon { width: 1rem; height: 1rem; color: var(--gold-bright); }
.hero-visual { position: relative; min-height: 100svh; overflow: hidden; }
.hero-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,37,30,.5), transparent 45%), linear-gradient(0deg, rgba(13,37,30,.55), transparent 50%); }
.hero-visual img { width: 100%; height: 100%; object-fit: cover; }
.image-caption { position: absolute; z-index: 2; right: 2rem; bottom: 2rem; margin: 0; font-size: .82rem; letter-spacing: .06em; }
.image-caption { display: inline-flex; align-items: center; gap: .55rem; padding: .65rem .9rem; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: rgba(7,29,23,.22); backdrop-filter: blur(10px); }
.image-caption .ui-icon { color: var(--gold-bright); }

.intro { display: grid; grid-template-columns: .4fr 1.6fr; gap: 2rem; padding: clamp(5rem, 10vw, 10rem) clamp(1.5rem, 7vw, 8rem); background: var(--cream); }
.section-index { margin: .5rem 0; color: var(--clay); font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; }
.intro h2, .section-heading h2, .space h2, .tour h2, .steps h2, .faq h2, .contact h2 { margin-bottom: 1.8rem; font-family: var(--serif); font-size: clamp(2.7rem, 5vw, 5.6rem); font-weight: 500; letter-spacing: -.035em; }
.intro > div > p { max-width: 48rem; margin: 0; color: var(--muted); font-size: 1.15rem; }
.section-pad { padding: clamp(5rem, 9vw, 9rem) clamp(1.5rem, 6vw, 7rem); }
.section-heading { display: grid; grid-template-columns: .35fr 1fr .75fr; gap: 2rem; align-items: start; margin-bottom: 3.5rem; }
.section-heading h2 { margin-bottom: 0; }
.section-heading > p:last-child { max-width: 32rem; margin: .6rem 0 0; color: var(--muted); }

.services { background: var(--paper); }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.service-card { position: relative; min-height: 28rem; display: flex; flex-direction: column; justify-content: space-between; padding: 2rem; overflow: hidden; border-right: 1px solid var(--line); background: transparent; transition: transform .4s ease, background .4s ease, box-shadow .4s ease; }
.service-card::after { content: ""; position: absolute; width: 15rem; height: 15rem; right: -9rem; bottom: -9rem; border: 1px solid rgba(200,158,82,.24); border-radius: 50%; transition: transform .55s ease; }
.service-card:hover { z-index: 2; transform: translateY(-8px); background: #fff; box-shadow: 0 26px 65px rgba(7,29,23,.12); }
.service-card:hover::after { transform: scale(1.25); }
.service-card:last-child { border-right: 0; }
.service-top { display: flex; align-items: center; justify-content: space-between; }
.service-number { color: var(--clay); font-size: .75rem; letter-spacing: .14em; }
.service-icon { display: grid; place-items: center; width: 3.35rem; height: 3.35rem; border: 1px solid var(--line); border-radius: 50%; color: var(--clay); transition: transform .4s ease, color .4s ease, background .4s ease; }
.service-card:hover .service-icon { transform: rotate(7deg) scale(1.08); background: var(--cream); color: var(--forest); }
.service-card h3 { font-family: var(--serif); font-size: clamp(2.15rem, 3vw, 3.25rem); font-weight: 500; }
.service-card p { color: var(--muted); }
.service-card a { font-weight: 600; text-underline-offset: .35em; }
.service-featured { background: linear-gradient(145deg, #1b4b39, var(--forest-deep)); color: #fff; }
.service-featured:hover { background: linear-gradient(145deg, #225b46, #0b2c22); }
.service-featured p { color: rgba(255,255,255,.68); }
.service-featured .service-number { color: var(--gold); }
.service-featured .service-icon { border-color: rgba(255,255,255,.22); color: var(--gold-bright); }
.service-featured:hover .service-icon { background: rgba(237,207,146,.12); color: var(--gold-bright); }
.care-note { max-width: 50rem; margin: 1.4rem 0 0 auto; color: var(--muted); font-size: .85rem; }

.space { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(2.5rem, 6vw, 7rem); align-items: center; background: var(--cream); }
.space-copy { position: sticky; top: 8rem; align-self: start; }
.space-copy > p:not(.eyebrow) { max-width: 34rem; color: var(--muted); }
.space h2 em { color: var(--clay); }
.feature-list { list-style: none; padding: 0; margin: 3rem 0 0; border-top: 1px solid var(--line); }
.feature-list li { display: flex; align-items: center; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--line); transition: color .25s, padding-left .25s; }
.feature-list li:hover { padding-left: .5rem; color: var(--clay); }
.feature-list .ui-icon { flex: 0 0 auto; color: var(--clay); }
.gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.gallery-item { position: relative; min-height: 18rem; padding: 0; overflow: hidden; border: 0; border-radius: var(--radius); background: #d8cfbf; cursor: zoom-in; }
.gallery-item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(7,29,23,.34), transparent 50%); opacity: 0; transition: opacity .45s ease; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .6s ease; }
.gallery-item:hover img { transform: scale(1.055); filter: saturate(1.08) contrast(1.03); }
.gallery-item:hover::after { opacity: 1; }
.gallery-action { position: absolute; z-index: 2; right: 1.2rem; bottom: 1.2rem; display: grid; place-items: center; width: 3rem; height: 3rem; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(7,29,23,.34); color: #fff; opacity: 0; transform: translateY(.8rem) scale(.9); backdrop-filter: blur(10px); transition: opacity .35s ease, transform .35s ease; }
.gallery-item:hover .gallery-action, .gallery-item:focus-visible .gallery-action { opacity: 1; transform: none; }
.gallery-tall { grid-row: span 2; min-height: 37rem; }
.gallery-wide { grid-column: span 2; min-height: 24rem; }

.tour { display: grid; grid-template-columns: .6fr 1.4fr; gap: clamp(2rem, 5vw, 6rem); align-items: center; background: var(--forest-deep); color: #fff; }
.tour-copy p:last-child { color: rgba(255,255,255,.68); }
.video-frame { overflow: hidden; border-radius: var(--radius); background: #000; box-shadow: 0 30px 80px rgba(0,0,0,.28); }
.video-frame video { width: 100%; max-height: 44rem; object-fit: cover; }

.steps { background: var(--paper); }
.steps .section-heading { grid-template-columns: .35fr 1.75fr; }
.step-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding: 0; list-style: none; }
.step-grid li { position: relative; min-height: 20rem; padding: 2rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; transition: transform .4s ease, border-color .4s ease, box-shadow .4s ease; }
.step-grid li:hover { transform: translateY(-7px); border-color: rgba(200,158,82,.55); box-shadow: 0 25px 60px rgba(7,29,23,.09); }
.step-grid span { color: var(--clay); font-size: .8rem; }
.step-grid .step-icon { position: absolute; top: 1.5rem; right: 1.5rem; display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--cream); color: var(--forest); transition: transform .4s ease, background .4s ease; }
.step-grid li:hover .step-icon { transform: rotate(8deg); background: var(--gold-bright); }
.step-grid h3 { max-width: 12ch; margin: 5rem 0 1rem; font-family: var(--serif); font-size: 2.25rem; font-weight: 500; }
.step-grid p { color: var(--muted); }

.faq { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem, 8vw, 9rem); background: var(--cream); }
.faq-intro { position: sticky; top: 8rem; align-self: start; }
.faq-intro > p:last-child { color: var(--muted); }
.faq-list { border-top: 1px solid var(--line); }
details { border-bottom: 1px solid var(--line); }
summary { position: relative; padding: 1.6rem 3rem 1.6rem 0; cursor: pointer; list-style: none; font-size: 1.1rem; font-weight: 600; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; position: absolute; right: .5rem; top: 1.25rem; color: var(--clay); font-family: var(--serif); font-size: 2rem; font-weight: 400; transition: transform .25s; }
details[open] summary::after { transform: rotate(45deg); }
details p { max-width: 44rem; padding: 0 2rem 1.6rem 0; margin: 0; color: var(--muted); }

.contact { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 46rem; background: radial-gradient(circle at 15% 20%, rgba(200,158,82,.13), transparent 32%), linear-gradient(145deg, #174332, var(--forest-deep)); color: #fff; }
.contact-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(4rem, 8vw, 8rem); }
.contact-copy > p:not(.eyebrow) { max-width: 38rem; color: rgba(255,255,255,.7); }
.contact-copy .button { align-self: flex-start; gap: .65rem; margin-top: 1.5rem; }
.contact-details { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 3rem; color: rgba(255,255,255,.68); font-size: .9rem; }
.instagram-inline { display: inline-flex; align-items: center; gap: .45rem; text-underline-offset: .28em; transition: color .25s ease; }
.instagram-inline:hover { color: var(--gold-bright); }
.instagram-inline .ui-icon { width: 1.05rem; height: 1.05rem; }
.location-card { position: relative; min-height: 36rem; overflow: hidden; }
.location-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(13,37,30,.95), transparent 65%); }
.location-card img { width: 100%; height: 100%; object-fit: cover; }
.location-card > div { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: 3rem; }
.location-card h3 { margin-bottom: .8rem; font-family: var(--serif); font-size: 2.7rem; font-weight: 500; }
.location-card p { color: rgba(255,255,255,.72); }

footer { display: grid; grid-template-columns: 1fr auto auto; gap: 2rem; align-items: center; padding: 2.5rem clamp(1.5rem, 5vw, 5rem); background: var(--forest-deep); color: rgba(255,255,255,.62); font-size: .82rem; }
.brand-footer { color: #fff; }
.footer-links { display: flex; flex-wrap: wrap; gap: .65rem 1.2rem; align-items: center; }
.footer-links a, .footer-links button { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .3em; cursor: pointer; transition: color .25s ease, text-decoration-color .25s ease; }
.footer-links a:hover, .footer-links button:hover { color: var(--gold-bright); text-decoration-color: currentColor; }
.cookie-banner { position: fixed; z-index: 60; right: 1.25rem; bottom: 1.25rem; width: min(31rem, calc(100vw - 2.5rem)); padding: 1.4rem; border: 1px solid rgba(237,207,146,.3); border-radius: 1.3rem; background: rgba(7,29,23,.96); color: #fff; box-shadow: 0 24px 80px rgba(0,0,0,.35); backdrop-filter: blur(18px) saturate(135%); transform: translateY(calc(100% + 3rem)); opacity: 0; transition: transform .55s cubic-bezier(.2,.8,.2,1), opacity .4s ease; }
.cookie-banner.visible { transform: none; opacity: 1; }
.cookie-banner::before { content: ""; position: absolute; top: 0; left: 1.4rem; width: 4rem; height: 2px; background: var(--gold-bright); }
.cookie-kicker { margin: 0 0 .35rem; color: var(--gold-bright); font-size: .68rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.cookie-banner h2 { margin: 0 0 .55rem; font-family: var(--serif); font-size: 2rem; font-weight: 500; }
.cookie-banner p:not(.cookie-kicker) { margin: 0; color: rgba(255,255,255,.72); font-size: .88rem; line-height: 1.6; }
.cookie-banner a { color: var(--gold-bright); text-underline-offset: .25em; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.1rem; }
.cookie-actions button { min-height: 2.75rem; padding: .65rem 1rem; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: transparent; color: #fff; font-weight: 600; cursor: pointer; transition: transform .25s ease, background .25s ease, color .25s ease; }
.cookie-actions button:hover { transform: translateY(-2px); border-color: var(--gold-bright); }
.cookie-actions .cookie-accept { border-color: var(--gold); background: var(--gold); color: var(--forest-deep); }
.legal-page { background: var(--paper); }
.legal-page .site-header { position: relative; min-height: 5.5rem; background: var(--forest-deep); color: #fff; }
.legal-main { min-height: 70vh; padding: clamp(4rem, 8vw, 8rem) clamp(1.5rem, 10vw, 12rem); }
.legal-hero { max-width: 58rem; margin-bottom: 4rem; }
.legal-hero h1 { max-width: 15ch; margin-bottom: 1rem; color: var(--forest); font-size: clamp(3.1rem, 7vw, 6.5rem); }
.legal-hero p { max-width: 46rem; color: var(--muted); }
.legal-updated { color: var(--clay) !important; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.legal-content { display: grid; grid-template-columns: minmax(0, 46rem); gap: 2.3rem; }
.legal-content section { padding-bottom: 2.3rem; border-bottom: 1px solid var(--line); }
.legal-content h2 { margin-bottom: .9rem; color: var(--forest); font-family: var(--serif); font-size: clamp(2rem, 4vw, 3rem); font-weight: 500; }
.legal-content h3 { margin: 1.5rem 0 .5rem; font-size: 1rem; }
.legal-content p, .legal-content li { color: var(--muted); }
.legal-content ul { padding-left: 1.2rem; }
.legal-content a { color: var(--clay); text-underline-offset: .25em; }
.legal-back { display: inline-flex; align-items: center; gap: .5rem; margin-top: 3rem; color: var(--forest); font-weight: 600; }
.whatsapp-float { position: fixed; z-index: 16; right: 1.2rem; bottom: 1.2rem; display: none; align-items: center; gap: .55rem; padding: .85rem 1.1rem; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: var(--gold); color: var(--forest-deep); box-shadow: 0 12px 32px rgba(0,0,0,.24); font-weight: 600; text-decoration: none; animation: float-soft 3.4s ease-in-out infinite; }
@keyframes float-soft { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
.lightbox { width: min(90vw, 70rem); padding: 0; border: 0; border-radius: var(--radius); background: transparent; overflow: visible; }
.lightbox::backdrop { background: rgba(8, 20, 16, .88); backdrop-filter: blur(8px); }
.lightbox img { max-height: 84vh; width: 100%; object-fit: contain; border-radius: var(--radius); }
.lightbox-close { position: absolute; right: 0; bottom: calc(100% + .7rem); border: 0; background: none; color: #fff; cursor: pointer; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width: 960px) {
  .site-header { min-height: 4.8rem; padding: .85rem 1.25rem; }
  .menu-toggle { display: block; }
  .main-nav { position: absolute; top: 100%; left: 1rem; right: 1rem; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 1rem; border-radius: 1rem; background: var(--paper); color: var(--forest); box-shadow: 0 16px 45px rgba(0,0,0,.16); }
  .main-nav.open { display: flex; }
  .main-nav a { padding: .8rem; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { min-height: 80svh; padding-top: 7.5rem; }
  .hero-visual { min-height: 60svh; }
  .intro, .section-heading, .space, .tour, .faq { grid-template-columns: 1fr; }
  .section-heading { gap: .7rem; }
  .space-copy, .faq-intro { position: static; }
  .service-grid, .step-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 22rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .service-card:last-child { border-bottom: 0; }
  .tour { align-items: start; }
  .contact { grid-template-columns: 1fr; }
  footer { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .brand small { display: none; }
  .brand strong { font-size: 1.15rem; }
  .hero-copy { min-height: 78svh; }
  h1 { font-size: clamp(3rem, 15vw, 4.5rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-notes { margin-top: 2.5rem; flex-direction: column; }
  .intro { grid-template-columns: 1fr; }
  .section-pad { padding-inline: 1.25rem; }
  .gallery { grid-template-columns: 1fr; }
  .gallery-tall, .gallery-wide { grid-column: auto; grid-row: auto; min-height: 26rem; }
  .contact-copy { padding: 5rem 1.25rem; }
  .location-card { min-height: 34rem; }
  .location-card > div { padding: 2rem 1.25rem; }
  .contact-details { flex-direction: column; }
  .cookie-banner { right: .75rem; bottom: .75rem; width: calc(100vw - 1.5rem); }
  .cookie-actions { flex-direction: column; }
  .cookie-actions button { width: 100%; }
  .whatsapp-float { display: inline-flex; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
