  text-transform: uppercase;
  color: var(--navy-700);
}
.testimonial-card__date {
  font-family: var(--font-sans);
  font-size:0.72rem;
  color: var(--ink-500);
}
.testimonial-card__location {
  display: block;
  font-family: var(--font-sans);
  font-size:0.78rem;
  color: var(--sand-700);
  font-weight: 400;
  letter-spacing:0.04em;
  text-transform: none;
  margin-top:0.16rem;
}

/* "Read more" link under the homepage testimonial block */
.lume-testimonial__more {
  display: inline-flex;
  align-items: center;
  gap:0.39rem;
  margin-top:var(--space-3);
  font-family: var(--font-sans);
  font-size:0.87rem;
  font-weight: 600;
  letter-spacing:0.13em;
  text-transform: uppercase;
  color: var(--sand-300);
  border-bottom: 1px solid transparent;
  padding-bottom:1.92px;
  transition: all var(--transition);
}
.lume-testimonial__more:hover {
  color: var(--sand-500);
  border-bottom-color: var(--sand-500);
}

/* ---------- Featured destinations ---------- */
.lume-destinations {
  display: grid;
  gap:var(--space-2);
  grid-template-columns: 1fr;
}
.lume-destination {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius:var(--radius-md);
  color: var(--cream-50);
  isolation: isolate;
}
.lume-destination img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 700ms ease;
}
.lume-destination::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,42,74,0) 30%, rgba(15,42,74,0.55) 55%, rgba(15,42,74,0.92) 100%);
}
.lume-destination__label {
  position: absolute;
  left: var(--space-3);
  right: var(--space-3);
  bottom: var(--space-3);
  z-index: 1;
  font-family: var(--font-serif);
  font-size:1.52rem;
  text-shadow: 0 2px 18px rgba(15, 42, 74, 0.65);
}
.lume-destination__label small {
  display: block;
  font-family: var(--font-sans);
  font-size:0.69rem;
  letter-spacing:0.19em;
  text-transform: uppercase;
  color: var(--sand-300);
  margin-bottom:0.26rem;
  font-weight: 600;
}
.lume-destination:hover img { transform: scale(1.06); }

/* ---------- Why PGA ---------- */
.lume-split {
  display: grid;
  gap:var(--space-4);
  grid-template-columns: 1fr;
  align-items: center;
}
.lume-split__media img {
  border-radius:var(--radius-md);
  width: 100%;
  height: auto;
}
.lume-feature-list {
  list-style: none;
  padding:0;
  margin:var(--space-3) 0 0;
}
.lume-feature-list li {
  position: relative;
  padding:0.89rem 0 0.89rem 1.92rem;
  border-bottom: 1px solid var(--line);
  color: var(--ink-700);
}
.lume-feature-list li:last-child { border-bottom: 0; }
.lume-feature-list li::before {
  content: "✦";
  position: absolute;
  left: 0;
  top: 0.85rem;
  color: var(--sand-500);
  font-size:0.92rem;
}
.lume-feature-list strong { color: var(--navy-900); display: block; font-weight: 600; }

/* ---------- Resources & Preferred Partners ---------- */
.lume-resources {
  list-style: none;
  padding:0;
  margin:0;
  display: grid;
  gap:var(--space-3);
  grid-template-columns: 1fr;
}
.lume-resource a {
  display: flex;
  gap:var(--space-3);
  align-items: flex-start;
  height: 100%;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius:var(--radius-md);
  padding:var(--space-3);
  text-decoration: none;
  color: inherit;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
  position: relative;
}
.lume-resource a:hover {
  transform: translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color: var(--sand-500);
}
.lume-resource__media {
  flex: 0 0 84px;
  width: 84px;
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cream-50);
  border-radius:var(--radius-sm);
  border: 1px solid var(--line);
  padding:8.18px;
  overflow: hidden;
}
.lume-resource__media img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.lume-resource__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.lume-resource__title {
  font-family: var(--font-serif);
  font-size:1.07rem;
  font-weight: 500;
  color: var(--navy-900);
  line-height: 1.3;
  margin-bottom:0.35rem;
}
.lume-resource__sub {
  font-family: var(--font-sans);
  font-size:0.87rem;
  color: var(--ink-500);
  line-height: 1.5;
  margin-bottom:0.75rem;
  flex: 1;
}
.lume-resource__type {
  display: inline-flex;
  align-items: center;
  gap:0.3rem;
  align-self: flex-start;
  font-family: var(--font-sans);
  font-size:0.71rem;
  font-weight: 600;
  letter-spacing:0.14em;
  text-transform: uppercase;
  padding:0.3rem 0.6rem;
  border-radius:1019.98px;
}
.lume-resource__type--pdf {
  background: var(--navy-200);
  color: var(--navy-700);
}
.lume-resource__type--link {
  background: rgba(200, 149, 109, 0.15);
  color: var(--sand-700);
}
.resources__note {
  margin-top:var(--space-4);
  text-align: center;
  font-size:0.83rem;
  color: var(--ink-500);
  font-style: italic;
}

@media (min-width: 700px) {
  .lume-resources { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1100px) {
  .lume-resources { grid-template-columns: repeat(4, 1fr); gap:var(--space-2); }
  .lume-resource a { flex-direction: column; gap:var(--space-2); }
  .lume-resource__media {
    flex: 0 0 auto;
    width: 96px;
    height: 96px;
    align-self: center;
  }
  .lume-resource__body { text-align: center; align-items: center; }
  .lume-resource__title { text-align: center; }
  .lume-resource__sub { text-align: center; }
}

/* ---------- Brochure Rack callout ---------- */
.lume-brochure-rack {
  display: grid;
  grid-template-columns: 1fr;
  gap:var(--space-4);
  align-items: center;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:var(--space-4);
  box-shadow:var(--shadow-sm);
  position: relative;
  overflow: hidden;
}
.lume-brochure-rack::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at top right, rgba(200, 149, 109, 0.10), transparent 50%),
    radial-gradient(circle at bottom left, rgba(27, 79, 138, 0.06), transparent 45%);
  pointer-events: none;
}
.lume-brochure-rack > * { position: relative; z-index: 1; }

.lume-brochure-rack__media {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cream-50);
  border-radius:var(--radius-md);
  padding:var(--space-4);
  border: 1px solid var(--line);
}
.lume-brochure-rack__media img {
  max-width: 180px;
  width: 100%;
  height: auto;
}
.lume-brochure-rack__body h2 {
  margin-bottom:var(--space-2);
}
.lume-brochure-rack__body p {
  font-size:1.03rem;
  color: var(--ink-700);
  margin-bottom:var(--space-3);
  max-width: 60ch;
}
.lume-brochure-rack__cta {
  display: flex;
  flex-wrap: wrap;
  gap:var(--space-2);
  margin-bottom:var(--space-2);
}
.lume-brochure-rack__note {
  font-size:0.77rem;
  letter-spacing:0.1em;
  text-transform: uppercase;
  color: var(--ink-500);
  margin:0;
}

@media (min-width: 800px) {
  .lume-brochure-rack {
    grid-template-columns: 280px 1fr;
    gap:var(--space-5);
    padding:var(--space-5);
  }
  .lume-brochure-rack__media { padding:var(--space-5); }
}

/* ---------- Tagline band ---------- */
.lume-tagline-band {
  background: var(--cream-50);
  padding-block: var(--space-6);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
}
.lume-tagline-band__inner {
  max-width: 820px;
  margin-inline: auto;
  position: relative;
  padding-inline: var(--space-4);
}
.lume-tagline-band__inner::before,
.lume-tagline-band__inner::after {
  content: "";
  display: block;
  width: 48px;
  height: 2px;
  background: var(--sand-500);
  margin:0 auto var(--space-3);
}
.lume-tagline-band__inner::after {
  margin:var(--space-3) auto 0;
}
.lume-tagline-band p {
  font-family: var(--font-serif);
  font-style: italic;
  font-size:clamp(1.45rem, 2.6vw, 1.94rem);
  line-height: 1.4;
  color: var(--navy-700);
  font-weight: 300;
  margin:0;
}

/* ---------- Testimonial ---------- */
.lume-testimonial {
  text-align: center;
  max-width: 760px;
  margin-inline: auto;
}
.lume-testimonial blockquote {
  font-family: var(--font-serif);
  font-size:clamp(1.44rem, 2.4vw, 1.86rem);
  font-style: italic;
  color: var(--cream-50);
  margin:0 0 var(--space-3);
  line-height: 1.4;
  font-weight: 300;
}
.lume-testimonial blockquote::before {
  content: "“";
  display: block;
  font-size:3.82rem;
  color: var(--sand-500);
  line-height: 0.5;
  margin-bottom:1.03rem;
  font-family: var(--font-serif);
}
.lume-testimonial cite {
  font-style: normal;
  font-size:0.85rem;
  letter-spacing:0.19em;
  text-transform: uppercase;
  color: var(--sand-500);
}

/* ---------- Newsletter ---------- */
.lume-newsletter {
  text-align: center;
  max-width: 540px;
  margin-inline: auto;
}
.lume-newsletter h2 { color: var(--navy-900); }
.lume-newsletter p { color: var(--ink-500); }
.lume-newsletter form {
  display: flex;
  gap:0.52rem;
  margin-top:var(--space-3);
  flex-wrap: wrap;
}
.lume-newsletter input[type="email"] {
  flex: 1 1 200px;
  padding:0.89rem 1.01rem;
  border: 1.5px solid var(--line);
  border-radius:var(--radius-sm);
  font-family: var(--font-sans);
  font-size:1.03rem;
  background: var(--white);
  color: var(--ink-900);
}
.lume-newsletter input[type="email"]:focus {
  outline: none;
  border-color: var(--navy-700);
}

/* Override the .secure-form grid for the inline newsletter signup */
.lume-newsletter .secure-form.newsletter__form {
  display: flex;
  flex-wrap: wrap;
  gap:0.51rem;
  margin-top:var(--space-3);
  align-items: center;
}
.lume-newsletter .secure-form .form-group {
  margin:0;
  flex-direction: row; /* override the default column form-group so internal flex props don't become heights */
}
.lume-newsletter .newsletter__email {
  flex: 1 1 220px;
  min-width: 0;
}
.lume-newsletter .newsletter__email .form-control {
  flex: 1 1 auto;            /* defeat the legacy `.lume-newsletter input[type=email] { flex: 1 1 200px }` height bug */
  width: 100%;
  padding:0.81rem 1rem;
  border: 1.5px solid var(--line);
  border-radius:var(--radius-sm);
  font-family: var(--font-sans);
  font-size:1.05rem;
  background: var(--white);
  color: var(--ink-900);
  height: auto;
}
.lume-newsletter .newsletter__email .form-control:focus {
  outline: none;
  border-color: var(--navy-700);
}
.lume-newsletter .newsletter__submit { flex: 0 0 auto; }
.lume-newsletter .newsletter__turnstile {
  flex: 1 1 100%;
  display: flex;
  justify-content: center;
  margin-top:var(--space-2);
}

/* ---------- Footer ---------- */
.lume-site-footer {
  background: var(--navy-900);
  color: rgba(251, 247, 241, 0.85);
  padding-block: var(--space-5) var(--space-3);
  font-size:0.91rem;
}
.lume-site-footer p { color: rgba(251, 247, 241, 0.85); }
.lume-footer-grid {
  display: grid;
  gap:var(--space-4);
  grid-template-columns: 1fr;
  margin-bottom:var(--space-4);
}
.lume-site-footer h4 {
  color: var(--sand-500);
  font-family: var(--font-sans);
  font-size:0.79rem;
  letter-spacing:0.19em;
  margin-bottom:var(--space-2);
}
.lume-site-footer a { color: rgba(251, 247, 241, 0.8); }
.lume-site-footer a:hover { color: var(--sand-500); }
.lume-footer-nav { list-style: none; padding:0; margin:0; }
.lume-footer-nav li { padding:0.26rem 0; }
.lume-footer__legal {
  border-top: 1px solid rgba(251, 247, 241, 0.15);
  padding-top:var(--space-3);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap:var(--space-2);
  font-size:0.86rem;
  color: rgba(251, 247, 241, 0.6);
}
.lume-footer__brand {
  font-family: var(--font-serif);
  color: var(--cream-50);
  font-size:1.15rem;
  margin-bottom:0.48rem;
}

/* ---------- About page bits ---------- */
.story-grid {
  display: grid;
  gap:var(--space-4);
  grid-template-columns: 1fr;
}
.story-grid > div > p:first-of-type::first-letter {
  font-family: var(--font-serif);
  font-size:3.55rem;
  float: left;
  line-height: 0.9;
  padding-right:0.52rem;
  padding-top:0.24rem;
  color: var(--sand-500);
  font-weight: 400;
}

.team {
  display: grid;
  gap:var(--space-3);
  grid-template-columns: 1fr;
}
.team__card {
  text-align: center;
  padding:var(--space-3);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius:var(--radius-md);
}
.team__photo {
  width: 120px;
  height: 120px;
  margin:0 auto var(--space-2);
  border-radius:52%;
  background: var(--navy-200);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--navy-700);
  font-family: var(--font-serif);
  font-size:2.43rem;
}
.team__name {
  font-family: var(--font-serif);
  font-size:1.24rem;
  color: var(--navy-900);
  margin-bottom:0.25rem;
}
.team__role {
  font-size:0.75rem;
  letter-spacing:0.16em;
  text-transform: uppercase;
  color: var(--sand-700);
  margin-bottom:var(--space-2);
}
.team__photo--img { background: var(--white); padding:0; overflow: hidden; }
.team__photo--img img { width: 100%; height: 100%; object-fit: cover; border-radius:51.85%; }
.team__card--featured {
  background: var(--navy-900);
  border-color: var(--navy-900);
  color: var(--cream-50);
  position: relative;
  overflow: hidden;
  grid-column: 1 / -1;
}
@media (min-width: 700px) {
  .team__card--featured {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap:var(--space-4);
    align-items: center;
    text-align: left;
    padding:var(--space-4);
  }
  .team__card--featured .team__photo { margin:0; }
}
.team__card--featured::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at top right, rgba(242, 200, 150, 0.18), transparent 55%),
    radial-gradient(circle at bottom left, rgba(27, 79, 138, 0.35), transparent 50%);
  pointer-events: none;
}
.team__card--featured > * { position: relative; }
.team__card--featured .team__name { color: var(--cream-50); }
.team__card--featured .team__role { color: var(--sand-300); }
.team__card--featured p { color: rgba(251, 247, 241, 0.85); }
.team__card--featured .team__photo {
  background: var(--cream-50);
  color: var(--navy-700);
  box-shadow:0 0 0 3.88px rgba(242, 200, 150, 0.35);
}
.team__badge {
  display: block;
  margin-top:var(--space-3);
}
.team__badge img {
  display: block;
  width: 101px;
  height: 100px;
  margin:0 auto;
}

.pillar-deep {
  border-bottom: 1px solid var(--line);
  padding-block: var(--space-4);
  display: grid;
  gap:var(--space-3);
  grid-template-columns: 1fr;
  align-items: start;
}
.pillar-deep:last-child { border-bottom: 0; }
.pillar-deep__pct {
  font-family: var(--font-serif);
  font-size:2.87rem;
  color: var(--sand-500);
  line-height: 1;
  font-weight: 300;
}
.pillar-deep__title {
  font-family: var(--font-serif);
  font-size:1.76rem;
  color: var(--navy-900);
  margin-bottom:var(--space-1);
}
.pillar-deep small {
  display: block;
  font-size:0.81rem;
  text-transform: uppercase;
  letter-spacing:0.18em;
  color: var(--ink-500);
  margin-bottom:var(--space-2);
}

.clubs {
  display: grid;
  gap:var(--space-3);
  grid-template-columns: 1fr;
}
.club {
  text-align: center;
  padding:var(--space-3);
  border: 1px solid var(--line);
  background: var(--cream-50);
  border-radius:var(--radius-md);
}
.club .lume-num {
  font-family: var(--font-serif);
  font-size:2.5rem;
  color: var(--navy-700);
  line-height: 1;
}
.club .name {
  font-family: var(--font-serif);
  font-size:1.08rem;
  color: var(--navy-900);
  margin-top:var(--space-1);
}
.club .desc {
  font-size:0.84rem;
  color: var(--ink-500);
  margin-top:var(--space-1);
}

.pullquote {
  text-align: center;
  max-width: 820px;
  margin-inline: auto;
  padding-block: var(--space-5);
}
.pullquote p {
  font-family: var(--font-serif);
  font-style: italic;
  font-size:clamp(1.45rem, 2.6vw, 1.94rem);
  line-height: 1.4;
  color: var(--navy-900);
  font-weight: 300;
}
.pullquote p em { color: var(--sand-500); font-style: italic; }

.cta-band {
  text-align: center;
}
.cta-band h2 { margin-bottom:var(--space-2); }
.cta-band__phone {
  font-family: var(--font-serif);
  font-size:2.04rem;
  color: var(--sand-500);
  margin-bottom:var(--space-3);
  display: block;
}

/* ---------- Responsive ---------- */
@media (min-width: 600px) {
  .lume-trust-strip { grid-template-columns: repeat(2, 1fr); }
  .lume-pillars { grid-template-columns: repeat(2, 1fr); }
  .lume-destinations { grid-template-columns: repeat(2, 1fr); }
  .team { grid-template-columns: repeat(2, 1fr); }
  .clubs { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 900px) {
  .lume-header__cta { display: inline-flex; }
  .lume-trust-strip { grid-template-columns: repeat(4, 1fr); }
  .lume-pillars { grid-template-columns: repeat(3, 1fr); }
  .lume-destinations { grid-template-columns: repeat(4, 1fr); }
  .lume-split { grid-template-columns: 1fr 1fr; gap:var(--space-5); }
  .story-grid { grid-template-columns: 5fr 4fr; gap:var(--space-5); }
  .team { grid-template-columns: repeat(4, 1fr); }
  .clubs { grid-template-columns: repeat(4, 1fr); }
  .pillar-deep { grid-template-columns: 1fr 3fr; gap:var(--space-4); }
  .lume-footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; }
}

@media (min-width: 1100px) {
  .lume-hero__title { font-size:4.54rem; }
}

/* ---------- Contact page ---------- */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap:var(--space-5);
  align-items: start;
}
@media (min-width: 900px) {
  .contact-grid { grid-template-columns: 280px 1fr; gap:var(--space-5); }
}
@media (min-width: 1100px) {
  .contact-grid { grid-template-columns: 300px 1fr; gap:var(--space-6); }
}
.contact-info__intro {
  font-family: var(--font-serif);
  font-size:1.17rem;
  line-height: 1.55;
  color: var(--ink-900);
  margin-bottom:var(--space-4);
}
.contact-info__block {
  margin-bottom:var(--space-4);
}
.contact-info__block h3 {
  font-family: var(--font-sans);
  font-size:0.73rem;
  font-weight: 600;
  letter-spacing:0.18em;
  text-transform: uppercase;
  color: var(--sand-700);
  margin:0 0 0.5rem;
}
.contact-info__block p { margin:0 0 0.41rem; color: var(--ink-700); font-size:0.9rem; }
.contact-info__link-big {
  font-family: var(--font-serif);
  font-size:1.87rem;
  color: var(--navy-700);
  font-weight: 400;
  text-decoration: none;
  line-height: 1.1;
}
.contact-info__link-big:hover { color: var(--sand-700); }
.contact-info__link {
  font-family: var(--font-sans);
  font-size:1rem;
  color: var(--navy-700);
  word-break: break-word;
}
.contact-info__partners {
  list-style: none;
  padding:0;
  margin:0;
  font-size:0.92rem;
  color: var(--ink-700);
}
.contact-info__partners li { padding:0.29rem 0; border-bottom: 1px solid var(--line); }
.contact-info__partners li:last-child { border-bottom: 0; }
.contact-info__partners a { color: var(--navy-700); }

.contact-form-wrap {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius:var(--radius-md);
  padding:var(--space-3);
}
@media (min-width: 700px) {
  .contact-form-wrap { padding:var(--space-4); }
}
@media (min-width: 1100px) {
  .contact-form-wrap { padding:var(--space-5); }
}
.contact-form-wrap > .lume-eyebrow + h2 { margin-bottom:var(--space-2); }
.contact-form-wrap__intro {
  color: var(--ink-700);
  margin-bottom:var(--space-4);
}
.contact-form-wrap__note {
  margin-top:var(--space-4);
  font-size:0.79rem;
  color: var(--ink-500);
  font-style: italic;
  text-align: center;
  padding-top:var(--space-3);
  border-top: 1px solid var(--line);
}

/* ---------- SecureForms form styling ---------- */
.secure-form {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap:var(--space-3);
  margin:0;
}
.secure-form .form-group {
  display: flex;
  flex-direction: column;
  gap:0.35rem;
  grid-column: span 12;
  margin:0;
}
@media (min-width: 600px) {
  .secure-form .form-group-half    { grid-column: span 6; }
  .secure-form .form-group-third   { grid-column: span 4; }
  .secure-form .form-group-quarter { grid-column: span 3; }
  /* new-row variants must restate the span — otherwise grid-column-start: 1
     overrides the span and collapses the cell to a single column wide. */
  .secure-form .form-group.form-group-new-row { grid-column: 1 / -1; }
  .secure-form .form-group-half.form-group-new-row    { grid-column: 1 / span 6; }
  .secure-form .form-group-third.form-group-new-row   { grid-column: 1 / span 4; }
  .secure-form .form-group-quarter.form-group-new-row { grid-column: 1 / span 3; }
}

.secure-form label {
  font-family: var(--font-sans);
  font-size:0.75rem;
  font-weight: 600;
  letter-spacing:0.1em;
  color: var(--navy-900);
  text-transform: uppercase;
}
.secure-form .required { color: var(--sand-700); margin-left:0.14rem; }

.secure-form .form-control {
  font-family: var(--font-sans);
  font-size:0.93rem;
  padding:0.73rem 0.85rem;
  border: 1.5px solid var(--line);
  border-radius:var(--radius-sm);
  background: var(--white);
  color: var(--ink-900);
  width: 100%;
  transition: border-color var(--transition), box-shadow var(--transition);
  line-height: 1.4;
}
.secure-form .form-control:focus {
  outline: none;
  border-color: var(--navy-700);
  box-shadow:0 0 0 3.11px rgba(27, 79, 138, 0.15);
}
.secure-form textarea.form-control {
  min-height: 140px;
  resize: vertical;
  font-family: var(--font-sans);
}
.secure-form select.form-control {
  appearance: none;
  -webkit-appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--navy-700) 50%),
    linear-gradient(135deg, var(--navy-700) 50%, transparent 50%);
  background-position: calc(100% - 18px) calc(50% - 2px), calc(100% - 13px) calc(50% - 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right:2.51rem;
}

.secure-form .radio-inline {
  display: flex;
  gap:var(--space-3);
  padding-top:0.44rem;
  flex-wrap: wrap;
}
.secure-form .form-check {
  display: flex;
  align-items: center;
  gap:0.47rem;
}
.secure-form .form-check-input {
  accent-color: var(--navy-700);
  width: 1.1rem;
  height: 1.1rem;
  margin:0;
}
.secure-form .form-check-label {
  font-family: var(--font-sans);
  font-size:0.91rem;
  color: var(--ink-700);
  text-transform: none;
  letter-spacing:normal;
  font-weight: 400;
  margin:0;
}

.secure-form .repeating-section {
  grid-column: span 12;
  background: var(--cream-50);
  border: 1px solid var(--line);
  border-radius:var(--radius-md);
  padding:var(--space-3);
}
.secure-form .repeating-section-header h4 {
  font-family: var(--font-serif);
  font-size:1.21rem;
  color: var(--navy-900);
  margin:0 0 var(--space-3);
}
.secure-form .repeating-items {
  display: flex;
  flex-direction: column;
  gap:var(--space-3);
}
.secure-form .repeating-item {
  padding:var(--space-3);
  background: var(--white);
  border-radius:var(--radius-sm);
  border: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap:var(--space-3);
  position: relative;
}
.secure-form .repeating-item-header {
  grid-column: span 12;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.secure-form .repeating-item-header h5 {
  margin:0;
  font-family: var(--font-sans);
  font-size:0.73rem;
  color: var(--ink-500);
  letter-spacing:0.16em;
  text-transform: uppercase;
  font-weight: 600;
}
.secure-form .repeating-item-header h5::before { content: "Traveler "; }
.secure-form .remove-item {
  background: none;
  border: none;
  color: var(--sand-700);
  font-family: var(--font-sans);
  font-size:0.75rem;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing:0.13em;
  font-weight: 600;
  padding:0;
}
.secure-form .remove-item:hover { color: var(--sand-500); }
.secure-form .repeating-section-controls {
  margin-top:var(--space-3);
}
.secure-form .add-repeating-item {
  background: var(--white);
  border: 1.5px dashed var(--sand-500);
  color: var(--sand-700);
  padding:0.63rem 1.16rem;
  border-radius:var(--radius-sm);
  font-family: var(--font-sans);
  font-size:0.76rem;
  font-weight: 600;
  letter-spacing:0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all var(--transition);
}
.secure-form .add-repeating-item:hover {
  background: var(--cream-50);
  border-color: var(--sand-700);
  color: var(--navy-700);
}

.secure-form button[type="submit"],
.secure-form .btn-primary {
  background: var(--sand-300);
  color: var(--navy-900);
  border: 1.5px solid transparent;
  padding:0.94rem 2.1rem;
  font-family: var(--font-sans);
  font-size:1.01rem;
  font-weight: 600;
  letter-spacing:0.04em;
  border-radius:var(--radius-sm);
  cursor: pointer;
  transition: all var(--transition);
}
.secure-form button[type="submit"]:hover,
.secure-form .btn-primary:hover {
  background: var(--sand-500);
  transform: translateY(-1px);
  box-shadow:var(--shadow-md);
}

.secure-form .cf-turnstile { margin:var(--space-2) auto; }

/* ---------- A11y helpers ---------- */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding:0; margin:1.04px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.lume-skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--navy-900);
  color: var(--cream-50);
  padding:0.5rem 0.99rem;
  z-index: 200;
}
.lume-skip-link:focus { top: 0; }

/* ============================================================
   WP block-wrapper normalize
   Native blocks (wp:image, wp:group, wp:paragraph, wp:list,
   wp:buttons) introduce wrapper elements with WordPress's
   default margins and gap. Inside the prototype's card/media
   containers those wrappers leak through and break the layout.
   These rules reset wrappers so the prototype's container CSS
   continues to own the rhythm. Added when patterns were
   converted from wp:html to native blocks (v1.2.0).
   ============================================================ */

/* Images inside any prototype media container — kill figure margin,
   force img to fill via object-fit. Specificity beats .wp-block-image img. */
.lume-pillar__media .wp-block-image,
.tour-card__media .wp-block-image,
.lume-destination .wp-block-image,
.team__photo .wp-block-image,
.lume-resource__media .wp-block-image,
.lume-hero__media .wp-block-image,
.lume-split__media .wp-block-image,
.lume-brochure-rack__media .wp-block-image,
.coordinator-portrait .wp-block-image,
.partner-hero__logo .wp-block-image {
  margin:0;
  padding:0;
  display: block;
  width: 100%;
}

.lume-pillar__media .wp-block-image,
.lume-pillar__media .wp-block-image > a,
.tour-card__media .wp-block-image,
.tour-card__media .wp-block-image > a,
.lume-destination .wp-block-image,
.lume-destination .wp-block-image > a,
.team__photo .wp-block-image,
.team__photo .wp-block-image > a,
.lume-resource__media .wp-block-image,
.lume-resource__media .wp-block-image > a,
.lume-hero__media .wp-block-image,
.lume-hero__media .wp-block-image > a,
.lume-split__media .wp-block-image,
.lume-split__media .wp-block-image > a,
.lume-brochure-rack__media .wp-block-image,
.lume-brochure-rack__media .wp-block-image > a {
  height: 100%;
}

.lume-pillar__media .wp-block-image img,
.tour-card__media .wp-block-image img,
.lume-destination .wp-block-image img,
.team__photo .wp-block-image img,
.lume-resource__media .wp-block-image img,
.lume-hero__media .wp-block-image img,
.lume-split__media .wp-block-image img,
.lume-brochure-rack__media .wp-block-image img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  display: block;
}

/* Coordinator portrait + partner-hero logo aren't object-fit covers —
   they want their natural aspect ratio, just no figure margin. */
.coordinator-portrait .wp-block-image img,
.partner-hero__logo .wp-block-image img {
  margin:0 auto;
}

/* Strip WP block-group wrappers when they sit between a prototype
   media container and its inner figure (we use a wp:group for the
   .X__media wrapper so the className applies). */
.lume-pillar > .wp-block-group.lume-pillar__media,
.tour-card > .wp-block-group.tour-card__media,
.lume-destination > .wp-block-group.lume-destination .wp-block-image,
.team__card > .wp-block-group.team__photo,
.lume-resource > .wp-block-group.lume-resource__media,
.lume-hero > .wp-block-group.lume-hero__media,
.lume-split > .wp-block-group.lume-split__media,
.lume-brochure-rack > .wp-block-group.lume-brochure-rack__media {
  padding:0;
  margin:0;
}

/* Card bodies — kill the default blockGap WP injects into
   flex-column groups, and reset paragraph margins so the
   prototype's .X__num / .X__title / .X__desc margins win. */
.lume-pillar__body,
.tour-card__body,
.lume-resource__body,
.lume-staytouch,
.team__card,
.testimonial-card,
.coordinator-card,
.contact-info,
.contact-info__block,
.contact-form-wrap,
.lume-brochure-rack__body,
.lume-hero__inner {
  gap:0;
}

.lume-pillar__body > *,
.tour-card__body > *,
.lume-resource__body > *,
.lume-staytouch > *,
.team__card > *,
.testimonial-card > *,
.coordinator-card > *,
.lume-brochure-rack__body > * {
  margin-block: 0;
}

/* Re-apply the prototype's specific child margins (these are the
   ones that establish the card's vertical rhythm). The selectors
   above zero everything, so we need to restore them explicitly. */
.lume-pillar__num   { margin-bottom:0.24rem; }
.lume-pillar__title { margin-bottom:var(--space-1); }
.lume-pillar__tag   { margin-bottom:var(--space-2); }
.lume-pillar__desc  { margin-bottom:var(--space-3); }
.lume-pillar__pdf   { margin-top:var(--space-2); }

.tour-card__date  { margin-bottom:0.39rem; }
.tour-card__title { margin-bottom:var(--space-2); }
.tour-card__meta  { margin-bottom:var(--space-3); }

.lume-resource__title  { margin-bottom:0.34rem; }
.lume-resource__sub    { margin-bottom:var(--space-2); }
.lume-resource__type   { margin-top:auto; }

.lume-staytouch__cadence { margin-bottom:0.26rem; }
.lume-staytouch__lead    { margin-bottom:var(--space-2); }

.team__name { margin-bottom:0.24rem; }
.team__role { margin-bottom:var(--space-2); }

.contact-info__intro          { margin-bottom:var(--space-4); }
.contact-info__block          { margin-bottom:var(--space-3); }
.contact-form-wrap__intro     { margin-bottom:var(--space-3); }

/* Hero inner — also a flex column with its own gap rules in prototype CSS */
.lume-hero__inner > .wp-block-group { margin:0; }

/* Headings inside wp-block-* wrappers — neutralize WP's default heading margin
   when the heading is the direct child of one of our typed wrappers. */
.lume-pillar__body .wp-block-heading.lume-pillar__title,
.tour-card__body .wp-block-heading.tour-card__title,
.lume-staytouch .wp-block-heading,
.team__card .wp-block-heading,
.coordinator-card .wp-block-heading,
.lume-brochure-rack__body .wp-block-heading,
.lume-section-head .wp-block-heading,
.cta-band .wp-block-heading,
.lume-testimonial .wp-block-heading,
.lume-hero__inner .wp-block-heading {
  margin-top:0;
}

/* Section-head — the prototype expects centered text + auto margins,
   and the wp:group wrapper now lives here, so make sure spacing stays. */
.lume-section-head > p,
.lume-section-head > .wp-block-heading {
  margin-block: 0;
}
.lume-section-head > p.lume-eyebrow { margin-bottom:var(--space-2); }
.lume-section-head > .wp-block-heading { margin-bottom:var(--space-2); }
.lume-section-head > p:not(.lume-eyebrow) { margin-top:0; }

/* Pillar-deep rows — kill block-group gap so the prototype's grid spacing wins */
.pillar-deep { gap:0; }
.pillar-deep > .wp-block-group { margin:0; }
.pillar-deep__title { margin-bottom:var(--space-2); }

/* Buttons inside hero__cta-row — the prototype's CSS already styles the row;
   make sure the wp:buttons wrapper doesn't double-margin. */
.lume-hero__cta-row.wp-block-buttons { margin-top:var(--space-3); margin-bottom:0; gap:var(--space-2); }
.lume-hero__cta-row .wp-block-button { margin:0; }

/* Trust-strip items — the prototype uses spans; native paragraphs now render <p>.
   Reset their margin so the .lume-num + .lume-label sit tight. */
.lume-trust-strip__item > * { margin:0; }
.lume-trust-strip__item .lume-num   { margin-bottom:0.26rem; }

/* Member count — same span-to-p fix */
.member-count > * { margin:0; }
.member-count .lume-num { margin-bottom:0.24rem; }

/* Utility bar — paragraphs inside the navy bar */
.lume-utility .wp-block-group > p { margin:0; }
.lume-utility__left > p,
.lume-utility__right > p { margin:0; }

/* CTA-band — phone link uses native paragraph now; restore its display block */
.cta-band__phone { display: block; margin:var(--space-3) auto; }
/* ============================================================
   WP block-wrapper normalize — fixes round 2
   ============================================================ */

/* Force media containers to fill their parent cell so aspect-ratio
   computes height correctly. wp-block-group defaults to display:flow-root
   which can leave the .lume-pillar__media (etc.) shrunk to natural content. */
.lume-pillar__media,
.tour-card__media,
.team__photo,
.lume-resource__media,
.lume-hero__media,
.lume-destination,
.lume-split__media,
.lume-brochure-rack__media,
.coordinator-portrait,
.partner-hero__logo {
  width: 100%;
  display: block;
}

/* Destination cards — fix layering + label color
   The figure now needs to be absolutely positioned inside the .lume-destination
   so it fills the aspect-ratio box and sits under the gradient + label. */
.lume-destination {
  position: relative;
}
.lume-destination .wp-block-image,
.lume-destination .wp-block-image > a {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.lume-destination .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lume-destination::after {
  z-index: 1;
  pointer-events: none;
}
.lume-destination__label {
  z-index: 2;
}

/* Defeat WP's global text color on the destination card —
   the wp-block-group color inheritance was washing the label
   text dark. Specificity (0,2,0) beats both .wp-block-group
   global styles and .lume-destination on its own. */
.lume-destination.wp-block-group,
.lume-destination.wp-block-group > p,
.lume-destination.wp-block-group > .lume-destination__label,
p.lume-destination__label {
  color: var(--cream-50);
}

/* Same fix for the small inside the label — was inheriting WP body color */
p.lume-destination__label small {
  color: var(--sand-300);
}

/* Featured CTA — center via the wp:buttons wrapper */
.lume-featured__cta .wp-block-buttons { justify-content: center; }
/* ============================================================
   WP block-wrapper normalize — round 3
   ============================================================ */

/* Resources tiles — original prototype wrapped each tile in <a>,
   so the layout rules lived on `.lume-resource a`. Native blocks broke
   that wrapper (the link now sits on the image only). Re-apply the
   same flex layout to .lume-resource itself so the media+body sit
   side-by-side as in the prototype. */
.lume-resources .lume-resource {
  display: flex;
  gap:var(--space-3);
  align-items: flex-start;
  height: 100%;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius:var(--radius-md);
  padding:var(--space-3);
  color: var(--ink-900);
  transition: all var(--transition);
  text-decoration: none;
}
.lume-resources .lume-resource:hover {
  transform: translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color: var(--sand-500);
}
.lume-resources .lume-resource > .lume-resource__media {
  flex: 0 0 84px;
  width: 84px;
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cream-50);
  border-radius:var(--radius-sm);
  overflow: hidden;
  padding:5.95px;
}
.lume-resources .lume-resource > .lume-resource__media .wp-block-image,
.lume-resources .lume-resource > .lume-resource__media .wp-block-image > a,
.lume-resources .lume-resource > .lume-resource__media figure {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: static;
}
.lume-resources .lume-resource > .lume-resource__media img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.lume-resources .lume-resource > .lume-resource__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap:0;
}

/* First-card spacing issue — WP's layout system adds margin-top:0 to
   :first-child via `:where(.is-layout-default) > *:first-child`. This
   creates an implicit margin difference between first and subsequent
   children. Normalize: zero margin-top on every direct child of every
   card grid, so the grid `gap` is the only source of vertical rhythm. */
.lume-pillars > *,
.tours-grid > *,
.lume-destinations > *,
.lume-staytouch-grid > *,
.team > *,
.lume-resources > *,
.lume-footer-grid > *,
.contact-grid > *,
.lume-split > *,
.story-grid > * {
  margin-top:0;
  margin-bottom:0;
}

/* Same fix for nested wp-block-group inside cards — first child of
   any prototype card body shouldn't inherit WP layout's first-child
   margin reset (which conflicts with the prototype's margin-on-prev
   pattern). */
.lume-pillar__body > *:first-child,
.tour-card__body > *:first-child,
.lume-resource__body > *:first-child,
.lume-staytouch > *:first-child,
.team__card > *:first-child,
.testimonial-card > *:first-child {
  margin-top:0;
}

/* Resource title / sub / type — vertical stack inside .lume-resource__body */
.lume-resources .lume-resource .lume-resource__title {
  font-family: var(--font-serif);
  font-size:1.14rem;
  color: var(--navy-900);
  margin:0 0 0.35rem;
  font-weight: 500;
}
.lume-resources .lume-resource .lume-resource__sub {
  font-size:0.9rem;
  color: var(--ink-500);
  margin:0 0 var(--space-2);
  line-height: 1.5;
}
.lume-resources .lume-resource .lume-resource__type {
  font-family: var(--font-sans);
  font-size:0.69rem;
  font-weight: 600;
  letter-spacing:0.13em;
  text-transform: uppercase;
  color: var(--sand-700);
  margin:auto 0 0;
}
.lume-resources .lume-resource .lume-resource__type--pdf { color: var(--navy-700); }
.lume-resources .lume-resource .lume-resource__type--link { color: var(--sand-700); }
/* ============================================================
   Resource tiles — vertical layout fix
   The previous append wrote rules assuming `.lume-resource a` flex-row
   wrapper. With the new pattern (no anchor wrapper, tile is a
   wp:group with vertical layout), reset and rewrite from scratch.
   Matches the prototype's desktop layout: 96px centered logo on
   top, centered title/sub/badge below.
   ============================================================ */

.lume-resources .lume-resource {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap:var(--space-2);
  height: 100%;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius:var(--radius-md);
  padding:var(--space-3);
  color: var(--ink-900);
  transition: all var(--transition);
  text-decoration: none;
}
.lume-resources .lume-resource:hover {
  transform: translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color: var(--sand-500);
}

/* Media box — 96px square, centered in the tile, with the image
   filling it via object-fit:contain. The flex centering inside
   handles cases where the image's intrinsic aspect doesn't fill. */
.lume-resources .lume-resource > .lume-resource__media {
  width: 96px;
  height: 96px;
  flex: 0 0 96px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cream-50);
  border-radius:var(--radius-sm);
  overflow: hidden;
  padding:0;
  margin:0 auto;
}
.lume-resources .lume-resource > .lume-resource__media .wp-block-image,
.lume-resources .lume-resource > .lume-resource__media .wp-block-image > a,
.lume-resources .lume-resource > .lume-resource__media figure {
  display: block;
  width: 100%;
  height: 100%;
  margin:0;
  padding:0;
  position: static;
}
.lume-resources .lume-resource > .lume-resource__media .wp-block-image img,
.lume-resources .lume-resource > .lume-resource__media img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: contain;
  display: block;
}
