/* Launch usability adjustments layered over the approved reference design. */
:root { --focus-colour:#dea234; }
html { scroll-padding-top:120px; }
body { font-family:Jost,system-ui,sans-serif; }
img { max-width:100%; }
button, a { -webkit-tap-highlight-color:transparent; }
button:focus-visible, a:focus-visible { outline:3px solid var(--focus-colour); outline-offset:4px; }
.semantic-heading { margin-top:0; font-weight:400; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:100; top:12px; left:12px; padding:14px 20px; background:#dea234; color:#221d46; transform:translateY(-200%); font:500 16px/1.4 Jost,sans-serif; }
.skip-link:focus { transform:none; }
.ref-2 { font-size:12px; letter-spacing:.14em; }
.ref-7>a { display:inline-flex; align-items:center; min-height:48px; box-sizing:border-box; font-size:14px; letter-spacing:.09em; }
.nav-contact { color:#dea234; padding:10px 20px; text-transform:uppercase; }
.menu-toggle { display:none; }
.ref-20,.ref-27,.ref-42,.ref-53,.ref-61,.ref-69,.ref-74,.ref-87,.ref-98,.ref-110,.ref-121,.ref-138,.ref-153,.ref-185 { font-size:12px; }
.ref-27 { color:#c4bdd4; }
.ref-42,.ref-53,.ref-61,.ref-69,.ref-74,.ref-153,.ref-185 { color:#856023; }
.ref-87,.ref-98,.ref-110,.ref-121 { color:#6e5f54; }
.ref-52,.ref-60,.ref-68,.ref-89,.ref-100,.ref-112,.ref-123,.ref-160,.ref-164,.ref-181 { font-size:16px; }
.ref-85,.ref-108 { font-size:12px; letter-spacing:.06em; }
.ref-76 button { min-height:48px; min-width:56px; font-size:14px; letter-spacing:.08em; }
.ref-76 button:active { transform:translateY(1px); }
.ref-76 button[aria-pressed="true"] { background:#2f285b; color:#faf5ec; border-color:#2f285b; }
.product-enquiry { display:flex; align-items:center; justify-content:center; box-sizing:border-box; width:100%; min-height:48px; padding:12px 14px; border:1px solid #2f285b; color:#2f285b; font:500 14px/1.4 Jost,sans-serif; text-transform:uppercase; letter-spacing:.06em; transition:background 160ms,color 160ms; }
.product-enquiry:hover { background:#2f285b; color:#faf5ec; }
.product-enquiry:active { background:#221d46; color:#faf5ec; }
.launch-detail { font-size:14px; color:#6e5f54; line-height:1.5; }
.ref-130 { background:#dea234; }
.ref-131 { font-size:16px; }
.ref-132,.ref-44 { font-size:14px; letter-spacing:.08em; }
.ref-144,.ref-147,.ref-150 { font-size:26px; }
.ref-145,.ref-148,.ref-151 { color:#c4bdd4; font-size:12px; letter-spacing:.07em; }
.ref-190,.ref-197,.ref-204 { font-family:Jost,sans-serif; font-size:17px; font-weight:500; margin-bottom:5px; }
.ref-191,.ref-198,.ref-205 { font-size:16px; color:#6e5f54; line-height:1.6; }
.ref-214 { max-width:24ch; }
.contact-block { min-width:0; }
.contact-email { display:inline-flex; align-items:center; justify-content:center; min-height:52px; box-sizing:border-box; padding:15px 28px; background:#dea234; color:#221d46; font:500 14px/1.4 Jost,sans-serif; text-transform:uppercase; letter-spacing:.1em; }
.contact-email:hover { background:#f3e3b4; color:#221d46; }
.contact-block p { margin:14px 0 0; }
.contact-block p a { color:#fff; font-size:17px; text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.contact-block .contact-hint { color:#f3dce4; font-size:14px; }
.ref-226,.ref-233,.ref-240 { font-size:12px; }
.ref-224 { font-size:16px; color:#bfb8cd; }
.ref-227>a,.ref-234>a,.ref-241>a { font-size:16px; display:inline-flex; min-height:44px; align-items:center; overflow-wrap:anywhere; }
.ref-246 { font-size:12px; color:#bfb8cd; }
.ref-227,.ref-234,.ref-241 { gap:3px; }
.ref-5 { min-width:0; }
.ref-6 { max-width:100%; object-fit:contain; }
@media(max-width:64rem) {
  html { scroll-padding-top:105px; }
  .ref-4 { position:relative; padding:14px 20px; gap:14px; }
  .ref-6 { height:54px; }
  .js .menu-toggle { display:inline-flex; align-items:center; justify-content:center; min-width:72px; min-height:48px; border:1px solid #c7a458; border-radius:0; padding:10px 14px; color:#faf5ec; background:transparent; font:500 14px/1.4 Jost,sans-serif; cursor:pointer; }
  .ref-7 { flex-basis:100%; gap:0; }
  .js .ref-7:not(.is-open) { display:none; }
  .ref-7>a { flex:1 0 100%; padding:12px 4px; border-bottom:1px solid #faf5ec30; }
  .ref-7 .nav-contact { flex:0 0 auto; padding:10px 18px; margin-top:14px; border:1px solid #dea234; }
  .ref-21 { font-size:clamp(40px,6.4vw,66px); }
}
@media(max-width:380px) {
  .ref-6 { height:46px; }
  .ref-2 { font-size:12px; letter-spacing:.06em; }
  .ref-25,.ref-26 { display:block; width:100%; box-sizing:border-box; text-align:center; padding-inline:18px; }
  .ref-132 { white-space:normal; }
  .contact-email { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:0s!important; animation:none!important; }
}

/* Keep empty grid tracks when filtering so results never expand to fill the row. */
[data-products] {
  grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));
  align-items:start;
}
[data-product] { min-width:0; width:100%; max-width:380px; box-sizing:border-box; }
[data-product][hidden] { display:none; }
[data-product]>:first-child { flex:none; aspect-ratio:1; }
[data-product]>:last-child { min-height:280px; box-sizing:border-box; }
[data-product] h3 { margin:0; }
.collection-controls { display:flex; flex-direction:column; gap:12px; }
.filter-summary { margin:0; color:#6e5f54; font-size:14px; line-height:1.5; text-align:right; }
@media(max-width:640px) {
  .collection-controls { width:100%; }
  .ref-76 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
  .ref-76 button { min-width:0; padding:10px 8px; font-size:13px; }
  .filter-summary { text-align:left; }
}
