/* Shared customer controls. Geometry belongs to the initial document, not a fetch. */
body[data-network-standard] { scrollbar-gutter: stable; }
body[data-network-standard] :is(main, section, article, form, figure, label) { min-inline-size: 0; }
body[data-network-standard] :is(button, .button, .text-button, .reveal-toggle) { touch-action: manipulation; }
body[data-network-standard] :is(button, [role="button"], .offer-select, .location-option) { -webkit-user-select: none; user-select: none; }
body[data-network-standard] :is(button, a, input, select, textarea):focus:not(:focus-visible) { outline: none; }
body[data-network-standard] :is(button, a, input, select, textarea):focus-visible { outline: 2px solid var(--accent, #285a43); outline-offset: 4px; }
body[data-network-standard] :is(button, a, input, select, textarea) { scroll-margin-block: 104px 28px; }

/* A directory is a list of places, with a separate action; it is not a three-card grid. */
body[data-network-standard] .grid.domain-grid { display: block; }
body[data-network-standard] .domain-grid > .domain-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0; }
body[data-network-standard] .domain-grid .domain-interest { display: grid; grid-template-columns: 22px minmax(0, 1.1fr) minmax(140px, .8fr) minmax(110px, .6fr); gap: 16px; align-items: center; min-block-size: 80px; padding: 16px; }
body[data-network-standard] .domain-grid div.domain-interest { cursor: default; }
body[data-network-standard] .domain-grid .domain-name { min-inline-size: 0; font-size: 16px; line-height: 1.45; overflow-wrap: anywhere; }
body[data-network-standard] .domain-grid .domain-area { grid-column: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; line-height: 1.4; }
body[data-network-standard] .domain-grid .domain-area :is(strong, small) { display: block; margin: 0; font-size: 13px; line-height: 1.4; }
body[data-network-standard] .domain-grid .domain-dot { display: block; font-size: 12px; line-height: 1.5; }
body[data-network-standard] .domain-grid.compact-domains .domain-dot { display: none; }
body[data-network-standard] .domain-grid .domain-location { min-inline-size: 92px; min-block-size: 48px; padding: 12px 16px; font-size: 14px; }
body[data-network-standard] .domain-grid .domain-network-mark { inline-size: 20px; text-align: center; color: var(--accent, #285a43); }

/* Price, scope and action each keep their own row before and after hydration. */
body[data-network-standard] .offer-grid:has(> .offer-panel) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 24px; }
body[data-network-standard] .offer-grid > .offer-panel { display: flex; flex-direction: column; gap: 24px; min-inline-size: 0; }
body[data-network-standard] .offer-grid > .offer-panel > .offer-select { display: flex; flex-direction: column; gap: 20px; min-inline-size: 0; padding-block: 4px 0; }
body[data-network-standard] .offer-grid > .offer-panel .offer-select > :is(h2, h3) { min-block-size: 2.5em; margin: 0; padding-inline-end: 26px; line-height: 1.25; }
body[data-network-standard] .offer-grid > .offer-panel .offer-description { min-block-size: 7.75em; margin: 0; line-height: 1.55; }
body[data-network-standard] .offer-grid > .offer-panel .offer-price { display: flex; flex-direction: column; justify-content: flex-start; min-block-size: 96px; margin: auto 0 0; line-height: 1.15; font-variant-numeric: tabular-nums; }
body[data-network-standard] .offer-grid > .offer-panel .offer-price small { display: block; min-block-size: 3em; margin: 8px 0 0; font-size: 14px; font-weight: 400; line-height: 1.5; letter-spacing: 0; }
body[data-network-standard] .offer-grid > .offer-panel > :is(.button, .text-link) { margin-block-start: auto; min-block-size: 48px; }
body[data-network-standard] .care-price-pair { display: grid; align-content: start; gap: 12px; min-block-size: 108px; margin-block: 20px; font-variant-numeric: tabular-nums; }
body[data-network-standard] .care-price-pair > .care-price-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; font-size: 15px; line-height: 1.4; letter-spacing: 0; }
body[data-network-standard] .care-price-line > strong { font-size: 34px; font-weight: 600; line-height: 1.1; letter-spacing: -.035em; }
body[data-network-standard] .care-price-line > span { font-size: 15px; line-height: 1.4; white-space: nowrap; }

/* A location choice changes the pin and summary, never the surrounding control slots. */
body[data-network-standard] .location-address-count { min-block-size: 24px; margin-block: 16px; font-variant-numeric: tabular-nums; }
body[data-network-standard] .location-option { display: grid; grid-template-columns: minmax(0, 1fr); min-block-size: 88px; gap: 0; padding: 18px; text-align: left; }
body[data-network-standard] .location-option > span { min-inline-size: 0; }
body[data-network-standard] .location-option strong { display: block; font-size: 16px; font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; }
body[data-network-standard] .location-option small { display: block; margin-block-start: 8px; font-size: 13px; line-height: 1.45; }
body[data-network-standard] .location-option[aria-pressed="true"] { background: #fff; color: var(--ink, #193c2e); border-color: var(--accent, #285a43); box-shadow: inset 0 0 0 2px var(--accent, #285a43); }
body[data-network-standard] .location-decision { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; min-block-size: 154px; padding-block: 20px; }
body[data-network-standard] .location-decision > p { grid-column: 1 / -1; width: auto; min-block-size: 3.2em; margin: 0; line-height: 1.6; }
body[data-network-standard] .location-decision #location-continue { grid-column: 1; display: inline-flex; align-items: center; justify-content: center; min-block-size: 48px; margin: 0; }
body[data-network-standard] .location-decision [data-clear-location] { grid-column: 2; min-inline-size: 112px; min-block-size: 48px; margin: 0; }
body[data-network-standard] .location-decision :is(#location-continue, [data-clear-location])[hidden] { display: inline-flex !important; visibility: hidden; pointer-events: none; }

/* A verified photo is painted directly and replaced only after its exact successor decodes. */
body[data-network-standard] :is(.product-image, .commerce-basket-photo, .hero-stock-image) { position: relative; overflow: hidden; isolation: isolate; }
body[data-network-standard] .product-image { aspect-ratio: 4 / 3; min-block-size: 0; }
body[data-network-standard] .commerce-product > figure { align-self: start; min-block-size: 0; margin: 0; }
body[data-network-standard] :is(.product-image, .commerce-basket-photo) > img { display: block; inline-size: 100%; block-size: 100%; object-fit: contain; object-position: center; }
body[data-network-standard] .commerce-product > figure > :is(img, .product-placeholder) { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 4 / 3; object-fit: contain; object-position: center; }
body[data-network-standard] .commerce-product > figure > figcaption { box-sizing: border-box; min-block-size: 4.4em; padding: 12px 16px; font-size: 13px; line-height: 1.5; }
body[data-network-standard] :is(.product-image, .commerce-product > figure, .commerce-basket-photo) > .product-photo-incoming { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
body[data-network-standard] .product-placeholder[data-photo-state="pending"] { background: transparent; color: transparent; border: 0; }
body[data-network-standard] .product-placeholder:not([data-photo-state="pending"]) { display: grid; place-items: center; min-block-size: 140px; padding: 20px; color: var(--muted, #59645e); text-align: center; font-size: 14px; line-height: 1.5; }
body[data-network-standard] .product-card .product-info { gap: 16px; }
body[data-network-standard] .product-card .product-specs { display: grid; gap: 8px; margin-block: 0; line-height: 1.5; }
body[data-network-standard] .commerce-specifications { display: grid; gap: 0; margin: 0; }
body[data-network-standard] .commerce-specifications > div { display: grid; grid-template-columns: minmax(110px, .8fr) minmax(0, 1.4fr); gap: 20px; padding-block: 14px; border-block-end: 1px solid var(--line, #dce2df); }
body[data-network-standard] .commerce-specifications :is(dt, dd) { margin: 0; line-height: 1.55; }
body[data-network-standard] .commerce-specifications dt { font-weight: 500; }
body[data-network-standard] .commerce-specifications dd { overflow-wrap: anywhere; }
body[data-network-standard] .commerce-basket-item { display: grid; grid-template-columns: 130px minmax(0, 1fr) minmax(240px, 290px); align-items: start; gap: 24px; }
body[data-network-standard] .commerce-basket-photo { display: block; aspect-ratio: 4 / 3; min-block-size: 0; }
body[data-network-standard] .commerce-basket-description h2 { margin: 0 0 12px; font-size: 21px; line-height: 1.3; }
body[data-network-standard] .commerce-basket-description p { margin: 0; line-height: 1.6; }
body[data-network-standard] .commerce-basket-controls { display: grid; grid-template-columns: minmax(74px, 1fr) minmax(96px, 1fr); align-items: end; gap: 16px; min-inline-size: 0; }
body[data-network-standard] .commerce-basket-controls > label { display: grid; gap: 8px; margin: 0; font-size: 14px; line-height: 1.4; }
body[data-network-standard] .commerce-basket-controls input { inline-size: 100%; max-inline-size: 100%; min-block-size: 44px; margin: 0; }
body[data-network-standard] .commerce-line-total { display: grid; gap: 8px; margin: 0; text-align: right; }
body[data-network-standard] .commerce-line-total > span { font-size: 14px; line-height: 1.4; }
body[data-network-standard] .commerce-line-total > strong { display: flex; align-items: center; justify-content: flex-end; min-block-size: 44px; font-size: 19px; font-variant-numeric: tabular-nums; }
body[data-network-standard] .commerce-basket-controls > button { grid-column: 1 / -1; min-block-size: 44px; margin: 0; }

body[data-network-standard] :is(.estimate-mode-option, .estimate-plan-option)[aria-pressed="true"] { color: #193c2e; background: #fff; border-color: #285a43; box-shadow: inset 0 0 0 2px #285a43; }
body[data-network-standard] .estimate-plan-option small { min-block-size: 6.2em; line-height: 1.55; }
body[data-network-standard] .estimate-intake-note { min-block-size: 3.2em; margin-block: 20px; line-height: 1.6; }
body[data-network-standard] .native-intake-link > .estimate-continue { display: inline-flex; align-items: center; justify-content: center; min-block-size: 48px; min-inline-size: 244px; margin-block: 4px 0; }
body[data-network-standard] .native-intake-link > .estimate-continue:is(:hover, :active) { color: #fff; background: #214b37; border-color: #214b37; }
body[data-network-standard] .reveal-toggle { min-block-size: 56px; padding: 16px; font-size: 17px; font-weight: 500; line-height: 1.5; }
body[data-network-standard] .reveal-toggle:is(:hover, [aria-expanded="true"]) { background: #edf3ef; color: #193c2e; }
body[data-network-standard] .reveal-inner { padding: 8px 16px 24px; line-height: 1.65; }
body[data-network-standard] footer :is(.footer-column, .footer-links, .footer-nav) a { display: flex; align-items: center; min-block-size: 44px; inline-size: 100%; box-sizing: border-box; padding-block: 8px; line-height: 1.5; }

@media (min-width: 1000px) {
  body[data-network-standard] .location-map-column { position: sticky; top: 104px; align-self: start; }
  body[data-network-standard] .commerce-catalogue > .product-controls { position: sticky; top: 80px; z-index: 20; background: var(--paper, #fff); border-block-end: 1px solid var(--line, #dce2df); }
}
@media (min-width: 901px) {
  body[data-network-standard] .domain-grid.compact-domains .domain-interest { grid-template-columns: 22px minmax(0, 1.1fr) minmax(140px, .8fr); }
}
@media (max-width: 900px) {
  body[data-network-standard] .domain-grid .domain-interest { grid-template-columns: 22px minmax(0, 1fr) minmax(110px, .75fr); }
  body[data-network-standard] .domain-grid .domain-dot { grid-column: 2 / -1; }
  body[data-network-standard] .offer-grid:has(> .offer-panel) { grid-template-columns: 1fr; }
  body[data-network-standard] .offer-grid > .offer-panel .offer-description { min-block-size: 0; }
  body[data-network-standard] .offer-grid > .offer-panel .offer-select > :is(h2, h3) { min-block-size: 0; }
  body[data-network-standard] .offer-grid > .offer-panel .offer-price { min-block-size: 88px; }
  body[data-network-standard] .commerce-basket-item { grid-template-columns: 104px minmax(0, 1fr); gap: 20px; }
  body[data-network-standard] .commerce-basket-controls { grid-column: 2; }
}
@media (max-width: 600px) {
  body[data-network-standard] .domain-grid .domain-interest { grid-template-columns: 20px minmax(0, 1fr); gap: 8px 12px; padding: 16px 12px; }
  body[data-network-standard] .domain-grid .domain-area { grid-column: 2; }
  body[data-network-standard] .domain-grid .domain-dot { grid-column: 2; }
  body[data-network-standard] .domain-grid .domain-location { min-inline-size: 68px; padding-inline: 10px; }
  body[data-network-standard] .location-decision { grid-template-columns: minmax(0, 1fr); min-block-size: 210px; }
  body[data-network-standard] .location-decision [data-clear-location] { grid-column: 1; justify-self: start; }
  body[data-network-standard] .commerce-basket-item { grid-template-columns: 80px minmax(0, 1fr); gap: 16px; }
  body[data-network-standard] .commerce-basket-controls { grid-column: 1 / -1; grid-template-columns: minmax(72px, 1fr) minmax(96px, 1fr) auto; gap: 12px; }
  body[data-network-standard] .commerce-basket-controls > button { grid-column: 3; min-inline-size: 78px; padding-inline: 12px; }
  body[data-network-standard] .commerce-basket-description h2 { font-size: 18px; }
  body[data-network-standard] .commerce-line-total > strong { font-size: 17px; }
  body[data-network-standard] .commerce-specifications > div { grid-template-columns: minmax(90px, .8fr) minmax(0, 1.4fr); gap: 16px; }
  body[data-network-standard] .native-intake-link > .estimate-continue { inline-size: 100%; min-inline-size: 0; }
}
@media (prefers-reduced-motion: reduce) {
  body[data-network-standard] { scroll-behavior: auto; }
  body[data-network-standard] :is(.reveal-panel, .reveal-symbol, .product-card, .product-image, .location-option, .offer-panel, .button) { animation: none !important; transition: none !important; }
}
