/*
Theme Name: Canebloom
Theme URI:
Author: Canebloom
Description: An enquiry-led premium furniture catalogue for Cane and Outdoor collections.
Version: 1.2.1
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: canebloom
*/

:root {
  --background: 42 33% 95%; --foreground: 135 15% 17%;
  --border: 40 15% 82%; --input: 40 15% 82%; --ring: 136 20% 31%;
  --card: 0 0% 100%; --card-foreground: 135 15% 17%; --card-border: 40 15% 82%;
  --popover: 42 33% 95%; --popover-foreground: 135 15% 17%; --popover-border: 40 15% 82%;
  --primary: 136 20% 17%; --primary-foreground: 42 33% 95%;
  --secondary: 108 7% 47%; --secondary-foreground: 42 33% 95%;
  --muted: 38 28% 90%; --muted-foreground: 33 13% 39%;
  --accent: 31 27% 36%; --accent-foreground: 42 33% 95%;
  --destructive: 8 55% 45%;
  --destructive-foreground: 42 33% 95%;
  --sidebar: 136 20% 17%;
  --sidebar-foreground: 42 33% 95%;
  --sidebar-border: 136 14% 27%;
  --sidebar-primary: 42 33% 95%;
  --sidebar-primary-foreground: 136 20% 17%;
  --sidebar-accent: 136 14% 27%;
  --sidebar-accent-foreground: 42 33% 95%;
  --sidebar-ring: 42 33% 95%;
  --app-font-sans: 'Manrope', sans-serif;
  --app-font-serif: 'Playfair Display', serif;
  --app-font-mono: 'DM Mono', monospace;
  --radius: 0.15rem;
  --shadow-sm: 0 8px 24px rgba(35, 53, 43, 0.08);
  --shadow-md: 0 16px 50px rgba(35, 53, 43, 0.12);
}

.dark {
  --background: 136 20% 17%;
  --foreground: 42 33% 95%;
  --border: 136 14% 27%;
  --input: 136 14% 27%;
  --card: 136 18% 21%;
  --card-foreground: 42 33% 95%;
  --card-border: 136 14% 27%;
  --popover: 136 18% 21%;
  --popover-foreground: 42 33% 95%;
  --popover-border: 136 14% 27%;
  --primary: 42 33% 95%;
  --primary-foreground: 136 20% 17%;
  --secondary: 108 7% 54%;
  --secondary-foreground: 136 20% 17%;
  --muted: 136 14% 27%;
  --muted-foreground: 42 14% 74%;
  --accent: 31 27% 48%;
  --accent-foreground: 42 33% 95%;
  --destructive: 8 55% 55%;
  --destructive-foreground: 42 33% 95%;
}

html { scroll-behavior: smooth; }
::selection { background: #6f806f; color: #f6f3ec; }

@layer utilities {
  .font-display { font-family: var(--app-font-serif); }
  .font-mono-ui { font-family: var(--app-font-mono); }
  .text-balance { text-wrap: balance; }
  .tracking-caps { letter-spacing: .15em; text-transform: uppercase; }
  .quiet-line { position: relative; }
  .quiet-line::after { content: ""; position: absolute; left: 0; right: 0; bottom: -0.55rem; height: 1px; background: currentColor; opacity: .28; transform-origin: left; transition: transform .45s ease; transform: scaleX(.35); }
  .quiet-line:hover::after { transform: scaleX(1); }
}

.reveal { animation: reveal .7s cubic-bezier(.2,.7,.2,1) both; }
.reveal-delay-1 { animation-delay: .08s; }
.reveal-delay-2 { animation-delay: .16s; }
.reveal-delay-3 { animation-delay: .24s; }
@keyframes reveal { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }

:root { --ink:#23352B; --sage:#6F806F; --paper:#F6F3EC; --sand:#E9E1D3; --clay:#765A43; --deep:#28312B; --stone:#D9D4C9; --white:#FFFFFF; }
* { box-sizing:border-box; }
body { color:var(--ink); background:var(--paper); overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
button, input, textarea, select { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:2px solid var(--clay); outline-offset:4px; }
.site-shell { min-height:100dvh; }
.container { width:min(1240px, calc(100% - 48px)); margin:0 auto; }
.container-narrow { width:min(820px, calc(100% - 48px)); margin:0 auto; }
.eyebrow { color:var(--sage); font:500 10px/1 var(--app-font-mono); letter-spacing:.17em; text-transform:uppercase; }
.display { font-family:var(--app-font-serif); font-weight:400; letter-spacing:-.04em; line-height:.94; }
.serif { font-family:var(--app-font-serif); }
.muted { color:#637064; }
.rule { border-top:1px solid rgba(35,53,43,.18); }
.site-header { position:relative; z-index:40; background:var(--paper); border-bottom:1px solid rgba(35,53,43,.13); }
.header-inner { height:78px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.logo { font:500 26px/1 var(--app-font-serif); letter-spacing:-.06em; }
.logo img { display:block; width:150px; height:62px; object-fit:contain; object-position:left center; }
.site-footer .logo img { filter:brightness(0) invert(1); opacity:.9; }
.main-nav-list { display:flex; align-items:center; gap:27px; list-style:none; margin:0; padding:0; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.main-nav-list li { margin:0; padding:0; }
.main-nav-list a { opacity:.76; transition:opacity .25s ease; }
.main-nav-list a:hover, .main-nav-list a[aria-current="page"] { opacity:1; }
.has-dropdown { position:relative; }
.has-dropdown > a { display:inline-flex; align-items:center; gap:5px; }
.nav-caret { font-size:11px; opacity:.6; transition:transform .3s ease; }
.has-dropdown:hover .nav-caret, .has-dropdown:focus-within .nav-caret { transform:rotate(180deg); }
.nav-dropdown { list-style:none; margin:0; }
.main-nav .nav-dropdown { position:absolute; top:100%; left:50%; transform:translate(-50%,6px); min-width:210px; background:var(--paper); border:1px solid rgba(35,53,43,.12); box-shadow:var(--shadow-md); padding:8px; border-radius:4px; opacity:0; visibility:hidden; transition:opacity .3s ease, transform .3s ease; z-index:2; }
.main-nav .has-dropdown:hover .nav-dropdown, .main-nav .has-dropdown:focus-within .nav-dropdown { opacity:1; visibility:visible; transform:translate(-50%,2px); }
.main-nav .nav-dropdown a { display:block; padding:8px 12px; font-size:10px; letter-spacing:.06em; white-space:nowrap; opacity:.78; border-radius:3px; }
.main-nav .nav-dropdown a:hover { opacity:1; background:var(--sand); }
.header-actions { display:flex; align-items:center; gap:12px; }
.icon-button { border:0; background:transparent; color:var(--ink); width:35px; height:35px; display:grid; place-items:center; cursor:pointer; transition:background .25s ease, transform .25s ease; }
.icon-button:hover { background:var(--sand); transform:translateY(-1px); }
.mobile-menu-fab { display:none; }
.mobile-menu-backdrop { display:none; }
.mobile-menu { display:none; }
.site-search { display:none; position:absolute; z-index:2; top:100%; left:0; right:0; padding:18px 24px 22px; background:var(--paper); border-bottom:1px solid rgba(35,53,43,.15); }
.site-search.is-open { display:block; }
.site-search-form { width:min(680px,100%); margin:0 auto; display:flex; align-items:end; gap:14px; }
.site-search-form label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-search-form input { flex:1; min-width:0; background:transparent; border:0; border-bottom:1px solid var(--ink); padding:12px 0; outline:none; color:var(--ink); }
.announcement { background:var(--ink); color:var(--paper); text-align:center; padding:9px 20px; font:400 10px/1.4 var(--app-font-mono); letter-spacing:.12em; text-transform:uppercase; }
.topbar { background:var(--ink); color:var(--paper); padding:9px 0; font:400 10px/1.4 var(--app-font-mono); }
.topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.topbar-tagline { text-transform:uppercase; letter-spacing:.12em; opacity:.85; }
.topbar-links { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.topbar-link { display:inline-flex; align-items:center; gap:6px; opacity:.92; transition:opacity .25s ease; letter-spacing:.04em; }
.topbar-link:hover { opacity:1; }
.topbar-address { opacity:.72; letter-spacing:.02em; }
.hero { min-height:calc(100dvh - 113px); position:relative; display:flex; align-items:flex-end; overflow:hidden; background:var(--sage); }
.hero-slides { position:absolute; inset:0; }
.hero-slide { position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease; }
.hero-slide.is-active { opacity:1; z-index:1; }
.hero-slide img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg, rgba(35,53,43,.66) 0%, rgba(35,53,43,.14) 57%, rgba(35,53,43,.1)); }
.hero-copy { position:relative; z-index:1; color:var(--paper); padding:clamp(50px, 9vw, 130px) 0; width:min(650px, 100%); }
.hero-copy h1 { font-size:clamp(58px, 9.6vw, 140px); margin:18px 0 26px; }
.hero-copy p { max-width:420px; color:rgba(246,243,236,.82); font-size:15px; line-height:1.65; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }
.hero-ghost { border-color:rgba(246,243,236,.55); color:var(--paper); }
.hero-ghost:hover { background:rgba(246,243,236,.12); }
.hero-dots { position:absolute; z-index:2; right:28px; bottom:28px; display:flex; gap:9px; }
.hero-dot { width:8px; height:8px; padding:0; border-radius:50%; border:1px solid rgba(246,243,236,.6); background:rgba(246,243,236,.25); cursor:pointer; transition:background .3s ease, transform .3s ease; }
.hero-dot.is-active { background:var(--paper); transform:scale(1.3); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:0 20px; border:1px solid var(--ink); font:500 10px/1 var(--app-font-mono); letter-spacing:.14em; text-transform:uppercase; cursor:pointer; transition:background .25s ease,color .25s ease,transform .25s ease; }
.button:hover { transform:translateY(-2px); }
.button-dark { background:var(--ink); color:var(--paper); }
.button-dark:hover { background:var(--clay); border-color:var(--clay); }
.button-light { background:var(--paper); color:var(--ink); border-color:var(--paper); }
.button-ghost { background:transparent; color:var(--ink); }
.button-ghost:hover { background:var(--sand); }
.hero .button { margin-top:32px; }
.section { padding:clamp(72px, 10vw, 150px) 0; }
.section-tight { padding:72px 0; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:45px; }
.section-heading h2 { font-size:clamp(40px, 5.7vw, 76px); margin:12px 0 0; max-width:650px; }
.section-heading p { max-width:310px; font-size:13px; line-height:1.7; color:#637064; }
.collection-grid { display:grid; grid-template-columns:1.12fr .88fr; gap:18px; }
.category-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:28px 18px; }
.collection-card { min-height:580px; position:relative; overflow:hidden; color:var(--paper); background:var(--sage); }
.collection-card.small { min-height:430px; }
.collection-card img, .product-image, .journal-image, .project-image { width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.collection-card:hover img, .product-card:hover .product-image, .journal-card:hover .journal-image, .project-card:hover .project-image { transform:scale(1.045); }
.collection-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(35,53,43,.8),transparent 57%); pointer-events:none; }
.collection-card-content { position:absolute; z-index:1; left:32px; right:32px; bottom:30px; }
.collection-card h3 { margin:8px 0 14px; font-size:52px; }
.collection-card p { font-size:12px; color:rgba(246,243,236,.78); max-width:265px; line-height:1.6; }
.collection-card .arrow { position:absolute; right:0; bottom:0; width:42px; height:42px; border:1px solid rgba(246,243,236,.55); display:grid; place-items:center; }
.split-story { display:grid; grid-template-columns:1fr 1fr; min-height:640px; }
.split-story > div:first-child { padding:clamp(30px,6vw,90px); background:var(--sand); display:flex; flex-direction:column; justify-content:center; }
.split-story > div:last-child { min-height:500px; }
.split-story h2 { font-size:clamp(44px,5.3vw,76px); margin:18px 0 26px; max-width:520px; }
.split-story p { max-width:410px; color:#637064; line-height:1.8; font-size:14px; }
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.product-card { min-width:0; }
.product-media { aspect-ratio:4/5; background:var(--sand); overflow:hidden; position:relative; }
.product-info { padding:17px 0 4px; display:flex; justify-content:space-between; gap:10px; align-items:start; }
.product-info h3 { font:400 20px/1.05 var(--app-font-serif); margin:4px 0; }
.product-info p { margin:0; font-size:11px; color:var(--sage); }
.product-arrow { color:var(--clay); padding-top:4px; }
.marquee { border-top:1px solid rgba(35,53,43,.2); border-bottom:1px solid rgba(35,53,43,.2); padding:19px 0; overflow:hidden; white-space:nowrap; }
.marquee p { margin:0; color:var(--clay); font:400 12px/1 var(--app-font-mono); letter-spacing:.14em; text-transform:uppercase; animation:marquee 24s linear infinite; }
@keyframes marquee { to { transform:translateX(-35%); } }
.newsletter { background:var(--ink); color:var(--paper); padding:78px 0; }
.newsletter-inner { display:flex; align-items:end; justify-content:space-between; gap:50px; }
.newsletter h2 { font-size:clamp(42px,5vw,70px); max-width:600px; margin:16px 0 0; }
.newsletter-form { display:flex; border-bottom:1px solid rgba(246,243,236,.55); min-width:min(400px,100%); }
.newsletter-form input { background:none; border:0; color:var(--paper); padding:14px 0; outline:none; width:100%; font-size:13px; }
.newsletter-form input::placeholder { color:rgba(246,243,236,.55); }
.newsletter-form button { border:0; background:transparent; color:var(--paper); cursor:pointer; }
.site-footer { padding:70px 0 32px; background:var(--deep); color:var(--paper); }
.footer-grid { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:40px; padding-bottom:80px; }
.footer-grid h4 { margin:0 0 18px; font:500 10px/1 var(--app-font-mono); letter-spacing:.15em; text-transform:uppercase; color:var(--sage); }
.footer-grid a, .footer-grid p { display:block; margin:0 0 10px; font-size:13px; color:rgba(246,243,236,.72); line-height:1.6; }
.footer-bottom { padding-top:20px; border-top:1px solid rgba(246,243,236,.18); display:flex; justify-content:space-between; font:10px var(--app-font-mono); color:rgba(246,243,236,.55); }
.page-intro { min-height:clamp(420px,58vh,620px); position:relative; display:flex; align-items:flex-end; overflow:hidden; color:var(--paper); background:var(--sage); }
.page-intro-image-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 58%; display:block; }
.page-intro-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(35,53,43,.78) 0%,rgba(35,53,43,.28) 62%,rgba(35,53,43,.16) 100%),linear-gradient(0deg,rgba(35,53,43,.5),transparent 60%); }
.page-intro .container { position:relative; z-index:1; }
.page-intro-content { padding:clamp(64px,9vw,118px) 0 72px; max-width:720px; }
.page-intro .eyebrow { color:rgba(246,243,236,.78); }
.page-intro h1 { font-size:clamp(58px,8vw,118px); max-width:850px; margin:18px 0 25px; }
.page-intro p { max-width:480px; color:rgba(246,243,236,.84); line-height:1.75; font-size:14px; }
.catalogue-bar { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:25px 0; border-bottom:1px solid rgba(35,53,43,.2); }
.filter-list { display:flex; gap:8px; flex-wrap:wrap; }
.filter-chip { background:transparent; color:var(--sage); border:1px solid rgba(111,128,111,.45); padding:9px 12px; font:10px var(--app-font-mono); text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.filter-chip.active, .filter-chip:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.search-box { display:flex; align-items:center; gap:9px; border-bottom:1px solid var(--ink); padding:6px 0; }
.search-box input { border:0; background:transparent; outline:none; width:180px; font-size:12px; }
.empty-state { padding:90px 25px; text-align:center; border:1px dashed rgba(35,53,43,.3); color:var(--sage); }
.empty-state h3 { font:400 34px var(--app-font-serif); color:var(--ink); margin:0 0 10px; }
.detail-grid { display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(40px,8vw,120px); padding:70px 0 120px; }
.gallery { display:grid; grid-template-columns:74px 1fr; gap:14px; align-self:start; }
.thumbs { display:flex; flex-direction:column; gap:9px; }
.thumb { border:1px solid transparent; padding:0; background:var(--sand); cursor:pointer; aspect-ratio:1; overflow:hidden; }
.thumb.active { border-color:var(--clay); }
.thumb img { width:100%; height:100%; object-fit:cover; }
.main-image { background:var(--sand); aspect-ratio:4/5; overflow:hidden; }
.detail-copy { padding-top:18px; }
.detail-copy h1 { font-size:clamp(50px,6vw,86px); margin:15px 0 22px; }
.detail-copy .lead { color:#637064; line-height:1.8; max-width:440px; font-size:14px; }
.detail-meta { margin:40px 0; border-top:1px solid rgba(35,53,43,.2); }
.meta-row { display:flex; justify-content:space-between; gap:20px; padding:16px 0; border-bottom:1px solid rgba(35,53,43,.2); font-size:12px; }
.meta-row span:first-child { color:var(--sage); text-transform:uppercase; font:10px var(--app-font-mono); letter-spacing:.1em; }
.detail-actions { display:flex; gap:12px; flex-wrap:wrap; }
.project-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:18px; }
.project-card { position:relative; overflow:hidden; background:var(--sage); min-height:490px; color:var(--paper); }
.project-card.tall { min-height:680px; }
.project-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(35,53,43,.75),transparent 60%); }
.project-card-content { position:absolute; z-index:1; left:28px; bottom:28px; }
.project-card h3 { font:400 40px var(--app-font-serif); margin:8px 0; }
.journal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.journal-card { background:var(--sand); }
.journal-media { aspect-ratio:1.28; overflow:hidden; }
.journal-content { padding:21px; }
.journal-content h3 { font:400 27px/1.06 var(--app-font-serif); margin:12px 0; }
.journal-content p { font-size:12px; color:#637064; line-height:1.65; }
.editorial-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:0; }
.editorial-grid .image-panel { min-height:650px; background:var(--sage); }
.editorial-grid .copy-panel { background:var(--sand); padding:clamp(35px,7vw,110px); display:flex; justify-content:center; flex-direction:column; }
.copy-panel h2 { font-size:clamp(46px,5.5vw,78px); margin:17px 0 24px; }
.copy-panel p { line-height:1.85; color:#637064; max-width:430px; font-size:14px; }
.quote-layout { display:grid; grid-template-columns:.78fr 1.22fr; gap:80px; padding:80px 0 130px; }
.quote-aside h1 { font-size:clamp(53px,6.2vw,92px); margin:18px 0; }
.quote-aside p { color:#637064; line-height:1.7; font-size:14px; max-width:320px; }
.quote-form { background:var(--white); padding:clamp(28px,5vw,66px); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-status { flex-basis:100%; margin:14px 0 0; color:rgba(246,243,236,.78); font-size:12px; }
.field { margin-bottom:24px; }
.field label { display:block; color:var(--sage); font:10px var(--app-font-mono); letter-spacing:.12em; text-transform:uppercase; margin-bottom:9px; }
.field input, .field textarea, .field select { width:100%; background:transparent; border:0; border-bottom:1px solid rgba(35,53,43,.35); padding:12px 0; outline:none; color:var(--ink); }
.field textarea { min-height:120px; resize:vertical; }
.success-panel { background:var(--sage); color:var(--paper); padding:60px; text-align:center; }
.success-panel h2 { font:400 48px var(--app-font-serif); margin:10px 0 15px; }
.toast-note { position:fixed; z-index:100; right:22px; bottom:22px; padding:15px 18px; background:var(--ink); color:var(--paper); font-size:12px; box-shadow:var(--shadow-md); animation:reveal .3s both; }
.collection-feature { max-width:520px; aspect-ratio:4/5; background:var(--sand); overflow:hidden; }
.collection-feature img { width:100%; height:100%; object-fit:cover; display:block; }
.category-filter-tabs { position:relative; display:flex; gap:4px; align-items:center; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; background:var(--sand); border-radius:999px; padding:5px; margin:0 0 26px; width:max-content; max-width:100%; }
.category-filter-tabs::-webkit-scrollbar { display:none; }
.cf-tab { position:relative; z-index:1; flex:0 0 auto; padding:10px 22px; border:0; background:transparent; font:500 11px/1 var(--app-font-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--ink); border-radius:999px; cursor:pointer; transition:color .4s ease; }
.cf-tab.is-active { color:var(--paper); }
.cf-tab-indicator { position:absolute; top:5px; left:0; bottom:5px; width:0; border-radius:999px; background:var(--ink); transition:transform .45s cubic-bezier(.22,.8,.2,1), width .45s cubic-bezier(.22,.8,.2,1); z-index:0; }
.category-card.is-hidden { display:none; }
.product-tabs { position:relative; }
.product-filter-tabs { margin-bottom:30px; box-shadow:0 6px 24px rgba(35,53,43,.06); }
.product-tabs-grid { align-items:start; }
.product-tab-item.is-hidden { display:none; }
.product-tabs-grid .product-card { animation:product-card-in .45s cubic-bezier(.2,.7,.2,1) both; }
@keyframes product-card-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.category-grid-premium { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.category-card { position:relative; display:block; overflow:hidden; aspect-ratio:3/4; color:var(--paper); background:var(--sage); }
.category-card-media { position:absolute; inset:0; }
.category-card-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.category-card:hover .category-card-media img { transform:scale(1.07); }
.category-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(35,53,43,.88) 0%,rgba(35,53,43,.28) 55%,rgba(35,53,43,.05) 100%); pointer-events:none; }
.category-card-content { position:absolute; z-index:1; left:20px; right:20px; bottom:20px; }
.category-card-content h3 { font-size:19px; line-height:1.15; margin:8px 0 6px; }
.category-card-content p { font-size:11px; line-height:1.55; color:rgba(246,243,236,.82); max-width:220px; }
.category-card-arrow { display:grid; place-items:center; margin-top:12px; width:30px; height:30px; border:1px solid rgba(246,243,236,.55); border-radius:50%; font-size:13px; transition:background .25s ease, border-color .25s ease; }
.category-card:hover .category-card-arrow { background:rgba(246,243,236,.14); border-color:rgba(246,243,236,.85); }
.article-copy { max-width:620px; margin:60px auto 0; }
.article-copy p { color:#637064; line-height:1.9; font-size:15px; margin:0 0 22px; }
.faq-item { border-top:1px solid rgba(35,53,43,.2); padding:22px 0; }
.faq-item:last-child { border-bottom:1px solid rgba(35,53,43,.2); }
.faq-item summary { display:flex; justify-content:space-between; gap:20px; cursor:pointer; font:400 24px var(--app-font-serif); list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary span { color:var(--clay); font:400 22px var(--app-font-sans); }
.faq-item p { max-width:620px; color:#637064; line-height:1.8; font-size:14px; padding:18px 30px 0 0; }
button:disabled { opacity:.55; cursor:not-allowed; }
@media (max-width:900px) {
  .container { width:min(100% - 32px, 1240px); }
  .main-nav { display:none; }
  .mobile-menu-fab { display:grid; place-items:center; position:fixed; right:18px; bottom:22px; width:56px; height:56px; border-radius:50%; background:var(--ink); color:var(--paper); border:0; box-shadow:var(--shadow-md); z-index:70; font-size:19px; cursor:pointer; transition:transform .3s ease, background .3s ease; }
  .mobile-menu-fab:active { transform:scale(.93); }
  .mobile-menu-fab[aria-expanded="true"] { background:var(--clay); }
  .mobile-menu-backdrop { display:block; position:fixed; inset:0; background:rgba(35,53,43,.4); opacity:0; pointer-events:none; transition:opacity .35s ease; z-index:65; }
  .mobile-menu-backdrop.is-open { opacity:1; pointer-events:auto; }
   .mobile-menu { display:block; position:fixed; left:0; right:0; bottom:0; top:auto; max-height:82vh; overflow-y:auto; -webkit-overflow-scrolling:touch; background:var(--paper); border-radius:22px 22px 0 0; padding:10px 22px 34px; box-shadow:0 -22px 60px rgba(35,53,43,.3); transform:translateY(100%); transition:transform .5s cubic-bezier(.22,.85,.2,1); z-index:66; }
   .mobile-menu.is-open { transform:translateY(0); }
   .mobile-menu-handle { width:38px; height:4px; border-radius:99px; background:rgba(35,53,43,.2); margin:10px auto 14px; }
   .mobile-menu-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
   .mobile-nav-list { list-style:none; margin:0; padding:0; }
   .mobile-nav-list li { margin:0; padding:0; }
   .mobile-menu a { display:block; padding:13px 0; border-bottom:1px solid rgba(35,53,43,.1); font:11px var(--app-font-mono); letter-spacing:.1em; text-transform:uppercase; }
   .mobile-menu .has-dropdown > a { border-bottom:0; padding-bottom:6px; display:flex; align-items:center; justify-content:space-between; }
   .mobile-menu .nav-dropdown { padding:0 0 6px 14px; }
   .mobile-menu .nav-dropdown a { padding:9px 0; font-size:10px; opacity:.68; border-bottom:1px dashed rgba(35,53,43,.12); }
   .mobile-menu-quote { display:block; text-align:center; margin-top:16px; }
   html.menu-open { overflow:hidden; }
  .collection-grid, .split-story, .detail-grid, .project-grid, .editorial-grid, .quote-layout { grid-template-columns:1fr; }
  .category-grid, .category-grid-premium { grid-template-columns:repeat(2,1fr); }
  .topbar-tagline { display:none; }
  .topbar-inner { justify-content:center; }
  .collection-card, .collection-card.small { min-height:480px; }
  .page-intro { min-height:500px; }
  .page-intro-content { padding-bottom:60px; }
  .split-story > div:last-child { min-height:460px; }
  .product-grid { grid-template-columns:repeat(2,1fr); gap:30px 14px; }
  .journal-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid > div:first-child { grid-column:span 2; }
  .newsletter-inner { display:block; }
  .newsletter-form { margin-top:35px; }
   .site-search { padding-left:16px; padding-right:16px; }
  .quote-layout { gap:35px; padding-top:55px; }
}
@media (max-width:560px) {
   .header-inner { height:68px; }
   .logo img { width:132px; height:56px; }
   .mobile-menu-fab { right:14px; bottom:18px; width:52px; height:52px; }
  .announcement { font-size:8px; }
  .hero { min-height:calc(100dvh - 103px); }
  .hero-copy h1 { font-size:60px; }
  .page-intro { min-height:460px; }
  .page-intro-image-media { object-position:58% center; }
  .page-intro-content { padding:70px 0 46px; }
  .page-intro h1 { font-size:56px; }
  .section { padding:72px 0; }
  .section-heading { display:block; margin-bottom:29px; }
  .section-heading p { margin-top:20px; }
  .collection-card h3 { font-size:43px; }
  .catalogue-bar { display:block; }
  .search-box { margin-top:17px; }
  .search-box input { flex:1; width:auto; }
  .gallery { grid-template-columns:1fr; }
  .thumbs { order:2; flex-direction:row; }
  .thumb { width:66px; }
  .detail-grid { padding-top:30px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .category-grid { grid-template-columns:1fr; }
  .category-grid-premium { grid-template-columns:repeat(2,1fr); gap:10px; }
  .category-card { aspect-ratio:1/1; }
  .category-card-content { left:11px; right:11px; bottom:11px; }
  .category-card-content h3 { font-size:13px; margin:6px 0 3px; }
  .category-card-content p { display:none; }
  .category-card-arrow { width:24px; height:24px; font-size:11px; margin-top:8px; }
  .category-filter-tabs { margin-bottom:16px; }
  .cf-tab { padding:9px 13px; font-size:9px; letter-spacing:.08em; }
  .product-filter-tabs { width:calc(100vw - 32px); margin-left:0; margin-right:0; }
  .product-tabs-grid { gap:24px 12px; }
  .quote-form { padding:26px 20px; }
   .footer-grid { grid-template-columns:1fr 1fr; gap:28px 20px; }
   .site-search-form { gap:9px; }
   .site-search-form .button { padding:0 12px; }
   .topbar-links { gap:12px; font-size:9px; justify-content:center; width:100%; }
   .topbar-address { display:none; }
   .hero-dots { right:16px; bottom:16px; }
   .hero-actions { width:100%; }
   .hero-actions .button { flex:1 1 auto; }
}