:root {
  --gas-green: #0F8F45;
  --gas-deep-green: #046A38;
  --gas-light-green: #D9F5E5;
  --gas-white: #FFFFFF;
  --gas-charcoal: #1B1B1B;
  --gas-gold: #F4B400;
  --gas-mist: #F5F8F5;
  --gas-muted: #55665c;
  --gas-line: #d7e2da;
  --gas-radius: 8px;
  --gas-shadow: 0 8px 24px rgba(4, 65, 35, 0.08);
}

html { scroll-behavior: smooth; }
body { overflow-wrap: anywhere; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--gas-gold); outline-offset: 3px; }
:where(button, .wp-block-button__link) { min-height: 44px; }
.wp-block-post-content a, .wp-block-post-excerpt a { text-underline-offset: 0.18em; }
.wp-block-heading { text-wrap: balance; }

.site-header { position: relative; z-index: 10; border-bottom: 1px solid var(--gas-line); background: var(--gas-white); }
.header-inner { width: min(100% - 40px, 1280px); min-height: 88px; margin-inline: auto !important; gap: 14px; }
.header-inner .wp-block-site-logo { flex: 0 0 66px; width: 66px; }
.header-inner .custom-logo-link { display: block; width: 66px; height: 66px; overflow: hidden; background: var(--gas-white); }
.header-inner .custom-logo { width: 100%; height: 100%; object-fit: contain; }
.header-identity { flex: 1 1 auto; min-width: 170px; }
.header-identity .wp-block-site-title { margin: 0; color: var(--gas-deep-green); font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem; line-height: 1.2; }
.header-identity .wp-block-site-title a { color: inherit; text-decoration: none; }
.site-tagline { margin: 2px 0 0; color: var(--gas-muted); font-size: 0.72rem; font-weight: 700; }
.site-header .wp-block-navigation { flex: 0 1 auto; gap: 0.2rem; }
.site-header .wp-block-navigation-item__content { padding: 0.65rem 0.55rem; color: var(--gas-charcoal); text-decoration: none; }
.site-header .wp-block-navigation-item__content:hover { color: var(--gas-deep-green); text-decoration: underline; text-underline-offset: 0.3em; }
.site-header .wp-block-navigation-item__content { transition: color 160ms ease, text-decoration-color 160ms ease; }
.site-header .wp-block-navigation__responsive-container-open { min-width: 44px; min-height: 44px; justify-content: center; }
.header-cta { flex: 0 0 auto; margin: 0; }
.header-cta .wp-block-button__link { padding: 0.68rem 0.9rem; font-size: 0.82rem; }

.gas-hero { position: relative; isolation: isolate; overflow: hidden; min-height: 620px; background-color: var(--gas-deep-green); }
.gas-hero::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(3, 39, 25, .9) 0%, rgba(4, 63, 36, .78) 48%, rgba(4, 63, 36, .24) 100%), linear-gradient(0deg, rgba(3, 39, 25, .3), transparent 55%); content: ""; pointer-events: none; }
.gas-hero-background { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; margin: 0 !important; }
.gas-hero-background img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
.gas-hero > .wp-block-columns { position: relative; z-index: 2; min-height: 620px; margin-block: 0; gap: clamp(2rem, 6vw, 5rem); }
.gas-hero .gas-display { max-width: 760px; margin: 0 0 0.45em; color: var(--gas-white); font-size: clamp(2.8rem, 6.1vw, 5.6rem); line-height: 0.98; }
.gas-hero-tagline { margin: 0 0 1.05rem; color: var(--gas-gold); font-family: Arial, Helvetica, sans-serif; font-size: clamp(1.2rem, 2vw, 1.65rem); font-weight: 700; }
.gas-hero p:not(.gas-eyebrow) { max-width: 650px; color: rgba(255, 255, 255, 0.92); }
.gas-eyebrow { margin: 0 0 1rem; color: var(--gas-light-green); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.gas-eyebrow-dark { color: var(--gas-deep-green); }
.gas-hero .wp-block-button__link { border: 1px solid var(--gas-deep-green); background: var(--gas-deep-green); transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease; }
.gas-hero .is-style-outline .wp-block-button__link { border-color: rgba(255,255,255,.78); background: transparent; color: var(--gas-white); }
.gas-hero .wp-block-button__link:hover { transform: translateY(-2px); background: var(--gas-deep-green); box-shadow: 0 6px 18px rgba(0,0,0,.16); }
.gas-hero-photo-note { align-self: flex-end; margin: 0 0 1rem; padding: 0.55rem 0.8rem; border: 1px solid rgba(255,255,255,.55); background: rgba(3,39,25,.5); color: var(--gas-white); font-size: 0.76rem; font-weight: 700; }
.gas-hero .gas-hero-content > .wp-block-column:first-child { padding-block: clamp(3rem, 6vw, 5rem); }
.gas-photo-placeholder { display: grid; min-height: 180px; place-items: center; padding: 1.5rem; border: 1px solid rgba(4, 106, 56, 0.28); border-radius: var(--gas-radius); background-color: var(--gas-light-green); background-image: repeating-linear-gradient(135deg, transparent 0 28px, rgba(15,143,69,.07) 28px 29px); color: var(--gas-deep-green); text-align: center; }
.gas-photo-placeholder span { padding: 0.8rem 1rem; border-radius: 4px; background: rgba(255,255,255,.92); font-size: 0.82rem; font-weight: 700; }
.gas-section { padding-inline: 24px; }
.gas-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.gas-section-heading > .wp-block-group { max-width: 720px; }
.gas-section-heading .wp-block-heading { margin-block: 0.2rem 0.6rem; }
.gas-section-heading p:last-child { margin-block: 0; color: var(--gas-muted); }
.gas-section-heading .wp-block-buttons { flex: 0 0 auto; }
.gas-section .wp-block-button__link { transition: transform 180ms ease, box-shadow 180ms ease; }
.gas-section .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: var(--gas-shadow); }

.gas-achievements { background: var(--gas-white); }
.gas-carousel { position: relative; }
.gas-carousel-track { display: grid; overflow: hidden; border-radius: var(--gas-radius); background: var(--gas-deep-green); }
.gas-carousel-slide { display: grid; min-height: 420px; grid-template-columns: 1.18fr 0.82fr; margin: 0 !important; background: var(--gas-deep-green); }
.gas-carousel-photo { height: clamp(320px, 36vw, 480px); min-height: 100%; margin: 0 !important; overflow: hidden; background: var(--gas-light-green); }
.gas-carousel-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 550ms cubic-bezier(.2,.75,.25,1); }
.gas-carousel-slide:hover .gas-carousel-photo img { transform: scale(1.035); }
.gas-achievement-caption { display: flex; max-width: none !important; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(1.4rem, 3.7vw, 3rem); background: var(--gas-deep-green); color: var(--gas-white); }
.gas-achievement-caption .gas-slide-kicker { margin: 0 0 0.8rem; color: var(--gas-light-green); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.gas-achievement-caption .wp-block-heading { margin: 0; color: var(--gas-white); font-size: clamp(1.7rem, 3vw, 2.8rem); }
.gas-achievement-caption > p:not(.gas-slide-kicker):not(.gas-result-label) { max-width: 38rem; margin-block: 0.9rem; color: rgba(255,255,255,.92); font-size: 0.98rem; }
.gas-result-label { margin: 0.1rem 0 1.2rem; padding: 0.35rem 0.65rem; border-left: 3px solid var(--gas-gold); background: rgba(255,255,255,.1); color: var(--gas-white); font-size: 0.78rem; font-weight: 700; }
.gas-achievement-caption .wp-block-button__link { border: 1px solid rgba(255,255,255,.8); background: transparent; color: var(--gas-white); }
.gas-achievement-caption .wp-block-button__link:hover { background: rgba(255,255,255,.12); }
.gas-carousel-enhanced .gas-carousel-track { display: flex; gap: 0; transition: transform 560ms cubic-bezier(.2,.75,.25,1); will-change: transform; }
.gas-carousel-enhanced .gas-carousel-slide { flex: 0 0 100%; min-width: 0; }
.gas-carousel:focus-visible { outline: 3px solid var(--gas-gold); outline-offset: 4px; }
.gas-carousel-controls:not([hidden]) { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.7rem; padding-top: 1rem; }
.gas-carousel-controls button { min-height: 44px; border: 1px solid var(--gas-deep-green); border-radius: 4px; background: var(--gas-white); color: var(--gas-deep-green); cursor: pointer; font: inherit; font-weight: 700; }
.gas-carousel-controls button:hover { background: var(--gas-light-green); }
.gas-carousel-prev, .gas-carousel-next { width: 44px; padding: 0; font-size: 1.35rem !important; }
.gas-carousel-dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; }
.gas-carousel-dots button { width: 18px; min-height: 18px; height: 18px; padding: 0; border: 0; border-radius: 50%; background: #b8c8be; }
.gas-carousel-dots button[aria-current="true"] { background: var(--gas-green); box-shadow: 0 0 0 3px var(--gas-light-green); }
.gas-carousel-pause { padding: 0.45rem 0.75rem; font-size: 0.8rem !important; }

.gas-services { background: var(--gas-mist); }
.gas-section[id] { scroll-margin-top: 6rem; }
.gas-services-intro { margin-bottom: 2.5rem; }
.gas-services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.gas-service-card { min-height: 210px; padding: clamp(1.25rem, 2vw, 1.8rem); border: 1px solid var(--gas-line); border-radius: var(--gas-radius); background: var(--gas-white); box-shadow: 0 4px 14px rgba(4,65,35,.04); transition: transform 180ms ease, box-shadow 180ms ease; }
.gas-service-card:hover { transform: translateY(-4px); box-shadow: var(--gas-shadow); }
.gas-service-number { display: flex; align-items: center; gap: 0.7rem; margin: 0; color: var(--gas-green); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; font-weight: 700; }
.gas-service-number span { color: var(--gas-muted); font-family: Arial, Helvetica, sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.gas-service-card .wp-block-heading { margin-block: 1.2rem .55rem; color: var(--gas-deep-green); font-family: Arial, Helvetica, sans-serif; font-size: 1.2rem; line-height: 1.25; }
.gas-service-card p:not(.gas-service-number) { color: var(--gas-muted); font-size: .9rem; }
.gas-service-card-featured { border-color: transparent; background: var(--gas-deep-green) !important; color: var(--gas-white); }
.gas-service-card-featured .gas-service-number { color: var(--gas-gold); }
.gas-service-card-featured .gas-service-number span, .gas-service-card-featured p:not(.gas-service-number) { color: rgba(255,255,255,.88); }
.gas-service-card-featured .wp-block-heading { color: var(--gas-white); }
.gas-projects { background: var(--gas-white); }
.gas-project-image { min-height: 320px; overflow: hidden; border-radius: var(--gas-radius); background: var(--gas-light-green); box-shadow: var(--gas-shadow); }
.gas-project-image img { width: 100%; min-height: 320px; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 500ms cubic-bezier(.2,.75,.25,1); }
.gas-project-image:hover img { transform: scale(1.025); }
.gas-project-feature > .wp-block-column:last-child { padding: clamp(1rem, 2vw, 2rem); }
.gas-project-results { gap: .75rem; margin-block: 1.5rem; }
.gas-project-results > .wp-block-paragraph { min-width: 140px; margin: 0; padding: .75rem 1rem; border-left: 3px solid var(--gas-gold); background: var(--gas-light-green); color: var(--gas-deep-green); }
.gas-project-results strong { font-size: .82rem; }
.gas-carousel-track { touch-action: pan-y; }
.gas-reveal-ready { opacity: 0; transform: translateY(18px); transition: opacity 520ms ease, transform 520ms cubic-bezier(.2,.75,.25,1); }
.gas-reveal-ready.gas-revealed { opacity: 1; transform: translateY(0); }

.gas-about { background: var(--gas-light-green); }
.gas-values-line { padding-top: 0.8rem; border-top: 1px solid rgba(4,106,56,.25); color: var(--gas-deep-green); font-size: 0.9rem; line-height: 2; }
.gas-values-line strong { color: var(--gas-deep-green); }
.gas-founder { padding-inline: 24px; }
.gas-founder-placeholder { min-height: 310px; aspect-ratio: 4 / 3; }
.gas-note { color: var(--gas-muted); font-size: 0.82rem; }
.gas-vision { background: var(--gas-deep-green); color: var(--gas-white); }
.gas-vision .wp-block-heading { color: var(--gas-white); }
.gas-vision p:not(.gas-eyebrow):not(.gas-note) { color: rgba(255,255,255,.9); }
.gas-vision .gas-note { color: #dcebe1; }
.gas-programmes { background: var(--gas-mist); }
.gas-card-grid { gap: 1rem; }
.gas-programme-card, .gas-focus-card, .gas-news-card { height: 100%; padding: clamp(1.2rem, 2.4vw, 2rem); border: 1px solid var(--gas-line); border-radius: var(--gas-radius); background: var(--gas-white); box-shadow: 0 4px 14px rgba(4,65,35,.04); transition: transform 180ms ease, box-shadow 180ms ease; }
.gas-programme-card:hover, .gas-focus-card:hover, .gas-news-card:hover { transform: translateY(-3px); box-shadow: var(--gas-shadow); }
.gas-card-number { color: var(--gas-deep-green); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; }
.gas-programme-card .wp-block-heading, .gas-focus-card .wp-block-heading { margin-block: 0.5rem; font-size: 1.45rem; }
.gas-programme-card p, .gas-focus-card p { font-size: 0.92rem; }
.gas-work-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.gas-focus-card { padding: 1.35rem; }
.gas-focus-card.has-light-green-background-color { background: var(--gas-light-green) !important; }
.gas-involved { background: var(--gas-light-green); }
.gas-involved .wp-block-heading { max-width: 760px; }
.gas-contact { background: var(--gas-white); }
.gas-contact .wp-block-column:last-child > .wp-block-paragraph { margin-block: 0.5rem; }
.gas-contact .wp-block-column:last-child strong { color: var(--gas-deep-green); }

.page-main, .single-main, .archive-main, .single-achievement, .gas-achievement-archive { width: min(100% - 40px, 960px); margin-inline: auto !important; }
.page-title { margin-block: 0 1.5rem; }
.page-featured-image, .single-featured-image { overflow: hidden; border-radius: var(--gas-radius); }
.page-featured-image img, .single-featured-image img { width: 100%; object-fit: cover; }
.single-main > .wp-block-post-date { margin-bottom: 1.2rem; color: var(--gas-muted); font-size: 0.85rem; }
.gas-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 2rem 0; padding: 0; list-style: none; }
.gas-news-card { padding: 0 0 1.25rem; overflow: hidden; }
.gas-news-card > :not(.wp-block-post-featured-image) { margin-right: 1.2rem; margin-left: 1.2rem; }
.gas-news-card .wp-block-post-featured-image { margin: 0 0 1rem; }
.gas-news-card .wp-block-post-featured-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform 350ms ease; }
.gas-news-card:hover .wp-block-post-featured-image img { transform: scale(1.025); }
.gas-news-card .wp-block-post-title { font-size: 1.35rem; }
.gas-news-card .wp-block-post-title a { text-decoration: none; }
.gas-news-card .wp-block-post-date { color: var(--gas-muted); font-size: 0.82rem; }
.gas-news-card .wp-block-post-excerpt { font-size: 0.9rem; }
.gas-achievement-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-block: 1.5rem 2.5rem; }
.gas-achievement-filters a { display: inline-flex; min-height: 42px; align-items: center; padding: 0.45rem 0.8rem; border: 1px solid var(--gas-line); border-radius: 4px; color: var(--gas-deep-green); font-size: 0.9rem; font-weight: 700; text-decoration: none; }
.gas-achievement-filters a:hover, .gas-achievement-filters a:focus-visible { background: var(--gas-light-green); }
.gas-achievement-summary { margin-block: 1.2rem; font-size: 1.15rem; font-weight: 600; }
.gas-not-found { min-height: 45vh; }
.site-footer { padding: 3.5rem 24px 1.2rem; background: var(--gas-deep-green); color: var(--gas-white); }
.footer-main, .footer-bottom { width: min(100%, 1200px); margin-inline: auto !important; }
.footer-main { display: flex; justify-content: space-between; gap: 2rem; padding-bottom: 2.5rem; }
.footer-main > .wp-block-group { flex: 1 1 220px; }
.footer-main .wp-block-site-title { margin: 0; color: var(--gas-white); font-family: Georgia, "Times New Roman", serif; }
.footer-main .wp-block-site-title a { color: inherit; text-decoration: none; }
.footer-main p { max-width: 360px; color: rgba(255,255,255,.84); font-size: 0.9rem; }
.footer-main .wp-block-heading { color: var(--gas-light-green); font-family: Arial, Helvetica, sans-serif; font-size: 0.9rem; }
.footer-main .wp-block-navigation { gap: 0.45rem; }
.footer-main .wp-block-navigation-item__content, .footer-main a { color: var(--gas-white); font-size: 0.85rem; text-underline-offset: 0.18em; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.24); }
.footer-bottom p, .footer-bottom .wp-block-shortcode { margin: 0; color: rgba(255,255,255,.78); font-size: 0.76rem; }

@media (max-width: 1024px) {
  .header-inner { width: min(100% - 32px, 1280px); flex-wrap: wrap !important; padding-block: 0.55rem; }
  .site-header .wp-block-navigation { order: 4; flex: 1 0 100%; }
  .site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
  .site-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .header-cta { margin-left: auto; }
  .gas-work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gas-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gas-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .header-inner { width: min(100% - 28px, 1280px); min-height: 72px; gap: 8px; }
  .header-inner .wp-block-site-logo, .header-inner .custom-logo-link { flex-basis: 52px; width: 52px; height: 52px; }
  .header-identity { min-width: 0; }
  .header-identity .wp-block-site-title { font-size: 1rem; }
  .site-tagline { font-size: 0.68rem; }
  .header-cta { display: none; }
  .site-header .wp-block-navigation { order: 0; flex: 0 0 auto; margin-left: auto; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open { position: fixed; padding: 1.5rem 1.25rem; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 2rem; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { min-height: 44px; padding: 0.7rem 0; }
  .gas-hero { padding: 3.25rem 20px !important; }
  .gas-hero { min-height: 0; }
  .gas-hero > .wp-block-columns { min-height: 0; gap: 1.5rem; padding-block: 3.5rem; }
  .gas-hero-background img { object-position: 35% center; }
  .gas-hero .gas-display { font-size: clamp(2.55rem, 12vw, 4rem); }
  .gas-hero-photo-note { align-self: flex-start; }
  .gas-section { padding: 3rem 20px !important; }
  .gas-section-heading { align-items: flex-start; flex-direction: column; gap: 1rem; margin-bottom: 1.4rem; }
  .gas-section-heading .wp-block-buttons { align-self: flex-start; }
  .gas-carousel-slide { display: flex; min-height: 0; flex-direction: column; }
  .gas-carousel-photo { flex: 0 0 auto; height: auto; aspect-ratio: 4 / 3; }
  .gas-carousel-photo img { aspect-ratio: 4 / 3; }
  .gas-achievement-caption { padding: 1.25rem; }
  .gas-achievement-caption .wp-block-heading { font-size: 1.65rem; }
  .gas-carousel-controls:not([hidden]) { gap: 0.45rem; }
  .gas-carousel-pause { flex-basis: 100%; }
  .gas-founder { padding-inline: 20px !important; }
  .gas-project-image, .gas-project-image img { min-height: 0; }
  .gas-project-feature > .wp-block-column:last-child { padding: 1.5rem 0 0; }
  .gas-founder-placeholder { min-height: 240px; }
  .gas-work-grid, .gas-services-grid, .gas-news-grid { grid-template-columns: 1fr; }
  .gas-card-grid { gap: 0.75rem; }
  .gas-news-grid { gap: 0.75rem; }
  .page-main, .single-main, .archive-main, .single-achievement, .gas-achievement-archive { width: min(100% - 32px, 960px); }
  .footer-main { flex-direction: column; gap: 1rem; }
  .footer-main > .wp-block-group { flex-basis: auto; }
  .footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .gas-reveal-ready { opacity: 1; transform: none; }
}
