:root { --paper:#f5f3ed; --ink:#252b24; --muted:#6d7168; --green:#263c30; --lime:#c8d99c; --line:#dcded5; --serif:'Playfair Display', Georgia, serif; --sans:'DM Sans',Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); }
a { color:inherit; text-decoration:none; }
.announcement { padding:10px 7vw; color:#f4f1e9; background:var(--green); text-align:center; font-size:.68rem; letter-spacing:.08em; }
.announcement span { color:var(--lime); padding:0 8px; }
.site-header { min-height:145px; position:relative; padding:15px 7vw 0; display:flex; flex-direction:column; align-items:center; border-bottom:1px solid var(--line); }
.header-top { width:100%; min-height:83px; display:flex; align-items:center; justify-content:center; gap:clamp(18px,4vw,58px); position:relative; }
.header-top::before,.header-top::after { content:""; width:min(12vw,150px); height:1px; background:var(--line); }
.brand { display:flex; align-items:center; gap:20px; line-height:1; }
.site-header .brand { padding:0; }
.brand img { display:block; object-fit:contain; object-position:center; }
.brand .brand-symbol { width:120px; height:66px; }
.brand .brand-wordmark { width:225px; height:72px; }
nav { width:100%; min-height:56px; display:flex; align-items:center; justify-content:center; gap:42px; font-size:.78rem; }
nav a:not(.nav-contact):hover,.text-link:hover { color:#718051; }
.nav-contact { padding:13px 17px; border:1px solid var(--line); transition:.2s; }
.nav-contact:hover { background:var(--green); color:white; }
.nav-contact span { margin-left:13px; }
.menu-toggle { display:none; border:0; background:none; color:var(--ink); font-size:1.35rem; }
.hero { min-height:690px; padding:60px 7vw 76px; display:grid; grid-template-columns:.88fr 1.12fr; align-items:center; gap:6vw; }
.hero-copy { padding:25px 0; }
.eyebrow { margin:0 0 20px; font-size:.66rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#727a68; }
.hero .eyebrow { display:flex; gap:10px; align-items:center; }
.hero .eyebrow span { width:24px; height:1px; background:#788a59; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--serif); font-weight:500; letter-spacing:-.045em; }
h1 { margin-bottom:22px; font-size:clamp(3.6rem,6.2vw,6.8rem); line-height:1.03; }
h1 em,h2 em { color:#78845e; font-weight:500; }
.hero-text { max-width:440px; color:var(--muted); font-size:.96rem; line-height:1.8; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:34px; }
.button { min-height:50px; padding:0 19px; display:inline-flex; align-items:center; justify-content:space-between; gap:28px; font-size:.75rem; transition:background .2s, transform .2s; }
.button:hover { transform:translateY(-2px); }
.button-dark { background:var(--green); color:#fff; }
.button-dark:hover { background:#405b48; }
.text-link { font-size:.75rem; font-weight:600; }
.text-link span { margin-left:9px; }
.hero-proof { display:flex; align-items:center; gap:14px; margin-top:65px; color:var(--muted); font-size:.63rem; line-height:1.5; letter-spacing:.03em; }
.hero-proof .proof-slogan { color:var(--ink); font:500 .88rem/1.5 var(--serif); letter-spacing:0; }
.hero-proof i { width:1px; height:30px; margin:0 10px; background:var(--line); }
.hero-visual { height:555px; position:relative; background:#d9d4c6; overflow:hidden; }
.hero-visual:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 65%,rgba(25,33,27,.35)); pointer-events:none; }
.hero-visual img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.image-label { position:absolute; z-index:1; left:24px; bottom:22px; color:#fff; font-size:.66rem; font-weight:500; letter-spacing:.12em; text-shadow:0 1px 8px #15201799; }
.hero-stamp { width:100px; height:100px; position:absolute; z-index:1; top:20px; right:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding-top:8px; border-radius:50%; background:var(--paper); color:var(--green); }
.hero-stamp img { width:82px; height:38px; margin:4px 0 3px; object-fit:contain; object-position:center; }
.hero-stamp span { margin-top:1px; font-size:.43rem; letter-spacing:.2em; }.hero-stamp strong { margin-top:1px; font:500 1.32rem/1 var(--serif); }
.section { padding:110px 10vw; border-top:1px solid var(--line); }
.intro { display:grid; grid-template-columns:1fr 2fr; gap:6vw; }
.intro-side { display:flex; flex-direction:column; align-items:flex-start; }
.small-rule { width:42px; height:1px; background:#8b9872; }
h2 { margin-bottom:24px; font-size:clamp(2.6rem,4.5vw,4.7rem); line-height:1.09; }
.intro-main > p:not(.eyebrow) { max-width:600px; margin:0 0 24px; color:var(--muted); font-size:.91rem; line-height:1.9; }
.accent-letter { color:#a9473b; }
.products { padding-top:95px; background:#eeede6; }
.section-top,.collection-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:45px; }
.section-top h2,.collection-heading h2 { margin:0; }
.section-note { max-width:310px; margin-bottom:5px; color:var(--muted); font-size:.82rem; line-height:1.8; }
.product-grid { display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:18px; }
.product-art { width:100%; height:300px; position:relative; overflow:hidden; padding:0; border:0; border-radius:0; font:inherit; text-align:left; cursor:pointer; background:#dcd7ca; }
.product-large .product-art { height:390px; }
.product-photo > img { width:100%; height:100%; display:block; object-fit:cover; }
.chair-photo > img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .35s; }
.chair-photo:hover > img { transform:scale(1.07); }
.bistro-photo > img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .35s; }
.bistro-photo:hover > img { transform:scale(1.07); }
.art-label { position:absolute; z-index:2; top:18px; left:18px; font-size:.55rem; letter-spacing:.14em; color:#56604d; }
.art-table { background:linear-gradient(135deg,#d8c7ac,#b49a75); }
.linen { position:absolute; background:#eeeae1; box-shadow:0 18px 35px #44392922; }
.linen-one { width:80%; height:50%; left:11%; top:33%; transform:rotate(-5deg); }
.linen-two { width:54%; height:23%; left:23%; top:24%; transform:rotate(-5deg); background:#d5d1c5; }
.plate { width:94px; height:94px; position:absolute; left:47%; top:40%; border:7px solid #c7c0b0; border-radius:50%; background:#f6f3eb; box-shadow:0 4px 12px #4442; }
.art-chair { background:linear-gradient(140deg,#d9dfd1,#b6bea9); }
.chair-back { position:absolute; width:37%; height:64%; left:32%; top:18%; border-radius:42% 42% 12% 12%; background:#f4f2e9; box-shadow:0 14px 25px #343c3122; }
.chair-seat { position:absolute; width:53%; height:21%; left:24%; top:62%; border-radius:5px; background:#ece9df; box-shadow:0 15px 0 -12px #554a3b; }
.art-bistro { background:linear-gradient(135deg,#d7d0c3,#bcb4a4); }
.bistro-cloth { position:absolute; width:57%; height:52%; left:22%; top:25%; background:#f1eee5; clip-path:polygon(12% 0,88% 0,100% 100%,0 100%); box-shadow:0 12px 30px #30281e30; }
.bistro-base { position:absolute; width:8%; height:26%; left:46%; top:72%; background:#60594c; }
.product-info { display:flex; align-items:center; justify-content:space-between; padding:17px 1px 6px; }
.product-info h3 { margin:0 0 5px; font:500 1.25rem var(--serif); }
.product-info p { margin:0; color:var(--muted); font-size:.68rem; }
.product-info > a,.product-info > button { width:36px; height:36px; display:grid; place-items:center; border:1px solid #c9ccc1; border-radius:50%; color:inherit; background:transparent; cursor:pointer; }
.product-info > a:hover,.product-info > button:hover { background:var(--green); color:white; }
.image-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:42px; }
.image-gallery[hidden] { display:none; }
.image-gallery figure { position:relative; aspect-ratio:4/3; margin:0; overflow:hidden; background:#dedbd2; transition:transform .22s,box-shadow .22s; }
.image-gallery img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s; cursor:zoom-in; }
.image-gallery figure:hover { z-index:2; transform:scale(1.08); box-shadow:0 12px 28px #20271f38; }
.chair-photo { cursor:pointer; }
.photo-lightbox { width:max-content; max-width:94vw; max-height:94vh; padding:14px; overflow:visible; border:0; border-radius:3px; background:#f5f3ed; box-shadow:0 20px 70px #0008; }
.photo-lightbox::backdrop { background:#111a; backdrop-filter:blur(3px); }
.photo-lightbox img { display:block; max-width:calc(94vw - 28px); max-height:calc(94vh - 28px); object-fit:contain; }
.lightbox-close { position:absolute; top:-14px; right:-14px; width:38px; height:38px; border:0; border-radius:50%; color:#fff; background:var(--green); font-size:1.5rem; line-height:1; cursor:pointer; }
.lightbox-prev,.lightbox-next { position:absolute; top:50%; z-index:1; width:42px; height:54px; transform:translateY(-50%); border:0; border-radius:3px; color:#fff; background:#263c30d9; font-size:2rem; line-height:1; cursor:pointer; }
.lightbox-prev { left:22px; }
.lightbox-next { right:22px; }
.safety { min-height:480px; position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:1.25fr .75fr; gap:8vw; align-items:center; color:#f5f3ed; background:var(--green); }
.safety::before { content:""; position:absolute; z-index:0; top:50%; right:1%; width:min(46vw,560px); height:130%; transform:translateY(-50%); background:url("assets/ifr-smoke.png") center/contain no-repeat; opacity:.3; filter:blur(2px); pointer-events:none; }
.safety > * { position:relative; z-index:1; }
.safety .eyebrow { color:#c2cfaa; }
.safety h2 { font-size:clamp(2.7rem,4.7vw,4.8rem); }
.safety h2 em { color:#d0dda7; }
.safety-copy > p:not(.eyebrow) { max-width:540px; color:#d0d4ca; font-size:.86rem; line-height:1.9; }
.button-light { margin-top:18px; background:#f3f0e6; color:var(--green); }
.safety-mark { min-height:280px; padding:30px; display:flex; flex-direction:column; justify-content:center; align-items:center; border:1px solid #ffffff45; text-align:center; }
.safety-mark > span:first-child { font:500 6rem var(--serif); color:#d5dfa9; line-height:1; }
.safety-mark > span:nth-child(2) { margin-top:10px; font-size:.56rem; letter-spacing:.2em; }
.safety-mark i { width:36px; height:1px; margin:22px; background:#c6d29f; }
.safety-mark p { margin:0; color:#e0e4da; font:500 1.15rem/1.5 var(--serif); }
.collections { display:grid; grid-template-columns:.8fr 1.2fr; gap:7vw; }
.collection-heading { display:block; margin:0; }
.collection-heading > p { max-width:340px; margin-top:24px; color:var(--muted); font-size:.83rem; line-height:1.8; }
.catalog-list { border-top:1px solid var(--line); }
.catalog-row { min-height:132px; display:grid; grid-template-columns:38px 78px minmax(0,1fr) auto; align-items:center; gap:18px; border-bottom:1px solid var(--line); }
.catalog-number,.catalog-detail small { color:var(--muted); font-size:.63rem; }
.catalog-cover { width:78px; height:104px; display:block; overflow:hidden; background:#e2e0d8; }
.catalog-cover img { width:100%; height:100%; display:block; object-fit:cover; object-position:center top; transition:transform .35s; }
.catalog-cover:hover img { transform:scale(1.045); }
.catalog-detail strong { display:block; font:500 1.04rem var(--serif); }
.catalog-detail small { display:block; margin-top:8px; }
.catalog-open { white-space:nowrap; font-size:.68rem; font-weight:600; }
.catalog-open:hover { color:#78845e; }
.catalog-row-coming { grid-template-columns:38px 78px minmax(0,1fr); }
.catalog-cover-coming { position:relative; }
.catalog-cover-coming img { object-position:center; }
.catalog-detail small { text-transform:uppercase; letter-spacing:.1em; }
.contact { display:grid; grid-template-columns:1.1fr .9fr; gap:7vw; background:#e9e8df; }
.contact h2 { margin-bottom:0; }
.contact-card { padding:32px; background:var(--paper); }
.contact-card > p:first-child { max-width:360px; margin-bottom:24px; color:var(--muted); font-size:.78rem; line-height:1.7; }
.contact-card > a:not(.button) { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line); font-size:.85rem; }
.contact-card > a span { color:#78845e; }
.contact-card .address { margin:20px 0; color:var(--muted); font-size:.68rem; line-height:1.7; }
.contact-card .button { width:100%; }
footer { min-height:100px; padding:24px 7vw; display:flex; align-items:center; justify-content:space-between; gap:20px; color:var(--muted); font-size:.63rem; }
.footer-brand img { width:180px; height:43px; }
.footer-company { max-width:290px; color:var(--ink); font-size:.8rem; line-height:1.45; letter-spacing:.035em; }
footer > a:not(.brand):hover { color:var(--ink); }
@media(max-width:850px) { .site-header { padding-left:5vw; padding-right:5vw; }.brand .brand-symbol { width:103px; height:59px; }.brand .brand-wordmark { width:198px; height:65px; }.footer-brand img { width:160px; height:39px; }.hero { gap:4vw; grid-template-columns:1fr 1fr; }.hero-visual { height:480px; }.section { padding-left:7vw; padding-right:7vw; }.product-grid { grid-template-columns:1fr 1fr; }.product-large { grid-column:span 2; }.product-large .product-art { height:330px; }.image-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); } nav { gap:30px; } }
@media(max-width:640px) {
  .announcement { padding:9px 5vw; font-size:.55rem; }
  .site-header { min-height:76px; padding:0 6vw; align-items:stretch; }
  .header-top { min-height:76px; justify-content:flex-start; gap:0; }
  .header-top::before,.header-top::after { display:none; }
  .site-header .brand { gap:8px; }
  .brand .brand-symbol { width:70px; height:46px; }
  .brand .brand-wordmark { width:149px; height:52px; }
  .menu-toggle { display:block; position:absolute; right:0; top:50%; transform:translateY(-50%); }
  nav { display:none; position:absolute; z-index:5; top:calc(100% - 1px); left:0; right:0; width:auto; min-height:0; padding:12px 6vw 22px; flex-direction:column; align-items:stretch; gap:0; background:var(--paper); border-bottom:1px solid var(--line); }
  nav.open { display:flex; }
  nav a { padding:14px 0; border-bottom:1px solid var(--line); }
  nav .nav-contact { margin-top:12px; padding:14px; border:1px solid var(--line); }
  .hero { padding:48px 6vw 55px; display:flex; flex-direction:column; align-items:stretch; gap:35px; }
  h1 { font-size:clamp(3.6rem,17vw,5.4rem); }
  .hero-proof { margin-top:38px; }
  .hero-visual { height:390px; }
  .hero-stamp { width:80px; height:80px; padding-top:5px; }.hero-stamp img { width:66px; height:30px; margin:3px 0 2px; }.hero-stamp span { font-size:.38rem; }.hero-stamp strong { font-size:1.08rem; }
  .section { padding:75px 6vw; }
  .intro,.safety,.collections,.contact { grid-template-columns:1fr; gap:28px; }
  .intro-side { flex-direction:row; gap:20px; align-items:center; }
  .intro .eyebrow { margin:0; }
  .section-top,.collection-heading { display:block; }
  .section-note { margin-top:22px; }
  .product-grid { grid-template-columns:1fr; gap:28px; }
  .product-large { grid-column:auto; }
  .product-art,.product-large .product-art { height:300px; }
  .image-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:30px; }
  .safety-mark { min-height:240px; }
  .catalog-row { min-height:104px; grid-template-columns:26px 58px minmax(0,1fr) auto; gap:10px; }
  .catalog-row-coming { grid-template-columns:26px 58px minmax(0,1fr); }
  .catalog-cover { width:58px; height:78px; }
  .catalog-detail strong { font-size:.86rem; }
  .catalog-detail small { display:none; }
  .catalog-open { font-size:.6rem; }
  .contact-card { padding:24px; }
  footer { padding:24px 6vw; flex-wrap:wrap; justify-content:flex-start; }
  .footer-company { width:100%; max-width:none; order:2; }
}
