/* The approved hero inherits its existing styling; this system begins below it. */
#homeExperience { --hp-ink:#10213d; --hp-muted:#53657e; --hp-line:#dfe7f0; --hp-base:#f8fafc; --hp-blue:#1b58c5; color:var(--hp-ink); background:var(--hp-base); }
#homeExperience [hidden] { display:none !important; }
#homeExperience ::selection { background:#d3e5ff; color:#10213d; }
#homeExperience :is(a,button,input,textarea):focus-visible { outline:3px solid #2684ff; outline-offset:4px; }
#homeExperience :is(input,textarea) { caret-color:var(--hp-blue); }
#homeExperience svg { width:24px; height:24px; flex:none; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
#homeExperience .hp-arrow { width:20px; height:20px; }
.hp-container { width:min(1440px,100%); margin-inline:auto; padding-inline:clamp(20px,4vw,64px); }
.hp-section { padding-block:80px; scroll-margin-top:90px; }
.hp-heading h2 { max-width:22ch; font-size:clamp(28px,3.1vw,42px); line-height:1.13; font-weight:600; text-wrap:balance; letter-spacing:-.03em; }
.hp-heading p { margin-top:16px; color:var(--hp-muted); max-width:66ch; font-size:16px; line-height:1.65; }
.hp-heading-row { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:32px; }
.hp-link { display:inline-flex; align-items:center; gap:10px; color:var(--hp-blue); font-size:14px; font-weight:600; min-height:44px; flex:none; }
.hp-link svg { transition:transform .2s var(--ease); }
.hp-navigator { padding-block:40px 30px; background:#fff; border-bottom:1px solid var(--hp-line); }
.hp-navigator .hp-heading h2 { max-width:none; font-size:26px; }
.hp-navigator .hp-heading p { margin-top:9px; font-size:15px; }
.hp-navigator-list { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:8px; margin-top:26px; }
.hp-choice { font:inherit; cursor:pointer; color:var(--hp-muted); border:0; background:transparent; }
.hp-navigator-list .hp-choice { display:flex; flex-direction:column; align-items:flex-start; gap:12px; text-align:left; padding:18px 12px; font-size:13px; line-height:1.4; border-radius:10px; min-height:112px; transition:background .2s,color .2s; }
.hp-navigator-list .hp-choice[aria-pressed=true] { background:#edf4ff; color:var(--hp-blue); }
.hp-navigator-detail { border-top:1px solid var(--hp-line); margin-top:20px; padding-top:16px; display:flex; justify-content:space-between; gap:24px; align-items:center; min-height:74px; }
.hp-navigator-detail p { font-size:14px; color:var(--hp-muted); }
.hp-navigator-detail strong { color:var(--hp-ink); margin-right:18px; }
.hp-tabs { display:flex; gap:32px; border-bottom:1px solid var(--hp-line); margin-bottom:28px; overflow-x:auto; }
.hp-tabs button { background:transparent; font:inherit; font-size:15px; font-weight:600; border:0; border-bottom:2px solid transparent; padding:14px 0; color:var(--hp-muted); cursor:pointer; flex:none; }
.hp-tabs button[aria-selected=true] { color:var(--hp-blue); border-bottom-color:var(--hp-blue); }
.hp-tabs button:focus-visible { outline-offset:-4px !important; }
.hp-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; align-items:stretch; }
.hp-product { color:var(--hp-ink); display:flex; flex-direction:column; min-width:0; }
.hp-product-image { background:#fff; border-radius:12px; aspect-ratio:4/3; flex:none; overflow:hidden; transition:box-shadow .25s var(--ease),transform .25s var(--ease); }
.hp-product-image img { width:100%; height:100%; object-fit:contain; transition:transform .3s var(--ease); padding:12px; }
.hp-product-title { margin-top:20px; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.hp-product h3 { font-size:18px; font-weight:600; line-height:1.3; }
.hp-product-title svg { color:var(--hp-blue); margin-top:2px; }
.hp-product p { color:var(--hp-muted); font-size:14px; line-height:1.6; margin-top:9px; flex:1; }
.hp-product-explore { display:block; font-size:13px; color:var(--hp-blue); margin-top:12px; font-weight:600; }
.hp-caption { color:var(--hp-muted); font-size:12px; line-height:1.6; margin-top:24px; }
.hp-spaces { background:#fff; }
.hp-products { background:linear-gradient(180deg,#fff 0%,#f7f5f0 64px,#f7f5f0 calc(100% - 64px),#fff 100%); }
.hp-segment { display:flex; align-items:center; border:1px solid var(--hp-line); border-radius:10px; padding:4px; flex:none; }
.hp-segment button { min-height:44px; padding:10px 18px; font-size:14px; font-weight:600; border-radius:7px; white-space:nowrap; }
.hp-segment button[aria-pressed=true] { background:var(--hp-ink); color:#fff; }
.hp-space-layout { display:grid; grid-template-columns:1fr 1.1fr; gap:44px; }
.hp-space-photo { min-width:0; }
.hp-space-photo > img { width:100%; height:320px; object-fit:cover; border-radius:12px; }
.hp-space-photo > div { padding-top:26px; }
.hp-space-photo h3 { font-size:28px; font-weight:600; }
.hp-space-photo p { font-size:15px; color:var(--hp-muted); margin-top:14px; max-width:58ch; }
.hp-space-featured > a { display:flex; gap:22px; padding-block:22px; border-bottom:1px solid var(--hp-line); }
.hp-space-featured > a:first-child { padding-top:0; }
.hp-space-featured img { width:100px; height:92px; object-fit:cover; border-radius:8px; flex:none; }
.hp-space-featured h3 { font-size:20px; font-weight:600; }
.hp-space-featured p { font-size:14px; color:var(--hp-muted); margin-top:8px; line-height:1.6; }
.hp-space-featured .hp-link { margin-top:5px; font-size:13px; }
.hp-space-more { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; margin-top:14px; }
.hp-space-more a { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:14px; padding-block:10px; min-height:44px; color:var(--hp-ink); border-bottom:1px solid var(--hp-line); }
.hp-space-more svg { color:var(--hp-blue); }
.hp-brand-row { margin-top:32px; padding:24px; display:grid; grid-template-columns:auto 1fr auto; gap:28px; align-items:center; background:#f3f7fd; border-radius:8px; }
.hp-brand-row > span { font-size:13px; line-height:1.5; color:var(--hp-muted); max-width:18ch; }
.hp-brand-row ul { display:flex; justify-content:space-between; flex-wrap:wrap; align-items:center; gap:18px 24px; list-style:none; padding:0; margin:0; }
.hp-brand-row strong { font-size:16px; letter-spacing:.01em; color:var(--hp-ink); white-space:nowrap; }
.hp-brand-row a { display:inline-flex; align-items:center; gap:10px; color:var(--hp-blue); font-size:13px; font-weight:600; min-height:44px; white-space:nowrap; }
.hp-brand-row a svg { transition:transform .2s var(--ease); }
.hp-enquiry-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start; }
.hp-delivery-note { color:var(--hp-muted); font-size:14px; line-height:1.7; margin-block:26px 20px; max-width:52ch; }
#projectAssistant { padding:32px; background:#fff; border-radius:12px; box-shadow:0 8px 36px #10213d09; min-width:0; }
.hp-progress { display:flex; justify-content:space-between; gap:10px; padding:0 0 22px; margin:0 0 28px; list-style:none; border-bottom:1px solid var(--hp-line); }
.hp-progress li { font-size:13px; color:var(--hp-muted); padding-top:12px; border-top:2px solid var(--hp-line); flex:1; }
.hp-progress li[aria-current=step] { color:var(--hp-blue); font-weight:700; border-top-color:var(--hp-blue); }
.hp-progress li.is-complete { border-top-color:var(--hp-ink); }
#projectAssistant fieldset { padding:0; margin:0; border:0; min-width:0; }
#projectAssistant :is(legend,h3) { font-size:22px; color:var(--hp-ink); font-weight:600; margin-bottom:20px; }
.hp-form-choices { display:flex; flex-wrap:wrap; gap:10px; }
.hp-form-choices label { position:relative; cursor:pointer; }
.hp-form-choices input { position:absolute; width:1px; height:1px; opacity:0; }
.hp-form-choices span { display:block; padding:12px 16px; min-height:46px; border:1px solid var(--hp-line); border-radius:8px; color:var(--hp-muted); font-size:14px; line-height:1.4; transition:background .2s,border-color .2s; }
.hp-form-choices input:checked + span { border-color:var(--hp-blue); background:#edf4ff; color:var(--hp-blue); }
.hp-form-choices input:focus-visible + span { outline:3px solid #2684ff; outline-offset:3px; }
.hp-field-note { color:var(--hp-muted); font-size:12px; margin-block:0 18px; }
.hp-form-actions { display:flex; gap:20px; align-items:center; justify-content:flex-end; margin-top:26px; }
.hp-back { margin-right:auto; min-height:44px; padding:10px 0; color:var(--hp-muted); background:none; border:0; cursor:pointer; font:inherit; font-size:14px; }
.hp-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.hp-fields .hp-field:last-child { grid-column:1/-1; }
.hp-field label { display:block; color:var(--hp-ink); font-size:14px; margin-bottom:8px; }
.hp-field label span { font-size:12px; color:var(--hp-muted); }
.hp-field :is(input,textarea) { display:block; width:100%; font:inherit; font-size:16px; border:1px solid #b9c8da; border-radius:7px; padding:11px 12px; background:#fff; color:var(--hp-ink); }
.hp-field textarea { resize:vertical; }
.hp-field input[aria-invalid=true] { border-color:#b02028; }
.hp-error { display:block; color:#a51c2c; font-size:12px; margin-top:8px; }
.hp-consent { display:flex; align-items:flex-start; gap:10px; color:var(--hp-muted); font-size:13px; margin-block:20px 12px; line-height:1.6; cursor:pointer; }
.hp-consent input { flex:none; accent-color:var(--hp-blue); width:18px; height:18px; margin-top:2px; }
.hp-email-review { margin-top:24px; padding-top:24px; border-top:1px solid var(--hp-line); }
.hp-email-review p { color:var(--hp-muted); font-size:14px; }
.hp-email-review dl { display:grid; grid-template-columns:auto 1fr; gap:10px 20px; font-size:13px; }
.hp-email-review dt { color:var(--hp-muted); }
.hp-email-review dd { margin:0; overflow-wrap:anywhere; }
.hp-email-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; margin-top:24px; }
@media (hover:hover) and (pointer:fine) {
  .hp-product:hover { color:var(--hp-ink); }
  .hp-product:hover .hp-product-image { transform:translateY(-3px); box-shadow:0 12px 24px #10213d0d; }
  .hp-product:hover img { transform:scale(1.025); }
  .hp-brand-row a:hover svg { transform:translateX(3px); }
  .hp-link:hover svg { transform:translateX(3px); }
  .hp-choice:hover { background:#edf4ff; color:var(--hp-blue); }
  .hp-space-more a:hover { color:var(--hp-blue); }
}
@media (max-width:1100px) {
  .hp-navigator-list { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .hp-navigator-list .hp-choice { min-height:94px; }
  .hp-heading-row { align-items:flex-start; }
  .hp-segment { align-self:flex-end; }
  .hp-brand-row { grid-template-columns:1fr auto; gap:16px 24px; }
  .hp-brand-row > span { max-width:none; }
  .hp-brand-row ul { grid-column:1/-1; grid-row:2; justify-content:flex-start; gap:20px 32px; }
  .hp-brand-row a { grid-column:2; grid-row:1; }
  .hp-space-layout { gap:28px; }
  .hp-enquiry-layout { gap:40px; }
}
@media (max-width:800px) {
  .hp-section { padding-block:54px; }
  .hp-navigator { padding-block:32px 24px; }
  .hp-heading-row { flex-direction:column; gap:20px; }
  .hp-segment { align-self:flex-start; }
  .hp-space-layout,.hp-enquiry-layout { grid-template-columns:1fr; gap:32px; }
  .hp-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 18px; }
  .hp-space-photo > img { height:280px; }
}
@media (max-width:480px) {
  .hp-navigator-list { display:flex; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:8px; }
  .hp-navigator-list .hp-choice { flex:0 0 132px; scroll-snap-align:start; min-height:104px; }
  .hp-navigator-detail { align-items:flex-start; flex-direction:column; gap:4px; }
  .hp-navigator-detail strong,.hp-navigator-detail span { display:block; }
  .hp-navigator-detail strong { margin-bottom:5px; }
  .hp-product h3 { font-size:16px; }
  .hp-product-title { gap:4px; margin-top:14px; }
  .hp-product p { font-size:13px; }
  .hp-product-image img { padding:6px; }
  .hp-tabs { gap:24px; }
  .hp-tabs button { font-size:14px; }
  .hp-space-featured img { width:72px; height:78px; }
  .hp-space-featured > a { gap:16px; }
  .hp-space-more { grid-template-columns:1fr; }
  .hp-space-photo > img { height:240px; }
  #projectAssistant { padding:22px 18px; }
  .hp-fields { grid-template-columns:1fr; }
  .hp-progress { gap:8px; }
  .hp-progress li { font-size:12px; }
  .hp-brand-row { grid-template-columns:1fr; padding:20px; gap:20px; }
  .hp-brand-row > span { max-width:none; }
  .hp-brand-row ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 10px; }
  .hp-brand-row strong { font-size:13px; letter-spacing:0; }
  .hp-brand-row a { grid-column:1; grid-row:3; }
  .hp-enquiry .hp-link { flex-wrap:wrap; }
}
@media (max-width:360px) {
  .hp-brand-row ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) {
  #homeExperience *,#homeExperience *::before,#homeExperience *::after { animation:none !important; transition:none !important; }
}
/* Decorative icon paths never intercept the control's pointer target. */
#homeExperience button svg { pointer-events:none; }
@starting-style { .hp-product-image { opacity:.75; } }
.hp-product-image { transition:opacity .2s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease); }

/* The portfolio strip follows the surrounding theme with quiet monochrome marks. */
.hp-brand-row { background:#f3f7fd; }
.hp-brand-row > span { color:var(--hp-muted); }
.hp-brand-row ul { flex-wrap:nowrap; gap:20px; }
.hp-brand-row li { display:flex; align-items:center; justify-content:center; min-width:0; flex:1 1 0; }
.hp-brand-logo { display:block; width:100%; max-width:112px; height:32px; object-fit:contain; filter:grayscale(1); }
.hp-brand-logo[alt="YALE"] { max-width:64px; height:42px; }
.hp-brand-logo[alt="HONEYWELL"] { max-width:124px; }
.hp-brand-row a { color:var(--hp-blue); }
:root[data-theme="dark"] .hp-brand-logo { filter:grayscale(1) invert(1) brightness(1.8); }
@media (max-width:1100px) { .hp-brand-row ul { justify-content:space-between; gap:24px; } }
@media (max-width:760px) {
 .hp-brand-row ul { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 18px; }
 .hp-brand-logo { height:28px; max-width:100px; }
 .hp-brand-logo[alt="YALE"] { height:38px; }
}
@media (max-width:380px) { .hp-brand-row ul { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Compact, unframed photography with a gentle lift and enlargement. */
.hp-tabs { flex-wrap:wrap; gap:0 26px; }
.hp-product-image { position:relative; aspect-ratio:16/9; background:transparent; border:0; box-shadow:none; border-radius:10px; }
.hp-product-image img { display:block; width:100%; height:100%; padding:0; object-fit:cover; transform:scale(1); }
.hp-product-title { margin-top:16px; }
.hp-image-label { position:absolute; right:8px; bottom:8px; padding:3px 6px; border-radius:4px; background:var(--white); color:var(--ink-soft); font-size:10px; }
@media (hover:hover) and (pointer:fine) {
 .hp-product:hover .hp-product-image { transform:translateY(-4px); box-shadow:none; }
 .hp-product:hover .hp-product-image img { transform:scale(1.045); }
}
.hp-product:focus-visible .hp-product-image { transform:translateY(-4px); }
.hp-product:focus-visible .hp-product-image img { transform:scale(1.045); }
@media (max-width:760px) {
 .hp-tabs { gap:0 20px; }
 .hp-tabs button { padding-block:12px; }
 .hp-product-image img { padding:0; }
}
@media (prefers-reduced-motion:reduce) {
 .hp-product:hover .hp-product-image,
 .hp-product:focus-visible .hp-product-image { transform:none; }
 .hp-product:hover .hp-product-image img,
 .hp-product:focus-visible .hp-product-image img { transform:none; }
}

.hp-collection-more { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; margin-top:24px; color:var(--hp-muted); font-size:12px; }
