/* ==========================================================================
   Mesosphere — base.css
   Tokens (fallbacks; real values printed by inc/dynamic-css.php), reset,
   typography, buttons, chips, tags, media, cards, hover & motion engine.
   Loads on every view.
   ========================================================================== */

/* ---- Fallback tokens ---- */
:root{
	--meso-primary:#373535; --meso-primary-rgb:55, 53, 53; --meso-primary-dark:#2f2d2d;
	--meso-accent:#FECF6C; --meso-accent-rgb:254, 207, 108; --meso-accent-soft:#FFF6E2;
	--meso-ink:#373535; --meso-ink-rgb:55, 53, 53; --meso-body:#625E5C; --meso-muted:#6B6663;
	--meso-bg:#FFFFFF; --meso-bg-soft:#F7F5F3; --meso-bg-soft-2:#EFECE9; --meso-line:#EAE6E2;
	--meso-dark:#373535; --meso-dark-rgb:55, 53, 53;
	--meso-container:1240px; --meso-radius:24px; --meso-frame:32px; --meso-fs-base:16px; --meso-h-weight:600;
	--meso-h1:clamp(2.5rem,1.6rem + 3.6vw,5.25rem); --meso-h2:clamp(2.1rem,1.5rem + 2.6vw,4rem);
	--meso-h3:clamp(1.9rem,1.4rem + 1.8vw,3rem); --meso-h4:clamp(1.45rem,1.2rem + 1vw,1.9rem);
	--meso-logo-h:30px; --meso-logo-h-m:22px; --meso-banner-op:.38;
	--meso-anim-dur:1000ms; --meso-anim-dist:26px; --meso-anim-stagger:90ms;

	/* Derived — CSS only */
	--meso-font:"Manrope","Helvetica Neue",Arial,sans-serif;
	--meso-font-h:var(--meso-font);
	--meso-font-ar:"Alexandria","IBM Plex Sans Arabic","Manrope",Tahoma,sans-serif;
	--meso-font-arb:"IBM Plex Sans Arabic","Alexandria","Manrope",Tahoma,sans-serif;
	--meso-line-2:rgba(var(--meso-ink-rgb),.16);
	--meso-on-dark:#F7F4F1; --meso-on-dark-muted:rgba(247,244,241,.66); --meso-on-dark-line:rgba(247,244,241,.1);
	--meso-radius-lg:calc(var(--meso-radius) + 8px); --meso-radius-sm:calc(var(--meso-radius) * .5);
	--meso-gutter:clamp(20px,4vw,40px);
	--meso-space-section:clamp(72px,9vw,120px);
	--meso-header-h:88px;
	--meso-sh-s:0 1px 2px rgba(var(--meso-ink-rgb),.04),0 12px 32px -14px rgba(var(--meso-ink-rgb),.14);
	--meso-sh-m:0 2px 6px rgba(var(--meso-ink-rgb),.04),0 34px 70px -30px rgba(var(--meso-ink-rgb),.30);
	--meso-ease:cubic-bezier(.16,1,.3,1); --meso-ease-io:cubic-bezier(.65,0,.35,1); --meso-ease-s:cubic-bezier(.33,1,.68,1);
	--meso-t-c:.45s; --meso-t-m:.9s; --meso-t-l:1.4s;
}

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--meso-bg);color:var(--meso-ink);font-family:var(--meso-font);font-size:var(--meso-fs-base);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;text-rendering:optimizeLegibility}
:where(h1,h2,h3,h4,h5,h6,p,ul,ol,figure,blockquote){margin:0;padding:0}
:where(ul,ol)[class]{list-style:none}
:where(img,svg,video){display:block;max-inline-size:100%;block-size:auto}
:where(a){color:inherit;text-decoration:none}
:where(button,input,select,textarea){font:inherit;color:inherit}
:where(button){cursor:pointer}
:focus-visible{outline:2px solid var(--meso-accent);outline-offset:3px;border-radius:6px}
::selection{background:var(--meso-accent);color:var(--meso-ink)}
.screen-reader-text{position:absolute!important;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.meso-skip:focus{position:fixed!important;inset-block-start:12px;inset-inline-start:12px;inline-size:auto;block-size:auto;clip:auto;clip-path:none;z-index:1000;padding:12px 18px;border-radius:999px;background:var(--meso-accent);color:var(--meso-ink);font-weight:600}

/* ---- Layout ---- */
.meso-container{inline-size:min(100% - var(--meso-gutter) * 2, var(--meso-container));margin-inline:auto}
.meso-section{padding-block:var(--meso-space-section)}
.meso-section--soft{background:var(--meso-bg-soft)}
.meso-grid{display:grid;gap:48px 24px}
.meso-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.meso-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.meso-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1024px){.meso-grid--3,.meso-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.meso-grid--2,.meso-grid--3,.meso-grid--4{grid-template-columns:1fr}}

/* ---- Typography ---- */
:where(h1,h2,h3,h4,h5,h6){font-family:var(--meso-font-h);font-weight:var(--meso-h-weight);color:var(--meso-ink);letter-spacing:-.028em;line-height:1.12}
.meso-h1{font-size:var(--meso-h1);line-height:1.04;letter-spacing:-.035em}
.meso-h2{font-size:var(--meso-h3);line-height:1.12}
.meso-h3{font-size:var(--meso-h4);line-height:1.25;letter-spacing:-.02em}
.meso-h4{font-size:1.25rem;line-height:1.4;letter-spacing:-.01em;font-weight:600}
.meso-lead{font-size:clamp(1.05rem,1rem + .25vw,1.19rem);line-height:1.7;color:var(--meso-body)}
.meso-body{font-size:1rem;line-height:1.8;color:var(--meso-body)}
.meso-small{font-size:.875rem;line-height:1.6;color:var(--meso-muted)}
.meso-gold{color:var(--meso-accent)}
.meso-gold-ink{color:var(--meso-ink);background:linear-gradient(transparent 62%,var(--meso-accent) 62%,var(--meso-accent) 92%,transparent 92%)}
.meso-hl{background-image:linear-gradient(var(--meso-accent),var(--meso-accent));background-repeat:no-repeat;background-size:100% .34em;background-position:0 88%;padding-inline:.06em}
.meso-anim-on .meso-hl.meso-in{animation:meso-hl 1.4s var(--meso-ease) .3s both}
@keyframes meso-hl{from{background-size:0 .34em}}
.meso-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--meso-ink)}
.meso-eyebrow::before{content:"";inline-size:8px;block-size:8px;border-radius:50%;background:var(--meso-accent);box-shadow:0 0 0 4px var(--meso-accent-soft);flex:0 0 auto}
.meso-eyebrow--on-dark{color:var(--meso-on-dark)}
.meso-eyebrow--on-dark::before{box-shadow:0 0 0 4px rgba(var(--meso-accent-rgb),.18)}

/* ---- Buttons ---- */
.meso-btn{position:relative;display:inline-flex;align-items:center;gap:14px;block-size:54px;padding-inline:26px 8px;border-radius:999px;border:0;background:var(--meso-accent);color:var(--meso-ink);font-size:.9375rem;font-weight:600;letter-spacing:-.005em;white-space:nowrap;cursor:pointer;transition:background-color var(--meso-t-c) var(--meso-ease-s),color var(--meso-t-c) var(--meso-ease-s),box-shadow var(--meso-t-c) var(--meso-ease-s)}
.meso-btn__i{position:relative;inline-size:38px;block-size:38px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:var(--meso-ink);color:var(--meso-accent);transition:background-color var(--meso-t-c) var(--meso-ease-s),color var(--meso-t-c) var(--meso-ease-s)}
.meso-btn__i svg{transition:transform .7s var(--meso-ease)}
.meso-btn__i svg+svg{position:absolute;transform:translateX(-160%)}
.meso-btn:hover{background:var(--meso-ink);color:#fff}
.meso-btn:hover .meso-btn__i{background:var(--meso-accent);color:var(--meso-ink)}
.meso-btn:hover .meso-btn__i svg:first-child{transform:translateX(160%)}
.meso-btn:hover .meso-btn__i svg+svg{transform:none}
.meso-btn--dark{background:var(--meso-ink);color:#fff}
.meso-btn--dark .meso-btn__i{background:var(--meso-accent);color:var(--meso-ink)}
.meso-btn--dark:hover{background:var(--meso-accent);color:var(--meso-ink)}
.meso-btn--dark:hover .meso-btn__i{background:var(--meso-ink);color:var(--meso-accent)}
.meso-btn--line{background:transparent;color:var(--meso-ink);box-shadow:inset 0 0 0 1px var(--meso-line-2)}
.meso-btn--line .meso-btn__i{background:var(--meso-bg-soft);color:var(--meso-ink)}
.meso-btn--line:hover{box-shadow:inset 0 0 0 1px var(--meso-ink)}
.meso-btn--glass{background:rgba(255,255,255,.14);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.meso-btn--glass .meso-btn__i{background:#fff;color:var(--meso-ink)}
.meso-btn--glass:hover{background:#fff;color:var(--meso-ink)}
.meso-btn--glass:hover .meso-btn__i{background:var(--meso-accent)}
.meso-btn--sm{block-size:46px;padding-inline:20px 6px;gap:10px;font-size:.875rem}
.meso-btn--sm .meso-btn__i{inline-size:34px;block-size:34px}

.meso-ibtn{inline-size:48px;block-size:48px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--meso-line-2);background:#fff;color:var(--meso-ink);cursor:pointer;transition:background-color var(--meso-t-c) var(--meso-ease-s),color var(--meso-t-c) var(--meso-ease-s),border-color var(--meso-t-c) var(--meso-ease-s)}
.meso-ibtn:hover{background:var(--meso-ink);color:#fff;border-color:var(--meso-ink)}
.meso-ibtn--glass{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff}
.meso-ibtn--glass:hover{background:#fff;color:var(--meso-ink);border-color:#fff}

.meso-link{position:relative;display:inline-flex;align-items:center;gap:10px;padding-block:4px;font-size:.9375rem;font-weight:600}
.meso-link::after{content:"";position:absolute;inset-inline:0;inset-block-end:0;block-size:2px;border-radius:2px;background:var(--meso-accent);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--meso-ease)}
.meso-link:hover::after{transform:scaleX(1)}
.meso-link svg{transition:transform .7s var(--meso-ease)}
.meso-link:hover svg{transform:translateX(5px)}

/* ---- Chips & tags ---- */
.meso-chip{display:inline-flex;align-items:center;gap:8px;block-size:40px;padding-inline:18px;border-radius:999px;border:1px solid var(--meso-line-2);background:#fff;font-size:.875rem;font-weight:500;color:var(--meso-ink);cursor:pointer;transition:background-color var(--meso-t-c) var(--meso-ease-s),color var(--meso-t-c) var(--meso-ease-s),border-color var(--meso-t-c) var(--meso-ease-s)}
.meso-chip:hover{border-color:var(--meso-ink)}
.meso-chip.is-on{background:var(--meso-ink);border-color:var(--meso-ink);color:#fff}
.meso-tag{display:inline-flex;align-items:center;block-size:30px;padding-inline:12px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--meso-ink);font-size:.75rem;font-weight:600;letter-spacing:.02em}
.meso-tag--gold{background:var(--meso-accent)}
.meso-tag--soft{background:var(--meso-bg-soft)}

/* ---- Media (GPU layer, clipped radius) ---- */
.meso-media{position:relative;display:block;overflow:hidden;border-radius:var(--meso-radius);background:var(--meso-bg-soft-2);isolation:isolate;transform:translateZ(0);backface-visibility:hidden;-webkit-mask-image:-webkit-radial-gradient(white,black)}
.meso-media>img,.meso-media>picture>img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;will-change:transform;backface-visibility:hidden;transition:transform var(--meso-t-l) var(--meso-ease)}

/* ---- Card: the link stays put; its media lifts, its image zooms ---- */
.meso-card{display:flex;flex-direction:column;gap:18px;cursor:pointer}
.meso-card__media{aspect-ratio:4/4.3;transition:transform var(--meso-t-m) var(--meso-ease)}
.meso-card:hover .meso-card__media{transform:translate3d(0,-6px,0)}
.meso-card:hover .meso-card__media>img{transform:scale(1.045)}
.meso-card__ph{position:absolute;inset:0;display:grid;place-items:center;color:rgba(var(--meso-ink-rgb),.4)}
.meso-card__tags{position:absolute;inset-block-start:18px;inset-inline-start:18px;z-index:3;display:flex;gap:6px}
.meso-card__go{position:absolute;inset-block-start:18px;inset-inline-end:18px;z-index:3;inline-size:48px;block-size:48px;border-radius:50%;display:grid;place-items:center;background:var(--meso-accent);color:var(--meso-ink);opacity:0;transform:scale(.6) rotate(-45deg);transition:transform .8s var(--meso-ease),opacity .5s var(--meso-ease-s)}
.meso-card:hover .meso-card__go,.meso-card:focus-visible .meso-card__go{opacity:1;transform:rotate(-45deg)}
.meso-card__body{display:flex;flex-direction:column;gap:4px}
.meso-card__meta{font-size:.875rem;color:var(--meso-muted)}
.meso-card__t{font-size:1.25rem;font-weight:600;line-height:1.4;letter-spacing:-.01em;color:var(--meso-ink)}

/* ---- Surfaces: shadow layer fades in, the box never moves (no hover jitter) ---- */
.meso-tile{position:relative;isolation:isolate;padding:32px;border-radius:var(--meso-radius);background:#fff;border:1px solid var(--meso-line);transition:border-color var(--meso-t-c) var(--meso-ease-s)}
.meso-tile::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;box-shadow:var(--meso-sh-m);opacity:0;pointer-events:none;transition:opacity var(--meso-t-m) var(--meso-ease)}
.meso-tile:hover{border-color:transparent}
.meso-tile:hover::after{opacity:1}

/* ---- Social ---- */
.meso-socials{display:flex;gap:10px;flex-wrap:wrap}
.meso-soc{inline-size:44px;block-size:44px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--meso-on-dark-line);color:var(--meso-on-dark);transition:background-color var(--meso-t-c) var(--meso-ease-s),color var(--meso-t-c) var(--meso-ease-s),border-color var(--meso-t-c) var(--meso-ease-s)}
.meso-soc:hover{background:var(--meso-accent);border-color:var(--meso-accent);color:var(--meso-ink)}

/* ---- Dome motif ---- */
.meso-dome{display:block;overflow:visible}
.meso-flip{display:inline-flex;transform:scaleX(-1)}

/* ---- Forms (shared) ---- */
.meso-search{position:relative;display:flex;align-items:center;gap:10px;inline-size:min(100%,520px);padding:6px 6px 6px 18px;border-radius:999px;border:1px solid var(--meso-line-2);background:#fff;transition:border-color var(--meso-t-c),box-shadow var(--meso-t-c)}
.meso-search:focus-within{border-color:var(--meso-ink);box-shadow:0 0 0 4px var(--meso-accent-soft)}
.meso-search svg{color:var(--meso-muted);flex:0 0 auto}
.meso-search input{flex:1;min-inline-size:0;border:0;outline:0;background:transparent;block-size:44px;font-size:1rem}
.meso-search .meso-ibtn{inline-size:44px;block-size:44px;background:var(--meso-ink);color:#fff;border-color:var(--meso-ink)}

/* ==========================================================================
   Motion engine — [data-meso-anim] revealed by animations.js (IntersectionObserver)
   Everything is visible without JS / with reduced motion.
   ========================================================================== */
.meso-anim-on.meso-js [data-meso-anim]{opacity:0;transition:opacity var(--meso-anim-dur) var(--meso-ease),transform var(--meso-anim-dur) var(--meso-ease);transition-delay:var(--meso-delay,0ms)}
.meso-anim-on.meso-js [data-meso-anim="up"]{transform:translate3d(0,var(--meso-anim-dist),0)}
.meso-anim-on.meso-js [data-meso-anim="zoom"]{transform:scale(1.04)}
.meso-anim-on.meso-js [data-meso-anim="start"]{transform:translate3d(calc(var(--meso-anim-dist) * -1),0,0)}
.meso-anim-on.meso-js [data-meso-anim].meso-in{opacity:1;transform:none}
/* Hover never fights the entrance: once revealed the element drops its transition. */
.meso-anim-on.meso-js [data-meso-anim].meso-done{transition:none}

@media (prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	*,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important}
	.meso-anim-on.meso-js [data-meso-anim]{opacity:1;transform:none}
}

/* ==========================================================================
   v1.5 — shared components (were view-specific before)
   ========================================================================== */
/* Segmented control — used by filters, forms, locations */
.meso-seg{display:inline-flex;flex-wrap:wrap;gap:4px}
.meso-seg__b{display:inline-flex;align-items:center;justify-content:center;block-size:44px;padding-inline:20px;border:0;border-radius:999px;background:transparent;font-family:inherit;font-size:.875rem;font-weight:600;color:var(--meso-body);white-space:nowrap;cursor:pointer;transition:background-color var(--meso-t-c) var(--meso-ease-s),color var(--meso-t-c) var(--meso-ease-s),box-shadow var(--meso-t-c) var(--meso-ease-s)}
.meso-seg__b:hover{color:var(--meso-ink)}
.meso-seg__b.is-on{background:#fff;color:var(--meso-ink);box-shadow:var(--meso-sh-s)}
.meso-seg--soft{padding:5px;border-radius:999px;background:var(--meso-bg-soft)}
@media (max-width:640px){.meso-seg__b{padding-inline:14px}}

/* Share bar */
.meso-share{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.meso-share__l{margin-inline-end:6px;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--meso-muted)}
.meso-share__b{position:relative;inline-size:42px;block-size:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--meso-line-2);background:#fff;color:var(--meso-ink);cursor:pointer;transition:background-color var(--meso-t-c) var(--meso-ease-s),color var(--meso-t-c) var(--meso-ease-s),border-color var(--meso-t-c)}
.meso-share__b:hover{background:var(--meso-ink);border-color:var(--meso-ink);color:#fff}
.meso-share__b[data-done]::after{content:attr(data-done);position:absolute;inset-block-end:calc(100% + 8px);inset-inline-start:50%;transform:translateX(-50%);white-space:nowrap;padding:5px 10px;border-radius:8px;background:var(--meso-ink);color:#fff;font-size:.75rem;font-weight:600;animation:meso-tip .25s var(--meso-ease) both}
.meso-rtl .meso-share__b[data-done]::after{transform:translateX(50%)}
@keyframes meso-tip{from{opacity:0;transform:translate(-50%,4px)}}

/* Intro — single project / service / event (image beside title) */
.meso-intro{padding-block:clamp(56px,7vw,96px)}
.meso-intro .meso-crumb--pill{background:var(--meso-bg-soft);border-color:var(--meso-line);color:var(--meso-muted)}
.meso-intro .meso-crumb--pill [aria-current]{color:var(--meso-ink)}
.meso-intro .meso-crumb--pill a:hover{color:var(--meso-ink)}
.meso-intro__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.meso-intro__media{aspect-ratio:4/3.3;border-radius:var(--meso-frame)}
.meso-intro__body{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.meso-intro__tags{display:flex;flex-wrap:wrap;gap:6px}
.meso-intro__tags a.meso-tag{transition:background-color var(--meso-t-c),color var(--meso-t-c)}
.meso-intro__tags a.meso-tag:hover{background:var(--meso-ink);color:#fff}
.meso-intro__t{font-size:clamp(1.9rem,1.4rem + 1.6vw,2.9rem);line-height:1.12;letter-spacing:-.03em}
.meso-intro__x{font-size:1.15rem;line-height:1.8;color:var(--meso-ink)}
.meso-intro__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));inline-size:100%;margin:4px 0 0;border-block:1px solid var(--meso-line)}
.meso-intro__meta div{padding-block:16px}
.meso-intro__meta div:nth-child(even){padding-inline-start:20px;border-inline-start:1px solid var(--meso-line)}
.meso-intro__meta div:nth-child(n+3){border-block-start:1px solid var(--meso-line)}
.meso-intro__meta dt{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--meso-muted)}
.meso-intro__meta dd{margin:4px 0 0;font-weight:600;color:var(--meso-ink)}
.meso-intro__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;inline-size:100%;padding-block-start:8px}
@media (max-width:900px){.meso-intro__grid{grid-template-columns:1fr}.meso-intro__media{aspect-ratio:4/3}}
.meso-rtl .meso-intro__t{font-family:var(--meso-font-ar);font-weight:500;letter-spacing:0;line-height:1.35}
.meso-rtl .meso-intro__meta dt,.meso-rtl .meso-share__l{letter-spacing:0;text-transform:none;font-size:.85rem}

/* ==========================================================================
   Motion v2 — reveal (clip mask) + blur-in, lighter and calmer
   ========================================================================== */
.meso-anim-on.meso-js [data-meso-anim="blur"]{transform:translate3d(0,14px,0);filter:blur(8px)}
.meso-anim-on.meso-js [data-meso-anim="blur"].meso-in{filter:blur(0)}
.meso-anim-on.meso-js [data-meso-anim="reveal"]{opacity:1;clip-path:inset(0 0 100% 0 round var(--meso-frame));transition:clip-path calc(var(--meso-anim-dur) * 1.3) var(--meso-ease-io);transition-delay:var(--meso-delay,0ms)}
.meso-anim-on.meso-js [data-meso-anim="reveal"]>img,.meso-anim-on.meso-js [data-meso-anim="reveal"] .meso-media>img{transform:scale(1.12);transition:transform calc(var(--meso-anim-dur) * 1.8) var(--meso-ease)}
.meso-anim-on.meso-js [data-meso-anim="reveal"].meso-in{clip-path:inset(0 0 0 0 round var(--meso-frame))}
.meso-anim-on.meso-js [data-meso-anim="reveal"].meso-in>img,.meso-anim-on.meso-js [data-meso-anim="reveal"].meso-in .meso-media>img{transform:none}
.meso-anim-on.meso-js [data-meso-anim="reveal"].meso-done{clip-path:none}
.meso-anim-on.meso-js [data-meso-anim="reveal"].meso-done>img{transition:transform var(--meso-t-l) var(--meso-ease)}

/* Scroll progress on the docked header */
.meso-header__progress{position:absolute;inset-inline:22px;inset-block-end:0;block-size:2px;border-radius:2px;overflow:hidden;opacity:0;transition:opacity .4s}
.meso-header__progress i{display:block;block-size:100%;background:var(--meso-accent);transform-origin:left;transform:scaleX(var(--meso-p,0))}
.meso-rtl .meso-header__progress i{transform-origin:right}
.meso-header.is-stuck .meso-header__progress{opacity:1}
.meso-header.is-hidden{transform:translate3d(0,-130%,0)!important;transition:transform .55s var(--meso-ease-io)}
.meso-header.is-stuck:not(.is-hidden){transition:transform .55s var(--meso-ease)}
@media (prefers-reduced-motion:reduce){.meso-anim-on.meso-js [data-meso-anim]{clip-path:none!important;filter:none!important}}
/* Magnetic buttons move with the independent `translate` property, so hover transforms never fight it. */
.meso-btn,.meso-card__go,.meso-div__go{transition-property:background-color,color,box-shadow,border-color,opacity,transform,translate;transition-duration:var(--meso-t-c),var(--meso-t-c),var(--meso-t-c),var(--meso-t-c),.5s,.8s,.6s;transition-timing-function:var(--meso-ease-s),var(--meso-ease-s),var(--meso-ease-s),var(--meso-ease-s),var(--meso-ease-s),var(--meso-ease),var(--meso-ease)}

/* ==========================================================================
   Shared content blocks (prose + checklist) — used by posts, singles and widgets
   ========================================================================== */
/* ---- Prose: pasted content always looks designed ---- */
.meso-prose{font-size:1.0625rem;line-height:1.85;color:var(--meso-body)}
.meso-prose>*+*{margin-block-start:1.2em}
.meso-prose :where(h2,h3,h4){margin-block-start:1.8em;color:var(--meso-ink)}
.meso-prose h2{font-size:var(--meso-h4)}
.meso-prose h3{font-size:1.35rem}
.meso-prose a{color:var(--meso-ink);font-weight:600;background:linear-gradient(var(--meso-accent),var(--meso-accent)) 0 100%/100% 2px no-repeat;transition:background-size .6s var(--meso-ease)}
.meso-prose a:hover{background-size:100% 100%}
.meso-prose :where(ul,ol){padding-inline-start:1.3em}
.meso-prose li+li{margin-block-start:.4em}
.meso-prose ul li::marker{color:var(--meso-accent)}
.meso-prose blockquote{padding:26px 30px;border-radius:var(--meso-radius);background:var(--meso-bg-soft);border-inline-start:3px solid var(--meso-accent);font-size:1.2rem;line-height:1.6;color:var(--meso-ink)}
.meso-prose img,.meso-prose figure{border-radius:var(--meso-radius)}
.meso-prose figcaption{margin-block-start:10px;font-size:.875rem;color:var(--meso-muted)}
.meso-prose table{inline-size:100%;border-collapse:collapse;font-size:.95rem}
.meso-prose :where(th,td){padding:12px 14px;border-block-end:1px solid var(--meso-line);text-align:start}
.meso-prose th{color:var(--meso-ink)}
.meso-prose hr{border:0;block-size:1px;background:var(--meso-line)}

/* ---- Checklist ---- */
.meso-checks{display:flex;flex-direction:column;gap:14px;margin:4px 0 6px;padding:0;list-style:none}
.meso-checks li{display:flex;align-items:flex-start;gap:14px;font-weight:500;color:var(--meso-ink)}
.meso-checks__i{flex:0 0 26px;block-size:26px;border-radius:50%;display:grid;place-items:center;background:var(--meso-accent);color:var(--meso-ink);margin-block-start:1px}
@media (max-width:640px){.meso-share{gap:6px}.meso-share__l{inline-size:100%;margin-block-end:2px}.meso-share__b{inline-size:38px;block-size:38px}}

/* Location texts link to the map — same colour as the text, gold underline on hover. */
.meso-maplink{color:inherit;background:linear-gradient(var(--meso-accent),var(--meso-accent)) 0 100%/0 1.5px no-repeat;transition:background-size .5s var(--meso-ease),color var(--meso-t-c)}
.meso-maplink:hover{background-size:100% 1.5px}
.meso-rtl .meso-maplink{background-position:100% 100%}
