:root {
  --ink:#292b26; --muted:#62665c; --paper:#f9f7f1; --white:#fffefa;
  --charcoal:#242923; --brass:#aa8455; --brass-light:#d7bf98; --line:#deddd4;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'DM Sans',Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; background:var(--paper); color:var(--ink); font:400 1rem/1.6 var(--sans); }
body.modal-open { overflow:hidden; }
::selection { background:#d7bf98; color:#242923; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
button,a { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible { outline:2px solid var(--brass); outline-offset:5px; }
img { display:block; width:100%; object-fit:cover; }
svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:500; }
em { font-weight:400; }
button { color:inherit; }
[hidden] { display:none!important; }
.skip-link { position:fixed; z-index:100; left:20px; top:15px; transform:translateY(-180%); padding:12px 20px; background:var(--charcoal); color:white; }
.skip-link:focus { transform:translateY(0); }
.announcement { min-height:38px; padding:8px 5%; display:flex; align-items:center; justify-content:space-between; gap:20px; background:var(--charcoal); color:#e6e3d9; font-size:.75rem; }
.announcement>span { font-size:.6875rem; letter-spacing:.16em; }
.site-header { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:100px; padding:18px 5%; background:rgba(249,247,241,.97); border-bottom:1px solid var(--line); transition:box-shadow .25s; }
.site-header.scrolled { box-shadow:0 5px 18px #2429230a; }
.brand { display:inline-flex; align-items:center; gap:14px; flex-shrink:0; }
.brand-mark { display:flex; align-items:center; justify-content:center; width:46px; height:54px; font:400 2.6rem/1 var(--serif); color:#926f42; border:1px solid #b29c78; position:relative; }
.brand-mark::after { content:''; position:absolute; inset:4px; border:1px solid #b29c7855; pointer-events:none; }
.brand strong { display:block; font:500 1.8125rem/1.2 var(--serif); letter-spacing:.16em; }
.brand small { display:block; font-size:.5625rem; line-height:1.6; letter-spacing:.17em; margin-top:3px; }
.desktop-nav { display:flex; align-items:center; gap:34px; }
.desktop-nav a { position:relative; font-size:.8125rem; padding:10px 0; }
.desktop-nav a::after { content:''; position:absolute; bottom:3px; left:0; right:0; height:1px; background:var(--brass); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.desktop-nav a:hover::after,.desktop-nav a.active::after { transform:scaleX(1); }
.header-actions { display:flex; align-items:center; gap:18px; }
.header-contact { display:flex; align-items:center; gap:12px; font-size:.8125rem; padding:11px 16px; border:1px solid #adae9e; transition:background .25s; }
.header-contact:hover { background:#eeeee4; }
.header-contact svg { width:18px; height:18px; }
.menu-toggle { display:none; }
.mobile-nav { display:none; }
.hero { display:grid; grid-template-columns:42% 58%; min-height:600px; }
.hero-copy { padding:70px 11.5% 35px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.eyebrow { display:block; font-size:.6875rem; line-height:1.65; letter-spacing:.17em; font-weight:500; color:#6e5839; }
.hero-copy>.eyebrow { display:flex; align-items:center; gap:13px; font-size:.625rem; }
.fine-line { width:27px; height:1px; background:var(--brass); flex-shrink:0; }
h1 { font-size:clamp(3.4rem,5.15vw,5.3rem); line-height:1; letter-spacing:-.05em; margin:28px 0; }
h1 em { color:#606651; }
.hero-copy p { color:var(--muted); font-size:1rem; line-height:1.8; margin-bottom:30px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:52px; padding:15px 27px; font-size:.8125rem; letter-spacing:.035em; border:1px solid transparent; transition:background .25s,box-shadow .25s; }
.dark { background:var(--charcoal); color:#f4f1e7; }
.dark:hover { background:#414636; box-shadow:0 5px 18px #24292312; }
.brass { background:var(--brass-light); color:#282d23; }
.brass:hover { background:#e4cda9; }
.hero-caption { display:flex; align-items:center; gap:14px; color:var(--muted); font-size:.6875rem; margin-top:47px; }
.hero-caption span:first-child { font-family:var(--serif); letter-spacing:.13em; font-size:.875rem; padding-right:14px; border-right:1px solid #bfc0b3; }
.hero-image { position:relative; overflow:hidden; background:#b1a998; min-width:0; }
.hero-image>img { height:100%; position:absolute; inset:0; object-position:50% 72%; }
.hero-image::after { content:''; position:absolute; inset:60% 0 0; background:linear-gradient(transparent,#17201880); pointer-events:none; }
.hero-image-caption { position:absolute; z-index:1; left:38px; right:38px; bottom:32px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:#fffdf5; }
.hero-image-caption .eyebrow { color:#fffdf5; font-size:.625rem; }
.hero-image-caption a { font-family:var(--serif); font-size:1.5rem; line-height:1.3; border-bottom:1px solid #f7f5eb99; padding:8px 0; }
.hero-side-label { position:absolute; top:32px; right:25px; writing-mode:vertical-rl; font-size:.5625rem; letter-spacing:.19em; color:#fffdf5; text-shadow:0 1px 6px #0007; }
.principles { display:flex; align-items:center; justify-content:space-evenly; gap:20px; padding:25px 5%; border-bottom:1px solid var(--line); background:#f1efe6; color:#535c4c; font-size:.8125rem; }
.principles span+span::before,.principles a::before { content:'·'; color:#997b52; margin-right:35px; font-size:1.25rem; }
.principles a { text-decoration:underline; text-decoration-color:#979c87; text-underline-offset:5px; }
.section { padding:85px 6%; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:35px; margin-bottom:36px; }
.section-heading .eyebrow { margin-bottom:15px; }
h2 { font-size:clamp(2.75rem,4.2vw,4rem); line-height:1.05; letter-spacing:-.04em; margin-bottom:0; }
h2 em { color:#666d56; }
.section-heading p { font-size:.9375rem; line-height:1.8; color:var(--muted); margin:0 0 5px; }
.category-links { display:grid; grid-template-columns:repeat(6,1fr); gap:18px; }
.category-link { display:block; min-width:0; }
.category-image { position:relative; aspect-ratio:3/4; overflow:hidden; background:#e2ded3; }
.category-image img { height:100%; transition:transform .7s cubic-bezier(.2,.6,.2,1); }
.category-link:hover img { transform:scale(1.06); }
.category-image::after { content:''; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,#1b241b40); }
.category-number { position:absolute; left:13px; top:10px; z-index:1; color:#fff; font-size:.625rem; letter-spacing:.1em; background:#22281caa; padding:2px 6px; }
.category-info { display:flex; align-items:baseline; justify-content:space-between; gap:8px; padding:15px 0; border-bottom:1px solid #cfcfc1; }
.category-info strong { font:500 1.5625rem/1.2 var(--serif); }
.category-info small { color:var(--muted); font-size:.625rem; white-space:nowrap; }
.categories { padding-bottom:60px; }
.collection { padding-top:55px; background:#f0efe7; }
.collection-count { font-size:.8125rem; color:var(--muted); margin-bottom:6px; white-space:nowrap; }
.collection-toolbar { border-top:1px solid #cbd0c0; border-bottom:1px solid #cbd0c0; margin-bottom:25px; }
.filters { display:flex; flex-wrap:wrap; gap:7px 27px; padding:4px 0; }
.filter { position:relative; border:0; background:none; padding:14px 0; min-height:48px; color:#62665c; font-size:.875rem; transition:color .2s; }
.filter::after { content:''; position:absolute; bottom:-5px; left:0; right:0; height:2px; background:#947244; transform:scaleX(0); transition:transform .25s; }
.filter:hover { color:var(--ink); }
.filter.selected { color:var(--ink); font-weight:500; }
.filter.selected::after { transform:scaleX(1); }
.catalogue-note { display:flex; gap:19px; align-items:center; margin-bottom:32px; color:#5b6152; font-size:.75rem; }
.catalogue-note>span { font-size:.5625rem; letter-spacing:.13em; border:1px solid #bfc4b3; padding:7px 9px; white-space:nowrap; }
.catalogue-note p { margin:0; line-height:1.7; }
.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px 27px; }
.product { min-width:0; background:var(--paper); }
.product-photo { position:relative; aspect-ratio:1.08; overflow:hidden; background:#e3ded3; }
.product-detail-trigger { padding:0; border:0; width:100%; text-align:left; display:block; }
.product-photo img { height:100%; transition:transform .7s cubic-bezier(.2,.6,.2,1); }
.product-photo:hover img,.product-photo:focus-visible img { transform:scale(1.035); }
.badge { position:absolute; top:17px; left:17px; font-size:.5625rem; line-height:1.5; letter-spacing:.09em; padding:7px 10px; background:#f9f7f1ed; color:#505748; }
.photo-details { position:absolute; bottom:17px; right:17px; width:39px; height:39px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#f9f7f1ed; box-shadow:0 2px 6px #0001; transition:background .25s; }
.photo-details svg { width:18px; height:18px; }
.product-photo:hover .photo-details { background:#fff; }
.product-content { padding:20px 23px 12px; }
.product-category { display:flex; align-items:center; justify-content:space-between; color:#636858; font-size:.625rem; letter-spacing:.13em; text-transform:uppercase; margin-bottom:7px; }
.product-category span:last-child { font-size:.5625rem; letter-spacing:.06em; }
.product h3 { font-size:1.75rem; font-weight:500; line-height:1.2; margin-bottom:8px; }
.product .material { font-size:.8125rem; color:#62665c; margin-bottom:18px; line-height:1.5; min-height:20px; }
.product-meta { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }
.price { font-size:1.125rem; font-weight:500; line-height:1.3; letter-spacing:-.025em; }
.price small { display:block; margin-top:5px; font-size:.6875rem; font-weight:400; color:#616656; letter-spacing:0; }
.product-actions { display:flex; align-items:center; justify-content:space-between; margin-top:20px; border-top:1px solid var(--line); gap:10px; }
.product-actions button { font-size:.8125rem; background:none; border:0; padding:13px 0; min-height:46px; }
.product-actions button:hover { text-decoration:underline; text-underline-offset:4px; }
.enquire { display:flex; align-items:center; justify-content:center; gap:7px; font-size:.8125rem; padding:13px 0; min-height:46px; color:#425339; }
.enquire svg { width:16px; height:16px; }
.enquire:hover { color:#212e1a; text-decoration:underline; text-underline-offset:4px; }
.collection-bottom { border-top:1px solid #cbd0c0; margin-top:48px; padding-top:30px; display:flex; gap:20px; align-items:center; justify-content:center; color:#62665c; font-size:.9375rem; }
.text-link { display:inline-flex; align-items:center; min-height:44px; color:var(--ink); font-size:.9375rem; text-decoration:underline; text-underline-offset:7px; text-decoration-color:#a28b66; transition:color .2s; }
.text-link:hover { color:#88693c; }
.story { display:grid; grid-template-columns:1fr 1fr; padding:95px 6%; gap:9%; align-items:center; }
.story-photo { position:relative; padding-bottom:24px; }
.story-photo::before { content:''; position:absolute; top:30px; bottom:0; left:25px; right:-25px; background:#ece6d8; }
.story-photo img { position:relative; height:560px; }
.story-photo-caption { position:absolute; left:24px; right:24px; bottom:47px; display:flex; justify-content:space-between; gap:15px; color:#fff; font-size:.5625rem; letter-spacing:.1em; text-shadow:0 1px 5px #000c; }
.story-copy { padding:20px 0; }
.story-copy>.eyebrow { margin-bottom:25px; }
.story h2 { font-size:clamp(2.75rem,4.1vw,4rem); }
.story-rule { display:block; width:45px; height:1px; margin:26px 0; background:var(--brass); }
.story p { max-width:430px; font-size:1rem; line-height:1.8; color:var(--muted); margin-bottom:18px; }
.story-signature { font:italic 2rem var(--serif); color:#6d745f; margin-top:35px; }
.story-signature span { display:block; font:400 .625rem/1.5 var(--sans); letter-spacing:.12em; margin-top:4px; }
.contact { position:relative; overflow:hidden; text-align:center; padding:80px 20px 76px; background:var(--charcoal); color:#f3efe3; }
.contact::before,.contact::after { content:''; position:absolute; left:36px; right:36px; height:1px; background:#8b7b5840; }
.contact::before { top:22px; }.contact::after { bottom:22px; }
.contact .eyebrow { color:#d7bf98; margin-bottom:22px; }
.contact h2 { font-size:clamp(2.7rem,4.4vw,4.4rem); margin-bottom:24px; }
.contact h2 em { color:#d7bf98; }
.contact p { font-size:1rem; line-height:1.8; color:#cdcec2; margin-bottom:29px; }
.contact-number { display:block; width:max-content; max-width:100%; margin:23px auto 0; color:#f3efe3; font-size:.875rem; letter-spacing:.06em; padding:5px; }
.contact-address { display:block; width:max-content; max-width:100%; margin:12px auto 0; color:#f3efe3; font-size:.875rem; line-height:1.7; padding:5px; }
.contact-address span { display:block; color:#d7bf98; font-size:.75rem; letter-spacing:.04em; }
.contact-address address { font-style:normal; }
.contact-address:hover { text-decoration:underline; text-underline-offset:3px; }
.contact small { display:block; color:#c1c5b5; margin-top:7px; font-size:.75rem; }
footer { padding:50px 6% 25px; }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.footer-top>p { margin:0; font:400 1.5rem/1.3 var(--serif); color:#5d6652; }
.footer-links { display:flex; flex-direction:column; align-items:flex-start; font-size:.8125rem; }
.footer-links a { padding:7px 0; }
.footer-links a:hover { text-decoration:underline; }
.footer-bottom { border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:23px; margin-top:35px; color:#62665c; font-size:.6875rem; }
.footer-bottom a { text-decoration:underline; text-underline-offset:3px; }
.floating-wa { position:fixed; right:24px; bottom:24px; z-index:19; display:flex; align-items:center; gap:10px; min-height:50px; padding:12px 19px; color:#f7f5ea; background:#303c2b; border:1px solid #a69d7433; border-radius:3px; font-size:.8125rem; box-shadow:0 5px 25px #18221122; transition:background .2s,box-shadow .2s; }
.floating-wa:hover { background:#46583d; box-shadow:0 5px 25px #18221133; }
dialog { border:0; padding:0; color:var(--ink); background:var(--paper); width:calc(100% - 48px); max-width:960px; max-height:calc(100dvh - 64px); box-shadow:0 24px 90px #0004; overflow:auto; }
dialog::backdrop { background:#161c17ad; backdrop-filter:blur(4px); }
.close { position:absolute; z-index:2; top:14px; right:14px; display:flex; align-items:center; justify-content:center; height:44px; width:44px; background:var(--paper); border:1px solid #cccdc0; border-radius:50%; }
.close:hover { background:#eeeadd; }
.detail-layout { display:grid; grid-template-columns:48% 52%; }
.detail-photo { position:relative; min-height:640px; background:#e8e3d9; }
.detail-photo img { position:absolute; inset:0; height:100%; }
.detail-photo span { position:absolute; left:20px; bottom:20px; font-size:.6875rem; background:#f9f7f1ed; padding:6px 10px; }
.detail-copy { padding:50px 36px 35px; }
.detail-copy h2 { font-size:2.7rem; margin:16px 0 19px; }
.detail-copy .price { margin-bottom:24px; font-size:1.375rem; }
.detail-copy p { color:var(--muted); font-size:.9375rem; line-height:1.7; }
.specifications { margin:23px 0; }
.specifications div { border-bottom:1px solid var(--line); padding:12px 0; font-size:.875rem; display:grid; grid-template-columns:90px 1fr; gap:12px; }
.specifications dt { color:#62665c; }.specifications dd { margin:0; }
.detail-copy small { display:block; font-size:.75rem; line-height:1.7; color:#62665c; }
.detail-copy .button { margin-top:23px; width:100%; }
.empty { padding:50px 20px; text-align:center; color:var(--muted); }
.empty a { text-decoration:underline; }
/* Shared finish: readable details, quiet surfaces and generous touch targets. */
body { max-width:1920px; margin-inline:auto; }
html { background:#e7e4db; scroll-padding-top:calc(var(--header-height,100px) + 16px); }
.site-header { background:var(--paper); }
.hero-copy { padding-block:60px 42px; }
.hero-copy>.eyebrow,.eyebrow { font-size:.75rem; letter-spacing:.13em; }
h1 { font-size:clamp(3.1rem,5.1vw,5.7rem); }
.button { font-size:.875rem; min-height:54px; border-radius:2px; }
.hero-caption { font-size:.75rem; }
.desktop-nav a,.header-contact { font-size:.875rem; }
.principles { font-size:.875rem; }
.categories { background:#293128; color:#f3eee2; padding-block:75px; }
.categories .eyebrow { color:#d9bf98; }
.categories h2 em { color:#d9bf98; }
.categories .section-heading p { color:#d0d5c7; }
.category-links { gap:22px; }
.category-image { aspect-ratio:3/4; }
.category-image img { filter:saturate(.88); }
.category-number { font-size:.75rem; padding:3px 8px; }
.category-info { padding-block:18px; border-color:#6e79664d; }
.category-info small { font-size:.75rem; color:#c7cebc; }
.category-info strong { font-size:1.7rem; }
.collection { padding-block:85px; }
.collection-count,.filter { font-size:.875rem; }
.catalogue-note { font-size:.8125rem; }
.catalogue-note>span { font-size:.6875rem; }
.product { border:1px solid #dfdfd280; display:flex; flex-direction:column; }
.product-photo { aspect-ratio:1.05; }
.product-content { padding:24px 24px 14px; display:flex; flex-direction:column; flex:1; }
.product-category { font-size:.75rem; letter-spacing:.09em; }
.product-category span:last-child { font-size:.6875rem; }
.product h3 { font-size:1.875rem; }
.product .material { font-size:.875rem; line-height:1.65; }
.product-meta { margin-top:auto; }
.price { font-size:1.25rem; }
.price small { font-size:.75rem; }
.product-actions { gap:15px; }
.product-actions button,.enquire { font-size:.875rem; min-height:48px; }
.badge { font-size:.6875rem; letter-spacing:.06em; }
.photo-details { width:44px; height:44px; }
.collection-bottom { flex-wrap:wrap; }
.story-photo-caption { font-size:.6875rem; flex-wrap:wrap; }
.story-signature span { font-size:.75rem; }
.footer-bottom { font-size:.75rem; }
.footer-links { font-size:.875rem; }
.close { position:sticky; top:14px; margin:14px 14px -58px auto; }
.detail-copy { padding-top:62px; }
.detail-copy>.eyebrow { font-size:.75rem; }
.detail-copy h2 { overflow-wrap:anywhere; }
.detail-copy .button { font-size:.875rem; }
.mobile-nav { max-height:calc(100dvh - var(--header-height,100px)); overflow-y:auto; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .product { transition:box-shadow .3s,border-color .3s; }
  .product:hover { border-color:#c4baa2; box-shadow:0 12px 34px #3438210a; }
  .category-link:hover .category-info { border-color:#d9bf98; }
}
@media(min-width:1600px) {
  .site-header,.announcement { padding-inline:6%; }
  .hero { min-height:730px; grid-template-columns:43% 57%; }
  .hero-copy { padding-left:14%; padding-right:9%; }
  .section,.story { padding-inline:8%; }
  .hero-image>img { object-position:50% 75%; }
}
@media(max-width:1200px) {
  .site-header { padding-inline:4%; gap:20px; }
  .desktop-nav { gap:22px; }
  .brand strong { font-size:1.55rem; }
  .brand small { font-size:.5625rem; letter-spacing:.08em; }
  .header-contact { padding:10px 12px; }
  .hero-copy { padding:48px 9% 36px; }
  .hero { min-height:580px; }
  h1 { font-size:clamp(3.1rem,5.3vw,4.7rem); }
  .hero-copy>.eyebrow { font-size:.6875rem; }
  .fine-line { width:18px; }
  .hero-caption { flex-wrap:wrap; }
  .category-links { gap:16px; }
  .category-info { flex-direction:column; gap:5px; }
  .category-info strong { font-size:1.6rem; }
  .product-grid { gap:30px 22px; }
  .product-content { padding:20px 18px 10px; }
  .product h3 { font-size:1.7rem; }
  .product-actions { flex-wrap:wrap; gap:0 14px; }
  .principles span+span::before,.principles a::before { margin-right:12px; }
  .story { gap:7%; }
}
@media(max-width:1000px) {
  .desktop-nav { display:none; }
  .menu-toggle { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; width:48px; height:48px; border:0; background:none; }
  .menu-toggle span { height:1px; width:23px; background:var(--ink); transition:transform .2s; }
  .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .mobile-nav { position:absolute; top:100%; left:0; right:0; display:flex; flex-direction:column; padding:20px 6% 26px; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 14px 24px #20251c15; }
  .mobile-nav a { min-height:50px; padding:13px 0; font-size:1rem; border-bottom:1px solid var(--line); }
  .hero { grid-template-columns:46% 54%; min-height:580px; }
  .hero-copy { padding:42px 8% 30px; }
  .hero-copy>.eyebrow { font-size:.625rem; }
  h1 { font-size:clamp(3rem,5.5vw,3.8rem); }
  .hero-copy p { font-size:1rem; }
  .hero-caption { margin-top:32px; }
  .hero-image-caption { left:25px; right:25px; flex-direction:column; align-items:flex-start; gap:8px; }
  .principles { display:grid; grid-template-columns:1fr 1fr; gap:15px; text-align:center; }
  .principles span+span::before,.principles a::before { display:none; }
  .section { padding:65px 5%; }
  h2 { font-size:3.2rem; }
  .section-heading { gap:25px; }
  .section-heading p { font-size:1rem; }
  .category-links { grid-template-columns:repeat(3,1fr); gap:28px 22px; }
  .category-image { aspect-ratio:1.05; }
  .category-info { flex-direction:row; align-items:baseline; }
  .product-grid { grid-template-columns:repeat(2,1fr); }
  .product-actions { flex-wrap:wrap; }
  .story { padding:70px 5%; gap:8%; }
  .story h2 { font-size:3rem; }
  .story-photo img { height:580px; }
  .story p { font-size:1rem; }
  .story-photo-caption { flex-direction:column; gap:5px; }
  .detail-layout { grid-template-columns:44% 56%; }
  .detail-photo { min-height:690px; }
  .detail-copy { padding:62px 26px 30px; }
  .detail-copy h2 { font-size:2.5rem; }
  .specifications div { grid-template-columns:80px 1fr; }
}
@media(max-width:700px) {
  .site-header { min-height:84px; padding:14px 5%; flex-wrap:wrap; }
  .header-actions { margin-left:auto; gap:4px; }
  .brand { gap:10px; }
  .brand-mark { width:36px; height:44px; font-size:2.1rem; }
  .brand strong { font-size:1.5rem; }
  .brand small { font-size:.5rem; letter-spacing:.1em; }
  .header-contact { width:44px; height:48px; padding:11px; border:0; font-size:0; gap:0; }
  .header-contact svg { width:22px; height:22px; }
  .announcement { justify-content:center; min-height:34px; }
  .announcement>a { display:none; }
  .announcement>span { font-size:.625rem; letter-spacing:.1em; }
  .hero { position:relative; display:grid; grid-template-columns:1fr; isolation:isolate; min-height:630px; min-height:clamp(570px,calc(100svh - 118px),720px); background:#3d4537; }
  .hero-image { position:absolute; inset:0; z-index:-2; min-height:0; }
  .hero-image>img { object-position:50% 70%; }
  .hero-image::after { inset:0; background:linear-gradient(90deg,#1c261de8 0%,#1c261d80 65%,#1c261d38),linear-gradient(0deg,#19221dc9,transparent 65%); }
  .hero-copy { padding:48px 7%; justify-content:center; color:#fffaf0; }
  .hero-copy>.eyebrow { color:#e7d5b3; font-size:.6875rem; max-width:100%; }
  .fine-line { background:#d7bf98; }
  h1 { font-size:clamp(3.2rem,8.6vw,4.4rem); line-height:1.04; margin:25px 0; letter-spacing:-.035em; max-width:100%; }
  h1 em { color:#e4d5b8; }
  .hero-copy p { color:#f0eee3; font-size:1rem; margin-bottom:30px; }
  .hero-copy .button { color:#282d23; background:#e2cba5; padding:16px 24px; }
  .hero-copy .button:hover { background:#f0ddbf; }
  .hero-caption { display:none; }
  .hero-image-caption { display:none; }
  .hero-side-label { display:none; }
  .principles { font-size:.8125rem; padding:23px 5%; gap:16px 12px; }
  .section { padding:56px 6%; }
  .section-heading { flex-direction:column; align-items:flex-start; gap:20px; margin-bottom:30px; }
  .section-heading .eyebrow { font-size:.6875rem; }
  h2 { font-size:clamp(2.6rem,7.2vw,3.4rem); }
  .category-links { gap:24px 18px; }
  .category-info { flex-direction:column; gap:4px; padding-block:14px; }
  .category-info strong { font-size:1.7rem; }
  .category-info small { font-size:.75rem; }
  .collection-toolbar { margin-bottom:24px; }
  .filters { flex-wrap:wrap; gap:0 23px; padding:7px 0; }
  .filter { min-height:48px; font-size:.875rem; }
  .filter::after { bottom:4px; }
  .catalogue-note { flex-direction:column; align-items:flex-start; gap:10px; font-size:.8125rem; }
  .product-grid { gap:28px 18px; }
  .product-content { padding:20px 18px 12px; }
  .product-actions { flex-direction:column; align-items:stretch; }
  .product-actions button,.enquire { font-size:.875rem; justify-content:flex-start; text-align:left; }
  .badge { font-size:.625rem; left:12px; top:12px; max-width:calc(100% - 24px); }
  .product-category span:last-child { display:none; }
  .collection-bottom { flex-direction:column; gap:5px; text-align:center; font-size:1rem; }
  .story { grid-template-columns:1fr; padding:65px 7%; gap:38px; }
  .story-photo { margin-right:18px; padding-bottom:18px; }
  .story-photo::before { left:18px; right:-18px; top:25px; }
  .story-photo img { height:auto; aspect-ratio:1.05; }
  .story-photo-caption { bottom:40px; }
  .story-copy { padding:0; }
  .story h2 { font-size:3rem; }
  .story p { max-width:none; }
  .contact { padding:68px 6%; }
  .contact h2 { font-size:3rem; }
  .contact .button { font-size:.875rem; padding-inline:18px; }
  .contact p { font-size:1rem; }
  .contact p br { display:none; }
  .contact::before,.contact::after { left:22px; right:22px; }
  footer { padding:42px 6% 100px; }
  .footer-top { flex-wrap:wrap; gap:28px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; gap:12px; }
  .floating-wa { right:max(16px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom)); height:54px; width:54px; justify-content:center; padding:14px; border-radius:50%; box-shadow:0 5px 20px #18221130; }
  .floating-wa span { display:none; }
  .floating-wa svg { width:25px; height:25px; }
  dialog { width:calc(100% - 24px); max-height:calc(100dvh - 24px); max-width:540px; }
  .detail-layout { grid-template-columns:1fr; }
  .detail-photo { min-height:0; height:300px; }
  .detail-photo img { object-position:center 65%; }
  .detail-copy { padding:30px 25px; }
  .detail-copy h2 { font-size:2.7rem; }
  .detail-copy p { font-size:1rem; }
  .detail-copy .button { position:static; }
  .close { top:12px; margin:12px 12px -56px auto; }
}
@media(max-width:540px) {
  .category-links { grid-template-columns:repeat(2,1fr); gap:24px 17px; }
  .category-image { aspect-ratio:.92; }
  .product-grid { grid-template-columns:1fr; gap:32px; }
  .product-photo { aspect-ratio:1.12; }
  .product-content { padding:24px 22px 16px; }
  .product h3 { font-size:2rem; }
  .product .material { font-size:.9375rem; min-height:0; }
  .product-category span:last-child { display:block; }
  .product-actions { flex-direction:row; flex-wrap:wrap; gap:0 12px; }
  .price { font-size:1.375rem; }
  .badge { font-size:.6875rem; }
}
@media(max-width:370px) {
  .site-header { gap:10px; padding-inline:4%; }
  .brand strong { font-size:1.25rem; }
  .brand small { font-size:.4375rem; }
  .brand-mark { width:30px; height:40px; }
  .header-actions { gap:0; }
  .header-contact { width:40px; }
  .hero-copy { padding:40px 6%; }
  h1 { font-size:2.9rem; }
  .hero-copy>.eyebrow { font-size:.625rem; }
  .hero { min-height:570px; }
  .product-content { padding-inline:18px; }
  .category-info strong { font-size:1.5rem; }
  .category-info small { font-size:.75rem; }
  .contact h2 { font-size:2.7rem; }
}
@media(max-height:500px) and (min-width:701px) {
  dialog { max-height:calc(100dvh - 20px); }
  .detail-photo { min-height:550px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}
