/* Hero enquiry form (scripts/hero-form.mjs). Field and button styles copy the contact page's (.nsb-input, .sweep-btn),
   which the site only loads on some pages, so they are repeated here under their own names. */
.ph-hero-grid { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .ph-hero-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 4rem; } }
.ph-hero-copy { min-width: 0; }
.ph-hero-aside { position: relative; z-index: 10; width: 100%; max-width: 30rem; justify-self: end; }
@media (max-width: 1023px) { .ph-hero-aside { justify-self: stretch; max-width: none; } }
.ph-hero-aside--home { padding-bottom: 2.5rem; }
@media (min-width: 1024px) { .ph-hero-aside--home { padding-bottom: 0; } }
.ph-hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; opacity: .4; pointer-events: none; }
.ph-hero-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, var(--color-brand-bg) 0%, color-mix(in srgb, var(--color-brand-bg) 88%, transparent) 45%, color-mix(in srgb, var(--color-brand-bg) 55%, transparent) 100%); }
@media (max-width: 1023px) { .ph-hero-shade { background: color-mix(in srgb, var(--color-brand-bg) 82%, transparent); } }
.ph-quote { background: var(--color-brand-surface); border: 1px solid rgb(255 255 255 / .08); border-top: 3px solid var(--color-brand-accent); padding: 1.5rem; box-shadow: 0 25px 50px -12px rgb(0 0 0 / .6); }
@media (min-width: 640px) { .ph-quote { padding: 1.75rem; } }
.ph-quote-title { margin: 0 0 1.1rem; font-family: var(--font-heading); font-weight: 700; font-size: 1.125rem; line-height: 1.35; color: #fff; text-align: center; }
.ph-quote-form { display: grid; gap: .7rem; }
.ph-input { width: 100%; background: var(--color-brand-bg); border: 1px solid rgba(255,255,255,.1); color: var(--color-brand-text, #f5f5f5); font-family: var(--font-body); font-size: .9375rem; padding: .75rem 1rem; outline: none; transition: border-color .2s; clip-path: polygon(0 0, 100% 0, 98% 100%, 0 100%); border-radius: 0; }
.ph-input:focus { border-color: var(--color-brand-secondary); }
.ph-input::placeholder { color: var(--color-brand-muted); opacity: 1; }
select.ph-input { appearance: auto; color: var(--color-brand-text, #f5f5f5); }
select.ph-input:invalid { color: var(--color-brand-muted); }
textarea.ph-input { resize: vertical; min-height: 5.5rem; }
.ph-quote-btn { position: relative; overflow: hidden; display: inline-flex; width: 100%; align-items: center; justify-content: center; gap: .5rem; padding: 1rem 1.75rem; font-family: var(--font-heading); font-size: 1rem; font-weight: 700; color: var(--color-brand-bg); background: var(--color-brand-accent); clip-path: polygon(4% 0, 100% 0, 96% 100%, 0 100%); border: 0; cursor: pointer; }
.ph-quote-btn-label { position: relative; z-index: 10; }
.ph-quote-btn:disabled { cursor: not-allowed; opacity: .6; }
.ph-quote-status { margin: .25rem 0 0; font-size: .875rem; text-align: center; }
.ph-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
