:root { --violet:#5b21b6; --violet-dark:#2e1065; --gold:#d4a84f; --gold-dark:#805b16; --cream:#f7f4fb; --ink:#27163f; }
html { scroll-behavior:smooth; }
body { color:var(--ink); font-family:Inter,"Segoe UI",Arial,sans-serif; }
h1,h2,h3,.navbar-brand strong { font-family:Georgia,"Times New Roman",serif; }
.topbar { background:var(--violet-dark); color:#e8ddf7; }
.topbar a { color:#fff; text-decoration:none; }
.topbar-link { display:inline-flex; align-items:center; gap:.45rem; width:fit-content; }
.topbar-contacts { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 1.2rem; }
.topbar-icon { flex:0 0 auto; width:1rem; height:1rem; color:var(--gold); fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.topbar a:hover,.topbar a:focus-visible { color:#f0ca7b; text-decoration:underline; text-underline-offset:.2rem; }
.topbar a:focus-visible { outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; }
.navbar { padding:.8rem 0; }
.navbar-brand { color:var(--violet); line-height:1; }
.navbar-brand strong { font-size:1.3rem; }
.navbar-brand small { margin-top:.3rem; color:#746788; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; }
.brand-mark { display:grid; place-items:center; width:46px; height:46px; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font-size:1.5rem; }
.nav-link { font-size:.91rem; font-weight:600; }
.nav-link:hover,.nav-link.active { color:var(--gold)!important; }
.btn-parish,.btn-gold { border-color:var(--gold); background:var(--gold); color:#fff; font-weight:700; }
.btn-parish:hover,.btn-gold:hover { border-color:#b48841; background:#b48841; color:#fff; }
.hero { min-height:690px; color:#fff; background:linear-gradient(90deg,rgba(37,11,76,.98) 0%,rgba(78,28,143,.94) 48%,rgba(108,51,190,.62) 100%),radial-gradient(circle at 78% 35%,#d4a84f 0 3%,transparent 3.2%),linear-gradient(135deg,var(--violet-dark),#7c3aed); overflow:hidden; position:relative; }
.hero::after { content:"✟"; position:absolute; right:10%; top:10%; color:rgba(255,255,255,.07); font-family:serif; font-size:34rem; line-height:1; }
.min-vh-75 { min-height:630px; }
.eyebrow,.section-kicker { color:var(--gold); font-size:.74rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.hero h1 { line-height:.94; }
.hero .lead { max-width:650px; color:#eee5f9; line-height:1.8; }
.btn-lg { border-radius:0; padding:.8rem 1.5rem; font-size:.9rem; }
.quick-info { position:relative; z-index:3; margin-top:-64px; }
.info-panel { border-bottom:4px solid var(--gold); background:#fff; }
.info-item { display:flex; align-items:center; gap:1rem; min-height:128px; padding:1.5rem 2rem; border-right:1px solid #e3e6e7; }
.info-item small,.info-item strong { display:block; }
.info-item small { color:#8a969a; margin-bottom:.35rem; }
.info-item strong { color:var(--violet); font-family:Georgia,"Times New Roman",serif; font-size:1.07rem; }
.info-icon { color:var(--gold); font-size:2rem; }
.info-link { color:inherit; text-decoration:none; transition:.25s ease; }
.info-link:hover { background:var(--cream); }
.info-link:focus-visible { outline:3px solid var(--gold); outline-offset:-3px; }
.section-space { padding:7rem 0; }
.section-heading { max-width:650px; }
.section-title { color:var(--violet); font-size:clamp(2.3rem,5vw,3.4rem); font-weight:700; }
.title-rule { width:64px; height:2px; margin:1.2rem 0 1.7rem; background:var(--gold); }
.saint-quote { border-left:3px solid var(--gold); padding:1rem 0 1rem 1.5rem; }
.saint-quote blockquote { margin:0 0 .35rem; color:var(--violet); font-family:Georgia,"Times New Roman",serif; font-size:1.35rem; font-style:italic; }
.saint-quote figcaption { color:#8b969a; font-size:.8rem; }
.about-church-photo { height:440px; overflow:hidden; background:var(--cream); box-shadow:-24px 24px 0 var(--cream); }
.about-church-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.clergy-section { position:relative; overflow:hidden; background:linear-gradient(135deg,#1c093d 0%,var(--violet-dark) 55%,var(--violet) 150%); }
.clergy-section::before { content:"✟"; position:absolute; right:-2rem; bottom:-8rem; color:rgba(255,255,255,.035); font-family:serif; font-size:26rem; line-height:1; pointer-events:none; }
.clergy-section .section-title { color:#fff; }
.clergy-section .section-heading > p { color:#d9c9ed; }
.clergy-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1.25rem; }
.clergy-card { position:relative; grid-column:span 2; min-height:245px; padding:2rem 1.5rem; scroll-margin-top:6.5rem; border:1px solid rgba(255,255,255,.14); border-top:3px solid var(--gold); background:rgba(255,255,255,.07); text-align:center; transition:.25s ease; }
.clergy-card:nth-child(4) { grid-column:2 / span 2; }
.clergy-card:hover { transform:translateY(-6px); border-color:rgba(212,168,79,.65); background:rgba(255,255,255,.11); }
.clergy-card.is-on-duty { border-color:var(--gold); background:linear-gradient(145deg,rgba(212,168,79,.22),rgba(255,255,255,.09)); box-shadow:0 0 0 2px rgba(212,168,79,.2),0 1.25rem 2.5rem rgba(0,0,0,.24); }
.duty-badge { display:block; width:max-content; max-width:100%; margin:-.65rem auto 1rem; padding:.45rem .8rem; border:1px solid var(--gold); background:var(--violet-dark); color:#fff; font-size:.62rem; font-weight:800; letter-spacing:.09em; line-height:1.35; text-transform:uppercase; }
.duty-badge[hidden] { display:none; }
.clergy-portrait { display:block; width:150px; height:150px; margin:0 auto 1.4rem; border:3px solid var(--gold); border-radius:50%; object-fit:cover; object-position:center 25%; box-shadow:0 .75rem 1.5rem rgba(0,0,0,.22); }
.clergy-portrait-bostan { object-position:center 20%; }
.clergy-portrait-roman { object-position:60% center; }
.clergy-symbol { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 1.4rem; border:1px solid rgba(212,168,79,.7); border-radius:50%; color:var(--gold); font-size:1.4rem; }
.clergy-role { margin:0 0 .65rem; color:var(--gold); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.clergy-card h3 { margin:0; color:#fff; font-size:1.55rem; font-weight:400; line-height:1.25; overflow-wrap:anywhere; }
.clergy-card h3 strong { display:block; margin-top:.25rem; font-size:.88em; letter-spacing:.08em; }
.clergy-phone { display:inline-flex; align-items:center; margin-top:1.25rem; color:#fff; font-size:.95rem; font-weight:600; letter-spacing:.04em; text-decoration:none; }
.clergy-phone::before { content:"☎"; margin-right:.5rem; color:var(--gold); font-size:1rem; }
.clergy-phone:hover,.clergy-phone:focus-visible { color:var(--gold); text-decoration:underline; text-underline-offset:.25rem; }
.schedule-section { background:var(--cream); }
.duty-priest-panel { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1.25rem; max-width:960px; margin-right:auto; margin-left:auto; padding:1.5rem 1.75rem; border-top:4px solid var(--gold); background:linear-gradient(120deg,var(--violet-dark),var(--violet)); color:#fff; box-shadow:0 1rem 2.5rem rgba(46,16,101,.2); }
.duty-priest-panel[hidden] { display:none; }
.duty-priest-symbol { display:grid; place-items:center; width:52px; height:52px; border:1px solid rgba(212,168,79,.8); border-radius:50%; color:var(--gold); font-size:1.45rem; }
.duty-priest-copy { min-width:0; }
.duty-priest-copy > span,.duty-priest-copy > strong { display:block; }
#duty-priest-label { margin-bottom:.25rem; color:#e4d9f2; font-size:.69rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
#duty-priest-name { font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.25rem,2.2vw,1.65rem); line-height:1.25; }
.duty-priest-period { margin-top:.3rem; color:#e4d9f2; font-size:.82rem; }
.duty-priest-link { padding:.65rem .9rem; border:1px solid rgba(255,255,255,.55); color:#fff; font-size:.78rem; font-weight:700; text-decoration:none; white-space:nowrap; transition:.2s ease; }
.duty-priest-link:hover,.duty-priest-link:focus-visible { border-color:#fff; background:#fff; color:var(--violet-dark); }
.duty-priest-link:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.weekly-schedule { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.schedule-card { padding:2rem; border:1px solid #e1dbcf; background:#fff; transition:.25s ease; }
.schedule-card:hover { transform:translateY(-6px); box-shadow:0 1rem 2rem rgba(91,33,182,.14); }
.schedule-card.featured { border-top:4px solid var(--gold); }
.sunday-card { grid-column:span 3; }
.sunday-card .schedule-services { grid-template-columns:repeat(2,minmax(0,1fr)); }
.day-label { color:var(--gold-dark); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.schedule-card .day-label { margin:0; font-family:Inter,"Segoe UI",Arial,sans-serif; line-height:1.3; }
.schedule-services { display:grid; gap:.8rem; margin:1.25rem 0 0; padding:0; list-style:none; }
.service-item { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1rem; min-height:74px; padding:1rem 1.1rem; border-left:3px solid var(--gold); background:var(--cream); }
.service-name { color:var(--violet); font-family:Georgia,"Times New Roman",serif; font-size:1.05rem; font-weight:700; line-height:1.35; }
.service-item time { color:var(--gold-dark); font-family:Georgia,"Times New Roman",serif; font-size:1.35rem; font-weight:700; }
.vasiliada-section { position:relative; overflow:hidden; background:#fff; }
.vasiliada-directions { display:flex; flex-wrap:wrap; gap:.55rem; margin:1.5rem 0 0; padding:0; list-style:none; }
.vasiliada-directions li { padding:.5rem .75rem; border-left:2px solid var(--gold); background:var(--cream); color:var(--violet-dark); font-size:.72rem; font-weight:700; letter-spacing:.04em; }
.vasiliada-document { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1rem; margin-top:2rem; padding:1.15rem 1.25rem; border-top:3px solid var(--gold); background:linear-gradient(120deg,var(--violet-dark),var(--violet)); color:#fff; text-decoration:none; box-shadow:0 1rem 2rem rgba(46,16,101,.16); transition:transform .2s ease,box-shadow .2s ease; }
.vasiliada-document:hover { color:#fff; transform:translateY(-3px); box-shadow:0 1.25rem 2.4rem rgba(46,16,101,.23); }
.vasiliada-document:focus-visible { outline:3px solid var(--gold); outline-offset:3px; color:#fff; }
.vasiliada-document-icon { display:grid; place-items:center; width:48px; height:48px; border:1px solid rgba(212,168,79,.8); color:var(--gold); font-size:.68rem; font-weight:800; letter-spacing:.08em; }
.vasiliada-document-copy { min-width:0; }
.vasiliada-document-copy small,.vasiliada-document-copy strong,.vasiliada-document-copy em { display:block; }
.vasiliada-document-copy small { color:#e4d9f2; font-size:.63rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }
.vasiliada-document-copy strong { margin:.18rem 0; color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:1.05rem; line-height:1.3; }
.vasiliada-document-copy em { color:#e4d9f2; font-size:.7rem; font-style:normal; line-height:1.4; }
.vasiliada-document-arrow { color:var(--gold); font-size:1.45rem; }
.vasiliada-gallery { display:grid; grid-template-columns:.85fr 1.15fr; grid-template-rows:300px 230px; gap:1rem; }
.vasiliada-photo { position:relative; margin:0; overflow:hidden; border-bottom:3px solid var(--gold); background:var(--cream); }
.vasiliada-photo-main { grid-column:1 / -1; }
.vasiliada-photo::after { content:""; position:absolute; right:0; bottom:0; left:0; height:48%; background:linear-gradient(transparent,rgba(30,9,64,.82)); pointer-events:none; }
.vasiliada-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.vasiliada-photo-facade { background:var(--violet-dark); }
.vasiliada-photo-facade img { object-fit:contain; }
.vasiliada-photo:hover img { transform:scale(1.025); }
.vasiliada-photo figcaption { position:absolute; right:1rem; bottom:.8rem; left:1rem; z-index:1; color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:.9rem; font-weight:700; line-height:1.3; }
.donation-section { background:var(--cream); }
.donation-card { padding:2.5rem; border-top:4px solid var(--gold); background:linear-gradient(135deg,var(--violet-dark),var(--violet)); box-shadow:0 1.5rem 3rem rgba(46,16,101,.2); }
.donation-card-heading { display:flex; align-items:center; gap:1rem; margin-bottom:1.75rem; }
.donation-card-heading small,.donation-card-heading strong { display:block; }
.donation-card-heading small { margin-bottom:.2rem; color:#d9c9ed; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; }
.donation-card-heading strong { color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:1.35rem; }
.donation-icon { display:grid; flex:0 0 auto; place-items:center; width:52px; height:52px; border:1px solid rgba(212,168,79,.75); border-radius:50%; color:var(--gold); font-size:1.6rem; }
.donation-details { display:grid; gap:1rem; }
.donation-details > div { padding:1rem 1.5rem; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.08); }
.donation-detail-label { display:block; margin-bottom:.25rem; color:#d9c9ed; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.donation-detail-value { display:block; padding:0; background:transparent; color:#fff; font-size:clamp(1rem,2.1vw,1.35rem); font-weight:700; letter-spacing:.055em; line-height:1.5; overflow-wrap:anywhere; user-select:all; }
.contact-section { background:linear-gradient(110deg,var(--violet-dark),var(--violet)); }
.text-gold { color:var(--gold)!important; }
.site-footer { background:#1c093d; color:#cdbce5; }
.footer-links-section { padding:1.75rem 0; border-bottom:1px solid rgba(255,255,255,.12); background:linear-gradient(135deg,#2a1053 0%,#1c093d 75%); }
.footer-links-layout { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:1.5rem 3rem; }
.footer-links-heading { min-width:135px; }
.footer-links-kicker { color:var(--gold); font-size:.58rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.footer-links-title { margin:.2rem 0 0; color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:1.35rem; font-weight:700; }
.useful-links-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem 1.5rem; margin:0; padding:0; list-style:none; }
.useful-link { display:inline-flex; align-items:center; gap:.5rem; padding:.15rem 0; color:#ded4ec; font-size:.82rem; line-height:1.35; text-decoration:none; }
.useful-link-icon { flex:0 0 auto; width:.95rem; height:.95rem; color:var(--gold); }
.useful-link-icon-facebook { fill:currentColor; }
.useful-link-icon-website { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.useful-link:hover { color:#fff; text-decoration:underline; text-underline-offset:.2rem; }
.useful-link:focus-visible { outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; color:#fff; }
.back-to-top { position:fixed; right:clamp(1rem,3vw,2rem); bottom:clamp(1rem,3vw,2rem); z-index:1030; display:grid; place-items:center; width:3rem; height:3rem; padding:0; border:1px solid rgba(255,255,255,.45); border-radius:50%; background:var(--gold); color:#fff; box-shadow:0 .75rem 1.5rem rgba(46,16,101,.28); font-size:1.5rem; line-height:1; opacity:0; visibility:hidden; transform:translateY(.75rem); transition:opacity .2s ease,transform .2s ease,visibility .2s ease,background-color .2s ease; }
.back-to-top.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover { background:#b48841; transform:translateY(-3px); }
.back-to-top:focus-visible { outline:3px solid var(--violet-dark); outline-offset:3px; }
.back-to-top svg { width:1.35rem; height:1.35rem; transition:transform .2s ease; }
.back-to-top:hover svg { transform:translateY(-2px); }

@media (max-width:767.98px) {
  .hero { min-height:620px; }
  .hero::after { right:-30%; font-size:25rem; }
  .min-vh-75 { min-height:560px; }
  .quick-info { margin-top:-25px; }
  .info-item { min-height:auto; border-right:0; border-bottom:1px solid #e3e6e7; }
  .section-space { padding:5rem 0; }
  .about-church-photo { height:360px; }
  .clergy-grid { grid-template-columns:1fr; }
  .clergy-card,.clergy-card:nth-child(4) { grid-column:auto; min-height:auto; }
  .duty-priest-panel { grid-template-columns:auto minmax(0,1fr); padding:1.35rem; }
  .duty-priest-link { grid-column:1 / -1; text-align:center; }
  .vasiliada-document { grid-template-columns:auto minmax(0,1fr); }
  .vasiliada-document-arrow { display:none; }
  .vasiliada-gallery { grid-template-rows:210px 170px; }
  .donation-card { padding:1.75rem; }
  .donation-details > div { padding:1rem; }
  .donation-detail-value { letter-spacing:.025em; }
  .weekly-schedule { grid-template-columns:1fr; }
  .sunday-card { grid-column:auto; }
  .sunday-card .schedule-services { grid-template-columns:1fr; }
  .footer-links-section { padding:2rem 0; }
  .footer-links-layout { grid-template-columns:1fr; gap:1rem; }
  .useful-links-grid { grid-template-columns:1fr; }
}

@media (min-width:768px) and (max-width:991.98px) {
  .clergy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .clergy-card,.clergy-card:nth-child(4) { grid-column:auto; }
  .clergy-card:last-child { grid-column:1 / -1; width:calc(50% - .625rem); justify-self:center; }
  .weekly-schedule { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sunday-card { grid-column:span 2; }
  .vasiliada-gallery { grid-template-rows:340px 260px; }
  .useful-links-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:359.98px) {
  .vasiliada-document { grid-template-columns:1fr; text-align:center; }
  .vasiliada-document-icon { margin:auto; }
  .vasiliada-gallery { grid-template-columns:1fr; grid-template-rows:200px 240px 170px; }
  .vasiliada-photo-main { grid-column:auto; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
