/*
 * Component skin.
 *
 * Loaded after elementor-frontend on purpose: Elementor prints its container CSS
 * after the theme, so layout primitives are restated here to win on load order
 * rather than by piling on selectors or !important.
 */

/* ---------------------------------------------------------- layout primitives */
.pg-wrap {
  width: 100%;
  max-width: var(--pg-max);
  margin-inline: auto;
  padding-inline: var(--pg-gutter);
}
.pg-section {
  padding-block: var(--pg-section-y);
  background: var(--pg-white);
  color: var(--pg-ink);
}
.pg-section--tight { padding-block: calc(var(--pg-section-y) * 0.6); }
.pg-section--flush { padding-block: 0; }
.pg-section--tint { background: var(--pg-tint); }
.pg-section--tint-soft { background: var(--pg-tint-soft); }
.pg-section--mint { background: var(--pg-mint-tint); }
.pg-section--navy { background: var(--pg-navy-soft); color: var(--pg-on-navy); }
.pg-section--navy-deep { background: var(--pg-navy); color: var(--pg-on-navy); }
.pg-section--navy :is(h1, h2, h3, h4), .pg-section--navy-deep :is(h1, h2, h3, h4) { color: var(--pg-on-navy); }
.pg-section--navy .pg-text, .pg-section--navy .pg-lead, .pg-section--navy .pg-compact,
.pg-section--navy-deep .pg-text, .pg-section--navy-deep .pg-lead, .pg-section--navy-deep .pg-compact { color: var(--pg-on-navy-soft); }

/* Heading row: title left, supporting text or actions right. Prevents the lone
   heading with an empty half that the client flagged on the source site. */
.pg-head {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.pg-head__main { max-width: 38rem; }
.pg-head__aside { max-width: 30rem; }
@media (min-width: 768px) {
  .pg-head { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 3rem; }
}

.pg-split { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) {
  .pg-split { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3.5rem; }
  .pg-split--4-8 > :first-child { grid-column: span 4; }
  .pg-split--4-8 > :last-child { grid-column: span 8; }
  .pg-split--5-7 > :first-child { grid-column: span 5; }
  .pg-split--5-7 > :last-child { grid-column: span 7; }
  .pg-split--7-5 > :first-child { grid-column: span 7; }
  .pg-split--7-5 > :last-child { grid-column: span 5; }
  .pg-split--6-6 > * { grid-column: span 6; }
  .pg-split--center { align-items: center; }
  .pg-split--stretch { align-items: stretch; }
  .pg-sticky { position: sticky; top: 7rem; align-self: start; }
}

/* ------------------------------------------------------------------ headings */
.pg-eyebrow {
  display: block;
  font-size: var(--pg-compact);
  font-weight: 600;
  color: var(--pg-green);
  margin-bottom: 0.5rem;
}
.pg-section--navy .pg-eyebrow, .pg-section--navy-deep .pg-eyebrow { color: var(--pg-mint); }

.pg-headline { display: block; }
.pg-line { display: block; overflow: hidden; }
.pg-line__i { display: block; }
.pg-headline--display { font-size: var(--pg-display); line-height: 0.98; letter-spacing: -0.04em; }
.pg-headline--xl { font-size: var(--pg-h2); line-height: 1.02; }
.pg-headline--lg { font-size: var(--pg-h3); line-height: 1.1; }
.pg-headline--md { font-size: var(--pg-h4); line-height: 1.25; letter-spacing: -0.01em; }

/* ------------------------------------------------------------------- buttons */
.pg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 3rem;
  padding: 0.75rem 1.75rem;
  border: 1px solid transparent;
  border-radius: var(--pg-r-pill);
  font-size: var(--pg-compact);
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--pg-dur-fast) var(--pg-ease), color var(--pg-dur-fast) var(--pg-ease),
              border-color var(--pg-dur-fast) var(--pg-ease), transform var(--pg-dur-fast) var(--pg-ease);
}
.pg-btn:hover { transform: translateY(-1px); }
.pg-btn--lg { min-height: 3.25rem; padding: 0.875rem 2rem; font-size: var(--pg-body); }
.pg-btn--sm { min-height: 2.5rem; padding: 0.5rem 1.25rem; font-size: var(--pg-small); }
.pg-btn--primary { background: var(--pg-green); color: #fff; }
.pg-btn--primary:hover { background: var(--pg-green-hover); }
.pg-btn--navy { background: var(--pg-navy); color: #fff; }
.pg-btn--navy:hover { background: var(--pg-navy-soft); }
.pg-btn--tonal { background: #fff; color: var(--pg-ink); border-color: var(--pg-line-strong); }
.pg-btn--tonal:hover { border-color: var(--pg-green); color: var(--pg-green); }
.pg-btn--on-navy { background: var(--pg-mint); color: var(--pg-navy); }
.pg-btn--on-navy:hover { background: #fff; }
.pg-btn--outline { background: transparent; color: var(--pg-ink); border-color: var(--pg-line-strong); }
.pg-btn--link, .pg-btn--link-light {
  min-height: 0; padding: 0; background: none; border: 0;
  color: var(--pg-green); text-decoration: none;
}
.pg-btn--link-light { color: var(--pg-mint); }
.pg-btn--link:hover { color: var(--pg-green-press); transform: none; }
.pg-btn--link-light:hover { color: #fff; transform: none; }
.pg-btn__icon { width: 1em; height: 1em; flex: none; }

.pg-btn-row { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
/* Full-width stack on phones so buttons never sit ragged at natural width. */
@media (max-width: 519px) {
  .pg-btn-row { flex-direction: column; align-items: stretch; }
  .pg-btn-row .pg-btn { width: 100%; }
  .pg-btn-row .pg-btn--link, .pg-btn-row .pg-btn--link-light { width: auto; align-self: flex-start; }
}

/* --------------------------------------------------------- chips, lists, tiles */
.pg-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pg-chip {
  display: inline-flex; align-items: center; gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  border-radius: var(--pg-r-pill);
  background: var(--pg-tint);
  color: var(--pg-ink);
  font-size: var(--pg-tiny);
  font-weight: 600;
  text-decoration: none;
}
.pg-chip--white { background: #fff; border: 1px solid var(--pg-line); }
.pg-chip--mint { background: var(--pg-mint-tint); color: var(--pg-green-press); }
.pg-chip--rhythm { background: color-mix(in srgb, var(--pg-mint) 45%, transparent); }
.pg-chip--sample { background: color-mix(in srgb, var(--pg-amber) 12%, transparent); border: 1px solid color-mix(in srgb, var(--pg-amber) 40%, transparent); color: var(--pg-ink-soft); font-weight: 500; }
.pg-chip--on-navy { background: rgba(255,255,255,0.08); border: 1px solid var(--pg-navy-line); color: #fff; }
a.pg-chip:hover { border-color: var(--pg-green); color: var(--pg-green); }

.pg-check { display: grid; gap: 0.625rem; }
.pg-check li { display: flex; gap: 0.625rem; align-items: flex-start; font-size: var(--pg-compact); color: var(--pg-ink); }
.pg-check__mark { flex: none; width: 1.25rem; height: 1.25rem; margin-top: 0.15em; color: var(--pg-green); }
.pg-check--filled .pg-check__mark {
  display: grid; place-items: center;
  background: var(--pg-green); color: #fff; border-radius: 50%;
}
.pg-section--navy .pg-check li, .pg-section--navy-deep .pg-check li { color: var(--pg-on-navy-soft); }
.pg-section--navy .pg-check__mark, .pg-section--navy-deep .pg-check__mark { color: var(--pg-mint); }

.pg-icon {
  display: grid; place-items: center; flex: none;
  width: 2.75rem; height: 2.75rem;
  border-radius: var(--pg-r-md);
  background: color-mix(in srgb, var(--pg-mint) 45%, transparent);
  color: var(--pg-green);
}
.pg-icon svg { width: 1.375rem; height: 1.375rem; }
.pg-icon--solid { background: var(--pg-green); color: #fff; }
.pg-icon--navy { background: var(--pg-navy-soft); color: var(--pg-mint); }
.pg-icon--on-navy { background: rgba(133, 248, 196, 0.15); color: var(--pg-mint); }
.pg-icon--tint { background: var(--pg-tint); color: var(--pg-green); }
.pg-icon--sm { width: 2.5rem; height: 2.5rem; }
.pg-icon--sm svg { width: 1.25rem; height: 1.25rem; }

.pg-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.25rem; height: 2.25rem;
  border-radius: 50%;
  background: var(--pg-green); color: #fff;
  font-size: var(--pg-compact); font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.pg-num--mint { background: var(--pg-mint); color: var(--pg-navy); }

/* --------------------------------------------------------------------- cards */
.pg-cards { display: grid; gap: 1rem; }
@media (min-width: 640px) { .pg-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .pg-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pg-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* A last card stretches instead of leaving a hole in the final row. */
.pg-cards > .pg-fill-2 { grid-column: span 2; }
@media (min-width: 1024px) {
  .pg-cards--3 > .pg-fill-lg-2 { grid-column: span 2; }
  .pg-cards--3 > .pg-fill-lg-3 { grid-column: span 3; }
  .pg-cards--3 > .pg-fill-lg-1, .pg-cards--4 > .pg-fill-lg-1 { grid-column: span 1; }
  .pg-cards--4 > .pg-fill-lg-2 { grid-column: span 2; }
  .pg-cards--4 > .pg-fill-lg-4 { grid-column: span 4; }
}

.pg-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.5rem;
  border: 1px solid var(--pg-line);
  border-radius: var(--pg-r-xl);
  background: var(--pg-white);
  color: var(--pg-ink);
  text-decoration: none;
  overflow: hidden;
}
.pg-card--tint { background: var(--pg-tint); }
.pg-card--shadow { box-shadow: var(--pg-sh-sm); }
.pg-card--navy { background: var(--pg-navy-soft); border-color: rgba(255,255,255,0.1); color: var(--pg-on-navy); }
.pg-card--navy .pg-card__text { color: var(--pg-on-navy-soft); }
.pg-card--row { flex-direction: row; gap: 1rem; align-items: flex-start; }
.pg-card__title { font-size: 1.0625rem; font-weight: 600; color: inherit; }
.pg-card__title--lg { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.015em; }
.pg-card__text { margin-top: 0.5rem; font-size: var(--pg-compact); line-height: 1.6; color: var(--pg-ink-soft); }
.pg-card__body { flex: 1 1 auto; min-width: 0; }
.pg-card__foot { margin-top: auto; padding-top: 1.25rem; }
.pg-card__num { font-size: var(--pg-tiny); font-weight: 600; color: var(--pg-ink-soft); font-variant-numeric: tabular-nums; }
.pg-card__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.pg-card__link { display: inline-flex; align-items: center; gap: 0.375rem; font-size: var(--pg-compact); font-weight: 600; color: var(--pg-green); }
.pg-card--navy .pg-card__link { color: var(--pg-mint); }

a.pg-card { transition: border-color var(--pg-dur-fast) var(--pg-ease), box-shadow var(--pg-dur-fast) var(--pg-ease), transform var(--pg-dur-fast) var(--pg-ease), background-color var(--pg-dur-fast) var(--pg-ease); }
a.pg-card::before {
  content: ""; position: absolute; inset-inline: 0; top: 0; height: 3px;
  background: var(--pg-green); opacity: 0; transition: opacity var(--pg-dur-fast) var(--pg-ease);
}
a.pg-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--pg-green) 50%, transparent); box-shadow: var(--pg-sh-md); }
a.pg-card:hover::before { opacity: 1; }
a.pg-card--tint:hover { background: var(--pg-white); }
a.pg-card .pg-card__link svg { transition: transform var(--pg-dur-fast) var(--pg-ease); }
a.pg-card:hover .pg-card__link svg { transform: translateX(2px); }

/* Media card: image on top, body below */
.pg-card--media { padding: 0; }
.pg-card--media .pg-card__media { aspect-ratio: 16 / 10; overflow: hidden; }
.pg-card--media .pg-card__media img { width: 100%; height: 100%; object-fit: cover; }
.pg-card--media .pg-card__inner { display: flex; flex-direction: column; flex: 1 1 auto; padding: 1.75rem; }

/* --------------------------------------------------------------------- facts */
.pg-facts { display: grid; gap: 2rem; }
@media (min-width: 640px) { .pg-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pg-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; } }
.pg-fact { border-left: 2px solid color-mix(in srgb, var(--pg-mint) 60%, transparent); padding-left: 1.25rem; }
.pg-fact__value { font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 700; line-height: 1; letter-spacing: -0.04em; color: #fff; font-variant-numeric: tabular-nums; }
.pg-fact__label { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.5rem; font-size: 1.0625rem; font-weight: 600; color: #fff; }
.pg-fact__label svg { width: 1.125rem; height: 1.125rem; color: var(--pg-mint); flex: none; }
.pg-fact__note { margin-top: 0.25rem; font-size: var(--pg-compact); line-height: 1.55; color: var(--pg-on-navy-soft); }

/* --------------------------------------------------------------- trust strip */
.pg-trust { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1.5rem; }
@media (min-width: 640px) { .pg-trust { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pg-trust { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.pg-trust__item { display: flex; gap: 0.75rem; align-items: flex-start; }
.pg-trust__title { display: block; font-size: var(--pg-compact); font-weight: 600; color: var(--pg-ink); line-height: 1.3; }
.pg-trust__text { display: block; margin-top: 0.15rem; font-size: var(--pg-tiny); line-height: 1.4; color: var(--pg-ink-soft); }

/* --------------------------------------------------------------------- media */
.pg-media { position: relative; overflow: hidden; border-radius: var(--pg-r-2xl); }
.pg-media img { width: 100%; height: 100%; object-fit: cover; }
.pg-media--portrait { aspect-ratio: 4 / 5; }
.pg-media--landscape { aspect-ratio: 4 / 3; }
.pg-media--wide { aspect-ratio: 16 / 9; }
.pg-media--fill { height: 100%; min-height: 22rem; }
.pg-media__caption {
  position: absolute; inset-inline: 0; bottom: 0;
  padding: 3rem 1.25rem 1rem;
  background: linear-gradient(180deg, rgba(0,18,39,0) 0%, rgba(0,18,39,0.78) 100%);
  color: #fff; font-size: var(--pg-compact); font-weight: 500;
}
.pg-media__badge {
  position: absolute; left: 1.25rem; top: 1.25rem;
  padding: 0.5rem 1rem; border-radius: var(--pg-r-pill);
  background: var(--pg-navy-soft); color: #fff;
  font-size: var(--pg-tiny); font-weight: 600;
}
.pg-media__note {
  position: absolute; inset-inline: 1rem; bottom: 1rem;
  padding: 1rem; border-radius: var(--pg-r-lg);
  background: rgba(255,255,255,0.92); backdrop-filter: blur(6px);
}
.pg-media__note strong { display: block; font-size: var(--pg-compact); color: var(--pg-ink); }
.pg-media__note span { font-size: var(--pg-small); color: var(--pg-ink-soft); }

/* Placeholder plate for image slots that have no photo yet. */
.pg-media--empty {
  display: grid; place-items: center; padding: 2rem; text-align: center;
  background: repeating-linear-gradient(135deg, var(--pg-tint) 0 12px, #e6edf9 12px 24px);
  color: var(--pg-ink-soft); font-size: var(--pg-tiny);
}

/* Mosaic */
.pg-mosaic { display: grid; gap: 1rem; }
@media (min-width: 640px) { .pg-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  /* Fixed row height, not 1fr: a cell that spans two rows would otherwise drive
     its own width through aspect-ratio and break out of the grid. */
  .pg-mosaic { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 15rem; }
  .pg-mosaic > .pg-mosaic__lead { grid-column: span 2; grid-row: span 2; }
  .pg-mosaic > .pg-mosaic__wide { grid-column: span 2; }
}
.pg-mosaic > * { min-width: 0; }
.pg-mosaic .pg-media { height: 100%; width: 100%; aspect-ratio: auto; }
.pg-mosaic .pg-media img { height: 100%; width: 100%; object-fit: cover; }
@media (max-width: 1023px) { .pg-mosaic .pg-media { aspect-ratio: 4 / 3; } }
/* Grid and flex children need an explicit min-width or wide content (tables,
   long words) pushes the track past the viewport. */
.pg-split > *, .pg-cards > *, .pg-facts > *, .pg-process__list > * { min-width: 0; }

/* --------------------------------------------------------------------- table */
/* Contained so a wide table can never widen the layout viewport on phones. */
.pg-table-scroll { overflow-x: auto; max-width: 100%; contain: layout paint; -webkit-overflow-scrolling: touch; }
.pg-table-scroll > * { min-width: 34rem; }
.pg-table { font-size: var(--pg-compact); }
.pg-table caption { text-align: left; padding-bottom: 0.75rem; font-size: var(--pg-tiny); color: var(--pg-ink-soft); }
.pg-table thead th { background: var(--pg-navy-soft); color: #fff; font-weight: 600; text-align: left; padding: 0.75rem 1rem; }
.pg-table thead th:first-child { border-top-left-radius: var(--pg-r-sm); }
.pg-table thead th:last-child { border-top-right-radius: var(--pg-r-sm); }
.pg-table th[scope="row"] { font-weight: 400; text-align: left; color: var(--pg-ink); }
.pg-table tbody tr { border-top: 1px solid var(--pg-line); }
.pg-table tbody tr:nth-child(even) { background: var(--pg-tint-soft); }
.pg-table td, .pg-table th { padding: 0.75rem 1rem; vertical-align: top; }
.pg-table td.pg-is-day { text-align: center; width: 3rem; color: var(--pg-green); }
.pg-table__note { margin-top: 0.75rem; font-size: var(--pg-tiny); color: var(--pg-ink-soft); }
.pg-table-card { border: 1px solid var(--pg-line); border-radius: var(--pg-r-xl); background: #fff; padding: 0.75rem; box-shadow: var(--pg-sh-md); }
@media (min-width: 640px) { .pg-table-card { padding: 1.25rem; } }

/* Definition rows (drive times, logistics) */
.pg-rows { border: 1px solid var(--pg-line); border-radius: var(--pg-r-xl); background: #fff; padding-inline: 1.25rem; }
.pg-rows > div, .pg-rows > li { display: flex; flex-direction: column; gap: 0.15rem; padding-block: 0.875rem; }
.pg-rows > * + * { border-top: 1px solid var(--pg-line); }
.pg-rows dt, .pg-rows .pg-rows__label { font-size: var(--pg-compact); color: var(--pg-ink-soft); }
.pg-rows dd, .pg-rows .pg-rows__value { font-weight: 600; color: var(--pg-ink); font-variant-numeric: tabular-nums; margin: 0; }
@media (min-width: 640px) {
  .pg-rows > div, .pg-rows > li { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 1rem; }
  .pg-rows dd, .pg-rows .pg-rows__value { text-align: right; }
}
.pg-rows--links a { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; text-decoration: none; font-weight: 600; color: var(--pg-ink); }
.pg-rows--links a:hover { color: var(--pg-green); }

/* ----------------------------------------------------------------------- faq */
.pg-faq { border: 1px solid var(--pg-line); border-radius: var(--pg-r-xl); background: #fff; padding-inline: 1.5rem; }
.pg-faq__item + .pg-faq__item { border-top: 1px solid var(--pg-line); }
.pg-faq__q {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem;
  padding-block: 1.25rem; cursor: pointer; list-style: none;
}
.pg-faq__q::-webkit-details-marker { display: none; }
.pg-faq__q h3 { font-size: 1.0625rem; font-weight: 600; line-height: 1.4; letter-spacing: -0.01em; }
.pg-faq__sign {
  flex: none; display: grid; place-items: center;
  width: 1.75rem; height: 1.75rem; margin-top: 0.1em;
  border: 1px solid var(--pg-line-strong); border-radius: 50%;
  color: var(--pg-green);
  transition: transform var(--pg-dur) var(--pg-ease), background-color var(--pg-dur-fast) var(--pg-ease);
}
.pg-faq__item[open] .pg-faq__sign { transform: rotate(45deg); background: var(--pg-mint-tint); }
.pg-faq__a { padding: 0 3rem 1.5rem 0; font-size: var(--pg-body); line-height: 1.65; color: var(--pg-ink-soft); }
@media (prefers-reduced-motion: no-preference) {
  .pg-faq__item[open] .pg-faq__a { animation: pg-fade-down var(--pg-dur) var(--pg-ease) both; }
}
@keyframes pg-fade-down { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* ----------------------------------------------------------------- crumbs */
.pg-crumbs { font-size: var(--pg-tiny); color: var(--pg-ink-soft); }
.pg-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.pg-crumbs li + li::before { content: "›"; margin-right: 0.5rem; color: var(--pg-outline, #74777e); }
.pg-crumbs a { text-decoration: none; }
.pg-crumbs a:hover { color: var(--pg-green); }
.pg-crumbs [aria-current] { color: var(--pg-ink); font-weight: 600; }
.pg-crumbs--light, .pg-crumbs--light [aria-current] { color: var(--pg-on-navy-soft); }
.pg-crumbs--light [aria-current] { color: #fff; }

/* ---------------------------------------------------------------------- map */
.pg-map { width: 100%; height: auto; }
.pg-map__line { stroke: var(--pg-navy-soft); stroke-width: 0.4; opacity: 0.45; }
.pg-map__line--dashed { stroke-dasharray: 1.5 1.5; opacity: 0.3; }
.pg-map__dot { fill: var(--pg-navy-soft); }
.pg-map__dot--far { fill: #98a6bb; }
.pg-map__hq { fill: var(--pg-navy); }
.pg-map__ring { fill: none; stroke: var(--pg-green); stroke-width: 1.1; }
.pg-map__label { font-size: 3.1px; font-weight: 700; fill: var(--pg-ink); }
.pg-map__label--far { font-size: 2.5px; font-weight: 500; fill: var(--pg-ink-soft); }
.pg-map__sub { font-size: 2.2px; font-weight: 500; fill: var(--pg-ink-soft); }
.pg-map__legend { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; margin-top: 0.75rem; font-size: 0.75rem; color: var(--pg-ink-soft); }
.pg-map__legend span { display: inline-flex; align-items: center; gap: 0.375rem; }
.pg-map__key { width: 0.625rem; height: 0.625rem; border-radius: 50%; background: var(--pg-navy-soft); }
.pg-map__key--hq { background: transparent; border: 2px solid var(--pg-green); }
.pg-map__key--far { width: 0.375rem; height: 0.375rem; background: #98a6bb; }

/* ------------------------------------------------------------------- header */
.pg-header {
  position: fixed; inset-inline: 0; top: 0; z-index: 100;
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid transparent;
  transition: border-color var(--pg-dur) var(--pg-ease), background-color var(--pg-dur) var(--pg-ease);
}
.pg-header.is-scrolled { border-bottom-color: var(--pg-line); box-shadow: 0 1px 8px rgba(0,0,0,0.04); }
/* Room for the fixed header. Never inside wp-admin, where this would move the
   editor chrome instead of page content. */
body:not(.wp-admin) { padding-top: 4.5rem; }
@media (min-width: 1024px) { body:not(.wp-admin) { padding-top: 5rem; } }
.pg-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 4.5rem; }
@media (min-width: 1024px) { .pg-header__inner { min-height: 5rem; } }

.pg-logo { display: inline-flex; align-items: baseline; gap: 0.5rem; text-decoration: none; }
.pg-logo__name { font-size: 1.25rem; font-weight: 800; letter-spacing: -0.03em; color: var(--pg-ink); }
.pg-logo__accent { color: var(--pg-green); }
.pg-logo__sub { font-size: var(--pg-tiny); color: var(--pg-ink-soft); }
@media (max-width: 400px) { .pg-logo__sub { display: none; } }

.pg-nav { display: none; }
@media (min-width: 1024px) { .pg-nav { display: block; } }
.pg-nav__list { display: flex; align-items: center; gap: 0.25rem; }
.pg-nav__list li { position: relative; }
.pg-nav__list a {
  display: inline-flex; align-items: center; gap: 0.375rem;
  padding: 0.5rem 0.75rem; border-radius: var(--pg-r-pill);
  font-size: var(--pg-compact); font-weight: 600; color: var(--pg-ink); text-decoration: none;
  transition: background-color var(--pg-dur-fast) var(--pg-ease), color var(--pg-dur-fast) var(--pg-ease);
}
.pg-nav__list a:hover, .pg-nav__list .current-menu-item > a, .pg-nav__list .current-menu-ancestor > a { background: var(--pg-tint); color: var(--pg-green); }
.pg-nav__list .menu-item-has-children > a::after {
  content: ""; width: 0.5rem; height: 0.5rem; margin-left: 0.125rem;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}
/* Sub-menu: no clip-path here, a mask would also clip any nested flyout. */
.pg-nav__list .sub-menu {
  position: absolute; left: 0; top: calc(100% + 0.5rem);
  min-width: 16rem; padding: 0.5rem;
  border: 1px solid var(--pg-line); border-radius: var(--pg-r-lg);
  background: #fff; box-shadow: var(--pg-sh-lg);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity var(--pg-dur-fast) var(--pg-ease), transform var(--pg-dur-fast) var(--pg-ease), visibility var(--pg-dur-fast);
}
.pg-nav__list li:hover > .sub-menu, .pg-nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.pg-nav__list .sub-menu a { display: flex; width: 100%; padding: 0.5rem 0.75rem; font-weight: 500; }

.pg-header__actions { display: flex; align-items: center; gap: 0.75rem; }
.pg-header__phone { display: none; font-weight: 700; color: var(--pg-ink); text-decoration: none; }
@media (min-width: 768px) { .pg-header__phone { display: inline-flex; align-items: center; gap: 0.375rem; } }
.pg-header__phone:hover { color: var(--pg-green); }
.pg-header__phone svg { width: 1rem; height: 1rem; color: var(--pg-green); }
.pg-icon-btn {
  display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem;
  border: 1px solid var(--pg-line); border-radius: 50%; background: #fff; color: var(--pg-ink); cursor: pointer;
}
@media (min-width: 768px) { .pg-icon-btn--phone { display: none; } }
.pg-burger { display: inline-grid; }
@media (min-width: 1024px) { .pg-burger { display: none; } }

/* Mobile panel: numbered rows, current page marked, sub-items nested. */
.pg-panel {
  position: fixed; inset: 0; z-index: 99;
  display: flex; flex-direction: column;
  padding: 5.5rem var(--pg-gutter) 2rem;
  background: #fff;
  overflow-y: auto; overscroll-behavior: contain;
}
.pg-panel[hidden] { display: none !important; }
.pg-panel__list { display: block; }
.pg-panel__list > li { border-bottom: 1px solid var(--pg-line); }
.pg-panel__list > li > a {
  display: flex; align-items: baseline; gap: 1rem;
  padding: 1.125rem 0;
  font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; color: var(--pg-ink); text-decoration: none;
}
.pg-panel__list > li > a::before {
  content: counter(pg-item, decimal-leading-zero);
  font-size: var(--pg-tiny); font-weight: 700; color: var(--pg-green); font-variant-numeric: tabular-nums;
}
.pg-panel__list { counter-reset: pg-item; }
.pg-panel__list > li { counter-increment: pg-item; }
.pg-panel__list .current-menu-item > a, .pg-panel__list .current-menu-ancestor > a { color: var(--pg-green); }
.pg-panel__list .current-menu-item > a::after { content: "•"; margin-left: auto; color: var(--pg-green); }
.pg-panel__list .sub-menu { padding: 0 0 1rem 2.25rem; display: grid; gap: 0.25rem; }
.pg-panel__list .sub-menu a { font-size: var(--pg-compact); font-weight: 500; color: var(--pg-ink-soft); text-decoration: none; }
.pg-panel__list .sub-menu a:hover { color: var(--pg-green); }
.pg-panel__foot { margin-top: auto; padding-top: 2rem; display: grid; gap: 0.75rem; }
body.pg-menu-open { overflow: hidden; }

/* ------------------------------------------------------------------- footer */
.pg-footer { background: var(--pg-tint-soft); border-top: 1px solid var(--pg-line); padding-block: 3.5rem 2rem; }
.pg-footer__grid { display: grid; gap: 2.5rem; }
@media (min-width: 640px) { .pg-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pg-footer__grid { grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; } }
.pg-footer__text, .pg-footer__address { margin-top: 1rem; font-size: var(--pg-compact); line-height: 1.7; color: var(--pg-ink-soft); }
.pg-footer__address a { text-decoration: none; font-weight: 600; color: var(--pg-ink); }
.pg-footer__address a:hover { color: var(--pg-green); }
.pg-footer__title { font-size: var(--pg-compact); font-weight: 700; color: var(--pg-ink); margin-bottom: 0.75rem; }
.pg-footer__list { display: grid; gap: 0.5rem; }
.pg-footer__list a { font-size: var(--pg-compact); color: var(--pg-ink-soft); text-decoration: none; }
.pg-footer__list a:hover { color: var(--pg-green); }
.pg-footer__base {
  display: flex; flex-direction: column; gap: 0.5rem;
  margin-top: 2.5rem; padding-top: 1.5rem;
  border-top: 1px solid var(--pg-line);
  font-size: var(--pg-tiny); color: var(--pg-ink-soft);
}
@media (min-width: 768px) { .pg-footer__base { flex-direction: row; justify-content: space-between; } }

/* ---------------------------------------------------------------------- hero */
.pg-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: 3.5rem 4rem;
  background:
    radial-gradient(70% 60% at 78% 45%, #c9dcff 0%, rgba(201, 220, 255, 0) 70%),
    radial-gradient(50% 45% at 15% 95%, #c8f5e2 0%, rgba(200, 245, 226, 0) 70%),
    linear-gradient(135deg, #ffffff 0%, var(--pg-tint) 60%, #e3ecfb 100%);
}
@media (min-width: 1024px) { .pg-hero { padding-block: 5rem 6rem; } }
/* Two drifting light fields replace the WebGL layer of the source site: the same
   moving colour for ~1 KB, compositor-only, and off when motion is reduced. */
.pg-hero::before, .pg-hero::after {
  content: ""; position: absolute; z-index: -1; border-radius: 50%;
  filter: blur(60px); opacity: 0.55; pointer-events: none;
}
.pg-hero::before { width: 46rem; height: 46rem; right: -8rem; top: -12rem; background: radial-gradient(circle, #a3c2fa 0%, rgba(163,194,250,0) 68%); }
.pg-hero::after { width: 34rem; height: 34rem; left: -10rem; bottom: -14rem; background: radial-gradient(circle, #8fedc9 0%, rgba(143,237,201,0) 68%); }
@media (prefers-reduced-motion: no-preference) {
  .pg-hero::before { animation: pg-drift-a 26s var(--pg-ease) infinite alternate; }
  .pg-hero::after { animation: pg-drift-b 32s var(--pg-ease) infinite alternate; }
}
@keyframes pg-drift-a { from { transform: translate3d(0,0,0) scale(1); } to { transform: translate3d(-4rem, 3rem, 0) scale(1.12); } }
@keyframes pg-drift-b { from { transform: translate3d(0,0,0) scale(1); } to { transform: translate3d(3rem, -2.5rem, 0) scale(1.08); } }
/* Fine grid, the same barely-there texture the shader drew. */
.pg-hero__grid {
  position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0.5;
  background-image: linear-gradient(rgba(0,18,39,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(0,18,39,0.035) 1px, transparent 1px);
  background-size: 4rem 4rem;
  mask-image: radial-gradient(80% 70% at 50% 40%, #000 40%, transparent 100%);
}
.pg-hero__inner { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) {
  .pg-hero__inner { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2.5rem; }
  .pg-hero__copy { grid-column: span 7; }
  .pg-hero__aside { grid-column: span 5; }
}
.pg-hero__kicker { font-size: var(--pg-compact); color: var(--pg-ink-soft); }
.pg-hero__lead { margin-top: 1.5rem; max-width: 34rem; font-size: 1.125rem; line-height: 1.6; color: var(--pg-ink-soft); }
.pg-hero__meta { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--pg-line); font-size: var(--pg-tiny); color: var(--pg-ink-soft); max-width: 34rem; }
.pg-hero__phone {
  display: inline-flex; align-items: center; gap: 0.5rem;
  min-height: 3.25rem; padding: 0.75rem 1.75rem;
  border: 1px solid var(--pg-line-strong); border-radius: var(--pg-r-pill);
  background: rgba(255,255,255,0.75); backdrop-filter: blur(4px);
  font-weight: 700; color: var(--pg-ink); text-decoration: none; font-variant-numeric: tabular-nums;
}
.pg-hero__phone:hover { border-color: var(--pg-green); color: var(--pg-green); }
.pg-hero__card {
  padding: 1.5rem;
  border: 1px solid var(--pg-line); border-radius: var(--pg-r-2xl);
  background: rgba(255,255,255,0.92); backdrop-filter: blur(8px);
  box-shadow: var(--pg-sh-lg);
}
@media (min-width: 640px) { .pg-hero__card { padding: 2rem; } }
.pg-hero__card-title { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; }
.pg-hero__card-text { margin-top: 0.5rem; font-size: var(--pg-compact); color: var(--pg-ink-soft); }
.pg-hero__card-foot { margin-top: 1rem; font-size: var(--pg-tiny); color: var(--pg-ink-soft); text-align: center; }
/* Do not use min-height:100svh on the hero: content bottom-aligns and leaves a
   dead band under the header on short phones. */

/* Inner-page hero */
.pg-page-hero { padding-block: 3rem 3.5rem; background: var(--pg-tint); }
@media (min-width: 1024px) { .pg-page-hero { padding-block: 4rem 5rem; } }
.pg-page-hero--navy { background: var(--pg-navy-soft); color: var(--pg-on-navy); }
.pg-page-hero__inner { margin-top: 2rem; display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) {
  .pg-page-hero__inner { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3rem; }
  .pg-page-hero__copy { grid-column: span 7; }
  .pg-page-hero__aside { grid-column: span 5; }
  .pg-page-hero--wide .pg-page-hero__copy { grid-column: span 6; }
  .pg-page-hero--wide .pg-page-hero__aside { grid-column: span 6; }
}

/* --------------------------------------------------------------------- forms */
/* Elementor's own grid uses exact percentages, so a row gap pushes two 50%
   columns past 100% and they stack. Subtract half the gap instead. */
.pg-form .elementor-form-fields-wrapper { --pg-field-gap: 1rem; row-gap: var(--pg-field-gap); column-gap: var(--pg-field-gap); }
.pg-form .elementor-field-group { margin-bottom: 0; padding: 0; }
@media (min-width: 640px) {
  .pg-form .elementor-field-group.elementor-col-50 { width: calc(50% - (var(--pg-field-gap) / 2)); }
}
@media (max-width: 639px) {
  .pg-form .elementor-field-group.elementor-col-50 { width: 100%; }
}
.pg-form .elementor-field-label {
  font-size: var(--pg-tiny); font-weight: 600; color: var(--pg-ink); margin-bottom: 0.375rem;
}
.pg-form .elementor-field-group > .elementor-field-textual,
.pg-form select.elementor-field-textual,
.pg-form textarea.elementor-field-textual {
  width: 100%;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--pg-line-strong);
  border-radius: var(--pg-r-md);
  background: #fff;
  color: var(--pg-ink);
  font-size: var(--pg-compact);
  line-height: 1.4;
  transition: border-color var(--pg-dur-fast) var(--pg-ease), box-shadow var(--pg-dur-fast) var(--pg-ease);
}
.pg-form .elementor-field-textual:focus {
  border-color: var(--pg-green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pg-green) 18%, transparent);
  outline: none;
}
.pg-form textarea.elementor-field-textual { min-height: 7rem; resize: vertical; }
.pg-form .elementor-field-textual::placeholder { color: #7b7f88; }
/* Elementor draws its own caret in a wrapper; ours replaces it. */
.pg-form .elementor-select-wrapper .select-caret-down-wrapper { display: none; }
.pg-form .elementor-select-wrapper select {
  appearance: none;
  padding-right: 2.5rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%23001227' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 0.75rem;
}
.pg-form .elementor-field-type-acceptance .elementor-field-option { display: flex; gap: 0.625rem; align-items: flex-start; }
.pg-form .elementor-field-type-acceptance label { font-size: var(--pg-tiny); line-height: 1.5; color: var(--pg-ink-soft); }
.pg-form .elementor-field-type-acceptance input[type="checkbox"] { margin-top: 0.2em; width: 1.05rem; height: 1.05rem; accent-color: var(--pg-green); flex: none; }
.pg-form .elementor-field-type-radio .elementor-field-subgroup { display: grid; gap: 0.5rem; }
@media (min-width: 640px) { .pg-form .elementor-field-type-radio .elementor-field-subgroup { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pg-form .elementor-field-subgroup .elementor-field-option {
  display: flex; gap: 0.5rem; align-items: center;
  padding: 0.625rem 0.875rem; border: 1px solid var(--pg-line-strong); border-radius: var(--pg-r-md);
  font-size: var(--pg-tiny);
}
.pg-form .elementor-field-subgroup input { accent-color: var(--pg-green); }
.pg-form .elementor-button {
  width: 100%;
  min-height: 3.25rem;
  border: 0; border-radius: var(--pg-r-pill);
  background: var(--pg-green); color: #fff;
  font-size: var(--pg-compact); font-weight: 600;
  transition: background-color var(--pg-dur-fast) var(--pg-ease);
}
.pg-form .elementor-button:hover { background: var(--pg-green-hover); }
.pg-form .elementor-message { margin-top: 0.75rem; font-size: var(--pg-compact); border-radius: var(--pg-r-md); }
.pg-form .elementor-message-success { color: var(--pg-green-press); }
.pg-form .elementor-message-danger { color: var(--pg-error); }
.pg-form .elementor-field-required .elementor-field-label::after { content: " *"; color: var(--pg-green); }

/* --------------------------------------------------------------------- motion */
/* Reveals only move text that is already in the DOM; nothing is injected. */
[data-js] .pg-reveal { opacity: 0; transform: translate3d(0, 18px, 0); }
[data-js] .pg-reveal.is-in {
  opacity: 1; transform: none;
  transition: opacity var(--pg-dur-slow) var(--pg-ease-out), transform var(--pg-dur-slow) var(--pg-ease-out);
  transition-delay: var(--pg-delay, 0ms);
}
[data-js] .pg-line__i { transform: translate3d(0, 105%, 0); }
[data-js] .is-in .pg-line__i, [data-js] .pg-line__i.is-in {
  transform: none;
  transition: transform var(--pg-dur-slow) var(--pg-ease-out);
  transition-delay: calc(var(--pg-line-i, 0) * 90ms + var(--pg-delay, 0ms));
}
@media (prefers-reduced-motion: reduce) {
  [data-js] .pg-reveal, [data-js] .pg-line__i { opacity: 1 !important; transform: none !important; transition: none !important; }
  .pg-hero::before, .pg-hero::after { animation: none !important; }
}

/* --------------------------------------------------------- mobile refinements */
@media (max-width: 767px) {
  /* Authored heading lines re-wrap on narrow screens; balance keeps them even. */
  .pg-headline, .pg-display, h1, h2 { text-wrap: balance; }
  .pg-faq__a { padding-right: 0; }
  .pg-media--fill { min-height: 16rem; }
}

/* -------------------------------------------------------------- extra bits */
.pg-inline-strip {
  display: flex; flex-direction: column; gap: 1rem;
  margin-top: 3rem; padding: 1.5rem;
  border-radius: var(--pg-r-xl);
  background: var(--pg-navy-soft); color: #fff;
}
.pg-inline-strip p { font-size: var(--pg-body); }
@media (min-width: 640px) {
  .pg-inline-strip { flex-direction: row; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 2rem; }
  .pg-inline-strip .pg-btn { flex: none; }
}
.pg-text-cols { columns: 1; }
@media (min-width: 768px) { .pg-text-cols { columns: 2; column-gap: 2.5rem; } .pg-text-cols > * { break-inside: avoid; } }
.pg-check--cols { display: grid; }
@media (min-width: 640px) { .pg-check--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; } }
.pg-card--plain { border: 0; background: transparent; padding: 0; }
@media (min-width:1024px){.pg-cards--1{grid-template-columns:minmax(0,1fr)!important}}

/* ------------------------------------------------------------------- process */
.pg-process { position: relative; }
.pg-process__line { display: none; }
@media (min-width: 1024px) {
  .pg-process__line { display: block; position: absolute; inset-inline: 0; top: 1.125rem; height: 1px; background: var(--pg-line); }
  .pg-process--light .pg-process__line { background: var(--pg-navy-line); }
}
.pg-process__list { display: grid; gap: 2rem; }
@media (min-width: 640px) { .pg-process__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .pg-process__list { gap: 1.5rem; }
  .pg-process__list--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pg-process__list--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pg-process__list--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.pg-process__list li { position: relative; }
.pg-process__list .pg-num { position: relative; z-index: 1; }
.pg-process__title { margin-top: 1rem; font-size: 1.0625rem; font-weight: 600; }
.pg-process__text { margin-top: 0.375rem; font-size: var(--pg-compact); line-height: 1.6; color: var(--pg-ink-soft); }
.pg-process--light .pg-process__title { color: #fff; }
.pg-process--light .pg-process__text { color: var(--pg-on-navy-soft); }
.pg-process__foot {
  display: flex; flex-direction: column; gap: 1rem;
  margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--pg-line);
}
.pg-section--navy .pg-process__foot, .pg-section--navy-deep .pg-process__foot { border-top-color: var(--pg-navy-line); }
@media (min-width: 640px) { .pg-process__foot { flex-direction: row; align-items: center; justify-content: space-between; gap: 2rem; } .pg-process__foot .pg-btn { flex: none; } }

/* -------------------------------------------------------------- record card */
.pg-record { display: flex; flex-direction: column; height: 100%; padding: 0.5rem; border-radius: var(--pg-r-xl); background: var(--pg-navy-soft); box-shadow: var(--pg-sh-xl); }
.pg-record__inner { display: flex; flex-direction: column; flex: 1 1 auto; padding: 1.5rem; border-radius: var(--pg-r-md); background: #fff; }
@media (min-width: 640px) { .pg-record__inner { padding: 1.75rem; } }
.pg-record__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--pg-line); }
.pg-record__title { margin-top: 0.25rem; font-size: 1.125rem; font-weight: 700; color: var(--pg-ink); }
.pg-record__rows { margin-top: 0.5rem; }
.pg-record__rows li { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-block: 1rem; }
.pg-record__rows li + li { border-top: 1px solid var(--pg-line); }
.pg-record__area { display: block; font-size: var(--pg-compact); font-weight: 600; color: var(--pg-ink); }
.pg-record__note { display: block; font-size: var(--pg-tiny); color: var(--pg-ink-soft); }
.pg-record__status { display: inline-flex; align-items: center; gap: 0.375rem; flex: none; padding: 0.25rem 0.625rem; border-radius: var(--pg-r-pill); background: var(--pg-mint-tint); color: var(--pg-green-press); font-size: 0.75rem; font-weight: 600; }
.pg-record__status--fixed { background: color-mix(in srgb, var(--pg-amber) 18%, transparent); color: var(--pg-ink); }
.pg-record__status svg { width: 0.875rem; height: 0.875rem; }
.pg-record__foot { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; justify-content: space-between; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--pg-line); font-size: var(--pg-tiny); color: var(--pg-ink-soft); }
.pg-record__caption { padding: 0.75rem 1rem; font-size: var(--pg-tiny); color: var(--pg-on-navy-soft); }

/* --------------------------------------------------------- reviews and map */
.pg-stars { display: inline-flex; gap: 0.1rem; color: var(--pg-amber); }
.pg-stars svg { width: 1.05rem; height: 1.05rem; fill: currentColor; }
.pg-quote-mark svg { width: 1.75rem; height: 1.75rem; color: var(--pg-mint); fill: currentColor; }
.pg-quote { flex: 1 1 auto; margin: 1.25rem 0 0; font-size: 1.0625rem; line-height: 1.6; color: var(--pg-ink); }
.pg-map-card { height: 100%; display: flex; flex-direction: column; justify-content: center; padding: 1.5rem; border: 1px solid var(--pg-line); border-radius: var(--pg-r-2xl); background: #fff; box-shadow: var(--pg-sh-md); }
@media (min-width: 640px) { .pg-map-card { padding: 2.5rem; } }

/* ---------------------------------------------------------- person and cta */
.pg-person__rows { margin-top: 1.75rem; border-block: 1px solid var(--pg-line); }
.pg-person__rows > div { display: grid; gap: 0.15rem; padding-block: 0.875rem; }
.pg-person__rows > div + div { border-top: 1px solid var(--pg-line); }
@media (min-width: 640px) { .pg-person__rows > div { grid-template-columns: 6rem 1fr; gap: 0.5rem; } }
.pg-person__rows dt { font-size: var(--pg-compact); color: var(--pg-ink-soft); }
.pg-person__rows dd { margin: 0; font-size: var(--pg-compact); }
.pg-person__rows dd a { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 600; color: var(--pg-ink); text-decoration: none; word-break: break-word; }
.pg-person__rows dd a:hover { color: var(--pg-green); }
.pg-person__rows dd a svg { width: 1rem; height: 1rem; color: var(--pg-green); flex: none; }
.pg-person__rows dd span { display: block; color: var(--pg-ink-soft); }

.pg-cta__media { position: relative; overflow: hidden; border-radius: var(--pg-r-2xl); }
.pg-cta__media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.pg-cta__overlay {
  position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: center; padding: 1.5rem;
  background: linear-gradient(180deg, rgba(0,18,39,0) 35%, rgba(0,18,39,0.7) 100%);
}
.pg-cta__details {
  display: grid; gap: 1.5rem;
  margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--pg-navy-line);
}
@media (min-width: 640px) { .pg-cta__details { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pg-cta__details { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pg-cta__details dt { font-size: var(--pg-tiny); color: var(--pg-on-navy-soft); }
.pg-cta__details dd { margin: 0.25rem 0 0; font-size: var(--pg-compact); font-weight: 600; color: #fff; }
.pg-cta__details dd a { color: #fff; text-decoration: none; word-break: break-word; }
.pg-cta__details dd a:hover { color: var(--pg-mint); }
.pg-cta__details dd span { display: block; font-weight: 400; color: var(--pg-on-navy-soft); }

/* -------------------------------------------------------- header/footer bits */
.pg-logo__img { max-height: 2.5rem; width: auto; }
.pg-burger__bars { position: relative; display: block; width: 1.125rem; height: 2px; background: currentColor; border-radius: 2px; }
.pg-burger__bars::before, .pg-burger__bars::after { content: ""; position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; border-radius: 2px; }
.pg-burger__bars::before { top: -6px; }
.pg-burger__bars::after { top: 6px; }
[aria-expanded="true"] .pg-burger__bars { background: transparent; }
[aria-expanded="true"] .pg-burger__bars::before { top: 0; transform: rotate(45deg); }
[aria-expanded="true"] .pg-burger__bars::after { top: 0; transform: rotate(-45deg); }
.pg-header__cta-short { display: none; }
@media (max-width: 519px) {
  .pg-header__cta-long { display: none; }
  .pg-header__cta-short { display: inline; }
}
.pg-footer__cols { display: grid; gap: 1.5rem; margin-top: 1.5rem; }
@media (min-width: 480px) { .pg-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pg-footer__cols .pg-footer__address { margin-top: 0; }
.pg-footer__list--two { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; }

/* Elementor re-applies list styles after the theme; restate ours here. */
.pg-crumbs ol, .pg-crumbs li, .pg-cards, .pg-cards > li, .pg-chips, .pg-chips > li,
.pg-check, .pg-check > li, .pg-footer__list, .pg-footer__list > li,
.pg-nav__list, .pg-nav__list li, .pg-panel__list, .pg-panel__list li,
.pg-process__list, .pg-process__list > li, .pg-record__rows, .pg-record__rows > li,
.pg-rows > li, .pg-trust, .pg-trust > li { list-style: none; margin: 0; padding-left: 0; }
.pg-crumbs li::marker, .pg-cards > li::marker, .pg-process__list > li::marker { content: none; }
.pg-footer__address .pg-footer__title { display: block; margin-bottom: 0.35rem; }
.pg-inline-strip--tint { background: var(--pg-tint); color: var(--pg-ink); border: 1px solid var(--pg-line); }
.pg-inline-strip--tint p { color: var(--pg-ink); }

/* --------------------------------------------------------- legal and forms */
/* Placeholders the owner must replace before launch stay visible on purpose. */
.pg-todo { background: color-mix(in srgb, var(--pg-amber) 18%, transparent); padding: 0 0.25rem; border-radius: 3px; }
.pg-legal { max-width: 44rem; }
.pg-legal h2 { font-size: var(--pg-h4); margin-top: 2.5rem; margin-bottom: 0.75rem; }
.pg-legal h3 { font-size: 1.0625rem; margin-top: 1.5rem; margin-bottom: 0.5rem; }
.pg-legal h2:first-child { margin-top: 0; }
.pg-legal p, .pg-legal ul, .pg-legal address { margin-bottom: 0.75rem; }
.pg-legal ul { list-style: disc; padding-left: 1.25rem; }
.pg-legal li { margin-bottom: 0.25rem; }
.pg-legal a { font-weight: 600; color: var(--pg-green); }
.pg-form-card { padding: 1.5rem; border: 1px solid var(--pg-line); border-radius: var(--pg-r-2xl); background: #fff; box-shadow: var(--pg-sh-md); }
@media (min-width: 640px) { .pg-form-card { padding: 2rem; } }
.pg-phone-card {
  display: flex; align-items: center; gap: 1rem;
  padding: 1.5rem; border-radius: var(--pg-r-xl);
  background: var(--pg-navy); color: #fff; text-decoration: none;
}
.pg-phone-card:hover { background: var(--pg-navy-soft); }
.pg-phone-card .pg-icon { background: var(--pg-green); color: #fff; }
.pg-phone-card__label { display: block; font-size: var(--pg-small); color: var(--pg-mint); }
.pg-phone-card__value { display: block; font-size: 1.5rem; font-weight: 700; line-height: 1.2; font-variant-numeric: tabular-nums; }
.pg-phone-card__note { display: block; font-size: var(--pg-compact); color: var(--pg-on-navy-soft); }
.pg-contact-grid { display: grid; gap: 2rem; padding-block: var(--pg-section-y); }
.pg-contact-grid > * { min-width: 0; }
@media (min-width: 1024px) { .pg-contact-grid { grid-template-columns: 5fr 7fr; gap: 2.5rem; align-items: start; } }
.pg-contact-grid, .pg-contact-grid > * { max-width: var(--pg-max); margin-inline: auto; }
.pg-contact-grid { padding-inline: var(--pg-gutter); }
.pg-contact-col { display: grid; gap: 1.5rem; }

/* One-column grid for cards placed inside a narrow layout column. */
.pg-cards--one { grid-template-columns: minmax(0, 1fr) !important; }

/* Navy page hero: headings and body text inherit the ink colour otherwise. */
.pg-page-hero--navy :is(h1, h2, h3, .pg-headline) { color: #fff; }
.pg-page-hero--navy .pg-lead,
.pg-page-hero--navy .pg-compact,
.pg-page-hero--navy .pg-text { color: var(--pg-on-navy-soft); }
.pg-page-hero--navy .pg-eyebrow { color: var(--pg-mint); }
.pg-page-hero--navy .pg-rows { background: rgba(255, 255, 255, 0.06); border-color: var(--pg-navy-line); }
.pg-page-hero--navy .pg-rows > * + * { border-top-color: var(--pg-navy-line); }
.pg-page-hero--navy .pg-rows dt { color: var(--pg-on-navy-soft); }
.pg-page-hero--navy .pg-rows dd { color: #fff; }
.pg-page-hero--navy .pg-hero__phone { background: rgba(255,255,255,0.08); border-color: var(--pg-navy-line); color: #fff; }

/* Legal pages: full-width band, text column left-aligned inside it. */


/* The phone card sits inside prose, whose link colour would otherwise win. */
.pg-prose a.pg-phone-card, a.pg-phone-card { color: #fff; font-weight: 600; }
.pg-prose a.pg-phone-card:hover { color: #fff; }
.pg-phone-card__value { color: #fff; }
.pg-phone-card__label { color: var(--pg-mint); }
.pg-legal { max-width: 44rem; }

/* Im Elementor-Editor nichts verstecken.
   Die Einblendungen starten über einen IntersectionObserver, der im Editor-
   Iframe nicht auslöst. Ohne diese Regel sähe die Bearbeitungsfläche leer aus,
   obwohl alle Abschnitte vorhanden sind. */
body.elementor-editor-active .pg-reveal,
body.elementor-editor-active .pg-line__i,
body.elementor-editor-preview .pg-reveal,
body.elementor-editor-preview .pg-line__i {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Bildspalte auf volle Höhe: Das Bild soll so hoch werden wie der Text daneben,
   nicht mittig mit Rand darüber und darunter stehen. */
.pg-media-col { display: flex; height: 100%; }
.pg-media-col > .pg-media { flex: 1 1 auto; width: 100%; height: 100%; }
.pg-media-col > .pg-media > img { height: 100%; width: 100%; object-fit: cover; }
