/* ═══════════════════════════════════════════════════════════
   MR-Reisen — Design-System (Navy / Messing / Creme)
   Selbst-gehostete Fonts (Spectral + Hanken Grotesk), DSGVO-konform.
   ═══════════════════════════════════════════════════════════ */

/* ─── Fonts (self-hosted woff2) ─────────────────────────── */
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/hanken-grotesk-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/hanken-grotesk-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/spectral-300-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/spectral-300-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/spectral-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/spectral-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/spectral-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/spectral-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/spectral-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/spectral-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Spectral';font-style:italic;font-weight:400;font-display:swap;src:url('/assets/fonts/spectral-italic-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Spectral';font-style:italic;font-weight:400;font-display:swap;src:url('/assets/fonts/spectral-italic-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

/* ─── Tokens ────────────────────────────────────────────── */
:root{
  --navy:#0C2340; --navy-2:#0A1E38; --navy-3:#081A32; --blue-navy:#123056;
  --blue:#1B6BB8; --blue-bright:#4A93E0;
  --brass:#B4894C; --brass-hover:#C9A063; --brass-light:#D9BE8F;
  --cream:#F6F3EC; --white:#FFFFFF;
  --t1:#3B4756; --t2:#4C5A69; --t3:#6B788A; --t4:#8A93A0;
  --on-dark:#F6F3EC; --on-dark-mut:rgba(246,243,236,0.82); --on-dark-faint:rgba(246,243,236,0.6);
  --line:rgba(12,35,64,0.08); --line-2:rgba(12,35,64,0.14);
  --font-serif:'Spectral',Georgia,'Times New Roman',serif;
  --font-sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --max-w:1200px; --px:clamp(20px,5vw,32px);
  --sh-card:0 20px 44px rgba(12,35,64,0.06);
  --sh-card-h:0 32px 58px rgba(12,35,64,0.13);
}

/* ─── Base ──────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;padding:0;background:var(--cream);color:var(--navy);
  font-family:var(--font-sans);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:400;margin:0;line-height:1.1;}
a{color:var(--blue);text-decoration:none;transition:color .2s;}
a:hover{color:var(--navy);}
img{max-width:100%;height:auto;display:block;}
::selection{background:var(--navy);color:var(--cream);}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px;border-radius:4px;}
.wrap{max-width:var(--max-w);margin:0 auto;padding:0 var(--px);width:100%;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}

/* ─── Keyframes ─────────────────────────────────────────── */
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes marq{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes scrollHint{0%{transform:translateY(0);opacity:.7}50%{transform:translateY(7px);opacity:1}100%{transform:translateY(0);opacity:.7}}
@keyframes pulseDot{0%{transform:scale(.7);opacity:.85}70%{transform:scale(2.6);opacity:0}100%{opacity:0}}
@keyframes popIn{0%{transform:scale(.8);opacity:0}100%{transform:scale(1);opacity:1}}

/* ─── Reveal (Progressive Enhancement) ──────────────────── */
[data-reveal]{opacity:0;transform:translateY(24px);
  transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
[data-reveal].is-visible{opacity:1;transform:none;}
.no-js [data-reveal]{opacity:1 !important;transform:none !important;}

/* ─── Shared bits ───────────────────────────────────────── */
.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border:1px solid rgba(180,137,76,0.5);
  border-radius:999px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8A6E3C;background:transparent;}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brass);}
.eyebrow--onDark{color:var(--brass-light);}
.eyebrow--plain{border:none;padding:0;color:var(--brass);}
.eyebrow--plain::before{display:none;}
.kicker{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin-bottom:14px;}
.kicker--onDark{color:var(--brass-light);}

.btn-pill{display:inline-flex;align-items:center;gap:10px;padding:16px 28px;border-radius:999px;
  font-family:var(--font-sans);font-weight:700;font-size:15px;cursor:pointer;border:1px solid transparent;
  transition:transform .25s,box-shadow .25s,background .25s,color .25s;white-space:nowrap;}
.btn-pill--brass{background:var(--brass);color:var(--navy);}
.btn-pill--brass:hover{background:var(--brass-hover);color:var(--navy);transform:translateY(-2px);box-shadow:0 16px 34px rgba(180,137,76,0.34);}
.btn-pill--navy{background:var(--navy);color:var(--cream);font-weight:600;}
.btn-pill--navy:hover{background:var(--blue-navy);color:var(--cream);transform:translateY(-2px);}
.btn-pill--ghost{border-color:rgba(12,35,64,0.2);color:var(--navy);background:transparent;font-weight:600;}
.btn-pill--ghost:hover{background:rgba(12,35,64,0.05);color:var(--navy);}
.btn-pill--outline-light{border-color:rgba(246,243,236,0.45);color:var(--cream);background:transparent;font-weight:600;}
.btn-pill--outline-light:hover{background:rgba(246,243,236,0.1);color:var(--cream);transform:translateY(-2px);}
.btn-pill--sm{padding:11px 20px;font-size:14px;}

.display{font-family:var(--font-serif);font-weight:400;letter-spacing:-0.015em;line-height:1.03;}
.display em,.accent-i{font-style:italic;color:var(--brass-light);}
.lead{font-size:19px;line-height:1.6;color:var(--t2);}

/* ─── Header ────────────────────────────────────────────── */
.site-header{position:sticky;top:0;z-index:60;background:rgba(246,243,236,0.85);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(12,35,64,0.09);}
.site-header__inner{max-width:var(--max-w);margin:0 auto;padding:15px var(--px);
  display:flex;align-items:center;justify-content:space-between;gap:20px;}
.brand{display:flex;align-items:center;}
.brand img{height:92px;width:auto;display:block;}
.main-nav{display:flex;align-items:center;gap:30px;font-size:15px;}
.main-nav a{color:var(--t2);position:relative;}
.main-nav a:hover{color:var(--navy);}
.main-nav a.is-active{color:var(--navy);font-weight:600;}
.main-nav a.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--brass);border-radius:2px;}
.header-right{display:flex;align-items:center;gap:18px;}
.lang-switch{display:flex;gap:9px;font-size:12px;letter-spacing:.05em;color:#8A7A5E;}
.lang-switch a{color:#8A7A5E;}
.lang-switch a.is-active{color:var(--navy);font-weight:600;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--navy);border-radius:2px;transition:.25s;}

@media(max-width:860px){
  .nav-toggle{display:flex;}
  .site-header__inner{flex-wrap:wrap;}
  .main-nav,.header-right{display:none;width:100%;}
  .site-header.is-open .main-nav{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding-top:10px;}
  .site-header.is-open .main-nav a{padding:10px 0;width:100%;border-bottom:1px solid var(--line);}
  .site-header.is-open .main-nav a.is-active::after{display:none;}
  .site-header.is-open .header-right{display:flex;flex-wrap:wrap;padding:12px 0 4px;}
}

/* ─── Footer ────────────────────────────────────────────── */
.site-footer{background:var(--navy-3);color:rgba(246,243,236,0.7);border-top:1px solid rgba(246,243,236,0.06);}
.site-footer__inner{max-width:var(--max-w);margin:0 auto;padding:44px var(--px);
  display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;}
.footer-brand{display:flex;align-items:center;gap:14px;}
.footer-brand__logo{background:#fff;padding:7px 11px;border-radius:9px;display:inline-flex;}
.footer-brand__logo img{height:60px;width:auto;display:block;}
.footer-brand span{font-size:13px;}
.footer-right{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.footer-links{display:flex;gap:26px;font-size:14px;}
.footer-links a{color:rgba(246,243,236,0.7);}
.footer-links a:hover{color:var(--cream);}
.footer-social{display:flex;align-items:center;gap:14px;}
.footer-social a{color:rgba(246,243,236,0.55);display:inline-flex;transition:color .2s,transform .2s;}
.footer-social a:hover{color:var(--brass-light);transform:translateY(-2px);}
.footer-social svg{width:18px;height:18px;display:block;}

/* ─── Hero: Homepage ────────────────────────────────────── */
.hero-home{position:relative;min-height:clamp(560px,86vh,880px);display:flex;align-items:flex-end;overflow:hidden;background:var(--navy-2);}
.hero-home__img{position:absolute;top:-6%;left:0;width:100%;height:112%;object-fit:cover;object-position:center;will-change:transform;}
.hero-home__scrim1{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(18,48,86,0.90) 0%,rgba(18,48,86,0.62) 40%,rgba(18,48,86,0.18) 78%,rgba(18,48,86,0.04) 100%);}
.hero-home__scrim2{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(0deg,rgba(18,48,86,0.85) 0%,rgba(18,48,86,0.12) 42%,transparent 70%);}
.hero-home__inner{position:relative;width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--px) 84px;color:var(--on-dark);}
.hero-home__title{font-size:clamp(40px,5.6vw,84px);margin:24px 0 0;max-width:960px;color:var(--on-dark);}
.hero-home__sub{max-width:560px;font-size:19px;line-height:1.6;color:var(--on-dark-mut);margin:26px 0 0;}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
.hero-stats{display:flex;flex-wrap:wrap;gap:34px;margin-top:48px;align-items:center;}
.hero-stats__item{display:flex;flex-direction:column;}
.hero-stats__num{font-family:var(--font-serif);font-size:30px;line-height:1;}
.hero-stats__num--accent{color:var(--brass-light);}
.hero-stats__label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-faint);margin-top:5px;}
.hero-stats__div{width:1px;height:38px;background:rgba(246,243,236,0.2);}
.hero-home__scroll{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;
  align-items:center;gap:6px;color:rgba(246,243,236,0.7);font-size:11px;letter-spacing:.2em;text-transform:uppercase;}
.hero-home__scroll span{font-size:16px;animation:scrollHint 1.8s ease-in-out infinite;}

/* ─── Section band: dark stats + marquee ────────────────── */
.band-dark{background:var(--navy-2);color:var(--on-dark);border-top:1px solid rgba(246,243,236,0.06);overflow:hidden;}
.marquee-label{max-width:var(--max-w);margin:0 auto;padding:26px var(--px) 10px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8FA0B4;}
.marquee{overflow:hidden;padding:14px 0 26px;}
.marquee__track{display:flex;gap:56px;width:max-content;animation:marq 26s linear infinite;
  font-family:var(--font-serif);font-size:26px;letter-spacing:.02em;color:rgba(246,243,236,0.5);}
.marquee__track .sep{color:var(--brass);}
.marquee:hover .marquee__track{animation-play-state:paused;}

.statbar{max-width:var(--max-w);margin:0 auto;padding:44px var(--px);display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;}
.statbar__group{display:flex;flex-wrap:wrap;gap:56px;}
.statbar__num{font-family:var(--font-serif);font-size:40px;line-height:1;}
.statbar__num--accent{color:var(--brass-light);}
.statbar__lab{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#8FA0B4;margin-top:6px;}
.statbar__note{max-width:280px;font-size:14px;line-height:1.55;color:#8FA0B4;}
.statbar__note strong{color:var(--cream);font-weight:400;}
.marquee--thin{border-top:1px solid rgba(246,243,236,0.06);padding:18px 0;}
.marquee--thin .marquee__track{font-size:22px;color:rgba(246,243,236,0.42);}
.marquee--thin .marquee__track .sep{color:rgba(246,243,236,0.42);}

/* ─── Generic section ───────────────────────────────────── */
.section{max-width:var(--max-w);margin:0 auto;padding:100px var(--px) 40px;}
.section--tight{padding:80px var(--px) 40px;}
.section__head{max-width:720px;}
.section__title{font-size:clamp(32px,4vw,52px);line-height:1.06;letter-spacing:-0.01em;margin:0;}
.section__title--sm{font-size:clamp(30px,3.6vw,44px);}

/* ─── Service cards (numbered) ──────────────────────────── */
.svc-grid{display:flex;flex-wrap:wrap;gap:26px;margin-top:44px;}
.svc-card{flex:1 1 300px;background:var(--white);border:1px solid var(--line);border-radius:20px;padding:36px 32px;
  color:var(--navy);box-shadow:var(--sh-card);transition:transform .3s,box-shadow .3s;}
a.svc-card:hover{transform:translateY(-6px);box-shadow:var(--sh-card-h);color:var(--navy);}
.svc-card__no{width:52px;height:52px;border-radius:13px;background:var(--navy);color:var(--brass-light);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:22px;}
.svc-card__title{font-family:var(--font-serif);font-weight:500;font-size:24px;margin:22px 0 10px;}
.svc-card__text{font-size:15px;line-height:1.62;color:var(--t2);margin:0 0 18px;}
.svc-card__link{font-weight:700;font-size:14px;color:var(--navy);}
/* dark variant (Wer-wir-sind) */
.svc-card--dark{background:rgba(246,243,236,0.04);border-color:rgba(246,243,236,0.12);box-shadow:none;}
.svc-card--dark:hover{transform:translateY(-6px);background:rgba(246,243,236,0.07);border-color:rgba(180,137,76,0.4);}
.svc-card--dark .svc-card__no{background:var(--brass);color:var(--navy);}
.svc-card--dark .svc-card__title{color:var(--cream);}
.svc-card--dark .svc-card__text{color:rgba(246,243,236,0.72);margin:0;}

/* ─── Event cards (homepage compact) ────────────────────── */
.evt-grid{margin-top:38px;display:flex;flex-wrap:wrap;gap:20px;}
.evt-card{position:relative;flex:1 1 340px;max-width:560px;background:var(--white);border:1px solid var(--line);
  border-radius:16px;padding:26px 26px 26px 30px;color:var(--navy);overflow:hidden;
  box-shadow:0 14px 34px rgba(12,35,64,0.05);transition:transform .3s,box-shadow .3s,border-color .3s;}
a.evt-card:hover{transform:translateY(-4px);box-shadow:0 26px 50px rgba(12,35,64,0.12);border-color:rgba(180,137,76,0.5);color:var(--navy);}
.evt-card__bar{position:absolute;left:0;top:0;bottom:0;width:4px;}
.evt-card__cat{display:flex;align-items:center;gap:9px;}
.evt-card__dot{width:8px;height:8px;border-radius:50%;}
.evt-card__catlab{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--t4);}
.evt-card__name{font-family:var(--font-serif);font-weight:500;font-size:23px;line-height:1.18;margin:12px 0 0;}
.evt-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;font-size:14.5px;color:var(--t2);}
.evt-card__meta strong{font-weight:600;color:var(--navy);}
.evt-card__meta .dotsep{color:rgba(12,35,64,0.3);}
.evt-card__more{display:flex;justify-content:flex-end;margin-top:16px;font-weight:700;font-size:13.5px;color:var(--navy);}
.evt-empty{padding:40px 0;color:var(--t3);font-size:16px;}

/* ─── Filter tabs (homepage) ────────────────────────────── */
.filter-tabs{display:flex;flex-wrap:wrap;gap:10px;}
.filter-tab{padding:10px 20px;border-radius:999px;border:1px solid rgba(12,35,64,0.16);background:var(--white);
  color:var(--t2);font-family:inherit;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s;}
.filter-tab .n{opacity:.6;}
.filter-tab.is-active{background:var(--navy);color:var(--cream);border-color:var(--navy);}

/* ─── Filter bar (category pages) ───────────────────────── */
.filter-bar{margin-top:36px;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:16px;
  display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;box-shadow:0 18px 44px rgba(12,35,64,0.06);}
.filter-field{flex:1 1 200px;display:flex;flex-direction:column;gap:6px;}
.filter-field label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--t4);padding-left:2px;}
.filter-field select{appearance:none;-webkit-appearance:none;padding:12px 14px;border:1px solid var(--line-2);border-radius:11px;
  background:var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%230C2340' d='M6 8 0 0h12z'/%3E%3C/svg%3E") no-repeat right 14px center;
  font-family:inherit;font-size:15px;color:var(--navy);cursor:pointer;padding-right:34px;}
.filter-count{padding:0 12px 10px;font-size:14px;color:var(--t2);white-space:nowrap;}
.filter-count strong{color:var(--navy);font-family:var(--font-serif);font-size:20px;}

/* ─── Event cards (category rich, with image) ───────────── */
.cat-grid{margin-top:32px;display:flex;flex-wrap:wrap;gap:26px;}
.cat-card{flex:1 1 380px;max-width:520px;background:var(--white);border:1px solid var(--line);border-radius:20px;
  overflow:hidden;box-shadow:0 20px 44px rgba(12,35,64,0.07);cursor:pointer;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s;color:var(--navy);display:block;}
.cat-card:hover{transform:translateY(-6px);box-shadow:0 34px 60px rgba(12,35,64,0.14);color:var(--navy);}
.cat-card__media{position:relative;height:220px;}
.cat-card__cat{position:absolute;top:16px;left:16px;padding:7px 14px;border-radius:999px;background:rgba(12,35,64,0.9);
  color:var(--cream);font-size:11px;letter-spacing:.16em;text-transform:uppercase;backdrop-filter:blur(4px);}
.cat-card__status{position:absolute;top:16px;right:16px;display:inline-flex;align-items:center;gap:7px;padding:7px 13px;
  border-radius:999px;background:rgba(180,137,76,0.95);color:var(--navy);font-size:12px;font-weight:700;}
.cat-card__status::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--navy);}
.cat-card__body{padding:26px 26px 28px;}
.cat-card__range{font-size:13px;letter-spacing:.05em;color:var(--brass);font-weight:600;}
.cat-card__name{font-family:var(--font-serif);font-weight:500;font-size:27px;line-height:1.15;margin:8px 0 14px;}
.cat-card__loc{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--t2);}
.cat-card__rule{height:1px;background:var(--line);margin:18px 0;}
.cat-card__foot{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.cat-card__svc{font-size:13px;color:var(--t3);}
.cat-card__more{display:inline-flex;align-items:center;gap:7px;color:var(--navy);font-weight:700;font-size:14px;}
.cat-nomatch{flex:1 1 300px;max-width:400px;border:1px dashed rgba(12,35,64,0.2);border-radius:20px;padding:34px;
  display:flex;flex-direction:column;justify-content:center;gap:14px;background:linear-gradient(155deg,rgba(20,88,158,0.05),rgba(180,137,76,0.05));}
.cat-nomatch__title{font-family:var(--font-serif);font-size:24px;line-height:1.2;}
.cat-nomatch p{font-size:15px;line-height:1.6;color:var(--t2);margin:0;}

/* ─── Hero: page (navy gradient) ────────────────────────── */
.hero-page{position:relative;background:linear-gradient(158deg,var(--navy) 0%,var(--navy-2) 52%,var(--blue-navy) 100%);
  color:var(--on-dark);overflow:hidden;}
.hero-page__inner{position:relative;max-width:var(--max-w);margin:0 auto;padding:78px var(--px) 74px;}
.hero-page__inner--split{display:flex;flex-wrap:wrap;gap:56px;align-items:center;padding:104px var(--px) 96px;}
.hero-page__title{font-size:clamp(42px,5.4vw,76px);margin:22px 0 0;color:var(--on-dark);letter-spacing:-0.01em;line-height:1.03;}
.hero-page__title--xl{font-size:clamp(52px,6.2vw,92px);line-height:1.02;}
.hero-page__sub{max-width:600px;font-size:19px;line-height:1.6;color:var(--on-dark-mut);margin:24px 0 0;}
.deco-ring{position:absolute;border:1px solid rgba(180,137,76,0.35);border-radius:50%;pointer-events:none;animation:floaty 9s ease-in-out infinite;}
.deco-ring--2{border-color:rgba(246,243,236,0.12);animation-duration:7s;}
.deco-glow{position:absolute;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(46,123,209,0.28),transparent 70%);}
.hero-split__text{flex:1 1 460px;min-width:300px;}
.hero-split__visual{flex:1 1 380px;min-width:300px;position:relative;}
.hero-split__frame{position:relative;border-radius:22px;overflow:hidden;box-shadow:0 40px 80px rgba(4,14,28,0.5);aspect-ratio:4/5;}
.hero-split__badge{position:absolute;left:-26px;bottom:36px;background:var(--cream);color:var(--navy);padding:18px 22px;
  border-radius:16px;box-shadow:0 22px 44px rgba(4,14,28,0.34);display:flex;flex-direction:column;gap:2px;}
.hero-split__badge b{font-family:var(--font-serif);font-weight:400;font-size:34px;line-height:1;}
.hero-split__badge b span{color:var(--brass);}
.hero-split__badge small{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);}

/* ─── Map / worldwide CTA ───────────────────────────────── */
.mapcta{position:relative;border-radius:26px;overflow:hidden;background:var(--navy);color:var(--on-dark);}
.mapcta__bg{position:absolute;inset:0;opacity:.33;}
.mapcta__scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(120deg,rgba(12,35,64,0.94) 0%,rgba(12,35,64,0.72) 46%,rgba(12,35,64,0.4) 100%);}
.mapcta__body{position:relative;padding:76px 56px;max-width:600px;}
.mapcta__title{font-size:clamp(32px,3.8vw,48px);line-height:1.08;margin:0;color:var(--on-dark);}
.mapcta__title span,.accent-gold{color:var(--brass-light);}
.mapcta__text{font-size:17px;line-height:1.6;color:var(--on-dark-mut);margin:22px 0 0;}
.mapdot{position:absolute;width:12px;height:12px;pointer-events:none;}
.mapdot span:first-child{position:absolute;inset:0;border-radius:50%;}
.mapdot span:last-child{position:absolute;inset:0;border-radius:50%;animation:pulseDot 2.6s ease-out infinite;}

/* ─── Contact CTA band ──────────────────────────────────── */
.contact-band{background:linear-gradient(158deg,var(--navy),var(--navy-2));color:var(--on-dark);}
.contact-band__inner{max-width:var(--max-w);margin:0 auto;padding:88px var(--px);display:flex;flex-wrap:wrap;gap:40px;
  align-items:center;justify-content:space-between;}
.contact-band__text{flex:1 1 440px;}
.contact-band__title{font-size:clamp(32px,4vw,50px);line-height:1.08;margin:0;color:var(--on-dark);}
.contact-band__lead{font-size:17px;line-height:1.6;color:rgba(246,243,236,0.8);margin:22px 0 0;max-width:520px;}
.contact-card{flex:1 1 320px;max-width:400px;background:rgba(246,243,236,0.05);border:1px solid rgba(246,243,236,0.12);
  border-radius:20px;padding:32px;}
.contact-card__addr{font-size:13px;line-height:1.7;color:var(--on-dark-faint);margin-top:22px;}
.contact-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-radius:12px;font-weight:600;font-size:16px;margin-top:14px;}
.contact-line:first-of-type{margin-top:0;}
.contact-line--brass{background:var(--brass);color:var(--navy);font-weight:700;}
.contact-line--brass:hover{background:var(--brass-hover);color:var(--navy);transform:translateY(-2px);}
.contact-line--outline{border:1px solid rgba(246,243,236,0.28);color:var(--cream);}
.contact-line--outline:hover{background:rgba(246,243,236,0.08);color:var(--cream);}

/* about-CTA card variant (rounded box on cream) */
.about-cta{background:linear-gradient(158deg,var(--navy),var(--blue-navy));color:var(--on-dark);border-radius:26px;
  padding:64px 56px;display:flex;flex-wrap:wrap;gap:40px;align-items:center;justify-content:space-between;box-shadow:0 30px 64px rgba(12,35,64,0.18);}

/* ─── About split ───────────────────────────────────────── */
.about-split{max-width:var(--max-w);margin:0 auto;padding:90px var(--px);display:flex;flex-wrap:wrap;gap:56px;align-items:center;}
.about-split__text{flex:1 1 380px;min-width:300px;}
.about-split__text p{font-size:17px;line-height:1.7;color:var(--t1);margin:24px 0 0;}
.about-split__stats{display:flex;flex-wrap:wrap;gap:44px;margin-top:36px;}
.about-stat__num{font-family:var(--font-serif);font-size:44px;line-height:1;}
.about-stat__num--accent{color:var(--brass);}
.about-stat__lab{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--t4);margin-top:6px;}
.about-split__visual{flex:1 1 400px;min-width:300px;}
.about-split__frame{position:relative;border-radius:22px;overflow:hidden;box-shadow:0 30px 64px rgba(12,35,64,0.16);aspect-ratio:16/11;}

/* ─── Event detail ──────────────────────────────────────── */
.detail-hero{position:relative;background:linear-gradient(158deg,var(--navy) 0%,var(--navy-2) 55%,var(--blue-navy) 100%);color:var(--on-dark);overflow:hidden;}
.detail-hero__inner{position:relative;max-width:1120px;margin:0 auto;padding:44px var(--px) 84px;}
.detail-back{display:inline-flex;align-items:center;gap:8px;color:rgba(246,243,236,0.72);font-size:14px;}
.detail-back:hover{color:var(--cream);}
.detail-hero__head{margin-top:40px;}
.detail-status{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border-radius:999px;background:rgba(180,137,76,0.95);color:var(--navy);font-size:12px;font-weight:700;}
.detail-status::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--navy);}
.detail-hero__title{font-size:clamp(40px,5vw,74px);line-height:1.02;margin:22px 0 0;color:var(--on-dark);letter-spacing:-0.01em;}
.detail-hero__meta{display:flex;flex-wrap:wrap;gap:20px;margin-top:22px;font-size:18px;color:rgba(246,243,236,0.85);}
.detail-hero__meta .dotsep{color:rgba(246,243,236,0.4);}
.detail-body{max-width:1120px;margin:0 auto;padding:70px var(--px) 40px;display:flex;flex-wrap:wrap;gap:48px;}
.detail-main{flex:2 1 460px;min-width:300px;}
.detail-figure{position:relative;border-radius:20px;overflow:hidden;height:360px;box-shadow:0 26px 54px rgba(12,35,64,0.12);}
.detail-main h2{font-family:var(--font-serif);font-weight:400;font-size:34px;margin:48px 0 14px;}
.detail-facts{background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.detail-facts__row{display:flex;justify-content:space-between;gap:20px;padding:18px 24px;border-bottom:1px solid rgba(12,35,64,0.07);}
.detail-facts__row:last-child{border-bottom:none;}
.detail-facts__row .k{color:var(--t4);font-size:14px;letter-spacing:.06em;text-transform:uppercase;}
.detail-facts__row .v{font-weight:600;}
.detail-desc{font-size:18px;line-height:1.7;color:var(--t1);margin:28px 0 0;}
.detail-desc--muted{font-size:16px;color:var(--t3);margin:16px 0 0;}
.detail-aside{flex:1 1 300px;min-width:280px;}
.detail-cta{position:sticky;top:96px;background:var(--navy);color:var(--on-dark);border-radius:20px;padding:32px;box-shadow:0 26px 54px rgba(12,35,64,0.18);}
.detail-cta h3{font-family:var(--font-serif);font-weight:400;font-size:26px;line-height:1.2;margin:0 0 12px;}
.detail-cta p{font-size:15px;line-height:1.6;color:rgba(246,243,236,0.78);margin:0 0 24px;}
.detail-cta__btn{display:flex;align-items:center;justify-content:space-between;padding:15px 22px;border-radius:12px;background:var(--brass);color:var(--navy);font-weight:700;font-size:16px;transition:transform .25s,background .25s;}
.detail-cta__btn:hover{background:var(--brass-hover);color:var(--navy);transform:translateY(-2px);}
.detail-cta__tel{display:flex;align-items:center;justify-content:center;gap:10px;padding:15px 22px;border-radius:12px;border:1px solid rgba(246,243,236,0.26);color:var(--cream);font-weight:600;font-size:15px;margin-top:14px;}
.detail-cta__tel:hover{background:rgba(246,243,236,0.08);color:var(--cream);}

/* ─── image-slot placeholder ────────────────────────────── */
.img-slot{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--navy) 0%,var(--blue-navy) 100%);color:rgba(217,190,143,0.55);
  font-family:var(--font-serif);font-size:14px;letter-spacing:.08em;text-align:center;padding:16px;overflow:hidden;}
.img-slot::before{content:"";position:absolute;inset:0;opacity:.4;
  background:radial-gradient(circle at 30% 30%,rgba(46,123,209,0.25),transparent 55%),radial-gradient(circle at 75% 70%,rgba(180,137,76,0.25),transparent 55%);}
.img-slot span{position:relative;}
.cat-card__media .img-slot,.about-split__frame .img-slot,.hero-split__frame .img-slot,.detail-figure .img-slot{position:absolute;}
.img-fill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}

/* ─── Contact form (dedicated page) ─────────────────────── */
.contact-page{max-width:var(--max-w);margin:0 auto;padding:72px var(--px) 96px;display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start;}
.form-panel{flex:2 1 520px;min-width:320px;background:var(--white);border:1px solid var(--line);border-radius:22px;padding:40px;box-shadow:0 24px 54px rgba(12,35,64,0.07);}
.form-panel h2{font-family:var(--font-serif);font-weight:400;font-size:28px;margin:0 0 6px;}
.form-panel__hint{font-size:15px;color:var(--t3);margin:0 0 28px;}
.form-panel__hint .req,.req{color:var(--brass);}
.form-row{display:flex;flex-wrap:wrap;gap:20px;}
.form-group{flex:1 1 220px;display:flex;flex-direction:column;gap:7px;}
.form-group--full{flex:1 1 100%;}
.form-group label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:13px 15px;border:1px solid var(--line-2);
  border-radius:11px;background:var(--white);font-family:inherit;font-size:15px;color:var(--navy);transition:border-color .2s,box-shadow .2s;}
.form-group select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:34px;
  background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%230C2340' d='M6 8 0 0h12z'/%3E%3C/svg%3E") no-repeat right 14px center;}
.form-group textarea{resize:vertical;min-height:120px;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(180,137,76,0.15);}
.form-group__err{color:#B23A2E;font-size:12.5px;min-height:15px;}
.form-group--invalid input,.form-group--invalid textarea,.form-group--invalid select{border-color:#B23A2E;}
.form-consent{display:flex;align-items:flex-start;gap:11px;margin-top:18px;font-size:14px;line-height:1.5;color:var(--t2);cursor:pointer;}
.form-consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--navy);cursor:pointer;flex:none;}
.form-consent a{color:var(--blue);text-decoration:underline;}
.form-hp{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;}
.form-submit{margin-top:14px;width:100%;justify-content:center;border:none;}
.form-alert{border-radius:12px;padding:14px 18px;font-size:15px;margin:0 0 22px;}
.form-alert--error{background:rgba(178,58,46,0.1);border:1px solid #E3A69C;color:#8A2E24;}
.form-success{text-align:center;padding:36px 12px;}
.form-success__mark{width:76px;height:76px;margin:0 auto;border-radius:50%;background:var(--navy);color:var(--brass-light);
  display:flex;align-items:center;justify-content:center;font-size:38px;animation:popIn .5s cubic-bezier(.2,.9,.3,1.3);}
.form-success h2{font-family:var(--font-serif);font-weight:400;font-size:32px;margin:26px 0 10px;}
.form-success p{font-size:17px;line-height:1.6;color:var(--t2);max-width:440px;margin:0 auto;}
.contact-aside{flex:1 1 300px;min-width:280px;display:flex;flex-direction:column;gap:22px;}
.contact-aside__card{background:var(--navy);color:var(--on-dark);border-radius:22px;padding:34px;box-shadow:0 24px 54px rgba(12,35,64,0.16);}
.contact-aside__card h3{font-family:var(--font-serif);font-weight:400;font-size:24px;margin:0 0 22px;}
.contact-aside__addr{font-size:14px;line-height:1.7;color:rgba(246,243,236,0.72);}
.contact-aside__addr strong{color:var(--cream);font-weight:600;}
.contact-aside__rule{height:1px;background:rgba(246,243,236,0.12);margin:26px 0;}
.contact-aside__facts{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:30px 34px;}
.contact-aside__facts .row{display:flex;gap:30px;flex-wrap:wrap;}
.contact-aside__facts .num{font-family:var(--font-serif);font-size:32px;line-height:1;}
.contact-aside__facts .num--accent{color:var(--brass);}
.contact-aside__facts .lab{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--t4);margin-top:6px;}
.contact-aside__facts p{font-size:14.5px;line-height:1.6;color:var(--t2);margin:22px 0 0;}
.contact-aside__facts p strong{color:var(--navy);}

/* ─── Breadcrumb / legal (retained) ─────────────────────── */
.page-container{max-width:var(--max-w);margin:0 auto;padding:3rem var(--px);}
.page-container--legal{max-width:760px;}
.page-container--legal h1{font-size:clamp(1.8rem,3vw,2.5rem);margin:.5rem 0 1.5rem;color:var(--navy);}
.breadcrumb{margin-bottom:1.5rem;}
.breadcrumb ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.25rem;font-size:.8rem;color:var(--t3);}
.breadcrumb li+li::before{content:'›';margin-right:.25rem;opacity:.5;}
.breadcrumb a{color:var(--t3);}
.breadcrumb a:hover{color:var(--brass);}
.breadcrumb [aria-current="page"]{color:var(--navy);}
.legal-section h2{font-family:var(--font-serif);font-weight:600;font-size:1.25rem;color:var(--navy);margin:2rem 0 .5rem;}
.legal-section p{line-height:1.7;margin:0 0 .5rem;color:var(--t1);}
.legal-section a{color:var(--blue);}
.legal-section ul{padding-left:1.5rem;line-height:1.8;color:var(--t1);}

/* ─── Responsive ────────────────────────────────────────── */
@media(max-width:760px){
  .hero-page__inner--split{padding:88px var(--px) 72px;}
  .mapcta__body{padding:56px 30px;}
  .about-cta{padding:44px 30px;}
  .contact-band__inner{padding:64px var(--px);}
  .form-panel{padding:28px;}
  .detail-cta{position:static;}
}

/* ─── Reduced Motion ────────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;}
  html{scroll-behavior:auto;}
  [data-reveal]{opacity:1 !important;transform:none !important;}
  .marquee__track{animation:none !important;}
  .hero-home__img{transform:none !important;}
}
