/* Parohia Ortodoxă Buteasa — public frontend rebuild.
 * Editorial content remains editable in SP Page Builder and Joomla Articles.
 */
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Source+Sans+3:wght@400;500;600&display=swap");

/* 01. Variables and base */
:root {
  --pb-forest-950: #0b1712;
  --pb-forest-900: #101f18;
  --pb-forest-800: #1c2d24;
  --pb-forest-700: #293b30;
  --pb-ivory: #f4efe5;
  --pb-paper: #fbf8f2;
  --pb-charcoal: #181916;
  --pb-stone: #777269;
  --pb-bronze: #a47b46;
  --pb-bronze-soft: #c3a475;
  --pb-line-dark: rgba(251, 248, 242, 0.18);
  --pb-line-light: #d8d0c2;
  --pb-heading: "Cormorant Garamond", Georgia, serif;
  --pb-body: "Source Sans 3", system-ui, sans-serif;
  --pb-max: 92rem;
  --pb-inset: clamp(1.25rem, 4.5vw, 4.75rem);
  --pb-section-space: clamp(5.25rem, 9vw, 9.5rem);
  --pb-h1: clamp(4.5rem, 8.2vw, 8.75rem);
  --pb-h2: clamp(2.8rem, 5vw, 5.4rem);
  --pb-h3: clamp(1.65rem, 2.5vw, 2.6rem);
}

html { overflow-x: clip; scroll-behavior: smooth; }

body.site {
  margin: 0;
  overflow-x: clip;
  color: var(--pb-charcoal);
  background: var(--pb-ivory);
  font-family: var(--pb-body);
  font-size: clamp(1rem, 0.96rem + 0.17vw, 1.1rem);
  font-weight: 400;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
}

body.site *, body.site *::before, body.site *::after { box-sizing: border-box; }
body.site img, body.site video { max-width: 100%; }
body.site a { text-underline-offset: 0.2em; }

body.site :where(a, button, input, textarea, select):focus-visible {
  outline: 2px solid var(--pb-bronze-soft);
  outline-offset: 4px;
}

body.site :is(.pb-side-rail, .pb-rail-nav, .pb-floating-nav, .pb-hotspot, [class*="pb-right-rail"]) { display: none !important; }

/* 02. Header and navigation */
body.site #sp-top-bar { display: none; }

body.site #sp-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  height: 92px;
  color: var(--pb-paper);
  background: rgba(9, 22, 16, 0.9);
  border-bottom: 1px solid rgba(251, 248, 242, 0.13);
  box-shadow: none;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

body.site #sp-header.header-sticky { background: rgba(9, 22, 16, 0.97); box-shadow: 0 14px 42px rgba(4, 11, 7, 0.14); }

body.site #sp-header .container {
  width: 100%;
  max-width: 100rem;
  padding-inline: clamp(1.1rem, 3.5vw, 3.75rem);
}

body.site #sp-header .logo,
body.site #sp-header .logo a {
  display: inline-flex;
  align-items: center;
  height: 92px;
  min-height: 48px;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

body.site #sp-header .logo img { display: block; width: auto; height: 72px; max-width: 76px; object-fit: contain; }
body.site #sp-header .sp-megamenu-parent { display: flex; align-items: center; gap: clamp(0.05rem, 0.42vw, 0.55rem); }

body.site #sp-header .sp-megamenu-parent > li > :is(a, span) {
  position: relative;
  display: flex;
  align-items: center;
  height: 92px;
  padding-inline: clamp(0.38rem, 0.58vw, 0.7rem);
  color: var(--pb-paper);
  font-family: var(--pb-body);
  font-size: clamp(0.76rem, 0.65rem + 0.12vw, 0.88rem);
  font-weight: 500;
  letter-spacing: 0.018em;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
}

body.site #sp-header .sp-megamenu-parent > li > a::after {
  content: "";
  position: absolute;
  right: 0.55rem;
  bottom: 1.25rem;
  left: 0.55rem;
  height: 1px;
  background: var(--pb-bronze-soft);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}

body.site #sp-header .sp-megamenu-parent > li:is(.active, :hover) > a::after { transform: scaleX(1); }
body.site #offcanvas-toggler { display: none; align-items: center; justify-content: center; width: 48px; height: 48px; color: var(--pb-paper); }
body.site #offcanvas-toggler .burger-icon > span { background: var(--pb-paper); }

body.site .offcanvas-menu {
  color: var(--pb-charcoal);
  background: var(--pb-paper);
  box-shadow: -2rem 0 6rem rgba(4, 12, 8, 0.24);
}

body.site .offcanvas-menu .offcanvas-inner { padding: 2rem clamp(1.4rem, 6vw, 2.5rem); }
body.site .offcanvas-menu .close-offcanvas { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; color: var(--pb-charcoal); border: 1px solid var(--pb-line-light); border-radius: 50%; }
body.site .offcanvas-menu .offcanvas-inner ul.menu { margin-top: 3rem; }

body.site .offcanvas-menu .offcanvas-inner ul.menu li > a {
  display: flex;
  align-items: center;
  min-height: 54px;
  padding-block: 0.8rem;
  color: var(--pb-charcoal);
  border-bottom: 1px solid var(--pb-line-light);
  font-family: var(--pb-heading);
  font-size: 1.48rem;
  font-weight: 600;
  line-height: 1.15;
}

body.site .offcanvas-menu .offcanvas-inner ul.menu li.active > a { color: var(--pb-bronze); }

/* 03. Shared SP Page Builder layout */
body.site #sp-main-body { min-height: 60vh; padding: calc(92px + 4rem) 0 4rem; }
body.site #sp-main-body:has(#sp-page-builder) { padding: 0; }

body.site #sp-main-body:has(#sp-page-builder) > :is(.container, .container-fluid),
body.site #sp-main-body:has(#sp-page-builder) #sp-component { width: 100%; max-width: none; padding: 0; }

body.site #sp-main-body:has(#sp-page-builder) > .row,
body.site #sp-main-body:has(#sp-page-builder) > .container > .row,
body.site #sp-main-body:has(#sp-page-builder) > .container-fluid > .row { margin-inline: 0; }

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-section) {
  position: relative;
  margin: 0;
  padding-block: var(--pb-section-space);
  color: var(--pb-charcoal);
  background: var(--pb-ivory);
  overflow: clip;
}

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-section) > .sppb-row-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--pb-max);
  margin-inline: auto;
  padding-inline: var(--pb-inset);
}

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-section) .sppb-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.75rem, 6.5vw, 7.5rem);
  align-items: start;
  margin: 0;
}

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-section) .sppb-row:has(> div:nth-child(2)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-section) .sppb-row > div {
  width: 100%;
  max-width: none;
  min-width: 0;
  padding: 0;
}

body.site #sp-main-body #sp-page-builder .pb-addon { font-family: var(--pb-body); font-size: inherit; line-height: 1.68; overflow-wrap: anywhere; }

body.site #sp-main-body #sp-page-builder .sppb-addon-wrapper:has(> .pb-addon:empty),
body.site #sp-main-body #sp-page-builder .pb-section:empty,
body.site #sp-main-body #sp-page-builder .pb-hero:empty,
body.site #sp-main-body #sp-page-builder .pb-gallery:empty,
body.site #sp-main-body #sp-page-builder .pb-contact:empty,
body.site #sp-main-body #sp-page-builder .pb-timeline:empty { display: none; }

body.site #sp-main-body #sp-page-builder .pb-heading :is(h1, h2, h3) {
  max-width: 17ch;
  margin: 0 0 clamp(1.45rem, 2.8vw, 2.5rem);
  padding: 0;
  color: inherit;
  font-family: var(--pb-heading);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.98;
  text-wrap: balance;
}

body.site #sp-main-body #sp-page-builder .pb-heading h1 { font-size: var(--pb-h1); }
body.site #sp-main-body #sp-page-builder .pb-heading h2 { font-size: var(--pb-h2); }
body.site #sp-main-body #sp-page-builder .pb-heading h3 { font-size: var(--pb-h3); line-height: 1.08; }
body.site #sp-main-body #sp-page-builder .pb-copy p { max-width: 62ch; margin: 0 0 1.1rem; }
body.site #sp-main-body #sp-page-builder .pb-copy p:last-child { margin-bottom: 0; }
body.site #sp-main-body #sp-page-builder .pb-copy strong { font-weight: 600; }
body.site #sp-main-body #sp-page-builder .pb-copy address { margin: 0; font-style: normal; }
body.site #sp-main-body #sp-page-builder .pb-lead { max-width: 44ch; font-size: clamp(1.16rem, 1.03rem + 0.43vw, 1.48rem); line-height: 1.56; }

body.site #sp-main-body #sp-page-builder .pb-kicker {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0 0 1.65rem;
  color: var(--pb-bronze);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1.4;
  text-transform: uppercase;
}

body.site #sp-main-body #sp-page-builder .pb-kicker::before { content: ""; width: 2.1rem; height: 1px; flex: 0 0 2.1rem; background: currentColor; }

body.site #sp-main-body #sp-page-builder :is(.pb-button.sppb-btn, .pb-button .sppb-btn) {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.75rem;
  min-height: 52px;
  margin-top: 1.4rem;
  padding: 0.82rem 1.2rem;
  color: var(--pb-paper);
  background: var(--pb-forest-800);
  border: 1px solid var(--pb-forest-800);
  border-radius: 0;
  box-shadow: none;
  font-family: var(--pb-body);
  font-size: 0.91rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

body.site #sp-main-body #sp-page-builder :is(.pb-button.sppb-btn, .pb-button .sppb-btn)::after {
  content: "";
  width: 0.58rem;
  height: 0.58rem;
  flex: 0 0 0.58rem;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}

body.site #sp-main-body #sp-page-builder :is(.pb-button.sppb-btn, .pb-button .sppb-btn):hover { color: var(--pb-paper); background: var(--pb-charcoal); border-color: var(--pb-charcoal); transform: translateY(-2px); }
body.site #sp-main-body #sp-page-builder :is(.pb-button-light.sppb-btn, .pb-button-light .sppb-btn) { color: var(--pb-forest-950); background: var(--pb-paper); border-color: var(--pb-paper); }
body.site #sp-main-body #sp-page-builder :is(.pb-button-light.sppb-btn, .pb-button-light .sppb-btn):hover { color: var(--pb-forest-950); background: #e8dfd0; border-color: #e8dfd0; }
body.site #sp-main-body #sp-page-builder :is(.pb-button-ghost.sppb-btn, .pb-button-ghost .sppb-btn) { color: inherit; background: transparent; border-color: currentColor; }
body.site #sp-main-body #sp-page-builder :is(.pb-button-ghost.sppb-btn, .pb-button-ghost .sppb-btn):hover { color: var(--pb-forest-950); background: var(--pb-paper); border-color: var(--pb-paper); }

body.site #sp-main-body #sp-page-builder .pb-image img { display: block; width: 100%; height: auto; border-radius: 0; }
body.site #sp-main-body #sp-page-builder .pb-image .sppb-addon-single-image-container,
body.site #sp-main-body #sp-page-builder .pb-image a { display: block; width: 100%; }
body.site #sp-main-body #sp-page-builder .pb-image a { transition: opacity 180ms ease; }
body.site #sp-main-body #sp-page-builder .pb-image a:hover { opacity: 0.92; }
body.site #sp-main-body #sp-page-builder .pb-caption { margin-top: 0.75rem; color: inherit; font-size: 0.82rem; line-height: 1.5; opacity: 0.68; }
body.site #sp-main-body #sp-page-builder .pb-caption p { max-width: 50ch; }

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-paper) { background: var(--pb-paper); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-ivory) { background: var(--pb-ivory); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-forest) { color: var(--pb-paper); background: var(--pb-forest-950); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-forest) .pb-kicker { color: var(--pb-bronze-soft); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-split) .sppb-row { align-items: center; }

/* 04. Homepage */
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) {
  isolation: isolate;
  min-height: min(100svh, 62rem);
  padding: 0;
  color: var(--pb-paper);
  background: var(--pb-forest-950);
}

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(6, 17, 11, 0.91) 0%, rgba(6, 17, 11, 0.59) 48%, rgba(6, 17, 11, 0.2) 78%), linear-gradient(0deg, rgba(6, 17, 11, 0.72), transparent 48%), linear-gradient(180deg, rgba(6, 17, 11, 0.48), transparent 34%);
  pointer-events: none;
}

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) .section-bg-video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
  filter: saturate(0.74) contrast(1.04) brightness(0.86);
}

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) > .sppb-row-container {
  display: flex;
  align-items: flex-end;
  min-height: min(100svh, 62rem);
  padding-top: 9rem;
  padding-bottom: clamp(3.75rem, 8vh, 6.5rem);
}

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) .sppb-row { width: 100%; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) .sppb-row > div { max-width: 62rem; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) h1 { max-width: 8.4ch; margin-bottom: 1.25rem; font-size: var(--pb-h1); text-shadow: 0 5px 42px rgba(0, 0, 0, 0.25); }

body.site #sp-main-body #sp-page-builder .pb-hero-place {
  max-width: 34ch;
  color: rgba(251, 248, 242, 0.9);
  font-family: var(--pb-heading);
  font-size: clamp(1.35rem, 1.06rem + 0.8vw, 1.95rem);
  line-height: 1.25;
}

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) .sppb-addon-wrapper:has(.pb-hero-action) { display: inline-block; margin-right: 0.65rem; vertical-align: top; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-intro) .sppb-row { grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr); align-items: end; }

body.site #sp-main-body #sp-page-builder .pb-intro-note {
  max-width: 27ch;
  margin-left: auto;
  padding-top: 1.25rem;
  border-top: 1px solid var(--pb-line-light);
  color: var(--pb-stone);
  font-family: var(--pb-heading);
  font-size: clamp(1.35rem, 1.15rem + 0.52vw, 1.8rem);
  line-height: 1.32;
}

.pb-facts { margin: 0; border-top: 1px solid var(--pb-line-light); }
.pb-facts > div { display: grid; grid-template-columns: minmax(8.5rem, 0.8fr) minmax(0, 1.2fr); gap: 1.25rem; align-items: baseline; padding-block: 1rem; border-bottom: 1px solid var(--pb-line-light); }
.pb-facts dt { color: var(--pb-stone); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.pb-facts dd { margin: 0; font-family: var(--pb-heading); font-size: clamp(1.25rem, 1.07rem + 0.48vw, 1.7rem); font-weight: 600; line-height: 1.18; }

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-monument) .sppb-row { grid-template-columns: minmax(0, 1.15fr) minmax(22rem, 0.85fr); }
body.site #sp-main-body #sp-page-builder .pb-monument-image img { height: clamp(38rem, 65vw, 54rem); object-fit: cover; object-position: center 42%; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-architecture) .sppb-row { grid-template-columns: minmax(20rem, 0.82fr) minmax(0, 1.18fr); }
body.site #sp-main-body #sp-page-builder .pb-architecture-image img { height: clamp(32rem, 53vw, 46rem); object-fit: cover; object-position: center; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-history) { border-block: 1px solid var(--pb-line-light); }

.pb-home-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: clamp(2.5rem, 5vw, 4.5rem) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--pb-line-light); }
.pb-home-timeline li { min-height: 13.5rem; padding: 1.65rem 1.75rem 1.4rem 0; border-right: 1px solid var(--pb-line-light); border-bottom: 1px solid var(--pb-line-light); }
.pb-home-timeline li:nth-child(3n) { border-right: 0; }
.pb-home-timeline time { display: block; margin-bottom: 1.05rem; color: var(--pb-bronze); font-family: var(--pb-heading); font-size: clamp(1.65rem, 2.45vw, 2.65rem); font-weight: 600; line-height: 1; }
.pb-home-timeline p { max-width: 25ch; margin: 0; font-size: 0.96rem; line-height: 1.55; }

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-restoration) .sppb-row { grid-template-columns: minmax(0, 1.1fr) minmax(21rem, 0.9fr); }
body.site #sp-main-body #sp-page-builder .pb-restoration-image img { height: clamp(34rem, 58vw, 48rem); object-fit: cover; object-position: center; filter: saturate(0.72) contrast(1.03); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-craft) .sppb-row { grid-template-columns: minmax(20rem, 0.78fr) minmax(0, 1.22fr); }
body.site #sp-main-body #sp-page-builder .pb-craft-image img { height: clamp(34rem, 55vw, 48rem); object-fit: cover; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-gallery) .sppb-row { grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr); align-items: end; }
body.site #sp-main-body #sp-page-builder .pb-gallery-feature { margin-top: clamp(2.5rem, 5vw, 4.5rem); }
body.site #sp-main-body #sp-page-builder .pb-gallery-feature img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center 38%; }
body.site #sp-main-body #sp-page-builder .pb-gallery-secondary { margin-bottom: clamp(1.2rem, 2vw, 2rem); }
body.site #sp-main-body #sp-page-builder .pb-gallery-secondary img { aspect-ratio: 3 / 2; object-fit: cover; }

body.site #sp-main-body #sp-page-builder :is(.pb-gallery, .pb-gallery-item, .pb-gallery-feature, .pb-gallery-secondary) :is(.sppb-img-container, .sppb-addon-single-image-container, a)::before,
body.site #sp-main-body #sp-page-builder :is(.pb-gallery, .pb-gallery-item, .pb-gallery-feature, .pb-gallery-secondary) :is(.sppb-img-container, .sppb-addon-single-image-container, a)::after,
body.site #sp-main-body #sp-page-builder :is(.pb-gallery, .pb-gallery-item, .pb-gallery-feature, .pb-gallery-secondary) :is(.sppb-img-hover-icon, .sppb-image-overlay, .sppb-img-overlay) { display: none !important; content: none !important; }

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-news) { border-top: 1px solid var(--pb-line-light); }
body.site #sp-main-body #sp-page-builder .pb-news-feed { margin-top: 2.5rem; }
body.site #sp-main-body #sp-page-builder .pb-news-module { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
body.site #sp-main-body #sp-page-builder .pb-news-module > * { padding-top: 1.25rem; border-top: 1px solid var(--pb-line-light); }
body.site #sp-main-body #sp-page-builder .pb-news-module img { aspect-ratio: 4 / 3; object-fit: cover; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-contact) .sppb-row { grid-template-columns: minmax(19rem, 0.72fr) minmax(0, 1.28fr); }
body.site #sp-main-body #sp-page-builder .pb-contact-address { color: inherit; font-family: var(--pb-heading); font-size: clamp(1.45rem, 1.12rem + 0.8vw, 2.15rem); line-height: 1.35; }
body.site #sp-main-body #sp-page-builder .pb-closing-image img { height: clamp(28rem, 45vw, 39rem); object-fit: cover; object-position: center; filter: saturate(0.68) brightness(0.84); }

/* 05. Dedicated pages */
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) { isolation: isolate; min-height: min(82svh, 52rem); padding: 0; color: var(--pb-paper); background: var(--pb-forest-950); }

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(5, 16, 10, 0.94) 0%, rgba(5, 16, 10, 0.66) 46%, rgba(5, 16, 10, 0.22) 80%);
  pointer-events: none;
}

body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) > .sppb-row-container { display: flex; align-items: flex-end; min-height: min(82svh, 52rem); padding-top: 9rem; padding-bottom: clamp(4rem, 8vh, 6.5rem); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) .sppb-row { width: 100%; grid-template-columns: minmax(0, 1fr); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) .sppb-row > div:first-child { position: relative; z-index: 2; max-width: 45rem; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) .sppb-row > div:last-child { position: absolute; inset: 0; z-index: 0; }
body.site #sp-main-body #sp-page-builder .pb-page-hero-image,
body.site #sp-main-body #sp-page-builder .pb-page-hero-image .sppb-addon-content,
body.site #sp-main-body #sp-page-builder .pb-page-hero-image .sppb-addon-single-image-container,
body.site #sp-main-body #sp-page-builder .pb-page-hero-image img { width: 100%; height: 100%; }
body.site #sp-main-body #sp-page-builder .pb-page-hero-image img { object-fit: cover; object-position: center 42%; filter: saturate(0.66) brightness(0.72); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) h1 { max-width: 9ch; font-size: clamp(3.75rem, 7vw, 7.5rem); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) .pb-lead { color: rgba(251, 248, 242, 0.84); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-history-hero) .pb-page-hero-image img { object-position: center 56%; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-restoration-hero) .pb-page-hero-image img { object-position: center 44%; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-parish-hero) h1 { max-width: 12ch; }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-parish-hero) .pb-page-hero-image img { object-position: center 38%; }

body.site #sp-main-body #sp-page-builder .pb-church-elevation img,
body.site #sp-main-body #sp-page-builder .pb-parish-image img { height: clamp(34rem, 58vw, 48rem); object-fit: cover; }
body.site #sp-main-body #sp-page-builder .pb-system-detail img,
body.site #sp-main-body #sp-page-builder .pb-history-art-image img,
body.site #sp-main-body #sp-page-builder .pb-authenticity-image img { height: clamp(31rem, 48vw, 43rem); object-fit: cover; }

body.site #sp-main-body #sp-page-builder .pb-measure { max-width: none; margin-top: 2.2rem; padding-top: 1.25rem; border-top: 1px solid var(--pb-line-light); color: var(--pb-stone); font-size: 0.82rem; letter-spacing: 0.1em; text-transform: uppercase; }
body.site #sp-main-body #sp-page-builder .pb-measure strong { display: block; margin-top: 0.25rem; color: var(--pb-charcoal); font-family: var(--pb-heading); font-size: clamp(2.15rem, 3.4vw, 3.6rem); font-weight: 500; letter-spacing: -0.03em; line-height: 1; text-transform: none; }

.pb-quote-note { max-width: 28ch; margin-left: auto; padding: 1.4rem 0 0 1.5rem; border-top: 1px solid var(--pb-line-light); border-left: 1px solid var(--pb-line-light); color: var(--pb-stone); font-family: var(--pb-heading); font-size: clamp(1.4rem, 1.12rem + 0.65vw, 1.95rem); line-height: 1.35; }

.pb-timeline { position: relative; max-width: 72rem; margin: clamp(3rem, 6vw, 5.5rem) auto 0; padding: 0; list-style: none; }
.pb-timeline::before { content: ""; position: absolute; top: 0.55rem; bottom: 0; left: 12.25rem; width: 1px; background: var(--pb-line-light); }
.pb-timeline li { position: relative; display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: 4.5rem; padding-bottom: 2.75rem; }
.pb-timeline li::before { content: ""; position: absolute; top: 0.45rem; left: calc(12.25rem - 0.31rem); width: 0.62rem; height: 0.62rem; background: var(--pb-bronze); border-radius: 50%; }
.pb-timeline time { color: var(--pb-bronze); font-family: var(--pb-heading); font-size: 1.55rem; font-weight: 600; line-height: 1.1; text-align: right; }
.pb-timeline p { max-width: 54ch; margin: 0; }

body.site #sp-main-body #sp-page-builder .pb-collapse-image img { height: clamp(31rem, 48vw, 42rem); object-fit: cover; filter: saturate(0.62) contrast(1.08); }
.pb-stage-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(2.5rem, 5vw, 4.5rem); border-top: 1px solid var(--pb-line-light); }
.pb-stage-list article { padding: 1.5rem 1.5rem 0 0; border-right: 1px solid var(--pb-line-light); }
.pb-stage-list article:last-child { border-right: 0; }
.pb-stage-list span { color: var(--pb-bronze); font-family: var(--pb-heading); font-size: 1.55rem; font-weight: 600; }
.pb-stage-list h3 { margin: 2.75rem 0 0.7rem; font-family: var(--pb-heading); font-size: 1.75rem; font-weight: 600; line-height: 1.1; }
.pb-stage-list p { margin: 0; font-size: 0.94rem; line-height: 1.55; }

.pb-works { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--pb-line-light); counter-reset: works; }
.pb-works li { position: relative; min-height: 7.5rem; padding: 1.25rem 1rem 1.25rem 2.8rem; border-bottom: 1px solid var(--pb-line-light); counter-increment: works; }
.pb-works li::before { content: counter(works, decimal-leading-zero); position: absolute; top: 1.25rem; left: 0; color: var(--pb-bronze); font-family: var(--pb-heading); font-size: 1.15rem; }

.pb-community-sequence { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: clamp(2.5rem, 5vw, 4.5rem) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--pb-line-dark); }
.pb-community-sequence li { min-height: 13rem; padding: 1.6rem 1.7rem 1rem 0; border-right: 1px solid var(--pb-line-dark); }
.pb-community-sequence li:last-child { border-right: 0; }
.pb-community-sequence time { color: var(--pb-bronze-soft); font-family: var(--pb-heading); font-size: 2.35rem; }
.pb-community-sequence p { max-width: 29ch; margin: 1.1rem 0 0; }

.pb-future-note { max-width: 30rem; margin-left: auto; padding: 1.6rem 0 0 1.6rem; border-top: 1px solid var(--pb-line-light); border-left: 1px solid var(--pb-line-light); }
.pb-future-label { color: var(--pb-bronze); font-size: 0.74rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }

/* 06. Gallery */
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-gallery-grid) .sppb-row { align-items: start; gap: clamp(1.5rem, 4vw, 4rem); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-gallery-grid) .sppb-row > div:last-child { padding-top: clamp(6rem, 12vw, 13rem); }
body.site #sp-main-body #sp-page-builder .pb-gallery-item { margin-top: clamp(2.5rem, 5vw, 5rem); }
body.site #sp-main-body #sp-page-builder .pb-gallery-item:first-child { margin-top: 0; }
body.site #sp-main-body #sp-page-builder .pb-gallery-portrait img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center 38%; }
body.site #sp-main-body #sp-page-builder .pb-gallery-landscape img { aspect-ratio: 5 / 4; object-fit: cover; }
body.site #sp-main-body #sp-page-builder .pb-gallery-detail { width: 78%; margin-left: auto; }
body.site #sp-main-body #sp-page-builder .pb-gallery-detail img { aspect-ratio: 4 / 5; object-fit: cover; }
body.site #sp-main-body #sp-page-builder .pb-gallery-document img { aspect-ratio: 5 / 4; object-fit: cover; filter: saturate(0.7); }

/* 07. Contact and native Joomla news */
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-contact-opening) { min-height: min(86svh, 55rem); padding-top: clamp(10rem, 18vh, 13rem); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-contact-opening) .sppb-row { grid-template-columns: minmax(19rem, 0.75fr) minmax(0, 1.25fr); }
body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-contact-opening) h1 { font-size: clamp(3.8rem, 7vw, 7.4rem); }
body.site #sp-main-body #sp-page-builder .pb-contact-opening-image img { height: min(62vh, 39rem); object-fit: cover; object-position: center; filter: saturate(0.68); }
body.site #sp-main-body #sp-page-builder .pb-contact-dedication { font-family: var(--pb-heading); font-size: 1.55rem; line-height: 1.3; }
body.site #sp-main-body #sp-page-builder .pb-contact-details a { color: var(--pb-forest-800); }

body.site #sp-main-body .pb-news-page,
body.site #sp-main-body .blog { width: min(var(--pb-max), calc(100% - 2 * var(--pb-inset))); margin-inline: auto; }
body.site #sp-main-body .pb-news-page .page-header h1,
body.site #sp-main-body .blog .page-header h1 { margin-bottom: 3rem; font-family: var(--pb-heading); font-size: var(--pb-h2); font-weight: 500; letter-spacing: -0.035em; }
body.site #sp-main-body .blog-items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
body.site #sp-main-body .blog-item { padding-top: 1.5rem; border-top: 1px solid var(--pb-line-light); }
body.site #sp-main-body .blog-item h2 { font-family: var(--pb-heading); font-size: var(--pb-h3); font-weight: 600; }

/* 08. Footer */
body.site #sp-footer { padding: 2rem 0; color: rgba(251, 248, 242, 0.74); background: #07110c; border-top: 1px solid rgba(251, 248, 242, 0.12); font-size: 0.84rem; line-height: 1.5; }
body.site #sp-footer .container { max-width: var(--pb-max); padding-inline: var(--pb-inset); }
body.site #sp-footer .container-inner { padding: 0; }
body.site #sp-footer a { color: var(--pb-paper); }

/* 09. Responsive */
@media (min-width: 992px) {
  body.site #offcanvas-toggler,
  body.site .offcanvas-overlay { display: none !important; }
  body.site .offcanvas-menu {
    display: none !important;
    width: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  body.site .body-wrapper {
    right: 0 !important;
    left: 0 !important;
    transform: none !important;
  }
}

@media (max-width: 1599.98px) { :root { --pb-max: 86rem; } }

@media (max-width: 1279.98px) {
  :root { --pb-max: 76rem; --pb-inset: clamp(1.5rem, 4vw, 3.25rem); }
}

@media (max-width: 1199.98px) {
  .pb-stage-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pb-stage-list article:nth-child(2) { border-right: 0; }
  .pb-stage-list article:nth-child(n + 3) { padding-top: 2rem; border-top: 1px solid var(--pb-line-light); }
}

@media (max-width: 991.98px) {
  body.site { overflow-x: clip; }
  body.site #sp-header .sp-megamenu-wrapper,
  body.site #sp-header .sp-megamenu-parent { display: none !important; }
  body.site #offcanvas-toggler { display: flex; }
  body.site .offcanvas-menu {
    height: 100dvh;
    max-width: calc(100vw - 1.25rem);
  }
  body.site:not(.offcanvas-active).ltr.offcanvs-position-right .offcanvas-menu {
    right: -100vw;
    visibility: hidden;
    pointer-events: none;
  }
  body.site.offcanvas-active.ltr.offcanvs-position-right .offcanvas-menu {
    right: 0;
    visibility: visible;
    pointer-events: auto;
  }
  body.site.offcanvas-active { overflow: hidden; }
  body.site .offcanvas-menu .offcanvas-inner {
    max-height: 100dvh;
    overflow-y: auto;
  }
}

@media (max-width: 1023.98px) {
  :root { --pb-section-space: clamp(4.75rem, 10vw, 7rem); --pb-h1: clamp(4.1rem, 10vw, 7rem); }
  .pb-home-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pb-home-timeline li:nth-child(3n) { border-right: 1px solid var(--pb-line-light); }
  .pb-home-timeline li:nth-child(2n) { border-right: 0; }
  body.site #sp-main-body #sp-page-builder .pb-news-module,
  body.site #sp-main-body .blog-items { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767.98px) {
  :root { --pb-inset: clamp(1.25rem, 5.5vw, 1.5rem); --pb-section-space: clamp(3.75rem, 11vw, 5rem); --pb-h1: clamp(3.125rem, 14.5vw, 4rem); --pb-h2: clamp(2.55rem, 11vw, 4rem); }
  body.site #sp-header,
  body.site #sp-header .logo,
  body.site #sp-header .logo a { height: 80px; }
  body.site #sp-header .logo img { height: 60px; max-width: 60px; }
  body.site #sp-main-body { padding-top: calc(80px + 3rem); }

  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-section) .sppb-row:has(> div:nth-child(2)),
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-intro) .sppb-row,
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-monument) .sppb-row,
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-architecture) .sppb-row,
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-restoration) .sppb-row,
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-craft) .sppb-row,
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-gallery) .sppb-row,
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-contact) .sppb-row,
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-contact-opening) .sppb-row { grid-template-columns: minmax(0, 1fr); }

  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero),
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) > .sppb-row-container { min-height: 100svh; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) > .sppb-row-container { padding-top: 6.5rem; padding-bottom: clamp(1.5rem, 5vh, 2.75rem); }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero)::after { background: linear-gradient(90deg, rgba(6, 17, 11, 0.9), rgba(6, 17, 11, 0.34)), linear-gradient(0deg, rgba(6, 17, 11, 0.88), transparent 57%); }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) .section-bg-video { object-position: 56% center; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) h1 { max-width: 7.5ch; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-intro) .sppb-row { gap: 2.25rem; }
  body.site #sp-main-body #sp-page-builder .pb-intro-note { max-width: none; margin-left: 0; }
  body.site #sp-main-body #sp-page-builder .pb-monument-image img,
  body.site #sp-main-body #sp-page-builder .pb-church-elevation img,
  body.site #sp-main-body #sp-page-builder .pb-parish-image img { height: min(39rem, 138vw); }
  body.site #sp-main-body #sp-page-builder .pb-architecture-image img,
  body.site #sp-main-body #sp-page-builder .pb-restoration-image img,
  body.site #sp-main-body #sp-page-builder .pb-craft-image img,
  body.site #sp-main-body #sp-page-builder .pb-system-detail img,
  body.site #sp-main-body #sp-page-builder .pb-history-art-image img,
  body.site #sp-main-body #sp-page-builder .pb-authenticity-image img { height: min(34rem, 126vw); }

  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero),
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) > .sppb-row-container { min-height: 78svh; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) > .sppb-row-container { padding-top: 8.5rem; padding-bottom: 3.5rem; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero)::after { background: linear-gradient(0deg, rgba(5, 16, 10, 0.94) 0%, rgba(5, 16, 10, 0.48) 68%, rgba(5, 16, 10, 0.34)); }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) h1 { max-width: 11ch; font-size: var(--pb-h1); }
  .pb-quote-note, .pb-future-note { max-width: none; margin-left: 0; }
  .pb-stage-list { grid-template-columns: minmax(0, 1fr); }
  .pb-stage-list article, .pb-stage-list article:nth-child(2) { border-right: 0; }
  .pb-stage-list article:nth-child(n + 2) { padding-top: 1.75rem; border-top: 1px solid var(--pb-line-light); }
  .pb-stage-list h3 { margin-top: 1.2rem; }
  .pb-works { grid-template-columns: minmax(0, 1fr); }
  .pb-community-sequence { grid-template-columns: minmax(0, 1fr); }
  .pb-community-sequence li { min-height: 0; padding-block: 1.5rem; border-right: 0; border-bottom: 1px solid var(--pb-line-dark); }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-gallery-grid) .sppb-row > div:last-child { padding-top: 0; }
  body.site #sp-main-body #sp-page-builder .pb-gallery-detail { width: 82%; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-contact-opening) { min-height: 0; padding-top: 9rem; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-contact-opening) h1 { font-size: var(--pb-h1); }
  body.site #sp-main-body #sp-page-builder .pb-contact-opening-image img { height: min(34rem, 120vw); }
}

@media (max-width: 479.98px) {
  body.site #sp-main-body #sp-page-builder :is(.pb-button.sppb-btn, .pb-button .sppb-btn) { width: 100%; max-width: 25rem; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) .sppb-addon-wrapper:has(.pb-hero-action) { display: block; margin-right: 0; }
  .pb-facts > div { grid-template-columns: minmax(0, 1fr); gap: 0.25rem; }
  .pb-home-timeline { grid-template-columns: minmax(0, 1fr); }
  .pb-home-timeline li, .pb-home-timeline li:nth-child(3n) { min-height: 0; padding: 1.5rem 0; border-right: 0; }
  .pb-timeline::before { left: 0.32rem; }
  .pb-timeline li { grid-template-columns: minmax(0, 1fr); gap: 0.55rem; padding: 0 0 2.25rem 2rem; }
  .pb-timeline li::before { top: 0.3rem; left: 0; }
  .pb-timeline time { text-align: left; }
  body.site #sp-main-body #sp-page-builder .pb-gallery-detail { width: 88%; margin-left: 0; }
}

@media (max-width: 389.98px) {
  :root { --pb-h2: clamp(2.35rem, 12vw, 3.4rem); }
  body.site #sp-header .container { padding-inline: 0.9rem; }
  body.site #sp-header .logo img { height: 60px; max-width: 60px; }
  body.site #sp-main-body #sp-page-builder .pb-kicker { font-size: 0.68rem; letter-spacing: 0.14em; }
}

@media (max-width: 339.98px) {
  :root { --pb-h2: 2.25rem; }
  body.site #sp-main-body #sp-page-builder .pb-hero-place { font-size: 1.22rem; }
}

@media (max-width: 479.98px) and (max-height: 650px) {
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) > .sppb-row-container {
    padding-top: 5.25rem;
    padding-bottom: 1rem;
  }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) h1 {
    margin-bottom: 0.7rem;
    line-height: 0.9;
  }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) .pb-kicker { margin-bottom: 0.75rem; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) .pb-hero-place { font-size: 1.08rem; line-height: 1.15; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) :is(.pb-button.sppb-btn, .pb-button .sppb-btn) {
    min-height: 48px;
    margin-top: 0.65rem;
    padding: 0.65rem 1rem;
  }
}

/* 10. Accessibility and reduced motion */
@keyframes pb-reveal {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: no-preference) {
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) .sppb-column-addons,
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-page-hero) .sppb-row > div:first-child { animation: pb-reveal 720ms cubic-bezier(0.2, 0.72, 0.25, 1) both; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.site #sp-main-body #sp-page-builder .sppb-section:has(.pb-home-hero) .section-bg-video { display: none; }
  body.site *, body.site *::before, body.site *::after {
    scroll-behavior: auto;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
