/* Gutenberg block styles. Keep the classic theme live during content conversion. */
.wp-site-blocks { min-height: 100vh; }
.wp-block-group.alignfull { width: 100%; }
.is-style-gatineau-callouts { padding-block: clamp(3rem, 6vw, 6rem); }
.is-style-gatineau-callouts > .wp-block-group__inner-container { max-width: var(--wp--style--global--wide-size, 1280px); margin-inline: auto; }
.is-style-gatineau-callouts .wp-block-column { min-width: 0; }
.is-style-gatineau-callouts .wp-block-image img { max-width: 100%; height: auto; }
.is-style-gatineau-slider { position: relative; width: 100%; }
.is-style-gatineau-slider .wp-block-image { margin: 0; }
.is-style-gatineau-slider img { display: block; width: 100%; height: auto; max-height: 650px; object-fit: cover; }
.is-style-gatineau-slider.gatineau-slider-ready > .wp-block-image[hidden],
.is-style-gatineau-slider.gatineau-slider-ready > .wp-block-cover[hidden],
.is-style-gatineau-slider.gatineau-slider-ready > .wp-block-group[hidden] { display: none !important; }
.gatineau-slider-controls { display: flex; justify-content: center; gap: 1.25rem; align-items: center; margin-top: 1rem; }
.gatineau-slider-controls button { background: #282424; border: 1px solid #A08251; color: white; cursor: pointer; border-radius: 100%; height: 44px; width: 44px; font-size: 1.6rem; line-height: 1; }
.gatineau-slider-controls button:hover { background: #A08251; }
.gatineau-slider-controls button:focus-visible,
.wp-site-blocks a:focus-visible { outline: 3px solid #A08251; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .is-style-gatineau-slider *, .wp-block-cover * { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }

/* Legacy ACF gallery now uses accessible <img> elements, not CSS backgrounds. */
.section--photo-gallery .gallery-thumbnail { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Native replacements for the verified Kadence fe_check icon lists. */
.wp-block-list.is-style-gatineau-checklist {
  list-style: none;
  padding-left: 1.55em;
}
.wp-block-list.is-style-gatineau-checklist > li {
  position: relative;
  margin-bottom: .45rem;
}
.wp-block-list.is-style-gatineau-checklist > li::before {
  content: "✓";
  position: absolute;
  left: -1.4em;
  color: #a08251;
  font-weight: 700;
}
.gatineau-inline-icon svg { display: inline-block; vertical-align: middle; }
.gatineau-map-embed { max-width: 100%; }

.wp-block-list.is-style-gatineau-dotlist { list-style: none; padding-left: 1.55em; }
.wp-block-list.is-style-gatineau-dotlist > li { position: relative; margin-bottom: .45rem; }
.wp-block-list.is-style-gatineau-dotlist > li::before {
  content: "•"; position: absolute; left: -1.4em; color: #a08251;
  font-weight: 700;
}

/*
 * Gutenberg alignment compatibility with the legacy Foundation-based theme.
 * Preserve explicit per-block alignment; do not center the whole page.
 */
:is(main, .editor-styles-wrapper) .has-text-align-center { text-align: center; }
:is(main, .editor-styles-wrapper) .has-text-align-left { text-align: left; }
:is(main, .editor-styles-wrapper) .has-text-align-right { text-align: right; }
:is(main, .editor-styles-wrapper) .wp-block-buttons.is-content-justification-center { justify-content: center; }
:is(main, .editor-styles-wrapper) .wp-block-buttons.is-content-justification-right { justify-content: flex-end; }
:is(main, .editor-styles-wrapper) .wp-block-buttons.is-content-justification-left { justify-content: flex-start; }

/*
 * Every converted ACF impact-area is a full-width native Cover. The old
 * impact-area.php wrapped its title, description and CTAs in .text-center.
 * The Gutenberg editor inserts wrappers/page titles, so the previous
 * main > :first-child rule never matched there. Scope to converted full-width
 * Covers themselves, in both the frontend and editor, without touching data.
 */
.wp-block-cover.alignfull .wp-block-cover__inner-container {
  text-align: center;
}
.wp-block-cover.alignfull .wp-block-cover__inner-container > .wp-block-buttons {
  justify-content: center;
}

/* The original ACF callout introduction was centered independently from its cards. */
:is(main, .editor-styles-wrapper) .is-style-gatineau-callouts > .wp-block-group > :is(h2, p) {
  text-align: center;
}


/* Will QA parity: 2026-10-09 */
/* Shared rules for the migrated native blocks; legacy ACF styles stay intact. */
:root { --gg-header-height: 113px; --gg-gold: #a08251; --gg-ink: #1a1a1a; }
@media (max-width: 767px) { :root { --gg-header-height: 82px; } }
main { padding-top: var(--gg-header-height); }
main:has(> .wp-block-cover.alignfull:first-child) { padding-top: 0; }
main > .wp-block-cover.alignfull:first-child { padding-top: var(--gg-header-height); }
main > .wp-block-cover.alignfull:first-child .wp-block-cover__inner-container { z-index: 2; }
main .wp-block-cover.alignfull .wp-block-cover__inner-container > p,
main .wp-block-cover.alignfull .wp-block-cover__inner-container > .wp-block-paragraph {
  max-width: 50rem; margin-inline: auto;
}
main .wp-block-cover.alignfull .wp-block-cover__inner-container > .wp-block-buttons { justify-content: center; gap: 1rem; }

/* Gutenberg buttons must inherit legacy gold + arrow treatment (excluding link-style CTAs). */
main .wp-block-button:not(.is-style-gatineau-link-button) > .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center;
  background-color: #a08251; color: #fff;
  background-image: url("../../img/button-arrow.svg");
  background-repeat: no-repeat; background-position: right 1.25rem center; background-size: 14px auto;
  padding-right: 3.15rem;
  transition: background-color .25s ease, color .25s ease;
}
main .wp-block-button:not(.is-style-gatineau-link-button) > .wp-block-button__link:is(:hover, :focus-visible) {
  background-color: #1a1a1a; color: #fff;
}
main .wp-block-button.is-style-gatineau-link-button > .wp-block-button__link {
  display: inline-flex; align-items: center; border: 0; border-radius: 0;
  background: transparent url("../../img/button-arrow-gold.svg") no-repeat right center / 14px auto;
  padding: .5rem 1.7rem .5rem 0; box-shadow: none; color: #fff;
  text-transform: uppercase; font-weight: 500; letter-spacing: .055em; text-decoration: none;
  transition: color .25s ease;
}
main .wp-block-button.is-style-gatineau-link-button > .wp-block-button__link:is(:hover, :focus-visible) {
  background-color: transparent; color: #8b7146;
}

/* Homepage: full-bleed dark lower half + equal portrait crops + full clickable cards. */
.is-style-gatineau-callouts { position: relative; isolation: isolate; background: #e9e5da; }
.is-style-gatineau-callouts::after {
  content: ""; position: absolute; left: 0; right: 0; top: 48%; bottom: 0;
  z-index: -1; background: #1a1a1a; box-shadow: inset 0 4px 12px rgb(0 0 0 / 30%);
}
.is-style-gatineau-callouts > .wp-block-group { position: relative; }
.is-style-gatineau-callouts > .wp-block-group > p { max-width: 40rem; margin-inline: auto; }
.is-style-gatineau-callouts .wp-block-columns { gap: 2rem; align-items: stretch; }
.is-style-gatineau-callouts .wp-block-columns > .wp-block-column {
  position: relative; min-width: 0; color: #fff; cursor: pointer;
  transition: transform .3s ease;
}
.is-style-gatineau-callouts .wp-block-columns > .wp-block-column:is(:hover, :focus-within) { transform: translateY(-10px); }
.is-style-gatineau-callouts .wp-block-columns > .wp-block-column > .wp-block-image { margin: 0 0 1.75rem; }
.is-style-gatineau-callouts .wp-block-columns > .wp-block-column > .wp-block-image img {
  display: block; width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover;
}
.is-style-gatineau-callouts .wp-block-column > :is(h3, p) { color: #fff; }
.is-style-gatineau-callouts .wp-block-column h3 { font-family: Poppins, sans-serif; text-transform: uppercase; font-size: 22px; font-weight: 600; line-height: 1.2; }
.is-style-gatineau-callouts .wp-block-column .wp-block-button__link::after {
  content: ""; position: absolute; inset: 0; z-index: 3;
}
.is-style-gatineau-callouts .wp-block-column:is(:hover, :focus-within) .is-style-gatineau-link-button .wp-block-button__link { color: #8b7146; }
@media(max-width: 640px) {
  .is-style-gatineau-callouts::after { top: 22rem; }
  .is-style-gatineau-callouts .wp-block-columns > .wp-block-column:hover { transform: none; }
  .is-style-gatineau-callouts .wp-block-column { padding-bottom: 1.5rem; }
}

/* Reusable, editable section layouts for EN + FR blocks. */
main .gg-impact-constrained .wp-block-cover__inner-container > p { max-width: 50rem; margin-inline: auto; }
main .gg-center-content .wp-block-buttons { justify-content: center; gap: 1rem; }
main .gg-center-content > p { max-width: 52rem; margin-inline: auto; }
main .gg-middle-columns > .wp-block-column { align-self: center; }
main .gg-section-two-col > .wp-block-column,
main .gg-section-three-col > .wp-block-column { min-width: 0; }
@media (min-width: 782px) {
  main .gg-section-two-col > .wp-block-column + .wp-block-column,
  main .gg-section-three-col > .wp-block-column + .wp-block-column {
    border-left: 1px solid #b6aa95; padding-left: clamp(1rem, 2.5vw, 2.5rem);
  }
}
main .gg-section-title > .wp-block-heading,
main .gg-section-title > .wp-block-paragraph { text-align: center; }
main .gg-section-title + .wp-block-columns { margin-top: 3rem; }
main .gg-section-padding { padding-block: clamp(3rem, 5vw, 6rem); }
main .gg-section-cta .wp-block-buttons { justify-content: center; flex-wrap: wrap; gap: 1rem; }
main .gg-section-cta > p { max-width: 52rem; margin-inline: auto; }

/* Gallery: breathing room, pointer/focus affordances and unchanged native thumbnails. */
main .gg-gallery-section { padding-block: clamp(3rem, 5vw, 6rem); }
main .gg-gallery-section .wp-block-gallery { margin-inline: auto; }
main .gg-gallery-section .wp-block-image:has(.lightbox-trigger) { cursor: zoom-in; }

/* Bistro: image / editorial black band / image, not stacked Cover overlays. */
main .gg-bistro-visual { width: 100%; max-width: none; margin: 0; }
main .gg-bistro-visual > .wp-block-image { width: 100%; max-width: none; margin: 0; }
main .gg-bistro-visual img { display: block; width: 100%; height: clamp(18rem, 36vw, 35rem); object-fit: cover; }
main .gg-bistro-copy {
  width: 100%; max-width: none; margin: 0; padding: clamp(3rem, 6vw, 6rem) 1.5rem;
  background: #1a1a1a; color: #fff; text-align: center;
}
main .gg-bistro-copy > * { max-width: 50rem; margin-left: auto; margin-right: auto; }
main .gg-bistro-copy :is(h1,h2,h3,h4,p,li) { color: #fff; }

/* Shared EN/FR pricing table: only the hovered body row is white. */
main .gg-pricing-table {
  max-width: 72rem;
  margin: 2rem auto;
  overflow-x: auto;
}
main .gg-pricing-table table {
  width: 100%;
  min-width: 42rem;
  table-layout: fixed;
  border-collapse: collapse;
  background: transparent;
}
main .gg-pricing-table :is(thead, tbody, tfoot, tr) {
  border: 0;
  background: transparent;
}
main .gg-pricing-table :is(th, td) {
  padding: 1.1rem 1rem;
  border: 0;
  border-bottom: 1px solid #bdb9b0;
  background: transparent;
  color: #1a1a1a;
  text-align: left;
  vertical-align: middle;
}
main .gg-pricing-table thead th {
  padding-block: .75rem 1.2rem;
  font-weight: 600;
}
main .gg-pricing-table thead th:first-child { width: 45%; }
main .gg-pricing-table thead th:last-child { width: 35%; }
main .gg-pricing-table thead th:not(:first-child),
main .gg-pricing-table tbody td:not(:first-child) { text-align: right; }
main .gg-pricing-table tbody td { font-weight: 600; }
main .gg-pricing-table tbody td small {
  color: #a08251;
  font-size: .85em;
  font-weight: 400;
}
main .gg-pricing-table tbody tr:last-child td { border-bottom: 0; }
main .gg-pricing-table tbody tr:hover,
main .gg-pricing-table tbody tr:hover td { background-color: #fff; }
@media (max-width: 781px) {
  main .gg-section-two-col, main .gg-section-three-col { gap: 2rem; }
  main .gg-section-two-col > .wp-block-column + .wp-block-column,
  main .gg-section-three-col > .wp-block-column + .wp-block-column {
    border-top: 1px solid #b6aa95; padding-top: 1.5rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .is-style-gatineau-callouts .wp-block-columns > .wp-block-column { transition: none; }
}

/* Keep mobile navigation directly below the measured fixed header. */
@media (max-width: 1024px) {
  .menu-wrapper-header { top: var(--gg-header-height); }
}


/* 2026-10-09: reviewer screenshot refinements */
/*
 * Legacy style.css applies !important padding to all Gutenberg links; reserve a
 * real flex item for the arrow instead of painting it over localized CTA text.
 */
main .wp-block-button:not(.is-style-gatineau-link-button) > .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  column-gap: .7rem;
  padding: .95rem 1.25rem !important;
  background-image: none !important;
  line-height: 1.25;
  text-align: center;
}
main .wp-block-button:not(.is-style-gatineau-link-button) > .wp-block-button__link::after {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  position: static;
  background: url("../../img/button-arrow.svg") center / contain no-repeat;
  pointer-events: none;
}
/* Callout anchors deliberately use their pseudo-element as the stretched hit area. */
main .wp-block-button.is-style-gatineau-link-button > .wp-block-button__link {
  padding: .5rem 1.7rem .5rem 0 !important;
}

/* Center icon images without affecting surrounding columns or text. */
main .gg-equipment-columns > .wp-block-column > .wp-block-image { margin: 0 auto 1.5rem; }
main .gg-equipment-columns > .wp-block-column > .wp-block-image img {
  display: block;
  margin-inline: auto;
}

/* Uniform image diameters across equipment/services and membership offers. */
main .gg-section-three-col .wp-block-image,
main .gg-qa-group-lessons .wp-block-image,
main .gg-qa-memberships .gg-qa-member-types .wp-block-image {
  text-align: center;
  margin: 0 auto 1.5rem;
}
main .gg-section-three-col .wp-block-image img {
  display: block;
  width: clamp(11rem, 18vw, 16rem) !important;
  height: clamp(11rem, 18vw, 16rem) !important;
  max-width: 100%;
  object-fit: contain;
  margin-inline: auto;
}

/* Bistro source contains a legacy HTML block with bare text nodes. Constrain
   the actual container, not only its element children, and preserve line breaks. */
main .gg-bistro-copy {
  box-sizing: border-box;
  padding: clamp(3.5rem, 6vw, 6rem) max(1.5rem, calc((100% - 44rem) / 2));
  white-space: pre-line;
  text-align: center;
  line-height: 1.65;
}
main .gg-bistro-copy > .wp-block-image,
main .gg-bistro-copy .wp-block-image { margin: 0 auto 2rem; }
main .gg-bistro-copy .wp-block-image img { display: block; width: min(100%, 30rem); height: auto; margin: auto; }
main .gg-bistro-copy h4 { font-family: inherit; font-size: 1.1rem; font-weight: 600; letter-spacing: .08em; margin: 1.3rem 0 .2rem; }
main .gg-bistro-copy > .wp-block-buttons { justify-content: center; margin-top: 1.75rem; }
main .gg-bistro-copy a:not(.wp-block-button__link) { color: #d2b077; text-decoration: underline; text-underline-offset: .2rem; }

/* Section intro normalization: only applied when the matching content is present,
   avoiding unintended changes to classic templates or other pages. */
main .gg-qa-section-heading {
  width: 100%; max-width: 60rem; margin: 0 auto clamp(2rem,4vw,3.5rem);
  text-align: center; padding-inline: 1rem;
}
main .gg-qa-section-heading > :is(h1,h2,h3) { text-align: center; margin: 0 auto .8rem; }
main .gg-qa-section-heading > p { text-align: center; color: #a08251; max-width: 50rem; margin-inline: auto; }
main .gg-qa-section-promoted > .wp-block-columns { width: 100%; }

/* Private lessons: present the existing rates as a refined, readable panel. */
main .gg-qa-private-lessons .wp-block-columns {
  background: rgba(255,255,255,.70);
  border: 1px solid #d5cbbb;
  border-radius: 10px;
  padding: clamp(1.5rem,3vw,3rem);
  box-shadow: 0 12px 30px rgb(40 36 36 / 5%);
  gap: clamp(1rem,2vw,2.5rem);
}
main .gg-qa-private-lessons .wp-block-columns > .wp-block-column { min-width: 0; }
main .gg-qa-private-lessons .wp-block-columns > .wp-block-column > :is(h3,h4) {
  color: #282424; font-weight: 650; padding-bottom: .85rem;
  border-bottom: 2px solid #a08251; margin-bottom: 1.25rem;
}
main .gg-qa-private-lessons .wp-block-columns > .wp-block-column > p {
  padding-block: .6rem; margin-bottom: 1.4rem; line-height: 1.6;
}

/* Group lesson cards: two balanced columns under a full-width introduction. */
main .gg-qa-group-lessons .gg-qa-card-columns {
  width: min(100%, 1120px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: clamp(1.25rem,3vw,3rem);
  align-items: stretch;
}
main .gg-qa-group-lessons .gg-qa-card-columns > .wp-block-column {
  min-width: 0; padding: clamp(1.5rem, 3vw, 2.5rem);
  background: #fff; border: 1px solid #e0d8cc; border-radius: 10px;
  text-align: center; box-shadow: 0 12px 32px rgb(40 36 36 / 6%);
}
main .gg-qa-group-lessons .wp-block-image img {
  display: block; width: min(100%, 15rem); height: 15rem; max-width: 100%;
  object-fit: contain; margin-inline: auto;
}
main .gg-qa-group-lessons .gg-qa-card-columns > .wp-block-column > :is(h3,h4,h5) { text-align: center; }

/* Instructor biographies become two readable profile cards per row. */
main .gg-qa-instructors .gg-qa-profiles {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1.5rem; max-width: 1180px; margin-inline: auto;
}
main .gg-qa-instructors .gg-qa-profiles > .wp-block-columns {
  margin: 0; min-width: 0; padding: clamp(1.3rem, 2.5vw, 2rem);
  border: 1px solid #d6caba; border-radius: 10px;
  background: rgb(255 255 255 / 85%); align-items: start;
}
main .gg-qa-instructors .gg-qa-profiles > .wp-block-columns > .wp-block-column { min-width: 0; }
main .gg-qa-instructors .gg-qa-profiles > .wp-block-columns img {
  width: 100%; height: auto; max-height: 14rem; object-fit: cover; object-position: center top;
}
main .gg-qa-instructors .gg-qa-profiles > .wp-block-columns :is(h3,h4,h5) { color: #a08251; }
main .gg-qa-instructors .gg-qa-profiles > .wp-block-columns .wp-block-buttons { justify-content: flex-start; }
main .gg-qa-instructors .gg-qa-profiles > .wp-block-columns:last-child:nth-child(odd) {
  grid-column: 1 / -1; max-width: 580px; justify-self: center;
}

/* Avoid legacy nested 50/50 wrapper layouts squeezing four memberships
   into the right half of the page. Cards remain editable Gutenberg content. */
main .gg-qa-memberships .gg-qa-member-types {
  display: grid; grid-template-columns: repeat(4,minmax(0,1fr));
  align-items: start; gap: clamp(.9rem,2vw,1.75rem); width: 100%;
}
main .gg-qa-memberships .gg-qa-member-types > .wp-block-column {
  padding: clamp(1rem,2vw,1.7rem); min-width: 0;
  background: #fff; border: 1px solid #e0d8cc; border-radius: 10px;
  text-align: center; box-shadow: 0 10px 24px rgb(40 36 36 / 5%);
  overflow-wrap: normal; word-break: normal;
}
main .gg-qa-memberships .gg-qa-member-types > .wp-block-column :is(p,h3,h4,h5,li) {
  overflow-wrap: normal; word-break: normal; text-align: center;
}
main .gg-qa-memberships .gg-qa-member-types .wp-block-image img {
  display: block; width: min(100%, 8.5rem); height: 8.5rem;
  object-fit: contain; margin: 0 auto;
}
main .gg-qa-memberships .gg-qa-details-grid {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 2rem; width: 100%;
}
main .gg-qa-memberships .gg-qa-details-grid > .wp-block-column { min-width: 0; padding: 1.5rem; }
main .gg-qa-memberships .gg-qa-details-grid :is(p, li, a) { overflow-wrap: break-word; word-break: normal; }

/* Contact: stronger visual hierarchy while retaining Gravity Forms and links. */
main .gg-qa-contact .gform_wrapper {
  padding: clamp(1rem,2vw,2rem);
  background: #fff; border: 1px solid #e1d9cd; border-radius: 10px;
  box-shadow: 0 12px 32px rgb(40 36 36 / 5%);
}
main .gg-qa-contact :is(input:not([type="submit"]), textarea, select) { border-radius: 5px; }
main .gg-qa-contact .gg-qa-contact-info {
  padding: clamp(1.3rem,2.2vw,2rem);
  background: rgba(255,255,255,.72);
  border: 1px solid #d6caba; border-radius: 10px;
}
main .gg-qa-contact .gg-qa-contact-info :is(h3,h4,h5) { margin: 0 0 .65rem; font-size: 1.15rem; }
main .gg-qa-contact .gg-qa-contact-info p { margin-bottom: 1.8rem; line-height: 1.7; }
main .gg-qa-contact .gg-qa-contact-info a { overflow-wrap: anywhere; }

@media (max-width: 1023px) {
  main .gg-qa-instructors .gg-qa-profiles { grid-template-columns: 1fr; }
  main .gg-qa-instructors .gg-qa-profiles > .wp-block-columns:last-child:nth-child(odd) {
    grid-column: auto; max-width: none;
  }
  main .gg-qa-memberships .gg-qa-member-types { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  main .gg-qa-group-lessons .gg-qa-card-columns,
  main .gg-qa-memberships .gg-qa-member-types,
  main .gg-qa-memberships .gg-qa-details-grid { grid-template-columns: 1fr; }
  main .gg-qa-private-lessons .wp-block-columns { padding: 1.25rem; }
  main .gg-qa-section-heading { margin-bottom: 1.5rem; }
}
