  :root{
    --ink:#161009;
    --ink-2:#1f160d;
    --paper:#f3e9d6;
    --paper-2:#ece0c8;
    --gold:#c8a24d;
    --gold-bright:#e6c877;
    --gold-dim:#8a6f3a;
    --burgundy:#732f2c;
    --burgundy-bright:#9c4340;
    --cream:#f4ead9;
    --cream-dim:#cdbfa2;
    --line:rgba(200,162,77,0.25);
    --shadow:0 30px 60px -20px rgba(0,0,0,0.5);
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    background:var(--ink);
    color:var(--cream);
    font-family:'Archivo',sans-serif;
    font-size:16px;
    line-height:1.7;
    overflow-x:hidden;
  }

  ::selection{background:var(--gold); color:var(--ink);}

  h1,h2,h3,h4{
    font-family:'Fraunces',serif;
    font-weight:600;
    line-height:1.05;
    letter-spacing:-0.01em;
  }

  a{color:inherit; text-decoration:none;}

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

  .container{
    max-width:1180px;
    margin:0 auto;
    padding:0 40px;
  }

  /* grain overlay */
  .grain{
    position:fixed; inset:0; pointer-events:none; z-index:9999;
    opacity:0.05; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }

  /* ---------- NAV ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:1000;
    padding:22px 0;
    transition:all .4s ease;
    background:transparent;
  }
  header.scrolled{
    background:rgba(22,16,9,0.92);
    backdrop-filter:blur(10px);
    padding:14px 0;
    border-bottom:1px solid var(--line);
  }
  .progress-bar{
    position:fixed; top:0; left:0; height:2px; width:0%;
    background:linear-gradient(90deg, var(--gold-dim), var(--gold-bright));
    z-index:1001; transition:width .1s linear;
    box-shadow:0 0 8px rgba(230,200,119,0.5);
  }
  .nav-inner{
    display:flex; align-items:center; justify-content:space-between;
  }
  .logo{
    font-family:'Fraunces',serif;
    font-size:1.15rem;
    letter-spacing:0.06em;
    font-weight:600;
    color:var(--cream);
  }
  .logo em{
    color:var(--gold-bright);
    font-style:italic;
    font-weight:400;
  }
  nav.main-links{display:flex; gap:34px;}
  nav.main-links a{
    font-size:0.72rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--cream-dim);
    position:relative;
    padding-bottom:4px;
    transition:color .3s ease;
  }
  nav.main-links a .num{color:var(--gold); margin-right:6px; font-family:'Fraunces',serif; font-style:italic; transition:color .3s ease;}
  nav.main-links a:hover{color:var(--gold-bright);}
  nav.main-links a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:1px;
    background:var(--gold-bright); transition:width .35s cubic-bezier(.4,0,.2,1);
  }
  nav.main-links a:hover::after{width:100%;}
  nav.main-links a.active{color:var(--gold-bright);}
  nav.main-links a.active .num{color:var(--gold-bright);}
  nav.main-links a.active::after{width:100%;}

  .burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; z-index:1100;}
  .burger span{width:26px; height:2px; background:var(--cream); display:block; transition:.3s;}

  /* ---------- HERO ---------- */
  #hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    background:
      radial-gradient(ellipse 90% 60% at 75% 15%, rgba(200,162,77,0.16), transparent 60%),
      linear-gradient(180deg, var(--ink) 0%, #100b06 100%);
    overflow:hidden;
  }
  .hero-spotlight{
    position:absolute; inset:0; z-index:1; pointer-events:none;
    opacity:0; transition:opacity .6s ease;
  }
  .hero-spotlight.active{opacity:1;}
  .hero-grid{
    display:grid;
    grid-template-columns: 1.1fr 0.9fr;
    align-items:center;
    gap:40px;
    width:100%;
  }
  .hero-copy{position:relative; z-index:3;}
  .hero-eyebrow{
    display:flex; align-items:center; gap:14px;
    font-size:0.75rem; letter-spacing:0.25em; text-transform:uppercase;
    color:var(--gold-bright); margin-bottom:26px;
    opacity:0; transform:translateY(14px); animation:rise .9s .1s forwards ease;
  }
  .hero-eyebrow::before{content:''; width:40px; height:1px; background:var(--gold);}

  .hero-title{
    font-size:clamp(3rem, 7vw, 5.6rem);
    color:var(--cream);
    opacity:0; transform:translateY(24px); animation:rise 1s .25s forwards ease;
  }
  .hero-title .last{
    display:block;
    font-style:italic;
    font-weight:400;
    color:var(--gold-bright);
    margin-left:0.5em;
  }
  .hero-scripture{
    margin-top:30px; max-width:480px;
    font-family:'Fraunces',serif; font-style:italic; font-weight:400;
    font-size:1.25rem; color:var(--paper);
    border-left:2px solid var(--gold); padding-left:22px;
    opacity:0; transform:translateY(20px); animation:rise 1s .45s forwards ease;
  }
  .hero-scripture cite{
    display:block; font-family:'Archivo',sans-serif; font-style:normal;
    font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--cream-dim); margin-top:12px;
  }
  .hero-desc{
    margin-top:28px; max-width:480px; color:var(--cream-dim); font-size:1rem;
    opacity:0; transform:translateY(20px); animation:rise 1s .6s forwards ease;
  }
  .hero-cta{
    margin-top:38px; display:flex; gap:18px; flex-wrap:wrap;
    opacity:0; transform:translateY(20px); animation:rise 1s .75s forwards ease;
  }
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 30px;
    font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase;
    border-radius:2px;
    transition:all .35s cubic-bezier(.4,0,.2,1);
    cursor:pointer;
    border:1px solid transparent;
    position:relative;
    overflow:hidden;
  }
  .btn::after{
    content:'→'; display:inline-block; opacity:0; transform:translateX(-8px);
    transition:all .35s cubic-bezier(.4,0,.2,1); margin-left:-4px; width:0;
  }
  .btn:hover::after{opacity:1; transform:translateX(0); width:1em; margin-left:0;}
  .btn-solid{background:var(--gold); color:var(--ink); font-weight:600; box-shadow:0 1px 0 rgba(255,255,255,0.25) inset, 0 8px 20px -12px rgba(0,0,0,0.5);}
  .btn-solid:hover{background:var(--gold-bright); transform:translateY(-3px); box-shadow:0 1px 0 rgba(255,255,255,0.3) inset, 0 18px 34px -14px rgba(200,162,77,0.55);}
  .btn-outline{border-color:var(--cream-dim); color:var(--cream);}
  .btn-outline:hover{border-color:var(--gold-bright); color:var(--gold-bright); transform:translateY(-3px); box-shadow:0 14px 28px -16px rgba(0,0,0,0.5);}

  .hero-visual{
    position:relative; z-index:2;
    opacity:0; animation:fadeIn 1.4s .3s forwards ease;
  }
  .hero-frame{
    position:relative;
    aspect-ratio:3/4;
    border-radius:2px;
    overflow:hidden;
    box-shadow:var(--shadow);
  }
  .hero-frame img{width:100%; height:100%; object-fit:cover; filter:saturate(1.05) contrast(1.03);}
  .hero-frame::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(200deg, transparent 55%, rgba(22,16,9,0.55) 100%);
  }
  .hero-frame-ring{
    position:absolute; top:-24px; right:-24px; width:120px; height:120px;
    border:1px solid var(--gold); border-radius:50%; z-index:1;
    animation:spin 40s linear infinite;
  }
  .hero-frame-ring svg{width:100%; height:100%;}

  .hero-numeral{
    position:absolute; bottom:-6vw; left:-2vw;
    font-family:'Fraunces',serif; font-weight:300; font-style:italic;
    font-size:min(24vw,300px);
    color:transparent; -webkit-text-stroke:1px rgba(200,162,77,0.18);
    z-index:1; user-select:none; pointer-events:none; line-height:1;
  }

  .scroll-cue{
    position:absolute; bottom:38px; left:40px; z-index:5;
    display:flex; align-items:center; gap:12px;
    font-size:0.68rem; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--cream-dim);
    opacity:0; animation:rise 1s 1.1s forwards ease;
  }
  .scroll-cue .line{width:1px; height:36px; background:linear-gradient(var(--gold),transparent); position:relative; overflow:hidden;}

  @keyframes rise{to{opacity:1; transform:translateY(0);}}
  @keyframes fadeIn{to{opacity:1;}}
  @keyframes spin{to{transform:rotate(360deg);}}

  /* ---------- CHAPTER SYSTEM ---------- */
  .chapter{
    position:relative;
    padding:150px 0;
    overflow:hidden;
  }
  .chapter.dark{background:var(--ink);}
  .chapter.light{background:var(--paper); color:var(--ink-2);}
  .chapter.wine{
    background:linear-gradient(160deg,#2a1210,#170b0a 70%);
  }

  .chapter-numeral{
    position:absolute;
    top:-4vw;
    font-family:'Fraunces',serif; font-style:italic; font-weight:300;
    font-size:min(26vw,320px);
    line-height:1; user-select:none; pointer-events:none;
    color:transparent;
    z-index:0;
  }
  .chapter.dark .chapter-numeral, .chapter.wine .chapter-numeral{-webkit-text-stroke:1px rgba(200,162,77,0.12);}
  .chapter.light .chapter-numeral{-webkit-text-stroke:1px rgba(115,47,44,0.14);}
  .chapter-numeral.left{left:-2vw;}
  .chapter-numeral.right{right:-2vw;}

  .kicker{
    display:flex; align-items:center; gap:14px;
    font-size:0.72rem; letter-spacing:0.24em; text-transform:uppercase;
    margin-bottom:22px;
  }
  .kicker::before{
    content:''; width:40px; height:1px; background:var(--gold);
    transform:scaleX(0); transform-origin:left; transition:transform .8s cubic-bezier(.4,0,.2,1) .1s;
  }
  .kicker.in::before{transform:scaleX(1);}
  .chapter.dark .kicker, .chapter.wine .kicker{color:var(--gold-bright);}
  .chapter.light .kicker{color:var(--burgundy);}

  .chapter h2{
    font-size:clamp(2.1rem, 4vw, 3.2rem);
    margin-bottom:28px;
    position:relative; z-index:2;
  }
  .chapter.light h2{color:var(--ink-2);}
  .chapter h2 em{font-style:italic; color:var(--gold-bright); font-weight:400;}
  .chapter.light h2 em{color:var(--burgundy);}

  .two-col{
    display:grid; grid-template-columns:0.95fr 1.05fr; gap:70px; align-items:center;
    position:relative; z-index:2;
  }
  .two-col.reverse{grid-template-columns:1.05fr 0.95fr;}
  .two-col.reverse .col-media{order:2;}
  .two-col.reverse .col-text{order:1;}

  .col-media img{
    width:100%; border-radius:2px; box-shadow:var(--shadow);
  }
  .media-frame{position:relative; transition:transform .4s cubic-bezier(.2,.8,.2,1); will-change:transform;}
  .media-frame::before{
    content:''; position:absolute; top:20px; left:20px; right:-20px; bottom:-20px;
    border:1px solid var(--gold); z-index:-1; opacity:0.5;
    transition:opacity .4s ease;
  }
  .media-frame:hover::before{opacity:0.85;}
  .book-duo{
    display:flex; gap:30px; align-items:flex-end;
  }
  .book-duo .media-frame{flex:1;}
  .book-duo .media-frame img{aspect-ratio:3/4.4; object-fit:cover; transition:transform .5s ease, filter .5s ease;}
  .book-duo .media-frame a{display:block; overflow:hidden; border-radius:2px;}
  .book-duo .media-frame a:hover img{transform:scale(1.04); filter:brightness(1.06);}
  .book-buy-tag{
    display:block; margin-top:12px; text-align:center;
    font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--burgundy);
  }
  .book-also-at{
    margin-top:22px; font-size:0.85rem; color:#7a6d55; text-align:center;
  }
  .book-also-at strong{color:var(--burgundy); font-weight:600;}
  @media (max-width:980px){
    .book-duo{gap:20px;}
  }
  @media (max-width:560px){
    .book-duo{flex-direction:column;}
  }

  .col-text p{
    color:var(--cream-dim); max-width:520px; margin-bottom:18px; font-size:1.02rem;
  }
  .chapter.light .col-text p{color:#4a3f2f;}

  .lede{
    font-family:'Fraunces',serif; font-style:italic; font-size:1.35rem;
    color:var(--paper); margin-bottom:24px; max-width:520px;
  }
  .chapter.light .lede{color:var(--burgundy);}

  .fact-row{
    display:flex; gap:36px; margin-top:34px; flex-wrap:wrap;
  }
  .fact-row .fact{border-left:1px solid var(--gold); padding-left:16px;}
  .fact-row .fact strong{
    display:block; font-family:'Fraunces',serif; font-size:1.5rem; color:var(--gold-bright); font-weight:600;
  }
  .chapter.light .fact-row .fact strong{color:var(--burgundy);}
  .fact-row .fact span{font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--cream-dim);}
  .chapter.light .fact-row .fact span{color:#7a6d55;}

  /* reveal-on-scroll for chapter contents */
  .reveal{opacity:0; transform:translateY(44px); transition:opacity 1.1s cubic-bezier(.16,1,.3,1), transform 1.1s cubic-bezier(.16,1,.3,1);}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ---------- MINISTRY EVENT CARD ---------- */
  .event-card{
    position:relative; z-index:2;
    margin-top:44px;
    background:rgba(244,234,217,0.04);
    border:1px solid var(--line);
    padding:32px 36px;
    display:grid; grid-template-columns:auto 1fr auto; gap:26px; align-items:center;
    max-width:640px;
  }
  .event-card .ev-date{
    font-family:'Fraunces',serif; font-size:2.1rem; color:var(--gold-bright); font-weight:600; text-align:center; line-height:1;
  }
  .event-card .ev-date span{display:block; font-family:'Archivo',sans-serif; font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--cream-dim); margin-top:6px;}
  .event-card h4{font-size:1.1rem; color:var(--cream); margin-bottom:6px; font-weight:600;}
  .event-card p{font-size:0.85rem; color:var(--cream-dim); margin:0;}
  .event-card a{font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-bright); border-bottom:1px solid var(--gold-dim); white-space:nowrap;}

  /* ---------- AUTHOR / BOOK ---------- */
  .book-meta{
    display:grid; grid-template-columns:repeat(2,1fr); gap:14px 30px;
    margin:30px 0 8px; max-width:480px;
  }
  .book-meta div{border-bottom:1px solid var(--line); padding-bottom:10px;}
  .book-meta div span{display:block; font-size:0.65rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--cream-dim);}
  .book-meta div strong{font-family:'Fraunces',serif; font-weight:500; color:var(--cream); font-size:0.95rem;}

  /* ---------- ADVOCACY / MILITANT ---------- */
  .advocacy-intro{
    display:grid; grid-template-columns:1fr auto; gap:60px; align-items:center;
    position:relative; z-index:2;
  }
  .advocacy-logo img{
    width:150px; height:150px; object-fit:contain;
    filter:drop-shadow(0 12px 30px rgba(0,0,0,0.45));
  }
  @media (max-width:980px){
    .advocacy-intro{grid-template-columns:1fr; text-align:left;}
    .advocacy-logo{order:-1; margin-bottom:10px;}
    .advocacy-logo img{width:110px; height:110px;}
  }
  .pillars{
    display:grid; grid-template-columns:repeat(3,1fr); gap:34px; margin-top:60px; position:relative; z-index:2;
  }
  .pillar{
    border-top:1px solid var(--gold-dim); padding-top:24px;
    transition:transform .4s cubic-bezier(.2,.8,.2,1), border-color .4s ease;
  }
  .pillar:hover{transform:translateY(-6px); border-color:var(--gold-bright);}
  .pillar .roman{font-family:'Fraunces',serif; font-style:italic; color:var(--gold-bright); font-size:1.2rem; margin-bottom:14px; display:block;}
  .pillar h3{font-size:1.25rem; color:var(--cream); margin-bottom:12px; font-weight:600;}
  .pillar p{color:var(--cream-dim); font-size:0.94rem;}

  /* ---------- QUOTE BAND ---------- */
  .quote-band{
    padding:130px 0; text-align:center; position:relative;
    background:
      linear-gradient(rgba(22,16,9,0.86),rgba(22,16,9,0.9)),
      radial-gradient(ellipse at 50% 0%, rgba(200,162,77,0.14), transparent 60%);
  }
  .quote-band blockquote{
    font-family:'Fraunces',serif; font-style:italic; font-weight:400;
    font-size:clamp(1.6rem,3.4vw,2.6rem);
    color:var(--paper); max-width:800px; margin:0 auto 22px;
    line-height:1.3;
  }
  .quote-band cite{
    font-family:'Archivo',sans-serif; font-style:normal; font-size:0.72rem;
    letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-bright);
  }
  .quote-ornament{
    width:1px; height:0; background:var(--gold); margin:0 auto 40px;
    transition:height 1.1s cubic-bezier(.16,1,.3,1);
  }
  .quote-ornament.in{height:60px;}

  /* ---------- NEWSLETTER ---------- */
  .newsletter-band{
    position:relative;
    padding:80px 0;
    background:
      radial-gradient(ellipse 70% 140% at 15% 50%, rgba(200,162,77,0.14), transparent 60%),
      linear-gradient(120deg,#2a1210,#1c1109 60%);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .newsletter-inner{
    display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:center;
  }
  .newsletter-copy h3{
    font-size:clamp(1.5rem,2.6vw,2.1rem); color:var(--cream); margin:8px 0 14px; font-weight:600;
  }
  .newsletter-copy h3 em{font-style:italic; color:var(--gold-bright); font-weight:400;}
  .newsletter-copy p{color:var(--cream-dim); max-width:440px; font-size:0.98rem;}

  .newsletter-form{width:100%;}
  .hp-field{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}
  .newsletter-field{
    display:flex; border:1px solid var(--gold-dim); border-radius:2px; overflow:hidden;
    background:rgba(244,234,217,0.03);
  }
  .newsletter-field input{
    flex:1; background:transparent; border:none; color:var(--cream);
    font-family:'Archivo',sans-serif; font-size:0.95rem; padding:16px 18px;
  }
  .newsletter-field input:focus{outline:none;}
  .newsletter-field input::placeholder{color:var(--cream-dim);}
  .newsletter-field button{
    border:none; background:var(--gold); color:var(--ink);
    font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; font-weight:600;
    padding:0 26px; cursor:pointer; transition:.3s ease; white-space:nowrap;
  }
  .newsletter-field button:hover{background:var(--gold-bright);}
  .newsletter-status{
    margin-top:12px; font-size:0.76rem; color:var(--cream-dim);
  }
  @media (max-width:980px){
    .newsletter-inner{grid-template-columns:1fr; gap:26px;}
  }
  @media (max-width:560px){
    .newsletter-field{flex-direction:column;}
    .newsletter-field button{padding:14px; width:100%;}
  }

  /* ---------- GALLERY ---------- */
  .gallery-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:20px; position:relative; z-index:2;
  }
  .gal-item{
    position:relative; overflow:hidden; border-radius:2px; aspect-ratio:4/5;
    box-shadow:0 0 0 rgba(0,0,0,0); transition:box-shadow .5s ease, transform .5s cubic-bezier(.2,.8,.2,1);
  }
  .gal-item:first-child{grid-row:span 2; aspect-ratio:auto;}
  .gal-item:hover{box-shadow:0 24px 46px -20px rgba(0,0,0,0.6);}
  .gal-item img{width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.2,1), filter .5s ease;}
  .gal-item:hover img{transform:scale(1.07); filter:brightness(1.04);}
  .gal-caption{
    position:absolute; left:0; right:0; bottom:0; padding:22px;
    background:linear-gradient(0deg, rgba(0,0,0,0.75), transparent);
    font-size:0.75rem; letter-spacing:0.05em; color:var(--cream);
    transform:translateY(8px); opacity:0; transition:.4s ease;
  }
  .gal-item:hover .gal-caption{transform:translateY(0); opacity:1;}
  /* Sur écrans tactiles, le survol n'existe pas : la légende doit rester visible */
  @media (hover: none){
    .gal-caption{
      transform:translateY(0); opacity:1;
      background:linear-gradient(0deg, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.35) 60%, transparent 100%);
    }
  }

  /* ---------- CONTACT ---------- */
  #contact.chapter{padding-bottom:0;}
  .contact-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:80px; position:relative; z-index:2;
  }
  .contact-info p{color:var(--cream-dim); max-width:420px; margin-bottom:34px;}
  .info-line{display:flex; gap:16px; margin-bottom:20px; align-items:baseline;}
  .info-line span.label{font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-bright); min-width:110px;}
  .info-line span.value{color:var(--cream); font-family:'Fraunces',serif; font-size:1.05rem;}

  .social-row{display:flex; gap:16px; margin-top:34px;}
  .social-row a{
    width:42px; height:42px; border:1px solid var(--line); border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:0.8rem; transition:.3s ease;
  }
  .social-row a:hover{border-color:var(--gold-bright); color:var(--gold-bright); transform:translateY(-3px);}

  form.contact-form{display:flex; flex-direction:column; gap:22px;}
  .field{position:relative;}
  .field input, .field textarea{
    width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
    color:var(--cream); font-family:'Archivo',sans-serif; font-size:0.95rem; padding:12px 2px;
    resize:none;
  }
  .field textarea{min-height:100px;}
  .field label{
    position:absolute; left:2px; top:12px; color:var(--cream-dim); font-size:0.95rem;
    transition:.25s ease; pointer-events:none;
  }
  .field input:focus, .field textarea:focus{outline:none; border-bottom-color:var(--gold-bright);}
  .field input:focus + label, .field textarea:focus + label,
  .field input:not(:placeholder-shown) + label, .field textarea:not(:placeholder-shown) + label{
    top:-14px; font-size:0.65rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-bright);
  }
  .form-note{font-size:0.78rem; color:var(--cream-dim); margin-top:-6px;}

  /* ---------- FOOTER ---------- */
  footer{
    border-top:1px solid var(--line);
    margin-top:120px; padding:50px 0 34px;
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;
  }
  footer .fname{font-family:'Fraunces',serif; font-style:italic; color:var(--gold-bright);}
  footer p{font-size:0.75rem; color:var(--cream-dim);}
  .back-top{font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--cream-dim); border-bottom:1px solid var(--line); padding-bottom:3px;}
  .back-top:hover{color:var(--gold-bright); border-color:var(--gold-bright);}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:980px){
    nav.main-links{display:none;}
    .burger{display:flex;}
    .hero-grid{grid-template-columns:1fr;}
    .hero-visual{order:-1; max-width:340px; margin:0 auto 20px;}
    .two-col, .two-col.reverse{grid-template-columns:1fr;}
    .two-col.reverse .col-media, .two-col.reverse .col-text{order:0;}
    .pillars{grid-template-columns:1fr;}
    .gallery-grid{grid-template-columns:1fr 1fr;}
    .gal-item:first-child{grid-row:span 1;}
    .contact-grid{grid-template-columns:1fr; gap:50px;}
    .book-meta{grid-template-columns:1fr;}
    .container{padding:0 24px;}
    .event-card{grid-template-columns:1fr; text-align:center;}
  }
  @media (max-width:560px){
    .chapter{padding:100px 0;}
    .gallery-grid{grid-template-columns:1fr; gap:18px;}
    .gal-item, .gal-item:first-child{aspect-ratio:4/3;}
    .gal-caption{padding:16px; font-size:0.72rem;}
    .event-card{padding:22px 20px; gap:16px;}
    .event-card .ev-date{font-size:1.6rem;}
    .event-card h4{font-size:1rem;}
    .event-card p{font-size:0.82rem;}
    .container{padding:0 20px;}
  }

  /* mobile menu overlay */
  .mobile-menu{
    position:fixed; inset:0; background:var(--ink); z-index:1050;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px;
    transform:translateY(-100%); transition:transform .5s ease;
  }
  .mobile-menu.open{transform:translateY(0);}
  .mobile-menu a{font-family:'Fraunces',serif; font-size:1.6rem; color:var(--cream);}
  .mobile-menu a em{color:var(--gold-bright); font-style:italic;}
