:root{
  --ink:#04060f;
  --parchment:#e8efff;
  --parchment-2:#c5d2ee;
  --gold:#7fa8d9;
  --gold-bright:#a8c8ee;
  --gold-deep:#2c4877;
  --crimson:#1e3a7a;
  --crimson-deep:#0a1b46;
  --emerald:#1a3a6e;
  --indigo:#0d1f4a;
  --ash:#0e1830;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  background:var(--ink);
  color:var(--parchment);
  font-family:'Cormorant Garamond', serif;
  font-size:18px;
  line-height:1.7;
  overflow-x:hidden;
  position:relative;
}

/* Grain overlay across the whole page */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:200;
  opacity:.18;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.5  0 0 0 0 0.65  0 0 0 0 0.9  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

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

h1,h2,h3,h4{font-family:'Cinzel', serif; font-weight:500; letter-spacing:.04em}
.geez{font-family:'Noto Sans Ethiopic', serif}

/* ---------------- NAV ---------------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 48px;
  backdrop-filter:blur(18px);
  background:linear-gradient(to bottom, rgba(4,6,15,.85), rgba(4,6,15,.4));
  border-bottom:1px solid rgba(127,168,217,.18);
}
nav .brand{
  display:flex;align-items:center;gap:14px;
  font-family:'Cinzel', serif;
  color:var(--gold-bright);
  letter-spacing:.18em;
  font-size:14px;
  text-transform:uppercase;
  text-decoration:none;
}
nav .brand-mark{width:32px;height:32px}
nav ul{display:flex;gap:38px;list-style:none}
nav a{
  color:var(--parchment);
  text-decoration:none;
  font-family:'Cinzel', serif;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  position:relative;
  padding:6px 0;
  transition:color .3s;
}
nav a:not(.brand)::after{
  content:"";position:absolute;left:50%;bottom:0;width:0;height:1px;
  background:var(--gold-bright);transition:all .4s ease;transform:translateX(-50%);
}
nav a:hover{color:var(--gold-bright)}
nav a:not(.brand):hover::after{width:100%}
nav a.active{color:var(--gold-bright)}
nav a:not(.brand).active::after{width:100%}

@media(max-width:820px){
  nav{padding:16px 22px}
  nav ul{display:none}
}

/* ---------------- HERO ---------------- */
.hero{
  min-height:100vh;
  position:relative;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(127,168,217,.22), transparent 55%),
    radial-gradient(ellipse at 80% 80%, rgba(30,58,122,.45), transparent 60%),
    radial-gradient(ellipse at 10% 90%, rgba(13,31,74,.5), transparent 60%),
    linear-gradient(180deg, #04060f 0%, #0a1230 60%, #04060f 100%);
}

/* Heavenly light from above — bright bloom at the cloud break, warm rays piercing down */
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    /* The brightest core — like a sun breaking through a parting in the clouds */
    radial-gradient(circle 200px at 50% -30px,
      rgba(255,253,245,.65),
      rgba(255,245,220,.35) 35%,
      rgba(240,248,255,.18) 65%,
      transparent 85%),
    /* Wider warm halo around the source */
    radial-gradient(ellipse 70% 50% at 50% -10%,
      rgba(230,240,255,.42),
      rgba(168,200,238,.18) 45%,
      transparent 80%),
    /* Piercing rays — brighter, warmer, more numerous */
    conic-gradient(from 88deg at 50% -12%,
      transparent 0deg, rgba(255,250,235,.22) 4deg, transparent 12deg,
      transparent 16deg, rgba(240,248,255,.28) 24deg, transparent 34deg,
      transparent 38deg, rgba(255,250,235,.18) 46deg, transparent 56deg,
      transparent 62deg, rgba(240,248,255,.24) 70deg, transparent 82deg,
      transparent 98deg, rgba(240,248,255,.24) 110deg, transparent 122deg,
      transparent 126deg, rgba(255,250,235,.18) 134deg, transparent 144deg,
      transparent 148deg, rgba(240,248,255,.28) 156deg, transparent 166deg,
      transparent 170deg, rgba(255,250,235,.22) 178deg, transparent 186deg);
  opacity:.92;
  animation:heavenlyBreathe 9s ease-in-out infinite;
}

/* Second light layer — soft golden dust shimmer, slower */
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle 120px at 50% -10px,
      rgba(255,250,220,.5),
      transparent 80%),
    radial-gradient(ellipse 40% 25% at 50% 5%,
      rgba(255,245,210,.15),
      transparent 75%);
  mix-blend-mode:screen;
  animation:heavenlyShimmer 6s ease-in-out infinite;
}

@keyframes heavenlyBreathe{
  0%,100%{opacity:.78}
  50%{opacity:1}
}
@keyframes heavenlyShimmer{
  0%,100%{opacity:.6;transform:translateY(0)}
  50%{opacity:1;transform:translateY(4px)}
}

.hero-content{
  text-align:center;
  position:relative;z-index:3;
  max-width:1100px;
  padding:0 32px;
}

.ge-tag{
  display:inline-block;
  font-family:'Noto Sans Ethiopic', serif;
  font-size:14px;
  color:var(--gold);
  letter-spacing:.4em;
  margin-bottom:24px;
  opacity:0;
  animation:fadeUp 1.4s .3s ease forwards;
}

.hero h1{
  font-family:'Cinzel', serif;
  font-size:clamp(34px, 8vw, 92px);
  line-height:1;
  color:var(--parchment);
  font-weight:600;
  letter-spacing:.02em;
  margin-bottom:10px;
  white-space:nowrap;
  text-shadow:
    0 0 28px rgba(168,200,238,.4),
    0 0 60px rgba(127,168,217,.2),
    0 6px 14px rgba(0,0,0,.6);
  opacity:0;
  animation:fadeUp 1.4s .9s ease forwards;
}
.hero h1 em,
.hero h1 .accent{
  color:var(--gold-bright);
  font-style:italic;
  font-family:'Cormorant Garamond', serif;
  font-weight:300;
}

/* ---------------- DOVE PERCHED ON HERO LETTER ---------------- */
.hero .first-letter{
  position:relative;
  display:inline-block;
}
.dove-wrap{
  position:absolute;
  left:50%;
  bottom:100%;
  transform:translateX(-70%);
  pointer-events:none;
  z-index:4;
  line-height:0;
}
.dove{
  display:block;
  width:clamp(64px, 8vw, 110px);
  height:auto;
  /* Crop out the wire/cable at the bottom of the photo */
  clip-path:inset(0 0 22% 0);
  /* Soft drop shadow to integrate with the dark hero */
  filter:
    drop-shadow(0 4px 10px rgba(0,0,0,.55))
    drop-shadow(0 0 18px rgba(168,200,238,.3));
  opacity:0;
  transform:translateY(40%);
  transform-origin:center bottom;
  animation:dovePerch 1.8s cubic-bezier(.25,.6,.3,1) 1.2s forwards;
}

/* Settle from slightly above; resting position is translateY(35%) so the
   feet overlap the top of the letter (the dove sits on the letter, not above it) */
@keyframes dovePerch{
  0%   { opacity:0; transform:translateY(calc(44% - 12px)) scale(.94); }
  60%  { opacity:1; }
  100% { opacity:1; transform:translateY(44%) scale(1); }
}

@media (prefers-reduced-motion: reduce){
  .dove{
    animation:none;
    opacity:1;
    transform:translateY(35%);
  }
}

/* Amharic title above the English — polished chrome/cobalt, 3D extrusion, single line */
.hero-geez{
  font-family:'Noto Sans Ethiopic', serif;
  font-size:clamp(28px, 6.5vw, 76px);
  line-height:1.1;
  font-weight:600;
  letter-spacing:.01em;
  margin:0 auto 12px;
  white-space:nowrap;

  /* Shiny white/silver chrome gradient clipped to the glyphs */
  background:linear-gradient(180deg,
    #ffffff 0%,
    #ffffff 38%,
    #e2e8f5 48%,
    #b8c4dc 50%,
    #e2e8f5 52%,
    #ffffff 62%,
    #ffffff 100%);
  background-size:100% 200%;
  background-position:0 0;
  -webkit-background-clip:text;
          background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;

  /* Stacked 3D extrusion in cobalt + soft drop shadow + bright outer glow */
  text-shadow:
    0 1px 0 #6d9adf,
    0 2px 0 #5a87ce,
    0 3px 0 #4a78c4,
    0 4px 0 #3d6ab0,
    0 5px 0 #2c4877,
    0 6px 0 #1c365f,
    0 7px 10px rgba(0,0,0,.6),
    0 0 26px rgba(255,255,255,.55),
    0 0 60px rgba(168,200,238,.3);

  opacity:0;
  animation:fadeUp 1.4s .6s ease forwards, chromeShine 6s ease-in-out 2s infinite;
}

/* Slow shine sweep — gradient drifts to give a subtle reflective shimmer */
@keyframes chromeShine{
  0%,100% { background-position:0 0; }
  50%     { background-position:0 100%; }
}

/* Hero name image — blends with navy background via screen blend and edge feather */
.hero-name{
  display:block;
  max-width:min(900px, 90vw);
  width:100%;
  height:auto;
  margin:0 auto 8px;
  opacity:0;
  animation:fadeUp 1.6s .6s ease forwards;
  mix-blend-mode:screen;
  -webkit-mask-image:radial-gradient(ellipse 75% 90% at 50% 55%, #000 55%, transparent 100%);
          mask-image:radial-gradient(ellipse 75% 90% at 50% 55%, #000 55%, transparent 100%);
  filter:drop-shadow(0 0 40px rgba(127,168,217,.35)) drop-shadow(0 12px 30px rgba(0,0,0,.6));
}

.hero .subtitle{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:clamp(18px, 2vw, 24px);
  color:rgba(245,234,211,.7);
  margin-top:24px;
  letter-spacing:.04em;
  opacity:0;
  animation:fadeUp 1.4s .9s ease forwards;
}

/* Divider with cross */
.hero-divider{
  display:flex;align-items:center;justify-content:center;
  margin:42px auto 36px;
  gap:24px;
  opacity:0;
  animation:fadeUp 1.4s 1.1s ease forwards;
}
.hero-divider .line{
  width:120px;height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}
.hero-divider svg{width:36px;height:36px;color:var(--gold-bright)}

.hero-cta{
  display:inline-flex;align-items:center;gap:14px;
  padding:18px 38px;
  background:transparent;
  color:var(--gold-bright);
  border:1px solid var(--gold);
  font-family:'Cinzel', serif;
  font-size:12px;letter-spacing:.3em;text-transform:uppercase;
  text-decoration:none;
  transition:all .4s ease;
  position:relative;
  overflow:hidden;
  opacity:0;
  animation:fadeUp 1.4s 1.3s ease forwards;
}
.hero-cta::before{
  content:"";position:absolute;inset:0;
  background:var(--gold);
  transform:translateY(101%);
  transition:transform .4s ease;
}
.hero-cta:hover{color:var(--ink)}
.hero-cta:hover::before{transform:translateY(0)}
.hero-cta span{position:relative;z-index:2}

/* Floating ornaments in hero */
.ornament{
  position:absolute;
  color:var(--gold);
  opacity:.25;
  animation:float 12s ease-in-out infinite;
}
.ornament.top-left{top:14%;left:8%;width:90px;animation-delay:0s}
.ornament.top-right{top:18%;right:10%;width:70px;animation-delay:-3s}
.ornament.bottom-left{bottom:14%;left:12%;width:80px;animation-delay:-6s}
.ornament.bottom-right{bottom:18%;right:8%;width:100px;animation-delay:-9s}

@keyframes float{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-22px) rotate(4deg)}
}
@keyframes fadeUp{
  to{opacity:1;transform:translateY(0)}
  from{opacity:0;transform:translateY(30px)}
}

/* Scroll indicator */
.scroll-cue{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);
  color:var(--gold);font-family:'Cinzel',serif;font-size:10px;
  letter-spacing:.4em;text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:14px;
  opacity:.7;
}
.scroll-cue .stem{
  width:1px;height:50px;background:linear-gradient(to bottom, var(--gold), transparent);
  animation:scrollPulse 2.2s ease-in-out infinite;
  transform-origin:top;
}
@keyframes scrollPulse{
  0%,100%{transform:scaleY(.3);opacity:.3}
  50%{transform:scaleY(1);opacity:1}
}

/* ---------------- PAGE HERO (smaller hero for inner pages) ---------------- */
.page-hero{
  min-height:62vh;
  position:relative;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  padding:120px 32px 80px;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(127,168,217,.18), transparent 55%),
    radial-gradient(ellipse at 80% 80%, rgba(30,58,122,.35), transparent 60%),
    linear-gradient(180deg, #04060f 0%, #0a1230 60%, #04060f 100%);
  border-bottom:1px solid rgba(127,168,217,.15);
}
.page-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:conic-gradient(from 90deg at 50% 0%,
    transparent 0deg, rgba(168,200,238,.05) 8deg, transparent 16deg,
    transparent 22deg, rgba(168,200,238,.06) 30deg, transparent 38deg,
    transparent 120deg, rgba(168,200,238,.05) 128deg, transparent 136deg,
    transparent 142deg, rgba(168,200,238,.06) 150deg, transparent 158deg);
  opacity:.7;
}
.page-hero-content{text-align:center;position:relative;z-index:3;max-width:900px}
.page-hero .ge-tag{margin-bottom:18px;animation:fadeUp 1.2s .2s ease forwards}
.page-hero h1{
  font-family:'Cinzel', serif;
  font-size:clamp(40px, 6vw, 78px);
  line-height:1.05;
  color:var(--parchment);
  font-weight:400;
  margin-bottom:14px;
  opacity:0;
  animation:fadeUp 1.2s .4s ease forwards;
}
.page-hero h1 em{
  font-style:italic;
  font-family:'Cormorant Garamond', serif;
  color:var(--gold-bright);
  font-weight:300;
}
.page-hero .subtitle{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:clamp(17px, 1.8vw, 22px);
  color:rgba(245,234,211,.7);
  margin-top:16px;
  letter-spacing:.04em;
  opacity:0;
  animation:fadeUp 1.2s .6s ease forwards;
}
.page-hero .hero-divider{margin:32px auto 0;animation:fadeUp 1.2s .8s ease forwards}

/* ---------------- SECTIONS GENERAL ---------------- */
section{padding:140px 48px;position:relative}
.container{max-width:1280px;margin:0 auto}

.section-label{
  font-family:'Noto Sans Ethiopic', serif;
  font-size:13px;
  color:var(--gold);
  letter-spacing:.3em;
  margin-bottom:18px;
}
.section-title{
  font-size:clamp(36px, 5vw, 68px);
  line-height:1.05;
  margin-bottom:32px;
  color:var(--parchment);
  font-weight:400;
}
.section-title em{
  font-style:italic;
  font-family:'Cormorant Garamond', serif;
  color:var(--gold-bright);
  font-weight:300;
}

/* ---------------- WELCOME (illuminated manuscript) ---------------- */
.welcome{
  background:
    radial-gradient(circle at 80% 50%, rgba(30,58,122,.3), transparent 60%),
    linear-gradient(180deg, #04060f 0%, #0a1230 100%);
  border-top:1px solid rgba(127,168,217,.15);
  border-bottom:1px solid rgba(127,168,217,.15);
}
.welcome-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  align-items:center;
}
@media(max-width:900px){.welcome-grid{grid-template-columns:1fr;gap:60px}}

.welcome-text p{
  margin-bottom:24px;
  color:rgba(245,234,211,.82);
  font-size:19px;
}
.welcome-text p:first-of-type::first-letter{
  font-family:'Cinzel', serif;
  font-size:88px;
  float:left;
  line-height:.85;
  padding:8px 16px 0 0;
  color:var(--gold-bright);
  text-shadow:0 2px 0 var(--gold-deep);
}
.welcome-text .ge-quote{
  font-family:'Noto Sans Ethiopic', serif;
  color:var(--gold);
  font-size:20px;
  line-height:1.6;
  padding:24px 0 8px;
  border-top:1px solid rgba(127,168,217,.25);
  margin-top:34px;
  letter-spacing:.04em;
}
.welcome-text .ge-quote-tr{
  color:rgba(245,234,211,.55);
  font-style:italic;
  font-size:16px;
}

/* Stained-glass-style illustration card */
.stained{
  aspect-ratio:3/4;
  background:
    radial-gradient(circle at 50% 30%, rgba(168,200,238,.4), transparent 55%),
    linear-gradient(180deg, #0a1230, #04060f);
  border:1px solid rgba(127,168,217,.35);
  position:relative;
  overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 0 80px rgba(168,200,238,.1);
}
.stained::before{
  content:"";position:absolute;inset:14px;
  border:1px solid rgba(127,168,217,.25);
  pointer-events:none;
}
.stained svg{width:100%;height:100%}

/* ---------------- SERVICES ---------------- */
.services{
  background:
    radial-gradient(ellipse at 20% 0%, rgba(26,58,110,.35), transparent 50%),
    radial-gradient(ellipse at 100% 100%, rgba(13,31,74,.45), transparent 50%),
    #04060f;
}
.services-head{text-align:center;margin-bottom:80px}
.services-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
}
@media(max-width:900px){.services-grid{grid-template-columns:1fr}}

.service-card{
  background:linear-gradient(180deg, rgba(10,18,48,.6), rgba(4,6,15,.6));
  border:1px solid rgba(127,168,217,.25);
  padding:48px 36px;
  position:relative;
  overflow:hidden;
  transition:all .5s ease;
}
.service-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg, transparent, var(--gold-bright), transparent);
  transform:scaleX(0);transform-origin:left;
  transition:transform .6s ease;
}
.service-card:hover{
  border-color:var(--gold);
  transform:translateY(-6px);
  box-shadow:0 30px 60px rgba(0,0,0,.5);
}
.service-card:hover::before{transform:scaleX(1)}
.service-card .num{
  font-family:'Cinzel', serif;
  color:var(--gold);
  font-size:13px;letter-spacing:.4em;
  margin-bottom:24px;
  display:flex;align-items:center;gap:14px;
}
.service-card .num::before{
  content:"";width:30px;height:1px;background:var(--gold);
}
.service-card h3{
  font-size:28px;
  color:var(--parchment);
  margin-bottom:14px;
  font-weight:500;
}
.service-card .geez-sub{
  font-family:'Noto Sans Ethiopic', serif;
  color:var(--gold-bright);
  font-size:15px;
  margin-bottom:20px;
  letter-spacing:.04em;
}
.service-card p{
  color:rgba(245,234,211,.72);
  font-size:17px;
}
.service-card .time{
  margin-top:28px;
  padding-top:20px;
  border-top:1px dashed rgba(127,168,217,.3);
  font-family:'Cinzel', serif;
  font-size:11px;
  letter-spacing:.25em;
  color:var(--gold-bright);
  text-transform:uppercase;
}

/* ---------------- CALENDAR / FEASTS ---------------- */
.feasts{
  background:
    linear-gradient(180deg, #04060f, #0a1230),
    #04060f;
  border-top:1px solid rgba(127,168,217,.15);
}
.feasts-grid{
  display:grid;
  grid-template-columns:380px 1fr;
  gap:80px;
  align-items:start;
}
@media(max-width:900px){.feasts-grid{grid-template-columns:1fr;gap:50px}}

.feast-list{list-style:none}
.feast-item{
  display:grid;
  grid-template-columns:120px 1fr auto;
  align-items:baseline;
  gap:28px;
  padding:24px 0;
  border-bottom:1px solid rgba(127,168,217,.18);
  transition:padding-left .35s ease;
}
.feast-item:hover{padding-left:14px}
.feast-item .date{
  font-family:'Cinzel', serif;
  color:var(--gold-bright);
  font-size:14px;
  letter-spacing:.18em;
}
.feast-item .name{
  font-size:22px;
  color:var(--parchment);
}
.feast-item .name small{
  display:block;
  font-family:'Noto Sans Ethiopic', serif;
  color:rgba(168,200,238,.7);
  font-size:14px;
  margin-top:4px;
  letter-spacing:.05em;
}
.feast-item .tag{
  font-family:'Cinzel', serif;
  font-size:10px;
  letter-spacing:.25em;
  text-transform:uppercase;
  padding:6px 12px;
  border:1px solid rgba(127,168,217,.4);
  color:var(--gold);
}
.feast-item .tag.major{background:var(--crimson);border-color:var(--crimson);color:var(--parchment)}

/* ---------------- LEADERSHIP ---------------- */
.clergy{
  background:
    radial-gradient(circle at 50% 0%, rgba(30,58,122,.35), transparent 55%),
    #04060f;
  text-align:center;
}
.clergy-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:48px;
  margin-top:72px;
}
@media(max-width:900px){.clergy-grid{grid-template-columns:1fr;gap:60px}}

.clergy-card{position:relative}
.clergy-portrait{
  width:200px;height:200px;
  margin:0 auto 28px;
  border-radius:50%;
  background:linear-gradient(160deg, #14223f, #04060f);
  border:2px solid var(--gold);
  position:relative;
  overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,.5), inset 0 0 30px rgba(168,200,238,.18);
}
.clergy-portrait::after{
  content:"";position:absolute;inset:8px;
  border:1px solid rgba(127,168,217,.3);
  border-radius:50%;
}
.clergy-portrait svg{width:100%;height:100%;color:var(--gold)}
.clergy-card h4{
  font-size:24px;
  color:var(--parchment);
  margin-bottom:6px;
}
.clergy-card .role{
  font-family:'Noto Sans Ethiopic', serif;
  color:var(--gold-bright);
  font-size:14px;
  margin-bottom:14px;
  letter-spacing:.06em;
}
.clergy-card p{
  color:rgba(245,234,211,.65);
  font-size:16px;
  max-width:300px;
  margin:0 auto;
}

/* ---------------- VISIT / CONTACT ---------------- */
.visit{
  background:linear-gradient(180deg, #04060f, #0a1230);
  border-top:1px solid rgba(127,168,217,.15);
}
.visit-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;
}
@media(max-width:900px){.visit-grid{grid-template-columns:1fr}}

.visit-info dt{
  font-family:'Cinzel', serif;
  color:var(--gold);
  font-size:11px;
  letter-spacing:.3em;
  text-transform:uppercase;
  margin-top:32px;
  margin-bottom:10px;
}
.visit-info dt:first-child{margin-top:0}
.visit-info dd{
  font-size:22px;
  color:var(--parchment);
  margin-left:0;
}
.visit-info dd small{
  display:block;
  font-family:'Noto Sans Ethiopic', serif;
  color:rgba(168,200,238,.7);
  font-size:14px;
  margin-top:4px;
}
.visit-card{
  aspect-ratio:1/1.1;
  background:
    radial-gradient(circle at 50% 40%, rgba(168,200,238,.22), transparent 60%),
    linear-gradient(180deg, #0a1230, #04060f);
  border:1px solid var(--gold);
  padding:48px;
  position:relative;
  display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.visit-card::before{
  content:"";position:absolute;inset:14px;
  border:1px solid rgba(127,168,217,.3);
  pointer-events:none;
}
.visit-card .corner{position:absolute;width:30px;height:30px;color:var(--gold)}
.visit-card .corner.tl{top:8px;left:8px}
.visit-card .corner.tr{top:8px;right:8px;transform:rotate(90deg)}
.visit-card .corner.bl{bottom:8px;left:8px;transform:rotate(-90deg)}
.visit-card .corner.br{bottom:8px;right:8px;transform:rotate(180deg)}

.visit-card h3{
  font-size:32px;color:var(--gold-bright);
  text-align:center;margin-bottom:8px;
}
.visit-card .geez{font-size:20px;text-align:center;color:rgba(168,200,238,.85);margin-bottom:24px}
.visit-card p{text-align:center;color:rgba(245,234,211,.75);font-style:italic;font-size:19px}
.visit-card .seal{
  align-self:center;width:80px;height:80px;color:var(--gold);margin-top:24px;
}

/* ---------------- HOME TEASER GRID (link cards on home page) ---------------- */
.teasers{
  background:
    radial-gradient(ellipse at 100% 0%, rgba(26,58,110,.3), transparent 55%),
    radial-gradient(ellipse at 0% 100%, rgba(13,31,74,.4), transparent 55%),
    #04060f;
  border-top:1px solid rgba(127,168,217,.15);
}
.teasers-head{text-align:center;margin-bottom:80px}
.teasers-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
}
@media(max-width:900px){.teasers-grid{grid-template-columns:1fr}}

.teaser-card{
  display:block;
  background:linear-gradient(180deg, rgba(10,18,48,.5), rgba(4,6,15,.7));
  border:1px solid rgba(127,168,217,.2);
  padding:42px 32px;
  text-decoration:none;
  color:var(--parchment);
  position:relative;
  overflow:hidden;
  transition:all .5s ease;
}
.teaser-card::after{
  content:"→";
  position:absolute;
  right:32px;bottom:32px;
  font-size:22px;
  color:var(--gold);
  transition:all .4s ease;
}
.teaser-card:hover{
  border-color:var(--gold);
  transform:translateY(-6px);
  box-shadow:0 30px 60px rgba(0,0,0,.45);
}
.teaser-card:hover::after{right:24px;color:var(--gold-bright)}
.teaser-card .teaser-label{
  font-family:'Noto Sans Ethiopic', serif;
  color:var(--gold);
  font-size:12px;
  letter-spacing:.3em;
  margin-bottom:18px;
}
.teaser-card h3{
  font-size:26px;
  color:var(--parchment);
  margin-bottom:12px;
  font-weight:500;
}
.teaser-card p{
  color:rgba(245,234,211,.7);
  font-size:17px;
  line-height:1.6;
}

/* ---------------- NEXT FEAST highlight on home ---------------- */
.next-feast{
  background:
    radial-gradient(circle at 50% 0%, rgba(30,58,122,.4), transparent 60%),
    linear-gradient(180deg, #0a1230, #04060f);
  text-align:center;
  border-top:1px solid rgba(127,168,217,.15);
}
.next-feast .badge{
  display:inline-block;
  font-family:'Cinzel', serif;
  font-size:11px;
  letter-spacing:.35em;
  color:var(--gold);
  padding:8px 18px;
  border:1px solid rgba(127,168,217,.4);
  margin-bottom:32px;
}
.next-feast .date-big{
  font-family:'Cinzel', serif;
  font-size:clamp(60px, 9vw, 110px);
  color:var(--gold-bright);
  letter-spacing:.05em;
  line-height:1;
  margin-bottom:14px;
}
.next-feast h2{
  font-size:clamp(32px, 4vw, 52px);
  color:var(--parchment);
  margin-bottom:8px;
  font-weight:400;
}
.next-feast .geez-sub{
  font-family:'Noto Sans Ethiopic', serif;
  color:var(--gold);
  font-size:18px;
  margin-bottom:28px;
  letter-spacing:.04em;
}
.next-feast p{
  color:rgba(245,234,211,.72);
  max-width:640px;
  margin:0 auto 36px;
  font-size:18px;
}

/* ---------------- BUTTONS (general) ---------------- */
.btn{
  display:inline-flex;align-items:center;gap:14px;
  padding:18px 38px;
  background:transparent;
  color:var(--gold-bright);
  border:1px solid var(--gold);
  font-family:'Cinzel', serif;
  font-size:12px;letter-spacing:.3em;text-transform:uppercase;
  text-decoration:none;
  transition:all .4s ease;
  position:relative;
  overflow:hidden;
  cursor:pointer;
}
.btn::before{
  content:"";position:absolute;inset:0;
  background:var(--gold);
  transform:translateY(101%);
  transition:transform .4s ease;
}
.btn:hover{color:var(--ink)}
.btn:hover::before{transform:translateY(0)}
.btn span{position:relative;z-index:2}
.btn.ghost{border-color:rgba(127,168,217,.4);color:var(--parchment)}

/* ---------------- RESOURCES (downloads / links list) ---------------- */
.resource-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:28px;
  margin-top:50px;
}
@media(max-width:900px){.resource-grid{grid-template-columns:1fr}}
.resource-card{
  background:linear-gradient(180deg, rgba(10,18,48,.5), rgba(4,6,15,.6));
  border:1px solid rgba(127,168,217,.2);
  padding:36px 32px;
  position:relative;
  transition:all .4s ease;
}
.resource-card:hover{border-color:var(--gold);transform:translateY(-3px)}
.resource-card .kind{
  font-family:'Cinzel', serif;
  font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold);
  margin-bottom:14px;
}
.resource-card h3{
  font-size:22px;color:var(--parchment);
  margin-bottom:10px;font-weight:500;
}
.resource-card .geez-sub{
  font-family:'Noto Sans Ethiopic', serif;
  color:var(--gold-bright);font-size:14px;
  margin-bottom:14px;
}
.resource-card p{color:rgba(245,234,211,.7);font-size:16px;margin-bottom:18px}
.resource-card .resource-link{
  font-family:'Cinzel', serif;font-size:11px;
  letter-spacing:.25em;text-transform:uppercase;
  color:var(--gold-bright);text-decoration:none;
  border-bottom:1px solid var(--gold);
  padding-bottom:4px;transition:all .3s ease;
}
.resource-card .resource-link:hover{color:var(--parchment);border-color:var(--parchment)}

/* ---------------- GALLERY ---------------- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  margin-top:50px;
}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.gallery-grid{grid-template-columns:1fr}}
.gallery-tile{
  aspect-ratio:4/5;
  background:
    radial-gradient(circle at 50% 40%, rgba(168,200,238,.15), transparent 60%),
    linear-gradient(180deg, #0a1230, #04060f);
  border:1px solid rgba(127,168,217,.2);
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  transition:all .5s ease;
}
.gallery-tile:hover{border-color:var(--gold);transform:scale(1.02)}
.gallery-tile .placeholder{
  font-family:'Cinzel', serif;font-size:11px;
  letter-spacing:.3em;text-transform:uppercase;
  color:rgba(168,200,238,.5);
  text-align:center;padding:24px;
}
.gallery-tile img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------------- REGISTRATION (sacrament cards) ---------------- */
.sacrament-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:32px;
  margin-top:50px;
}
@media(max-width:900px){.sacrament-grid{grid-template-columns:1fr}}
.sacrament-card{
  background:linear-gradient(180deg, rgba(10,18,48,.55), rgba(4,6,15,.7));
  border:1px solid rgba(127,168,217,.25);
  padding:48px 40px;
  position:relative;
  transition:all .5s ease;
}
.sacrament-card:hover{border-color:var(--gold);transform:translateY(-4px)}
.sacrament-card .icon{
  width:50px;height:50px;color:var(--gold-bright);
  margin-bottom:24px;
}
.sacrament-card h3{
  font-size:28px;color:var(--parchment);
  margin-bottom:8px;font-weight:500;
}
.sacrament-card .geez-sub{
  font-family:'Noto Sans Ethiopic', serif;
  color:var(--gold-bright);font-size:15px;
  margin-bottom:18px;
}
.sacrament-card p{color:rgba(245,234,211,.72);font-size:17px;margin-bottom:24px}
.sacrament-card ul{
  list-style:none;padding-left:0;margin-bottom:24px;
}
.sacrament-card ul li{
  position:relative;padding-left:22px;
  color:rgba(245,234,211,.72);font-size:16px;
  margin-bottom:8px;
}
.sacrament-card ul li::before{
  content:"✦";position:absolute;left:0;color:var(--gold);
}

/* ---------------- FORM ---------------- */
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:40px;
}
@media(max-width:700px){.form-grid{grid-template-columns:1fr}}
.form-field{display:flex;flex-direction:column}
.form-field.full{grid-column:1 / -1}
.form-field label{
  font-family:'Cinzel', serif;
  font-size:11px;letter-spacing:.25em;text-transform:uppercase;
  color:var(--gold);
  margin-bottom:10px;
}
.form-field input,
.form-field select,
.form-field textarea{
  background:rgba(4,6,15,.6);
  border:1px solid rgba(127,168,217,.3);
  color:var(--parchment);
  font-family:'Cormorant Garamond', serif;
  font-size:17px;
  padding:14px 16px;
  transition:border .3s ease;
  outline:none;
  resize:vertical;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{border-color:var(--gold)}
.form-field textarea{min-height:140px}
.form-submit-row{
  grid-column:1 / -1;
  margin-top:20px;
  display:flex;justify-content:center;
}

/* ---------------- ABOUT prose blocks ---------------- */
.prose{
  max-width:780px;margin:0 auto;
}
.prose p{
  margin-bottom:22px;
  color:rgba(245,234,211,.82);
  font-size:19px;
}
.prose h3{
  font-size:30px;
  color:var(--gold-bright);
  margin-top:50px;margin-bottom:18px;
  font-weight:500;
}
.prose blockquote{
  border-left:2px solid var(--gold);
  padding:8px 0 8px 28px;
  margin:32px 0;
  font-style:italic;
  color:rgba(245,234,211,.7);
}

/* ---------------- FOOTER ---------------- */
footer{
  padding:60px 48px 30px;
  background:#02030a;
  border-top:1px solid rgba(127,168,217,.2);
  text-align:center;
}
footer .foot-mark{width:48px;height:48px;color:var(--gold);margin-bottom:18px}
footer .foot-name{
  font-family:'Cinzel', serif;
  color:var(--gold-bright);
  letter-spacing:.22em;
  font-size:13px;
  text-transform:uppercase;
  margin-bottom:8px;
}
footer .foot-ge{
  font-family:'Noto Sans Ethiopic', serif;
  color:rgba(168,200,238,.65);
  font-size:14px;
  margin-bottom:24px;
}
footer .foot-links{
  display:flex;justify-content:center;gap:32px;
  margin-bottom:30px;flex-wrap:wrap;
}
footer .foot-links a{
  color:rgba(245,234,211,.6);
  text-decoration:none;
  font-family:'Cinzel', serif;
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  transition:color .3s;
}
footer .foot-links a:hover{color:var(--gold-bright)}
footer .copy{
  font-size:13px;
  color:rgba(245,234,211,.4);
  font-style:italic;
  padding-top:24px;
  border-top:1px solid rgba(127,168,217,.15);
}

/* Scroll reveals */
.reveal{opacity:0;transform:translateY(30px);transition:all 1s cubic-bezier(.2,.6,.2,1)}
.reveal.in{opacity:1;transform:translateY(0)}

.visually-hidden{
  position:absolute !important;
  left:-9999px;
  width:1px;height:1px;
  overflow:hidden;
}

@media(max-width:600px){
  section{padding:90px 24px}
  nav .brand{font-size:11px}
}
