/* Homepage layout based on design-reference.png. Client palette: navy #162a4d, turquoise #437682, white. */
/* Offset anchor jumps so the sticky navbar (~74px) doesn't cover section headings. */
html { scroll-padding-top: 90px; }
.ec-page [id] { scroll-margin-top: 90px; }
.ec-page {
  --ec-navy: #162a4d;
  --ec-navy-deep: #0f1f3a;
  --ec-text: #162a4d;
  --ec-accent: #437682;
  --ec-accent-dark: #365f69;
  --ec-accent-soft: #eef3f4;
  --ec-muted: #5e6b79;
  --ec-border: #e4e9ed;
  --ec-bg: #eff3f5;
  width: 100%;
  max-width: none;
  margin: 0;
  color: var(--ec-text);
  background: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  line-height: 1.45;
}
.ec-page *, .ec-page *::before, .ec-page *::after { box-sizing: border-box; }
.ec-page > * { margin-block: 0; }
/* Classic themes add this wrapper when rendering Group blocks. */
.ec-page .wp-block-group__inner-container { display: contents; }
.ec-page a { color: inherit; text-decoration: none; }
.ec-page a:focus-visible, .ec-page summary:focus-visible { outline: 3px solid var(--ec-accent); outline-offset: 5px; }
.ec-page :is(h1,h2,h3,p) { margin: 0; }
.ec-page :is(h1,h2,h3) { color: var(--ec-text); font-family: inherit; font-weight: 800; }
.ec-page .ec-container { width: calc(100% - 112px); max-width: 1180px; margin-inline: auto; }
.ec-page .ec-section { padding: 24px 0 20px; }
.ec-page .ec-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 9px; color: var(--ec-navy); font-size: 11px; font-weight: 600; line-height: 1.5; letter-spacing: .065em; text-transform: uppercase; }
.ec-page .ec-eyebrow::before { content: ''; flex: 0 0 34px; height: 3px; background: var(--ec-accent); }
.ec-page .ec-section-title { font-size: clamp(23px, 2.5vw, 32px); letter-spacing: -.045em; line-height: 1.15; }
.ec-page .ec-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ec-page .ec-section-heading > .ec-action { flex-shrink: 0; font-size: 11px; text-transform: none; }
.ec-page .ec-icon { display: inline-block; width: 24px; height: 24px; flex-shrink: 0; object-fit: contain; vertical-align: middle; }

/* ---------- Buttons ---------- */
.ec-page .ec-action { display: inline-flex; justify-content: center; align-items: center; gap: 13px; min-height: 43px; padding: 10px 22px; border: 1px solid transparent; border-radius: 999px; font-size: 12px; font-weight: 800; line-height: 1.3; text-align: center; text-transform: uppercase; transition: background-color .18s, box-shadow .18s, color .18s; }
.ec-page .ec-action-primary { background: var(--ec-accent); color: #fff; }
.ec-page .ec-action-primary:hover { background: var(--ec-accent-dark); box-shadow: 0 4px 18px #162a4d24; }
.ec-page .ec-action-primary .ec-icon { filter: brightness(0) invert(1); }
.ec-page .ec-action-light { border-color: #fff; color: #fff; background: #ffffff1f; }
.ec-page .ec-action-light:hover { background: #ffffff33; }
.ec-page .ec-action-light .ec-icon, .ec-page .ec-hero-trust .ec-icon { filter: brightness(0) invert(1); }
.ec-page .ec-action-outline { color: var(--ec-accent); border-color: var(--ec-accent); background: transparent; }
.ec-page .ec-action-outline:hover { background: var(--ec-accent-soft); }
.ec-page .ec-action-dark { background: var(--ec-navy); color: #fff; }
.ec-page .ec-action-dark:hover { background: var(--ec-navy-deep); }
.ec-page .ec-action-dark .ec-icon { filter: brightness(0) invert(1); }
.ec-page .ec-action-text { color: var(--ec-accent); padding-inline: 4px; text-transform: none; }
.ec-page .ec-action-text:hover { text-decoration: underline; }
/* Shared arrow icon (assets/images/arrow.svg). */
.ec-page .ec-arrow { display: inline-block; width: 16px; height: 16px; flex-shrink: 0; vertical-align: middle; object-fit: contain; }
.ec-page .ec-action .ec-arrow { filter: none; }
.ec-page .ec-action-primary .ec-arrow, .ec-page .ec-action-dark .ec-arrow { filter: brightness(0) invert(1); }

/* ---------- Hero carousel ---------- */
.ec-page .ec-hero { position: relative; overflow: hidden; background: var(--ec-navy); }
.ec-page .ec-hero-slide { position: relative; isolation: isolate; overflow: hidden; min-height: 500px; }
.ec-page .ec-hero-slide-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: -3; }
.ec-page .ec-hero-tint { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, #0f1f3aed 0%, #162a4dd9 35%, #162a4d2b 63%, transparent 85%); }
.ec-page .ec-hero-slide--banner::before { content: ''; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, #ffffffed 0%, #ffffffcc 32%, #ffffff73 52%, transparent 72%); }
.ec-page .ec-hero-slide--routes .ec-hero-inner { align-items: center; justify-content: center; }
.ec-page .ec-hero-slide--routes .ec-banner-copy { width: auto; max-width: 600px; text-align: center; }
.ec-page .ec-hero-slide--routes .ec-banner-title { max-width: none; font-size: clamp(36px, 4.6vw, 54px); }
.ec-page .ec-hero-slide--routes .ec-banner-subtitle { max-width: none; margin-inline: auto; font-size: 18px; }
.ec-page .ec-hero-slide--copy::after { content: ''; position: absolute; inset: 0; z-index: -1; background: #162a4d4d; clip-path: polygon(0 0, 48% 0, 53% 15%, 36% 100%, 0 100%); }
.ec-page .ec-hero-inner { position: absolute; inset: 0; width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.ec-page .ec-hero-copy { width: 56%; padding: 20px 0; color: #fff; }
.ec-page .ec-hero .ec-eyebrow { color: #fff; letter-spacing: .15em; }
.ec-page .ec-hero .ec-eyebrow::before { background: var(--ec-accent); }
.ec-page .ec-hero-title { color: #fff; font-size: clamp(38px, 5.1vw, 65px); line-height: .99; letter-spacing: -.04em; margin-bottom: 18px; }
.ec-page .ec-hero-title strong { color: var(--ec-accent); font-weight: 800; }
.ec-page .ec-hero-copy > p:not(.ec-eyebrow) { max-width: 440px; color: #f0f4f8; font-size: 16px; line-height: 1.4; }
.ec-page .ec-hero-copy--dark-text, .ec-page .ec-hero-copy--dark-text .ec-hero-title { color: var(--ec-navy); }
.ec-page .ec-hero-copy--dark-text .ec-eyebrow { color: var(--ec-navy); }
.ec-page .ec-hero-copy--dark-text > p:not(.ec-eyebrow) { color: var(--ec-navy); }
.ec-page .ec-hero-copy--dark-text .ec-hero-trust { color: var(--ec-navy); }
.ec-page .ec-hero-copy--dark-text .ec-hero-trust .ec-icon { filter: none; }
.ec-page .ec-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 25px; }
.ec-page .ec-hero-actions .ec-action { min-height: 50px; }
.ec-page .ec-hero-trust { display: flex; flex-wrap: wrap; gap: 34px; margin-top: 30px; font-size: 13px; font-weight: 700; letter-spacing: .01em; color: #fff; }
.ec-page .ec-hero-trust span { display: inline-flex; align-items: center; gap: 9px; }
.ec-page .ec-hero-trust .ec-icon { width: 20px; height: 20px; }
.ec-page .ec-hero-caption { align-self: flex-start; padding-top: 34px; text-align: center; color: #eaf1f4; text-shadow: 0 1px 8px #0f1f3a; }
.ec-page .ec-hero-caption p { position: relative; font-family: 'Brush Script MT', 'Segoe Script', cursive; font-style: italic; font-size: clamp(24px, 3vw, 39px); line-height: 1.05; transform: rotate(-8deg); }
.ec-page .ec-hero-caption p::after { content: ''; display: block; width: 85%; height: 4px; margin: 8px auto 0; background: var(--ec-accent); border-radius: 50%; }
.ec-page .ec-hero-caption > span { display: block; margin-top: 45px; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }

/* ---------- Hero carousel: banner slide content ---------- */
.ec-page .ec-banner-copy { width: 50%; color: var(--ec-navy); }
.ec-page h2.ec-banner-title { margin: 0; max-width: 560px; font-size: clamp(38px, 5.1vw, 65px); line-height: 1.05; letter-spacing: -.04em; color: var(--ec-navy-deep); }
.ec-page .ec-banner-title strong { color: #2f9fdc; font-weight: 800; }
.ec-page p.ec-banner-subtitle { margin: 10px 0 0; max-width: 440px; font-size: 16px; font-weight: 700; letter-spacing: .01em; line-height: 1.4; color: var(--ec-navy); }
.ec-page .ec-banner-price { display: inline-flex; align-items: center; gap: 12px; margin-top: 16px; padding: 14px 28px; background: #6cb62f; border-radius: 16px; color: #fff; font-weight: 800; box-shadow: 0 8px 20px #16223b26; cursor: pointer; transition: background-color .18s, box-shadow .18s, transform .18s; }
.ec-page .ec-banner-price:hover { background: #5da627; box-shadow: 0 10px 24px #16223b3d; transform: translateY(-1px); }
.ec-page .ec-banner-price .ec-icon { width: 26px; height: 26px; filter: brightness(0) invert(1); }
.ec-page .ec-banner-price span { font-size: clamp(24px, 2.8vw, 32px); line-height: 1.1; }
.ec-page .ec-banner-price b { font-size: .55em; }
.ec-page .ec-banner-price small { display: block; font-size: .48em; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.ec-page .ec-banner-price .ec-banner-cta { display: block; margin-top: 2px; font-size: .34em; font-weight: 700; text-transform: none; letter-spacing: 0; opacity: .92; }
.ec-page .ec-banner-trust { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 22px; }
.ec-page .ec-banner-trust span { display: flex; align-items: center; gap: 11px; max-width: 150px; font-size: 13px; font-weight: 700; line-height: 1.25; color: var(--ec-navy); }
.ec-page .ec-banner-trust .ec-icon { flex-shrink: 0; width: 42px; height: 42px; padding: 9px; border: 2px solid var(--ec-accent); border-radius: 50%; background: #fff; }
.ec-page .ec-banner-steps { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #16223b26; }
.ec-page .ec-banner-steps span { display: inline-flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 700; color: var(--ec-navy); }
.ec-page .ec-banner-steps .ec-icon { width: 26px; height: 26px; }

/* ---------- Hero carousel: Swiper controls ---------- */
.ec-page .ec-hero .swiper-pagination-bullet { width: 9px; height: 9px; background: #fff; opacity: .55; }
.ec-page .ec-hero .swiper-pagination-bullet-active { opacity: 1; background: #fff; }
.ec-page .ec-hero .swiper-button-prev, .ec-page .ec-hero .swiper-button-next { top: 50%; width: 42px; height: 42px; margin-top: -21px; display: flex; align-items: center; justify-content: center; color: #fff; background-color: #16223b3d; border-radius: 50%; transition: background-color .18s; }
.ec-page .ec-hero .swiper-button-prev:hover, .ec-page .ec-hero .swiper-button-next:hover { background-color: #16223b73; }
/* Real inline SVGs (markup in hero-slider/render.php) instead of Swiper's
   default swiper-icons @font-face glyph rendered via ::after — on a slow
   connection (seen on iOS right after deploy) that font can take a moment
   to load, leaving the arrow blank until it does. Swiper's own CSS already
   sizes a child <svg> via ".swiper-button-prev svg{width:100%;height:100%}",
   so no extra sizing is needed here; just suppress its ::after fallback
   glyph/text so it can't show through underneath the svg. */
.ec-page .ec-hero .swiper-button-prev::after, .ec-page .ec-hero .swiper-button-next::after {
  content: none;
}
.ec-page .ec-hero .swiper-button-prev svg, .ec-page .ec-hero .swiper-button-next svg {
  width: 20px;
  height: 20px;
  overflow: visible;
}
.ec-page .ec-hero .swiper-button-prev { left: 16px; }
.ec-page .ec-hero .swiper-button-next { right: 16px; }
.ec-page .ec-hero .swiper-pagination { bottom: 16px; }

/* ---------- Services ---------- */
.ec-page .ec-services-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.ec-page .ec-service-card { display: flex; flex-direction: column; align-items: center; min-height: 245px; padding: 21px 20px 13px; border: 1px solid var(--ec-border); border-radius: 11px; background: linear-gradient(#fff, #f7f9fa); text-align: center; box-shadow: 0 1px 3px #162a4d0a; }
.ec-page .ec-service-icon .ec-icon { width: 58px; height: 58px; }
.ec-page .ec-service-card h3 { margin: 12px 0 7px; font-size: 18px; line-height: 1.15; letter-spacing: -.025em; }
.ec-page .ec-service-card p { max-width: 170px; margin-bottom: 16px; color: var(--ec-muted); font-size: 14px; line-height: 1.3; }
.ec-page .ec-card-link { display: inline-flex; margin-top: auto; border-radius: 50%; padding: 4px; }
/* Circular arrow button: centered arrow.svg via flex. */
.ec-page .ec-round-arrow { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 1px solid var(--ec-accent); border-radius: 50%; transition: background-color .18s, border-color .18s; }
.ec-page .ec-round-arrow .ec-arrow { width: 16px; height: 16px; }
.ec-page .ec-card-link:hover .ec-round-arrow { background-color: var(--ec-accent); border-color: var(--ec-accent); }
.ec-page .ec-card-link:hover .ec-round-arrow .ec-arrow { filter: brightness(0) invert(1); }

/* ---------- Lockers ---------- */
.ec-page .ec-lockers-section { position: relative; isolation: isolate; background: var(--ec-bg); min-height: 340px; }
.ec-page .ec-lockers-section-bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ec-page .ec-lockers-section--has-bg::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, #0f1f3a6c 0%, #0f1f3a76 100%); }
.ec-page .ec-lockers-section--has-bg :is(.ec-eyebrow, .ec-section-title) { color: #fff; }
.ec-page .ec-lockers-section--has-bg .ec-eyebrow::before { background: var(--ec-accent); }
.ec-page .ec-locker-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-top: 13px; }
.ec-page .ec-locker-card { position: relative; display: flex; align-items: flex-start; gap: 13px; padding: 15px 15px 40px; background: #fff; border-radius: 16px; }
.ec-page .ec-flag { font-size: 34px; line-height: 1.1; }
.ec-page .ec-locker-card h3 { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin: 3px 0 5px; font-size: 16px; letter-spacing: -.025em; }
.ec-page .ec-locker-card h3 .ec-arrow { width: 14px; height: 14px; }
.ec-page .ec-locker-card p { color: #243e57; font-size: 14px; line-height: 1.4; }
.ec-page .ec-locker-card .ec-card-link { position: absolute; right: 10px; bottom: 6px; }
.ec-page .ec-locker-card .ec-round-arrow { width: 26px; height: 26px; }
.ec-page .ec-locker-card .ec-round-arrow .ec-arrow { width: 13px; height: 13px; }
.ec-page .ec-locker-actions { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin-top: 12px; }
.ec-page .ec-locker-actions .ec-action-primary { flex: 1; }

/* ---------- Feature cards ---------- */
.ec-page .ec-more { padding-bottom: 48px; }
.ec-page .ec-feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 16px; }
.ec-page .ec-feature-card { display: grid; grid-template-columns: 38% 1fr; min-width: 0; overflow: hidden; border: 1px solid var(--ec-border); border-radius: 11px; background: linear-gradient(#fff, #f7f9fa); }
.ec-page .ec-feature-image { display: block; width: 100%; height: 100%; min-height: 170px; object-fit: cover; border-radius: 10px; }
.ec-page .ec-feature-copy { padding: 18px 24px 12px; }
.ec-page .ec-feature-copy h3 { font-size: 20px; line-height: 1.2; letter-spacing: -.035em; }
.ec-page .ec-feature-copy p { margin: 8px 0 10px; color: var(--ec-muted); font-size: 14px; line-height: 1.3; }
.ec-page .ec-feature-copy .ec-action { min-height: 35px; padding: 8px 20px; }

/* ---------- Why us ---------- */
.ec-page .ec-why { padding-top: 18px; background: var(--ec-bg); }
.ec-page .ec-why .ec-section-title { font-size: 26px; }
.ec-page .ec-why-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 18px; }
.ec-page .ec-why-item { display: flex; gap: 20px; padding: 8px 22px; border-left: 1px solid #dbe3e9; }
.ec-page .ec-why-item:first-child { padding-left: 0; border-left: 0; }
.ec-page .ec-why-item:last-child { padding-right: 0; }
.ec-page .ec-why-icon .ec-icon { width: 48px; height: 48px; }
.ec-page .ec-why-item h3 { margin: 3px 0 7px; font-size: 14px; line-height: 1.3; }
.ec-page .ec-why-item p { color: #485d70; font-size: 13px; line-height: 1.4; }

/* ---------- About + Locations ---------- */
.ec-page .ec-about { position: relative; isolation: isolate; padding-bottom: 40px; background: var(--ec-bg); }
.ec-page .ec-about-bg { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ec-page .ec-about-text { max-width: 760px; margin-top: 14px; font-size: 16px; line-height: 1.6; color: var(--ec-muted); }
.ec-page .ec-locations-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 32px; }
.ec-page .ec-location-card { border: 1px solid var(--ec-border); border-radius: 14px; overflow: hidden; background: #fff; }
.ec-page .ec-location-media { display: grid; grid-template-columns: 1fr 1fr; height: 220px; }
.ec-page .ec-location-photo { display: block; width: 100%; height: 100%; object-fit: cover; }
.ec-page .ec-location-map { line-height: 0; background: var(--ec-bg); }
.ec-page .ec-location-map iframe { display: block; width: 100%; height: 100%; }
.ec-page .ec-location-body { padding: 20px 22px 22px; }
.ec-page .ec-location-body h3 { font-size: 18px; letter-spacing: -.02em; margin-bottom: 8px; }
.ec-page .ec-location-body p { color: var(--ec-muted); font-size: 14px; line-height: 1.5; margin-bottom: 16px; }
.ec-page .ec-location-body .ec-action { font-size: 11px; }

/* ---------- Contact footer ----------
 * Printed via wp_footer (see inc/home-parts/footer.php), outside .ec-page —
 * these rules must NOT be scoped under .ec-page like the rest of this file.
 * .ec-container's own width rule IS scoped to .ec-page, so the footer needs
 * its own copy (same formula as .ec-siteheader/.ec-navbar .ec-container in
 * header.css) or it stretches full-bleed instead of matching every other
 * section's content width. */
.ec-contact-strip .ec-container { width: calc(100% - 112px); max-width: 1180px; margin-inline: auto; }
.ec-contact-strip { padding: 0; background: linear-gradient(110deg, #1b3358, #0f1f3a); color: #fff; }
.ec-contact-strip-inner { display: grid; grid-template-columns: 1.35fr 1fr 1.1fr; align-items: center; gap: 30px; padding: 30px 0; }
.ec-contact-strip p { margin: 0; color: #e9f0f5; font-size: 12px; }
.ec-contact-strip strong { font-size: 15px; color: #fff; }
.ec-contact-strip a:hover { color: var(--ec-accent); }
.ec-footer-brand { display: flex; align-items: center; gap: 24px; }
.ec-footer-logo { flex-shrink: 0; width: 96px; height: 96px; }
.ec-footer-brand-copy p + p { margin-top: 5px; }
.ec-footer-contact { align-self: stretch; display: flex; flex-direction: column; justify-content: center; gap: 4px; padding-inline: 28px; border-inline: 1px solid #ffffff40; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.ec-footer-social { display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.ec-contact-strip .ec-social-links { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; }
.ec-contact-strip .ec-social-links a:hover { color: var(--ec-accent); }
.ec-contact-strip .ec-social-links .ec-icon { width: 20px; height: 20px; filter: brightness(0) invert(1); transition: opacity .15s; }
.ec-contact-strip .ec-social-links a:hover .ec-icon { opacity: .7; }
.ec-contact-strip .ec-footer-tagline { color: #fff; font-family: 'Brush Script MT', 'Segoe Script', cursive; font-style: italic; font-size: 21px; line-height: 1.2; }
.ec-footer-bottom { border-top: 1px solid #ffffff26; background: #0f1f3a; }
.ec-footer-bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 46px; padding: 12px 0; font-size: 11px; color: #b9c5d6; }
.ec-footer-bottom-inner p { margin: 0; color: inherit; }
.ec-footer-legal { display: inline-flex; align-items: center; gap: 10px; }
.ec-footer-legal a:hover { color: #fff; }

.ec-page .ec-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .ec-page .ec-container { width: calc(100% - 64px); }
  .ec-contact-strip .ec-container { width: calc(100% - 64px); }
  .ec-page .ec-hero-copy { width: 62%; }
  .ec-page .ec-service-card { padding-inline: 12px; }
  .ec-page .ec-service-card h3 { font-size: 16px; }
  .ec-page .ec-locker-card { gap: 8px; padding-inline: 12px; }
  .ec-page .ec-locker-card h3 { font-size: 14px; }
  .ec-page .ec-flag { font-size: 27px; }
  .ec-page .ec-locker-actions { gap: 10px; }
  .ec-page .ec-action { padding-inline: 18px; }
  .ec-page .ec-why-item { gap: 13px; padding-inline: 15px; }
  .ec-page .ec-feature-copy { padding-inline: 18px; }
}
@media (max-width: 820px) {
  .ec-page .ec-hero-copy { width: 75%; }
  .ec-page .ec-hero-title { font-size: 49px; }
  .ec-page .ec-hero-caption { display: none; }
  .ec-page .ec-hero-tint { background: linear-gradient(90deg, #0f1f3af0, #0f1f3a99 70%, #0f1f3a22); }
  .ec-page .ec-banner-copy { width: 68%; }
  .ec-page .ec-banner-title { font-size: 49px; }
  .ec-page .ec-banner-trust { gap: 16px; }
  .ec-page .ec-banner-trust span { flex-direction: column; gap: 8px; max-width: 100px; text-align: center; }
  .ec-page .ec-section-heading { align-items: flex-start; flex-direction: column; gap: 14px; }
  .ec-page .ec-services-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ec-page .ec-locker-card { padding: 18px 18px 36px; gap: 16px; }
  .ec-page .ec-locker-card h3 { font-size: 18px; }
  .ec-page .ec-locker-card p { font-size: 13px; }
  .ec-page .ec-locker-actions .ec-action-primary { flex: none; }
  .ec-page .ec-locations-grid { grid-template-columns: 1fr; }
  .ec-page .ec-feature-grid { grid-template-columns: 1fr; gap: 16px; }
  .ec-page .ec-feature-image { max-height: 220px; }
  .ec-page .ec-feature-copy { align-self: center; padding: 22px; }
  .ec-page .ec-why-grid { grid-template-columns: 1fr 1fr; row-gap: 22px; }
  .ec-page .ec-why-item:nth-child(odd) { border-left: 0; padding-left: 0; }
  .ec-contact-strip-inner { grid-template-columns: 1fr; justify-items: center; gap: 26px; text-align: center; }
  .ec-footer-brand { flex-direction: column; text-align: center; gap: 14px; }
  .ec-footer-contact {
    align-self: auto; align-items: center;
    padding: 20px 0 0; border: 0; border-top: 1px solid #ffffff33;
    width: 100%; max-width: 420px;
  }
  .ec-footer-social {
    align-items: center;
    padding-top: 20px; border-top: 1px solid #ffffff33;
    width: 100%; max-width: 420px;
  }
  .ec-footer-social .ec-social-links { justify-content: center; }
  .ec-footer-bottom-inner { flex-direction: column; gap: 8px; text-align: center; }
}
@media (max-width: 540px) {
  .ec-page .ec-container { width: calc(100% - 36px); }
  .ec-contact-strip .ec-container { width: calc(100% - 36px); }
  .ec-page .ec-section { padding: 28px 0; }
  .ec-page .ec-hero-slide { min-height: 530px; }
  .ec-page .ec-hero-inner { min-height: 530px; }
  .ec-page .ec-hero-copy { width: 100%; padding: 42px 0; }
  .ec-page .ec-hero-title { font-size: clamp(34px, 9vw, 48px); }
  .ec-page .ec-hero-copy > p:not(.ec-eyebrow) { font-size: 15px; }
  .ec-page .ec-hero-slide--copy .ec-hero-slide-image { object-position: 62% center; }
  .ec-page .ec-hero-tint { background: #0f1f3acf; }
  .ec-page .ec-hero-actions { flex-direction: column; align-items: stretch; max-width: 340px; }
  .ec-page .ec-hero-trust { gap: 20px; font-size: 11px; }
  .ec-page .ec-hero-trust span { gap: 7px; }
  .ec-page .ec-hero .swiper-button-prev, .ec-page .ec-hero .swiper-button-next { width: 34px; height: 34px; margin-top: -17px; }
  .ec-page .ec-hero .swiper-pagination { display: none; }
  .ec-page .ec-banner-copy { width: 100%; }
  .ec-page .ec-hero-slide--banner .ec-banner-copy { text-align: center; }
  .ec-page .ec-hero-slide--banner .ec-banner-title { max-width: 100%; }
  .ec-page .ec-hero-slide--banner .ec-banner-subtitle { max-width: 100%; margin-inline: auto; }
  .ec-page .ec-banner-title { font-size: clamp(34px, 9vw, 48px); }
  .ec-page .ec-hero-slide--routes .ec-banner-copy { max-width: 100%; padding-inline: 44px; }
  .ec-page .ec-hero-slide--routes .ec-banner-title { max-width: 100%; font-size: clamp(28px, 8vw, 36px); }
  .ec-page .ec-hero-slide--routes .ec-banner-subtitle { font-size: 15px; }
  .ec-page .ec-banner-subtitle { font-size: 15px; }
  .ec-page .ec-banner-price { display: flex; width: fit-content; margin-inline: auto; }
  .ec-page .ec-banner-trust { justify-content: center; gap: 18px; text-align: center; }
  .ec-page .ec-banner-trust span { flex-direction: column; gap: 6px; max-width: 88px; font-size: 11px; }
  .ec-page .ec-banner-trust .ec-icon { width: 36px; height: 36px; padding: 8px; }
  .ec-page .ec-banner-steps { justify-content: center; gap: 10px 18px; text-align: center; }
  .ec-page .ec-banner-steps span { font-size: 13px; }
  .ec-page .ec-banner-steps .ec-icon { width: 22px; height: 22px; }
  .ec-page .ec-banner-steps { gap: 8px 14px; }
  .ec-page .ec-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ec-page .ec-service-card { min-height: 225px; }
  .ec-page .ec-service-card:last-child { grid-column: 1 / -1; }
  .ec-page .ec-service-card p { font-size: 13px; }
  .ec-page .ec-locker-grid { grid-template-columns: 1fr; }
  .ec-page .ec-locker-card { padding-bottom: 20px; padding-right: 52px; }
  .ec-page .ec-locker-card .ec-card-link { bottom: 12px; }
  .ec-page .ec-locker-actions { gap: 10px 18px; }
  .ec-page .ec-feature-card { grid-template-columns: 35% 1fr; }
  .ec-page .ec-feature-image { max-height: none; }
  .ec-page .ec-feature-copy { padding: 16px 13px; }
  .ec-page .ec-feature-copy h3 { font-size: 18px; }
  .ec-page .ec-feature-copy p { font-size: 13px; }
  .ec-page .ec-feature-copy .ec-action { padding-inline: 14px; font-size: 11px; }
  .ec-page .ec-why-grid { grid-template-columns: 1fr; gap: 18px; }
  .ec-page .ec-why-item { padding: 0; border: 0; gap: 18px; }
}
@media (prefers-reduced-motion: reduce) { .ec-page .ec-action { transition: none; } }
