/*
Theme Name: Assisi Renewal Center
Theme URI: https://assisirenewalcenter.org
Author: Blu Noize Studios
Author URI: https://assisirenewalcenter.org
Description: An ultra-modern, basilica-inspired WordPress theme for Assisi Renewal Center, Bharananganam — deep obsidian and gold, a Roman arcade signature motif, stained-glass and marble textures, built for retreat programmes, prayer intentions and parish life.
Version: 1.1
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: assisi-renewal
*/

:root{
  --obsidian:#0d0e12;
  --nave:#141c30;
  --nave-2:#1b2540;
  --gold:#b8923f;
  --gold-bright:#e0c37c;
  --gold-dim: rgba(184,146,63,0.35);
  --alabaster:#ece6d6;
  --alabaster-dim:#c9c2ac;
  --stone:#8b8676;
  --wine:#5b1f2a;
  --wine-bright:#7a2c3a;
  --hairline: rgba(184,146,63,0.28);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--obsidian);
  color:var(--alabaster);
  font-family:'EB Garamond', Georgia, serif;
  font-size:18px;
  line-height:1.7;
  overflow-x:hidden;
  position:relative;
}
/* ambient marble grain across the whole page */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image: radial-gradient(rgba(236,230,214,0.035) 1px, transparent 1px);
  background-size: 3px 3px;
  opacity:0.55;
}
.site-wrap{position:relative; z-index:1;}

h1,h2,h3,.display{
  font-family:'Cinzel', Georgia, serif;
  font-weight:600;
  letter-spacing:0.02em;
  color:var(--alabaster);
}
.eyebrow{
  font-family:'Jost', Arial, sans-serif;
  font-weight:400;
  letter-spacing:0.32em;
  text-transform:uppercase;
  font-size:12.5px;
  color:var(--gold);
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{list-style:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
.screen-reader-text{position:absolute; left:-9999px;}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
}

/* ---------- ARCADE DIVIDER (signature element) ---------- */
.arcade{ display:flex; justify-content:center; align-items:flex-end; height:34px; opacity:0.9; position:relative; z-index:1;}
.arcade svg{display:block;}
.arcade.glow::before{
  content:""; position:absolute; top:-1px; left:50%; transform:translateX(-50%);
  width:220px; height:2px; background:radial-gradient(ellipse, var(--gold-bright), transparent 70%);
  filter:blur(3px);
}

/* ---------- STAINED GLASS ROSETTE (hero backdrop) ---------- */
.rosette{
  position:absolute; top:-8%; left:50%; transform:translateX(-50%);
  width:820px; height:820px; max-width:140vw;
  border-radius:50%;
  background:
    conic-gradient(from 0deg,
      rgba(184,146,63,0.16) 0deg, rgba(91,31,42,0.14) 30deg, rgba(27,37,64,0.18) 60deg,
      rgba(184,146,63,0.16) 90deg, rgba(91,31,42,0.14) 120deg, rgba(27,37,64,0.18) 150deg,
      rgba(184,146,63,0.16) 180deg, rgba(91,31,42,0.14) 210deg, rgba(27,37,64,0.18) 240deg,
      rgba(184,146,63,0.16) 270deg, rgba(91,31,42,0.14) 300deg, rgba(27,37,64,0.18) 330deg, rgba(184,146,63,0.16) 360deg);
  mask: radial-gradient(circle, black 0%, black 55%, transparent 72%);
  -webkit-mask: radial-gradient(circle, black 0%, black 55%, transparent 72%);
  opacity:0.65;
  pointer-events:none;
  animation: rosette-spin 140s linear infinite;
}
@keyframes rosette-spin{ to{ transform:translateX(-50%) rotate(360deg); } }

/* candle glow ambience */
.candle-glow{
  position:absolute; pointer-events:none; border-radius:50%;
  background:radial-gradient(circle, rgba(224,195,124,0.5), transparent 70%);
  filter:blur(2px);
  animation:flicker 5s ease-in-out infinite;
}
@keyframes flicker{ 0%,100%{opacity:0.55;} 50%{opacity:0.9;} }

/* ---------- NAV ---------- */
header.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(13,14,18,0.86);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--hairline);
}
.nav-row{ display:flex; align-items:center; justify-content:space-between; padding:18px 32px; max-width:1180px; margin:0 auto;}
.brand{ display:flex; flex-direction:column; line-height:1.1;}
.brand .name{font-family:'Cinzel', serif; font-size:17px; letter-spacing:0.14em; color:var(--alabaster);}
.brand img.custom-logo{max-height:46px; width:auto;}
.brand .place{font-family:'Jost', sans-serif; font-size:11px; letter-spacing:0.28em; color:var(--gold); text-transform:uppercase; margin-top:4px;}

nav.links{ display:flex; gap:0; font-family:'Jost', sans-serif; font-size:12.5px; letter-spacing:0.16em; text-transform:uppercase;}
nav.links ul{display:flex;}
nav.links li{position:relative;}
nav.links a{ padding:8px 16px; border-left:1px solid var(--hairline); color:var(--alabaster-dim); transition:color .25s ease; display:block;}
nav.links li:last-child a{border-right:1px solid var(--hairline);}
nav.links a:hover, nav.links a:focus-visible{color:var(--gold-bright);}
nav.links ul ul{ position:absolute; top:100%; left:0; background:var(--nave-2); border:1px solid var(--hairline); min-width:220px; display:none; z-index:10;}
nav.links li:hover > ul{display:block;}
nav.links ul ul a{border-left:none; padding:12px 18px; white-space:nowrap;}
.nav-cta{ font-family:'Jost', sans-serif; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; border:1px solid var(--gold); color:var(--gold-bright)!important; padding:9px 18px!important; margin-left:14px;}
.nav-cta:hover{background:var(--gold); color:var(--obsidian)!important;}
.menu-btn{display:none; background:none; border:1px solid var(--hairline); color:var(--alabaster); width:42px; height:42px; font-size:18px; cursor:pointer;}
@media (max-width:920px){
  nav.links{display:none; position:absolute; top:100%; left:0; right:0; background:var(--obsidian); border-bottom:1px solid var(--hairline); flex-direction:column;}
  nav.links.open{display:block;}
  nav.links ul{flex-direction:column;}
  nav.links a{border-left:none!important; border-top:1px solid var(--hairline); padding:16px 32px;}
  nav.links ul ul{position:static; border:none; background:rgba(184,146,63,0.05);}
  .menu-btn{display:block;}
}

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:center; justify-content:center; text-align:center;
  padding:120px 24px 80px;
  background: radial-gradient(ellipse at 50% 15%, rgba(184,146,63,0.14), transparent 55%), linear-gradient(180deg, #0a0b0e 0%, #10131c 55%, #0d0e12 100%);
  overflow:hidden;
}
.hero-arch{
  position:relative; z-index:2; width:min(640px, 86vw); padding:70px 46px 54px;
  border:1px solid var(--hairline); border-top:none;
  border-radius: 260px 260px 4px 4px / 220px 220px 4px 4px;
  background:linear-gradient(180deg, rgba(184,146,63,0.06), transparent 40%);
}
.hero-arch::before{
  content:""; position:absolute; top:-1px; left:-1px; right:-1px; height:220px;
  border:1px solid var(--hairline); border-bottom:none;
  border-radius:260px 260px 0 0 / 220px 220px 0 0;
  box-shadow: 0 0 60px rgba(184,146,63,0.12) inset;
}
.hero .eyebrow{display:block; margin-bottom:22px;}
.hero h1{ font-size:clamp(34px, 5.4vw, 58px); line-height:1.18; margin-bottom:22px; text-shadow:0 0 40px rgba(184,146,63,0.25);}
.hero p.lede{ font-family:'EB Garamond', serif; font-style:italic; color:var(--alabaster-dim); font-size:19px; max-width:480px; margin:0 auto 34px;}
.cta-row{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
.btn{ font-family:'Jost', sans-serif; font-size:13px; letter-spacing:0.14em; text-transform:uppercase; padding:15px 30px; border-radius:1px; display:inline-block; transition:all .25s ease; cursor:pointer; border:1px solid transparent;}
.btn-gold{background:var(--gold); color:var(--obsidian); border-color:var(--gold);}
.btn-gold:hover{background:var(--gold-bright); border-color:var(--gold-bright); box-shadow:0 0 26px rgba(224,195,124,0.35);}
.btn-ghost{border-color:var(--hairline); color:var(--alabaster);}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold-bright);}

/* ---------- SECTION SCAFFOLDING ---------- */
section{padding:110px 0; position:relative; z-index:1;}
.section-head{text-align:center; max-width:640px; margin:0 auto 64px;}
.section-head h2{font-size:clamp(26px,3.4vw,38px); margin:16px 0 18px;}
.section-head p{color:var(--alabaster-dim); font-size:17px;}

/* ---------- ARCH PHOTO SLOT (fills with real featured images) ---------- */
.arch-photo{
  position:relative; overflow:hidden;
  border:1px solid var(--hairline);
  border-radius:180px 180px 4px 4px / 150px 150px 4px 4px;
  background:linear-gradient(160deg, #23304f, #0d0e12 70%);
  display:flex; align-items:flex-end;
}
.arch-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(0.92) contrast(1.05);}
.arch-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(13,14,18,0) 40%, rgba(13,14,18,0.75) 100%);
}
.arch-photo .cap{
  position:relative; z-index:2; font-family:'Jost',sans-serif; font-size:11px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--alabaster-dim); padding:22px; width:100%;
}
.arch-photo.empty{ align-items:center; justify-content:center; text-align:center;}
.arch-photo.empty .placeholder-mark{ font-size:44px; opacity:0.22; z-index:2;}
.arch-photo.empty .cap{position:absolute; bottom:0;}

/* ---------- ABOUT ---------- */
.about{background:linear-gradient(180deg, var(--obsidian), var(--nave) 100%);}
.about-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:center;}
.about-grid .arch-photo{aspect-ratio:3/4;}
.about-copy .eyebrow{margin-bottom:16px; display:block;}
.about-copy h2{font-size:clamp(26px,3.2vw,36px); margin-bottom:22px; line-height:1.28;}
.about-copy p{color:var(--alabaster-dim); margin-bottom:16px;}
.about-copy .pull{ font-family:'EB Garamond',serif; font-style:italic; color:var(--gold-bright); font-size:20px; border-left:2px solid var(--gold); padding-left:20px; margin:26px 0;}
.stat-row{display:flex; gap:40px; margin-top:34px; flex-wrap:wrap;}
.stat .n{font-family:'Cinzel',serif; font-size:30px; color:var(--gold-bright);}
.stat .l{font-family:'Jost',sans-serif; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--stone); margin-top:6px;}
@media (max-width:860px){ .about-grid{grid-template-columns:1fr; gap:44px;} .about-grid .arch-photo{max-width:340px; margin:0 auto;} }

/* ---------- RETREATS ---------- */
.retreats{background:var(--nave);}
.month-tabs{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:50px; font-family:'Jost',sans-serif; font-size:12px; letter-spacing:0.12em; text-transform:uppercase;}
.month-tabs button{ background:transparent; border:1px solid var(--hairline); color:var(--alabaster-dim); padding:9px 18px; cursor:pointer; transition:all .2s ease;}
.month-tabs button.active, .month-tabs button:hover{border-color:var(--gold); color:var(--gold-bright); background:rgba(184,146,63,0.08);}
.retreat-panel{display:none;}
.retreat-panel.active{display:grid; grid-template-columns:repeat(auto-fit, minmax(270px,1fr)); gap:26px;}
.ticket{ position:relative; border:1px solid var(--hairline); background:linear-gradient(180deg, rgba(184,146,63,0.06), transparent 50%), var(--nave-2); padding:36px 26px 26px; border-radius:120px 120px 3px 3px / 90px 90px 3px 3px; transition:transform .25s ease, box-shadow .25s ease;}
.ticket:hover{transform:translateY(-4px); box-shadow:0 18px 40px rgba(0,0,0,0.35);}
.ticket .dates{font-family:'Jost',sans-serif; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold);}
.ticket h3{font-size:19px; margin:14px 0 10px; line-height:1.35;}
.ticket .time{color:var(--alabaster-dim); font-size:15px; font-style:italic; margin-bottom:16px;}
.ticket .fee{font-family:'Jost',sans-serif; font-size:12px; letter-spacing:0.08em; color:var(--stone); border-top:1px solid var(--hairline); padding-top:14px;}

/* ---------- GOLD MOSAIC BAND ---------- */
.mosaic-band{
  height:14px;
  background-image: repeating-linear-gradient(45deg, var(--gold-dim) 0 6px, transparent 6px 12px), repeating-linear-gradient(-45deg, var(--gold-dim) 0 6px, transparent 6px 12px);
  background-blend-mode:screen;
  opacity:0.5;
}

/* ---------- RULES ---------- */
.rules{background:linear-gradient(180deg, var(--nave), var(--obsidian));}
.rules-list{max-width:820px; margin:0 auto; display:flex; flex-direction:column;}
.rule{ display:grid; grid-template-columns:64px 1fr; gap:26px; padding:26px 0; border-top:1px solid var(--hairline);}
.rules-list .rule:last-child{border-bottom:1px solid var(--hairline);}
.rule .num{font-family:'Cinzel',serif; font-size:22px; color:var(--gold); opacity:0.85;}
.rule p{color:var(--alabaster-dim); font-size:16.5px;}
.rule strong{color:var(--alabaster); font-weight:600;}

/* ---------- PRAYER CTA BAND ---------- */
.prayer-band{ background:linear-gradient(135deg, var(--wine), #3a141c 70%); text-align:center; padding:90px 24px; position:relative; overflow:hidden;}
.prayer-band::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(circle at 20% 20%, rgba(224,195,124,0.14), transparent 40%), radial-gradient(circle at 80% 80%, rgba(224,195,124,0.1), transparent 45%);
}
.prayer-band > *{position:relative; z-index:1;}
.prayer-band h2{font-size:clamp(26px,3.4vw,36px); margin:16px 0 18px;}
.prayer-band p{color:#e8d3d3; max-width:560px; margin:0 auto 32px;}

/* ---------- GALLERY ---------- */
.gallery{background:var(--obsidian);}
.gallery-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:16px;}
.gallery-grid .arch-photo{aspect-ratio:1; border-radius:60px 60px 3px 3px / 44px 44px 3px 3px;}
@media (max-width:760px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }

/* ---------- CONTACT ---------- */
.contact{background:var(--nave);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
.contact-copy h2{font-size:clamp(26px,3.2vw,36px); margin-bottom:20px;}
.contact-copy p{color:var(--alabaster-dim); margin-bottom:26px;}
.info-line{display:flex; gap:14px; padding:14px 0; border-top:1px solid var(--hairline); font-size:16px;}
.info-line:last-of-type{border-bottom:1px solid var(--hairline);}
.info-line .k{font-family:'Jost',sans-serif; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); width:110px; flex-shrink:0;}
.map-frame{border:1px solid var(--hairline); aspect-ratio:4/3.4; overflow:hidden; border-radius:3px;}
.map-frame iframe{width:100%; height:100%; border:0; filter:grayscale(0.4) invert(0.92) contrast(0.9);}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }
.social-row{display:flex; gap:14px; margin-top:24px;}
.social-row a{width:40px; height:40px; border:1px solid var(--hairline); display:flex; align-items:center; justify-content:center; font-family:'Jost',sans-serif; font-size:13px; transition:all .2s ease;}
.social-row a:hover{border-color:var(--gold); color:var(--gold-bright);}

/* ---------- FOOTER ---------- */
footer.site-footer{background:var(--obsidian); padding:60px 0 34px; border-top:1px solid var(--hairline);}
.footer-grid{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:30px; margin-bottom:44px;}
.footer-brand .name{font-family:'Cinzel',serif; font-size:18px; letter-spacing:0.1em;}
.footer-brand .place{font-family:'Jost',sans-serif; font-size:11px; letter-spacing:0.24em; color:var(--gold); text-transform:uppercase; margin-top:8px;}
.footer-links{display:flex; gap:50px; flex-wrap:wrap;}
.footer-links div h4{font-family:'Jost',sans-serif; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--stone); margin-bottom:14px;}
.footer-links a{display:block; font-size:14.5px; color:var(--alabaster-dim); padding:5px 0;}
.footer-links a:hover{color:var(--gold-bright);}
.footer-bottom{text-align:center; font-family:'Jost',sans-serif; font-size:12px; letter-spacing:0.06em; color:var(--stone);}

/* ---------- GENERIC PAGE (page.php) ---------- */
.page-hero{ padding:150px 24px 70px; text-align:center; background:radial-gradient(ellipse at 50% 0%, rgba(184,146,63,0.12), transparent 60%);}
.page-hero h1{font-size:clamp(30px,4.6vw,46px);}
.entry-content{max-width:760px; margin:0 auto; padding:0 24px 120px; color:var(--alabaster-dim); font-size:18px;}
.entry-content h2,.entry-content h3{color:var(--alabaster); margin:36px 0 16px;}
.entry-content p{margin-bottom:18px;}
.entry-content a{color:var(--gold-bright); border-bottom:1px solid var(--gold-dim);}
.entry-content img{border:1px solid var(--hairline); margin:20px 0;}
.entry-content blockquote{border-left:2px solid var(--gold); padding-left:20px; font-style:italic; color:var(--gold-bright); margin:24px 0;}

::selection{background:var(--gold); color:var(--obsidian);}
a:focus-visible, button:focus-visible{outline:2px solid var(--gold-bright); outline-offset:2px;}
