body{margin:0;}

  :root{
    --ivory:#FBF5E9;
    --ivory-deep:#F4EAD4;
    --card:#FFFFFF;
    --gold:#AD8536;
    --gold-light:#C9A55C;
    --gold-pale:#E7D3A6;
    --navy:#1E2A5E;
    --navy-deep:#141c42;
    --ink:#2B2620;
    --ink-soft:#6b6252;
    --rule: rgba(173,133,54,0.45);
    --shadow: 0 18px 50px -22px rgba(30,26,15,0.35);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--ivory);
    color:var(--ink);
    font-family:'EB Garamond', 'Cormorant Garamond', serif;
    font-size:18px;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Cormorant Garamond', serif;
    font-weight:500;
    margin:0 0 .3em 0;
    color:var(--ink);
    letter-spacing:.01em;
  }
  a{color:inherit;}
  img{max-width:100%;display:block;}
  .eyebrow{
    font-family:'Montserrat', sans-serif;
    font-size:12px;
    letter-spacing:.24em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:600;
    margin-bottom:14px;
    display:block;
  }
  .eyebrow.on-navy{color:var(--gold-light);}
  .rule{
    display:flex;align-items:center;justify-content:center;gap:10px;
    margin:22px auto;width:220px;
  }
  .rule::before,.rule::after{content:'';flex:1;height:1px;background:var(--rule);}
  .rule .dot{width:5px;height:5px;border-radius:50%;background:var(--gold);}
  .container{max-width:1080px;margin:0 auto;padding:0 32px;}
  .container.narrow{max-width:760px;}

  /* ---------- Ornamental corners ---------- */
  .ornament{position:absolute;width:46px;height:46px;pointer-events:none;opacity:.85;}
  .ornament svg{width:100%;height:100%;}
  .ornament.tl{top:14px;left:14px;}
  .ornament.tr{top:14px;right:14px;transform:scaleX(-1);}
  .ornament.bl{bottom:14px;left:14px;transform:scaleY(-1);}
  .ornament.br{bottom:14px;right:14px;transform:scale(-1,-1);}

  /* ---------- Nav ---------- */
  header.site-header{
    position:fixed;top:0;left:0;right:0;z-index:1000;
    background:rgba(251,245,233,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--rule);
  }
  .nav-inner{
    max-width:1180px;margin:0 auto;padding:14px 28px;
    display:flex;align-items:center;justify-content:space-between;
  }
  .brand{display:flex;align-items:center;gap:12px;cursor:pointer;text-decoration:none;}
  .brand img{width:34px;height:34px;}
  .brand-text{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--navy);letter-spacing:.02em;}
  nav.primary-nav{display:flex;gap:28px;}
  nav.primary-nav a{
    font-family:'Montserrat',sans-serif;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--ink-soft);text-decoration:none;padding:6px 0;border-bottom:1px solid transparent;
    transition:color .2s, border-color .2s; cursor:pointer;
  }
  nav.primary-nav a:hover, nav.primary-nav a.active{color:var(--gold);border-color:var(--gold);}
  .nav-toggle{display:none;background:none;border:1px solid var(--gold);border-radius:4px;width:38px;height:34px;cursor:pointer;color:var(--navy);font-size:18px;}

  @media (max-width:900px){
    nav.primary-nav{
      position:absolute;top:100%;left:0;right:0;background:var(--ivory);
      flex-direction:column;gap:0;border-bottom:1px solid var(--rule);
      max-height:0;overflow:hidden;transition:max-height .3s ease;
    }
    nav.primary-nav.open{max-height:420px;}
    nav.primary-nav a{padding:14px 28px;border-bottom:1px solid rgba(173,133,54,.15);}
    .nav-toggle{display:block;}
  }

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-block;font-family:'Montserrat',sans-serif;font-size:12.5px;letter-spacing:.16em;
    text-transform:uppercase;text-decoration:none;padding:15px 34px;border-radius:2px;
    transition:all .25s ease;cursor:pointer;border:1px solid transparent;
  }
  .btn-gold{background:var(--gold);color:#fff;box-shadow:0 10px 24px -10px rgba(173,133,54,.6);}
  .btn-gold:hover{background:#95712a;}
  .btn-outline{border-color:var(--gold);color:var(--gold);background:transparent;}
  .btn-outline:hover{background:var(--gold);color:#fff;}
  .btn-navy{background:var(--navy);color:#fff;}
  .btn-navy:hover{background:var(--navy-deep);}
  .btn-outline-navy{border-color:var(--navy);color:var(--navy);background:transparent;}
  .btn-outline-navy:hover{background:var(--navy);color:#fff;}
  .btn-row{display:flex;gap:16px;flex-wrap:wrap;}

  /* ---------- Pages ---------- */
  to{opacity:1;transform:translateY(0);}}

  section{padding:96px 0;position:relative;}
  section.tight{padding:64px 0;}
  section.on-ivory-deep{background:var(--ivory-deep);}
  section.on-ivory-deep.fade-edges{background:linear-gradient(to bottom,var(--ivory) 0,var(--ivory-deep) 72px,var(--ivory-deep) calc(100% - 72px),var(--ivory) 100%);}
  section.on-ivory-deep.fade-top{background:linear-gradient(to bottom,var(--ivory) 0,var(--ivory-deep) 72px,var(--ivory-deep) 100%);}
  section.on-navy{background:var(--navy);color:#f3ece0;}
  section.on-navy h1,section.on-navy h2,section.on-navy h3{color:#fff;}
  section.bordered{}

  .center{text-align:center;}
  .lede{font-size:21px;color:var(--ink-soft);font-style:italic;}
  .quote{
    font-family:'Cormorant Garamond',serif;font-style:italic;font-size:28px;
    color:var(--navy);max-width:640px;margin:0 auto;line-height:1.5;
  }
  .quote.on-navy{color:var(--gold-light);}

  /* ---------- Hero ---------- */
  .hero{
    padding:180px 0 100px;text-align:center;position:relative;
    background:
      radial-gradient(ellipse at 50% -10%, rgba(173,133,54,0.12), transparent 60%),
      var(--ivory);
  }
  .hero .mandala{width:96px;height:96px;margin:0 auto 26px;}
  .hero h1{font-size:clamp(42px,7vw,74px);color:var(--navy);}
  .hero .subtitle{font-family:'Montserrat',sans-serif;font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;}
  .hero .tagline{font-size:20px;font-style:italic;color:var(--ink-soft);max-width:560px;margin:18px auto 6px;}
  .hero .dateline{font-family:'Montserrat',sans-serif;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px;}
  .hero .btn-row{justify-content:center;margin-top:38px;}

  .page-hero{padding:170px 0 70px;text-align:center;background:var(--ivory-deep);}
  .page-hero.fade-bottom{background:linear-gradient(to bottom,var(--ivory-deep) 0,var(--ivory-deep) calc(100% - 56px),var(--ivory) 100%);}
  .page-hero h1{font-size:clamp(38px,6vw,58px);color:var(--navy);}
  .page-hero .lede{max-width:640px;margin:16px auto 0;}

  /* ---------- Cards / grids ---------- */
  .grid{display:grid;gap:28px;}
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .grid-2{grid-template-columns:repeat(2,1fr);}
  @media (max-width:820px){.grid-3{grid-template-columns:1fr;}.grid-2{grid-template-columns:1fr;}}

  .card{
    background:var(--card);border:1px solid var(--rule);border-radius:4px;
    padding:34px 30px;box-shadow:var(--shadow);
  }
  .card h3{font-size:24px;color:var(--navy);}
  .card p{color:var(--ink-soft);font-size:16.5px;margin:10px 0 0;}
  .card .icon{width:40px;height:40px;margin-bottom:16px;color:var(--gold);}

  .impact-list{list-style:none;padding:0;margin:0;display:grid;gap:18px;}
  .impact-list li{
    display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--rule);
  }
  .impact-list li:last-child{border-bottom:none;}
  .impact-list .num{font-family:'Cormorant Garamond',serif;font-size:26px;color:var(--gold);width:36px;flex:none;}
  .impact-list h4{font-size:19px;margin:0 0 2px;color:var(--navy);font-family:'Montserrat',sans-serif;font-weight:600;letter-spacing:.01em;text-transform:none;font-size:17px;}
  .impact-list p{margin:0;color:var(--ink-soft);font-size:16px;}

  /* ---------- Sponsorship levels ---------- */
  .levels{display:grid;gap:24px;grid-template-columns:repeat(3,1fr);margin-top:20px;}
  @media (max-width:980px){.levels{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:640px){.levels{grid-template-columns:1fr;}}
  .level-card{
    background:var(--card);border:1px solid var(--rule);border-radius:4px;padding:34px 26px;
    text-align:center;position:relative;box-shadow:var(--shadow);
  }
  .level-card.featured{border:1px solid var(--gold);background:linear-gradient(180deg,#fff,#FCF6E9);}
  .level-card.featured::before{
    content:'PREMIER';position:absolute;top:-11px;left:50%;transform:translateX(-50%);
    background:var(--gold);color:#fff;font-family:'Montserrat',sans-serif;font-size:10px;
    letter-spacing:.18em;padding:4px 14px;border-radius:20px;
  }
  .level-card .level-name{font-family:'Montserrat',sans-serif;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;}
  .level-card .level-amount{font-family:'Cormorant Garamond',serif;font-size:40px;color:var(--navy);margin-bottom:18px;}
  .level-card ul{list-style:none;padding:0;margin:0;text-align:left;}
  .level-card li{
    font-size:15.5px;color:var(--ink-soft);padding:9px 0 9px 22px;position:relative;border-top:1px solid rgba(173,133,54,.15);
  }
  .level-card li:first-child{border-top:none;}
  .level-card li::before{content:'✦';position:absolute;left:0;top:9px;color:var(--gold);font-size:11px;}

  /* ---------- Timeline / events ---------- */
  .event-card{
    display:grid;grid-template-columns:150px 1fr;gap:30px;background:var(--card);
    border:1px solid var(--rule);border-radius:4px;padding:30px;box-shadow:var(--shadow);align-items:start;
  }
  @media (max-width:700px){.event-card{grid-template-columns:1fr;}}
  .event-date{text-align:center;border-right:1px solid var(--rule);padding-right:24px;}
  @media (max-width:700px){.event-date{border-right:none;border-bottom:1px solid var(--rule);padding:0 0 18px;}}
  .event-date .month{font-family:'Montserrat',sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);}
  .event-date .day{font-family:'Cormorant Garamond',serif;font-size:44px;color:var(--navy);line-height:1;}
  .event-date .year{font-size:15px;color:var(--ink-soft);}

  .city-card{border:1px solid var(--rule);border-radius:4px;background:var(--card);box-shadow:var(--shadow);overflow:hidden;}
  .city-card .card-body{padding:26px 28px;}
  .city-card h3{color:var(--navy);font-size:23px;}
  .city-card .church{font-family:'Montserrat',sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-top:10px;}
  .city-card .card-photo{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
  .city-card .card-placeholder{
    width:100%;aspect-ratio:4/3;background:linear-gradient(160deg,var(--navy),#2b3a7a);
    display:flex;align-items:center;justify-content:center;color:var(--gold-light);
    font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:16px;
  }

  .person-card{border:1px solid var(--rule);border-radius:4px;background:var(--card);box-shadow:var(--shadow);overflow:hidden;}
  .person-card .card-body{padding:26px 28px;}
  .person-card .card-photo{width:100%;aspect-ratio:1;object-fit:cover;display:block;}
  .person-card .card-placeholder{
    width:100%;aspect-ratio:1;background:linear-gradient(160deg,var(--navy),#2b3a7a);
    display:flex;align-items:center;justify-content:center;color:var(--gold-light);
    font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:16px;
  }

  .ensemble-card{border:1px solid var(--rule);border-radius:4px;background:var(--card);box-shadow:var(--shadow);overflow:hidden;}
  .ensemble-card .card-photo{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;}
  .ensemble-card .card-body{padding:30px 32px;}
  .ensemble-card .card-body .grid-2{gap:32px;}
  @media (max-width:820px){.ensemble-card .card-body .grid-2 > div:first-child{margin-bottom:6px;}}

  table.people-table{width:100%;border-collapse:collapse;margin-top:10px;}
  table.people-table td{padding:14px 10px;border-top:1px solid var(--rule);font-size:16.5px;vertical-align:top;word-break:break-word;overflow-wrap:anywhere;}
  table.people-table td.role{color:var(--gold);font-family:'Montserrat',sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;width:190px;}
  @media (max-width:600px){
    table.people-table, table.people-table tbody, table.people-table tr, table.people-table td{display:block;width:auto;}
    table.people-table tr{border-top:1px solid var(--rule);padding:14px 0;}
    table.people-table td{padding:0 10px;border-top:none;}
    table.people-table td.role{margin-bottom:6px;}
  }

  .bio-row{display:grid;grid-template-columns:240px 1fr;gap:36px;align-items:start;}
  @media (max-width:700px){.bio-row{grid-template-columns:1fr;} .bio-photo{max-width:220px;margin:0 auto;}}
  .bio-photo{
    width:100%;aspect-ratio:1;border-radius:4px;overflow:hidden;
    border:1px solid var(--rule);box-shadow:var(--shadow);
  }
  .bio-photo img{width:100%;height:100%;object-fit:cover;display:block;}

  .antiphon{border-left:2px solid var(--gold-pale);padding-left:26px;margin:26px 0;}
  .antiphon .tag{font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.16em;color:var(--gold);text-transform:uppercase;}
  .antiphon h4{font-size:24px;color:var(--navy);margin:6px 0 2px;}
  .antiphon .latin{font-style:italic;color:var(--ink-soft);font-size:16px;}

  footer{background:var(--navy);color:#cdd3ea;padding:60px 0 30px;}
  footer a{color:#fff;text-decoration:none;}
  footer .foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;}
  @media (max-width:760px){footer .foot-grid{grid-template-columns:1fr;}}
  footer h4{color:#fff;font-family:'Montserrat',sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px;}
  footer p, footer li{color:#b9c0dc;font-size:15px;}
  footer ul{list-style:none;padding:0;margin:0;}
  footer li{margin-bottom:10px;}
  .foot-bottom{
    margin-top:44px;padding-top:26px;border-top:1px solid rgba(255,255,255,.12);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13px;color:#8b93bd;
  }
  .foot-logo{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
  .foot-logo img{width:40px;height:40px;}

  .two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}
  @media (max-width:820px){.two-col{grid-template-columns:1fr;}}
  .dropcap:first-letter{
    font-family:'Cormorant Garamond',serif;font-size:64px;color:var(--gold);float:left;line-height:.8;
    padding:8px 10px 0 0;font-weight:500;
  }
  .tag-pill{
    display:inline-block;font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.12em;
    text-transform:uppercase;color:var(--navy);background:var(--gold-pale);padding:5px 12px;border-radius:20px;margin:4px 6px 0 0;
  }
