/** -------------------------------------------------
 * Inner pages (about, services, service-*, gallery, faq, contact)
 * ------------------------------------------------- */
.pg {
  --pg-green: #4a5a3c;
  --pg-gold: #c28a4e;
  --pg-gold-l: #e0b07a;
  --pg-cream: #f6f3ec;
  --pg-bg: #faf8f3;
  --pg-gutter: clamp(16px, 4vw, 64px);
  background: var(--pg-bg);
  color: var(--pg-green);
  overflow-x: hidden;
}
.pg img {
  max-width: 100%;
  display: block;
}
.pg a {
  color: inherit;
  text-decoration: none;
}
.pg .p1 {
  line-height: 1.7;
}
.pg-eyebrow {
  color: var(--pg-gold);
  letter-spacing: .18em;
}
.pg-main {
  display: block;
}

/* Header: transparent over the hero, solid once scrolled */
.pg-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px var(--pg-gutter);
  color: #fff;
  transition: background-color .3s ease, color .3s ease, box-shadow .3s ease, padding .3s ease;
}
.pg-header.is-solid {
  background: var(--pg-bg);
  color: var(--pg-green);
  box-shadow: 0 1px 0 rgba(0, 0, 0, .06);
  padding-top: 12px;
  padding-bottom: 12px;
}
.pg-header_logo {
  position: relative;
  width: clamp(110px, 10vw, 150px);
  flex: none;
}
.pg-header_logo img {
  width: 100%;
  transition: opacity .3s ease;
}
.pg-header_logo .is-dark {
  position: absolute;
  inset: 0;
  opacity: 0;
}
.pg-header.is-solid .pg-header_logo .is-light {
  opacity: 0;
}
.pg-header.is-solid .pg-header_logo .is-dark {
  opacity: 1;
}
.pg-nav {
  display: flex;
  gap: clamp(16px, 2.2vw, 36px);
}
.pg-nav_link {
  position: relative;
  padding: 6px 0;
}
.pg-nav_link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transition: transform .3s ease;
}
.pg-nav_link:hover::after,
.pg-nav_link.is-active::after {
  transform: scaleX(1);
}
.pg-header_r {
  display: flex;
  align-items: center;
  gap: 16px;
}
.pg-header_cta {
  padding: 12px 22px;
  border: 1px solid currentColor;
  border-radius: 999px;
  transition: background-color .3s ease, border-color .3s ease, color .3s ease;
}
.pg-header_cta:hover {
  background: var(--pg-gold);
  border-color: var(--pg-gold);
  color: #fff;
}
.pg-burger {
  display: none;
  width: 44px;
  height: 44px;
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer;
  position: relative;
}
.pg-burger span {
  position: absolute;
  left: 10px;
  right: 10px;
  height: 1.5px;
  background: currentColor;
  transition: transform .3s ease, top .3s ease;
}
.pg-burger span:first-child { top: 17px; }
.pg-burger span:last-child { top: 26px; }
.pg-menu-open .pg-burger span:first-child { top: 21px; transform: rotate(45deg); }
.pg-menu-open .pg-burger span:last-child { top: 21px; transform: rotate(-45deg); }
@media (max-width: 991px) {
  .pg-burger { display: block; }
  .pg-header_cta { display: none; }
  .pg-nav {
    position: fixed;
    inset: 0;
    z-index: -1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 28px;
    background: var(--pg-green);
    color: var(--pg-cream);
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s;
  }
  .pg-nav_link { font-size: 20px; }
  .pg-menu-open .pg-nav { opacity: 1; visibility: visible; }
  .pg-menu-open .pg-header { color: var(--pg-cream); background: transparent; box-shadow: none; }
  .pg-menu-open .pg-header .pg-header_logo .is-light { opacity: 1; }
  .pg-menu-open .pg-header .pg-header_logo .is-dark { opacity: 0; }
}

/* Hero */
.pg-hero {
  position: relative;
  min-height: 72vh;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 160px var(--pg-gutter) 80px;
  color: #fff;
  text-align: center;
  overflow: hidden;
}
.pg-hero_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
}
.pg-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(15, 12, 8, .55) 0%, rgba(15, 12, 8, .35) 45%, rgba(15, 12, 8, .7) 100%);
}
.pg-hero_c {
  max-width: 960px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.pg-hero .pg-eyebrow { color: var(--pg-gold-l); }
.pg-hero_title { color: #fff; font-size: clamp(48px, 8vw, 120px); line-height: .95; }
.pg-hero_lead { max-width: 38em; color: rgba(255, 255, 255, .88); }

/* Sections */
.pg-sec {
  padding: clamp(64px, 8vw, 120px) var(--pg-gutter);
}
.pg-sec.is-tint {
  background: var(--pg-cream);
}
.pg-sec > * {
  max-width: 1216px;
  margin-left: auto;
  margin-right: auto;
}
.pg-head {
  text-align: center;
  margin-bottom: clamp(40px, 5vw, 64px);
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: center;
}
.pg-center {
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

/* Split image/text */
.pg-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 6vw, 96px);
  align-items: center;
}
.pg-split_img img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  border-radius: 999px 999px 4px 4px;
}
.pg-split_c {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
@media (max-width: 767px) {
  .pg-split { grid-template-columns: 1fr; }
}

/* Grids */
.pg-grid3, .pg-grid2 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 3vw, 40px);
}
.pg-grid2 {
  grid-template-columns: repeat(2, 1fr);
  max-width: 896px;
}
@media (max-width: 991px) { .pg-grid3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .pg-grid3, .pg-grid2 { grid-template-columns: 1fr; } }

/* Service cards (arch photo, centred text) */
.pg-svc {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}
.pg-svc_img {
  width: 100%;
  aspect-ratio: 3/4;
  border-radius: 999px 999px 4px 4px;
  overflow: clip;
  margin-bottom: 10px;
}
.pg-svc_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2, .7, .2, 1);
}
.pg-svc:hover .pg-svc_img img { transform: scale(1.06); }
.pg-svc_title {
  font-family: var(--_fonts---font-display);
  text-transform: uppercase;
  font-weight: 400;
  font-size: clamp(24px, 2vw, 32px);
  line-height: 1.05;
  color: var(--pg-green);
}
.pg-svc .p1 { color: var(--_colors---base-1000--gray-text); font-size: 14.4px; }
.pg-link {
  color: var(--pg-green);
  border-bottom: 1px solid var(--pg-gold);
  padding-bottom: 3px;
  letter-spacing: .16em;
  transition: color .3s ease;
}
.pg-svc:hover .pg-link { color: var(--pg-gold); }

.pg-value, .pg-person {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-align: center;
  align-items: center;
}
.pg-value {
  padding: 40px 28px;
  border: 1px solid rgba(74, 90, 60, .15);
  border-radius: 4px;
}
.pg-person img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  border-radius: 999px 999px 4px 4px;
  margin-bottom: 8px;
}

/* Stats */
.pg-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  text-align: center;
}
.pg-stats > div + div { border-left: 1px solid rgba(74, 90, 60, .15); }
.pg-stat_n {
  font-family: var(--_fonts---font-display);
  font-size: clamp(40px, 5vw, 72px);
  line-height: 1;
  margin-bottom: 10px;
}
@media (max-width: 767px) {
  .pg-stats { grid-template-columns: repeat(2, 1fr); row-gap: 32px; }
  .pg-stats > div:nth-child(3) { border-left: 0; }
}

/* Steps */
.pg-steps {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.pg-steps li {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 20px;
  border-top: 1px solid var(--pg-gold);
}
.pg-steps span { color: var(--pg-gold); letter-spacing: .2em; font-size: 12.8px; }
@media (max-width: 991px) { .pg-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .pg-steps { grid-template-columns: 1fr; } }

/* Lists */
.pg-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pg-list li {
  position: relative;
  padding-left: 28px;
}
.pg-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .8em;
  width: 16px;
  height: 1px;
  background: var(--pg-gold);
}

/* Buttons */
.pg-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: inherit;
}
.pg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 32px;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  font: inherit;
  letter-spacing: .14em;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.pg-btn.is-dark { background: var(--pg-green); color: #fff; }
.pg-btn.is-dark:hover { background: var(--pg-gold); }
.pg-btn.is-light { background: #fff; color: var(--pg-green); }
.pg-btn.is-light:hover { background: var(--pg-gold-l); color: #fff; }
.pg-btn.is-outline { border-color: rgba(255, 255, 255, .7); color: #fff; }
.pg-btn.is-outline:hover { background: #fff; color: var(--pg-green); }
.pg-btn.is-outline-dark { border-color: var(--pg-green); color: var(--pg-green); }
.pg-btn.is-outline-dark:hover { background: var(--pg-green); color: #fff; }

/* CTA band */
.pg-cta {
  position: relative;
  padding: clamp(96px, 12vw, 160px) var(--pg-gutter);
  color: #fff;
  text-align: center;
  overflow: hidden;
  isolation: isolate;
}
.pg-cta_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
}
.pg-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(15, 12, 8, .6);
}
.pg-cta_c {
  max-width: 704px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.pg-cta .pg-eyebrow { color: var(--pg-gold-l); }
.pg-cta .h2 { color: #fff; }
.pg-cta .p1 { color: rgba(255, 255, 255, .88); }
.pg-cta .pg-btns { justify-content: center; margin-top: 12px; }

/* Gallery */
.pg-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 48px;
}
.pg-filter {
  padding: 10px 22px;
  border-radius: 999px;
  border: 1px solid rgba(74, 90, 60, .25);
  background: none;
  color: var(--pg-green);
  font: inherit;
  letter-spacing: .14em;
  cursor: pointer;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.pg-filter:hover { border-color: var(--pg-gold); color: var(--pg-gold); }
.pg-filter.is-active { background: var(--pg-green); border-color: var(--pg-green); color: #fff; }
.pg-gal {
  columns: 3 280px;
  column-gap: 20px;
}
.pg-gal_item {
  break-inside: avoid;
  margin: 0 0 20px;
  position: relative;
}
.pg-gal_item[hidden] { display: none; }
.pg-gal_item button {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
  overflow: hidden;
  border-radius: 4px;
}
.pg-gal_item img {
  width: 100%;
  height: auto;
  transition: transform .8s cubic-bezier(.2, .7, .2, 1);
}
.pg-gal_item button:hover img { transform: scale(1.05); }
.pg-gal_item figcaption {
  margin-top: 10px;
  color: var(--_colors---base-1000--gray-text);
  letter-spacing: .14em;
}
.pg-lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5vw;
  background: rgba(15, 12, 8, .92);
}
.pg-lightbox[hidden] { display: none; }
.pg-lightbox img { max-height: 88vh; width: auto; border-radius: 4px; }
.pg-lightbox_close {
  position: absolute;
  top: 20px;
  right: 24px;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: 28px;
  cursor: pointer;
}

/* FAQ */
.pg-faq {
  max-width: 800px;
  border-top: 1px solid rgba(74, 90, 60, .15);
}
.pg-faq_item { border-bottom: 1px solid rgba(74, 90, 60, .15); }
.pg-faq_q {
  list-style: none;
  cursor: pointer;
  padding: 24px 40px 24px 0;
  position: relative;
  font-size: 18px;
  font-weight: 600;
}
.pg-faq_q::-webkit-details-marker { display: none; }
.pg-faq_q::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--pg-gold);
  font-size: 24px;
  font-weight: 400;
  transition: transform .3s ease;
}
.pg-faq_item[open] .pg-faq_q::after { transform: translateY(-50%) rotate(45deg); }
.pg-faq_item .p1 { padding: 0 40px 24px 0; color: var(--_colors---base-1000--gray-text); }

/* Contact */
.pg-contact {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: clamp(40px, 6vw, 96px);
}
.pg-contact_info {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.pg-contact_row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 18px;
  border-top: 1px solid rgba(74, 90, 60, .15);
}
.pg-contact_row .l1 { color: var(--pg-gold); letter-spacing: .18em; }
.pg-contact_row a:hover { color: var(--pg-gold); }
.pg-form {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 28px;
  padding: clamp(28px, 4vw, 48px);
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 30px 60px -40px rgba(40, 50, 30, .35);
}
.pg-form_grid {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.pg-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pg-field.is-full { grid-column: 1 / -1; }
.pg-field .l1 { letter-spacing: .14em; }
.pg-field input,
.pg-field select,
.pg-field textarea {
  font: inherit;
  font-family: var(--_fonts---font-body);
  font-size: 16px;
  color: var(--pg-green);
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid rgba(74, 90, 60, .3);
  background: transparent;
  border-radius: 0;
  outline: none;
  transition: border-color .3s ease;
}
.pg-field input:focus,
.pg-field select:focus,
.pg-field textarea:focus { border-bottom-color: var(--pg-gold); }
.pg-form_ok { color: var(--pg-gold); }
@media (max-width: 767px) {
  .pg-contact, .pg-form_grid { grid-template-columns: 1fr; }
}
.pg-map iframe {
  display: block;
  width: 100%;
  height: 420px;
  border: 0;
  filter: grayscale(.4);
}

/* Footer */
.pg-footer {
  background: var(--pg-green);
  color: var(--pg-cream);
  padding: clamp(64px, 8vw, 96px) var(--pg-gutter) 32px;
}
.pg-footer_top {
  max-width: 1216px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr 1.2fr;
  gap: 40px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(246, 243, 236, .15);
}
.pg-footer_brand {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.pg-footer_brand .p1 { opacity: .75; font-size: 15px; max-width: 22em; }
.pg-footer_logo { width: 160px; }
.pg-footer_col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pg-footer_label { color: var(--pg-gold-l); letter-spacing: .2em; margin-bottom: 6px; }
.pg-footer_link { font-size: 15px; opacity: .85; transition: color .3s ease, opacity .3s ease; }
.pg-footer_link:hover { color: var(--pg-gold-l); opacity: 1; }
.pg-footer_social { display: flex; gap: 8px; margin-top: 8px; }
.pg-footer_b {
  max-width: 1216px;
  margin: 0 auto;
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  opacity: .7;
}
@media (max-width: 991px) { .pg-footer_top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .pg-footer_top { grid-template-columns: 1fr; } }

/* Hero photo was painting behind the page background */
.pg-hero {
  isolation: isolate;
}

/* Stories */
.pg-story {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: clamp(32px, 6vw, 96px);
}
.pg-story_facts { display: flex; flex-direction: column; gap: 18px; }
.pg-story_text { display: flex; flex-direction: column; gap: 20px; font-size: 17px; }
.pg-quote {
  margin: 56px auto 0;
  max-width: 704px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pg-quote .h4 { text-transform: none; font-family: var(--_fonts---font-body); font-size: clamp(19px, 1.7vw, 24px); line-height: 1.4; }
.pg-quote cite { font-style: normal; color: var(--pg-gold); letter-spacing: .18em; }
@media (max-width: 767px) { .pg-story { grid-template-columns: 1fr; } }

/* Privacy policy */
.pg-legal { max-width: 736px; display: flex; flex-direction: column; gap: 14px; }
.pg-legal .pg-svc_title { margin-top: 24px; font-size: 24px; }
.pg-legal a { color: var(--pg-gold); }
.pg-footer_b a:hover { color: var(--pg-gold-l); }

/* Smaller logo once the header turns solid on scroll */
.pg-header_logo {
  transition: width .3s ease;
}
.pg-header.is-solid .pg-header_logo {
  width: calc(clamp(110px, 10vw, 150px) * .7);
}

/* Footer v2: arch-topped, big invitation line, columns, giant outline wordmark */
.pg-footer {
  position: relative;
  overflow: hidden;
  margin-top: -1px;
  padding: clamp(80px, 9vw, 128px) var(--pg-gutter) 28px;
  border-radius: 50% 50% 0 0 / clamp(48px, 7vw, 120px) clamp(48px, 7vw, 120px) 0 0;
  background:
    radial-gradient(60% 50% at 50% 0%, rgba(224, 176, 122, .14) 0%, rgba(224, 176, 122, 0) 70%),
    var(--pg-green);
  color: var(--pg-cream);
}
.pg-footer_hero {
  max-width: 800px;
  margin: 0 auto clamp(56px, 7vw, 88px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 18px;
}
.pg-footer_symbol {
  width: 56px;
}
.pg-footer_title {
  font-family: var(--_fonts---font-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(44px, 7vw, 96px);
  line-height: .95;
  color: var(--pg-cream);
}
.pg-footer_title em {
  font-family: var(--_fonts---font-accent);
  font-style: normal;
  text-transform: none;
  color: var(--pg-gold-l);
}
.pg-footer_actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 12px;
}
.pg-btn.is-gold { background: var(--pg-gold-l); color: var(--pg-green); }
.pg-btn.is-gold:hover { background: var(--pg-cream); }
.pg-footer_phone {
  font-size: 18px;
  letter-spacing: .04em;
  border-bottom: 1px solid rgba(246, 243, 236, .4);
  padding-bottom: 2px;
}
.pg-footer_phone:hover { color: var(--pg-gold-l); border-color: var(--pg-gold-l); }
.pg-footer .pg-footer_top {
  grid-template-columns: repeat(3, 1fr);
  max-width: 960px;
  padding: 40px 0 0;
  border-top: 1px solid rgba(246, 243, 236, .15);
  border-bottom: 0;
}
.pg-footer_link {
  font-family: var(--_fonts---font-body);
  font-size: 15px;
  line-height: 1.6;
  color: rgba(246, 243, 236, .78);
}
.pg-social {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(246, 243, 236, .25);
  color: var(--pg-cream);
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.pg-social:hover { background: var(--pg-gold-l); border-color: var(--pg-gold-l); color: var(--pg-green); }
.pg-footer_mark {
  margin: clamp(40px, 6vw, 72px) calc(var(--pg-gutter) * -1) -0.12em;
  text-align: center;
  font-family: var(--_fonts---font-display);
  font-size: 24vw;
  line-height: .8;
  letter-spacing: .02em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(224, 176, 122, .35);
  user-select: none;
  white-space: nowrap;
}
.pg-footer .pg-footer_b {
  position: relative;
  max-width: 1216px;
  padding-top: 20px;
  border-top: 1px solid rgba(246, 243, 236, .15);
  color: rgba(246, 243, 236, .7);
  opacity: 1;
}
@media (max-width: 767px) {
  .pg-footer .pg-footer_top { grid-template-columns: 1fr; gap: 32px; text-align: center; }
  .pg-footer .pg-footer_col { align-items: center; }
  .pg-footer_b { justify-content: center; text-align: center; }
}

/* Footer v3: flat top (no curve gaps), split invitation row - title left,
   actions right - framed by fine gold rules */
.pg-footer {
  border-radius: 0;
  margin-top: 0;
  background: var(--pg-green);
  padding-top: clamp(64px, 7vw, 96px);
}
.pg-footer_hero {
  max-width: 1216px;
  margin: 0 auto clamp(48px, 6vw, 72px);
  padding-bottom: clamp(40px, 5vw, 64px);
  border-bottom: 1px solid rgba(224, 176, 122, .3);
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-areas:
    "symbol label label"
    "symbol title actions";
  align-items: end;
  column-gap: clamp(24px, 4vw, 56px);
  row-gap: 12px;
  text-align: left;
}
.pg-footer_symbol {
  grid-area: symbol;
  width: clamp(64px, 6vw, 88px);
  align-self: center;
}
.pg-footer_hero .pg-footer_label {
  grid-area: label;
  margin: 0;
}
.pg-footer_title {
  grid-area: title;
  font-size: clamp(40px, 5.5vw, 80px);
}
.pg-footer_actions {
  grid-area: actions;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
  margin: 0;
}
.pg-footer_actions .pg-btn {
  padding: 14px 28px;
  letter-spacing: .16em;
  font-weight: 600;
}
.pg-footer .pg-footer_top {
  max-width: 1216px;
  border-top: 0;
  padding-top: 0;
}
@media (max-width: 991px) {
  .pg-footer_hero {
    grid-template-columns: 1fr;
    grid-template-areas: "symbol" "label" "title" "actions";
    justify-items: center;
    text-align: center;
  }
  .pg-footer_actions {
    align-items: center;
    margin-top: 12px;
  }
}

/* Footer CTA pair: gold button with sliding arrow, phone as a labelled line */
.pg-footer_actions .pg-btn.is-gold {
  gap: 14px;
  padding: 18px 20px 18px 32px;
  background: var(--pg-gold-l);
  color: var(--pg-green);
  box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .45);
}
.pg-btn_arrow {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--pg-green);
  color: var(--pg-gold-l);
  font-size: 16px;
  letter-spacing: 0;
  transition: transform .35s cubic-bezier(.2, .7, .2, 1);
}
.pg-footer_actions .pg-btn.is-gold:hover {
  background: var(--pg-cream);
}
.pg-footer_actions .pg-btn.is-gold:hover .pg-btn_arrow {
  transform: translateX(4px);
}
.pg-footer_phone {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  border: 0;
  padding: 0;
  font-size: 20px;
  letter-spacing: .02em;
}
.pg-footer_phone .l1 {
  font-size: 11px;
  letter-spacing: .2em;
  color: var(--pg-gold-l);
}
@media (max-width: 991px) {
  .pg-footer_phone { align-items: center; }
}

/* Footer columns: smaller labels and links */
.pg-footer .pg-footer_top .pg-footer_label {
  font-size: 10px;
  letter-spacing: .22em;
  margin-bottom: 4px;
}
.pg-footer .pg-footer_link {
  font-size: 13px;
  line-height: 1.55;
}
.pg-footer .pg-footer_col {
  gap: 8px;
}
.pg-footer .pg-social {
  width: 32px;
  height: 32px;
}
.pg-footer .pg-social svg {
  width: 13px;
  height: 13px;
}
.pg-footer .pg-footer_top .pg-footer_label {
  font-size: 13px;
  margin-bottom: 8px;
}

/* Footer list markers: gold arrow before links (slides on hover), small
   gold icons before the contact details */
.pg-footer .pg-footer_link {
  position: relative;
  padding-left: 22px;
  transition: color .3s ease, padding-left .3s ease;
}
.pg-footer .pg-footer_link::before {
  content: "";
  position: absolute;
  left: 0;
  top: .5em;
  width: 12px;
  height: 12px;
  background-color: var(--pg-gold-l);
  -webkit-mask: var(--pg-ico) center / contain no-repeat;
  mask: var(--pg-ico) center / contain no-repeat;
  --pg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  transition: transform .3s ease;
}
.pg-footer .pg-footer_link:hover {
  padding-left: 26px;
}
.pg-footer .pg-footer_link[href^="https://www.google.com/maps"]::before {
  --pg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}
.pg-footer .pg-footer_link[href^="tel:"]::before {
  --pg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");
}
.pg-footer .pg-footer_link[href^="mailto:"]::before {
  --pg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E");
}
.pg-footer .pg-footer_link[href^="https://www.google.com/maps"]:hover,
.pg-footer .pg-footer_link[href^="tel:"]:hover,
.pg-footer .pg-footer_link[href^="mailto:"]:hover {
  padding-left: 22px;
}
@media (max-width: 767px) {
  .pg-footer .pg-footer_link,
  .pg-footer .pg-footer_link:hover {
    padding-left: 0;
  }
  .pg-footer .pg-footer_link::before {
    position: static;
    display: inline-block;
    margin-right: 8px;
    vertical-align: -1px;
  }
}

/* Footer list marker: small gold four-point sparkle instead of an arrow */
.pg-footer .pg-footer_link:not([href^="https://www.google.com/maps"]):not([href^="tel:"]):not([href^="mailto:"])::before {
  --pg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c.6 5.4 4.6 9.4 10 10-5.4.6-9.4 4.6-10 10-.6-5.4-4.6-9.4-10-10 5.4-.6 9.4-4.6 10-10z' fill='black'/%3E%3C/svg%3E");
  width: 10px;
  height: 10px;
  top: .55em;
}
.pg-footer .pg-footer_link:hover::before {
  transform: rotate(45deg);
}

/* Footer columns v2 - three distinct treatments:
   Explore = big numbered display links, Services = pill tags,
   Contact = arch-topped card */
.pg-footer .pg-footer_top {
  grid-template-columns: 1fr 1.6fr 1.1fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}
.pg-footer .pg-footer_col:nth-child(1),
.pg-footer .pg-footer_col:nth-child(2) {
  counter-reset: pgnav;
}
/* Explore */
.pg-footer .pg-footer_col:nth-child(1) .pg-footer_link {
  counter-increment: pgnav;
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 6px 0 !important;
  font-family: var(--_fonts---font-display);
  font-size: clamp(24px, 2.2vw, 32px);
  line-height: 1;
  text-transform: uppercase;
  color: var(--pg-cream);
  border-bottom: 1px solid rgba(246, 243, 236, .1);
}
.pg-footer .pg-footer_col:nth-child(1) .pg-footer_link::before {
  content: counter(pgnav, decimal-leading-zero);
  position: static;
  width: auto;
  height: auto;
  -webkit-mask: none;
  mask: none;
  background: none;
  font-family: var(--_fonts---font-body);
  font-size: 10px;
  letter-spacing: .2em;
  color: var(--pg-gold-l);
  transform: none !important;
}
.pg-footer .pg-footer_col:nth-child(1) .pg-footer_link:hover {
  color: var(--pg-gold-l);
  padding-left: 8px !important;
}
/* Services */
.pg-footer .pg-footer_col:nth-child(2) {
  flex-direction: row;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 10px;
}
.pg-footer .pg-footer_col:nth-child(2) .pg-footer_label {
  flex-basis: 100%;
}
.pg-footer .pg-footer_col:nth-child(2) .pg-footer_link {
  padding: 9px 16px !important;
  border: 1px solid rgba(246, 243, 236, .22);
  border-radius: 999px;
  font-size: 13px;
  line-height: 1.2;
  color: var(--pg-cream);
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.pg-footer .pg-footer_col:nth-child(2) .pg-footer_link::before {
  display: none;
}
.pg-footer .pg-footer_col:nth-child(2) .pg-footer_link:hover {
  background: var(--pg-gold-l);
  border-color: var(--pg-gold-l);
  color: var(--pg-green);
}
/* Contact */
.pg-footer .pg-footer_col:nth-child(3) {
  gap: 14px;
  padding: 40px 28px 28px;
  border-radius: 999px 999px 8px 8px / 120px 120px 8px 8px;
  background: rgba(246, 243, 236, .06);
  border: 1px solid rgba(224, 176, 122, .25);
  text-align: center;
  align-items: center;
}
.pg-footer .pg-footer_col:nth-child(3) .pg-footer_link,
.pg-footer .pg-footer_col:nth-child(3) .pg-footer_link:hover {
  padding-left: 0 !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.pg-footer .pg-footer_col:nth-child(3) .pg-footer_link::before {
  position: static;
  width: 16px;
  height: 16px;
}
.pg-footer .pg-footer_col:nth-child(3) .pg-footer_social {
  justify-content: center;
  margin-top: 6px;
}
@media (max-width: 991px) {
  .pg-footer .pg-footer_top { grid-template-columns: 1fr; }
  .pg-footer .pg-footer_col:nth-child(2) { justify-content: center; }
}

/** -------------------------------------------------
 * Footer v4 - split: arch photo left, content right
 * ------------------------------------------------- */
.pg-ft {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(40px, 6vw, 112px);
  align-items: center;
  padding: clamp(56px, 7vw, 104px) var(--pg-gutter) 32px;
  background: var(--pg-green);
  color: var(--pg-cream);
}
.pg-ft a { color: inherit; }
.pg-ft_img {
  align-self: stretch;
  min-height: 560px;
  border-radius: 999px 999px 6px 6px / 40% 40% 6px 6px;
  overflow: clip;
  border: 1px solid rgba(224, 176, 122, .35);
  padding: 10px;
}
.pg-ft_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}
.pg-ft_c {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 28px;
}
.pg-ft_logo { width: clamp(150px, 13vw, 200px); }
.pg-ft_lead {
  max-width: 26em;
  font-size: 17px;
  line-height: 1.6;
  color: rgba(246, 243, 236, .8);
}
.pg-ft .pg-btn.is-gold {
  gap: 14px;
  padding: 16px 18px 16px 30px;
  box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .45);
}
.pg-ft .pg-btn.is-gold:hover { background: var(--pg-cream); }
.pg-ft .pg-btn.is-gold:hover .pg-btn_arrow { transform: translateX(4px); }
.pg-ft_nav {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  padding: 20px 0;
  border-top: 1px solid rgba(246, 243, 236, .15);
  border-bottom: 1px solid rgba(246, 243, 236, .15);
}
.pg-ft_nav_link {
  letter-spacing: .16em;
  transition: color .3s ease;
}
.pg-ft_nav_link:hover { color: var(--pg-gold-l); }
.pg-ft_label {
  color: var(--pg-gold-l);
  letter-spacing: .22em;
  font-size: 12px;
  margin-bottom: 10px;
}
.pg-ft_block {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 14px;
  line-height: 1.6;
}
.pg-ft_block a { color: rgba(246, 243, 236, .82); transition: color .3s ease; }
.pg-ft_block a:hover { color: var(--pg-gold-l); }
.pg-ft_svc {
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  line-height: 1.9;
}
.pg-ft_svc_link + .pg-ft_svc_link::before {
  content: "\00B7";
  margin: 0 10px;
  color: var(--pg-gold-l);
}
.pg-ft_contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  width: 100%;
}
.pg-ft_social { display: flex; gap: 8px; }
.pg-ft_b {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  padding-top: 20px;
  border-top: 1px solid rgba(246, 243, 236, .15);
  color: rgba(246, 243, 236, .6);
}
.pg-ft_b a:hover { color: var(--pg-gold-l); }
@media (max-width: 991px) {
  .pg-ft { grid-template-columns: 1fr; }
  .pg-ft_img { min-height: 0; aspect-ratio: 4/3; max-width: 520px; width: 100%; margin: 0 auto; }
}
@media (max-width: 600px) {
  .pg-ft_contact { grid-template-columns: 1fr; gap: 20px; }
}

/** -------------------------------------------------
 * Footer v5 - centred invitation card
 * ------------------------------------------------- */
.pg-inv {
  padding: clamp(64px, 8vw, 112px) var(--pg-gutter) 28px;
  background:
    radial-gradient(70% 60% at 50% 30%, rgba(224, 176, 122, .12) 0%, rgba(224, 176, 122, 0) 70%),
    var(--pg-green);
  color: var(--pg-cream);
  text-align: center;
}
.pg-inv a { color: inherit; transition: color .3s ease; }
.pg-inv_card {
  position: relative;
  max-width: 704px;
  margin: 0 auto;
  padding: clamp(48px, 6vw, 72px) clamp(24px, 5vw, 64px);
  background: var(--pg-cream);
  color: var(--pg-green);
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .6);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}
/* double gold border */
.pg-inv_card::before,
.pg-inv_card::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border: 1px solid var(--pg-gold);
}
.pg-inv_card::before { inset: 12px; }
.pg-inv_card::after { inset: 17px; opacity: .5; }
/* corner flourishes */
.pg-inv_corner {
  position: absolute;
  width: 34px;
  height: 34px;
  background: var(--pg-gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M2 38V14C2 7 7 2 14 2h24'/%3E%3Cpath d='M8 38V18c0-6 4-10 10-10h20'/%3E%3Ccircle cx='14' cy='14' r='3' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M2 38V14C2 7 7 2 14 2h24'/%3E%3Cpath d='M8 38V18c0-6 4-10 10-10h20'/%3E%3Ccircle cx='14' cy='14' r='3' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pg-inv_corner.is-tl { top: 24px; left: 24px; }
.pg-inv_corner.is-tr { top: 24px; right: 24px; transform: scaleX(-1); }
.pg-inv_corner.is-bl { bottom: 24px; left: 24px; transform: scaleY(-1); }
.pg-inv_corner.is-br { bottom: 24px; right: 24px; transform: scale(-1); }
.pg-inv_logo { width: clamp(130px, 12vw, 170px); }
.pg-inv_kicker { color: var(--pg-gold); letter-spacing: .3em; font-size: 12px; }
.pg-inv_title {
  font-family: var(--_fonts---font-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: clamp(32px, 4.2vw, 56px);
  line-height: 1;
  max-width: 14em;
}
.pg-inv_title em {
  display: block;
  font-family: var(--_fonts---font-accent);
  font-style: normal;
  text-transform: none;
  color: var(--pg-gold);
  font-size: 1.15em;
  line-height: 1.1;
}
.pg-inv_rule {
  width: 120px;
  height: 10px;
  background:
    linear-gradient(var(--pg-gold), var(--pg-gold)) left center / 48px 1px no-repeat,
    linear-gradient(var(--pg-gold), var(--pg-gold)) right center / 48px 1px no-repeat;
  position: relative;
}
.pg-inv_rule::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  background: var(--pg-gold);
  transform: translate(-50%, -50%) rotate(45deg);
}
.pg-inv_details {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 24px;
  width: 100%;
  font-size: 14px;
  line-height: 1.6;
}
.pg-inv_details .l1 { color: var(--pg-gold); letter-spacing: .22em; font-size: 11px; margin-bottom: 6px; }
.pg-inv_details a:hover { color: var(--pg-gold); }
.pg-inv_card .pg-btn { margin-top: 8px; }
.pg-inv_social { display: flex; gap: 8px; }
.pg-inv_social .pg-social { color: var(--pg-green); border-color: rgba(74, 90, 60, .25); }
.pg-inv_social .pg-social:hover { background: var(--pg-gold); border-color: var(--pg-gold); color: #fff; }
.pg-inv_nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 0;
  margin: 48px auto 14px;
}
.pg-inv_nav_link { letter-spacing: .18em; }
.pg-inv_nav_link + .pg-inv_nav_link::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  margin: 0 18px;
  vertical-align: middle;
  background: var(--pg-gold-l);
  transform: rotate(45deg);
}
.pg-inv_nav_link:hover, .pg-inv_svc a:hover { color: var(--pg-gold-l); }
.pg-inv_svc {
  max-width: 896px;
  margin: 0 auto;
  font-size: 13px;
  line-height: 1.9;
  color: rgba(246, 243, 236, .65);
}
.pg-inv_svc a + a::before { content: "\00B7"; margin: 0 10px; color: var(--pg-gold-l); }
.pg-inv_b {
  max-width: 1216px;
  margin: 40px auto 0;
  padding-top: 20px;
  border-top: 1px solid rgba(246, 243, 236, .15);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  color: rgba(246, 243, 236, .6);
}
@media (max-width: 767px) {
  .pg-inv_details { grid-template-columns: 1fr; gap: 16px; }
  .pg-inv_corner { width: 24px; height: 24px; }
  .pg-inv_b { justify-content: center; text-align: center; }
}

/** -------------------------------------------------
 * Footer v6 - split: logo panel left, menu + contact right
 * ------------------------------------------------- */
.pg-ft2 {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  background: var(--pg-green);
  color: var(--pg-cream);
}
.pg-ft2 a { color: inherit; transition: color .3s ease; }
.pg-ft2_l {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 24px;
  padding: clamp(56px, 7vw, 104px) var(--pg-gutter);
  background:
    radial-gradient(80% 70% at 50% 40%, rgba(224, 176, 122, .16) 0%, rgba(224, 176, 122, 0) 70%),
    #3f4d33;
  border-right: 1px solid rgba(224, 176, 122, .25);
}
.pg-ft2_logo { width: clamp(180px, 16vw, 250px); }
.pg-ft2_lead {
  max-width: 22em;
  font-size: 15px;
  line-height: 1.6;
  color: rgba(246, 243, 236, .75);
}
.pg-ft2 .pg-btn.is-gold {
  gap: 14px;
  padding: 15px 16px 15px 28px;
  box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .45);
}
.pg-ft2 .pg-btn.is-gold:hover { background: var(--pg-cream); }
.pg-ft2 .pg-btn.is-gold:hover .pg-btn_arrow { transform: translateX(4px); }
.pg-ft2_r {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: clamp(32px, 5vw, 80px);
  align-content: center;
  padding: clamp(56px, 7vw, 104px) var(--pg-gutter);
}
.pg-ft2_col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
}
.pg-ft2_label {
  color: var(--pg-gold-l);
  letter-spacing: .24em;
  font-size: 13px;
}
.pg-ft2_nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pg-ft2_nav_link {
  font-family: var(--_fonts---font-display);
  text-transform: uppercase;
  font-size: clamp(24px, 2.2vw, 34px);
  line-height: 1.1;
}
.pg-ft2_nav_link:hover { color: var(--pg-gold-l); }
.pg-ft2_item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 15px;
  line-height: 1.6;
}
.pg-ft2_item .l1 {
  font-size: 11px;
  letter-spacing: .2em;
  color: rgba(246, 243, 236, .5);
}
.pg-ft2_item a:hover { color: var(--pg-gold-l); }
.pg-ft2_social { display: flex; gap: 8px; margin-top: 4px; }
.pg-ft2_b {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  padding: 20px var(--pg-gutter);
  border-top: 1px solid rgba(246, 243, 236, .15);
  color: rgba(246, 243, 236, .6);
}
.pg-ft2_b a:hover { color: var(--pg-gold-l); }
@media (max-width: 991px) {
  .pg-ft2 { grid-template-columns: 1fr; }
  .pg-ft2_l { border-right: 0; border-bottom: 1px solid rgba(224, 176, 122, .25); }
}
@media (max-width: 600px) {
  .pg-ft2_r { grid-template-columns: 1fr; text-align: center; }
  .pg-ft2_col { align-items: center; }
  .pg-ft2_b { justify-content: center; text-align: center; }
}

/* Section separators: gold hairline with a centred diamond ornament at the
   top edge of every section after the hero */
.pg-main > section + section,
.pg-main > section + div + section {
  position: relative;
}
.pg-main > section + section::before,
.pg-main > section + div + section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: min(420px, 60%);
  height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, rgba(194, 138, 78, 0) 0%, #c28a4e 50%, rgba(194, 138, 78, 0) 100%);
  z-index: 2;
}
.pg-main > section + section > :first-child::before {
  content: none;
}
.pg-main > section + section::after,
.pg-main > section + div + section::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 14px;
  height: 14px;
  transform: translate(-50%, -50%) rotate(45deg);
  background: var(--pg-bg);
  border: 1px solid #c28a4e;
  box-shadow: 0 0 0 5px var(--pg-bg), 0 0 0 6px rgba(194, 138, 78, .35);
  z-index: 2;
}
.pg-main > section.is-tint + section::after,
.pg-main > section + section.is-tint::after {
  background: var(--pg-cream);
  box-shadow: 0 0 0 5px var(--pg-cream), 0 0 0 6px rgba(194, 138, 78, .35);
}
/* hero -> content: thin gold band along the photo's bottom edge */
.pg-hero {
  border-bottom: 3px solid #c28a4e;
}
/* the CTA and map have their own overlays; keep the ornament above them */
.pg-cta::before, .pg-map::before {
  z-index: 3;
}
.pg-cta::after {
  /* CTA uses ::after for its overlay, so restore it */
  content: "";
  top: 0;
  left: 0;
  width: auto;
  height: auto;
  inset: 0;
  transform: none;
  border: 0;
  box-shadow: none;
  background: rgba(15, 12, 8, .6);
  z-index: -1;
}

/* Footer menu links: same font and size as the contact details */
.pg-ft2_nav {
  gap: 10px;
}
.pg-ft2_nav_link {
  font-family: var(--_fonts---font-body);
  text-transform: none;
  font-size: 15px;
  line-height: 1.6;
  color: rgba(246, 243, 236, .9);
}

/* Footer right side v2: menu as a single row with diamond separators,
   contact details as three icon tiles, social row beneath */
.pg-ft2_r {
  grid-template-columns: 1fr;
  gap: clamp(36px, 4vw, 56px);
}
.pg-ft2_col:first-child {
  padding-bottom: clamp(28px, 3vw, 40px);
  border-bottom: 1px solid rgba(246, 243, 236, .12);
}
.pg-ft2_nav {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 0;
}
.pg-ft2_nav_link {
  font-size: 16px;
  letter-spacing: .02em;
}
.pg-ft2_nav_link + .pg-ft2_nav_link::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin: 0 20px;
  vertical-align: middle;
  background: var(--pg-gold-l);
  transform: rotate(45deg);
}
.pg-ft2_col:last-child {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.pg-ft2_col:last-child .pg-ft2_label,
.pg-ft2_col:last-child .pg-ft2_social {
  grid-column: 1 / -1;
}
.pg-ft2_item {
  position: relative;
  padding: 64px 20px 22px;
  border: 1px solid rgba(246, 243, 236, .14);
  border-radius: 6px;
  background: rgba(246, 243, 236, .04);
  font-size: 14px;
  transition: border-color .3s ease, background-color .3s ease;
}
.pg-ft2_item:hover {
  border-color: rgba(224, 176, 122, .5);
  background: rgba(246, 243, 236, .07);
}
.pg-ft2_item::before {
  content: "";
  position: absolute;
  top: 20px;
  left: 20px;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: rgba(224, 176, 122, .16);
}
.pg-ft2_item::after {
  content: "";
  position: absolute;
  top: 28px;
  left: 28px;
  width: 16px;
  height: 16px;
  background: var(--pg-gold-l);
  -webkit-mask: var(--pg-ico) center / contain no-repeat;
  mask: var(--pg-ico) center / contain no-repeat;
}
.pg-ft2_item:nth-of-type(1) {
  --pg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}
.pg-ft2_item:nth-of-type(2) {
  --pg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");
}
.pg-ft2_item:nth-of-type(3) {
  --pg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E");
}
.pg-ft2_item a {
  word-break: break-word;
}
@media (max-width: 767px) {
  .pg-ft2_col:last-child { grid-template-columns: 1fr; }
  .pg-ft2_nav { justify-content: center; }
  .pg-ft2_item { text-align: left; }
}

/* Contact details v3: no boxes - icon beside text, thin dividers between,
   wider address column so it wraps cleanly */
.pg-ft2_col:last-child {
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 0;
  row-gap: 18px;
}
.pg-ft2_item,
.pg-ft2_item:hover {
  border: 0;
  border-radius: 0;
  background: none;
  padding: 2px 24px 2px 60px;
}
.pg-ft2_item + .pg-ft2_item {
  border-left: 1px solid rgba(246, 243, 236, .14);
  padding-left: 84px;
}
.pg-ft2_item::before {
  top: 0;
  left: 0;
  width: 42px;
  height: 42px;
  background: none;
  border: 1px solid rgba(224, 176, 122, .5);
  transition: background-color .3s ease;
}
.pg-ft2_item::after {
  top: 13px;
  left: 13px;
}
.pg-ft2_item + .pg-ft2_item::before { left: 24px; }
.pg-ft2_item + .pg-ft2_item::after { left: 37px; }
.pg-ft2_item:hover::before { background: rgba(224, 176, 122, .18); }
.pg-ft2_item .l1 {
  color: var(--pg-gold-l);
  opacity: .85;
  margin-bottom: 2px;
}
.pg-ft2_item a {
  font-size: 15px;
}
.pg-ft2_col:last-child .pg-ft2_social {
  margin-top: 14px;
}
@media (max-width: 991px) {
  .pg-ft2_col:last-child { grid-template-columns: 1fr; row-gap: 24px; }
  .pg-ft2_item + .pg-ft2_item { border-left: 0; padding-left: 60px; }
  .pg-ft2_item + .pg-ft2_item::before { left: 0; }
  .pg-ft2_item + .pg-ft2_item::after { left: 13px; }
}

/* Social icons now sit under the logo; contact items stack when the right
   panel is too narrow for three columns (they were overflowing) */
.pg-ft2_l .pg-ft2_social {
  justify-content: center;
  margin-top: 4px;
}
@media (max-width: 1440px) {
  .pg-ft2_col:last-child { grid-template-columns: 1fr; row-gap: 22px; }
  .pg-ft2_item + .pg-ft2_item { border-left: 0; padding-left: 60px; }
  .pg-ft2_item + .pg-ft2_item::before { left: 0; }
  .pg-ft2_item + .pg-ft2_item::after { left: 13px; }
}

/* Footer bottom strip: readable on green */
.pg-ft2_b {
  align-items: center;
}
.pg-ft2_b_txt {
  font-family: var(--_fonts---font-body);
  font-size: 13px;
  letter-spacing: .02em;
  color: rgba(246, 243, 236, .7);
}
.pg-ft2_b a {
  color: var(--pg-cream);
}
.pg-ft2_b a:hover {
  color: var(--pg-gold-l);
}

/* CTA band overlay (the section-separator diamond rule was overriding it) */
.pg-main > section.pg-cta::after,
.pg-main > div + section.pg-cta::after,
.pg-main > section + section.pg-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  top: 0;
  left: 0;
  width: auto;
  height: auto;
  transform: none;
  border: 0;
  box-shadow: none;
  background: linear-gradient(180deg, rgba(15, 12, 8, .62) 0%, rgba(15, 12, 8, .5) 50%, rgba(15, 12, 8, .7) 100%);
  z-index: -1;
}
.pg-ft2_b_links {
  display: flex;
  gap: 24px;
}

/* Buttons: one compact size site-wide (inner pages) */
.pg-btn,
.pg-ft2 .pg-btn.is-gold,
.pg-footer_actions .pg-btn.is-gold {
  padding: 12px 24px;
  font-size: 12px;
  letter-spacing: .14em;
  line-height: 1.2;
  font-weight: 600;
}
.pg-header_cta {
  padding: 10px 20px;
  font-size: 12px;
}
.pg-btn_arrow {
  width: 24px;
  height: 24px;
  font-size: 12.8px;
  margin-right: -10px;
}

/* Hero: cap height so tall viewports don't get an enormous header image */
.pg-hero {
  min-height: min(72vh, 680px);
}
@media (max-width: 767px) {
  .pg-hero {
    min-height: min(70vh, 560px);
    padding-top: 120px;
    padding-bottom: 56px;
  }
}

/* Phones: body copy and small labels a touch larger for readability */
@media (max-width: 767px) {
  .pg .p1 { font-size: 15px; line-height: 1.65; }
  .pg .l1 { font-size: 11px; }
  .pg-hero_title { font-size: clamp(40px, 12vw, 64px); }
  .pg-sec { padding-top: 64px; padding-bottom: 64px; }
}

/* Gallery filter pills: fixed readable size on every screen */
.pg-filter {
  font-family: var(--_fonts---font-body);
  font-size: 12px;
  font-weight: 600;
  padding: 10px 18px;
}
@media (max-width: 600px) {
  .pg-filters { gap: 8px; }
  .pg-filter { font-size: 11px; padding: 8px 14px; }
}

/* Contact: let form columns shrink instead of pushing past the screen */
.pg-contact { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
.pg-form_grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.pg-field, .pg-field input, .pg-field select, .pg-field textarea { min-width: 0; max-width: 100%; }
@media (max-width: 991px) {
  .pg-contact { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .pg-form_grid { grid-template-columns: minmax(0, 1fr); }
}

/* Gallery: two columns on phones instead of one long strip */
@media (max-width: 767px) {
  .pg-gal { columns: 2; column-gap: 10px; }
  .pg-gal_item { margin-bottom: 10px; }
}

/* Card photos: fill the 3:4 arch exactly, whatever the photo's own shape */
.pg-svc_img { position: relative; }
.pg-svc_img img { position: absolute; inset: 0; }

/* ===== Gallery filters: airy pills in balanced, centred rows ===== */
.pg-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 12px; max-width: 920px; margin: 0 auto 56px; }
.pg-filter { padding: 12px 24px; border: 1px solid rgba(74, 90, 60, .2); border-radius: 999px; background: #fff; color: var(--pg-green); font-family: var(--_fonts---font-body); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; cursor: pointer; transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
.pg-filter:hover { border-color: var(--pg-gold); color: var(--pg-gold); }
.pg-filter.is-active, .pg-filter.is-active:hover { background: var(--pg-gold); border-color: var(--pg-gold); color: #fff; }
.pg-filter:focus-visible { outline: 2px solid var(--pg-gold); outline-offset: 2px; }
@media (max-width: 767px) {
  .pg-filters { gap: 8px; margin-bottom: 32px; }
  .pg-filter { padding: 9px 16px; font-size: 11px; letter-spacing: .1em; }
}
@media (min-width: 768px) and (max-width: 1199px) { .pg-filters { max-width: 620px; } }
