﻿:root{
  --black:#111111;
  --ink:#161b2a;
  --slate:#50596b;
  --night:#0b1d36;
  --blue:#173b6c;
  --mist:#e4e7ec;
  --ivory:#f8f7f4;
  --white:#ffffff;
  --gold:#b88a3b;
  --gold-deep:#9a732f;
  --gold-soft:#f3e8d3;
  --focus:#2f7de1;
  --success:#237a57;
  --warning:#a56516;
  --error:#b4233d;

  --shadow-1:0 1px 2px rgba(11,29,54,.06);
  --shadow-2:0 8px 24px rgba(11,29,54,.10);
  --shadow-3:0 20px 56px rgba(11,29,54,.18);

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;

  --container:1200px;
  --container-narrow:720px;

  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.5;
  color:var(--ink);
  background:var(--ivory);
}

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

html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

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

a{color:inherit}

.container{width:min(100% - 48px,var(--container));margin:auto}
.narrow{max-width:var(--container-narrow)}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.skip-link{
  position:absolute;
  left:-999px;
  top:8px;
  z-index:20;
  background:var(--white);
  color:var(--ink);
  padding:10px 14px;
  border-radius:8px;
  box-shadow:var(--shadow-1);
}

.skip-link:focus{left:8px}

:focus-visible{
  outline:3px solid var(--focus);
  outline-offset:4px;
}

.site-header{
  position:fixed;
  z-index:10;
  top:0;
  left:0;
  right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:64px;
  padding:12px 24px;
  color:var(--white);
  background:transparent;
  transition:background .3s,box-shadow .3s,color .3s,backdrop-filter .3s;
}

.site-header.scrolled{
  background:rgba(7,18,35,.76);
  color:var(--white);
  box-shadow:0 1px 0 rgba(255,255,255,.1);
  -webkit-backdrop-filter:blur(16px) saturate(130%);
  backdrop-filter:blur(16px) saturate(130%);
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  text-decoration:none;
}

.brand span:first-child{
  display:grid;
  place-items:center;
  width:38px;
  height:28px;
  border:1px solid currentColor;
  border-radius:4px;
  font-size:.67rem;
  color:var(--gold);
}

.brand__logo{
  display:block;
  width:40px;
  height:40px;
  flex:0 0 40px;
  border-radius:50%;
  object-fit:cover;
}

.site-nav{display:none}

.menu-toggle{
  display:grid;
  gap:5px;
  width:44px;
  height:44px;
  place-content:center;
  border:0;
  background:transparent;
  color:inherit;
}

.menu-toggle span:not(.sr-only){
  display:block;
  width:22px;
  height:2px;
  background:currentColor;
}

.site-nav.open{
  position:absolute;
  top:64px;
  left:0;
  right:0;
  display:grid;
  padding:20px 24px;
  background:var(--white);
  color:var(--ink);
  box-shadow:var(--shadow-2);
}

.site-nav a{
  min-height:44px;
  display:flex;
  align-items:center;
  text-decoration:none;
  font-weight:600;
}

.nav-responsables{
  margin-top:8px;
  padding-top:12px;
  border-top:1px solid var(--mist);
  font-size:.9rem;
}

.next-service{
  position:relative;
  z-index:2;
  color:var(--white);
  background:var(--night);
  border-top:1px solid rgba(255,255,255,.1);
  border-bottom:1px solid rgba(255,255,255,.1);
}

.next-service__inner{
  display:grid;
  gap:24px;
  align-items:center;
  padding:34px 0;
}

.next-service .eyebrow{margin-bottom:7px}
.next-service h2{margin:0;font-size:clamp(1.65rem,4vw,2.5rem)}
.next-service__name{margin:0;font-size:clamp(1.05rem,2.5vw,1.3rem);font-weight:850}
.next-service__schedule{margin:5px 0 0;color:rgba(255,255,255,.72);font-weight:700}
.next-service__countdown{
  width:fit-content;
  margin:0;
  padding:13px 18px;
  border:1px solid rgba(212,175,55,.45);
  border-radius:999px;
  color:var(--night);
  background:var(--gold);
  box-shadow:0 10px 28px rgba(0,0,0,.2);
  font-weight:850;
  font-variant-numeric:tabular-nums;
}

.language-switcher{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:44px;
  margin-top:8px;
  padding-top:12px;
  border-top:1px solid var(--mist);
  color:var(--slate);
  font-size:.76rem;
  font-weight:800;
}

.language-switcher button{
  min-width:34px;
  min-height:34px;
  padding:4px;
  border:0;
  border-radius:7px;
  color:inherit;
  background:transparent;
  font:inherit;
  cursor:pointer;
}

.language-switcher button:hover,
.language-switcher button.is-active{
  color:var(--night);
  background:var(--gold);
}

.hero{
  position:relative;
  isolation:isolate;
  display:grid;
  min-height:100vh;
  min-height:100svh;
  overflow:hidden;
  color:var(--white);
  background:var(--night);
}

.hero-media,
.hero-overlay{
  position:absolute;
  inset:0;
  z-index:-2;
}

.hero-overlay{
  z-index:-1;
  background:
    linear-gradient(180deg,rgba(3,10,22,.72) 0%,rgba(3,10,22,.22) 38%,rgba(3,10,22,.84) 100%),
    linear-gradient(90deg,rgba(5,16,32,.92),rgba(8,26,49,.66) 62%,rgba(8,26,49,.38));
}

.hero-fallback{
  width:100%;
  height:100%;
  background:
    radial-gradient(circle at 78% 24%,rgba(184,138,59,.34),transparent 25%),
    radial-gradient(circle at 20% 76%,rgba(255,255,255,.08),transparent 32%),
    linear-gradient(128deg,#030b17,#0b1d36 52%,#214b7b);
  transform:scale(1.02);
  animation:drift 18s ease-in-out infinite alternate;
}

.hero-content{
  align-self:center;
  width:min(100% - 48px,820px);
  margin:auto;
  padding:128px 0 144px;
}

.eyebrow{
  margin:0 0 16px;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.eyebrow.blue{color:var(--gold)}
.eyebrow.light{color:rgba(255,255,255,.84)}

.hero h1{
  max-width:13ch;
  margin:0;
  font:500 clamp(2.65rem,11vw,6.25rem)/.98 Georgia,"Times New Roman",serif;
  letter-spacing:-.045em;
  text-wrap:balance;
  text-shadow:0 12px 40px rgba(0,0,0,.32);
}

.hero-subtitle{
  margin:24px 0 0;
  font-size:clamp(.9rem,2.4vw,1.05rem);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.9);
}

.hero-verse{
  max-width:590px;
  margin:24px 0 0;
  padding-left:18px;
  border-left:2px solid var(--gold);
  color:rgba(255,255,255,.78);
}

.hero-verse p{margin:0;font:italic 1rem/1.6 Georgia,serif}

.hero-verse cite{
  display:block;
  margin-top:6px;
  color:var(--gold-soft);
  font-size:.72rem;
  font-style:normal;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.hero-actions{
  display:flex;
  gap:16px;
  margin-top:32px;
  flex-wrap:wrap;
}

.hero-actions .button{
  flex:1 1 220px;
  min-height:56px;
  padding:16px 28px;
  border-radius:999px;
  font-weight:700;
  transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease,color .25s ease,border-color .25s ease;
}

.hero .button-primary{
  color:#0a1f44;
  background:#d4af37;
}

.hero .button-primary:hover{
  color:#0a1f44;
  background:#e0bd4f;
  transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(0,0,0,.24);
}

.hero .button-ghost{
  color:var(--white);
  background:transparent;
  border-color:var(--white);
}

.hero .button-ghost:hover{
  color:#0a1f44;
  background:var(--white);
  border-color:var(--white);
  transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(0,0,0,.24);
}

.scroll-indicator{
  position:absolute;
  bottom:32px;
  left:50%;
  color:var(--white);
  font-size:1.5rem;
  line-height:1;
  opacity:.8;
  transform:translateX(-50%);
  animation:hero-float 2s ease-in-out infinite;
}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 24px;
  border:1px solid transparent;
  border-radius:var(--radius-sm);
  font-weight:700;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  transition:transform .22s,box-shadow .22s,background .22s,color .22s,border-color .22s;
}

.button:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-2);
}

.button-primary{
  color:var(--black);
  background:var(--gold);
}

.button-primary:hover{
  background:var(--gold-deep);
  color:var(--white);
}

.button-light{
  color:var(--night);
  background:var(--white);
}

.button-light:hover{
  background:var(--gold-soft);
  color:var(--night);
}

.button-ghost{
  color:var(--white);
  border-color:rgba(255,255,255,.82);
}

.button-ghost:hover{
  border-color:var(--gold);
  color:var(--gold);
  background:rgba(255,255,255,.04);
}

.scroll-cue{
  position:absolute;
  bottom:28px;
  left:50%;
  width:24px;
  height:40px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:99px;
  transform:translateX(-50%);
  transition:border-color .2s,background .2s;
}

.scroll-cue:hover{border-color:var(--gold);background:rgba(255,255,255,.08)}

.scroll-cue span{
  display:block;
  width:4px;
  height:8px;
  margin:8px auto;
  background:var(--white);
  border-radius:9px;
  animation:cue 1.8s ease-in-out infinite;
}

.section{padding:72px 0}

.section h2{
  margin:0;
  font-size:clamp(2rem,6vw,3rem);
  line-height:1.12;
  letter-spacing:-.03em;
}

.section h3{
  margin:10px 0;
  font-size:1.35rem;
}

.section p{color:var(--slate)}

.split{display:grid;gap:40px}

.section-head{
  display:grid;
  gap:16px;
  margin-bottom:32px;
}

.text-link{
  color:var(--gold-deep);
  font-weight:700;
  text-decoration:none;
}

.text-link:hover{color:var(--gold)}

.theme{background:var(--white)}

.theme-card{
  display:grid;
  gap:20px;
  padding:32px;
  border-radius:var(--radius-md);
  background:linear-gradient(145deg,var(--night),#13284b);
  color:var(--white);
  box-shadow:var(--shadow-2);
}

.theme-card span,
.card-date{
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.08em;
  color:rgba(255,255,255,.76);
  text-transform:uppercase;
}

.theme-card strong{
  font:500 2rem/1.15 Georgia,serif;
  color:var(--gold);
}

.theme-card small{color:rgba(255,255,255,.72)}

.week,
.cells{background:var(--ivory)}

.cards{display:grid;gap:16px}

.card{
  padding:24px;
  border:1px solid var(--mist);
  border-radius:var(--radius-md);
  background:var(--white);
  box-shadow:var(--shadow-1);
}

.card.featured{
  border-color:var(--gold);
  background:var(--gold-soft);
  color:var(--ink);
}

.card.featured p,
.card.featured a{color:inherit}

.card a{
  color:var(--gold-deep);
  font-weight:700;
}

/* Premium service cards — scoped to the “Nos rendez-vous” section. */
.services-showcase .service-showcase-card{
  display:flex;
  min-width:0;
  min-height:390px;
  flex-direction:column;
  padding:26px;
  border-color:rgba(11,29,54,.1);
  border-radius:var(--radius-lg);
  box-shadow:0 10px 32px rgba(11,29,54,.08);
  transition:transform .4s cubic-bezier(.2,.8,.2,1),border-color .4s ease,box-shadow .4s ease;
}

.services-showcase .service-showcase-card:hover{
  transform:translateY(-8px);
  border-color:rgba(184,138,59,.48);
  box-shadow:0 22px 48px rgba(11,29,54,.15);
}

.services-showcase .service-showcase-card--sunday{
  border-color:rgba(184,138,59,.62);
  box-shadow:0 12px 34px rgba(184,138,59,.14),0 1px 2px rgba(11,29,54,.06);
}

.services-showcase .service-showcase-card--sunday:hover{
  border-color:var(--gold);
  box-shadow:0 24px 52px rgba(184,138,59,.22),0 10px 28px rgba(11,29,54,.1);
}

.service-showcase-card__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:24px;
}

.service-showcase-card__icon{
  display:grid;
  width:48px;
  height:48px;
  flex:none;
  place-items:center;
  border-radius:14px;
  color:var(--gold-deep);
  background:var(--gold-soft);
}

.service-showcase-card__icon svg{width:25px;height:25px}

.service-showcase-card__badge{
  padding:6px 11px;
  border:1px solid rgba(184,138,59,.24);
  border-radius:999px;
  color:var(--gold-deep);
  background:rgba(243,232,211,.55);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.services-showcase .service-showcase-card .card-date{margin:0 0 10px;color:var(--gold-deep)}
.services-showcase .service-showcase-card h3{margin:0 0 14px;font-size:1.28rem;line-height:1.25}
.services-showcase .service-showcase-card h3 + p{margin:0;line-height:1.65}

.services-showcase .service-showcase-card__location{
  display:flex;
  align-items:center;
  gap:6px;
  margin:22px 0 18px;
  color:var(--slate);
  font-size:.88rem;
  font-weight:700;
}

.services-showcase .service-showcase-card__cta{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  gap:8px;
  margin-top:auto;
  padding:10px 15px;
  border:1px solid var(--gold);
  border-radius:999px;
  color:var(--gold-deep);
  text-decoration:none;
  transition:color .25s ease,background-color .25s ease,transform .25s ease;
}

.services-showcase .service-showcase-card__cta:hover{
  color:var(--night);
  background:var(--gold-soft);
  transform:translateX(2px);
}

.services-showcase .service-showcase-card__cta:focus-visible{outline:3px solid var(--focus);outline-offset:3px}

@media(prefers-reduced-motion:reduce){
  .services-showcase .service-showcase-card,
  .services-showcase .service-showcase-card__cta{transition:none}
}

.impact{background:var(--white)}

.reverse .visual-panel{order:-1}

.visual-panel{
  display:grid;
  min-height:300px;
  place-items:end start;
  padding:24px;
  border-radius:var(--radius-md);
  background:linear-gradient(145deg,var(--night),var(--blue));
  color:var(--white);
  font:500 2rem Georgia,serif;
  box-shadow:var(--shadow-2);
}

.visual-panel--apostle{
  min-height:0;
  margin:0;
  padding:0;
  aspect-ratio:2/3;
  overflow:hidden;
  background:var(--night);
}

.visual-panel--apostle img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}

.stat{
  display:flex;
  gap:16px;
  align-items:center;
  margin:28px 0;
}

.stat strong{
  font:600 3rem/1 Georgia,serif;
  color:var(--gold);
}

.icon-card>span{
  color:var(--gold-deep);
  font-size:2rem;
}

.center{
  text-align:center;
  margin-top:32px;
}

.library{background:var(--white)}

.resource-list{
  display:grid;
  border-top:1px solid var(--mist);
}

.resource-list a{
  display:grid;
  grid-template-columns:44px 1fr auto;
  gap:12px;
  align-items:center;
  padding:20px 0;
  border-bottom:1px solid var(--mist);
  text-decoration:none;
}

.resource-list span{
  color:var(--gold-deep);
  font-weight:700;
}

.resource-list small{color:var(--slate)}

.messages{background:var(--ivory)}

.message-feature{
  display:grid;
  gap:28px;
  padding:24px;
  border-radius:var(--radius-md);
  background:var(--white);
  border:1px solid var(--mist);
  box-shadow:var(--shadow-1);
}

.message-art{
  display:grid;
  min-height:220px;
  place-items:center;
  border-radius:12px;
  background:linear-gradient(135deg,var(--night),var(--blue));
  color:var(--white);
  font:500 2rem Georgia,serif;
  text-align:center;
}

.events{background:var(--white)}

.event-list{
  display:grid;
  margin-top:32px;
  border-top:1px solid var(--mist);
}

.event-list article{
  display:grid;
  grid-template-columns:56px 1fr;
  gap:16px;
  align-items:center;
  padding:20px 0;
  border-bottom:1px solid var(--mist);
}

.event-list time{
  display:grid;
  place-items:center;
  color:var(--gold-deep);
  border:1px solid color-mix(in srgb, var(--gold) 35%, var(--mist));
  background:var(--gold-soft);
  border-radius:10px;
  padding:6px;
}

.event-list time b{font-size:1.4rem}

.event-list time span{
  font-size:.68rem;
  font-weight:700;
  color:var(--gold-deep);
}

.event-list h3,
.event-list p{margin:0}

.event-list .text-link{grid-column:2}

.event-list .event-card{grid-template-columns:minmax(140px,220px) 1fr;align-items:stretch;gap:24px}
.event-card--featured{margin-inline:-20px;padding-inline:20px!important;border-radius:14px;background:var(--gold-soft)}
.event-card__media{min-height:160px;overflow:hidden;border-radius:12px;background:linear-gradient(135deg,var(--night),var(--blue))}
.event-card__media img{width:100%;height:100%;object-fit:cover}
.event-card__fallback{display:grid;height:100%;min-height:160px;place-items:center;color:var(--white);font-size:2.5rem}
.event-card__content{display:grid;align-content:center;gap:8px}
.event-card__meta{color:var(--gold-deep);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.event-card__schedule,.event-card__location,.event-card__description{color:var(--slate)}
.event-card__location{font-weight:700}
.event-card__content .button{justify-self:start;margin-top:8px}
.event-empty{margin-top:32px;padding:32px;border:1px solid var(--mist);border-radius:12px;text-align:center;color:var(--slate)}

.donate{
  background:var(--gold-soft);
}

.contact{
  background:var(--night);
  color:var(--white);
}

.contact p{color:rgba(255,255,255,.78)}

.contact-note{font-size:.875rem}

.contact-form{
  display:grid;
  gap:8px;
  padding:24px;
  border-radius:var(--radius-md);
  background:var(--white);
  color:var(--ink);
  box-shadow:var(--shadow-2);
}

.contact-form label{
  font-size:.875rem;
  font-weight:700;
}

.contact-form input,
.contact-form textarea{
  width:100%;
  border:1px solid var(--mist);
  border-radius:var(--radius-sm);
  padding:12px;
  font:inherit;
  color:var(--ink);
  background:var(--white);
}

.contact-form .button{margin-top:8px}

.form-status{
  min-height:24px;
  margin:0;
  color:var(--success);
}

.site-footer{
  padding:64px 0 20px;
  background:#07172c;
  color:var(--white);
}

.footer-grid{
  display:grid;
  gap:32px;
}

.footer-grid h2{
  font-size:.8rem;
  letter-spacing:.08em;
  color:var(--gold);
  text-transform:uppercase;
}

.footer-grid a{
  display:block;
  margin:8px 0;
  color:rgba(255,255,255,.82);
  text-decoration:none;
}

.footer-grid a:hover{color:var(--gold)}

.footer-grid .brand{
  margin-bottom:16px;
  color:var(--white);
}

.footer-grid .brand__logo{
  width:64px;
  height:64px;
  flex-basis:64px;
}

.footer-grid p{color:rgba(255,255,255,.7)}

.footer-bottom{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:12px;
  width:min(100% - 48px,var(--container));
  margin:48px auto 0;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.65);
  font-size:.84rem;
}

.footer-admin-link{color:inherit;text-decoration:none;opacity:.78}
.footer-admin-link:hover{color:var(--gold);opacity:1}
.footer-admin-link[aria-disabled="true"]{cursor:not-allowed;opacity:.45}
.footer-admin-link[aria-disabled="true"]:hover{color:inherit}

/* SECTION — THEME DU MOIS */

.monthly-theme{
  background:var(--white);
}

.monthly-theme__grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);
  gap:clamp(32px,5vw,72px);
  align-items:center;
}

.monthly-theme__content{
  max-width:680px;
}

.monthly-theme__badge{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  margin:0 0 16px;
  padding:0 12px;
  border-radius:999px;
  background:var(--gold-soft);
  color:var(--gold-deep);
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.monthly-theme__title{
  margin:0 0 16px;
  color:var(--ink);
  font-size:clamp(32px,4.4vw,52px);
  line-height:1.08;
  letter-spacing:-.03em;
  max-width:12ch;
}

.monthly-theme__reference{
  margin:0 0 16px;
  color:var(--gold-deep);
  font-size:15px;
  font-weight:700;
  letter-spacing:.02em;
}

.monthly-theme__summary{
  margin:0 0 32px;
  max-width:62ch;
  color:var(--slate);
}

.monthly-theme__actions{
  display:flex;
  align-items:center;
  gap:16px;
}

.monthly-theme__visual{
  position:relative;
  margin:0;
  overflow:hidden;
  border-radius:var(--radius-lg);
  border:1px solid var(--mist);
  background:
    linear-gradient(180deg,rgba(11,29,54,.06),rgba(11,29,54,.14)),
    var(--ivory);
  box-shadow:var(--shadow-2);
  min-height:460px;
}

.monthly-theme__visual::before{
  content:"";
  position:absolute;
  top:-40px;
  left:-24px;
  width:200px;
  height:200px;
  background:radial-gradient(circle,rgba(184,138,59,.14),transparent 72%);
  pointer-events:none;
  z-index:1;
}

.monthly-theme__visual img{
  position:relative;
  z-index:2;
  display:block;
  width:100%;
  height:100%;
  min-height:460px;
  object-fit:cover;
}

.monthly-theme__placeholder-note{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:3;
  padding:14px 16px;
  border-radius:12px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(10px);
  color:var(--ink);
  font-size:14px;
  font-weight:600;
  box-shadow:var(--shadow-1);
}

.monthly-theme .reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity 560ms ease,transform 560ms ease;
}

.monthly-theme .reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

.services-section{
  padding:80px 0;
  background:var(--ivory);
}

.services-header{
  max-width:760px;
  margin:0 auto 48px;
  text-align:center;
}

.services-header h2{
  margin:0;
  font-size:clamp(2rem,7vw,3.5rem);
  line-height:1.1;
  letter-spacing:-.035em;
}

.services-header p{
  max-width:680px;
  margin:18px auto 0;
  color:var(--slate);
  font-size:1.05rem;
  line-height:1.7;
}

.services-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  max-width:960px;
  margin:0 auto;
}

.services-section .service-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:280px;
  padding:32px;
  border-radius:24px;
  background:var(--white);
  box-shadow:0 10px 32px rgba(11,29,54,.09);
  text-align:center;
  transition:transform .35s ease,box-shadow .35s ease;
}

.services-section .service-card:hover{
  transform:translateY(-8px);
  box-shadow:0 22px 48px rgba(11,29,54,.17);
}

.services-section .service-day{
  margin:0 0 14px;
  color:#b88a3b;
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.services-section .service-card h3{
  margin:0;
  font-size:clamp(1.45rem,5vw,2rem);
  font-weight:800;
  line-height:1.2;
}

.services-section .service-time{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35em;
  margin:24px 0 0;
  padding:10px 18px;
  border-radius:999px;
  background:#d4af37;
  color:#0a1f44;
  font-weight:800;
}

@media(min-width:768px){
  .services-section{padding:112px 0}
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
}

@keyframes drift{
  to{transform:scale(1.07) translate(-.5%,-.5%)}
}

@keyframes cue{
  50%{transform:translateY(10px);opacity:.45}
}

@keyframes hero-float{
  0%,100%{transform:translate(-50%,0)}
  50%{transform:translate(-50%,10px)}
}

@media(max-width:639px){
  .hero-content{padding:112px 0 136px}
  .hero-actions .button{width:100%;flex-basis:100%}
  .event-list .event-card{grid-template-columns:1fr}
  .event-card--featured{margin-inline:-12px;padding-inline:12px!important}
}

@media(min-width:640px){
  .container{width:min(100% - 80px,var(--container))}
  .hero-content{width:min(100% - 80px,820px)}
  .hero-actions{display:flex}
  .hero-actions .button{min-width:204px}
  .split{grid-template-columns:1fr 1fr;align-items:center}
  .cards.three{grid-template-columns:repeat(3,1fr)}
  .cards.four{grid-template-columns:repeat(2,1fr)}
  .message-feature{grid-template-columns:1.2fr 1fr;align-items:center}
  .event-list article{grid-template-columns:64px 1fr auto}
  .event-list .text-link{grid-column:auto}
  .footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}
  .next-service__inner{grid-template-columns:.8fr 1.15fr auto}
}

@media(min-width:1024px){
  .site-header{padding:16px 64px}
  .menu-toggle{display:none}
  .site-nav{display:flex;align-items:center;gap:22px}
  .site-nav a{min-height:auto;font-size:.9rem;font-weight:600;text-decoration:none}
  .nav-responsables{
    margin:0;
    padding:9px 12px;
    border:1px solid currentColor;
    border-radius:8px;
    font-size:.8rem
  }
  .language-switcher{
    min-height:auto;
    margin:0 0 0 2px;
    padding:0;
    border:0;
    color:inherit
  }
  .language-switcher button{min-width:28px;min-height:28px;font-size:.72rem}
  .section{padding:112px 0}
  .section-head{grid-template-columns:1fr auto;align-items:end}
  .reverse .visual-panel{order:0}
  .cards.four{grid-template-columns:repeat(4,1fr)}
  .contact .split{grid-template-columns:1.1fr .9fr}
}

@media(max-width:991px){
  .monthly-theme__grid{grid-template-columns:1fr}
  .monthly-theme__content{max-width:100%}
  .monthly-theme__title{max-width:100%}
  .monthly-theme__visual,
  .monthly-theme__visual img{min-height:380px}
}

@media(max-width:639px){
  .monthly-theme__badge{margin-bottom:14px}
  .monthly-theme__summary{margin-bottom:24px}
  .monthly-theme__actions{display:block}
  .monthly-theme__actions .button{width:100%}
  .monthly-theme__actions .button + .button{margin-top:12px}
  .monthly-theme__visual,
  .monthly-theme__visual img{min-height:320px}
  .monthly-theme__placeholder-note{
    left:12px;
    right:12px;
    bottom:12px
  }
}

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

/* Vision page */
body:has(.vision-hero) main{
  background:#f8f7f4;
}

body:has(.vision-hero) main > .section{
  padding:80px 0;
}

body:has(.vision-hero) main .container{
  width:min(100% - 48px,1200px);
  margin-inline:auto;
}

body:has(.vision-hero) .vision-hero{
  display:flex;
  align-items:center;
  min-height:70vh;
  padding:120px 0;
  color:#fff;
  background:linear-gradient(135deg,#081a3a 0%,#0a1f44 100%);
}

body:has(.vision-hero) .vision-hero__content{
  width:min(100% - 48px,1200px);
  margin-inline:auto;
}

body:has(.vision-hero) .vision-hero__eyebrow{
  margin:0 0 20px;
  color:#d4af37;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

body:has(.vision-hero) .vision-hero__title{
  max-width:900px;
  margin:0;
  font:500 clamp(3rem,8vw,6.5rem)/.98 Georgia,"Times New Roman",serif;
  letter-spacing:-.045em;
  text-wrap:balance;
}

body:has(.vision-hero) .vision-hero__intro{
  max-width:700px;
  margin:28px 0 32px;
  color:rgba(255,255,255,.84);
  font-size:clamp(1.05rem,2.5vw,1.3rem);
  line-height:1.7;
}

body:has(.vision-hero) .vision-hero .text-link{
  color:#d4af37;
}

body:has(.vision-hero) main > .section h2{
  margin-top:0;
}

body:has(.vision-hero) main > .section:nth-of-type(2) .theme-card{
  margin-top:32px;
  padding:clamp(32px,6vw,56px);
  border:0;
  border-left:5px solid #d4af37;
  border-radius:24px;
  color:#fff;
  background:#081a3a;
  box-shadow:0 22px 50px rgba(8,26,58,.18);
}

body:has(.vision-hero) main > .section:nth-of-type(2) blockquote p{
  margin:0;
  font:italic clamp(1.35rem,4vw,2rem)/1.55 Georgia,"Times New Roman",serif;
}

body:has(.vision-hero) main > .section:nth-of-type(2) blockquote cite{
  display:block;
  margin-top:20px;
  color:#d4af37;
  font-size:.8rem;
  font-style:normal;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

body:has(.vision-hero) .vision-pillars{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  margin-top:40px;
}

body:has(.vision-hero) .vision-pillar{
  padding:32px;
  border-radius:24px;
  background:#fff;
  box-shadow:0 12px 32px rgba(8,26,58,.09);
  transition:transform .35s ease,box-shadow .35s ease;
}

body:has(.vision-hero) .vision-pillar::before{
  content:"✦";
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  margin-bottom:24px;
  border-radius:50%;
  color:#0a1f44;
  background:#d4af37;
  font-size:1.15rem;
}

body:has(.vision-hero) .vision-pillar:hover{
  transform:translateY(-8px);
  box-shadow:0 24px 50px rgba(8,26,58,.16);
}

body:has(.vision-hero) .vision-pillar h3{
  margin:0 0 12px;
  font-size:1.6rem;
}

body:has(.vision-hero) main > .section:nth-of-type(5) .split{
  display:grid;
  gap:48px;
  align-items:center;
}

body:has(.vision-hero) main > .section:nth-of-type(5) .visual-panel{
  min-height:420px;
  margin:0;
  overflow:hidden;
  border-radius:24px;
  background:linear-gradient(145deg,#e7dfca,#d6c18a);
  box-shadow:0 24px 56px rgba(8,26,58,.2);
}

body:has(.vision-hero) main > .section:nth-of-type(5) .visual-panel img{
  width:100%;
  height:100%;
  min-height:420px;
  aspect-ratio:6/7;
  object-fit:cover;
  background:linear-gradient(145deg,#e7dfca,#d6c18a);
}

body:has(.vision-hero) .vision-image-placeholder{
  display:grid;
  place-content:center;
  gap:10px;
  width:100%;
  min-height:420px;
  aspect-ratio:6/7;
  color:#0a1f44;
  background:linear-gradient(145deg,#e7dfca,#d6c18a);
  text-align:center;
}

body:has(.vision-hero) .vision-image-placeholder span{font-size:.72rem;font-weight:800;letter-spacing:.16em}
body:has(.vision-hero) .vision-image-placeholder strong{font:500 clamp(1.5rem,4vw,2.3rem)/1.1 Georgia,serif}

body:has(.vision-hero) .section.contact{
  color:#fff;
  background:#0a1f44;
  text-align:center;
}

body:has(.vision-hero) .section.contact p{
  max-width:680px;
  margin:18px auto 0;
  color:rgba(255,255,255,.82);
}

body:has(.vision-hero) .section.contact .hero-actions{
  justify-content:center;
}

body:has(.vision-hero) .section.contact .button-primary{
  color:#0a1f44;
  background:#d4af37;
}

body:has(.vision-hero) .section.contact .button-light{
  color:#fff;
  background:transparent;
  border-color:#fff;
}

body:has(.vision-hero) .section.contact .button-light:hover{
  color:#0a1f44;
  background:#fff;
}

@media(min-width:700px){
  body:has(.vision-hero) .vision-pillars{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(min-width:900px){
  body:has(.vision-hero) main > .section:nth-of-type(5) .split{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
}

@media(max-width:639px){
  body:has(.vision-hero) main > .section{padding:64px 0}
  body:has(.vision-hero) .vision-hero{min-height:auto;padding:112px 0 88px}
  body:has(.vision-hero) .vision-hero__content,
  body:has(.vision-hero) main .container{width:min(100% - 32px,1200px)}
  body:has(.vision-hero) main > .section:nth-of-type(5) .visual-panel,
  body:has(.vision-hero) main > .section:nth-of-type(5) .visual-panel img,
  body:has(.vision-hero) .vision-image-placeholder{min-height:340px}
}

/* Messages page */
.messages-page .messages-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:82svh;overflow:hidden;color:var(--white);background:var(--night)}
.messages-page .messages-hero__image,.messages-page .messages-hero__overlay{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.messages-page .messages-hero__image{object-fit:cover;object-position:center}
.messages-page .messages-hero__overlay{z-index:-1;background:linear-gradient(90deg,rgba(3,12,28,.96) 0%,rgba(5,19,42,.76) 48%,rgba(5,19,42,.2) 100%)}
.messages-page .messages-hero__content{padding:144px 0 112px}
.messages-page .messages-hero h1{max-width:10ch;margin:0;font:500 clamp(3.5rem,11vw,7rem)/.95 Georgia,serif;letter-spacing:-.05em}
.messages-page .messages-hero__content>p:last-child{max-width:620px;margin:24px 0 0;color:rgba(255,255,255,.86);font-size:clamp(1.1rem,2.5vw,1.35rem)}
.messages-page .featured-sermon{display:grid;margin-top:36px;overflow:hidden;border-radius:28px;background:var(--white);box-shadow:var(--shadow-3)}
.messages-page .featured-sermon__media{position:relative;min-height:340px;overflow:hidden;background:var(--night)}
.messages-page .featured-sermon__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.messages-page .featured-sermon:hover .featured-sermon__media img{transform:scale(1.035)}
.messages-page .sermon-play,.messages-page .sermon-card__media span{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:68px;height:68px;border-radius:50%;color:#0a1f44;background:#d4af37;box-shadow:0 12px 30px rgba(0,0,0,.3);transform:translate(-50%,-50%)}
.messages-page .featured-sermon__content{padding:clamp(28px,5vw,56px)}
.messages-page .featured-sermon__content h2{margin:0;font-size:clamp(2rem,5vw,3.4rem)}
.messages-page .sermon-meta{display:flex;gap:16px 28px;flex-wrap:wrap;margin:24px 0}
.messages-page .sermon-meta div{display:grid;gap:3px}.messages-page .sermon-meta dt{color:var(--slate);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.messages-page .sermon-meta dd{margin:0;font-weight:700}
.messages-page .sermon-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.messages-page .sermon-actions .button{border-radius:999px}
.messages-page .sermon-actions button:disabled{cursor:not-allowed;opacity:.52;transform:none;box-shadow:none}
.messages-page .sermon-library{background:#f1f2f4}
.messages-page .sermon-search{display:grid;grid-template-columns:1fr;gap:12px;margin:36px 0 22px;padding:10px;border-radius:18px;background:var(--white);box-shadow:var(--shadow-2)}
.messages-page .sermon-search input{min-width:0;min-height:52px;padding:0 18px;border:0;border-radius:12px;background:transparent;color:var(--ink);font:inherit}.messages-page .sermon-search input:focus{outline:3px solid var(--focus);outline-offset:2px}
.messages-page .sermon-filter-label{margin:0 0 12px;color:var(--night);font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.messages-page .sermon-categories{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.messages-page .sermon-categories button,.messages-page .sermon-pagination button{min-height:44px;padding:8px 17px;border:1px solid #d5d9e0;border-radius:999px;color:var(--ink);background:var(--white);font:700 .86rem/1 inherit;cursor:pointer;transition:.25s ease}
.messages-page .sermon-categories button:hover,.messages-page .sermon-categories button.is-active,.messages-page .sermon-pagination button:hover,.messages-page .sermon-pagination button.is-active{border-color:#d4af37;color:#0a1f44;background:#d4af37}
.messages-page .sermon-results{min-height:24px;margin:0 0 18px;color:var(--slate);font-size:.9rem}
.messages-page .sermon-grid{display:grid;grid-template-columns:1fr;gap:24px}
.messages-page .sermon-card{overflow:hidden;border-radius:22px;background:var(--white);box-shadow:0 10px 30px rgba(11,29,54,.09);transition:transform .35s ease,box-shadow .35s ease}.messages-page .sermon-card:hover{transform:translateY(-8px);box-shadow:0 22px 46px rgba(11,29,54,.17)}
.messages-page .sermon-card[hidden]{display:none}
.messages-page .sermon-card__media{position:relative;height:210px;overflow:hidden;background:var(--night)}.messages-page .sermon-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.messages-page .sermon-card:hover img{transform:scale(1.05)}.messages-page .sermon-card__media span{width:48px;height:48px;font-size:.82rem}
.messages-page .sermon-card__body{padding:26px}.messages-page .sermon-card h3{margin:8px 0;font-size:1.45rem}.messages-page .sermon-preacher{margin:0;color:var(--slate)}.messages-page .sermon-card .sermon-actions .button{flex:1;padding-inline:16px}
.messages-page .sermon-pagination{display:flex;justify-content:center;gap:8px;margin-top:48px}.messages-page .sermon-pagination button{min-width:44px;padding:8px}
@media(min-width:640px){.messages-page .sermon-search{grid-template-columns:1fr auto}.messages-page .sermon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:960px){.messages-page .featured-sermon{grid-template-columns:1.15fr .85fr}.messages-page .sermon-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:639px){.messages-page .messages-hero{min-height:72svh}.messages-page .messages-hero__image{object-position:64% center}.messages-page .messages-hero__content{padding:120px 0 88px}.messages-page .featured-sermon__media{min-height:260px}.messages-page .sermon-actions .button{width:100%}}

/* Dynamic sermons experience */
.messages-page [hidden]{display:none!important}
.messages-page .featured-sermon{color:inherit;text-decoration:none;transition:transform .4s ease,box-shadow .4s ease}
.messages-page .featured-sermon:hover{transform:translateY(-7px);box-shadow:0 28px 70px rgba(11,29,54,.22)}
.messages-page .featured-sermon:focus-visible,.messages-page .sermon-card:focus-visible,.messages-page .sermon-channel__button:focus-visible{outline:3px solid var(--focus);outline-offset:5px}
.messages-page .featured-sermon__content{display:flex;flex-direction:column;justify-content:center}
.messages-page .featured-sermon__content>p:not(.card-date){color:var(--slate);line-height:1.72}
.messages-page .sermon-byline{margin:20px 0 8px;font-weight:800}
.messages-page .sermon-watch-button{align-self:flex-start;margin-top:24px;border-radius:999px;pointer-events:none}
.messages-page .sermon-card{display:flex;min-width:0;flex-direction:column;color:inherit;text-decoration:none}
.messages-page .sermon-card__body{display:flex;flex:1;flex-direction:column}
.messages-page .sermon-card__body>.card-date{margin:0;color:var(--gold-deep)}
.messages-page .sermon-card__description{display:-webkit-box;min-height:3.2em;margin:16px 0 0;overflow:hidden;color:var(--slate);line-height:1.6;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.messages-page .sermon-card .sermon-watch-button{margin-top:auto;padding-inline:18px}
.messages-page .sermon-card__media,.messages-page .featured-sermon__media{isolation:isolate}
.messages-page .sermon-media--placeholder{display:grid;place-items:center;background:radial-gradient(circle at 70% 20%,rgba(212,175,55,.26),transparent 28%),linear-gradient(145deg,#081a38,#173b6c)}
.messages-page .sermon-media__monogram{position:static!important;width:auto!important;height:auto!important;color:rgba(255,255,255,.18)!important;background:transparent!important;box-shadow:none!important;font:800 clamp(2.5rem,8vw,5rem)/1 Inter,sans-serif!important;letter-spacing:.12em;transform:none!important}
.messages-page .sermon-card__play{z-index:2}
.messages-page .sermon-empty-section{background:#f1f2f4}
.messages-page .sermon-empty{padding:clamp(36px,7vw,72px);border:1px solid rgba(184,138,59,.2);border-radius:28px;background:rgba(255,255,255,.82);box-shadow:var(--shadow-2);text-align:center;backdrop-filter:blur(14px)}
.messages-page .sermon-empty__illustration{width:min(100%,320px);height:auto}
.messages-page .sermon-empty h2{max-width:620px;margin:12px auto 0;font-size:clamp(1.6rem,4vw,2.5rem)}
.messages-page .sermon-channel{overflow:hidden;color:var(--white);background:var(--night)}
.messages-page .sermon-channel__panel{position:relative;display:grid;gap:32px;align-items:center;padding:clamp(34px,6vw,64px);overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.035));box-shadow:0 24px 64px rgba(0,0,0,.22);backdrop-filter:blur(16px)}
.messages-page .sermon-channel__panel::after{position:absolute;right:-90px;top:-120px;width:300px;height:300px;border-radius:50%;background:rgba(212,175,55,.13);content:"";filter:blur(3px)}
.messages-page .sermon-channel h2{position:relative;margin:0;font-size:clamp(2rem,5vw,3.6rem);line-height:1.05}
.messages-page .sermon-channel h2+p{position:relative;max-width:650px;margin:18px 0 0;color:rgba(255,255,255,.75);font-size:1.04rem;line-height:1.7}
.messages-page .sermon-channel__button{position:relative;z-index:1;justify-self:start;border-radius:999px;color:var(--white);background:#d82020;box-shadow:0 14px 30px rgba(216,32,32,.28)}
.messages-page .sermon-channel__button:hover{background:#bd1515;box-shadow:0 18px 38px rgba(216,32,32,.36)}
@media(min-width:820px){.messages-page .sermon-channel__panel{grid-template-columns:1fr auto}.messages-page .sermon-channel__button{justify-self:end}}
@media(prefers-reduced-motion:reduce){.messages-page .featured-sermon,.messages-page .sermon-card,.messages-page .featured-sermon img,.messages-page .sermon-card img{transition:none}}

/* Cellules page */
.cellules-page .cellules-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:78svh;overflow:hidden;color:var(--white);background:radial-gradient(circle at 78% 30%,rgba(184,138,59,.28),transparent 22%),linear-gradient(135deg,#07172f 0%,#0b2850 100%)}
.cellules-page .cellules-hero__pattern{position:absolute;inset:0;z-index:-1;opacity:.17;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:72px 72px;transform:perspective(600px) rotateX(60deg) scale(1.6) translateY(12%);transform-origin:center bottom}
.cellules-page .cellules-hero__content{padding:148px 0 108px}
.cellules-page .cellules-hero h1{max-width:10ch;margin:0;font:500 clamp(3.5rem,11vw,7rem)/.95 Georgia,serif;letter-spacing:-.05em}
.cellules-page .cellules-hero__content>p:not(.eyebrow){max-width:650px;margin:24px 0 34px;color:rgba(255,255,255,.84);font-size:clamp(1.1rem,2.5vw,1.35rem)}
.cellules-page .cell-intro{background:var(--white)}
.cellules-page .cell-intro__layout{display:grid;gap:48px;align-items:center}.cellules-page .cell-intro h2{margin:0;font-size:clamp(2.2rem,5vw,4rem);line-height:1.05}.cellules-page .cell-intro h2~p{color:var(--slate);font-size:1.05rem;line-height:1.75}.cellules-page .cell-intro .text-link{display:inline-block;margin-top:10px}
.cellules-page .cell-intro__benefits{display:grid;gap:14px}.cellules-page .cell-intro__benefits article{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:24px;border:1px solid var(--mist);border-radius:20px;background:var(--ivory);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}.cellules-page .cell-intro__benefits article:hover{transform:translateX(7px);border-color:var(--gold);box-shadow:var(--shadow-2)}.cellules-page .cell-intro__benefits article>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;color:var(--night);background:var(--gold);font-size:.76rem;font-weight:900}.cellules-page .cell-intro__benefits h3{margin:0 0 6px}.cellules-page .cell-intro__benefits p{margin:0;color:var(--slate);line-height:1.6}
.cellules-page .cellules-directory{background:#f1f2f4}
.cellules-page .cell-search{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:38px 0 12px;padding:10px 10px 10px 22px;border-radius:18px;background:var(--white);box-shadow:var(--shadow-2)}
.cellules-page .cell-search>span{color:var(--gold-deep);font-size:1.7rem;line-height:1}
.cellules-page .cell-search input{min-width:0;min-height:52px;border:0;background:transparent;color:var(--ink);font:inherit}
.cellules-page .cell-search input:focus{outline:0}.cellules-page .cell-search:focus-within{outline:3px solid var(--focus);outline-offset:3px}
.cellules-page .cell-results{min-height:26px;margin:0 0 20px;color:var(--slate);font-size:.9rem}
.cellules-page .cell-grid{display:grid;grid-template-columns:1fr;gap:24px}
.cellules-page .cell-card{overflow:hidden;border:1px solid rgba(11,29,54,.06);border-radius:24px;background:var(--white);box-shadow:0 10px 30px rgba(11,29,54,.09);transition:transform .35s ease,box-shadow .35s ease}
.cellules-page .cell-card:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(11,29,54,.17)}
.cellules-page .cell-card[hidden]{display:none}
.cellules-page .cell-card__media{position:relative;height:220px;overflow:hidden;background:var(--night)}
.cellules-page .cell-card__media--public{background:radial-gradient(circle at 78% 18%,rgba(212,175,55,.32),transparent 28%),linear-gradient(135deg,#071a39,#0d315e)}
.cellules-page .cell-card__media--public::before{content:"";position:absolute;inset:22px;border:1px solid rgba(212,175,55,.3);border-radius:50% 50% 46% 54%/56% 43% 57% 44%;transform:rotate(-8deg)}
.cellules-page .cell-card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(5,17,37,.8))}
.cellules-page .cell-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.cellules-page .cell-card:hover .cell-card__media img{transform:scale(1.06)}
.cellules-page .cell-card__media>span{position:absolute;left:20px;bottom:18px;z-index:1;color:var(--white);font-size:.72rem;font-weight:800;letter-spacing:.15em}
.cellules-page .cell-card__body{padding:26px}.cellules-page .cell-card__kicker{margin:0;color:var(--gold-deep);font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.cellules-page .cell-card h3{margin:7px 0 22px;font-size:1.55rem}
.cellules-page .cell-card dl{display:grid;gap:11px;margin:0 0 26px}.cellules-page .cell-card dl div{display:flex;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px solid #eceef1}.cellules-page .cell-card dt{color:var(--slate);font-size:.83rem}.cellules-page .cell-card dd{margin:0;font-size:.86rem;font-weight:700;text-align:right}.cellules-page .cell-card dd a{text-decoration:none}
.cellules-page .cell-card .button{width:100%;border-radius:999px}
.cellules-page .cell-grid[aria-busy="true"]{min-height:140px}
.cellules-page .cell-search :disabled{cursor:wait;opacity:.58}
.cellules-page .cell-map-heading,.cellules-page .cell-list-heading{margin-top:48px}.cellules-page .cell-map-heading h3,.cellules-page .cell-list-heading h3{margin:0;font-size:clamp(1.7rem,4vw,2.6rem)}.cellules-page .cell-list-heading{margin-bottom:26px}
.cellules-page .cell-map{position:relative;min-height:390px;margin-top:24px;overflow:hidden;border:10px solid var(--white);border-radius:28px;background-color:#e8e5dc;background-image:linear-gradient(32deg,transparent 45%,rgba(255,255,255,.9) 46%,rgba(255,255,255,.9) 51%,transparent 52%),linear-gradient(145deg,transparent 42%,rgba(255,255,255,.85) 43%,rgba(255,255,255,.85) 48%,transparent 49%),linear-gradient(80deg,transparent 47%,rgba(203,196,181,.6) 48%,rgba(203,196,181,.6) 50%,transparent 51%);box-shadow:var(--shadow-3)}
.cellules-page .cell-map::before,.cellules-page .cell-map::after{content:"";position:absolute;border-radius:50%;background:rgba(125,169,119,.28)}.cellules-page .cell-map::before{width:300px;height:220px;left:8%;top:-60px}.cellules-page .cell-map::after{width:240px;height:280px;right:5%;bottom:-90px}
.cellules-page .map-pin{position:absolute;z-index:2;width:24px;height:24px;border:7px solid var(--gold);border-radius:50% 50% 50% 0;background:var(--white);box-shadow:0 8px 16px rgba(11,29,54,.25);transform:rotate(-45deg)}
.cellules-page .map-pin--one{left:23%;top:28%}.cellules-page .map-pin--two{left:58%;top:20%}.cellules-page .map-pin--three{left:43%;top:64%}.cellules-page .map-pin--four{right:17%;top:52%}
.cellules-page .cell-map__label{position:absolute;left:24px;bottom:24px;z-index:3;display:flex;align-items:center;gap:14px;padding:17px 20px;border-radius:16px;background:rgba(255,255,255,.94);box-shadow:var(--shadow-2);backdrop-filter:blur(8px)}
.cellules-page .cell-map__label>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:var(--night);background:var(--gold);font-size:1.3rem}.cellules-page .cell-map__label strong,.cellules-page .cell-map__label small{display:block}.cellules-page .cell-map__label small{margin-top:2px;color:var(--slate)}
.cellules-page .cell-faq{background:var(--white)}.cellules-page .cell-faq h2{margin:0 0 38px;font-size:clamp(2rem,5vw,3.4rem)}
.cellules-page .cell-accordion{border-top:1px solid var(--mist)}.cellules-page .cell-accordion details{border-bottom:1px solid var(--mist)}.cellules-page .cell-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;cursor:pointer;font-size:clamp(1.05rem,2.4vw,1.25rem);font-weight:800;list-style:none}.cellules-page .cell-accordion summary::-webkit-details-marker{display:none}.cellules-page .cell-accordion summary span{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50%;color:var(--night);background:var(--gold-soft);transition:transform .3s ease,background .3s ease}.cellules-page .cell-accordion details[open] summary span{background:var(--gold);transform:rotate(45deg)}.cellules-page .cell-accordion details p{margin:-4px 50px 24px 0;color:var(--slate);line-height:1.75}
.cellules-page .cell-cta{padding:clamp(76px,10vw,124px) 0;color:var(--white);background:linear-gradient(135deg,#081a3a,#0d315e);text-align:center}.cellules-page .cell-cta h2{margin:0;font:500 clamp(2.3rem,6vw,4.4rem)/1.05 Georgia,serif;letter-spacing:-.035em}.cellules-page .cell-cta p:not(.eyebrow){max-width:610px;margin:22px auto 30px;color:rgba(255,255,255,.8);font-size:1.08rem;line-height:1.7}
@media(min-width:700px){.cellules-page .cell-intro__layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cellules-page .cell-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:639px){.cellules-page .cellules-hero{min-height:72svh}.cellules-page .cellules-hero__content{padding:120px 0 84px}.cellules-page .cell-search{grid-template-columns:auto 1fr;padding-right:10px}.cellules-page .cell-search .button{grid-column:1/-1;width:100%}.cellules-page .cell-map{min-height:320px;margin-top:44px}.cellules-page .cell-map__label{left:14px;right:14px;bottom:14px}}

/* Donner page */
.donner-page .don-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:84svh;overflow:hidden;color:var(--white);background:linear-gradient(135deg,#06152c,#0d315d)}
.donner-page .don-hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.15;background-image:radial-gradient(circle at center,rgba(255,255,255,.7) 1px,transparent 1.5px);background-size:30px 30px;mask-image:linear-gradient(90deg,transparent,#000)}
.donner-page .don-hero__glow{position:absolute;right:-8%;top:6%;z-index:-1;width:min(58vw,720px);aspect-ratio:1;border:1px solid rgba(212,175,55,.28);border-radius:50%;box-shadow:0 0 0 80px rgba(212,175,55,.04),0 0 0 160px rgba(212,175,55,.025);animation:don-pulse 6s ease-in-out infinite}
.donner-page .don-hero__content{padding:150px 0 112px}.donner-page .don-hero h1{max-width:920px;margin:0;font:500 clamp(3.2rem,9vw,6.8rem)/.95 Georgia,serif;letter-spacing:-.055em}.donner-page .don-hero h1 em{color:var(--gold);font-weight:500}.donner-page .don-hero__content>p:not(.eyebrow){max-width:650px;margin:28px 0 34px;color:rgba(255,255,255,.82);font-size:clamp(1.05rem,2.5vw,1.28rem);line-height:1.7}
.donner-page .don-purpose h2{margin:0;font-size:clamp(2.2rem,5vw,4rem);line-height:1.05}.donner-page .don-purpose h2+p{color:var(--slate);font-size:1.08rem;line-height:1.75}.donner-page .don-impact{display:grid;gap:12px;margin-top:32px}.donner-page .don-impact div{display:flex;align-items:center;gap:16px;padding:15px 0;border-bottom:1px solid var(--mist)}.donner-page .don-impact strong{color:var(--gold-deep);font-size:.76rem;letter-spacing:.12em}.donner-page .don-impact span{font-weight:800}
.donner-page .don-verse{position:relative;margin:0;padding:clamp(34px,6vw,60px);overflow:hidden;border:0;border-radius:28px;color:var(--white);background:var(--night);box-shadow:var(--shadow-3)}.donner-page .don-verse>span{position:absolute;right:22px;top:-35px;color:rgba(212,175,55,.18);font:180px/1 Georgia,serif}.donner-page .don-verse p{position:relative;margin:0;font:italic clamp(1.35rem,3vw,2rem)/1.55 Georgia,serif}.donner-page .don-verse cite{display:block;margin-top:24px;color:var(--gold);font-size:.76rem;font-style:normal;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.donner-page .scripture-section{color:var(--white);background:var(--night)}.donner-page .scripture-section .eyebrow,.donner-page .scripture-section cite{color:var(--gold)}.donner-page .scripture-section .section-head>p{color:rgba(255,255,255,.68)}.donner-page .scripture-grid{display:grid;gap:18px;margin-top:42px}.donner-page .scripture-grid blockquote{margin:0;padding:30px;border:1px solid rgba(255,255,255,.12);border-radius:20px;background:rgba(255,255,255,.045);transition:transform .35s ease,border-color .35s ease}.donner-page .scripture-grid blockquote:hover{transform:translateY(-7px);border-color:rgba(212,175,55,.7)}.donner-page .scripture-grid p{margin:0;font:1.16rem/1.65 Georgia,serif}.donner-page .scripture-grid cite{display:block;margin-top:20px;font-size:.72rem;font-style:normal;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.donner-page .payment-section{background:#f1f2f4}.donner-page .payment-grid{display:grid;gap:16px;margin:42px 0 26px}.donner-page .payment-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:22px;border:1px solid transparent;border-radius:18px;color:var(--ink);background:var(--white);box-shadow:var(--shadow-1);font:inherit;text-align:left;cursor:pointer;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.donner-page .payment-card:hover,.donner-page .payment-card.is-active{transform:translateY(-4px);border-color:var(--gold);box-shadow:var(--shadow-2)}.donner-page .payment-card .payment-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;color:var(--night);background:var(--gold-soft);font-size:1.25rem}.donner-page .payment-card strong,.donner-page .payment-card small{display:block}.donner-page .payment-card small{margin-top:3px;color:var(--slate)}
.donner-page .payment-detail{display:grid;gap:34px;align-items:center;margin-top:24px;padding:clamp(28px,5vw,52px);border-radius:26px;background:var(--white);box-shadow:var(--shadow-2)}.donner-page .payment-detail h3{margin:0;font-size:clamp(1.8rem,4vw,2.7rem)}.donner-page .payment-detail p:not(.eyebrow){max-width:590px;color:var(--slate);line-height:1.7}.donner-page .qr-placeholder{display:grid;place-items:center;justify-self:center;width:220px;padding:25px;border:1px solid var(--mist);border-radius:20px;background:#fafafa}.donner-page .qr-placeholder>div{width:130px;aspect-ratio:1;margin-bottom:15px;background:repeating-conic-gradient(var(--night) 0 25%,transparent 0 50%) 0/22px 22px;border:10px solid var(--white);box-shadow:0 0 0 1px var(--mist)}.donner-page .qr-placeholder small{color:var(--slate)}
.donner-page .donation-methods{background:#f1f2f4}.donner-page .donation-method-grid{display:grid;gap:22px;margin-top:42px}.donner-page .donation-method-card{padding:clamp(24px,4vw,34px);border:1px solid rgba(11,29,54,.07);border-radius:24px;background:var(--white);box-shadow:var(--shadow-1);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}.donner-page .donation-method-card:hover{transform:translateY(-7px);border-color:var(--gold);box-shadow:var(--shadow-2)}.donner-page .donation-method-card__head{display:flex;align-items:center;gap:16px}.donner-page .donation-method-card__head>span{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:15px;color:var(--night);background:var(--gold);font-size:1.15rem;font-weight:900}.donner-page .donation-method-card__head p{margin:0;color:var(--slate);font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.donner-page .donation-method-card h3{margin:3px 0 0;font-size:1.45rem}.donner-page .donation-status{min-height:3.2em;margin:24px 0 20px;padding:12px 14px;border-radius:10px;color:#684c19;background:var(--gold-soft);font-size:.86rem;font-weight:800}.donner-page .donation-method-card dl{display:grid;gap:10px;margin:0}.donner-page .donation-method-card dl div{display:flex;justify-content:space-between;gap:14px;padding-bottom:9px;border-bottom:1px solid var(--mist)}.donner-page .donation-method-card dt{color:var(--slate);font-size:.8rem}.donner-page .donation-method-card dd{margin:0;font-size:.8rem;font-weight:800;text-align:right}
.donner-page .don-security{padding:46px 0;color:var(--white);background:var(--gold-deep)}.donner-page .don-security__content{display:flex;align-items:center;gap:22px}.donner-page .don-security__content>span{display:grid;place-items:center;width:54px;height:54px;flex:none;border:2px solid rgba(255,255,255,.7);border-radius:50%;font-size:1.35rem}.donner-page .don-security .eyebrow{margin-bottom:6px;color:var(--white)}.donner-page .don-security h2{margin:0;font-size:clamp(1.25rem,3vw,1.7rem)}.donner-page .don-security h2+p{margin:8px 0 0;color:rgba(255,255,255,.88);font-weight:700}
.donner-page .don-form-section{color:var(--white);background:linear-gradient(135deg,#081a3a,#0d315e)}.donner-page .don-form-layout{display:grid;gap:48px}.donner-page .don-form-section h2{margin:0;font-size:clamp(2.3rem,5vw,4rem);line-height:1.05}.donner-page .don-form-section h2+p{color:rgba(255,255,255,.72);line-height:1.75}.donner-page .secure-note{display:flex;gap:14px;align-items:flex-start;margin-top:30px}.donner-page .secure-note>span{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;color:var(--night);background:var(--gold)}.donner-page .secure-note p{margin:0;color:rgba(255,255,255,.72)}
.donner-page .don-form{display:grid;gap:10px;padding:clamp(24px,5vw,40px);border-radius:24px;color:var(--ink);background:var(--white);box-shadow:0 24px 60px rgba(0,0,0,.25)}.donner-page .don-form label{margin-top:7px;font-size:.83rem;font-weight:800}.donner-page .don-form label span{color:var(--slate);font-weight:500}.donner-page .don-form input,.donner-page .don-form select,.donner-page .don-form textarea{width:100%;padding:14px 15px;border:1px solid #d8dce3;border-radius:11px;background:#fafafa;color:var(--ink);font:inherit}.donner-page .don-form textarea{resize:vertical}.donner-page .don-form .button{margin-top:12px}.donner-page .don-form__status{min-height:24px;margin:4px 0 0;color:var(--success);font-weight:700}
.donner-page .don-faq{background:var(--white)}.donner-page .don-faq h2{margin:0 0 38px;font-size:clamp(2rem,5vw,3.4rem)}.donner-page .don-accordion{border-top:1px solid var(--mist)}.donner-page .don-accordion details{border-bottom:1px solid var(--mist)}.donner-page .don-accordion summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;cursor:pointer;font-size:1.1rem;font-weight:800;list-style:none}.donner-page .don-accordion summary::-webkit-details-marker{display:none}.donner-page .don-accordion summary span{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50%;background:var(--gold-soft);transition:.3s ease}.donner-page .don-accordion details[open] summary span{background:var(--gold);transform:rotate(45deg)}.donner-page .don-accordion details p{margin:-4px 50px 24px 0;color:var(--slate);line-height:1.75}
.donner-page .don-help{padding:clamp(76px,10vw,120px) 0;color:var(--white);background:linear-gradient(135deg,#081a3a,#0d315e);text-align:center}.donner-page .don-help h2{margin:0;font:500 clamp(2.3rem,6vw,4.3rem)/1.05 Georgia,serif;letter-spacing:-.035em}.donner-page .don-help p:not(.eyebrow){max-width:610px;margin:22px auto 30px;color:rgba(255,255,255,.8);font-size:1.05rem;line-height:1.7}
@keyframes don-pulse{50%{transform:scale(1.05);opacity:.72}}
@media(min-width:700px){.donner-page .scripture-grid{grid-template-columns:repeat(3,1fr)}.donner-page .payment-grid{grid-template-columns:repeat(2,1fr)}.donner-page .payment-detail{grid-template-columns:1fr auto}.donner-page .donation-method-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.donner-page .don-form-layout{grid-template-columns:.85fr 1.15fr;align-items:start}}
@media(max-width:639px){.donner-page .don-hero{min-height:76svh}.donner-page .don-hero__content{padding:122px 0 88px}.donner-page .don-hero h1 br{display:none}.donner-page .qr-placeholder{width:100%;max-width:220px}}

/* Contact page */
.contact-page .contact-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:76svh;overflow:hidden;color:var(--white);background:linear-gradient(125deg,#06152d,#0b2a55)}
.contact-page .contact-hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.1;background:repeating-linear-gradient(120deg,transparent 0 54px,rgba(255,255,255,.25) 55px 56px)}
.contact-page .contact-hero__rings{position:absolute;right:-7%;top:50%;z-index:-1;width:min(58vw,680px);aspect-ratio:1;border:1px solid rgba(212,175,55,.4);border-radius:50%;box-shadow:0 0 0 80px rgba(212,175,55,.05),0 0 0 160px rgba(212,175,55,.025);transform:translateY(-50%);animation:contact-breathe 6s ease-in-out infinite}
.contact-page .contact-hero__content{padding:145px 0 106px}.contact-page .contact-hero h1{margin:0;font:500 clamp(4rem,12vw,8rem)/.9 Georgia,serif;letter-spacing:-.06em}.contact-page .contact-hero__content>p:not(.eyebrow){max-width:620px;margin:28px 0 34px;color:rgba(255,255,255,.82);font-size:clamp(1.05rem,2.5vw,1.28rem);line-height:1.7}
.contact-page .contact-details{background:#f1f2f4}.contact-page .contact-detail-grid{display:grid;gap:20px;margin-top:42px}.contact-page .contact-detail-card{display:flex;flex-direction:column;min-width:0;padding:30px;border:1px solid transparent;border-radius:22px;background:var(--white);box-shadow:var(--shadow-1);text-decoration:none;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}.contact-page a.contact-detail-card:hover{transform:translateY(-7px);border-color:var(--gold);box-shadow:var(--shadow-2)}.contact-page .contact-detail-card>span{display:grid;place-items:center;width:48px;height:48px;margin-bottom:24px;border-radius:14px;color:var(--night);background:var(--gold-soft);font-size:1.25rem}.contact-page .contact-detail-card small{color:var(--slate);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.contact-page .contact-detail-card strong{margin:8px 0 22px;overflow-wrap:anywhere;font-size:1.12rem}.contact-page .contact-detail-card em{margin-top:auto;color:var(--gold-deep);font-size:.83rem;font-style:normal;font-weight:800}
.contact-page .contact-details__empty{margin:42px 0 0;padding:28px;border:1px dashed rgba(184,138,59,.45);border-radius:var(--radius-lg);color:var(--slate);background:rgba(255,255,255,.7);text-align:center}.contact-page .contact-details__empty[hidden]{display:none}.contact-page .contact-detail-card:focus-visible,.contact-page .social-links a:focus-visible,.contact-page .contact-map__card a:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.contact-page .contact-map-section{padding:0;background:#f1f2f4}.contact-page .contact-map{position:relative;min-height:540px;overflow:hidden;background-color:#e8e5dc;background-image:linear-gradient(32deg,transparent 45%,rgba(255,255,255,.9) 46%,rgba(255,255,255,.9) 51%,transparent 52%),linear-gradient(145deg,transparent 42%,rgba(255,255,255,.85) 43%,rgba(255,255,255,.85) 48%,transparent 49%),linear-gradient(80deg,transparent 47%,rgba(203,196,181,.65) 48%,rgba(203,196,181,.65) 50%,transparent 51%)}.contact-page .contact-map::before,.contact-page .contact-map::after{content:"";position:absolute;border-radius:50%;background:rgba(126,166,115,.26)}.contact-page .contact-map::before{width:380px;height:250px;left:8%;top:-65px}.contact-page .contact-map::after{width:340px;height:320px;right:2%;bottom:-80px}.contact-page .contact-map__pin{position:absolute;left:64%;top:42%;z-index:2;width:38px;height:38px;border:10px solid var(--gold);border-radius:50% 50% 50% 0;background:var(--white);box-shadow:0 12px 25px rgba(11,29,54,.3);transform:rotate(-45deg)}.contact-page .contact-map__card{position:absolute;left:max(24px,calc((100% - 1200px)/2));top:50%;z-index:3;width:min(470px,calc(100% - 48px));padding:clamp(28px,5vw,48px);border-radius:24px;background:rgba(255,255,255,.95);box-shadow:var(--shadow-3);backdrop-filter:blur(10px);transform:translateY(-50%)}.contact-page .contact-map__card h2{margin:0;font-size:clamp(2rem,5vw,3.2rem)}.contact-page .contact-map__card address{margin:18px 0 12px;color:var(--ink);font-style:normal;font-weight:700;line-height:1.65}.contact-page .contact-map__card .map-placeholder-note{margin:0 0 18px;color:var(--slate);font-size:.86rem;line-height:1.6}
.contact-page .contact-form-section{color:var(--white);background:var(--night)}.contact-page .contact-form-layout{display:grid;gap:48px}.contact-page .contact-form-section h2{margin:0;font-size:clamp(2.4rem,6vw,4.5rem);line-height:1}.contact-page .contact-form-section h2+p{color:rgba(255,255,255,.7);line-height:1.75}.contact-page .contact-promise{display:flex;gap:14px;margin-top:30px}.contact-page .contact-promise>span{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;color:var(--night);background:var(--gold)}.contact-page .contact-promise p{margin:0;color:rgba(255,255,255,.7)}
.contact-page .modern-contact-form{display:grid;gap:10px;padding:clamp(24px,5vw,42px);border-radius:24px;color:var(--ink);background:var(--white);box-shadow:0 25px 65px rgba(0,0,0,.28)}.contact-page .modern-contact-form .form-row{display:grid;gap:16px}.contact-page .modern-contact-form .form-row>div{display:grid;gap:10px}.contact-page .modern-contact-form label{margin-top:8px;font-size:.83rem;font-weight:800}.contact-page .modern-contact-form input,.contact-page .modern-contact-form select,.contact-page .modern-contact-form textarea{width:100%;padding:14px 15px;border:1px solid #d8dce3;border-radius:11px;color:var(--ink);background:#fafafa;font:inherit}.contact-page .modern-contact-form textarea{resize:vertical}.contact-page .modern-contact-form .button{margin-top:14px}.contact-page .modern-contact-form__status{min-height:24px;margin:3px 0 0;color:var(--success);font-weight:700}
.contact-page .worship-hours{background:#f1f2f4}.contact-page .hours-grid{display:grid;gap:18px;margin-top:42px}.contact-page .hours-grid article{padding:28px;border-radius:20px;background:var(--white);box-shadow:var(--shadow-1);transition:transform .35s ease,box-shadow .35s ease}.contact-page .hours-grid article:hover{transform:translateY(-6px);box-shadow:var(--shadow-2)}.contact-page .hours-grid p{margin:0;color:var(--gold-deep);font-size:.72rem;font-weight:800;letter-spacing:.15em}.contact-page .hours-grid h3{min-height:2.8em;margin:13px 0 24px}.contact-page .hours-grid time{display:inline-block;padding:8px 13px;border-radius:999px;color:var(--night);background:var(--gold);font-weight:800}
.contact-page .contact-social{color:var(--white);background:linear-gradient(135deg,#07172f,#0d315e);text-align:center}.contact-page .contact-social h2{margin:0;font:500 clamp(2.3rem,6vw,4.4rem)/1 Georgia,serif}.contact-page .social-links{display:grid;gap:18px;margin-top:42px}.contact-page .social-links a{display:grid;place-items:center;padding:28px;border:1px solid rgba(255,255,255,.14);border-radius:20px;background:rgba(255,255,255,.05);text-decoration:none;transition:transform .35s ease,border-color .35s ease,background .35s ease}.contact-page .social-links a:hover{transform:translateY(-7px);border-color:var(--gold);background:rgba(255,255,255,.1)}.contact-page .social-links span{display:grid;place-items:center;width:50px;height:50px;margin-bottom:18px;border-radius:50%;color:var(--night);background:var(--gold);font-size:1.2rem;font-weight:900}.contact-page .social-links strong{font-size:1.15rem}.contact-page .social-links small{margin-top:6px;color:rgba(255,255,255,.65)}
.contact-page .contact-faq{background:var(--white)}.contact-page .contact-faq h2{margin:0 0 38px;font-size:clamp(2rem,5vw,3.4rem)}.contact-page .contact-accordion{border-top:1px solid var(--mist)}.contact-page .contact-accordion details{border-bottom:1px solid var(--mist)}.contact-page .contact-accordion summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;cursor:pointer;font-size:1.1rem;font-weight:800;list-style:none}.contact-page .contact-accordion summary::-webkit-details-marker{display:none}.contact-page .contact-accordion summary span{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50%;background:var(--gold-soft);transition:.3s ease}.contact-page .contact-accordion details[open] summary span{background:var(--gold);transform:rotate(45deg)}.contact-page .contact-accordion details p{margin:-4px 50px 24px 0;color:var(--slate);line-height:1.75}
@keyframes contact-breathe{50%{opacity:.7;transform:translateY(-50%) scale(1.05)}}
@media(min-width:700px){.contact-page .contact-detail-grid{grid-template-columns:repeat(2,1fr)}.contact-page .contact-form-layout{grid-template-columns:.8fr 1.2fr;align-items:start}.contact-page .modern-contact-form .form-row{grid-template-columns:repeat(2,1fr)}.contact-page .hours-grid{grid-template-columns:repeat(2,1fr)}.contact-page .social-links{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.contact-page .contact-detail-grid,.contact-page .hours-grid,.contact-page .social-links{grid-template-columns:repeat(4,1fr)}}
@media(max-width:639px){.contact-page .contact-hero{min-height:72svh}.contact-page .contact-hero__content{padding:120px 0 86px}.contact-page .contact-map{min-height:520px}.contact-page .contact-map__card{top:auto;bottom:20px;transform:none}.contact-page .contact-map__pin{left:70%;top:20%}}

@media(min-width:1024px) and (max-width:1279px){
  .site-header{padding:12px 32px}
  .menu-toggle{display:grid}
  .site-nav{display:none}
  .site-nav.open{
    position:absolute;
    top:64px;
    left:0;
    right:0;
    display:grid;
    padding:20px 32px;
    color:var(--ink);
    background:var(--white);
    box-shadow:var(--shadow-2)
  }
  .site-nav.open a{min-height:44px}
  .site-nav.open .language-switcher{
    min-height:44px;
    margin-top:8px;
    padding-top:12px;
    border-top:1px solid var(--mist);
    color:var(--slate)
  }
}

/* Donations: verified-method rendering and touch-friendly actions. */
.donner-page .donation-methods__note{margin:28px 0 0;padding:24px;border:1px dashed rgba(184,138,59,.5);border-radius:var(--radius-lg);color:var(--slate);background:rgba(255,255,255,.75);text-align:center}
.donner-page .donation-methods__note[hidden],.donner-page .don-help[hidden]{display:none}
.donner-page .donation-method-card__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.donner-page .donation-method-card__actions .button{flex:1;min-height:48px;padding-inline:15px}
.donner-page .donation-copy:focus-visible,.donner-page .donation-method-card__actions a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.donner-page .donation-purposes{background:var(--white)}
.donner-page .donation-purpose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:36px}
.donner-page .donation-purpose-grid span{display:grid;min-height:86px;place-items:center;padding:18px;border:1px solid var(--mist);border-radius:18px;color:var(--night);background:var(--ivory);font-weight:800;text-align:center}
@media(min-width:700px){.donner-page .donation-purpose-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Plan your visit page */
.visit-page .visit-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:78svh;overflow:hidden;color:var(--white);background:linear-gradient(130deg,#06152d,#0d315e)}
.visit-page .visit-hero::before{position:absolute;inset:0;z-index:-1;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);background-size:70px 70px;content:""}
.visit-page .visit-hero__glow{position:absolute;right:-10%;top:12%;z-index:-1;width:min(58vw,680px);aspect-ratio:1;border:1px solid rgba(212,175,55,.35);border-radius:50%;box-shadow:0 0 0 80px rgba(212,175,55,.045),0 0 0 160px rgba(212,175,55,.025)}
.visit-page .visit-hero__content{padding:145px 0 105px}.visit-page .visit-hero h1{max-width:900px;margin:0;font:500 clamp(3.8rem,10vw,7.5rem)/.92 Georgia,serif;letter-spacing:-.055em}.visit-page .visit-hero__content>p:not(.eyebrow){max-width:680px;margin:26px 0 34px;color:rgba(255,255,255,.82);font-size:clamp(1.05rem,2.4vw,1.28rem);line-height:1.7}
.visit-page .visit-services{background:#f1f2f4}.visit-page .visit-service-grid{display:grid;gap:18px;margin-top:40px}.visit-page .visit-service-card{padding:28px;border:1px solid rgba(11,29,54,.08);border-radius:22px;background:var(--white);box-shadow:var(--shadow-1);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}.visit-page .visit-service-card:hover{transform:translateY(-6px);border-color:rgba(184,138,59,.55);box-shadow:var(--shadow-2)}.visit-page .visit-service-card--worship{border-color:rgba(184,138,59,.48);box-shadow:0 12px 34px rgba(184,138,59,.12)}.visit-page .visit-service-card__top{display:flex;align-items:center;justify-content:space-between;gap:14px}.visit-page .visit-service-card__top>span{color:var(--gold-deep);font-size:.74rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.visit-page .visit-service-card__top small{padding:6px 10px;border-radius:999px;color:var(--gold-deep);background:var(--gold-soft);font-weight:800}.visit-page .visit-service-card h3{margin:22px 0 8px;font-size:1.35rem}.visit-page .visit-service-card__time{margin:0;color:var(--night);font-size:1.1rem;font-weight:900}.visit-page .visit-service-card>p:last-child{margin:18px 0 0;color:var(--slate);line-height:1.65}
.visit-page .visit-practical{background:var(--white)}.visit-page .visit-practical-grid{display:grid;gap:18px;margin-top:40px}.visit-page .visit-practical-grid article{padding:28px;border-radius:20px;background:var(--ivory)}.visit-page .visit-practical-grid article>span{color:var(--gold-deep);font-weight:900}.visit-page .visit-practical-grid h3{margin:14px 0 8px}.visit-page .visit-practical-grid p{margin:0;color:var(--slate);line-height:1.7}
.visit-page .visit-location{color:var(--white);background:var(--night)}.visit-page .visit-location__layout{display:grid;gap:40px;align-items:center}.visit-page .visit-location h2{margin:0;font-size:clamp(2.4rem,6vw,4.5rem)}.visit-page .visit-location address{max-width:620px;margin:24px 0 30px;color:rgba(255,255,255,.78);font-style:normal;font-weight:700;line-height:1.7}.visit-page .visit-location__visual{display:grid;min-height:280px;place-items:center;border:1px solid rgba(255,255,255,.13);border-radius:28px;background:radial-gradient(circle at 70% 20%,rgba(212,175,55,.23),transparent 28%),linear-gradient(145deg,#0d315e,#07172f);box-shadow:var(--shadow-3)}.visit-page .visit-location__visual span{align-self:end;color:var(--gold);font:500 clamp(3.5rem,9vw,6rem)/1 Georgia,serif}.visit-page .visit-location__visual small{align-self:start;color:rgba(255,255,255,.7);font-weight:800;letter-spacing:.18em}
.visit-page .visit-contact{background:#f1f2f4}.visit-page .visit-contact__actions{display:flex;gap:14px;flex-wrap:wrap}.visit-page .visit-contact__actions .button{min-width:170px}.visit-page .visit-cells{color:var(--white);background:linear-gradient(135deg,var(--gold-deep),#6f4d18);text-align:center}.visit-page .visit-cells h2{margin:0;font-size:clamp(2.2rem,6vw,4rem)}.visit-page .visit-cells h2+p{margin:22px 0 30px;color:rgba(255,255,255,.85);line-height:1.7}.visit-page .visit-cells .button{color:var(--night);background:var(--white)}
.visit-page a:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
@media(min-width:700px){.visit-page .visit-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.visit-page .visit-practical-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.visit-page .visit-location__layout{grid-template-columns:1fr 1fr}}
@media(max-width:639px){.visit-page .visit-hero{min-height:72svh}.visit-page .visit-hero__content{padding:120px 0 86px}.visit-page .visit-contact__actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){.visit-page .visit-service-card{transition:none}}


/* Visit page: reinforced first-visit experience with real GICC photos. */
.visit-page .visit-hero{align-items:end;min-height:86svh;background:#06152d}
.visit-page .visit-hero::before{display:none}
.visit-page .visit-hero__image{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:saturate(.95) contrast(1.04)}
.visit-page .visit-hero__overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(5,17,37,.94),rgba(5,17,37,.68) 48%,rgba(5,17,37,.26)),linear-gradient(180deg,rgba(5,17,37,.25),rgba(5,17,37,.78))}
.visit-page .visit-hero__content{padding:156px 0 118px}.visit-page .visit-hero h1{max-width:860px;letter-spacing:0}.visit-page .visit-hero__actions{display:flex;flex-wrap:wrap;gap:14px}.visit-page .visit-hero__actions .button-light{color:var(--white);border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.1);backdrop-filter:blur(6px)}
.visit-page .visit-service-card{border-radius:18px}.visit-page .visit-service-card--worship{background:linear-gradient(180deg,#fff,#fff8e6)}
.visit-page .visit-location{background:linear-gradient(135deg,#06152d,#0b1d36)}.visit-page .visit-location__actions{display:flex;flex-wrap:wrap;gap:12px}.visit-page .visit-location__actions .button-light{color:var(--night);background:var(--white)}.visit-page .visit-location__photo{position:relative;margin:0;min-height:360px;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:24px;box-shadow:var(--shadow-3)}.visit-page .visit-location__photo img{display:block;width:100%;height:100%;min-height:360px;object-fit:cover;object-position:center top}.visit-page .visit-location__photo figcaption{position:absolute;left:18px;right:18px;bottom:18px;padding:12px 14px;border-radius:14px;color:var(--white);background:rgba(5,17,37,.76);font-size:.88rem;font-weight:800;backdrop-filter:blur(8px)}
.visit-page .visit-expect{background:var(--white)}.visit-page .visit-expect-grid{display:grid;gap:16px;margin-top:40px}.visit-page .visit-expect-grid article{padding:26px;border:1px solid rgba(11,29,54,.08);border-radius:18px;background:linear-gradient(180deg,#fff,#f8f9fb);box-shadow:var(--shadow-1)}.visit-page .visit-expect-grid article>span{color:var(--gold-deep);font-size:.72rem;font-weight:900;letter-spacing:.14em}.visit-page .visit-expect-grid h3{margin:16px 0 8px;font-size:1.18rem}.visit-page .visit-expect-grid p{margin:0;color:var(--slate);line-height:1.68}
.visit-page .visit-newcomer-cta{margin-top:42px;padding:clamp(28px,5vw,48px);border-radius:24px;color:var(--white);background:linear-gradient(135deg,#07172f,#0d315e);box-shadow:var(--shadow-2)}.visit-page .visit-newcomer-cta .eyebrow{color:var(--gold)}.visit-page .visit-newcomer-cta h2{max-width:760px;margin:0;font-size:clamp(2rem,5vw,3.4rem);line-height:1.05}.visit-page .visit-newcomer-cta h2+p{max-width:680px;margin:18px 0 26px;color:rgba(255,255,255,.82);line-height:1.7}
.visit-page .visit-gallery{background:var(--ivory)}.visit-page .visit-gallery-grid{display:grid;gap:18px;margin-top:40px}.visit-page .visit-gallery-grid figure{position:relative;margin:0;min-height:330px;overflow:hidden;border-radius:22px;background:var(--night);box-shadow:var(--shadow-2)}.visit-page .visit-gallery-grid img{display:block;width:100%;height:100%;min-height:330px;object-fit:cover;object-position:center top;transition:transform .45s ease}.visit-page .visit-gallery-grid figure:hover img{transform:scale(1.04)}.visit-page .visit-gallery-grid figcaption{position:absolute;left:14px;right:14px;bottom:14px;padding:11px 13px;border-radius:13px;color:var(--white);background:rgba(5,17,37,.74);font-weight:800;backdrop-filter:blur(8px)}
@media(min-width:760px){.visit-page .visit-expect-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.visit-page .visit-expect-grid article:first-child,.visit-page .visit-expect-grid article:nth-child(2){grid-column:span 2}.visit-page .visit-gallery-grid{grid-template-columns:1.2fr .9fr .9fr}.visit-page .visit-gallery-grid figure:first-child{min-height:420px}.visit-page .visit-gallery-grid figure:first-child img{min-height:420px}}
@media(max-width:759px){.visit-page .visit-hero{min-height:78svh}.visit-page .visit-hero__content{padding:126px 0 88px}.visit-page .visit-hero__actions .button,.visit-page .visit-location__actions .button{width:100%}.visit-page .visit-location__photo,.visit-page .visit-location__photo img,.visit-page .visit-gallery-grid figure,.visit-page .visit-gallery-grid img{min-height:280px}.visit-page .visit-expect-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.visit-page .visit-gallery-grid img{transition:none}.visit-page .visit-gallery-grid figure:hover img{transform:none}}
/* About page */
.about-page .about-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:76svh;overflow:hidden;color:var(--white);background:linear-gradient(125deg,#06152d,#0d315e)}
.about-page .about-hero::before{position:absolute;inset:0;z-index:-1;opacity:.13;background-image:radial-gradient(circle at center,rgba(255,255,255,.6) 1px,transparent 1.5px);background-size:32px 32px;content:""}
.about-page .about-hero__glow{position:absolute;right:-8%;top:8%;z-index:-1;width:min(58vw,700px);aspect-ratio:1;border:1px solid rgba(212,175,55,.35);border-radius:50%;box-shadow:0 0 0 90px rgba(212,175,55,.04),0 0 0 180px rgba(212,175,55,.025)}
.about-page .about-hero__content{padding:145px 0 105px}.about-page .about-hero h1{max-width:920px;margin:0;font:500 clamp(3.8rem,11vw,7.8rem)/.92 Georgia,serif;letter-spacing:-.06em}.about-page .about-hero__content>p:not(.eyebrow){max-width:650px;margin:28px 0 0;color:rgba(255,255,255,.82);font-size:clamp(1.06rem,2.5vw,1.3rem);line-height:1.7}
.about-page .about-identity{background:var(--white)}.about-page .about-identity__layout{display:grid;gap:46px;align-items:center}.about-page .about-identity h2{margin:0;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.04}.about-page .about-identity h2+p{color:var(--slate);font-size:1.08rem;line-height:1.75}.about-page .about-identity__signature{margin:28px 0 0;padding-left:18px;border-left:3px solid var(--gold);color:var(--night);font-weight:800}.about-page .about-logo-slot{display:grid;min-height:300px;padding:28px;place-items:center;border-radius:28px;background:var(--ivory);text-align:center}.about-page .about-logo-slot img{display:block;width:min(100%,340px);height:auto;border-radius:50%;box-shadow:var(--shadow-3)}
.about-page .about-foundation{color:var(--white);background:var(--night)}.about-page .about-foundation__layout{display:grid;gap:44px;align-items:center}.about-page .about-foundation h2{margin:0;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.04}.about-page .about-foundation blockquote{margin:28px 0 0;padding-left:24px;border-left:3px solid var(--gold)}.about-page .about-foundation blockquote p{margin:0;font:italic clamp(1.25rem,2.5vw,1.75rem)/1.6 Georgia,serif}.about-page .about-verse{margin:0;padding:clamp(30px,5vw,52px);border:1px solid rgba(212,175,55,.3);border-radius:26px;background:rgba(255,255,255,.055);box-shadow:var(--shadow-3)}.about-page .about-verse p{margin:0;font:italic clamp(1.35rem,3vw,2rem)/1.55 Georgia,serif}.about-page .about-foundation cite{display:block;margin-top:22px;color:var(--gold);font-size:.75rem;font-style:normal;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.about-page .about-mission{background:#f1f2f4;text-align:center}.about-page .about-mission h2{margin:0;font-size:clamp(2.1rem,5vw,3.6rem)}.about-page .about-mission blockquote{margin:30px auto 0;color:var(--night);font:italic clamp(1.25rem,2.5vw,1.7rem)/1.65 Georgia,serif}.about-page .about-mission blockquote p{margin:0}.about-page .about-mission blockquote+p{margin:25px auto 0;color:var(--slate);line-height:1.75}
.about-page .about-central-message{color:var(--white);background:linear-gradient(120deg,#9a722d,#c39a48)}.about-page .about-central-message__layout{display:grid;gap:42px;align-items:center}.about-page .about-central-message h2{margin:0;font-size:clamp(2.7rem,7vw,5.2rem);line-height:.98}.about-page .about-central-message blockquote{margin:28px 0 0;font:italic clamp(1.3rem,2.5vw,1.85rem)/1.55 Georgia,serif}.about-page .about-central-message blockquote p{margin:0}.about-page .about-central-message__copy{padding:clamp(25px,4vw,42px);border:1px solid rgba(255,255,255,.3);border-radius:24px;background:rgba(7,23,47,.17);line-height:1.75}.about-page .about-central-message__copy p:last-child{margin-bottom:0;font-weight:800}
.about-page .about-apostle{background:var(--white)}.about-page .about-apostle__layout{display:grid;gap:46px;align-items:center}.about-page .about-apostle figure{margin:0}.about-page .about-apostle__photo{aspect-ratio:2/3;overflow:hidden;border-radius:28px;background:var(--night);box-shadow:var(--shadow-3)}.about-page .about-apostle__photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}.about-page .about-apostle h2{margin:0;font-size:clamp(2.5rem,6vw,4.6rem);line-height:1}.about-page .about-apostle h2+p{color:var(--slate);line-height:1.75}
.about-page .about-experience{color:var(--white);background:linear-gradient(135deg,#07172f,#0d315e)}.about-page .about-experience__grid{display:grid;gap:16px;margin-top:42px}.about-page .about-experience__grid a{display:flex;min-height:190px;flex-direction:column;padding:26px;border:1px solid rgba(255,255,255,.13);border-radius:20px;background:rgba(255,255,255,.05);text-decoration:none;transition:transform .35s ease,border-color .35s ease,background .35s ease}.about-page .about-experience__grid a:hover{transform:translateY(-6px);border-color:var(--gold);background:rgba(255,255,255,.09)}.about-page .about-experience__grid span{color:var(--gold);font-size:.75rem;font-weight:900}.about-page .about-experience__grid strong{margin-top:auto;font-size:1.25rem}.about-page .about-experience__grid small{margin-top:8px;color:rgba(255,255,255,.68)}
.about-page .about-location{background:var(--gold-soft);text-align:center}.about-page .about-location h2{margin:0;font-size:clamp(2.2rem,6vw,4rem)}.about-page .about-location h2+p{margin:18px 0 28px;color:var(--slate);font-weight:800}.about-page a:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
@media(min-width:760px){.about-page .about-identity__layout,.about-page .about-foundation__layout,.about-page .about-apostle__layout,.about-page .about-central-message__layout{grid-template-columns:repeat(2,minmax(0,1fr))}.about-page .about-experience__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:639px){.about-page .about-hero{min-height:70svh}.about-page .about-hero__content{padding:120px 0 84px}.about-page .about-logo-slot{min-height:0;padding:22px}}
@media(prefers-reduced-motion:reduce){.about-page .about-experience__grid a{transition:none}}

/* Library */
.library-page{background:var(--ivory)}.library-hero{display:flex;min-height:64svh;align-items:end;padding:150px 0 88px;color:var(--white);background:radial-gradient(circle at 82% 22%,rgba(212,175,55,.18),transparent 26%),linear-gradient(125deg,#06152d,#0d315e)}.library-hero h1{margin:0;font:600 clamp(3.2rem,10vw,7rem)/.95 Georgia,serif;letter-spacing:-.04em}.library-hero h1+p{max-width:680px;margin:24px 0 0;color:rgba(255,255,255,.78);font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.7}.library-catalog{background:var(--ivory)}.library-grid{display:grid;gap:32px;margin-top:45px}.library-book{display:grid;overflow:hidden;border:1px solid rgba(11,29,54,.1);border-radius:28px;background:var(--white);box-shadow:var(--shadow-2);transition:transform .35s ease,box-shadow .35s ease}.library-book:hover{transform:translateY(-5px);box-shadow:var(--shadow-3)}.library-book__cover{display:grid;min-height:460px;padding:28px;place-items:center;background:linear-gradient(145deg,#07172f,#123968)}.library-book__cover img{display:block;width:auto;max-width:100%;height:auto;max-height:440px;border-radius:5px;object-fit:contain;box-shadow:0 24px 45px rgba(0,0,0,.38)}.library-book__content{display:flex;flex-direction:column;padding:clamp(26px,4vw,42px)}.library-book__status{align-self:flex-start;margin:0 0 18px;padding:7px 11px;border-radius:999px;color:#174f35;background:#e3f4e9;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.library-book h2{margin:0;font-size:clamp(1.75rem,3vw,2.45rem);line-height:1.12}.library-book__author{margin:12px 0 0;color:var(--gold-deep);font-weight:800}.library-book__price{margin:22px 0 0;color:var(--night);font-size:1.35rem;font-weight:900}.library-book__description{color:var(--slate);line-height:1.72}.library-book__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:18px}.library-book__actions .button{min-height:48px}.book-modal{width:min(760px,calc(100% - 28px));max-height:88svh;padding:0;border:0;border-radius:24px;color:var(--night);background:var(--white);box-shadow:0 32px 90px rgba(0,0,0,.4)}.book-modal::backdrop{background:rgba(3,13,27,.78);backdrop-filter:blur(5px)}.book-modal__header{display:flex;gap:24px;align-items:start;justify-content:space-between;padding:30px;border-bottom:1px solid rgba(11,29,54,.1)}.book-modal__header h2{margin:0;font-size:clamp(1.7rem,4vw,2.6rem)}.book-modal__header p{margin-bottom:0;color:var(--gold-deep);font-weight:800}.book-modal__close{display:grid;width:46px;height:46px;flex:0 0 auto;place-items:center;border:1px solid rgba(11,29,54,.15);border-radius:50%;color:var(--night);background:transparent;font-size:1.8rem;cursor:pointer}.book-modal__body{max-height:52svh;overflow:auto;padding:30px;line-height:1.72}.book-modal__foreword{color:var(--gold-deep);font-weight:800}.book-modal__body li+li{margin-top:8px}.book-modal__notice{margin-top:28px;padding:16px;border-left:3px solid var(--gold);background:var(--gold-soft);font-size:.9rem}.book-modal__footer{display:flex;flex-wrap:wrap;gap:12px;padding:22px 30px;border-top:1px solid rgba(11,29,54,.1)}.modal-open{overflow:hidden}.library-page :focus-visible,.home-library :focus-visible{outline:3px solid var(--focus);outline-offset:4px}.home-library{background:#f3f0e8}.home-library__grid{display:grid;gap:22px;margin-top:38px}.home-library__grid article{display:grid;grid-template-columns:100px 1fr;gap:20px;align-items:center;padding:20px;border-radius:20px;background:var(--white);box-shadow:var(--shadow-1)}.home-library__grid img{width:100px;height:145px;border-radius:4px;object-fit:contain;background:var(--night);box-shadow:0 12px 24px rgba(0,0,0,.2)}.home-library__grid h3{margin:0;font-size:clamp(1.15rem,3vw,1.55rem)}
@media(min-width:760px){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-library__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:639px){.library-hero{min-height:56svh;padding:125px 0 72px}.library-book__cover{min-height:390px;padding:22px}.library-book__cover img{max-height:360px}.library-book__actions{flex-direction:column}.library-book__actions .button,.book-modal__footer .button{width:100%}.book-modal__header,.book-modal__body{padding:22px}.book-modal__footer{padding:18px 22px}.home-library__grid article{grid-template-columns:82px 1fr}.home-library__grid img{width:82px;height:120px}}
@media(prefers-reduced-motion:reduce){.library-book{transition:none}}

/* Public events page */
.events-all-link{display:flex;justify-content:center;margin-top:30px}
.events-page{background:var(--ivory)}
.events-hero{display:flex;min-height:58svh;align-items:end;padding:150px 0 82px;color:var(--white);background:radial-gradient(circle at 82% 18%,rgba(212,175,55,.23),transparent 28%),linear-gradient(125deg,#06152d,#0d315e)}
.events-hero h1{margin:0;font:600 clamp(3.2rem,10vw,7rem)/.95 Georgia,serif;letter-spacing:-.04em}
.events-hero h1+p{max-width:680px;margin:24px 0 0;color:rgba(255,255,255,.8);font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.7}
.events-catalog{background:var(--ivory)}
.events-loading{margin:42px 0;padding:28px;border:1px solid rgba(11,29,54,.1);border-radius:18px;background:var(--white);color:var(--slate);text-align:center}
.events-featured,.events-grid{display:grid;gap:32px;margin-top:42px}
.events-featured{margin-bottom:52px}
.public-event{display:grid;min-width:0;overflow:hidden;border:1px solid rgba(11,29,54,.1);border-radius:26px;background:var(--white);box-shadow:var(--shadow-2)}
.public-event--featured{border-color:rgba(184,138,59,.48);box-shadow:0 26px 70px rgba(7,23,47,.18)}
.public-event__media{min-height:320px;background:linear-gradient(145deg,var(--night),#16477c)}
.public-event__media img{display:block;width:100%;height:100%;min-height:320px;object-fit:cover}
.public-event__fallback{display:grid;min-height:320px;place-items:center;align-content:center;gap:18px;color:var(--white);background:radial-gradient(circle at 70% 20%,rgba(212,175,55,.3),transparent 30%),linear-gradient(145deg,#06152d,#16477c)}
.public-event__fallback span{color:var(--gold);font-size:.8rem;font-weight:900;letter-spacing:.24em}
.public-event__fallback b{font:400 5rem/1 Georgia,serif}
.public-event__content{display:flex;min-width:0;flex-direction:column;padding:clamp(26px,4vw,44px)}
.public-event__meta{margin:0 0 16px;color:var(--gold-deep);font-size:.76rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.public-event h2{margin:0 0 22px;font-size:clamp(1.8rem,4vw,3rem);line-height:1.08}
.public-event__detail{margin:6px 0;color:var(--slate)}
.public-event__detail strong{color:var(--night)}
.public-event__description{margin:22px 0 0;color:var(--slate);line-height:1.72;white-space:pre-line}
.public-event__content .button{align-self:flex-start;margin-top:28px}
.events-empty{margin-top:44px;padding:clamp(40px,8vw,80px) 24px;border:1px solid rgba(11,29,54,.1);border-radius:28px;background:var(--white);box-shadow:var(--shadow-1);text-align:center}
.events-empty>span{display:block;color:var(--gold-deep);font:400 4rem/1 Georgia,serif}
.events-empty h2{margin:18px 0 10px;font-size:clamp(1.8rem,4vw,2.8rem)}
.events-empty p{margin:0;color:var(--slate)}
.events-empty .button{margin-top:26px}
.events-page :focus-visible{outline:3px solid var(--focus);outline-offset:4px}
@media(min-width:760px){.events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.events-featured .public-event{grid-template-columns:minmax(300px,.85fr) 1.15fr}.events-featured .public-event__media,.events-featured .public-event__media img{min-height:520px}}
@media(max-width:639px){.events-hero{min-height:52svh;padding:125px 0 68px}.events-grid,.events-featured{gap:22px;margin-top:30px}.public-event__media,.public-event__media img,.public-event__fallback{min-height:270px}.public-event__content .button{width:100%}.events-all-link .button{width:100%}}

/* Public new visitor form */
.new-visitor{position:relative;overflow:hidden;color:var(--white);background:radial-gradient(circle at 12% 18%,rgba(212,175,55,.16),transparent 30%),linear-gradient(125deg,#06152d,#0d315e)}
.new-visitor::after{position:absolute;right:-180px;bottom:-260px;width:520px;height:520px;border:1px solid rgba(212,175,55,.2);border-radius:50%;box-shadow:0 0 0 70px rgba(212,175,55,.035),0 0 0 140px rgba(212,175,55,.02);content:'';pointer-events:none}
.new-visitor__layout{position:relative;z-index:1;display:grid;gap:46px;align-items:start}
.new-visitor__intro h2{margin:0;font-size:clamp(2.7rem,7vw,5.2rem);line-height:.98}
.new-visitor__intro>p:not(.eyebrow){max-width:620px;margin:26px 0 0;color:rgba(255,255,255,.76);font-size:1.08rem;line-height:1.75}
.new-visitor__promise{display:flex;gap:14px;align-items:flex-start;margin-top:30px;padding-top:24px;border-top:1px solid rgba(255,255,255,.13)}
.new-visitor__promise span{display:grid;width:34px;height:34px;flex:none;place-items:center;border-radius:50%;color:var(--night);background:var(--gold);font-weight:900}
.new-visitor__promise p{margin:4px 0 0;color:rgba(255,255,255,.7);line-height:1.6}
.new-visitor-form{display:grid;gap:10px;padding:clamp(24px,5vw,42px);border:1px solid rgba(212,175,55,.25);border-radius:26px;color:var(--ink);background:var(--white);box-shadow:0 28px 70px rgba(0,0,0,.3)}
.new-visitor-form__row{display:grid;gap:16px}.new-visitor-form__row>div{display:grid;gap:10px}
.new-visitor-form label{margin-top:8px;font-size:.83rem;font-weight:800}
.new-visitor-form input,.new-visitor-form textarea{width:100%;padding:14px 15px;border:1px solid #d8dce3;border-radius:11px;color:var(--ink);background:#fafafa;font:inherit}
.new-visitor-form textarea{resize:vertical}
.new-visitor-form input:focus,.new-visitor-form textarea:focus{border-color:var(--gold-deep);outline:3px solid rgba(212,175,55,.2)}
.new-visitor-form .button{margin-top:16px}.new-visitor-form .button:disabled{cursor:wait;opacity:.65}
.new-visitor-form__status{min-height:24px;margin:6px 0 0;font-weight:800;line-height:1.55}
.new-visitor-form__status.is-success{color:var(--success)}.new-visitor-form__status.is-error{color:#a82734}
.new-visitor-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(min-width:800px){.new-visitor__layout{grid-template-columns:.9fr 1.1fr}.new-visitor-form__row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:639px){.new-visitor__layout{gap:32px}.new-visitor-form{padding:22px}.new-visitor-form .button{width:100%}}

.book-modal__section+.book-modal__section{margin-top:28px}.book-modal__section h4{margin:0 0 8px;font-size:1rem;line-height:1.45}.book-modal__section p{margin:8px 0}.book-modal__reference{color:var(--gold-deep);font-weight:900}.book-modal__section blockquote{margin:12px 0 0;padding-left:16px;border-left:3px solid var(--gold);color:var(--slate);font-style:italic}
.library-book__fallback,.home-library__fallback{display:grid;place-items:center;text-align:center;color:var(--white);background:linear-gradient(145deg,#07172f,#123968)}.library-book__fallback{width:min(100%,280px);min-height:400px;padding:28px;border:1px solid rgba(212,175,55,.45);border-radius:5px;box-shadow:0 24px 45px rgba(0,0,0,.38)}.library-book__fallback span,.home-library__fallback span{color:var(--gold);font-size:.75rem;font-weight:900;letter-spacing:.18em}.library-book__fallback strong{font:600 1.55rem/1.25 Georgia,serif}.home-library__fallback{width:100px;height:145px;padding:10px;border-radius:4px}.home-library__fallback strong{font:600 .72rem/1.25 Georgia,serif}.library-empty{margin-top:45px;padding:32px;border:1px solid rgba(11,29,54,.1);border-radius:20px;background:var(--white);text-align:center;color:var(--slate);box-shadow:var(--shadow-1)}

/* Homepage — compact weekly schedule */
.services-section{position:relative;overflow:hidden;padding:76px 0;background:linear-gradient(180deg,var(--ivory),#f5f1e7)}
.services-section::before{position:absolute;top:-190px;right:-170px;width:420px;height:420px;border:1px solid rgba(184,138,59,.18);border-radius:50%;box-shadow:0 0 0 55px rgba(184,138,59,.035);content:"";pointer-events:none}
.services-header{position:relative;max-width:820px;margin:0 auto 36px;text-align:center}
.services-header .eyebrow{margin:0 0 12px}
.services-header p{max-width:760px}
.week-schedule{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:1040px;margin:0 auto}
.week-schedule__item{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;min-height:106px;overflow:hidden;border:1px solid rgba(11,29,54,.09);border-radius:17px;background:rgba(255,255,255,.94);box-shadow:0 8px 25px rgba(11,29,54,.065);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.week-schedule__item:hover{transform:translateY(-3px);border-color:rgba(184,138,59,.42);box-shadow:0 14px 34px rgba(11,29,54,.11)}
.week-schedule__when{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:18px;color:var(--white);background:var(--night)}
.week-schedule__when span{color:var(--gold);font-size:.72rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.week-schedule__when time{margin-top:7px;font-size:1rem;font-weight:850;line-height:1.25}
.week-schedule__content{min-width:0;padding:18px 20px}
.week-schedule__content h3{margin:0;color:var(--night);font-size:clamp(1rem,2vw,1.18rem);line-height:1.25}
.week-schedule__content p{display:inline-block;margin:8px 0 0;padding:4px 9px;border-radius:999px;color:#765719;background:var(--gold-soft);font-size:.72rem;font-weight:800}
.week-schedule__item--service .week-schedule__when{background:linear-gradient(135deg,#0b274d,#16477c)}
.week-schedule__events{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1040px;margin:18px auto 0;padding:17px 20px;border:1px solid rgba(212,175,55,.35);border-radius:16px;background:var(--night);color:var(--white)}
.week-schedule__events[hidden]{display:none}
.week-schedule__events span{display:grid;gap:3px}
.week-schedule__events small{color:rgba(255,255,255,.68)}
.week-schedule__events .button{flex:none}
@media(min-width:768px){.services-section{padding:94px 0}}
@media(max-width:767px){.services-header{margin-bottom:28px}.week-schedule{grid-template-columns:1fr}.week-schedule__item{grid-template-columns:104px minmax(0,1fr);min-height:94px}.week-schedule__when,.week-schedule__content{padding:15px}.week-schedule__events{align-items:stretch;flex-direction:column}.week-schedule__events .button{width:100%}}
@media(max-width:390px){.week-schedule__item{grid-template-columns:92px minmax(0,1fr)}.week-schedule__when,.week-schedule__content{padding:13px 11px}.week-schedule__when time{font-size:.88rem}.week-schedule__content h3{font-size:.94rem}}

/* Homepage — À ne pas manquer */
.highlights{position:relative;overflow:hidden;color:var(--white);background:radial-gradient(circle at 88% 8%,rgba(212,175,55,.16),transparent 28%),linear-gradient(135deg,#06152d,#0c2d58)}
.highlights::before{position:absolute;left:-180px;bottom:-250px;width:480px;height:480px;border:1px solid rgba(212,175,55,.18);border-radius:50%;box-shadow:0 0 0 65px rgba(212,175,55,.035),0 0 0 130px rgba(212,175,55,.018);content:"";pointer-events:none}
.highlights__header{position:relative;max-width:720px;margin-bottom:42px}.highlights__header .eyebrow{color:var(--gold)}.highlights__header h2{margin:8px 0 16px;font-size:clamp(2.6rem,7vw,5rem);line-height:.98}.highlights__header>p:last-child{max-width:620px;margin:0;color:rgba(255,255,255,.7);line-height:1.7}
.highlights__grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.highlight-card{display:flex;min-width:0;overflow:hidden;flex-direction:column;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:rgba(255,255,255,.96);color:var(--ink);box-shadow:0 22px 55px rgba(0,0,0,.22);transition:transform .3s ease,border-color .3s ease}.highlight-card:hover{transform:translateY(-6px);border-color:rgba(212,175,55,.7)}
.highlight-card__media{position:relative;display:grid;min-height:185px;overflow:hidden;place-items:center;background:linear-gradient(145deg,#102d52,#07162d)}.highlight-card__media img{width:100%;height:100%;min-height:185px;object-fit:cover}.highlight-card__media--book img{object-fit:contain;padding:16px;background:#e9e2d5}.highlight-card__media.is-fallback span{color:var(--gold);font-size:.75rem;font-weight:900;letter-spacing:.2em}
.highlight-card__body{display:flex;flex:1;flex-direction:column;padding:24px}.highlight-card__label{margin:0 0 11px;color:var(--gold-deep);font-size:.68rem;font-weight:900;letter-spacing:.14em}.highlight-card h3{margin:0 0 12px;font-size:1.35rem;line-height:1.2}.highlight-card__body>p:not(.highlight-card__label){margin:0 0 8px;color:var(--slate);font-size:.9rem;line-height:1.55}.highlight-card__action{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding-top:20px;color:var(--night);font-size:.86rem;font-weight:900;text-decoration:none}.highlight-card__action span{color:var(--gold-deep)}
.highlight-card__welcome{align-content:center;gap:8px;background:radial-gradient(circle at 50% 120%,rgba(212,175,55,.35),transparent 55%),linear-gradient(145deg,#0d315e,#06152d)}.highlight-card__welcome span{color:var(--gold);font-size:.7rem;font-weight:900;letter-spacing:.24em}.highlight-card__welcome strong{color:var(--white);font:500 2rem/1 Georgia,serif}.highlight-card--newcomer{border-color:rgba(212,175,55,.45)}
@media(max-width:1050px){.highlights__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.highlights__header{margin-bottom:30px}.highlights__grid{grid-template-columns:1fr;gap:16px}.highlight-card{display:grid;grid-template-columns:112px minmax(0,1fr);border-radius:18px}.highlight-card__media,.highlight-card__media img{height:100%;min-height:190px}.highlight-card__media--book img{padding:10px}.highlight-card__body{padding:20px}.highlight-card__welcome strong{font-size:1.25rem;writing-mode:vertical-rl}.highlight-card__welcome span{font-size:.6rem}}
@media(max-width:390px){.highlight-card{grid-template-columns:96px minmax(0,1fr)}.highlight-card__body{padding:17px}.highlight-card h3{font-size:1.18rem}}
/* Homepage — Moments at GICC */
.moments{position:relative;overflow:hidden;background:linear-gradient(180deg,#f7f3ea,var(--ivory))}.moments::before{position:absolute;top:-190px;left:-190px;width:430px;height:430px;border:1px solid rgba(184,138,59,.16);border-radius:50%;box-shadow:0 0 0 58px rgba(184,138,59,.025);content:"";pointer-events:none}.moments[hidden]{display:none}.moments__header{position:relative;max-width:760px;margin-bottom:40px}.moments__header h2{margin:8px 0 16px;font-size:clamp(2.6rem,7vw,5rem);line-height:.98}.moments__header>p:last-child{max-width:680px;margin:0;color:var(--slate);font-size:1.02rem;line-height:1.7}.moments__grid{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.moment-card{position:relative;min-width:0;overflow:hidden;border:1px solid rgba(11,29,54,.09);border-radius:22px;background:var(--night);box-shadow:0 18px 42px rgba(7,23,47,.14)}.moment-card[hidden]{display:none}.moment-card--featured{border-color:rgba(184,138,59,.65);box-shadow:0 22px 54px rgba(7,23,47,.2),0 0 0 1px rgba(212,175,55,.18)}.moment-card__trigger{position:relative;display:block;width:100%;height:100%;min-height:330px;padding:0;overflow:hidden;border:0;color:var(--white);background:var(--night);cursor:zoom-in;text-align:left}.moment-card__trigger img{display:block;width:100%;height:100%;min-height:330px;aspect-ratio:4/3;object-fit:cover;transition:transform .45s ease,filter .45s ease}.moment-card__trigger::after{position:absolute;inset:38% 0 0;background:linear-gradient(transparent,rgba(3,14,31,.92));content:"";pointer-events:none}.moment-card__overlay{position:absolute;right:0;bottom:0;left:0;z-index:1;padding:24px}.moment-card__overlay p{margin:0;color:var(--gold);font-size:.69rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.moment-card__overlay h3{margin:8px 0 0;color:var(--white);font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.18}.moment-card__overlay .moment-card__caption{display:-webkit-box;margin-top:8px;overflow:hidden;color:rgba(255,255,255,.75);font-size:.82rem;font-weight:500;letter-spacing:0;line-height:1.45;text-transform:none;-webkit-box-orient:vertical;-webkit-line-clamp:2}.moment-card__featured{position:absolute;top:14px;right:14px;z-index:2;padding:7px 10px;border:1px solid rgba(255,255,255,.3);border-radius:999px;color:var(--night);background:var(--gold);font-size:.62rem;font-weight:950;letter-spacing:.1em}.moment-card__trigger:focus-visible{outline:4px solid var(--focus);outline-offset:-4px}@media(hover:hover){.moment-card:hover .moment-card__trigger img{filter:saturate(1.08);transform:scale(1.045)}}
.gallery-lightbox{width:min(94vw,1100px);max-width:none;padding:0;border:1px solid rgba(212,175,55,.45);border-radius:22px;color:var(--white);background:#06152d;box-shadow:0 35px 100px rgba(0,0,0,.55)}.gallery-lightbox::backdrop{background:rgba(2,9,20,.84);backdrop-filter:blur(5px)}.gallery-lightbox figure{margin:0}.gallery-lightbox img{display:block;width:100%;max-height:82vh;object-fit:contain;background:#030b17}.gallery-lightbox figcaption{min-height:52px;padding:16px 60px 16px 20px;color:rgba(255,255,255,.82);line-height:1.45}.gallery-lightbox figcaption:empty{display:none}.gallery-lightbox__close{position:absolute;top:12px;right:12px;z-index:2;display:grid;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;place-items:center;color:var(--white);background:rgba(6,21,45,.82);cursor:pointer;font-size:1.7rem}.gallery-lightbox__close:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media(max-width:900px){.moments__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.moments__header{margin-bottom:28px}.moments__grid{grid-template-columns:1fr;gap:15px}.moment-card,.gallery-lightbox{border-radius:18px}.moment-card__trigger,.moment-card__trigger img{min-height:270px}.moment-card__overlay{padding:20px}.gallery-lightbox{width:calc(100vw - 20px)}.gallery-lightbox img{max-height:76vh}}@media(prefers-reduced-motion:reduce){.moment-card__trigger img{transition:none}}