/* Shared action geometry. Navigation, inline links and interactive cards keep their own layout. */
:root {
  --action-height: 44px;
  --action-radius: 8px;
  --action-gap: 12px;
  --action-orange-hover: #B84208;
  --action-navy-hover: #202B4B;
}

.button,
.hero-search button[type=submit],
.zone-search-form button,
.zone-saved-filter,
.zone-text-button,
.zone-back,
.zone-load-more,
.zone-checkout,
.zone-detail-contact,
.zone-enquiry-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--action-gap);
  min-height: var(--action-height);
  max-width: 100%;
  padding: 10px 18px;
  border: 1px solid transparent;
  border-radius: var(--action-radius);
  font-weight: 650;
  line-height: 22px;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  overflow-wrap: anywhere;
}

.button-secondary,
.zone-back,
.zone-load-more,
.zone-detail-contact,
.zone-enquiry-actions a {
  border-color: var(--navy);
  background: var(--navy);
  color: var(--white);
}

.button-secondary:hover,
.zone-back:hover,
.zone-load-more:hover,
.zone-detail-contact:hover,
.zone-enquiry-actions a:hover {
  border-color: var(--action-navy-hover);
  background: var(--action-navy-hover);
  text-decoration: none;
}

.zone-saved-filter,
.zone-text-button { border-color: #ccd2dd; background: var(--white); color: var(--navy); }
.zone-text-button:hover { background: var(--surface); }

.button-row,
.help-actions,
.contact-direct-actions {
  display: inline-grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  width: max-content;
  max-width: 100%;
  align-items: stretch;
  gap: var(--action-gap);
}

.button-row > .button,
.button-row > form,
.help-actions > .button,
.contact-direct-actions > .button { min-width: 0; width: auto; }

.button-row > form {
  display: flex;
  margin: 0;
}

.button-row > form > .button { flex: 1; }
.help-step > .help-action { margin-top: auto; }
.help-note-card .help-checklist + .help-action { margin-top: 22px; }
.help-price-card { display: flex; flex-direction: column; }
.help-price-card .button { margin-top: auto; align-self: flex-start; width: min(100%, 240px); }

.main-nav > .nav-account {
  justify-content: center;
  min-height: var(--action-height);
  border-radius: var(--action-radius);
  padding: 10px 15px;
  line-height: 22px;
  background: var(--orange);
  color: var(--white);
}

.main-nav > .nav-account:hover { background: var(--action-orange-hover); color: var(--white); }

.burger,
.zone-card-save,
.zone-icon-button,
.zone-map-button {
  width: var(--action-height);
  height: var(--action-height);
  min-width: var(--action-height);
  min-height: var(--action-height);
  flex-shrink: 0;
  border-radius: var(--action-radius);
}

.zone-card-save,
.zone-icon-button,
.zone-map-button {
  display: inline-grid;
  place-items: center;
  padding: 10px;
  border: 1px solid #ccd2dd;
  background: var(--white);
  color: var(--navy);
}

.zone-card-copy { padding-right: 44px; }
.zone-detail-topline { flex-wrap: wrap; gap: var(--action-gap); }
.zone-detail-tools { gap: var(--action-gap); margin-left: auto; }
.zone-back { padding-inline: 10px; gap: 6px; }
.zone-filter-row { gap: var(--action-gap); }
.zone-select-wrap select { height: var(--action-height); border-radius: var(--action-radius); }
.zone-saved-filter { padding-inline: 10px; gap: 6px; }
.zone-text-button { padding-inline: 12px; }
.zone-search-form { height: 54px; }
.zone-search-form button { padding-inline: 12px; }
.zone-results-heading { align-items: center; gap: var(--action-gap); }
.zone-load-more { margin-top: var(--action-gap); }
.zone-detail-actions,
.zone-enquiry-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
  align-items: stretch;
  gap: var(--action-gap);
}
.zone-detail-actions > a { width: auto; margin: 0; padding-inline: 12px; font-size: 12px; }
.zone-enquiry-actions a { width: auto; padding-inline: 12px; font-size: 12px; }
.zone-empty .button { text-decoration: none; }

.button-primary,
.hero-search button[type=submit],
.zone-search-form button,
.zone-checkout,
.zone-enquiry-actions .zone-enquiry-primary {
  min-height: var(--action-height);
  border: 1px solid transparent;
  border-radius: var(--action-radius);
  background: var(--orange);
  color: var(--white);
  box-shadow: none;
}

.button-primary:hover,
.hero-search button[type=submit]:hover,
.zone-search-form button:hover,
.zone-checkout:hover,
.zone-enquiry-actions .zone-enquiry-primary:hover {
  border-color: transparent;
  background: var(--action-orange-hover);
  box-shadow: none;
}

.help-callout .button.button-primary { background: var(--orange); color: var(--white); }
.help-callout .button.button-primary:hover { background: var(--action-orange-hover); }
.help-price-card-dark .button-light { border-color: var(--orange); background: var(--orange); color: var(--white); }
.help-price-card-dark .button-light:hover { border-color: var(--action-orange-hover); background: var(--action-orange-hover); }

select:not([multiple]):not([size]),
select:not([multiple])[size="0"],
select:not([multiple])[size="1"] {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 46px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23D6500A' d='M0 1h12L6 8Z'/%3E%3C/svg%3E");
  background-position: right 16px center;
  background-size: 12px 8px;
  background-repeat: no-repeat;
}

.contact-direct { margin-top: 28px; }
.contact-direct h2 { margin-bottom: 12px; font-size: 22px; }
.contact-direct p { color: var(--muted); }
.contact-direct-email { color: var(--navy); overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 4px; }
.contact-direct-actions .button { min-width: 132px; }
.contact-direct-actions svg { flex: 0 0 20px; width: 20px; height: 20px; }
.zone-saved-filter[aria-pressed=true],
.zone-card-save[aria-pressed=true],
.zone-icon-button[aria-pressed=true] { border-color: var(--orange); }

.hero-search button[type=submit] { padding-inline: 16px; }
.hero-bottom #hero-video-toggle { min-height: var(--action-height); border-radius: var(--action-radius); }
.zone-view-toggle { min-height: var(--action-height); border-radius: var(--action-radius); }

/* Basemap choices and zoom remain grouped controls. */
.zone-map-style button { min-height: var(--action-height); }
.zone-map .mapboxgl-ctrl-group { border-radius: var(--action-radius); }
.zone-map .mapboxgl-ctrl-group button { width: var(--action-height); height: var(--action-height); }
.zone-map-tools { top: 123px; gap: var(--action-gap); }

@media (max-width: 800px) {
  .zone-shell.has-selection .zone-map-tools,
  .zone-shell.has-enquiry .zone-map-tools {
    top: auto;
    bottom: 34px;
    left: 14px;
    right: auto;
    flex-direction: row;
  }
  .zone-shell.has-selection:not(.list-view) .zone-view-toggle,
  .zone-shell.has-enquiry:not(.list-view) .zone-view-toggle { left: 126px; right: auto; }
}

@media (max-width: 800px) and (max-height: 740px) {
  .zone-shell.has-selection .zone-map-key,
  .zone-shell.has-enquiry .zone-map-key { padding: 3px 8px; font-size: 10px; line-height: 14px; }
}

@media (max-width: 480px) {
  .button-row,
  .help-actions,
  .contact-direct-actions { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .help-actions > .button { padding-inline: 12px; }
  .hero-search button[type=submit] { padding-inline: 10px; }
}

@media (max-width: 350px) {
  .help-actions,
  .contact-direct-actions { grid-template-columns: 1fr; }
  .contact-direct-actions .button { min-width: 0; padding-inline: 12px; }
}
