/* ==========================================================================
   Wedyara — "Atelier" public theme
   Loaded after every legacy stylesheet, so it both powers the redesigned
   pages (.at-*) and re-themes legacy pages through tokens + element rules.
   Fonts: Cormorant Garamond (display) + DM Sans (text).
   ========================================================================== */

:root {
    --at-ivory: #F7F7F7;
    --at-paper: #FFFFFF;
    --at-ink: #1C1C1C;
    --at-plum: #282828;
    --at-plum-2: #343434;
    --at-rose: #E03068;
    --at-rose-d: #C4275A;
    --at-blush: #F5F5F5;
    --at-gold: #E86090;
    --at-muted: #6B6B6B;
    --at-line: #E6E6E6;
    --at-display: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
    --at-body: 'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --at-ease: cubic-bezier(.22,.61,.36,1);
    --at-wrap: min(78rem, 100% - 3rem);
    --at-header-h: 5rem;

    /* Re-point the older design-system tokens so legacy pages inherit the palette */
    --wy-pink: var(--at-rose);
    --wy-pink-hover: var(--at-rose-d);
    --wy-blush: var(--at-ivory);
    --wy-pink-soft: var(--at-blush);
    --wy-charcoal: var(--at-ink);
    --wy-text: var(--at-ink);
    --wy-muted: var(--at-muted);
    --wy-border: var(--at-line);
    --wy-serif: var(--at-display);
    --wy-sans: var(--at-body);
}

/* ---------- Base & legacy re-theme ---------- */
html { scroll-behavior: smooth; }
body {
    font-family: var(--at-body);
    color: var(--at-ink);
    background: var(--at-ivory);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, .section-title, .hm-title, .card-title {
    font-family: var(--at-display);
    font-weight: 500;
    letter-spacing: -.005em;
}
.section-title { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.12; }
.section-label {
    font-family: var(--at-body); font-size: .75rem; font-weight: 600;
    letter-spacing: .2em; text-transform: uppercase; color: var(--at-gold);
}
.section-blush, .hm-section--blush { background: var(--at-blush); }
.btn { font-family: var(--at-body); border-radius: 999px; letter-spacing: .02em; }
.btn-primary { background: var(--at-rose); border-color: var(--at-rose); color: #fff; }
.btn-primary:hover { background: var(--at-rose-d); border-color: var(--at-rose-d); }
.card { border-radius: 1rem; border: 1px solid var(--at-line); box-shadow: 0 1px 2px rgba(24,24,24,.04); }
.form-control { border-radius: .6rem; border-color: var(--at-line); background: #fff; }
.form-control:focus { border-color: var(--at-rose); box-shadow: 0 0 0 3px rgba(224,48,104,.14); outline: 0; }
main#main-content { min-height: 60vh; }

/* ---------- Layout helpers ---------- */
.at-wrap { width: var(--at-wrap); margin-inline: auto; }
.at-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.at-section { padding-block: clamp(4rem, 8vw, 7.5rem); }
.at-section--tight { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.at-section--paper { background: var(--at-paper); }
.at-section--blush { background: var(--at-blush); }
.at-section--plum { background: var(--at-plum); color: #fff; }

.at-eyebrow {
    display: inline-flex; align-items: center; gap: .75rem; margin: 0 0 1.1rem;
    font: 600 .72rem/1 var(--at-body); letter-spacing: .24em; text-transform: uppercase; color: var(--at-gold);
}
.at-eyebrow::before { content: ""; width: 2.25rem; height: 1px; background: currentColor; }
.at-eyebrow--center { justify-content: center; }
.at-eyebrow--center::after { content: ""; width: 2.25rem; height: 1px; background: currentColor; }
.at-eyebrow--light { color: #E86090; }

.at-title {
    margin: 0 0 1.1rem; font-family: var(--at-display); font-weight: 500;
    font-size: clamp(2.3rem, 5vw, 4rem); line-height: 1.04; letter-spacing: -.012em; color: var(--at-ink);
}
.at-title em { font-style: italic; color: var(--at-rose); font-weight: 500; }
.at-section--plum .at-title, .at-title--light { color: #fff; }
.at-section--plum .at-title em, .at-title--light em { color: #F5F5F5; }
.at-lead { margin: 0; font-size: 1.1rem; line-height: 1.8; color: var(--at-muted); max-width: 40rem; }
.at-section--plum .at-lead { color: rgba(255,255,255,.76); }
.at-head { margin-bottom: clamp(2.2rem, 4vw, 3.6rem); max-width: 46rem; }
.at-head--center { margin-inline: auto; text-align: center; }
.at-head--center .at-lead { margin-inline: auto; }
.at-head--split { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; max-width: none; flex-wrap: wrap; }

/* ---------- Buttons ---------- */
.at-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
    padding: .95rem 1.9rem; border-radius: 999px; border: 1.5px solid transparent;
    font: 600 .9rem/1 var(--at-body); letter-spacing: .04em; text-decoration: none; cursor: pointer;
    transition: background .3s var(--at-ease), color .3s var(--at-ease), border-color .3s var(--at-ease), transform .3s var(--at-ease), box-shadow .3s var(--at-ease);
}
.at-btn:hover { transform: translateY(-2px); }
.at-btn--rose { background: var(--at-rose); color: #fff; box-shadow: 0 10px 24px -10px rgba(224,48,104,.7); }
.at-btn--rose:hover { background: var(--at-rose-d); color: #fff; }
.at-btn--ink { background: var(--at-ink); color: #fff; }
.at-btn--ink:hover { background: var(--at-plum-2); color: #fff; }
.at-btn--line { background: transparent; color: var(--at-ink); border-color: var(--at-ink); }
.at-btn--line:hover { background: var(--at-ink); color: #fff; }
.at-btn--light { background: #fff; color: var(--at-ink); }
.at-btn--light:hover { background: var(--at-blush); }
.at-btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.at-btn--ghost:hover { background: #fff; color: var(--at-ink); }
.at-btn--block { width: 100%; }
.at-link {
    display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; font-size: .92rem; letter-spacing: .03em;
    color: var(--at-ink); text-decoration: none; padding-bottom: .3rem; border-bottom: 1.5px solid var(--at-rose);
    transition: gap .25s var(--at-ease), color .25s;
}
.at-link:hover { gap: .85rem; color: var(--at-rose); }

/* ---------- Header ---------- */
.at-header {
    position: fixed; inset: 0 0 auto 0; z-index: 900; height: var(--at-header-h);
    display: flex; align-items: center; color: #fff;
    transition: background .4s var(--at-ease), box-shadow .4s var(--at-ease), color .4s var(--at-ease), height .3s var(--at-ease);
}
.at-header__in { width: var(--at-wrap); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.at-header__logo img { height: 3rem; width: auto; display: block; transition: filter .3s; filter: brightness(0) invert(1); }
.at-nav { display: flex; align-items: center; gap: .25rem; }
.at-nav > a, .at-nav__drop > a {
    position: relative; display: inline-flex; align-items: center; gap: .25rem; padding: .6rem .85rem;
    font: 500 .9rem/1 var(--at-body); letter-spacing: .03em; color: inherit; text-decoration: none; opacity: .92;
}
.at-nav > a::after, .at-nav__drop > a::after {
    content: ""; position: absolute; left: .85rem; right: .85rem; bottom: .2rem; height: 1.5px;
    background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .3s var(--at-ease);
}
.at-nav > a:hover::after, .at-nav > a.is-active::after, .at-nav__drop:hover > a::after, .at-nav__drop > a.is-active::after { transform: scaleX(1); }
.at-nav__drop { position: relative; }
.at-nav__panel {
    position: absolute; top: 100%; left: 50%; translate: -50% 8px; width: 38rem; padding: 1.5rem;
    background: #fff; color: var(--at-ink); border-radius: 1rem; box-shadow: 0 30px 60px -20px rgba(24,24,24,.35);
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem 1.5rem;
    opacity: 0; visibility: hidden; transition: opacity .25s, translate .25s var(--at-ease), visibility .25s;
}
.at-nav__drop:hover .at-nav__panel, .at-nav__drop:focus-within .at-nav__panel { opacity: 1; visibility: visible; translate: -50% 0; }
.at-nav__panel h5 { margin: 0 0 .6rem; font: 600 .68rem/1 var(--at-body); letter-spacing: .2em; text-transform: uppercase; color: var(--at-gold); }
.at-nav__panel a { display: block; padding: .3rem 0; font-size: .9rem; color: var(--at-ink); text-decoration: none; }
.at-nav__panel a:hover { color: var(--at-rose); }
.at-header__cta { display: flex; align-items: center; gap: .75rem; }
.at-header__cta .at-btn { padding: .75rem 1.4rem; font-size: .82rem; }
.at-burger { display: none; width: 2.75rem; height: 2.75rem; border: 1px solid currentColor; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; place-items: center; }
.at-burger span, .at-burger span::before, .at-burger span::after { display: block; width: 1.1rem; height: 1.5px; background: currentColor; position: relative; content: ""; transition: transform .3s, opacity .3s; }
.at-burger span::before { position: absolute; top: -.35rem; }
.at-burger span::after { position: absolute; top: .35rem; }

.at-header.is-solid, .at-header--solid {
    background: rgba(250,246,241,.94); backdrop-filter: blur(14px); color: var(--at-ink);
    box-shadow: 0 1px 0 var(--at-line); --at-header-h: 4.25rem;
}
.at-header.is-solid { height: 4.25rem; }
.at-header.is-solid .at-header__logo img, .at-header--solid .at-header__logo img { filter: none; }
.at-header--solid { position: sticky; }

/* Mobile drawer */
.at-drawer {
    position: fixed; inset: 0; z-index: 1000; background: var(--at-plum); color: #fff; padding: 1.5rem;
    display: flex; flex-direction: column; transform: translateX(100%); visibility: hidden;
    transition: transform .45s var(--at-ease), visibility .45s;
}
.at-drawer.is-open { transform: none; visibility: visible; }
.at-drawer__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; }
.at-drawer__top img { height: 2.6rem; filter: brightness(0) invert(1); }
.at-drawer__close { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid rgba(255,255,255,.4); background: transparent; color: #fff; font-size: 1.4rem; cursor: pointer; }
.at-drawer nav { display: flex; flex-direction: column; overflow-y: auto; }
.at-drawer nav a { padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.12); font: 500 1.9rem/1.1 var(--at-display); color: #fff; text-decoration: none; }
.at-drawer__foot { margin-top: auto; padding-top: 1.5rem; display: grid; gap: .75rem; }

/* ---------- Hero ---------- */
.at-hero { position: relative; min-height: min(100svh, 62rem); display: flex; align-items: flex-end; color: #fff; overflow: hidden; background: var(--at-plum); }
.at-hero__media { position: absolute; inset: 0; }
.at-hero__media img, .at-hero__media video { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); animation: atKen 22s ease-out forwards; }
@keyframes atKen { to { transform: scale(1); } }
.at-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(40,40,40,.55) 0%, rgba(40,40,40,.15) 38%, rgba(24,24,24,.82) 100%); }
.at-hero__body { position: relative; z-index: 2; width: var(--at-wrap); margin-inline: auto; padding-block: calc(var(--at-header-h) + 4rem) clamp(3rem, 7vw, 6rem); }
.at-hero h1 { margin: 0 0 1.4rem; font: 500 clamp(3rem, 8.5vw, 7.5rem)/.96 var(--at-display); letter-spacing: -.02em; max-width: 14ch; }
.at-hero h1 em { font-style: italic; color: #F5F5F5; }
.at-hero p { margin: 0 0 2.2rem; max-width: 36rem; font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: 1.75; color: rgba(255,255,255,.88); }
.at-hero__actions { display: flex; flex-wrap: wrap; gap: .85rem; }
.at-hero__meta { position: absolute; right: max(1.5rem, calc((100% - 78rem) / 2)); bottom: clamp(3rem, 7vw, 6rem); z-index: 2; display: flex; flex-direction: column; gap: 1.25rem; text-align: right; }
.at-hero__meta b { display: block; font: 500 2.6rem/1 var(--at-display); }
.at-hero__meta span { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; opacity: .8; }

.at-pagehero { position: relative; padding: calc(var(--at-header-h) + 5rem) 0 clamp(3.5rem, 7vw, 6rem); background: var(--at-plum); color: #fff; overflow: hidden; }
.at-pagehero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60rem 30rem at 85% -10%, rgba(224,48,104,.38), transparent 60%), radial-gradient(40rem 24rem at 0% 110%, rgba(232,96,144,.25), transparent 60%); }
.at-pagehero > * { position: relative; }
.at-pagehero h1 { margin: 0 0 1rem; font: 500 clamp(2.8rem, 7vw, 5.8rem)/1 var(--at-display); letter-spacing: -.015em; }
.at-pagehero h1 em { font-style: italic; color: #F5F5F5; }
.at-pagehero p { margin: 0; max-width: 40rem; font-size: 1.1rem; line-height: 1.8; color: rgba(255,255,255,.78); }

/* ---------- Strips, marquee, stats ---------- */
.at-marquee { overflow: hidden; background: var(--at-ink); color: #fff; padding: 1.1rem 0; }
.at-marquee__track { display: flex; gap: 3rem; width: max-content; animation: atMarq 40s linear infinite; font: italic 500 1.5rem/1 var(--at-display); white-space: nowrap; }
.at-marquee__track span::after { content: "✦"; color: var(--at-rose); margin-left: 3rem; font-style: normal; font-size: 1rem; }
@keyframes atMarq { to { transform: translateX(-50%); } }
.at-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--at-line); border: 1px solid var(--at-line); border-radius: 1.25rem; overflow: hidden; }
.at-stats > div { background: var(--at-paper); padding: 2rem 1.5rem; text-align: center; }
.at-stats b { display: block; font: 500 clamp(2.4rem, 4vw, 3.4rem)/1 var(--at-display); color: var(--at-rose); }
.at-stats span { display: block; margin-top: .5rem; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--at-muted); }

/* ---------- Split / feature blocks ---------- */
.at-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.at-split__img { position: relative; }
.at-split__img img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: 12rem 12rem 1rem 1rem; display: block; }
.at-split__img::after { content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 1px solid var(--at-gold); border-radius: 12rem 12rem 1rem 1rem; z-index: -1; }
.at-checks { list-style: none; margin: 1.6rem 0 2rem; padding: 0; display: grid; gap: .85rem; }
.at-checks li { display: flex; gap: .85rem; align-items: flex-start; line-height: 1.6; }
.at-checks i { color: var(--at-rose); font-size: 1.15rem; margin-top: .1rem; }

/* ---------- Service cards ---------- */
.at-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.at-service { position: relative; display: block; aspect-ratio: 4/5; border-radius: 1.25rem; overflow: hidden; color: #fff; text-decoration: none; background: var(--at-plum); isolation: isolate; }
.at-service img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--at-ease); z-index: -2; }
.at-service::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(24,24,24,0) 35%, rgba(24,24,24,.88) 100%); transition: background .4s; }
.at-service:hover img { transform: scale(1.07); }
.at-service__body { position: absolute; inset: auto 0 0 0; padding: 1.75rem; }
.at-service__num { font: italic 500 1rem var(--at-display); color: #E86090; letter-spacing: .1em; }
.at-service h3 { margin: .35rem 0 .55rem; font: 500 2rem/1.05 var(--at-display); }
.at-service p { margin: 0; font-size: .92rem; line-height: 1.6; color: rgba(255,255,255,.82); max-height: 0; opacity: 0; overflow: hidden; transition: max-height .5s var(--at-ease), opacity .4s, margin .4s; }
.at-service:hover p, .at-service:focus-visible p { max-height: 6rem; opacity: 1; margin-top: .4rem; }

/* ---------- Destinations ---------- */
.at-dests { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.at-dest { position: relative; display: block; aspect-ratio: 3/4; border-radius: 1rem; overflow: hidden; text-decoration: none; color: #fff; background: var(--at-plum-2); isolation: isolate; }
.at-dest:nth-child(1), .at-dest:nth-child(6) { grid-column: span 2; aspect-ratio: auto; }
.at-dest img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .9s var(--at-ease); }
.at-dest:hover img { transform: scale(1.06); }
.at-dest::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 45%, rgba(24,24,24,.82)); }
.at-dest div { position: absolute; left: 1.25rem; bottom: 1.1rem; right: 1.25rem; }
.at-dest b { display: block; font: 500 1.7rem/1.05 var(--at-display); }
.at-dest span { font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; opacity: .85; }

/* ---------- Process ---------- */
.at-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; counter-reset: s; }
.at-step { position: relative; padding-top: 3.2rem; border-top: 1px solid rgba(255,255,255,.22); }
.at-step::before { counter-increment: s; content: "0" counter(s); position: absolute; top: 1rem; left: 0; font: italic 500 1.6rem var(--at-display); color: #E86090; }
.at-step h3 { margin: 0 0 .6rem; font: 500 1.7rem/1.1 var(--at-display); color: #fff; }
.at-step p { margin: 0; color: rgba(255,255,255,.72); line-height: 1.7; font-size: .95rem; }

/* ---------- Gallery ---------- */
.at-filters { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 2.5rem; }
.at-chip { padding: .6rem 1.2rem; border-radius: 999px; border: 1px solid var(--at-line); background: #fff; font: 500 .85rem/1 var(--at-body); color: var(--at-ink); text-decoration: none; transition: all .25s; }
.at-chip:hover { border-color: var(--at-rose); color: var(--at-rose); }
.at-chip.is-on { background: var(--at-ink); border-color: var(--at-ink); color: #fff; }
.at-albums { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem 1.5rem; }
.at-album { display: block; text-decoration: none; color: inherit; }
.at-album__img { position: relative; aspect-ratio: 4/5; border-radius: 1rem; overflow: hidden; background: var(--at-blush); }
.at-album__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--at-ease); }
.at-album:hover .at-album__img img { transform: scale(1.05); }
.at-album__count { position: absolute; left: 1rem; bottom: 1rem; padding: .4rem .9rem; border-radius: 999px; background: rgba(255,255,255,.92); font-size: .75rem; font-weight: 600; letter-spacing: .08em; }
.at-album h3 { margin: 1.1rem 0 .3rem; font: 500 1.7rem/1.1 var(--at-display); }
.at-album p { margin: 0; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--at-muted); }

.at-masonry { columns: 3; column-gap: 1rem; }
.at-tile { position: relative; display: block; width: 100%; margin: 0 0 1rem; padding: 0; border: 0; background: var(--at-blush); border-radius: .85rem; overflow: hidden; cursor: zoom-in; break-inside: avoid; }
.at-tile img, .at-tile video { display: block; width: 100%; height: auto; transition: transform .8s var(--at-ease); }
.at-tile:hover img { transform: scale(1.04); }
.at-tile--video { cursor: pointer; }
.at-tile__play { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(24,24,24,.25); color: #fff; font-size: 3.4rem; pointer-events: none; }
.at-tile__ph { aspect-ratio: 16/10; background: linear-gradient(135deg, var(--at-plum-2), var(--at-plum)); }
.at-tile figcaption { position: absolute; inset: auto 0 0 0; padding: 2rem 1rem .85rem; color: #fff; font-size: .85rem; text-align: left; background: linear-gradient(transparent, rgba(24,24,24,.75)); opacity: 0; transition: opacity .3s; }
.at-tile:hover figcaption { opacity: 1; }
.at-facts { display: flex; flex-wrap: wrap; gap: .75rem 2.2rem; margin-top: 1.5rem; font-size: .9rem; color: rgba(255,255,255,.85); }
.at-facts i { color: #E86090; margin-right: .35rem; }

.at-lightbox { position: fixed; inset: 0; z-index: 2000; background: rgba(20,10,16,.96); display: none; align-items: center; justify-content: center; padding: 3.5rem 1rem 4.5rem; }
.at-lightbox.is-open { display: flex; }
.at-lightbox__stage { max-width: min(92vw, 70rem); max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.at-lightbox__stage img, .at-lightbox__stage video { max-width: 100%; max-height: 78vh; border-radius: .5rem; display: block; }
.at-lightbox__stage iframe { width: min(92vw, 62rem); aspect-ratio: 16/9; border: 0; border-radius: .5rem; }
.at-lightbox__cap { color: rgba(255,255,255,.85); font-size: .95rem; text-align: center; }
.at-lightbox button { position: absolute; width: 3rem; height: 3rem; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.08); color: #fff; font-size: 1.4rem; cursor: pointer; }
.at-lightbox button:hover { background: var(--at-rose); border-color: var(--at-rose); }
.at-lightbox__x { top: 1rem; right: 1rem; }
.at-lightbox__p { left: 1rem; top: 50%; translate: 0 -50%; }
.at-lightbox__n { right: 1rem; top: 50%; translate: 0 -50%; }
.at-lightbox__count { position: absolute; bottom: 1.2rem; left: 0; right: 0; text-align: center; color: rgba(255,255,255,.6); font-size: .8rem; letter-spacing: .2em; }

/* ---------- Blog ---------- */
.at-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem 1.75rem; }
.at-post { display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.at-post__img { aspect-ratio: 3/2; border-radius: 1rem; overflow: hidden; background: var(--at-blush); display: grid; place-items: center; }
.at-post__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--at-ease); }
.at-post:hover .at-post__img img { transform: scale(1.05); }
.at-post__cat { margin: 1.2rem 0 .5rem; font: 600 .7rem/1 var(--at-body); letter-spacing: .2em; text-transform: uppercase; color: var(--at-rose); }
.at-post h2, .at-post h3 { margin: 0 0 .6rem; font: 500 1.65rem/1.15 var(--at-display); transition: color .25s; }
.at-post:hover h2, .at-post:hover h3 { color: var(--at-rose); }
.at-post p { margin: 0 0 .9rem; color: var(--at-muted); line-height: 1.7; font-size: .95rem; }
.at-post time { margin-top: auto; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--at-muted); }
.at-post--feature { grid-column: 1 / -1; display: grid; grid-template-columns: 1.3fr 1fr; gap: 2.5rem; align-items: center; }
.at-post--feature .at-post__img { aspect-ratio: 16/10; }
.at-post--feature h2 { font-size: clamp(2.2rem, 4vw, 3.4rem); }
.at-search { display: flex; border: 1px solid var(--at-line); border-radius: 999px; background: #fff; overflow: hidden; }
.at-search input { border: 0; background: transparent; padding: .8rem 1.2rem; font: .9rem var(--at-body); min-width: 15rem; outline: 0; }
.at-search button { border: 0; background: var(--at-ink); color: #fff; padding: 0 1.2rem; cursor: pointer; }

.at-article { display: grid; grid-template-columns: minmax(0, 46rem) 17rem; gap: 4rem; justify-content: center; }
.at-prose { font-size: 1.12rem; line-height: 1.9; color: #2E2227; }
.at-prose > :first-child { margin-top: 0; }
.at-prose h2 { margin: 2.8rem 0 1rem; font: 500 2.3rem/1.15 var(--at-display); scroll-margin-top: 6rem; }
.at-prose h3 { margin: 2.2rem 0 .8rem; font: 500 1.7rem/1.2 var(--at-display); scroll-margin-top: 6rem; }
.at-prose h4 { margin: 1.8rem 0 .6rem; font: 700 1.05rem var(--at-body); }
.at-prose p { margin: 0 0 1.4rem; }
.at-prose a { color: var(--at-rose); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.at-prose img { max-width: 100%; height: auto; border-radius: .85rem; margin: 1.6rem 0; }
.at-prose figure { margin: 2rem 0; }
.at-prose figcaption { margin-top: .5rem; font-size: .85rem; color: var(--at-muted); text-align: center; }
.at-prose blockquote { margin: 2.2rem 0; padding: .4rem 0 .4rem 1.6rem; border-left: 3px solid var(--at-rose); font: italic 500 1.65rem/1.4 var(--at-display); color: var(--at-plum); }
.at-prose ul, .at-prose ol { margin: 0 0 1.4rem; padding-left: 1.4rem; }
.at-prose li { margin-bottom: .45rem; }
.at-prose table { width: 100%; border-collapse: collapse; margin: 2rem 0; font-size: .95rem; }
.at-prose th, .at-prose td { padding: .75rem 1rem; border: 1px solid var(--at-line); text-align: left; }
.at-prose th { background: var(--at-blush); font-weight: 600; }
.at-prose hr { border: 0; height: 1px; background: var(--at-line); margin: 2.5rem 0; }
.at-prose pre, .at-prose code { font-size: .9em; background: #F1E9E3; border-radius: .35rem; padding: .1rem .4rem; }
.at-prose pre { padding: 1rem; overflow-x: auto; }
.at-aside { position: sticky; top: 6rem; align-self: start; }
.at-toc { padding: 1.4rem; background: #fff; border: 1px solid var(--at-line); border-radius: 1rem; }
.at-toc h4 { margin: 0 0 .8rem; font: 600 .7rem/1 var(--at-body); letter-spacing: .2em; text-transform: uppercase; color: var(--at-gold); }
.at-toc a { display: block; padding: .4rem 0; font-size: .88rem; line-height: 1.4; color: var(--at-muted); text-decoration: none; border-bottom: 1px solid var(--at-line); }
.at-toc a:last-child { border-bottom: 0; }
.at-toc a:hover { color: var(--at-rose); }
.at-toc .is-sub { padding-left: .9rem; font-size: .83rem; }
.at-byline { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.4rem; margin-top: 1.6rem; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.at-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2.5rem; }
.at-tags span { padding: .4rem .9rem; border-radius: 999px; background: var(--at-blush); font-size: .8rem; color: var(--at-plum); }
.at-cover { width: var(--at-wrap); max-width: 70rem; margin: -3rem auto 0; position: relative; z-index: 3; }
.at-cover img { width: 100%; aspect-ratio: 16/8; object-fit: cover; border-radius: 1.25rem; box-shadow: 0 30px 60px -25px rgba(24,24,24,.45); display: block; }

/* ---------- Forms & contact ---------- */
.at-contact { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.at-info { display: grid; gap: 2rem; margin-top: 2.2rem; }
.at-info div { display: grid; grid-template-columns: 2.8rem 1fr; gap: 1rem; align-items: start; }
.at-info i { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: var(--at-blush); color: var(--at-rose); font-size: 1.15rem; }
.at-info h4 { margin: 0 0 .25rem; font: 600 .72rem/1 var(--at-body); letter-spacing: .2em; text-transform: uppercase; color: var(--at-gold); }
.at-info p, .at-info a { margin: 0; color: var(--at-ink); line-height: 1.6; text-decoration: none; }
.at-form { background: #fff; border: 1px solid var(--at-line); border-radius: 1.5rem; padding: clamp(1.6rem, 3.5vw, 3rem); box-shadow: 0 30px 60px -40px rgba(24,24,24,.3); }
.at-form h2 { margin: 0 0 .4rem; font: 500 2.2rem/1.1 var(--at-display); }
.at-form > p { margin: 0 0 1.6rem; color: var(--at-muted); }
.at-field { margin-bottom: 1.1rem; }
.at-field label { display: block; margin-bottom: .45rem; font: 600 .72rem/1 var(--at-body); letter-spacing: .14em; text-transform: uppercase; color: var(--at-muted); }
.at-field input, .at-field select, .at-field textarea {
    width: 100%; padding: .95rem 1.1rem; border: 1px solid var(--at-line); border-radius: .75rem; background: var(--at-ivory);
    font: 1rem var(--at-body); color: var(--at-ink); transition: border-color .2s, box-shadow .2s, background .2s;
}
.at-field textarea { min-height: 9rem; resize: vertical; }
.at-field input:focus, .at-field select:focus, .at-field textarea:focus { outline: 0; border-color: var(--at-rose); background: #fff; box-shadow: 0 0 0 4px rgba(224,48,104,.12); }
.at-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.at-hp { position: absolute; left: -9999px; }
.at-note { margin: 1rem 0 0; font-size: .8rem; color: var(--at-muted); text-align: center; }
.at-map { margin-top: 2.2rem; border-radius: 1rem; overflow: hidden; border: 1px solid var(--at-line); }
.at-map iframe { width: 100%; height: 16rem; border: 0; display: block; }

/* ---------- Testimonials ---------- */
.at-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.at-quote { padding: 2rem; border-radius: 1.25rem; background: #fff; border: 1px solid var(--at-line); display: flex; flex-direction: column; }
.at-quote > i { font-size: 2rem; color: var(--at-rose); line-height: 1; }
.at-quote p { margin: .8rem 0 1.4rem; font: italic 500 1.35rem/1.5 var(--at-display); color: var(--at-ink); }
.at-quote footer { margin-top: auto; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--at-muted); }
.at-quote footer b { display: block; margin-bottom: .2rem; color: var(--at-ink); letter-spacing: .08em; }
.at-stars { color: var(--at-gold); letter-spacing: .15em; font-size: .9rem; }

/* ---------- CTA band ---------- */
.at-cta { position: relative; padding-block: clamp(5rem, 10vw, 9rem); text-align: center; color: #fff; background: var(--at-plum); overflow: hidden; }
.at-cta::before { content: ""; position: absolute; inset: 0; background: radial-gradient(50rem 24rem at 50% 120%, rgba(224,48,104,.55), transparent 70%); }
.at-cta > * { position: relative; }
.at-cta h2 { margin: 0 auto 1.5rem; max-width: 18ch; font: 500 clamp(2.6rem, 6vw, 5rem)/1 var(--at-display); }
.at-cta h2 em { font-style: italic; color: #F5F5F5; }
.at-cta p { margin: 0 auto 2.2rem; max-width: 34rem; color: rgba(255,255,255,.78); line-height: 1.8; }
.at-cta__actions { display: flex; flex-wrap: wrap; gap: .85rem; justify-content: center; }

/* ---------- Footer ---------- */
.at-footer { background: var(--at-ink); color: rgba(255,255,255,.72); padding-top: clamp(3.5rem, 7vw, 6rem); }
.at-footer__grid { width: var(--at-wrap); margin-inline: auto; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.3fr; gap: 3rem; padding-bottom: 3.5rem; }
.at-footer img { height: 3.2rem; width: auto; filter: brightness(0) invert(1); margin-bottom: 1.3rem; }
.at-footer p { line-height: 1.8; font-size: .95rem; }
.at-footer h4 { margin: 0 0 1.2rem; font: 600 .72rem/1 var(--at-body); letter-spacing: .22em; text-transform: uppercase; color: #E86090; }
.at-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.at-footer a { color: rgba(255,255,255,.72); text-decoration: none; transition: color .2s; }
.at-footer a:hover { color: #fff; }
.at-footer__news form { display: flex; margin-top: 1rem; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; overflow: hidden; }
.at-footer__news input { flex: 1; min-width: 0; padding: .85rem 1.1rem; border: 0; background: transparent; color: #fff; font: .9rem var(--at-body); outline: 0; }
.at-footer__news button { border: 0; background: var(--at-rose); color: #fff; padding: 0 1.3rem; font: 600 .8rem var(--at-body); letter-spacing: .06em; cursor: pointer; }
.at-footer__social { display: flex; gap: .6rem; margin-top: 1.4rem; }
.at-footer__social a { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); }
.at-footer__social a:hover { background: var(--at-rose); border-color: var(--at-rose); }
.at-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); padding-block: 1.4rem; font-size: .82rem; }
.at-footer__bottom .at-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem 2rem; }
.at-footer__bottom nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }

/* ---------- Floating WhatsApp ---------- */
.whatsapp-float { right: 1.25rem; bottom: 1.25rem; }
.whatsapp-float a { box-shadow: 0 12px 28px -8px rgba(37,211,102,.6); }

/* ---------- Reveal ---------- */
.js .at-reveal { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--at-ease), transform .9s var(--at-ease); transition-delay: var(--d, 0s); }
.js .at-reveal.is-in { opacity: 1; transform: none; }
.at-empty { padding: 4rem 1rem; text-align: center; color: var(--at-muted); border: 1px dashed var(--at-line); border-radius: 1rem; background: #fff; }
.at-empty h3 { font: 500 1.8rem var(--at-display); color: var(--at-ink); margin: 0 0 .5rem; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
    .at-nav, .at-header__cta .at-btn { display: none; }
    .at-burger { display: grid; }
    .at-services, .at-albums, .at-posts, .at-quotes { grid-template-columns: repeat(2, 1fr); }
    .at-dests { grid-template-columns: repeat(2, 1fr); }
    .at-dest:nth-child(1), .at-dest:nth-child(6) { grid-column: span 2; aspect-ratio: 16/10; }
    .at-steps { grid-template-columns: repeat(2, 1fr); }
    .at-footer__grid { grid-template-columns: 1fr 1fr; }
    .at-article { grid-template-columns: minmax(0, 1fr); }
    .at-aside { position: static; order: -1; }
    .at-hero__meta { display: none; }
}
@media (max-width: 760px) {
    :root { --at-wrap: min(78rem, 100% - 2rem); }
    .at-split, .at-contact, .at-post--feature { grid-template-columns: 1fr; }
    .at-services, .at-albums, .at-posts, .at-quotes, .at-steps { grid-template-columns: 1fr; }
    .at-masonry { columns: 2; column-gap: .6rem; }
    .at-tile { margin-bottom: .6rem; }
    .at-stats { grid-template-columns: repeat(2, 1fr); }
    .at-row { grid-template-columns: 1fr; }
    .at-footer__grid { grid-template-columns: 1fr; gap: 2rem; }
    .at-service { aspect-ratio: 5/4; }
    .at-service p { max-height: 6rem; opacity: 1; margin-top: .4rem; }
    .at-split__img img { border-radius: 8rem 8rem 1rem 1rem; }
    .at-lightbox__p, .at-lightbox__n { top: auto; bottom: 1rem; translate: none; }
    .at-lightbox__p { left: calc(50% - 3.5rem); }
    .at-lightbox__n { right: calc(50% - 3.5rem); }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .js .at-reveal { opacity: 1; transform: none; }
}

/* ---------- Heading colour guards (legacy sheets colour h1–h4 globally) ---------- */
.at-hero h1, .at-pagehero h1, .at-pagehero h2, .at-cta h2, .at-step h3, .at-service h3,
.at-dest b, .at-section--plum .at-title, .at-title--light { color: #fff; }
.at-title, .at-album h3, .at-post h2, .at-post h3, .at-form h2, .at-prose h2, .at-prose h3, .at-prose h4,
.at-empty h3, .at-quote p { color: var(--at-ink); }
.at-post:hover h2, .at-post:hover h3 { color: var(--at-rose); }
.at-title em, .at-hero h1 em, .at-pagehero h1 em, .at-cta h2 em { color: var(--at-rose); }
.at-hero h1 em, .at-pagehero h1 em, .at-cta h2 em, .at-section--plum .at-title em { color: #F5F5F5; }
.at-hero p, .at-pagehero p { color: rgba(255,255,255,.86); }
.at-prose blockquote { color: var(--at-plum); }
.at-footer h4 { color: #E86090; }
.at-info h4, .at-toc h4 { color: var(--at-gold); }
.at-quote footer b { color: var(--at-ink); }

/* Buttons inside the article sidebar keep their own colours */
.at-toc a.at-btn { display: flex; padding: .8rem 1rem; color: #fff; font-size: .82rem; border-bottom: 0; }
.at-toc a.at-btn:hover { color: #fff; }

/* ---------- Legacy token bridge (pages not yet rebuilt in .at-*) ---------- */
:root {
    --font-heading: var(--at-display);
    --font-body: var(--at-body);
    --bg-blush: var(--at-blush);
    --bg-warm: var(--at-ivory);
    --color-navy: var(--at-ink);
    --text-body: #3B2F35;
}
body, button, input, select, textarea { font-family: var(--at-body); }

/* Legacy pages: display font token + consistent hero treatment */
:root { --font-display: var(--at-display); }
main h1[style*="font-weight"], main h2[style*="font-weight"], main h3[style*="font-weight"] { font-weight: 600 !important; letter-spacing: -.01em; }
main > section[style*="#E03068 0%"] {
    background: radial-gradient(60rem 30rem at 85% -10%, rgba(224,48,104,.38), transparent 60%), radial-gradient(40rem 24rem at 0% 110%, rgba(232,96,144,.25), transparent 60%), var(--at-plum) !important;
}
main > section[style*="#E03068 0%"] h1 { text-shadow: none !important; }

/* ---------- Directory pages: destinations, venues, FAQ ---------- */
.at-dgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
.at-dcard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--at-line); border-radius: 1.25rem; overflow: hidden; transition: transform .4s var(--at-ease), box-shadow .4s var(--at-ease); }
.at-dcard:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -30px rgba(24,24,24,.35); }
.at-dcard__img { position: relative; aspect-ratio: 4/3; background: var(--at-plum-2); overflow: hidden; }
.at-dcard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--at-ease); }
.at-dcard:hover .at-dcard__img img { transform: scale(1.06); }
.at-dcard__tag { position: absolute; left: 1rem; top: 1rem; padding: .35rem .85rem; border-radius: 999px; background: rgba(255,255,255,.92); font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.at-dcard__body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem; }
.at-dcard__body h3 { margin: 0 0 .5rem; font: 500 1.7rem/1.1 var(--at-display); color: var(--at-ink); }
.at-dcard__body p { margin: 0 0 1rem; color: var(--at-muted); font-size: .93rem; line-height: 1.65; }
.at-dcard__best { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.2rem; }
.at-dcard__best span { padding: .25rem .7rem; border-radius: 999px; background: var(--at-blush); font-size: .72rem; color: var(--at-plum); }
.at-dcard__foot { display: flex; gap: .6rem; margin-top: auto; }
.at-dcard__foot .at-btn { flex: 1; padding: .7rem .8rem; font-size: .78rem; }
.at-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-bottom: 1.2rem; font-size: .8rem; color: var(--at-muted); }
.at-meta i { color: var(--at-rose); margin-right: .25rem; }
.at-filterbar { display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: 1rem; align-items: end; padding: 1.4rem; margin-bottom: 3rem; background: #fff; border: 1px solid var(--at-line); border-radius: 1.25rem; }
.at-filterbar .at-field { margin: 0; }
.at-filterbar .at-btn { padding: .95rem 1.6rem; }
.at-faq { max-width: 52rem; margin-inline: auto; }
.at-faq h2 { margin: 3rem 0 1rem; font: 500 2rem/1.1 var(--at-display); color: var(--at-ink); }
.at-faq details { border-bottom: 1px solid var(--at-line); }
.at-faq summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.2rem 0; cursor: pointer; font-weight: 600; list-style: none; }
.at-faq summary::-webkit-details-marker { display: none; }
.at-faq summary::after { content: "+"; font: 400 1.6rem/1 var(--at-display); color: var(--at-rose); transition: transform .3s; }
.at-faq details[open] summary::after { transform: rotate(45deg); }
.at-faq details > div { padding: 0 0 1.4rem; color: var(--at-muted); line-height: 1.8; }
@media (max-width: 1080px) { .at-dgrid { grid-template-columns: repeat(2, 1fr); } .at-filterbar { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .at-dgrid { grid-template-columns: 1fr; } .at-filterbar { grid-template-columns: 1fr; } }

/* Column variants */
.at-quotes--4 { grid-template-columns: repeat(4, 1fr); }
.at-steps--3 { grid-template-columns: repeat(3, 1fr); row-gap: 2.5rem; }
@media (max-width: 1080px) { .at-quotes--4 { grid-template-columns: repeat(2, 1fr); } .at-steps--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 760px) { .at-quotes--4, .at-steps--3 { grid-template-columns: 1fr; } }
