/* Province/City layouts reuse the shared components with a balanced location-page rhythm. */
body #page .hip-location-page { min-width: 0; }
body #page .hip-location-page .location-text-accent { color: var(--plans-purple); }
body #page .hip-location-page .location-link-arrow { display: inline-block; flex: 0 0 auto; width: auto; height: auto; color: inherit; font: inherit; }
body #page .hip-location-page .location-section-heading--marked { position: relative; padding-left: 24px; }
body #page .hip-location-page .location-section-heading--marked::before { content: ""; position: absolute; top: .1em; bottom: .05em; left: 0; width: 5px; max-height: 1.16em; border-radius: 3px; background: var(--plans-purple); }

/* Use the neutral shared page-hero base; only the artwork composition is location-specific. */
body #page .hip-location-page .location-hero-section { isolation: isolate; overflow: hidden; }
body #page .hip-location-page .location-hero-section__art { position: absolute; inset: 0 0 0 auto; width: 62%; height: 100%; pointer-events: none; z-index: -1; -webkit-mask-image: linear-gradient(90deg, transparent, #000 24%); mask-image: linear-gradient(90deg, transparent, #000 24%); }
body #page .hip-location-page .location-hero-section__art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
body #page .hip-location-page .location-hero-section__content { width: 100%; max-width: 700px; }
body #page .hip-location-page .location-hero-section .page-hero__title { margin-top: 0; overflow-wrap: break-word; }
body #page .hip-location-page .location-hero-section .page-hero__title .location-text-accent { display: inline; }
body #page .hip-location-page .location-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; list-style: none; padding: 0; margin: 0 0 24px; font-size: 14px; line-height: 1.5; color: var(--plans-muted); }
body #page .hip-location-page .location-breadcrumbs li { margin: 0; }
body #page .hip-location-page .location-breadcrumbs li + li::before { content: "›"; padding-right: 8px; }
body #page .hip-location-page .location-breadcrumbs a { color: inherit; }

/* Highlights retain the shared general-content-section container. */
body #page .hip-location-page .location-highlights-section__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 26px 12px; border-radius: 14px; background: var(--plans-soft); }
body #page .hip-location-page .location-highlight { display: flex; align-items: center; gap: 22px; min-width: 0; padding-inline: 22px; }
body #page .hip-location-page .location-highlight + .location-highlight { border-left: 1px solid var(--plans-border); }
body #page .hip-location-page .location-highlight__icon { width: 62px; height: 62px; flex: 0 0 62px; display: grid; place-items: center; border-radius: 50%; background: #efebff; }
body #page .hip-location-page .location-highlight__icon img { width: 34px; height: 34px; object-fit: contain; }
body #page .hip-location-page .location-highlight strong { display: block; font-size: 29px; font-weight: 800; line-height: 1.16; letter-spacing: -.025em; overflow-wrap: anywhere; }
body #page .hip-location-page .is-benefits .location-highlight strong { font-size: 19px; letter-spacing: -.01em; }
body #page .hip-location-page .location-highlight p { margin: 6px 0 0; font-size: 15px; line-height: 1.45; color: var(--plans-muted); }

/* The provider table is the existing comparison component with four columns, not five. */
body #page .hip-location-page .plans-comparison-table__row > span { min-width: 0; overflow-wrap: anywhere; }
body #page .hip-location-page .plans-comparison-table__row a { display: inline-flex; align-items: center; gap: 7px; }
body #page .hip-location-page .plans-comparison-table--providers .plans-comparison-table__head,
body #page .hip-location-page .plans-comparison-table--providers .plans-comparison-table__row { grid-template-columns: minmax(0,1.6fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr); }
body #page .hip-location-page .plans-comparison-table--providers .plans-comparison-table__row > span.plans-comparison-table__technology { color: var(--plans-muted); font-size: 14.5px; font-weight: 400; }
body #page .hip-location-page .plans-comparison-table--providers .plans-comparison-table__row > span.plans-comparison-table__price { color: var(--plans-green); font-weight: 800; font-size: 15px; }

/* Text blocks reuse general section typography and columns; compact artwork is the only special case. */
body #page .hip-location-page .location-content-section__inner { grid-template-columns: minmax(0,1fr); }
body #page .hip-location-page .location-content-section .column-content { min-width: 0; }
body #page .hip-location-page .location-content-section .section-intro { padding-left: 24px; overflow-wrap: break-word; }
body #page .hip-location-page .location-content-section.has-image .location-content-section__inner { grid-template-columns: minmax(0,1fr) 150px; }
body #page .hip-location-page .location-content-section.has-image.image-left .location-content-section__inner { grid-template-columns: 150px minmax(0,1fr); }
body #page .hip-location-page .location-content-section.image-left .location-content-section__image { order: -1; }
body #page .hip-location-page .location-content-section.is-split.has-image .location-content-section__inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
body #page .hip-location-page .location-content-section__image { width: 100%; min-width: 0; display: grid; place-items: center; }
body #page .hip-location-page .location-content-section.is-compact .location-content-section__image img { width: 150px; height: auto; max-width: 100%; border-radius: 0; margin: 0; }
body #page .hip-location-page .location-content-section.has-divider .location-content-section__inner { padding-bottom: 36px; border-bottom: 1px solid var(--plans-border); }

/* Directory and nearby links share one layout with a modifier. */
body #page .hip-location-page .location-city-links-section__panel { padding: 28px; border: 1px solid var(--plans-border); border-radius: 16px; background: linear-gradient(115deg,var(--plans-soft),#fff); }
body #page .hip-location-page .location-city-links-section__grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; margin-top: 38px; }
body #page .hip-location-page .location-city-links-section__grid a { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 50px; padding: 13px 18px; border: 1px solid #ddd5f7; border-radius: 8px; background: #fff; color: var(--plans-purple); font-size: 15px; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; transition: background .2s,border-color .2s; }
body #page .hip-location-page .location-city-links-section__grid a:hover { background: #f1edff; border-color: var(--plans-purple); }
body #page .hip-location-page .location-city-links-section__grid a[hidden],
body #page .hip-location-page .location-city-links-section__more[hidden] { display: none !important; }
body #page .hip-location-page .location-city-links-section__more { display: flex; justify-content: center; align-items: center; gap: 8px; width: 100%; padding: 14px; margin-top: 18px; background: #f0edfc; border: 0; border-radius: 8px; color: var(--plans-purple); font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1.4; cursor: pointer; }
body #page .hip-location-page :is(a,button):focus-visible { outline: 2px solid var(--plans-purple); outline-offset: 4px; }

@media (max-width: 1100px) {
 body #page .hip-location-page .location-highlight { padding-inline: 15px; gap: 14px; }
 body #page .hip-location-page .location-highlight strong { font-size: 25px; }
 body #page .hip-location-page .location-city-links-section__grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 900px) {
 body #page .hip-location-page .location-content-section.is-split.has-image .location-content-section__inner { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
 body #page .hip-location-page .location-hero-section__content { width: 76%; }
 body #page .hip-location-page .location-hero-section__art { opacity: .23; width: 70%; }
 body #page .hip-location-page .location-highlights-section__grid { grid-template-columns: 1fr; padding: 6px 22px; }
 body #page .hip-location-page .location-highlight { padding: 20px 0; }
 body #page .hip-location-page .location-highlight + .location-highlight { border-left: 0; border-top: 1px solid var(--plans-border); }
 body #page .hip-location-page .location-highlight strong { font-size: 28px; }
 body #page .hip-location-page .plans-comparison-table--providers .plans-comparison-table__row { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
 body #page .hip-location-page .plans-comparison-table--providers .plans-comparison-table__row > span.plans-comparison-table__provider,
 body #page .hip-location-page .plans-comparison-table--providers .plans-comparison-table__row > span.plans-comparison-table__action { grid-column: 1 / -1; }
 body #page .hip-location-page .plans-comparison-table--providers .plans-comparison-table__row > span.plans-comparison-table__technology,
 body #page .hip-location-page .plans-comparison-table--providers .plans-comparison-table__row > span.plans-comparison-table__price { display: block; }
 body #page .hip-location-page .location-content-section.is-compact.has-image .location-content-section__inner { grid-template-columns: minmax(0,1fr) 120px; }
 body #page .hip-location-page .location-content-section.is-compact.has-image.image-left .location-content-section__inner { grid-template-columns: 120px minmax(0,1fr); }
}
@media (max-width: 600px) {
 body #page .hip-location-page .location-hero-section__content { width: 100%; }
 body #page .hip-location-page .location-section-heading--marked { padding-left: 19px; }
 body #page .hip-location-page .location-content-section .section-intro { padding-left: 19px; }
 body #page .hip-location-page .location-city-links-section__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 body #page .hip-location-page .location-city-links-section__panel { padding: 22px 18px; }
 body #page .hip-location-page .location-city-links-section__grid a { padding-inline: 13px; }
 body #page .hip-location-page .location-content-section.is-compact.has-image .location-content-section__inner,
 body #page .hip-location-page .location-content-section.is-compact.has-image.image-left .location-content-section__inner { grid-template-columns: 1fr; }
 body #page .hip-location-page .location-content-section__image,
 body #page .hip-location-page .location-content-section.image-left .location-content-section__image { order: 0; }
 body #page .hip-location-page .location-content-section.is-compact .location-content-section__image img { width: 100px; }
 body #page .hip-location-page .plans-comparison-table--providers .plans-comparison-table__row > span.plans-comparison-table__technology { display: block; }
}
@media (prefers-reduced-motion: reduce) { body #page .hip-location-page *,body #page .hip-location-page *::before,body #page .hip-location-page *::after { transition: none !important; animation: none !important; } }

/* Avoid stacking a full homepage section's padding on both sides of every short location block. */
body #page .hip-location-page {
 --location-section-space: 36px;
 --location-related-space: 12px;
}
body #page .hip-location-page > .general-content-section,
body #page .hip-location-page > .recommended-plans-section,
body #page .hip-location-page > .comparison-section {
 padding-block: var(--location-section-space) !important;
}
body #page .hip-location-page > .location-hero-section > .page-hero__inner {
 min-height: 0;
 padding-block: 48px 56px;
}
body #page .hip-location-page > .location-highlights-section {
 padding-block: 32px 16px !important;
}
body #page .hip-location-page > .location-highlights-section + .recommended-plans-section {
 padding-top: 28px !important;
}
body #page .hip-location-page > .location-content-section.is-text + .comparison-section {
 padding-top: var(--location-section-space) !important;
}
body #page .hip-location-page > .location-content-section.has-divider {
 padding-bottom: 16px !important;
}
body #page .hip-location-page > .location-content-section.has-divider .location-content-section__inner {
 padding-bottom: 24px;
}
body #page .hip-location-page > .location-content-section.is-compact + .location-content-section.is-compact {
 padding-top: 20px !important;
}
body #page .hip-location-page > .faq-section {
 padding-block: 48px 56px !important;
}
@media (max-width: 820px) {
 body #page .hip-location-page { --location-section-space: 28px; }
 body #page .hip-location-page > .location-hero-section > .page-hero__inner { padding-block: 36px 44px; }
 body #page .hip-location-page > .location-highlights-section { padding-block: 24px 12px !important; }
 body #page .hip-location-page > .location-highlights-section + .recommended-plans-section { padding-top: 24px !important; }
 body #page .hip-location-page > .faq-section { padding-block: 36px 40px !important; }
}
@media (max-width: 600px) {
 body #page .hip-location-page { --location-section-space: 24px; }
 body #page .hip-location-page > .location-hero-section > .page-hero__inner { padding-block: 28px 36px; }
 body #page .hip-location-page > .location-content-section.has-divider .location-content-section__inner { padding-bottom: 20px; }
 body #page .hip-location-page > .location-content-section.is-compact + .location-content-section.is-compact { padding-top: 16px !important; }
 body #page .hip-location-page > .faq-section { padding-block: 32px 36px !important; }
}

/* Location-only heading scale; rich-text headings keep their existing styles. */
body #page .hip-location-page {
 --location-h2-main-size: 34px;
 --location-h2-support-size: 32px;
}
body #page .hip-location-page > .location-hero-section h1.page-hero__title {
 max-width: 100%;
}
body #page .hip-location-page > .location-hero-section .page-hero__description {
	max-width: 580px
}
body #page .hip-location-page > .recommended-plans-section > .section-container > h2.section-heading,
body #page .hip-location-page > .comparison-section > .section-container > .comparison-section__header > div > h2.section-heading,
body #page .hip-location-page > .location-faq-section > .faq-section__inner > h2.section-heading {
 font-size: var(--location-h2-main-size);
 font-weight: 800;
 line-height: 1.2;
 letter-spacing: -.01em;
}
body #page .hip-location-page > .location-content-section > .container > .location-content-section__inner > .column-content > h2.section-title,
body #page .hip-location-page > .location-city-links-section > .container > .location-city-links-section__panel > h2.section-title {
 font-size: var(--location-h2-support-size);
 font-weight: 800;
 line-height: 1.25;
 letter-spacing: -.01em;
}
@media (max-width: 1024px) {
 body #page .hip-location-page {
  --location-h2-main-size: 32px;
  --location-h2-support-size: 30px;
 }
}
@media (max-width: 600px) {
 body #page .hip-location-page {
  --location-h2-main-size: 30px;
  --location-h2-support-size: 28px;
 }
}

main.hip-location-page > section.location-content-section.has-divider:has(+ section:not(.has-divider)) .location-content-section__inner{

   border-bottom: none !important;
}
/* Shared city-link treatment and a predictable destination below the sticky header. */
body #page .hip-location-page #cities { scroll-margin-top: 112px; }
