/*
 * Egyházközségek Network — unified visual design v0.10.0.
 *
 * Scoped only to network output and explicitly opted-in Oxygen containers.
 * No body-wide typography rules: existing site headers, editor and unrelated
 * plugins retain their own styling. No remote fonts or external assets.
 *
 * Oxygen variables can override --ek-brand-* on an .ek-design container;
 * the legacy --ek-* component variables are mapped below.
 */
.ek-design,
.ek-parish-card,.ek-parish-home,.ek-directory,.ek-community-directory,
.ek-community-profile,.ek-foundation-details,.ek-pastoral-care,.ek-donation-box,
.ek-social-links,.ek-related,.ek-parish-site-nav,.ek-announcements,
.ek-parish-home__navigation,.ek-mass-schedule,
.ek-design-content {
  --ek-ink: var(--ek-brand-ink, #1d3129);
  --ek-muted: var(--ek-brand-muted, #53665b);
  --ek-primary: var(--ek-brand-primary, #22583e);
  --ek-primary-soft: var(--ek-brand-primary-soft, #edf5ef);
  --ek-border: var(--ek-brand-border, #d9e4dc);
  --ek-cream: var(--ek-brand-cream, #faf6ed);
  --ek-gold: var(--ek-brand-gold, #b38a4a);
  --ek-surface: var(--ek-brand-surface, #ffffff);
  --ek-background: var(--ek-brand-background, #fbfaf7);
  --ek-radius: var(--ek-brand-radius, 12px);
  --ek-maxwidth: var(--ek-brand-maxwidth, 1160px);
  --ek-space: clamp(.9rem, 2vw, 1.4rem);
  color: var(--ek-ink);
  font-family: var(--ek-brand-font, inherit);
  line-height: 1.58;
  box-sizing: border-box;
}
.ek-design *, .ek-design *::before, .ek-design *::after,
.ek-parish-card *, .ek-parish-home *, .ek-directory *,
.ek-community-directory *, .ek-pastoral-care *,
.ek-social-links *, .ek-donation-box * {box-sizing:border-box}
.ek-design :where(a),.ek-directory :where(a),.ek-community-directory :where(a){
  color:var(--ek-primary);text-underline-offset:.14em;
}
.ek-design :where(a,button,input,select,textarea):focus-visible,
.ek-directory :where(a,button,input,select):focus-visible,
.ek-community-directory a:focus-visible {
  outline:3px solid var(--ek-primary);outline-offset:3px;
}
/* Explicit Oxygen Container class for sitewide brandable sections. */
.ek-design-shell{
  max-width:var(--ek-brand-maxwidth,1160px);
  width:100%;margin-inline:auto;
  padding-inline:clamp(1rem,3vw,1.9rem);
  min-width:0;
}
.ek-design-heading{
  color:var(--ek-primary);font-size:clamp(1.45rem,3vw,2.3rem);
  font-weight:700;letter-spacing:-.02em;line-height:1.18;
}
.ek-design-lead{
  max-width:68ch;color:var(--ek-muted);font-size:clamp(1rem,1.6vw,1.12rem);
  line-height:1.65;
}
.ek-design-breadcrumb{
  font-size:.86rem;color:var(--ek-muted);padding-block:.5rem;
}
.ek-design-breadcrumb a{color:var(--ek-primary);}
/* Shared component surfaces and spacing, without changing semantic markup. */
.ek-parish-card,.ek-foundation-details,.ek-community-profile,
.ek-donation-box,.ek-social-links,.ek-pastoral-care,
.ek-parish-home__facts,.ek-parish-home__card,
.ek-parish-home__navigation .ek-parish-home__nav-card {
  border-color:var(--ek-border);border-radius:var(--ek-radius);
}
.ek-parish-card,.ek-foundation-details,.ek-community-profile,
.ek-donation-box,.ek-social-links,.ek-pastoral-care,
.ek-parish-home__facts,.ek-parish-home__card {
  background:var(--ek-surface);
}
.ek-parish-home,.ek-directory,.ek-community-directory{
  max-width:var(--ek-maxwidth);min-width:0;
  margin-inline:auto;
}
.ek-parish-home__hero{
  position:relative;overflow:hidden;
  border-left:4px solid var(--ek-primary);
  border-radius:var(--ek-radius);
  background:linear-gradient(112deg,var(--ek-cream),var(--ek-primary-soft));
  padding:clamp(1.25rem,3.6vw,2.75rem);
}
.ek-parish-home__hero::after {
  content:"";position:absolute;inset:auto 0 0 auto;
  height:3px;width:36%;background:var(--ek-gold);opacity:.8;
}
.ek-parish-home__hero h1{font-size:clamp(1.65rem,4vw,2.5rem);max-width:32ch}
.ek-parish-home__eyebrow{
  color:var(--ek-primary);letter-spacing:.085em;font-weight:750;
}
.ek-parish-home__main{
  display:grid;gap:clamp(1rem,2.2vw,1.75rem);
  padding-block:clamp(1rem,2.2vw,1.75rem);
}
.ek-parish-home__section h2,.ek-donation-box h2,.ek-pastoral-care h2,
.ek-social-links__title{
  letter-spacing:-.012em;line-height:1.24;
}
.ek-parish-home__section h2::after,
.ek-pastoral-care h2::after,.ek-donation-box h2::after {
  content:"";display:block;height:2px;width:3rem;
  margin-top:.45rem;background:var(--ek-gold);
}
.ek-parish-home__card,.ek-directory__card {
  box-shadow:0 4px 18px rgba(18,55,37,.045);
  border:1px solid var(--ek-border);border-radius:var(--ek-radius);
  background:var(--ek-surface);
  padding:clamp(.9rem,2vw,1.15rem);min-width:0;
}
.ek-directory__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,255px),1fr));
  gap:clamp(.8rem,1.5vw,1.2rem);
}
.ek-directory__search{
  padding:clamp(.8rem,2vw,1.15rem);
  border:1px solid var(--ek-border);border-radius:var(--ek-radius);
  background:var(--ek-cream);gap:.7rem;
}
.ek-directory__search input,.ek-directory__search select {
  border:1px solid #9eb8aa;border-radius:7px;
  background:#fff;color:var(--ek-ink);
  min-height:2.6rem;max-width:100%;font:inherit;
}
.ek-directory__search button{
  width:auto;max-width:100%;min-height:2.6rem;
  border-radius:7px;border:1px solid var(--ek-primary);
  background:var(--ek-primary);color:white;
  padding:.4rem 1rem;font:inherit;font-weight:650;cursor:pointer;
}
.ek-directory__search button:hover{
  background:#173c2b;
}
.ek-directory__pagination a[aria-current="page"]{
  background:var(--ek-primary);color:white;border-color:var(--ek-primary);
}
.ek-directory__kind{color:var(--ek-primary)}
.ek-parish-home__nav-card{background:var(--ek-surface);box-shadow:0 3px 12px rgba(18,55,37,.045)}
.ek-parish-site-nav {
  border:1px solid var(--ek-border);
  border-radius:var(--ek-radius);
  background:var(--ek-cream);
}
.ek-parish-site-nav a:focus-visible,
.ek-parish-home__nav-card:focus-visible{
  outline:3px solid var(--ek-primary);outline-offset:2px;
}
.ek-social-links__link{
  background:var(--ek-primary-soft);color:var(--ek-primary);
  border-color:var(--ek-border);
}
.ek-donation-box__bank{background:var(--ek-cream)}
.ek-donation-box__checkout{background:var(--ek-primary);color:white}
.ek-donation-box__checkout:hover{background:#173c2b;color:white}
.ek-related__section{min-width:0}
.ek-profile__links{display:flex;flex-wrap:wrap;gap:.55rem}
.ek-profile__website{max-width:100%;overflow-wrap:anywhere}
/* Gutenberg Post Content inside a reusable Oxygen Template Content Area. */
.ek-design-content {
  max-width:var(--ek-maxwidth);margin-inline:auto;
  overflow-wrap:anywhere;
}
.ek-design-content :where(p,li){line-height:1.7}
.ek-design-content :where(img,video,iframe){max-width:100%;height:auto}
.ek-design-content :where(table){display:block;overflow-x:auto;max-width:100%}
.ek-design-content :where(blockquote){
  border-left:3px solid var(--ek-gold);
  padding:.35rem 1rem;margin-inline:0;background:var(--ek-cream);
}
@media(max-width:650px){
  .ek-design-shell{padding-inline:1rem}
  .ek-parish-home__hero{padding:1.2rem}
  .ek-directory__search{align-items:stretch}
  .ek-directory__search input,.ek-directory__search select,
  .ek-directory__search button{flex-basis:100%;width:100%}
  .ek-design-content{padding-inline:.25rem}
}
@media(prefers-reduced-motion:reduce) {
  .ek-design *, .ek-directory *, .ek-parish-home *{
    animation-duration:.01ms!important;transition-duration:.01ms!important;
  }
}
@media(prefers-contrast:more){
  .ek-parish-card,.ek-parish-home__card,.ek-directory__card,
  .ek-donation-box,.ek-pastoral-care,.ek-social-links{
    border-width:2px;
  }
}

/* Shared interior content area on the Oxygen 6.2 parish templates. */
.bde-themeless-template-content-area{
  display:block;width:min(calc(100% - 2rem),1160px);max-width:1160px;
  margin-inline:auto;padding-block:clamp(1.5rem,4vw,3.25rem);
  color:#1d3129;line-height:1.7;overflow-wrap:anywhere;
}
.bde-themeless-template-content-area :where(h1,h2,h3){
  color:#22583e;line-height:1.2;letter-spacing:-.02em;
}
.bde-themeless-template-content-area h1{font-size:clamp(1.8rem,4vw,2.7rem);margin-block:0 1.4rem}
.ek-template-title{font-size:clamp(1.8rem,4vw,2.7rem);margin:0 0 1.4rem;color:#22583e;line-height:1.2;letter-spacing:-.02em}
.bde-themeless-template-content-area h2{font-size:clamp(1.4rem,3vw,2rem);margin-block:2rem .8rem}
.bde-themeless-template-content-area :where(img,video,iframe){max-width:100%;height:auto}
.bde-themeless-template-content-area :where(table){display:block;max-width:100%;overflow-x:auto}
.bde-themeless-template-content-area :where(blockquote){
  margin-inline:0;padding:.75rem 1rem;border-left:3px solid #b38a4a;background:#faf6ed;
}
.ek-native-header{
  width:100%;background:var(--ek-brand-cream,#faf6ed);
  border-bottom:2px solid var(--ek-brand-gold,#b38a4a);
}
.ek-native-header__inner{
  display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1.5rem;
  padding-block:clamp(.85rem,2vw,1.35rem);
}
.ek-native-header .oxy-shortcode{flex:1 1 30rem;min-width:0}
.ek-native-header .ek-parish-site-nav{
  border:0;background:transparent;border-radius:0;
}
.ek-native-header .ek-parish-site-nav__links{
  display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;
}
.ek-native-header .ek-parish-site-nav__links a{
  display:inline-flex;align-items:center;min-height:2.65rem;padding:.5rem .8rem;
  border-radius:7px;color:var(--ek-brand-primary,#22583e);font-weight:600;
  text-decoration:none;transition:background-color .15s ease,color .15s ease;
}
.ek-native-header .ek-parish-site-nav__links a:hover,
.ek-native-header .ek-parish-site-nav__links a[aria-current="page"]{
  background:var(--ek-brand-primary,#22583e);color:#fff;
}
.ek-native-header .ek-parish-site-nav__links a:focus-visible{
  outline:3px solid var(--ek-brand-primary,#22583e);outline-offset:2px;
}
.ek-native-brand:hover{text-decoration:underline;text-underline-offset:.15em}
.ek-native-footer{
  width:100%;padding-block:clamp(1.15rem,3vw,2rem);
  border-top:1px solid var(--ek-brand-border,#d9e4dc);
  background:var(--ek-brand-cream,#faf6ed);color:var(--ek-brand-muted,#53665b);
  font-size:.92rem;
}
.ek-native-footer__inner p{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
  gap:.75rem 1.5rem;margin:0;
}
.ek-native-footer a{font-weight:600}
@media(max-width:700px){
  .ek-native-header__inner{align-items:stretch;gap:.65rem}
  .ek-native-header .oxy-shortcode{flex-basis:100%}
  .ek-native-header .ek-parish-site-nav__links{gap:.2rem}
  .ek-native-header .ek-parish-site-nav__links a{padding-inline:.55rem;font-size:.92rem}
  .bde-themeless-template-content-area{width:min(calc(100% - 1.5rem),1160px)}
}

/* Native Oxygen 6.2 site shells generated through the official Abilities API. */
.ek-native-header{
  display:flex;align-items:center;flex-wrap:wrap;
  gap:.6rem 1.2rem;
  padding-block:clamp(.85rem,2vw,1.35rem);
  border-bottom:2px solid var(--ek-brand-gold,#b38a4a);
  background:var(--ek-brand-cream,#faf6ed);
}
.ek-native-brand{
  display:inline-flex;align-items:center;min-width:0;
  font-size:clamp(1.1rem,2.4vw,1.5rem);line-height:1.25;
  font-weight:700;letter-spacing:-.012em;
  color:var(--ek-brand-primary,#22583e);
  text-decoration:none;overflow-wrap:anywhere;
}
.ek-native-header .oxy-shortcode{flex:1 1 20rem;min-width:0}
.ek-native-footer{
  padding-block:clamp(1.15rem,3vw,2rem);
  border-top:1px solid var(--ek-brand-border,#d9e4dc);
  background:var(--ek-brand-cream,#faf6ed);
  color:var(--ek-brand-muted,#53665b);
  font-size:.9rem;
}
.ek-native-footer p{margin:0}
.ek-native-header a:focus-visible,.ek-native-footer a:focus-visible{
  outline:3px solid var(--ek-brand-primary,#22583e);
  outline-offset:3px;
}

/* Optional local church-maintenance contribution, not a donation/payment ledger. */
.ek-contribution{
  --ek-c-primary:var(--ek-brand-primary,#22583e);
  --ek-c-border:var(--ek-brand-border,#d9e4dc);
  color:var(--ek-brand-ink,#1d3129);background:var(--ek-brand-surface,#fff);
  border:1px solid var(--ek-c-border);border-radius:var(--ek-brand-radius,12px);
  padding:clamp(1rem,2.5vw,1.6rem);margin-block:1.25rem;max-width:100%;
}
.ek-contribution h2{margin:0 0 .6rem;font-size:clamp(1.24rem,2.8vw,1.55rem);color:var(--ek-c-primary)}
.ek-contribution h3{font-size:1.05rem;margin:.15rem 0 .6rem}
.ek-contribution__choices{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-block:1rem}
.ek-contribution__choices label{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;font-weight:600}
.ek-contribution__choices select{
  font:inherit;min-height:2.55rem;border:1px solid #8ba99a;border-radius:7px;
  padding:.35rem .7rem;background:white;color:#173b2a;max-width:100%;
}
.ek-contribution__bank,.ek-contribution__online{
  background:var(--ek-brand-cream,#faf6ed);
  border:1px solid var(--ek-c-border);padding:1rem;
  border-radius:9px;margin-block:.8rem;
}
.ek-contribution__bank dl{
  display:grid;grid-template-columns:minmax(8rem,13rem) minmax(0,1fr);
  gap:.25rem 1rem;margin:0 0 1rem;
}
.ek-contribution__bank dt{font-weight:650}
.ek-contribution__bank dd{margin:0;overflow-wrap:anywhere}
.ek-contribution__bank button,
.ek-contribution__online a{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--ek-c-primary);color:white;border:1px solid var(--ek-c-primary);
  border-radius:7px;padding:.55rem 1rem;text-decoration:none;min-height:2.65rem;
  font:inherit;font-weight:650;cursor:pointer;
}
.ek-contribution__bank button[hidden]{display:none}
.ek-contribution__bank button:hover,.ek-contribution__online a:hover{background:#173c2b;color:white}
.ek-contribution :where(a,button,select):focus-visible{outline:3px solid #986b2a;outline-offset:3px}
.ek-contribution__notice{font-size:.88rem;color:var(--ek-brand-muted,#53665b)}
@media(max-width:600px){
  .ek-contribution__bank dl{grid-template-columns:1fr;gap:.1rem}
  .ek-contribution__bank dt:not(:first-child){margin-top:.6rem}
  .ek-contribution__choices label{width:100%;align-items:stretch;flex-direction:column}
  .ek-contribution__choices select{width:100%}
}

/*
 * Consistent 20px page spacing on all four sides (desktop and mobile).
 * The native Oxygen Template Content Area is the outer page boundary.
 * Nested Oxygen brand shells consume that spacing only once.
 */
.ek-design-shell {
  padding: 20px;
  box-sizing: border-box;
}
.bde-themeless-template-content-area {
  width: min(calc(100% - 40px), 1160px);
  max-width: 1160px;
  margin: 20px auto;
  padding: 0;
  box-sizing: border-box;
}
.ek-design-shell .bde-themeless-template-content-area {
  width: 100%;
  max-width: 100%;
  margin: 0;
}
/* The header/footer background stays full width; inner content has 20px. */
.ek-native-header,
.ek-native-footer {
  padding-block: 0;
}
.ek-native-header__inner.ek-design-shell,
.ek-native-footer__inner.ek-design-shell {
  padding: 20px;
}
/* Do not reintroduce 16px or 12px mobile overrides. */
@media (max-width: 700px) {
  .bde-themeless-template-content-area {
    width: calc(100% - 40px);
  }
  .ek-design-shell { padding: 20px; }
  .ek-design-content { padding-inline: 0; }
}

/* Multiple services recorded in one weekday row remain distinct on the public timetable. */
.ek-mass-schedule__time-slot { display:block; margin-block:.12rem; white-space:nowrap; }
.ek-mass-schedule__time-slot .ek-online-mise__schedule-link { display:inline-block; margin-inline-start:.4rem; white-space:normal; }

/*
 * Local parish homepage wallpaper: one image fills the viewport at every
 * aspect ratio. A high-opacity cream overlay keeps Oxygen/WordPress text
 * readable without modifying the uploaded photograph. The fixed pseudo-
 * element avoids unreliable mobile background-attachment: fixed handling.
 */
body.ek-parish-wallpaper {
  background-color:transparent!important;
  background-image:none!important;
  isolation:isolate;
}
body.ek-parish-wallpaper::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background-color:#fbfaf7;
  background-image:
    linear-gradient(rgba(251,250,247,var(--ek-parish-wallpaper-overlay-opacity,.84)),rgba(251,250,247,var(--ek-parish-wallpaper-overlay-opacity,.84))),
    var(--ek-parish-wallpaper-image);
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
}
@media (prefers-contrast: more), (forced-colors: active) {
  body.ek-parish-wallpaper::before {
    background-image:none;
    background-color:#fff;
  }
}
