/*
Theme Name: Groom2You
Theme URI: https://groom2you.co.uk
Author: —
Description: Custom block theme for Groom2You mobile dog grooming. East Sussex.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: Private
Text Domain: groom2you
*/

/* ─── Design tokens (mirrors theme.json) ──────────────────────────── */
:root {
  --g2y-teal:       #4DAFB3;
  --g2y-teal-dark:  #378F93;
  --g2y-teal-light: #EAF5F6;
  --g2y-teal-mid:   #B8DFE2;
  --g2y-navy:       #1B2D5F;
  --g2y-navy-light: #2E4282;
  --g2y-text:       #1A1A2E;
  --g2y-text-mid:   #4A5280;
  --g2y-text-light: #8890AA;
  --g2y-white:      #FFFFFF;
  --g2y-bg:         #F7FBFC;
  --g2y-border:     #E0ECEE;

  --g2y-font: 'DM Sans', system-ui, sans-serif;
  --g2y-radius-sm:  8px;
  --g2y-radius-md:  14px;
  --g2y-radius-lg:  20px;
  --g2y-page-max:   1630px;
  --g2y-page-pad:   clamp(20px, 3vw, 42px);
}

/* ─── Reset / base ────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: var(--g2y-font);
  color: var(--g2y-text);
  background: var(--g2y-white);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
}

html,
body {
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a   { color: var(--g2y-teal); }
a:hover { color: var(--g2y-teal-dark); }

.wp-site-blocks > *,
.wp-block-group > * {
  margin-block-start: 0;
}

main.wp-block-group {
  max-width: none;
}

.is-layout-constrained > .wp-block-post-content {
  max-width: none !important;
  width: 100% !important;
}

.wp-block-post-content > *,
.wp-block-post-content > * + * {
  margin-block-start: 0 !important;
}

.wp-block-post-content > .g2y-hero,
.wp-block-post-content > .g2y-features,
.wp-block-post-content > .g2y-reviews,
.wp-block-post-content > .g2y-page-header,
.wp-block-post-content > .g2y-about,
.wp-block-post-content > .g2y-services,
.wp-block-post-content > .g2y-gallery,
.wp-block-post-content > .g2y-contact {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: var(--g2y-page-max);
  width: calc(100% - (var(--g2y-page-pad) * 2));
}

/* ─── Site header / footer ───────────────────────────────────────── */
.g2y-site-header {
  align-items: center;
  background: var(--g2y-white);
  border-bottom: 1px solid var(--g2y-border);
  gap: 42px;
  height: 72px;
  padding: 0 max(var(--g2y-page-pad), calc((100vw - var(--g2y-page-max)) / 2));
  position: sticky;
  top: 0;
  z-index: 100;
}

.admin-bar .g2y-site-header {
  top: 32px;
}

.g2y-site-logo {
  flex: 0 0 76px;
  margin: 0;
}

.g2y-site-logo img {
  height: 52px;
  object-fit: contain;
  width: auto;
}

.g2y-site-nav {
  align-items: center;
  display: flex;
  flex: 1 1 auto;
  gap: 34px;
  justify-content: flex-end;
}

.g2y-site-nav__link,
.g2y-site-nav .wp-block-navigation-item__content {
  color: var(--g2y-navy);
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  padding: 0;
  position: relative;
  text-decoration: none;
}

.g2y-site-nav__link:hover,
.g2y-site-nav .wp-block-navigation-item__content:hover,
.g2y-site-nav .current-menu-item > .wp-block-navigation-item__content,
body.home .g2y-site-nav a[href="/"],
body.page-template-about .g2y-site-nav a[href="/about/"],
body.page-template-services .g2y-site-nav a[href="/services/"],
body.page-template-gallery .g2y-site-nav a[href="/gallery/"],
body.page-template-contact .g2y-site-nav a[href="/contact/"],
body.home .g2y-site-nav__link--home,
body.page-template-about .g2y-site-nav__link--about,
body.page-template-services .g2y-site-nav__link--services,
body.page-template-gallery .g2y-site-nav__link--gallery,
body.page-template-contact .g2y-site-nav__link--contact {
  color: var(--g2y-teal);
}

.g2y-site-nav__link::after,
.g2y-site-nav .wp-block-navigation-item__content::after {
  background: var(--g2y-teal);
  bottom: -11px;
  content: "";
  height: 2px;
  left: 0;
  opacity: 0;
  position: absolute;
  transition: opacity 0.15s;
  width: 100%;
}

.g2y-site-nav__link:hover::after,
.g2y-site-nav .wp-block-navigation-item__content:hover::after,
.g2y-site-nav .current-menu-item > .wp-block-navigation-item__content::after,
body.home .g2y-site-nav a[href="/"]::after,
body.page-template-about .g2y-site-nav a[href="/about/"]::after,
body.page-template-services .g2y-site-nav a[href="/services/"]::after,
body.page-template-gallery .g2y-site-nav a[href="/gallery/"]::after,
body.page-template-contact .g2y-site-nav a[href="/contact/"]::after,
body.home .g2y-site-nav__link--home::after,
body.page-template-about .g2y-site-nav__link--about::after,
body.page-template-services .g2y-site-nav__link--services::after,
body.page-template-gallery .g2y-site-nav__link--gallery::after,
body.page-template-contact .g2y-site-nav__link--contact::after {
  opacity: 1;
}

.g2y-site-nav .wp-block-navigation__responsive-container-open {
  color: var(--g2y-navy) !important;
  display: none !important;
}

.g2y-site-nav .wp-block-navigation__responsive-container-close {
  color: var(--g2y-navy) !important;
}

.g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  align-items: center;
  background: var(--g2y-white);
  border: 0;
  color: var(--g2y-navy) !important;
  display: flex !important;
  height: 44px;
  justify-content: center;
  position: fixed !important;
  right: 18px !important;
  top: 18px !important;
  width: 44px;
  z-index: 100002;
}

.admin-bar .g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  top: 64px !important;
}

.g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
  fill: currentColor;
  height: 30px;
  width: 30px;
}

.g2y-site-header__cta {
  flex: 0 0 auto;
  line-height: 1.2;
}

.g2y-site-header__cta.g2y-btn,
.g2y-site-header__cta .wp-block-button__link {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  min-height: 42px;
  min-width: 146px;
  padding: 11px 26px;
}

.g2y-mobile-menu {
  align-items: center;
  background: transparent;
  border: 0;
  display: none;
  flex-direction: column;
  gap: 5px;
  height: 32px;
  justify-content: center;
  padding: 0;
  width: 32px;
}

.g2y-mobile-menu span {
  background: var(--g2y-navy);
  border-radius: 2px;
  display: block;
  height: 2px;
  width: 24px;
}

.g2y-site-footer {
  align-items: center;
  background: var(--g2y-navy) !important;
  color: rgba(255, 255, 255, 0.58);
  display: grid !important;
  gap: 44px;
  grid-template-columns: minmax(230px, 1fr) minmax(420px, auto) minmax(210px, 1fr);
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: var(--g2y-page-max);
  padding: 42px clamp(32px, 5vw, 72px);
  width: calc(100% - (var(--g2y-page-pad) * 2));
}

.g2y-footer-logo {
  filter: brightness(0) invert(1);
  margin: 0;
}

.g2y-footer-logo img {
  height: auto !important;
  max-width: 128px;
  width: 128px !important;
}

.g2y-footer__brand,
.g2y-footer__contact {
  gap: 14px;
}

.g2y-footer__brand {
  align-items: flex-start !important;
}

.g2y-footer__contact {
  align-items: flex-end !important;
  text-align: right;
}

.g2y-site-footer p,
.g2y-site-footer .has-text-color {
  color: rgba(255, 255, 255, 0.58) !important;
  margin: 0;
}

.g2y-footer__contact p:first-child {
  color: var(--g2y-white) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}

.g2y-site-footer .wp-block-navigation a {
  color: rgba(255, 255, 255, 0.58) !important;
  text-decoration: none;
}

.g2y-footer__nav {
  justify-self: center;
}

.g2y-footer__nav .wp-block-navigation__container {
  column-gap: 28px !important;
  row-gap: 12px !important;
}

.g2y-site-footer .wp-block-navigation a:hover,
.g2y-site-footer a {
  color: var(--g2y-teal-mid) !important;
}

.g2y-footer__contact a {
  display: inline-flex;
  font-size: 14px;
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

/* ─── Typography ──────────────────────────────────────────────────── */
h1, h2, h3, h4 {
  font-family: var(--g2y-font);
  font-weight: 700;
  line-height: 1.1;
  color: var(--g2y-navy);
}

/* ─── Buttons ─────────────────────────────────────────────────────── */
.g2y-btn {
  display: inline-block;
  padding: 13px 28px;
  border-radius: var(--g2y-radius-sm);
  font-family: var(--g2y-font);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  border: none;
  text-decoration: none;
  transition: opacity 0.15s;
}
.g2y-btn:hover { opacity: 0.88; }

.g2y-btn--primary {
  background: var(--g2y-teal);
  color: var(--g2y-white);
}
.g2y-btn--outline {
  background: transparent;
  color: var(--g2y-navy);
  border: 2px solid var(--g2y-border);
}

.wp-block-button.g2y-btn {
  background: transparent;
  border: 0;
  padding: 0;
}

.wp-block-button.g2y-btn .wp-block-button__link {
  border-radius: var(--g2y-radius-sm);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  padding: 13px 28px;
}

.wp-block-button.g2y-btn--primary .wp-block-button__link {
  background: var(--g2y-teal);
  color: var(--g2y-white) !important;
}

.wp-block-button.g2y-btn--outline .wp-block-button__link {
  background: transparent;
  border: 2px solid var(--g2y-border);
  color: var(--g2y-navy) !important;
}

.g2y-hero .wp-block-button__link,
.g2y-contact .g2y-form button,
.g2y-about .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  color: var(--g2y-white) !important;
}

.g2y-about .wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--g2y-navy) !important;
}

/* ─── Section / page headers ──────────────────────────────────────── */
.g2y-page-header {
  background: var(--g2y-navy);
  padding: 56px 52px;
}
.g2y-page-header__eyebrow {
  color: var(--g2y-teal-mid);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.g2y-page-header h1 {
  color: var(--g2y-white);
  font-size: clamp(32px, 5vw, 48px);
  margin-bottom: 14px;
}
.g2y-page-header p {
  color: rgba(255,255,255,0.65);
  font-size: 16px;
  max-width: 560px;
}

.g2y-page-header .g2y-page-header__eyebrow {
  color: var(--g2y-teal-mid) !important;
}

.g2y-page-header h1,
.g2y-page-header .wp-block-heading {
  color: var(--g2y-white) !important;
}

.g2y-page-header p:not(.g2y-page-header__eyebrow) {
  color: rgba(255,255,255,0.65) !important;
}

/* ─── Hero ────────────────────────────────────────────────────────── */
.g2y-hero {
  display: flex;
  height: 480px;
  min-height: 0;
  background: var(--g2y-navy);
  overflow: hidden;
}
.g2y-hero__copy {
  flex: 0 0 55%;
  padding: 60px 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.g2y-hero__heading {
  font-size: clamp(36px, 4.5vw, 54px);
  color: var(--g2y-white);
  margin-bottom: 22px;
  line-height: 1.08;
}
.g2y-hero__heading,
.g2y-hero .g2y-hero__heading.has-text-color {
  color: var(--g2y-white) !important;
}
.g2y-hero__heading span { color: var(--g2y-teal-mid) !important; }
.g2y-hero__sub {
  font-size: 17px;
  color: rgba(255,255,255,0.68);
  line-height: 1.65;
  margin-bottom: 36px;
  max-width: 460px;
}
.g2y-hero .g2y-hero__sub.has-text-color {
  color: rgba(255,255,255,0.68) !important;
}
.g2y-hero__actions {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
}
.g2y-hero__copy > .wp-block-group {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.g2y-hero__copy > .wp-block-group > p,
.g2y-hero__phone {
  color: var(--g2y-teal-mid) !important;
  font-size: 15px;
  font-weight: 600;
  margin: 0;
}
.g2y-hero__image {
  flex: 0 0 45%;
  position: relative;
  overflow: hidden;
}
.g2y-hero__image .g2y-hero__img,
.g2y-hero__image img {
  width: 100%;
  height: 100%;
  margin: 0;
}
.g2y-hero__image img {
  object-fit: cover;
  object-position: 40% center;
}
.g2y-hero__image .wp-block-image {
  height: 100%;
  margin: 0;
}
.g2y-hero__image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(27,45,95,0.55) 0%, rgba(27,45,95,0.05) 50%);
}

/* ─── Feature cards ───────────────────────────────────────────────── */
.g2y-features {
  background: var(--g2y-teal-light);
  padding: 56px 52px;
}
.g2y-features__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.g2y-features__grid.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.g2y-features__grid.wp-block-columns > .wp-block-column {
  flex-basis: auto !important;
  min-width: 0;
}
.g2y-feature-card {
  background: var(--g2y-white);
  border-radius: var(--g2y-radius-md);
  padding: 30px 24px;
  box-shadow: 0 2px 16px rgba(27,45,95,0.07);
}
.g2y-feature-card.wp-block-group,
.g2y-review-card.wp-block-group,
.g2y-service-card.wp-block-group {
  align-items: stretch !important;
  gap: 0 !important;
  justify-content: flex-start !important;
}
.g2y-feature-card > .gb-text,
.g2y-feature-card > div[class^="gb-text-"] {
  align-items: center;
  display: inline-flex;
  flex: 0 0 auto;
  justify-content: center;
  margin-bottom: 18px !important;
}
.g2y-feature-card .gb-shape,
.g2y-feature-card .gb-shape svg {
  display: block;
}
.g2y-feature-card__title {
  font-size: 16px;
  font-weight: 700;
  color: var(--g2y-navy) !important;
  margin-bottom: 8px;
}
.g2y-feature-card__desc {
  font-size: 14px;
  color: var(--g2y-text-mid) !important;
  line-height: 1.65;
}

/* ─── Reviews ─────────────────────────────────────────────────────── */
.g2y-reviews {
  padding: 60px 52px;
}
.g2y-reviews__heading { font-size: 34px; margin-bottom: 8px; }
.g2y-reviews__sub { color: var(--g2y-text-mid); font-size: 15px; margin-bottom: 36px; }
.g2y-reviews__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.g2y-reviews__grid.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.g2y-reviews__grid.wp-block-columns > .wp-block-column {
  flex-basis: auto !important;
  min-width: 0;
}
.g2y-review-card {
  border: 1px solid var(--g2y-border);
  border-radius: var(--g2y-radius-md);
  padding: 24px;
  background: var(--g2y-bg);
}
.g2y-review-card > .gb-text {
  align-items: center;
  display: flex;
  margin-bottom: 14px !important;
  min-height: 18px;
}
.g2y-review-card__text { font-size: 14px; color: var(--g2y-text-mid) !important; line-height: 1.65; margin-bottom: 20px; }
.g2y-review-card__author { display: flex; align-items: center; gap: 10px; }
.g2y-review-card__avatar { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }
.g2y-review-card__name { font-size: 14px; font-weight: 600; color: var(--g2y-navy) !important; }
.g2y-review-card__role { font-size: 12px; color: var(--g2y-text-light) !important; }
.g2y-facebook-cta,
.g2y-gallery__fb {
  align-items: stretch;
  background: var(--g2y-teal-light);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  justify-content: flex-start;
  margin-left: auto;
  margin-right: auto;
  max-width: 420px;
  padding: 22px 24px;
  width: 100%;
}
.g2y-facebook-cta h3,
.g2y-gallery__fb h3 {
  color: var(--g2y-navy);
  font-size: 18px;
  margin: 0;
}
.g2y-facebook-cta .wp-block-buttons,
.g2y-gallery__fb .wp-block-buttons,
.g2y-facebook-cta .wp-block-button,
.g2y-gallery__fb .wp-block-button,
.g2y-facebook-cta .wp-block-button__link,
.g2y-gallery__fb .wp-block-button__link,
.g2y-contact a[href*="facebook.com"].wp-block-button__link {
  width: 100%;
}
.g2y-facebook-cta .wp-block-button__link,
.g2y-gallery__fb .wp-block-button__link,
.g2y-contact a[href*="facebook.com"].wp-block-button__link {
  align-items: center;
  background: #1877F2 !important;
  border-radius: 8px;
  color: var(--g2y-white) !important;
  display: inline-flex;
  font-size: 15px;
  font-weight: 700;
  gap: 10px;
  justify-content: center;
  min-height: 44px;
  padding: 12px 22px !important;
  text-align: center;
}
.g2y-facebook-cta .wp-block-button__link::before,
.g2y-gallery__fb .wp-block-button__link::before,
.g2y-contact a[href*="facebook.com"].wp-block-button__link::before {
  content: "f";
  font-family: Arial, sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
}

/* ─── About page ──────────────────────────────────────────────────── */
.g2y-about {
  display: flex;
  gap: 72px;
  padding: 72px 52px;
  align-items: flex-start;
}
.g2y-about.wp-block-columns {
  display: flex !important;
  gap: 72px !important;
}
.g2y-about.wp-block-columns > .wp-block-column {
  min-width: 0;
}
.g2y-about__photo-col { flex: 0 0 420px; }
.g2y-about__photo {
  border-radius: var(--g2y-radius-lg);
  overflow: hidden;
  box-shadow: 0 12px 48px rgba(27,45,95,0.14);
}
.g2y-about__photo img { width: 100%; height: 480px; object-fit: cover; }
.g2y-about__creds { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.g2y-about__copy { flex: 1; padding-top: 8px; }
.g2y-about__eyebrow {
  color: var(--g2y-teal);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.g2y-about__heading { font-size: clamp(36px, 4vw, 52px); margin-bottom: 28px; }
.g2y-about__body { font-size: 17px; color: var(--g2y-text-mid); line-height: 1.75; }
.g2y-about__body p + p { margin-top: 16px; }
.g2y-about__actions { display: flex; gap: 16px; margin-top: 40px; }

/* ─── Services ────────────────────────────────────────────────────── */
.g2y-services {
  padding: 52px;
  background: var(--g2y-bg);
}
.g2y-services__row {
  display: grid;
  gap: 22px;
  margin-bottom: 22px;
}
.g2y-services__row--3 { grid-template-columns: repeat(3, 1fr); }
.g2y-services__row--2 { grid-template-columns: repeat(2, 1fr); }
.g2y-services__row.wp-block-columns {
  display: grid !important;
  gap: 22px !important;
}
.g2y-services__row.wp-block-columns > .wp-block-column {
  flex-basis: auto !important;
  min-width: 0;
}
.g2y-services__row--3.wp-block-columns {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.g2y-services__row--2.wp-block-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.g2y-service-card {
  background: var(--g2y-white);
  border-radius: 16px;
  border: 1px solid var(--g2y-border);
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(27,45,95,0.06);
  display: flex;
  flex-direction: column;
}
.g2y-service-card.has-background {
  padding: 0 !important;
}
.g2y-feature-card,
.g2y-review-card,
.g2y-service-card,
.g2y-services__row > .wp-block-column > .g2y-service-card {
  max-width: none !important;
  width: 100%;
}
.g2y-services__row > .wp-block-column > .g2y-service-card {
  height: 100%;
}
.g2y-service-card > .wp-block-group {
  align-items: stretch !important;
  justify-content: flex-start !important;
  max-width: none !important;
  width: 100%;
}
.g2y-service-card > .wp-block-group:not(.g2y-service-card__stripe) {
  flex: 1;
}
.g2y-service-card .wp-block-heading {
  color: var(--g2y-navy) !important;
  text-align: left;
}
.g2y-service-card p,
.g2y-service-card li {
  color: var(--g2y-text-mid) !important;
}
.g2y-service-card__stripe {
  background: var(--g2y-teal);
  height: 5px;
}
.g2y-service-card__stripe.wp-block-group {
  max-width: none !important;
  padding: 0 !important;
  width: 100%;
}
.g2y-service-card__price-placeholder {
  background: var(--g2y-bg);
  border-radius: 8px;
}
.g2y-service-card__body { padding: 28px; flex: 1; }
.g2y-service-card__head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.g2y-service-card__title { font-size: 19px; font-weight: 700; color: var(--g2y-navy); }
.g2y-service-card__desc { font-size: 14px; color: var(--g2y-text-mid); line-height: 1.65; margin-bottom: 18px; }
.g2y-service-card__includes { display: flex; flex-direction: column; gap: 7px; }
.g2y-service-card .wp-block-list {
  color: var(--g2y-text-mid);
  display: flex;
  flex-direction: column;
  font-size: 13px;
  gap: 7px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.g2y-service-card .wp-block-list li {
  align-items: flex-start;
  display: flex;
  gap: 8px;
}
.g2y-service-card .wp-block-list li::before {
  background: var(--g2y-teal-light);
  border-radius: 50%;
  color: var(--g2y-teal-dark);
  content: "✓";
  flex: 0 0 14px;
  font-size: 10px;
  font-weight: 700;
  height: 14px;
  line-height: 14px;
  margin-top: 3px;
  text-align: center;
  width: 14px;
}
.g2y-service-card__include {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
  color: var(--g2y-text-mid);
}
.g2y-service-card__include svg { margin-top: 2px; flex-shrink: 0; }
.g2y-service-card__price {
  margin: 16px 28px 28px;
  background: var(--g2y-bg);
  border-radius: 8px;
  box-sizing: border-box;
  max-width: none !important;
  padding: 10px 14px;
  font-size: 13px;
  color: var(--g2y-text-mid);
  width: auto !important;
}
.g2y-service-card .g2y-service-card__price {
  margin: 16px 28px 28px !important;
}
.g2y-service-card__price a { color: var(--g2y-teal); font-weight: 600; text-decoration: none; }

/* ─── Gallery ─────────────────────────────────────────────────────── */
.g2y-gallery { padding: 52px; }
.g2y-gallery__top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
  max-width: none !important;
  width: 100%;
}
.g2y-gallery__top.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px !important;
}
.g2y-gallery__top.wp-block-columns > .wp-block-column {
  flex-basis: auto !important;
  min-width: 0;
}
.g2y-gallery__top .wp-block-image {
  margin: 0 !important;
  max-width: none !important;
  width: 100%;
}
.g2y-gallery__top img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(27,45,95,0.1);
}
.g2y-gallery__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 40px;
  max-width: none !important;
  width: 100%;
}
.g2y-gallery__grid img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 14px;
}
.g2y-gallery__grid.wp-block-gallery {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px !important;
}
.g2y-gallery__grid.wp-block-gallery .wp-block-image {
  margin: 0 !important;
  width: 100% !important;
}
.g2y-gallery__grid.wp-block-gallery img {
  aspect-ratio: auto;
  height: 220px !important;
}
.g2y-gallery__grid > .wp-block-group {
  margin-block-start: 0 !important;
}
.g2y-gallery-placeholder {
  align-items: center !important;
  background: var(--g2y-teal-light);
  border: 1px dashed var(--g2y-teal-mid);
  border-radius: 14px;
  color: var(--g2y-text-light);
  display: flex !important;
  flex-direction: column;
  gap: 10px !important;
  height: 220px;
  justify-content: center !important;
  max-width: none !important;
  width: 100%;
}
.g2y-gallery-placeholder svg {
  color: var(--g2y-teal-mid);
}
.g2y-gallery-placeholder p {
  color: var(--g2y-text-light) !important;
  font-size: 13px;
  margin: 0;
}
.g2y-gallery__fb {
  padding: 22px 24px;
}
.g2y-gallery__fb h3 { font-size: 18px; margin-bottom: 0; }
.g2y-gallery__fb p { font-size: 14px; color: var(--g2y-text-mid); }
/* ─── Contact ─────────────────────────────────────────────────────── */
.g2y-contact {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
}
.g2y-contact.wp-block-columns {
  display: grid !important;
  grid-template-columns: 1fr 1.4fr;
  gap: 0 !important;
}
.g2y-contact.wp-block-columns > .wp-block-column {
  flex-basis: auto !important;
  min-width: 0;
}
.g2y-contact__info {
  background: var(--g2y-teal-light);
  padding: 56px 52px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.g2y-contact__info > :where(h2, p, .wp-block-group, .wp-block-buttons) {
  margin-block-end: 0 !important;
  margin-block-start: 0 !important;
  max-width: none !important;
  width: 100%;
}
.g2y-contact__info h2 { font-size: 22px; margin-bottom: 16px; }
.g2y-contact__info p { font-size: 15px; color: var(--g2y-text-mid); line-height: 1.7; }
.g2y-contact__detail { display: flex; align-items: center; gap: 14px; }
.g2y-contact__form { background: var(--g2y-white); padding: 56px 52px; }
.g2y-contact__form h2 { font-size: 22px; margin-bottom: 32px; }
.g2y-form { display: flex; flex-direction: column; gap: 20px; }
.g2y-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.g2y-form__field { display: flex; flex-direction: column; gap: 6px; }
.g2y-form__label { font-size: 13px; font-weight: 600; color: var(--g2y-navy); }
.g2y-form__input,
.g2y-form__textarea {
  box-sizing: border-box;
  padding: 12px 14px;
  border: 1.5px solid var(--g2y-border);
  border-radius: 8px;
  font-size: 15px;
  font-family: var(--g2y-font);
  color: var(--g2y-text);
  background: var(--g2y-white);
  outline: none;
  transition: border-color 0.15s;
  width: 100%;
}
.g2y-form__input:focus,
.g2y-form__textarea:focus { border-color: var(--g2y-teal); }
.g2y-form__textarea { height: 140px; resize: vertical; line-height: 1.6; }
.g2y-form__note { font-size: 13px; color: var(--g2y-text-light); text-align: center; margin-top: -8px; }

/* ─── Mobile responsive ───────────────────────────────────────────── */
@media (max-width: 768px) {
  .g2y-site-header {
    height: 58px;
    padding: 0 20px;
  }
  .g2y-site-logo {
    flex-basis: auto;
  }
  .g2y-site-logo img {
    height: 40px;
  }
  .g2y-site-header__cta {
    display: none !important;
  }
  .g2y-site-nav {
    flex: 1 1 auto;
    justify-content: flex-end;
  }
  .g2y-site-nav .wp-block-navigation__responsive-container-open {
    align-items: center;
    display: flex !important;
    height: 32px;
    justify-content: center;
    padding: 0;
    width: 32px;
  }
  .g2y-site-nav .wp-block-navigation__responsive-container-open svg {
    height: 28px;
    width: 28px;
  }
  .g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open {
    background: var(--g2y-white) !important;
    padding: 0;
  }
  .g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
    margin: 0;
    padding: 28px 24px;
  }
  .g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    right: 18px !important;
    top: 18px !important;
  }
  .admin-bar .g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    top: 64px !important;
  }
  .g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    align-items: flex-start;
    justify-content: flex-start;
    padding-top: 52px;
  }
  .g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    align-items: flex-start !important;
    display: flex !important;
    flex: none;
    flex-direction: column;
    gap: 24px !important;
    justify-content: flex-start !important;
    width: 100%;
  }
  .g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    color: var(--g2y-navy) !important;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.2;
  }
  .g2y-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
    content: none;
  }
  .g2y-mobile-menu {
    display: inline-flex;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
  }
  .g2y-site-header::after {
    content: none;
  }
  .wp-block-post-content > .g2y-hero,
  .wp-block-post-content > .g2y-features,
  .wp-block-post-content > .g2y-reviews,
  .wp-block-post-content > .g2y-page-header,
  .wp-block-post-content > .g2y-about,
  .wp-block-post-content > .g2y-services,
  .wp-block-post-content > .g2y-gallery,
  .wp-block-post-content > .g2y-contact,
  .g2y-site-footer {
    width: 100%;
  }
  .g2y-hero { flex-direction: column; height: auto; }
  .g2y-hero__copy {
    box-sizing: border-box;
    flex: none;
    max-width: 100%;
    min-width: 0;
    padding: 36px 24px 32px;
    width: 100%;
  }
  .g2y-hero__heading {
    font-size: 30px !important;
    line-height: 1.12 !important;
    max-width: 100%;
    overflow-wrap: break-word;
  }
  .g2y-hero__heading span {
    overflow-wrap: anywhere;
  }
  .g2y-hero__sub { font-size: 15px !important; }
  .g2y-hero__copy > .wp-block-group {
    align-items: stretch;
    flex-direction: column;
    gap: 14px;
  }
  .g2y-hero .wp-block-buttons,
  .g2y-hero .wp-block-button,
  .g2y-hero .wp-block-button__link {
    text-align: center;
    width: 100%;
  }
  .g2y-hero__copy > .wp-block-group > p {
    text-align: center;
  }
  .g2y-hero__image { flex: none; height: 220px; }
  .g2y-features { padding: 28px 16px !important; }
  .g2y-features__grid,
  .g2y-features__grid.wp-block-columns { grid-template-columns: 1fr; }
  .g2y-reviews { padding: 32px 16px !important; }
  .g2y-reviews__grid,
  .g2y-reviews__grid.wp-block-columns { grid-template-columns: 1fr; }
  .g2y-about { flex-direction: column; padding: 32px 22px; }
  .g2y-about__photo-col { flex: none; width: 100%; }
  .g2y-about__photo img { height: 230px; }
  .g2y-services { padding: 22px 16px !important; }
  .g2y-services__row--3,
  .g2y-services__row--2,
  .g2y-services__row--3.wp-block-columns,
  .g2y-services__row--2.wp-block-columns { grid-template-columns: 1fr; }
  .g2y-gallery { padding: 20px 16px !important; }
  .g2y-gallery__top,
  .g2y-gallery__top.wp-block-columns { grid-template-columns: 1fr; }
  .g2y-gallery__top img { height: 220px; }
  .g2y-gallery__grid { grid-template-columns: 1fr 1fr; }
  .g2y-gallery__fb { flex-direction: column; }
  .page-id-10 .g2y-page-header > .gb-text:first-child {
    display: none;
  }
  .page-id-10 .g2y-page-header h1,
  .page-id-10 .g2y-page-header .wp-block-heading {
    font-size: 36px !important;
  }
  .page-id-10 .g2y-page-header h1::after,
  .page-id-10 .g2y-page-header .wp-block-heading::after {
    color: rgba(255, 255, 255, 0.6);
    content: "Get in touch for a quote.";
    display: block;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    margin-top: 10px;
  }
  .g2y-contact,
  .g2y-contact.wp-block-columns {
    display: grid !important;
    grid-template-columns: 1fr;
  }
  .g2y-contact.wp-block-columns > .wp-block-column {
    box-sizing: border-box;
    flex-basis: auto !important;
    width: 100%;
  }
  .g2y-contact__info,
  .g2y-contact__form {
    box-sizing: border-box;
    padding: 32px 22px !important;
  }
  .g2y-contact__info {
    gap: 16px;
    padding-bottom: 24px !important;
    padding-top: 24px !important;
  }
  .g2y-contact__info > h2,
  .g2y-contact__info > p,
  .g2y-contact__info > .wp-block-heading,
  .g2y-contact__info > .wp-block-buttons,
  .g2y-contact__info > .gb-text-fa5727f4 {
    display: none !important;
  }
  .g2y-contact__detail {
    align-items: center;
    column-gap: 14px;
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr);
    margin-bottom: 0 !important;
    max-width: 100%;
    min-width: 0;
  }
  .g2y-contact__detail > .wp-block-group {
    grid-column: 2;
    max-width: 100%;
    min-width: 0;
  }
  .g2y-contact__detail .gb-text {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal !important;
    width: 100%;
    word-break: break-word;
  }
  .g2y-contact__detail .gb-text-e06713aa {
    max-width: min(100%, 260px) !important;
    width: auto;
  }
  .g2y-contact__detail:nth-of-type(2) {
    align-items: flex-start;
  }
  .g2y-contact__detail > .gb-text-7d217e1a,
  .g2y-contact__detail > .gb-text-f53ea51d {
    border-radius: 10px;
    flex-basis: 40px;
    flex-shrink: 0;
    grid-column: 1;
    height: 40px;
    width: 40px;
  }
  .g2y-contact__form {
    padding-bottom: 32px !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
    padding-top: 28px !important;
  }
  .g2y-contact__form h2,
  .g2y-contact__form .wp-block-heading {
    font-size: 19px !important;
    margin-bottom: 20px !important;
  }
  .g2y-form__row { grid-template-columns: 1fr; }
  .g2y-form { gap: 16px; }
  .g2y-form__field:has(> #g2y-email) {
    display: none;
  }
  .g2y-form__textarea {
    height: 120px;
  }
  .g2y-form__note {
    display: none;
  }
  .g2y-page-header { padding: 36px 22px 32px !important; }
  .g2y-site-footer {
    align-items: flex-start;
    display: grid !important;
    gap: 28px;
    grid-template-columns: 1fr;
    padding: 38px 24px;
    width: 100%;
  }
  .g2y-footer-logo img {
    max-width: 118px;
    width: 118px !important;
  }
  .g2y-footer__brand,
  .g2y-footer__contact {
    align-items: flex-start !important;
    text-align: left;
  }
  .g2y-footer__brand {
    gap: 16px;
  }
  .g2y-footer__contact {
    gap: 10px;
  }
  .g2y-site-footer .wp-block-navigation__container {
    align-items: flex-start;
    column-gap: 32px !important;
    display: grid !important;
    grid-template-columns: repeat(2, max-content);
    row-gap: 13px !important;
  }
  .g2y-footer__nav {
    justify-self: start;
  }
}

@media (min-width: 769px) and (max-width: 900px) {
  .page-id-10 .g2y-page-header > .gb-text:first-child {
    display: none;
  }
  .page-id-10 .g2y-page-header h1,
  .page-id-10 .g2y-page-header .wp-block-heading {
    font-size: 36px !important;
  }
  .page-id-10 .g2y-page-header h1::after,
  .page-id-10 .g2y-page-header .wp-block-heading::after {
    color: rgba(255, 255, 255, 0.6);
    content: "Get in touch for a quote.";
    display: block;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    margin-top: 10px;
  }
  .g2y-contact,
  .g2y-contact.wp-block-columns {
    display: grid !important;
    grid-template-columns: 1fr;
  }
  .g2y-contact.wp-block-columns > .wp-block-column {
    box-sizing: border-box;
    flex-basis: auto !important;
    width: 100%;
  }
  .g2y-contact__info,
  .g2y-contact__form {
    box-sizing: border-box;
    padding: 32px 22px !important;
  }
  .g2y-contact__info {
    gap: 16px;
    padding-bottom: 24px !important;
    padding-top: 24px !important;
  }
  .g2y-contact__info > h2,
  .g2y-contact__info > p,
  .g2y-contact__info > .wp-block-heading,
  .g2y-contact__info > .wp-block-buttons,
  .g2y-contact__info > .gb-text-fa5727f4 {
    display: none !important;
  }
  .g2y-contact__detail {
    align-items: center;
    column-gap: 14px;
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr);
    margin-bottom: 0 !important;
    max-width: 100%;
    min-width: 0;
  }
  .g2y-contact__detail > .wp-block-group {
    grid-column: 2;
    max-width: 100%;
    min-width: 0;
  }
  .g2y-contact__detail .gb-text {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal !important;
    width: 100%;
    word-break: break-word;
  }
  .g2y-contact__detail .gb-text-e06713aa {
    max-width: min(100%, 260px) !important;
    width: auto;
  }
  .g2y-contact__detail:nth-of-type(2) {
    align-items: flex-start;
  }
  .g2y-contact__detail > .gb-text-7d217e1a,
  .g2y-contact__detail > .gb-text-f53ea51d {
    border-radius: 10px;
    flex-basis: 40px;
    flex-shrink: 0;
    grid-column: 1;
    height: 40px;
    width: 40px;
  }
  .g2y-contact__form {
    padding-bottom: 32px !important;
    padding-top: 28px !important;
  }
  .g2y-contact__form h2,
  .g2y-contact__form .wp-block-heading {
    font-size: 19px !important;
    margin-bottom: 20px !important;
  }
  .g2y-form {
    gap: 16px;
  }
  .g2y-form__row {
    grid-template-columns: 1fr;
  }
  .g2y-form__field:has(> #g2y-email),
  .g2y-form__note {
    display: none;
  }
  .g2y-form__textarea {
    height: 120px;
  }
}

@media (min-width: 769px) and (max-width: 1080px) {
  .g2y-site-footer {
    align-items: flex-start;
    display: grid !important;
    gap: 30px;
    grid-template-columns: 1fr;
    padding: 42px 32px;
  }
  .g2y-footer__brand,
  .g2y-footer__contact {
    align-items: flex-start !important;
    text-align: left;
  }
  .g2y-footer__nav {
    justify-self: start;
  }
  .g2y-site-footer .wp-block-navigation__container {
    justify-content: flex-start !important;
  }
}
