/* Blue Heron Electrical sister-site theme. Layout and rental states stay shared.
   Local system typography until licensed Sora assets are verified. */
:root {
  --blue: #204ce5;
  --navy: #002266;
  --ink: #111827;
  --muted: #536074;
  --line: #d9dfe8;
  --soft: #f3f5fa;
  --paper: #fff;
  --sage: #eef2fc;
  --sand: #fff4dc;
  --radius: 8px;
  --shadow: 0 8px 24px #0022660a;
}
body { background: #fff; font-family: "Segoe UI", system-ui, sans-serif; }
h1, h2 { text-transform: uppercase; font-weight: 650; letter-spacing: -.025em; }
h3 { font-weight: 650; }
/* Keep long review/signing headings in sentence case for document readability. */
.agreement-page h1, .agreement-page h2 { text-transform: none; }
.preview-bar { background: var(--navy); color: #fff; }
.site-header { background: #fff; border-bottom: 1px solid var(--line); }
.wordmark .rental-brand { border-color: var(--line); }
.button { border-radius: 4px; box-shadow: none; position: relative; overflow: hidden; }
.button:hover { background: var(--navy); box-shadow: none; }
.button::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 30%, #ffffff30 50%, transparent 70%);
  transform: translateX(-120%); transition: transform .55s ease;
}
.button:hover::after, .button:focus-visible::after { transform: translateX(120%); }
.button-arrow { border-radius: 4px; }
.eyebrow { color: var(--blue); }
.mobile-menu summary, .mobile-menu nav,
.header-inner .mobile-menu nav > a { border-radius: 4px; }
.mobile-menu summary { border-color: var(--line); }
.mobile-menu[open] summary, .mobile-menu nav > a:hover { background: var(--soft); }
.hero {
  width: 100%; margin: 0; border-radius: 0; color: #fff;
  background: linear-gradient(115deg, #002266 15%, #102f88 65%, #204ce5);
}
.hero::after { display: none; }
.hero-grid { gap: 40px; }
.hero-copy h1 { font-size: clamp(2.4rem, 4.2vw, 3.8rem); font-weight: 650; }
.hero-copy h1 em { color: #fff; }
.hero-copy p, .hero-benefits { color: #e0e7fc; }
.hero-tag { background: #ffffff0d; border-color: #ffffff40; color: #fff; border-radius: 4px; }
.status-dot { background: #9db7ff; }
.hero-benefits span::before { color: #a9c0ff; }
.hero .text-link { color: #fff; }
.hero .button { border-color: #ffffff45; }
.hero-art { padding: 20px 0; }
.art-orbit {
  inset: 0 0 6%; border-radius: 8px; border: 1px solid #ffffff35;
  background: linear-gradient(145deg, #eef3ff, #cad7fb); transform: none;
}
.art-orbit::before { border-radius: 4px; border-color: #204ce530; }
.art-caption { color: var(--navy); top: 4%; }
.art-caption > span { color: var(--blue); }
.hero-note { border-radius: 4px; background: #fff; border-color: var(--line); transform: none; }
.hero-note .note-icon { border-radius: 4px; color: var(--blue); background: var(--sage); }
.art-label { color: #e0e7fc; }
.trust-strip { border-bottom: 1px solid var(--line); }
.trust-grid { padding-bottom: 28px; }
.trust-grid span { border-radius: 4px; color: var(--blue); background: var(--sage); }
.equipment-card { border-radius: 8px; border-color: var(--line); padding: 0; overflow: hidden; }
.equipment-card:hover { border-color: var(--blue); box-shadow: 0 12px 28px #00226612; }
.card-image, .equipment-card:nth-child(3n+2) .card-image,
.equipment-card:nth-child(3n+3) .card-image { border-radius: 0; background: #eef2fa; }
.card-body { padding: 24px 20px; }
.card-body h3 span { background: var(--blue); color: #fff; border-radius: 4px; }
.image-label { background: #fff; color: var(--navy); border: 1px solid var(--line); border-radius: 4px; }
.card-rates > div, .panel-rates > div { border-radius: 4px; }
.how-section { margin: 0; border-radius: 0; background: #f3f5fa; }
.steps-grid article { border-radius: 4px; background: #fff; border-color: var(--line); }
.step-art, .steps-grid article:nth-child(2) .step-art,
.steps-grid article:nth-child(3) .step-art { border-radius: 4px; background: var(--sage); transform: none; }
.step-art svg { stroke: var(--blue); }
.step-number { color: var(--blue); }
.delivery-panel { background: var(--navy); color: #fff; border-radius: 8px; border: 0; }
.delivery-panel .eyebrow, .delivery-panel p { color: #dce6ff; }
.delivery-price { background: #ffffff0d; border-radius: 4px; border-color: #ffffff40; }
.delivery-price strong, .delivery-price > .delivery-icon { color: #fff; }
.delivery-price small { color: #dce6ff; }
.site-footer { background: #f5f5f5; border-top: 1px solid var(--line); border-radius: 0; }
.footer-bottom { border-color: var(--line); }
.site-footer a { overflow-wrap: anywhere; }
.heading-tags span { border-radius: 4px; border-color: var(--line); background: var(--soft); color: var(--navy); }
.catalog-search, .detail-info, .booking-panel,
.draft-card, .customer-form, .signature-panel, .review-document, .draft-empty {
  background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow);
}
.catalog-search { background: var(--soft); }
.catalog-search input, .catalog-search select, .form-field input,
.form-field select { background: #fff; border-color: #aab5c7; border-radius: 4px; }
.empty-state { border-radius: 8px; border-color: #aab5c7; }
.detail-image { border-radius: 8px; background: #eef2fa; border-color: var(--line); }
/* Preserve the whole machine in portrait manufacturer model photographs. */
.card-image > .model-photo, .detail-image > .model-photo { object-fit: contain; }
.spec-list li { border-radius: 4px; background: var(--soft); }
.spec-list li::before { color: var(--blue); }
.estimate-result { border-radius: 4px; background: var(--sage); }
.checkout-notice { border-radius: 4px; background: var(--soft); }
.legal-warning, .error-summary { border-radius: 4px; }
.preview-progress li { border-radius: 4px; background: var(--soft); border-color: var(--line); }
.preview-progress span { background: #fff; }
.preview-progress [aria-current] { background: var(--sage); color: var(--navy); border-color: var(--blue); }
.draft-renewal { border-radius: 4px; }
.draft-total { background: var(--soft); }
.subtotal-list .subtotal { border-color: var(--line); }
.customer-form input:not([type=checkbox]), .signature-panel input:not([type=checkbox]),
.signature-panel select { background: #fff; border-color: #aab5c7; border-radius: 4px; }
.agreement-frame { border-color: var(--line); border-radius: 4px; }
.signature-panel canvas { border-radius: 4px; background: #fff; }
.rental-calendar { border-radius: 8px; background: var(--soft); border-color: var(--line); }
.date-selection button, .calendar-toolbar button { border-radius: 4px; background: #fff; border-color: #aab5c7; }
.date-selection .active { background: var(--sage); border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
#calendar-status, .calendar-weekdays, .calendar-legend { color: var(--muted); }
.calendar-date { border-radius: 4px; }
.calendar-date:not(.unavailable):not(.past):not(.in-range):not(.selected):not(.return-only) {
  background: #fff; color: var(--navy); border-color: var(--line);
}
.calendar-date.in-range { background: #e4ebff; color: var(--navy); border-color: #bacaff; border-radius: 4px; }
.calendar-date.selected, .calendar-legend .selected-key { background: var(--blue); border-color: var(--blue); color: #fff; border-radius: 4px; }
.calendar-date.return-only { background: linear-gradient(135deg, #fff 65%, #f2d6d2 65%); color: var(--navy); }
.calendar-date.return-only.selected { background: linear-gradient(135deg, #204ce5 72%, #8c5252 72%); color: #fff; border-color: var(--blue); }
.calendar-date.today { box-shadow: inset 0 -3px 0 #204ce5; }
.calendar-disclaimer { border-color: var(--line); }
.contact-pending { display: block; margin-bottom: .5rem; font-size: .9rem; }
.calendar-date { position: relative; }
.unavailable-marker { position: absolute; right: 2px; bottom: 0; font-size: .65rem; line-height: 1; }
@media (max-width: 740px) {
  .hero-grid { gap: 0; }
  .hero-copy h1 { font-size: clamp(2rem, 7.4vw, 3.4rem); }
  .hero-art { margin-top: 35px; }
  .art-caption { top: 3%; font-size: .52rem; }
  .trust-grid { padding-bottom: 22px; }
  .card-body { padding: 22px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .button::after { display: none; }
}