/* ══════════════════════════════════════════════════
   LATE PA HENRY OKEZI ALUYA — SHARED STYLESHEET
   ══════════════════════════════════════════════════ */

/* ── THEMES ─────────────────────────────────────── */
:root,[data-theme="celebration"]{
  --bg:#FAF5E8;--bg2:#F2EAD4;--bg-card:#FDF8EE;
  --nav-bg:#5B0E14;--nav-text:#F5E6C8;
  --h:#5B0E14;--acc:#C0882A;--acc-dim:rgba(192,136,42,.14);
  --tx:#2C1810;--tx2:#5B3A2A;--tx3:rgba(44,24,16,.5);
  --bd:rgba(192,136,42,.22);--bd2:#C0882A;
  --dark:#5B0E14;--dark-tx:#F5E6C8;--dark-mu:rgba(245,230,200,.65);
  --foot:#3A0910;--foot-tx:#F5E6C8;--btn:#5B0E14;--btn-tx:#F5E6C8;
}
[data-theme="state"]{--bg:#fff;--bg2:#F5F7FA;--bg-card:#fff;--nav-bg:#1F2D3D;--nav-text:#fff;--h:#1F2D3D;--acc:#C0882A;--acc-dim:rgba(31,45,61,.08);--tx:#1F2D3D;--tx2:#4A5A6A;--tx3:rgba(31,45,61,.48);--bd:rgba(31,45,61,.12);--bd2:#C0882A;--dark:#1F2D3D;--dark-tx:#fff;--dark-mu:rgba(255,255,255,.65);--foot:#141E28;--foot-tx:#fff;--btn:#1F2D3D;--btn-tx:#fff;}
[data-theme="candlelight"]{--bg:#141E2B;--bg2:#1A2535;--bg-card:#1E2D40;--nav-bg:#0D1520;--nav-text:#C0882A;--h:#F0E6D0;--acc:#C0882A;--acc-dim:rgba(192,136,42,.12);--tx:#F0E6D0;--tx2:#B8A888;--tx3:rgba(240,230,208,.42);--bd:rgba(192,136,42,.18);--bd2:#C0882A;--dark:#0D1520;--dark-tx:#F0E6D0;--dark-mu:rgba(240,230,208,.6);--foot:#080F18;--foot-tx:#C0882A;--btn:#C0882A;--btn-tx:#141E2B;}
[data-theme="garden"]{--bg:#F6F5EE;--bg2:#EDF0E5;--bg-card:#F6F5EE;--nav-bg:#2C4A35;--nav-text:#F0EDD8;--h:#1E3325;--acc:#C0882A;--acc-dim:rgba(44,74,53,.08);--tx:#1E3325;--tx2:#4A6650;--tx3:rgba(30,51,37,.48);--bd:rgba(44,74,53,.14);--bd2:#C0882A;--dark:#2C4A35;--dark-tx:#F0EDD8;--dark-mu:rgba(240,237,216,.65);--foot:#1A3020;--foot-tx:#F0EDD8;--btn:#2C4A35;--btn-tx:#F0EDD8;}
[data-theme="royal"]{--bg:#FAF8FF;--bg2:#F0ECF8;--bg-card:#FAF8FF;--nav-bg:#2D1B69;--nav-text:#F0EAD6;--h:#2D1B69;--acc:#C0882A;--acc-dim:rgba(45,27,105,.08);--tx:#2D1B69;--tx2:#5A4A8A;--tx3:rgba(45,27,105,.48);--bd:rgba(45,27,105,.12);--bd2:#C0882A;--dark:#2D1B69;--dark-tx:#F0EAD6;--dark-mu:rgba(240,234,214,.65);--foot:#1A0F45;--foot-tx:#F0EAD6;--btn:#2D1B69;--btn-tx:#fff;}

/* ── RESET ──────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Lato',Arial,sans-serif;background:var(--bg);color:var(--tx);line-height:1.7;transition:background .4s,color .4s;min-height:100vh;font-size:clamp(15px,0.85vw + 13px,17px)}
img{max-width:100%;height:auto;display:block}
a{color:var(--acc);text-decoration:none}
button,input,select,textarea{font-family:inherit}
textarea{resize:vertical}

/* ── TYPE ───────────────────────────────────────── */
h1,h2,h3,h4{font-family:'Cormorant Garamond',Georgia,serif;color:var(--h);font-weight:600;line-height:1.2}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--acc);display:block;margin-bottom:6px}
.sec-title{font-size:clamp(24px,4vw,42px);margin-bottom:8px}
.sec-lead{font-size:clamp(14px,0.6vw + 13px,18px);color:var(--tx2);font-weight:300;max-width:680px;margin:0 auto 16px;line-height:1.6}
@media(max-width:480px){.sec-lead{font-size:14px;max-width:340px;margin-left:auto;margin-right:auto}}
.orn{display:flex;align-items:center;gap:12px;margin:18px 0}
.orn-line{flex:1;height:1px;background:var(--bd2);opacity:.32}
.orn-diamond{width:7px;height:7px;background:var(--acc);transform:rotate(45deg);flex-shrink:0}
.orn.c{justify-content:center}.orn.c .orn-line{max-width:70px}

/* ══════════════════════════════════════════════════
   NAVIGATION — THREE CSS-ONLY RESPONSIVE STATES
   No JavaScript. No hamburger. Always fully visible.
   ══════════════════════════════════════════════════ */
#sitenav{position:sticky;top:0;z-index:200;background:var(--nav-bg);display:flex;transition:background .4s}
.nav-brand{font-family:'Cormorant Garamond',Georgia,serif;font-size:14px;font-weight:600;color:var(--acc);display:flex;flex-direction:column;justify-content:center;padding:0 18px;flex-shrink:0;line-height:1.2;text-decoration:none;border-right:1px solid rgba(255,255,255,.07)}
.nav-brand small{font-size:9px;font-family:'Lato',sans-serif;font-weight:400;letter-spacing:1px;text-transform:uppercase;color:var(--nav-text);opacity:.55}
.nav-tabs{display:flex;flex:1}
.nav-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--nav-text);text-decoration:none;opacity:.7;transition:opacity .15s,background .15s;position:relative}
.nav-tab:hover{opacity:.95;background:rgba(192,136,42,.1)}
.nav-tab.active{opacity:1}
.nav-tab.active::after{content:'';position:absolute;background:var(--acc)}
.nav-icon{line-height:1}
.nav-lbl{font-family:'Lato',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.5px}

/* 1 — Desktop / tablet landscape: horizontal top bar */
@media(min-width:768px){
  #sitenav{top:0;left:0;right:0;flex-direction:row;height:64px;align-items:stretch}
  .nav-brand{height:64px}
  .nav-tabs{flex-direction:row}
  .nav-tab{flex:1;padding:0 6px}
  .nav-icon{font-size:17px}
  .nav-lbl{font-size:10px}
  .nav-tab.active::after{bottom:0;left:0;right:0;height:3px}
  body{padding-top:0;padding-left:0}
}
/* 2 — Mobile portrait: brand strip + scrollable horizontal tab row */
@media(max-width:767px) and (orientation:portrait){
  #sitenav{top:0;left:0;right:0;flex-direction:column;height:auto}
  .nav-brand{height:44px;flex-direction:row;gap:10px;align-items:center;font-size:13px;border-right:none;border-bottom:1px solid rgba(255,255,255,.07)}
  .nav-brand small{display:inline}
  .nav-tabs{flex-direction:row;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;height:52px;flex:none}
  .nav-tabs::-webkit-scrollbar{display:none}
  .nav-tab{flex:0 0 auto;min-width:66px;height:52px;padding:0 4px}
  .nav-icon{font-size:19px}
  .nav-lbl{font-size:8px}
  .nav-tab.active::after{bottom:0;left:0;right:0;height:3px}
  body{padding-top:0;padding-left:0}
}
/* 3 — Mobile landscape: vertical tabs on left */
@media(max-width:932px) and (orientation:landscape) and (max-height:520px){
  #sitenav{position:fixed;top:0;left:0;bottom:0;flex-direction:column;width:62px;height:100vh;height:100dvh;overflow-y:auto;scrollbar-width:none}
  #sitenav::-webkit-scrollbar{display:none}
  .nav-brand{display:none}
  .nav-tabs{flex-direction:column;flex:1;width:62px}
  .nav-tab{flex:1;min-height:50px;width:62px;padding:4px 0;border-left:3px solid transparent}
  .nav-tab.active::after{display:none}
  .nav-tab.active{border-left-color:var(--acc);background:rgba(192,136,42,.1)}
  .nav-icon{font-size:18px}
  .nav-lbl{font-size:7.5px;line-height:1.2;text-align:center;padding:0 2px}
  body{padding-top:0;padding-left:62px}
}

/* ── LAYOUT ─────────────────────────────────────── */
@media(min-width:768px){.page{padding:32px 24px 64px;max-width:1100px;margin:0 auto}}
@media(max-width:767px){.page{padding:16px 20px 48px;max-width:1100px;margin:0 auto}}
.page-wide{max-width:1200px}
.page-hd{text-align:center;margin-bottom:18px}

/* Layout B (Timeline-Centric) header treatment, applied to every page via
   data-layout on <body> -- matches the small circular accent used on the
   Layout B homepage, so the chosen layout is visible site-wide, not just
   on the homepage. Layout A (default) is unaffected by these rules. */
[data-layout="B"] .page-hd{position:relative;padding-top:22px}
[data-layout="B"] .page-hd::before{content:'';display:block;width:44px;height:44px;border-radius:50%;border:3px solid var(--acc);margin:0 auto 14px;background:var(--bg2)}
[data-layout="B"] .eyebrow{letter-spacing:4px}
[data-layout="B"] .sec-title{font-style:italic}

/* ── BUTTONS ────────────────────────────────────── */
.btn{display:inline-block;padding:12px 28px;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;border-radius:3px;cursor:pointer;transition:all .2s;border:2px solid transparent;font-family:'Lato',sans-serif;text-decoration:none}
.btn-p{background:var(--btn);color:var(--btn-tx);border-color:var(--btn)}.btn-p:hover{opacity:.85}
.btn-o{background:transparent;color:var(--btn);border-color:var(--btn)}.btn-o:hover{background:var(--btn);color:var(--btn-tx)}
.btn-g{background:var(--acc);color:#fff;border-color:var(--acc)}.btn-g:hover{opacity:.88}
.btn-wa{background:#25D366;color:#fff;border-color:#25D366}.btn-wa:hover{opacity:.88}
.btn-block{width:100%;display:block;text-align:center}

/* ── FORMS ──────────────────────────────────────── */
.fg{margin-bottom:20px}
.fl{display:block;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--tx2);margin-bottom:6px}
.fc{width:100%;padding:10px 14px;background:var(--bg-card);border:1px solid var(--bd2);border-radius:3px;font-size:14px;color:var(--tx);transition:border-color .2s;-webkit-appearance:none}
.fc::placeholder{color:var(--tx2);opacity:1}
.fc option{background:var(--bg-card);color:var(--tx)}
.fc:focus{outline:none;border-color:var(--acc)}
.fr2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.radio-row{display:flex;gap:16px;flex-wrap:wrap}
.radio-opt{display:flex;align-items:center;gap:7px;font-size:14px;cursor:pointer;color:var(--tx)}
.radio-opt input{accent-color:var(--acc);width:16px;height:16px}
.form-card{background:var(--bg-card);border:1px solid var(--bd);border-radius:6px;padding:36px}
.form-ok{background:var(--bg2);border:1px solid var(--acc);border-radius:6px;padding:28px;text-align:center}
.form-ok h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;color:var(--acc);margin-bottom:8px}
.form-ok p{font-size:14px;color:var(--tx2);font-weight:300}
@media(max-width:540px){.fr2{grid-template-columns:1fr}.form-card{padding:22px 16px}}

/* ── CARDS ──────────────────────────────────────── */
.card{background:var(--bg-card);border:1px solid var(--bd);border-radius:6px;padding:24px}
.dark-card{background:var(--dark);color:var(--dark-tx);border:1px solid var(--acc);border-radius:6px;padding:28px 22px}
.dark-card-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--acc);margin-bottom:8px;font-weight:700}
.dark-card-date{font-family:'Cormorant Garamond',Georgia,serif;font-size:21px;font-weight:600;color:var(--dark-tx);margin-bottom:8px}
.dark-card-detail{font-size:13px;font-weight:300;line-height:1.7;color:var(--dark-mu)}

/* ── TIMETABLE ──────────────────────────────────── */
.timetable{background:var(--bg-card);border:1px solid var(--bd);border-radius:6px;overflow:hidden}
.tt-head{background:var(--dark);padding:13px 22px}
.tt-head h3{font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--acc);font-family:'Lato',sans-serif}
.tt-row{display:grid;grid-template-columns:88px 1fr;gap:14px;padding:13px 22px;border-bottom:1px solid var(--bd);align-items:start}
.tt-row:last-child{border-bottom:none}
.tt-time{font-family:'Cormorant Garamond',Georgia,serif;font-size:16px;font-style:italic;font-weight:600;color:var(--acc)}
.tt-desc{font-size:14px;color:var(--tx);line-height:1.5}
.tt-desc strong{color:var(--h)}
@media(max-width:480px){.tt-row{grid-template-columns:74px 1fr;gap:10px;padding:11px 14px}.tt-head{padding:11px 14px}}

/* ── HOME HERO ──────────────────────────────────── */
.hero{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:center;padding:52px 24px;max-width:1200px;margin:0 auto}
.hero-frame{position:relative;width:300px;height:360px;margin:0 auto}
.hero-frame-bg{position:absolute;inset:0;border:2px solid var(--acc);border-radius:6px;transform:rotate(-2.5deg);opacity:.32}
.hero-img,.hero-ph{width:100%;height:100%;border-radius:5px;border:3px solid var(--acc);position:relative;z-index:1}
.hero-img{object-fit:cover;object-position:top;display:block}
.hero-ph{background:var(--bg2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--tx3)}
.hero-ph svg{opacity:.22;width:68px;height:68px}
.hero-ph p{font-size:12px;text-align:center;padding:0 20px;line-height:1.5}
.hero-cross{position:absolute;top:-16px;right:-12px;font-size:28px;color:var(--acc);z-index:2}
.hero-eyebrow{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--acc);margin-bottom:14px}
.hero-name{font-size:clamp(34px,5vw,56px);font-weight:700;color:var(--h);line-height:1.08;margin-bottom:8px}
.hero-dates{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:21px;color:var(--acc);margin-bottom:4px}
.hero-age{font-size:13px;color:var(--tx3);font-weight:300;margin-bottom:18px}
.hero-tagline{font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;font-style:italic;color:var(--tx2);border-left:3px solid var(--acc);padding-left:16px;margin-bottom:28px;line-height:1.5}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:28px}
.hero-pills{display:flex;flex-direction:column;gap:7px}
.hero-pill{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--tx2);line-height:1.4}
.hero-dot{width:6px;height:6px;background:var(--acc);border-radius:50%;flex-shrink:0;margin-top:5px}
.hero-pill strong{color:var(--h)}
@media(max-width:820px){.hero{grid-template-columns:1fr;gap:36px;text-align:center;padding:40px 20px}.hero-tagline{text-align:left}.hero-btns{justify-content:center}.hero-pills{align-items:flex-start;margin:0 auto}}

/* ── HOME LAYOUT C: FULL-BLEED PORTRAIT ─────────── */
.layout-c-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:min(780px,calc(100svh - 64px));overflow:hidden;background:var(--dark);padding:56px 7vw}
.layout-c-portrait,.layout-c-placeholder{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:center 22%}
.layout-c-placeholder{display:flex;align-items:center;justify-content:center;color:var(--dark-tx);opacity:.2}
.layout-c-placeholder svg{width:clamp(180px,28vw,360px);height:auto}
.layout-c-scrim{position:absolute;inset:0;z-index:1;background:rgba(8,10,12,.62)}
.layout-c-content{position:relative;z-index:2;width:min(100%,1080px);margin:0 auto;color:var(--dark-tx);padding:0 0 20px}
.layout-c-eyebrow{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--dark-tx);margin-bottom:12px}
.layout-c-content h1{font-size:56px;line-height:1.02;color:var(--dark-tx);margin-bottom:12px}
.layout-c-dates{font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;font-style:italic;color:var(--dark-tx);margin-bottom:3px}
.layout-c-age{font-size:13px;color:var(--dark-mu);margin-bottom:16px}
.layout-c-tagline{font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;font-style:italic;color:var(--dark-tx);margin-bottom:22px}
.layout-c-actions{display:flex;gap:10px;flex-wrap:wrap}
.layout-c-actions .btn-p{background:var(--acc);border-color:var(--acc);color:#20170D}
.layout-c-actions .btn-o{color:var(--dark-tx);border-color:var(--dark-tx)}
.layout-c-services{background:var(--bg);padding:40px 24px 48px}
.layout-c-services-inner{max-width:1100px;margin:0 auto}
.layout-c-services-inner h2{font-size:30px;margin-bottom:18px}
.layout-c-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.layout-c-service{background:var(--bg-card);border:1px solid var(--bd);border-radius:6px;padding:20px}
.layout-c-service h3{font-size:19px;margin-bottom:8px}
.layout-c-service p{font-size:13px;color:var(--tx2);line-height:1.6}
@media(max-width:600px){.layout-c-hero{min-height:min(720px,calc(100svh - 96px));padding:36px 22px}.layout-c-content h1{font-size:40px}.layout-c-actions{align-items:stretch}.layout-c-actions .btn{width:100%;text-align:center}.layout-c-services{padding:32px 20px 40px}}

/* ── HOME LAYOUT D: CARD DASHBOARD ───────────────── */
.layout-d{max-width:1200px;margin:0 auto;padding:42px 24px 56px}
.layout-d-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.layout-d-heading h1{font-size:32px;margin-top:3px}
.layout-d-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.layout-d-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;min-height:240px;padding:22px;background:var(--bg-card);border:1px solid var(--bd);border-radius:6px}
.layout-d-profile{flex-direction:row;align-items:center;gap:16px}
.layout-d-portrait,.layout-d-portrait-ph{width:96px;height:116px;flex:0 0 96px;object-fit:cover;object-position:top;border-radius:4px;border:1px solid var(--bd)}
.layout-d-portrait-ph{display:flex;align-items:center;justify-content:center;background:var(--bg2);color:var(--tx3)}
.layout-d-portrait-ph svg{width:68px;height:auto}
.layout-d-kicker{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--acc);margin-bottom:8px}
.layout-d-card h2{font-size:21px;margin-bottom:8px}
.layout-d-date{font-family:'Cormorant Garamond',Georgia,serif;font-size:16px;font-style:italic;color:var(--acc);margin-bottom:5px}
.layout-d-copy{font-size:13px;color:var(--tx2);line-height:1.6;margin-bottom:10px}
.layout-d-icon{font-size:23px;line-height:1;margin-bottom:14px}
.layout-d-link{font-size:12px;font-weight:700;color:var(--acc);margin-top:auto;padding-top:10px}
.layout-d-action-links{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto}
@media(max-width:600px){.layout-d{padding:28px 18px 40px}.layout-d-heading{align-items:flex-start;flex-direction:column}.layout-d-heading h1{font-size:28px}.layout-d-card{min-height:210px}.layout-d-profile{align-items:flex-start}.layout-d-action-links .btn{flex:1;text-align:center}}

/* ── QUICK LINKS ────────────────────────────────── */
.ql-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:36px}
.ql-card{background:var(--bg-card);border:1px solid var(--bd);border-radius:8px;padding:20px 16px;text-decoration:none;transition:border-color .2s,transform .15s;display:block}
.ql-card:hover{border-color:var(--acc);transform:translateY(-2px)}
.ql-icon{font-size:26px;margin-bottom:8px}
.ql-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:18px;color:var(--h);margin-bottom:4px}
.ql-sub{font-size:12px;color:var(--tx3);font-weight:300}

/* ── EVENTS ─────────────────────────────────────── */
.events-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px;margin-bottom:36px}
.map-wrap{border-radius:6px;overflow:hidden;border:2px solid var(--acc);height:300px;margin:28px 0 20px}
.map-wrap iframe{width:100%;height:100%;border:none;display:block}
.share-row{display:flex;gap:12px;flex-wrap:wrap}

/* ── RSVP ───────────────────────────────────────── */
.rsvp-wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:start}
.phone-panel{background:var(--dark);color:var(--dark-tx);border-radius:6px;padding:28px 22px}
.phone-panel h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;color:var(--acc);margin-bottom:8px}
.phone-panel>p{font-size:13px;color:var(--dark-mu);margin-bottom:20px;font-weight:300;line-height:1.65}
.ph-card{background:rgba(255,255,255,.07);border:1px solid rgba(192,136,42,.28);border-radius:4px;padding:12px 14px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;transition:border-color .2s}
.ph-card.hi{border-color:var(--acc)}
.ph-region{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--dark-tx);margin-bottom:3px;font-weight:700}
.ph-num{font-family:'Cormorant Garamond',Georgia,serif;font-size:17px;font-weight:600;color:var(--dark-tx)}
.ph-flag{font-size:20px}
.ph-icons{margin-top:4px}
.ph-icons a:hover{opacity:.75}

/* Compact icon-only contact rows -- adapts to any screen width */
.ph-compact{display:flex;align-items:center;gap:10px;padding:10px 4px;flex-wrap:wrap}
.ph-flag-sm{font-size:20px;color:var(--dark-tx);flex-shrink:0;width:26px;text-align:center}
.ph-num-sm{font-family:'Cormorant Garamond',Georgia,serif;font-size:15px;color:var(--dark-tx);flex:1;min-width:90px}
.ph-icons-sm{display:flex;gap:6px;flex-shrink:0}
.ph-icon-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08);font-size:16px;text-decoration:none;transition:background .15s,transform .15s}
.ph-icon-btn:hover{background:rgba(192,136,42,.25);transform:scale(1.08)}
@media(max-width:380px){
  .ph-num-sm{font-size:13px;min-width:70px}
  .ph-icon-btn{width:30px;height:30px;font-size:14px}
}
@media(max-width:820px){.rsvp-wrap{grid-template-columns:1fr}}

/* ── TRIBUTES ───────────────────────────────────── */
/* Two-column tribute page -- uses the full width on wide screens instead of
   stacking everything in one narrow centred column with wasted side margins */
.trib-layout{display:grid;grid-template-columns:1fr;gap:32px}
.trib-sidebar{width:100%}
.trib-main{width:100%}
@media(min-width:960px){
  .trib-layout{grid-template-columns:380px 1fr;align-items:start}
  .trib-sidebar{position:sticky;top:80px}
}
.trib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.trib-card{background:var(--bg-card);border:1px solid var(--bd);border-radius:6px;padding:24px;position:relative}
.trib-card::before{content:'"';font-family:'Cormorant Garamond',Georgia,serif;font-size:90px;color:var(--acc);opacity:.1;position:absolute;top:-12px;left:14px;line-height:1}
.trib-card.family-only{border-left:4px solid var(--acc)}
.trib-family-badge{display:inline-block;margin-bottom:10px;padding:3px 9px;border:1px solid var(--acc);border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--h)}
.trib-msg{font-family:'Cormorant Garamond',Georgia,serif;font-size:17px;font-style:italic;color:var(--tx);line-height:1.65;margin-bottom:14px;position:relative;z-index:1}
.trib-name{font-size:13px;font-weight:700;color:var(--h)}
.trib-loc{font-size:12px;color:var(--tx3);font-weight:300}
.trib-date{font-size:11px;color:var(--acc);margin-top:4px}
.trib-empty{grid-column:1/-1;text-align:center;padding:48px 20px;color:var(--tx3)}
.amend-box{background:var(--bg2);border:1px solid var(--bd);border-radius:6px;padding:22px;margin-bottom:28px}
.amend-box h3{font-size:16px;color:var(--h);margin-bottom:6px}
.amend-box p{font-size:13px;color:var(--tx2);margin-bottom:14px;font-weight:300}
.amend-row{display:flex;gap:10px;flex-wrap:wrap}
.amend-row .fc{flex:1;min-width:180px}

/* ── BIOGRAPHY ──────────────────────────────────── */
.bio-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.bio-body h3{font-size:21px;color:var(--acc);margin:26px 0 10px}.bio-body h3:first-child{margin-top:0}
.bio-body p{font-size:15px;line-height:1.82;color:var(--tx2);margin-bottom:12px}
.bio-body ul{list-style:none;margin-top:12px}
.bio-body ul li{padding:8px 0;border-bottom:1px solid var(--bd);font-size:14px;color:var(--tx2);display:flex;justify-content:space-between}
.bio-body ul li:last-child{border-bottom:none}
.bio-body ul li span{color:var(--tx3);font-size:12px}
.epitaph{background:var(--dark);border:1px solid var(--acc);border-radius:6px;padding:40px 26px;text-align:center;position:sticky;top:80px}
.epi-cross{font-size:30px;color:var(--acc);margin-bottom:16px}
.epi-lbl{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--acc);margin-bottom:12px;font-family:'Lato',sans-serif;font-weight:700}
.epi-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:25px;font-weight:700;color:var(--dark-tx);line-height:1.2;margin-bottom:8px}
.epi-years{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:19px;color:var(--acc);margin-bottom:20px}
.epi-body{font-size:14px;color:var(--dark-mu);font-weight:300;line-height:1.8;margin-bottom:20px}
.epi-close{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:18px;color:var(--acc)}
@media(max-width:820px){.bio-grid{grid-template-columns:1fr}.epitaph{position:static}}

/* ── GALLERY ─────────────────────────────────────── */
.gal-cats{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:26px}
.gal-cat{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:6px 15px;border-radius:20px;border:1px solid var(--bd);color:var(--tx2);cursor:pointer;transition:all .2s;background:transparent}
.gal-cat.on,.gal-cat:hover{background:var(--acc);color:#fff;border-color:var(--acc)}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.gal-item{aspect-ratio:4/3;background:var(--bg2);border-radius:4px;overflow:hidden;border:1px solid var(--bd);cursor:pointer}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s;display:block}
.gal-item:hover img{transform:scale(1.05)}
.gal-ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--tx3);font-size:12px;text-align:center;padding:12px}
.gal-ph-icon{font-size:28px;opacity:.3}
.lbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:900;align-items:center;justify-content:center}
.lbox.open{display:flex}
.lbox img{max-width:92vw;max-height:90vh;object-fit:contain;border:2px solid var(--acc);border-radius:4px}
.lbox-x{position:absolute;top:18px;right:22px;font-size:30px;color:#fff;cursor:pointer;background:none;border:none;line-height:1;opacity:.75}

/* ── PROGRAMME ──────────────────────────────────── */
.prog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:36px}

/* CSS-only programme tabs -- no JavaScript needed.
   Above 700px: radios/tabs stay hidden, both cards always show side by side.
   Below 700px: tabs become visible and swap which single card is shown. */
.prog-tab-radio{position:absolute;opacity:0;pointer-events:none}

/* Hymn language columns -- separated English/Isoko, side by side on wide screens */
.hymn-lang-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.hymn-lang-col{background:var(--bg);border:1px solid var(--bd);border-radius:6px;padding:14px 16px}
.hymn-lang-label{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--acc);margin-bottom:8px}
.hymn-lyrics{font-size:13px;color:var(--tx2);line-height:1.85;white-space:pre-line}
.oos-en{color:var(--tx2)}
.oos-iso{color:var(--tx3);font-style:italic;font-size:12px}

.ministers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.minister-item{background:var(--bg);border:1px solid var(--bd);border-radius:5px;padding:9px 12px;font-size:13px;color:var(--tx2);text-align:center}

/* Hymn language toggle -- CSS-only, no JS. Below 600px, one language shows
   at a time via the two radio inputs placed before the hymn blocks. Above
   600px both columns show side by side as normal, tabs stay hidden. */
.hymn-lang-tabs{display:none}
@media(max-width:600px){
  .hymn-lang-grid{grid-template-columns:1fr}
  .hymn-lang-tabs{display:flex;gap:8px;margin-bottom:18px}
  .hymn-lang-tabs .prog-tab-label{flex:1}
  #hymnLangEn:checked ~ .hymn-lang-tabs label[for="hymnLangEn"],
  #hymnLangIso:checked ~ .hymn-lang-tabs label[for="hymnLangIso"]{background:var(--acc);color:#fff;border-color:var(--acc)}
  #hymnLangEn:checked ~ .hymn-block .hymn-lang-col:nth-child(2){display:none}
  #hymnLangIso:checked ~ .hymn-block .hymn-lang-col:nth-child(1){display:none}

  #recepLangEn:checked ~ .hymn-block-recep .hymn-lang-col:nth-child(2){display:none}
  #recepLangIso:checked ~ .hymn-block-recep .hymn-lang-col:nth-child(1){display:none}
  #intercLangEn:checked ~ .hymn-block-interc .hymn-lang-col:nth-child(2){display:none}
  #intercLangIso:checked ~ .hymn-block-interc .hymn-lang-col:nth-child(1){display:none}
  #commRiteLangEn:checked ~ .hymn-block-commrite .hymn-lang-col:nth-child(2){display:none}
  #commRiteLangIso:checked ~ .hymn-block-commrite .hymn-lang-col:nth-child(1){display:none}
  #receptionLangEn:checked ~ .hymn-block-reception .hymn-lang-col:nth-child(2){display:none}
  #receptionLangIso:checked ~ .hymn-block-reception .hymn-lang-col:nth-child(1){display:none}
  #procHymn295LangEn:checked ~ .hymn-block-prochymn295 .hymn-lang-col:nth-child(2){display:none}
  #procHymn295LangIso:checked ~ .hymn-block-prochymn295 .hymn-lang-col:nth-child(1){display:none}
  #preparationLangEn:checked ~ .hymn-block-preparation .hymn-lang-col:nth-child(2){display:none}
  #preparationLangIso:checked ~ .hymn-block-preparation .hymn-lang-col:nth-child(1){display:none}
  #hymn167LangEn:checked ~ .hymn-block-hymn167 .hymn-lang-col:nth-child(2){display:none}
  #hymn167LangIso:checked ~ .hymn-block-hymn167 .hymn-lang-col:nth-child(1){display:none}
  #psalm90LangEn:checked ~ .hymn-block-psalm90 .hymn-lang-col:nth-child(2){display:none}
  #psalm90LangIso:checked ~ .hymn-block-psalm90 .hymn-lang-col:nth-child(1){display:none}
  #epistleLangEn:checked ~ .hymn-block-epistle .hymn-lang-col:nth-child(2){display:none}
  #epistleLangIso:checked ~ .hymn-block-epistle .hymn-lang-col:nth-child(1){display:none}
  #gradualHymn280LangEn:checked ~ .hymn-block-gradualhymn280 .hymn-lang-col:nth-child(2){display:none}
  #gradualHymn280LangIso:checked ~ .hymn-block-gradualhymn280 .hymn-lang-col:nth-child(1){display:none}
  #gospelLangEn:checked ~ .hymn-block-gospel .hymn-lang-col:nth-child(2){display:none}
  #gospelLangIso:checked ~ .hymn-block-gospel .hymn-lang-col:nth-child(1){display:none}
  #hymnSermonLangEn:checked ~ .hymn-block-hymnsermon .hymn-lang-col:nth-child(2){display:none}
  #hymnSermonLangIso:checked ~ .hymn-block-hymnsermon .hymn-lang-col:nth-child(1){display:none}
  #concludingPrayerLangEn:checked ~ .hymn-block-concludingprayer .hymn-lang-col:nth-child(2){display:none}
  #concludingPrayerLangIso:checked ~ .hymn-block-concludingprayer .hymn-lang-col:nth-child(1){display:none}
  #specialAnthemLangEn:checked ~ .hymn-block-specialanthem .hymn-lang-col:nth-child(2){display:none}
  #specialAnthemLangIso:checked ~ .hymn-block-specialanthem .hymn-lang-col:nth-child(1){display:none}
  #properPrefaceLangEn:checked ~ .hymn-block-properpreface .hymn-lang-col:nth-child(2){display:none}
  #properPrefaceLangIso:checked ~ .hymn-block-properpreface .hymn-lang-col:nth-child(1){display:none}
  #sanctusBenedictusLangEn:checked ~ .hymn-block-sanctusbenedictus .hymn-lang-col:nth-child(2){display:none}
  #sanctusBenedictusLangIso:checked ~ .hymn-block-sanctusbenedictus .hymn-lang-col:nth-child(1){display:none}
  #breakingBreadLangEn:checked ~ .hymn-block-breakingbread .hymn-lang-col:nth-child(2){display:none}
  #breakingBreadLangIso:checked ~ .hymn-block-breakingbread .hymn-lang-col:nth-child(1){display:none}
  #humbleAccessLangEn:checked ~ .hymn-block-humbleaccess .hymn-lang-col:nth-child(2){display:none}
  #humbleAccessLangIso:checked ~ .hymn-block-humbleaccess .hymn-lang-col:nth-child(1){display:none}
  #commSentencesLangEn:checked ~ .hymn-block-commsentences .hymn-lang-col:nth-child(2){display:none}
  #commSentencesLangIso:checked ~ .hymn-block-commsentences .hymn-lang-col:nth-child(1){display:none}
  #commHymnsLangEn:checked ~ .hymn-block-commhymns .hymn-lang-col:nth-child(2){display:none}
  #commHymnsLangIso:checked ~ .hymn-block-commhymns .hymn-lang-col:nth-child(1){display:none}
  #postCommunionLangEn:checked ~ .hymn-block-postcommunion .hymn-lang-col:nth-child(2){display:none}
  #postCommunionLangIso:checked ~ .hymn-block-postcommunion .hymn-lang-col:nth-child(1){display:none}
  #commendationLangEn:checked ~ .hymn-block-commendation .hymn-lang-col:nth-child(2){display:none}
  #commendationLangIso:checked ~ .hymn-block-commendation .hymn-lang-col:nth-child(1){display:none}
  #noticesLangEn:checked ~ .hymn-block-notices .hymn-lang-col:nth-child(2){display:none}
  #noticesLangIso:checked ~ .hymn-block-notices .hymn-lang-col:nth-child(1){display:none}
  #gravesideHymnLangEn:checked ~ .hymn-block-gravesidehymn .hymn-lang-col:nth-child(2){display:none}
  #gravesideHymnLangIso:checked ~ .hymn-block-gravesidehymn .hymn-lang-col:nth-child(1){display:none}
  #consecrationLangEn:checked ~ .hymn-block-consecration .hymn-lang-col:nth-child(2){display:none}
  #consecrationLangIso:checked ~ .hymn-block-consecration .hymn-lang-col:nth-child(1){display:none}
  #lordsPrayerBurialLangEn:checked ~ .hymn-block-lordsprayerburial .hymn-lang-col:nth-child(2){display:none}
  #lordsPrayerBurialLangIso:checked ~ .hymn-block-lordsprayerburial .hymn-lang-col:nth-child(1){display:none}
  #prayersLangEn:checked ~ .hymn-block-prayers .hymn-lang-col:nth-child(2){display:none}
  #prayersLangIso:checked ~ .hymn-block-prayers .hymn-lang-col:nth-child(1){display:none}
  #benediction2LangEn:checked ~ .hymn-block-benediction2 .hymn-lang-col:nth-child(2){display:none}
  #benediction2LangIso:checked ~ .hymn-block-benediction2 .hymn-lang-col:nth-child(1){display:none}
}
.prog-tabs{display:none}
@media(max-width:700px){
  .prog-tabs{display:flex;gap:8px;margin-bottom:16px}
  .prog-tab-label{flex:1;text-align:center;padding:10px 8px;border:1px solid var(--bd);border-radius:6px;cursor:pointer;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--tx2);transition:all .15s}
  .prog-grid{display:block}
  .prog-card{display:none;margin-bottom:0}
  #progTabSummary:checked ~ .prog-tabs label[for="progTabSummary"],
  #progTabLiturgy:checked ~ .prog-tabs label[for="progTabLiturgy"]{background:var(--acc);color:#fff;border-color:var(--acc)}
  #progTabSummary:checked ~ .prog-grid #progCardSummary{display:block}
  #progTabLiturgy:checked ~ .prog-grid #progCardLiturgy{display:block}
}
.prog-card{background:var(--bg-card);border:1px solid var(--bd);border-radius:6px;padding:28px 22px;text-align:center;transition:border-color .2s}
.prog-card:hover{border-color:var(--acc)}
.prog-icon{font-size:38px;margin-bottom:12px}
.prog-card h3{font-size:20px;color:var(--h);margin-bottom:8px}
.prog-card p{font-size:13px;color:var(--tx2);margin-bottom:18px;font-weight:300;line-height:1.6}

/* ── FOOTER ─────────────────────────────────────── */
footer{background:var(--foot);padding:48px 24px 28px;margin-top:auto}
.foot-in{max-width:1100px;margin:0 auto;text-align:center}
.foot-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;font-weight:600;color:var(--acc);margin-bottom:6px}
.foot-years{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:15px;color:rgba(255,255,255,.55);margin-bottom:4px}
.foot-peace{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:17px;color:var(--acc);margin-bottom:22px}
.foot-links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 18px;margin-bottom:18px}
.foot-links a{font-size:12px;color:rgba(255,255,255,.45);transition:color .2s}
.foot-links a:hover{color:var(--acc)}
.foot-div{height:1px;background:rgba(255,255,255,.08);margin-bottom:14px}
.foot-copy{font-size:11px;color:rgba(255,255,255,.3)}

/* ── TOAST ──────────────────────────────────────── */
.support-search{max-width:640px;margin:0 auto 26px}
.support-count{font-size:12px;color:var(--tx2);margin-top:7px}
.support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px}
.support-person{display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-width:0;padding:22px;background:var(--bg-card);border:1px solid var(--bd);border-radius:6px}
.support-person-label{display:block;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--tx2);margin-bottom:5px}
.support-person h2{font-size:22px;margin-bottom:3px}
.support-relationship{font-size:13px;color:var(--tx2);margin-bottom:8px}
.support-description{font-size:14px;color:var(--tx2);line-height:1.65}
.support-person-action{border-top:1px solid var(--bd);padding-top:14px}
.support-payment-form{display:grid;gap:14px;max-width:680px;margin:0 auto;padding:22px;background:var(--bg-card);border:1px solid var(--bd);border-radius:6px}
.support-target-fieldset{min-width:0;border:0}
.support-target-fieldset legend{margin-bottom:8px}
.support-target-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.support-target-option{display:flex;align-items:center;gap:9px;min-height:46px;padding:10px 12px;border:1px solid var(--bd);border-radius:4px;background:var(--bg);color:var(--tx);font-size:14px;cursor:pointer}
.support-target-option:has(input:checked){border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc)}
.support-target-option input{accent-color:var(--acc)}
.support-payment-form select{width:100%}
.support-amount-block{display:grid;gap:8px}
.support-payment-controls{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:8px}
.support-payment-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.support-payment-actions .btn{width:100%;min-height:44px;padding:10px 12px;font-size:13px}
.support-payment-actions .btn:disabled{opacity:.45;cursor:not-allowed}
.support-provider-note{font-size:11px;color:var(--tx2);line-height:1.5}
.support-attempt-report{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.support-report-btn{padding:7px 10px;border:1px solid var(--bd);border-radius:4px;background:transparent;color:var(--tx);font:inherit;font-size:12px;cursor:pointer}
.support-report-btn:hover{border-color:var(--acc)}
.support-pending{font-size:13px;color:var(--tx2)}
.support-disclosure{max-width:760px;margin:24px auto 0;text-align:center;font-size:12px;color:var(--tx2);line-height:1.6}
.support-empty{grid-column:1/-1;padding:24px;text-align:center;color:var(--tx2);background:var(--bg-card);border:1px solid var(--bd);border-radius:6px}
.support-empty a{font-weight:700;text-decoration:underline}
@media(max-width:480px){.support-page{padding-top:28px!important}.support-person{padding:18px}}
@media(max-width:480px){.support-payment-form{padding:18px}.support-target-options{grid-template-columns:1fr}.support-payment-controls{grid-template-columns:minmax(0,1fr) 96px}}
.site-search-page{max-width:900px}
.site-search-form{max-width:680px;margin:0 auto 10px}
.site-search-controls{display:flex;align-items:center;gap:10px}
.site-search-controls .fc{min-width:0;flex:1}
.site-search-status{max-width:680px;margin:0 auto 12px;font-size:13px;color:var(--tx2)}
.site-search-results{display:grid;gap:10px;max-width:680px;margin:0 auto}
.site-search-result{display:flex;flex-direction:column;gap:3px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--bd);border-radius:5px;color:var(--tx);text-decoration:none}
.site-search-result:hover{border-color:var(--acc)}
.site-search-result-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;font-weight:600;color:var(--h)}
.site-search-result-description{font-size:13px;color:var(--tx2)}
@media(max-width:520px){.site-search-page{padding-top:28px!important}.site-search-controls{align-items:stretch;flex-direction:column}.site-search-controls .btn{width:100%}}
.toast{position:fixed;bottom:20px;right:20px;background:var(--dark);color:var(--acc);padding:12px 18px;border-radius:5px;border:1px solid var(--acc);font-size:13px;z-index:9999;transform:translateY(60px);opacity:0;transition:all .3s;pointer-events:none;max-width:280px}
.toast.show{transform:translateY(0);opacity:1}
