/**
 * Recharge — Partner Services page (Υπηρεσίες Συνεργατών)
 *
 * Scoped styles for www.recharge.gr/partner-el/ (page 93, Greek) and
 * www.recharge.gr/en/partner/ (page 9644, English).
 * Enqueued from the child theme's functions.php ONLY when is_page( array( 'partner-el', 'partner' ) ).
 * Every selector is prefixed .cgp-prt- ; nothing here targets bare elements,
 * so it cannot affect the global header, footer, menu or other pages.
 *
 * Geologica is NOT imported here — functions.php already loads it site-wide
 * (Google Fonts, unique-child-google-fonts).
 *
 * 1.3.2 (2026-10-19): ≤800px hero: content bottom-aligned and a bottom-up shade (as the business hero) instead of the desktop left-to-right shade, which darkened the whole photo on phones.
 *
 * 1.3.1 (2026-10-19): customer guide row flipped instead of team row (content); coverage section spacing tightened (48px/32px top, no bottom padding; the following section starts at 64px/48px).
 *
 * 1.3.0 (2026-10-19): copy refresh; the coverage map moves out of
 * "Partnership in practice" into its own section (.cgp-prt-coverage-sec,
 * #coverage) between sign-up and partnership, so .cgp-prt-coverage loses its
 * 120px/72px margins. New "For your team" guide row (.cgp-prt-guide-row--reverse:
 * image right above 800px, stacked image-first below). Sign-up gets a bottom
 * hairline, hidden while collapsed.
 *
 * 1.2.0 (2026-10-18): partner tiers redesigned to the owner's brief. No
 * featured card: the Starter ring, shadow and "ΠΡΟΤΕΙΝΟΜΕΝΟ" tab
 * (.cgp-prt-tier--featured, .cgp-prt-tier-badge) are removed, with the head
 * band's position:relative that only served the tab. Six rows per card
 * (head, description, benefits, "ΙΔΑΝΙΚΟ ΓΙΑ", price, button), lined up by
 * subgrid on desktop. "ΙΔΑΝΙΚΟ ΓΙΑ" is a plain label and line under a
 * hairline (was a tinted box) and follows the benefits. New price block
 * (.cgp-prt-tier-price: main line + supporting line), which can later carry
 * a real price. All three buttons are filled.
 *
 * @package   twentytwentyfour-child
 * @version   1.3.2
 * @date      2026-10-19
 */

/* ============ TOKENS ============ */
.cgp-prt-sec {
  --prt-ink:        #0F2237;
  --prt-action:     #1665D8;
  --prt-action-hov: #1255B8;
  --prt-light:      #71B0F6;
  --prt-text:       #475569;
  --prt-text-soft:  #5C708A;
  --prt-tint:       #F4F8FD;
  --prt-surface:    #FFFFFF;
  --prt-border:     #EDF1F6;
  --prt-section-v:  96px;
  --prt-gutter:     40px;
  --prt-f-display:  'Geologica', 'Helvetica Neue', Arial, sans-serif;
  --prt-f-body:     'Helvetica Neue', Helvetica, Arial, sans-serif;
  --prt-r-card:     18px;
  --prt-r-btn:      12px;
  --prt-r-pill:     9999px;
}

/* ============ BASE (scoped) ============ */
/* Full-bleed: sections also carry WP's .alignfull class; these rules make the
   width explicit in case the template's post-content is a constrained layout. */
.cgp-prt-sec {
  display: block;
  width: auto;
  max-width: none !important;
  padding: var(--prt-section-v) 0;
  background: var(--prt-surface);
  color: var(--prt-ink);
  font-family: var(--prt-f-body);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.cgp-prt-sec,
.cgp-prt-sec *,
.cgp-prt-sec *::before,
.cgp-prt-sec *::after { box-sizing: border-box; }

.cgp-prt-sec h1, .cgp-prt-sec h2, .cgp-prt-sec h3, .cgp-prt-sec h4 {
  margin: 0;
  font-family: var(--prt-f-display);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.025em;
  color: var(--prt-ink);
  text-transform: none;
}
.cgp-prt-sec p { margin: 0; color: var(--prt-text); }
.cgp-prt-sec a { color: inherit; text-decoration: none; }
.cgp-prt-sec img { max-width: 100%; }
.cgp-prt-sec svg { flex-shrink: 0; }
.cgp-prt-sec a:focus-visible,
.cgp-prt-sec summary:focus-visible { outline: 3px solid var(--prt-light); outline-offset: 4px; }

.cgp-prt-container { max-width: 1200px; margin: 0 auto; padding: 0 var(--prt-gutter); }

.cgp-prt-sec .cgp-prt-accent { color: var(--prt-action); }

.cgp-prt-eyebrow {
  display: block;
  margin-bottom: 14px;
  font-family: var(--prt-f-display);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--prt-action);
}

.cgp-prt-head { max-width: 680px; margin-bottom: 44px; }
.cgp-prt-head.is-centered { margin-left: auto; margin-right: auto; text-align: center; }
.cgp-prt-sec .cgp-prt-title { font-size: 2rem; }
.cgp-prt-sec .cgp-prt-lede { margin-top: 18px; max-width: 620px; }
.cgp-prt-head.is-centered .cgp-prt-lede { margin-left: auto; margin-right: auto; }

/* ============ BUTTONS & LINKS ============ */
.cgp-prt-sec .cgp-prt-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 48px;
  padding: 12px 24px;
  border: 2px solid transparent;
  border-radius: var(--prt-r-btn);
  font-family: var(--prt-f-display);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.45;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background .18s, border-color .18s, color .18s;
}
.cgp-prt-btn svg { width: 18px; height: 18px; }
.cgp-prt-sec .cgp-prt-btn-primary { background: var(--prt-action); color: #fff; }
.cgp-prt-sec .cgp-prt-btn-primary:hover { background: var(--prt-action-hov); color: #fff; }
.cgp-prt-sec .cgp-prt-btn-outline { background: transparent; border-color: var(--prt-action); color: var(--prt-action); }
.cgp-prt-sec .cgp-prt-btn-outline:hover { background: var(--prt-action); color: #fff; }
.cgp-prt-sec .cgp-prt-btn-frosted {
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.33);
  color: #fff;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.cgp-prt-sec .cgp-prt-btn-frosted:hover { background: rgba(255,255,255,.14); color: #fff; }

.cgp-prt-sec .cgp-prt-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--prt-f-display);
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.6;
  color: var(--prt-action);
  text-decoration: none;
  transition: gap .2s;
}
.cgp-prt-sec .cgp-prt-link:hover { gap: 12px; color: var(--prt-action); }
.cgp-prt-link svg { width: 18px; height: 18px; }

/* ============ HERO ============ */
.cgp-prt-sec.cgp-prt-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  align-items: center;
  min-height: 100vh;
  min-height: 100svh;
  padding: 156px 0 110px;
  background: var(--prt-ink);
  color: #fff;
}
.cgp-prt-hero-photo,
.cgp-prt-hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
/* Theme rules set img { height: auto } — the hero photo must fill the hero box.
   High specificity + !important so no global img rule can win. */
.cgp-prt-sec.cgp-prt-hero img.cgp-prt-hero-photo {
  z-index: -2;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover;
  object-position: 65% center;
}
.cgp-prt-hero-shade {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(7,20,35,.96) 0%, rgba(10,28,46,.9) 32%, rgba(11,29,45,.46) 61%, rgba(11,29,45,.08) 100%),
    linear-gradient(0deg, rgba(10,26,41,.4), transparent 40%);
}
/* 1.0.7: flush left with a 48px inset, like the residential and business heroes
   (was centred in a 1600px box to match the hero-nav header width). */
.cgp-prt-hero-inner { width: 100%; padding: 0 48px; }
/* 1.0.8: hero type, pill and buttons use the residential/business hero values
   (cgp-residential-page.css / cgp-business-page.css: .cgp-res-hero-*, .cgp-res-page-btn). */

.cgp-prt-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 22px;
  padding: 6px 13px;
  border: 1px solid rgba(113,176,246,.25);
  border-radius: var(--prt-r-pill);
  background: rgba(22,101,216,.16);
  font-family: var(--prt-f-display);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .13em;
  color: rgba(172,218,255,.92);
}
.cgp-prt-pill svg { width: 13px; height: 13px; }

.cgp-prt-sec .cgp-prt-hero-title {
  max-width: 484px;
  margin: 0 0 24px;
  font-size: clamp(2rem, 4.2vw, 3.25rem);
  line-height: 1.12;
  letter-spacing: -0.026em;
  color: #fff;
}
.cgp-prt-hero-accent { color: #71B0F6; }
.cgp-prt-sec .cgp-prt-hero-sub {
  max-width: 450px;
  font-size: 1.05rem;
  line-height: 1.72;
  color: rgba(255,255,255,.82);
}
.cgp-prt-hero-actions { display: flex; align-items: flex-end; gap: 14px; margin-top: 40px; }
.cgp-prt-sec .cgp-prt-hero-actions .cgp-prt-btn {
  gap: 8px;
  min-height: 0;
  padding: 14px 28px;
  border-width: 1.5px;
  font-size: 15px;
  line-height: 1;
  letter-spacing: .005em;
  white-space: nowrap;
}
.cgp-prt-sec .cgp-prt-hero-actions .cgp-prt-btn-frosted {
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.30);
  color: rgba(255,255,255,.90);
}
.cgp-prt-existing-label { display: block; margin-bottom: 7px; font-size: .7rem; color: #C3D3E4; }

.cgp-prt-sec .cgp-prt-hero-scroll {
  position: absolute;
  bottom: 27px;
  left: 48px;
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--prt-f-display);
  font-size: .72rem;
  color: rgba(255,255,255,.66);
}
.cgp-prt-hero-scroll span { font-size: 1.2rem; }
.cgp-prt-sec .cgp-prt-hero-scroll:hover { color: #fff; }

/* ============ STATS (replaces the benefits strip, 1.0.6) ============ */
/* Two research figures, large and light, split by a hairline; a closing line
   and a deliberately small source note. */
.cgp-prt-stats-head { max-width: 760px; margin-bottom: 56px; }
.cgp-prt-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 900px;
  margin: 0 auto;
}
.cgp-prt-stat { padding: 0 48px; text-align: center; }
.cgp-prt-stat + .cgp-prt-stat { border-left: 1px solid #E1E8F1; }
.cgp-prt-sec .cgp-prt-stat-num {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  font-family: var(--prt-f-display);
  font-size: clamp(3.5rem, 6vw, 5.25rem);
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--prt-action);
}
.cgp-prt-stat-pre {
  font-size: .95rem;
  font-weight: 500;
  letter-spacing: 0;
  color: var(--prt-text-soft);
}
.cgp-prt-sec .cgp-prt-stat-text { max-width: 340px; margin: 18px auto 0; font-size: 1rem; line-height: 1.7; }
.cgp-prt-sec .cgp-prt-stats-close {
  margin-top: 56px;
  font-family: var(--prt-f-display);
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.02em;
  text-align: center;
  color: var(--prt-ink);
}
.cgp-prt-sec .cgp-prt-stats-source { margin-top: 12px; font-size: .68rem; line-height: 1.5; text-align: center; color: #6B7A8F; }

/* ============ PARTNER TIERS ============ */
/* Three equal-weight cards. Each header band takes its own palette shade
   (sky / brand blue / slate) at matched lightness; everything else is shared.
   On desktop, subgrid lines up the rows (head, description, benefits,
   "ideal for", price, button) across the three cards. Elsewhere each card is
   a flex column. */
.cgp-prt-sec.cgp-prt-tiers { background: var(--prt-tint); }
.cgp-prt-tiers-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }

.cgp-prt-tier {
  --tier-pad: 28px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #E1E8F1;
  border-radius: var(--prt-r-card);
  background: var(--prt-surface);
  box-shadow: 0 8px 24px rgba(15,34,55,.05);
}
.cgp-prt-tier--sky   { --tier-shade: #E0F0FC; --tier-tile: #D3E8FA; --tier-ink: #2873B0; }
.cgp-prt-tier--blue  { --tier-shade: #E6EDFB; --tier-tile: #D8E4FA; --tier-ink: #1665D8; }
.cgp-prt-tier--slate { --tier-shade: #EAEDF3; --tier-tile: #DFE3EC; --tier-ink: #52637A; }

@supports (grid-template-rows: subgrid) {
  @media (min-width: 801px) {
    .cgp-prt-tiers-grid { grid-template-rows: repeat(6, auto); row-gap: 0; }
    .cgp-prt-tier { display: grid; grid-row: span 6; grid-template-rows: subgrid; row-gap: 0; }
  }
}

/* Header band */
.cgp-prt-tier-head {
  padding: 24px var(--tier-pad);
  border-bottom: 1px solid var(--tier-tile);
  background: var(--tier-shade);
}
.cgp-prt-tier-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 22px;
}
.cgp-prt-tier-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 13px;
  background: var(--tier-tile);
  color: var(--tier-ink);
}
.cgp-prt-tier-icon svg { width: 22px; height: 22px; }
.cgp-prt-tier-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px 4px 4px;
  border-radius: var(--prt-r-pill);
  background: rgba(255,255,255,.72);
  font-family: var(--prt-f-display);
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--tier-ink);
  white-space: nowrap;
}
.cgp-prt-tier-num {
  min-width: 24px;
  padding: 2px 6px;
  border-radius: var(--prt-r-pill);
  background: var(--tier-tile);
  font-weight: 700;
  text-align: center;
}
.cgp-prt-sec .cgp-prt-tier-name { margin-bottom: 8px; font-size: 1.7rem; line-height: 1.2; }
.cgp-prt-sec .cgp-prt-tier-tagline { font-size: 1rem; line-height: 1.5; }

/* Body */
.cgp-prt-sec .cgp-prt-tier-desc { padding: 24px var(--tier-pad) 0; font-size: .88rem; line-height: 1.75; }
.cgp-prt-tier-ideal {
  margin: 0 var(--tier-pad);
  padding: 18px 0;
  border-top: 1px solid var(--prt-border);
}
.cgp-prt-tier-ideal-label {
  display: block;
  font-family: var(--prt-f-display);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--prt-text-soft);
}
.cgp-prt-sec .cgp-prt-tier-ideal p { margin-top: 6px; font-size: .8rem; line-height: 1.6; color: var(--prt-text-soft); }
.cgp-prt-sec .cgp-prt-tier-list {
  display: flex;
  flex-direction: column;
  gap: 13px;
  flex-grow: 1;          /* flex fallback: pushes the button to the card bottom */
  margin: 0;
  padding: 24px var(--tier-pad) 24px;
  list-style: none;
}
.cgp-prt-sec .cgp-prt-tier-list li {
  display: flex;
  gap: 10px;
  margin: 0;
  font-size: .82rem;
  line-height: 1.6;
  color: var(--prt-text);
}
.cgp-prt-tier-list li svg {
  width: 20px;
  height: 20px;
  margin-top: 1px;
  padding: 4px;
  border-radius: 50%;
  background: #E7F0FC;
  color: var(--prt-action);
  stroke-width: 2.6;
}
/* Price: a main line (later a real price) and a supporting line */
.cgp-prt-tier-price {
  margin: 0 var(--tier-pad);
  padding: 18px 0 22px;
  border-top: 1px solid var(--prt-border);
}
.cgp-prt-sec .cgp-prt-tier-price-main {
  font-family: var(--prt-f-display);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: var(--prt-ink);
}
.cgp-prt-sec .cgp-prt-tier-price-sub { margin-top: 4px; font-size: .8rem; line-height: 1.5; color: var(--prt-text-soft); }

.cgp-prt-sec .cgp-prt-tier .cgp-prt-btn {
  margin: 0 var(--tier-pad) var(--tier-pad);
  min-height: 56px;
  padding: 12px;
  font-size: .81rem;
}
.cgp-prt-sec .cgp-prt-tier-note { margin-top: 24px; font-size: .74rem; text-align: center; color: var(--prt-text-soft); }

/* ============ SIGN-UP (collapsed until chosen, 1.1.0) ============ */
/* The page script adds .is-collapsed at load, so without JavaScript the form
   stays visible. A tier button (or arriving with #signup / ?tier=) opens it.
   visibility:hidden, not display:none: the section keeps its real width, so the
   form script still picks the compact captcha on narrow phones, and nothing
   inside can be reached by keyboard or screen readers while collapsed. */
.cgp-prt-sec.cgp-prt-signup { border-bottom: 1px solid var(--prt-border); }
.cgp-prt-sec.cgp-prt-signup.is-collapsed {
  height: 0;
  margin-block-start: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  visibility: hidden;
}
/* The heading takes focus when the form opens; no outline for that. */
.cgp-prt-sec .cgp-prt-title[tabindex="-1"]:focus { outline: none; }

/* ============ PARTNERSHIP IN PRACTICE ============ */
.cgp-prt-confidence-head { max-width: 850px; }
.cgp-prt-confidence-head .cgp-prt-lede { max-width: 710px; }

.cgp-prt-guide-row {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 64px;
  align-items: center;
  margin: 0 0 56px;
}
.cgp-prt-guide-photo { overflow: hidden; border-radius: var(--prt-r-card); }
.cgp-prt-sec .cgp-prt-guide-photo img { display: block; width: 100%; height: auto; }
.cgp-prt-sec .cgp-prt-guide-title { font-size: 1.85rem; line-height: 1.35; }
.cgp-prt-sec .cgp-prt-guide-body { margin: 22px 0 26px; line-height: 1.8; }
.cgp-prt-sec .cgp-prt-guide-copy .cgp-prt-link { font-size: 1rem; }
/* 1.3.0: second row ("For your team"). The top margin collapses with the first
   row's bottom margin, so the gap matches the one above .cgp-prt-outcome. */
.cgp-prt-guide-row + .cgp-prt-guide-row { margin-top: 56px; }
/* Image right, text left; the DOM stays image-first, so it stacks like the first row ≤800px. */
@media (min-width: 801px) {
  .cgp-prt-guide-row.cgp-prt-guide-row--reverse { grid-template-columns: 1fr 1.05fr; }
  .cgp-prt-guide-row--reverse .cgp-prt-guide-photo { order: 2; }
}

/* Coverage section (1.3.0): its own full-width section, white like the base.
   1.3.1: tighter spacing — 48px top (32px ≤800px), no bottom padding, and the
   following section (#partnership) starts at 64px (48px ≤800px). */
.cgp-prt-sec.cgp-prt-coverage-sec { padding: 48px 0 0; }
.cgp-prt-sec.cgp-prt-coverage-sec + .cgp-prt-sec { padding-top: 64px; }

/* Coverage map (1.0.6): an activity map of Greece (partner_coverage_map.webp,
   2400×2082, transparent sea) with HTML place labels at percentage positions.
   Desktop: the map sits right, heading and note in its empty western corners.
   ≤1000px: heading, map, note stacked. ≤640px: only the main places keep labels. */
.cgp-prt-coverage { position: relative; margin: 0; }
.cgp-prt-coverage-head { position: absolute; top: 0; left: 0; z-index: 1; max-width: 360px; }
.cgp-prt-sec .cgp-prt-coverage-title { font-size: 2rem; }
.cgp-prt-coverage-map { position: relative; width: 78%; margin-left: auto; padding-top: 32px; }
.cgp-prt-sec .cgp-prt-coverage-map img.cgp-prt-coverage-img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
}
.cgp-prt-places { position: absolute; inset: 32px 0 0 0; pointer-events: none; }
.cgp-prt-place {
  position: absolute;
  left: var(--x);
  top: var(--y);
  display: flex;
  align-items: center;
  gap: 5px;
  font-family: var(--prt-f-display);
  font-size: 11px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .09em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #3A4B6E;
  text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 4px #fff;
  transform: translate(-3px, -50%);
}
.cgp-prt-place::before {
  content: '';
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #2B3D66;
  box-shadow: 0 0 0 1.5px #fff;
}
.cgp-prt-place.is-l { flex-direction: row-reverse; transform: translate(calc(-100% + 3px), -50%); }
.cgp-prt-place.is-t { flex-direction: column-reverse; gap: 3px; transform: translate(-50%, calc(-100% + 3px)); }
.cgp-prt-place.is-b { flex-direction: column; gap: 3px; transform: translate(-50%, -3px); }
.cgp-prt-place.is-hub { font-size: 13px; font-weight: 600; color: #1F2E52; }
.cgp-prt-place.is-hub::before { width: 8px; height: 8px; }
.cgp-prt-place.is-hub.is-r { transform: translate(-4px, -50%); }
.cgp-prt-place.is-hub.is-l { transform: translate(calc(-100% + 4px), -50%); }
.cgp-prt-sec .cgp-prt-coverage-note {
  /* 1.0.9: plain body text (the section-lede style) at every width;
     was Geologica 1.2rem light with a blue bar above. */
  position: absolute;
  left: 0;
  bottom: 8%;
  max-width: 300px;
  font-family: var(--prt-f-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.65;
  color: var(--prt-text);
}
.cgp-prt-coverage-note strong { font-weight: 700; color: var(--prt-ink); }

.cgp-prt-outcome {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: 490px;
  overflow: hidden;
  border-radius: var(--prt-r-card);
  background: var(--prt-ink);
}
.cgp-prt-sec .cgp-prt-outcome img.cgp-prt-outcome-img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover;
  object-position: 58% center;
}
.cgp-prt-outcome::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(15,34,55,.98) 0%, rgba(15,34,55,.94) 45%, rgba(15,34,55,.62) 72%, rgba(15,34,55,.16) 100%);
}
.cgp-prt-outcome-copy { width: 66%; max-width: 760px; padding: 48px; color: #fff; }
.cgp-prt-sec .cgp-prt-outcome-title { margin: 0 0 32px; font-size: 1.9rem; line-height: 1.35; color: #fff; }
.cgp-prt-outcome-title span { color: #A8D0FC; }
.cgp-prt-outcome-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
.cgp-prt-outcome-point { min-width: 0; }
.cgp-prt-sec .cgp-prt-outcome-point h4 { margin-bottom: 10px; font-size: 1.05rem; color: #fff; }
.cgp-prt-sec .cgp-prt-outcome-point p { font-size: .93rem; line-height: 1.8; color: #DAE5F1; }

/* ============ INSTALLERS (electricians) ============ */
.cgp-prt-sec.cgp-prt-installers { padding: 0 0 var(--prt-section-v); }
.cgp-prt-installers-card {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 36px 40px;
  border: 1px solid #E1E8F1;
  border-radius: var(--prt-r-card);
  background: var(--prt-surface);
}
.cgp-prt-installers-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 15px;
  background: #E0ECFB;
  color: var(--prt-action);
}
.cgp-prt-installers-icon svg { width: 26px; height: 26px; }
.cgp-prt-installers-copy { flex: 1; min-width: 0; }
.cgp-prt-installers-copy .cgp-prt-eyebrow { margin-bottom: 8px; }
.cgp-prt-sec .cgp-prt-installers-title { font-size: 1.45rem; line-height: 1.35; }
.cgp-prt-sec .cgp-prt-installers-copy p { max-width: 640px; margin-top: 10px; font-size: .92rem; }
.cgp-prt-sec .cgp-prt-installers-card .cgp-prt-btn { flex-shrink: 0; }

/* ============ RESPONSIVE ============ */
@media (max-width: 1180px) {
  .cgp-prt-coverage-head,
  .cgp-prt-sec .cgp-prt-coverage-note { position: static; max-width: 600px; }
  .cgp-prt-coverage-head { margin-bottom: 28px; }
  .cgp-prt-coverage-map { width: 100%; max-width: 900px; margin: 0 auto; padding-top: 0; }
  .cgp-prt-places { inset: 0; }
  .cgp-prt-sec .cgp-prt-coverage-note { margin-top: 28px; }
}

@media (max-width: 1100px) {
  .cgp-prt-tiers-grid { column-gap: 16px; }
  .cgp-prt-tier { --tier-pad: 22px; }
  .cgp-prt-sec .cgp-prt-tier-name { font-size: 1.45rem; }
  .cgp-prt-sec .cgp-prt-tier .cgp-prt-btn { font-size: .72rem; gap: 6px; }
}

@media (max-width: 1000px) {
  .cgp-prt-guide-row { gap: 36px; }
  .cgp-prt-sec .cgp-prt-guide-title { font-size: 1.5rem; }
  .cgp-prt-outcome-copy { width: 74%; padding: 36px; }
  .cgp-prt-sec .cgp-prt-outcome-title { font-size: 1.65rem; }
}

@media (max-width: 800px) {
  .cgp-prt-sec { --prt-section-v: 64px; --prt-gutter: 22px; }
  .cgp-prt-sec .cgp-prt-title { font-size: 1.7rem; }

  .cgp-prt-sec.cgp-prt-hero { padding: 140px 0 95px; }
  .cgp-prt-hero-inner { padding: 0 22px; }
  .cgp-prt-sec.cgp-prt-hero img.cgp-prt-hero-photo { object-position: 70% center; }
  .cgp-prt-hero-shade {
    background:
      linear-gradient(90deg, rgba(7,20,35,.94), rgba(10,28,46,.64) 65%, rgba(11,29,45,.34)),
      linear-gradient(0deg, rgba(10,26,41,.8), transparent);
  }
  .cgp-prt-sec .cgp-prt-hero-sub { max-width: 470px; font-size: .95rem; }
  .cgp-prt-sec .cgp-prt-hero-scroll { left: 22px; font-size: .65rem; }
  .cgp-prt-hero-actions { flex-wrap: wrap; gap: 12px; }
  .cgp-prt-sec .cgp-prt-hero-actions .cgp-prt-btn { padding: 13px 20px; font-size: 14px; }
  .cgp-prt-pill { font-size: .6rem; }
  /* 1.3.2: bottom-aligned with a bottom-up shade, as the business hero. The
     95px bottom padding above (larger than 56px) is kept. */
  .cgp-prt-sec.cgp-prt-hero { align-items: flex-end; }
  .cgp-prt-sec.cgp-prt-hero .cgp-prt-hero-shade { background: linear-gradient(to top, rgba(8,18,32,.97) 0%, rgba(8,18,32,.88) 45%, rgba(8,18,32,.3) 72%, rgba(8,18,32,0) 88%) !important; }

  .cgp-prt-stats-head { margin-bottom: 40px; }
  .cgp-prt-stats-grid { grid-template-columns: 1fr; }
  .cgp-prt-stat { padding: 0; }
  .cgp-prt-stat + .cgp-prt-stat { margin-top: 32px; padding-top: 32px; border-left: 0; border-top: 1px solid #E1E8F1; }
  .cgp-prt-sec .cgp-prt-stats-close { margin-top: 40px; font-size: 1.2rem; }
  .cgp-prt-sec .cgp-prt-coverage-title { font-size: 1.7rem; }
  .cgp-prt-sec.cgp-prt-coverage-sec { padding: 32px 0 0; }
  .cgp-prt-sec.cgp-prt-coverage-sec + .cgp-prt-sec { padding-top: 48px; }

  .cgp-prt-tiers-grid { grid-template-columns: 1fr; }
  .cgp-prt-tier { --tier-pad: 24px; }
  .cgp-prt-sec .cgp-prt-tier-name { font-size: 1.7rem; }
  .cgp-prt-sec .cgp-prt-tier .cgp-prt-btn { font-size: .85rem; }
  .cgp-prt-tier-tagline br { display: none; }
  .cgp-prt-sec .cgp-prt-tier-list { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 22px; }

  .cgp-prt-guide-row { grid-template-columns: 1fr; gap: 28px; margin-bottom: 36px; }
  .cgp-prt-guide-row + .cgp-prt-guide-row { margin-top: 36px; }
  .cgp-prt-guide-copy { max-width: 610px; }
  .cgp-prt-sec .cgp-prt-guide-title { font-size: 1.6rem; }
  .cgp-prt-outcome { min-height: 440px; }
  .cgp-prt-outcome-copy { width: 82%; padding: 30px; }
  .cgp-prt-outcome-points { gap: 24px 28px; }
  .cgp-prt-sec .cgp-prt-outcome-title { font-size: 1.5rem; }
  .cgp-prt-installers-card { flex-direction: column; align-items: flex-start; gap: 20px; padding: 28px 24px; }
  .cgp-prt-sec .cgp-prt-installers-title { font-size: 1.3rem; }
}

@media (max-width: 560px) {
  .cgp-prt-outcome { display: block; min-height: 0; padding-top: 175px; }
  .cgp-prt-sec .cgp-prt-outcome img.cgp-prt-outcome-img { height: 280px !important; object-position: center 35%; }
  .cgp-prt-outcome::before {
    background: linear-gradient(to bottom, rgba(15,34,55,.06) 0px, rgba(15,34,55,.25) 135px, rgba(15,34,55,.9) 230px, #0F2237 280px);
  }
  .cgp-prt-outcome-copy { width: 100%; max-width: none; padding: 26px 24px 30px; }
  .cgp-prt-sec .cgp-prt-outcome-title { margin-bottom: 26px; font-size: 1.45rem; }
  .cgp-prt-sec .cgp-prt-outcome-point p { font-size: .88rem; }
  .cgp-prt-sec .cgp-prt-outcome-point h4 { font-size: 1rem; }
  .cgp-prt-outcome-points { grid-template-columns: 1fr; gap: 22px; }
}

@media (max-width: 640px) {
  .cgp-prt-place.is-minor { display: none; }
  .cgp-prt-place { font-size: 10px; }
  .cgp-prt-place.is-hub { font-size: 11px; }
}

@media (max-width: 420px) {
  .cgp-prt-sec.cgp-prt-hero { padding-top: 125px; }
  .cgp-prt-sec .cgp-prt-hero-title { font-size: 1.85rem; }
  .cgp-prt-pill { margin-bottom: 22px; }
  .cgp-prt-hero-actions { flex-direction: column; align-items: stretch; width: 100%; max-width: 310px; margin-top: 26px; }
  .cgp-prt-existing { margin-top: 4px; }
  .cgp-prt-sec .cgp-prt-existing .cgp-prt-btn { width: 100%; }
  .cgp-prt-sec .cgp-prt-hero-scroll { display: none; }
  .cgp-prt-sec .cgp-prt-installers-card .cgp-prt-btn { width: 100%; }
  .cgp-prt-sec .cgp-prt-tier-list { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .cgp-prt-sec *, .cgp-prt-sec *::before, .cgp-prt-sec *::after { transition: none !important; animation: none !important; }
}
