@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');

:root { --ink:#141618; --muted:#697077; --line:#dedfdf; --paper:#f5f5f3; --white:#fff; --accent:#0f5963; --max:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter,"Noto Sans SC",sans-serif; }
body:has(dialog[open]) { overflow:hidden; }
img { display:block; width:100%; -webkit-touch-callout:none; -webkit-user-drag:none; user-select:none; }
a { color:inherit; text-decoration:none; }
button,select { font:inherit; }
button,a,select,summary { -webkit-user-select:none; user-select:none; -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.section-shell { width:min(var(--max),calc(100% - 48px)); margin-inline:auto; }
.site-header { position:absolute; z-index:10; top:0; left:50%; width:min(var(--max),calc(100% - 48px)); height:88px; transform:translateX(-50%); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(20,22,24,.15); }
.brand { display:flex; align-items:center; }
.brand-logo { width:148px; height:48px; object-fit:contain; object-position:left center; mix-blend-mode:multiply; }
nav { display:flex; align-items:center; gap:32px; font-size:13px; font-weight:600; }
nav a { position:relative; }
nav a::after { content:""; position:absolute; left:0; bottom:-7px; width:0; height:1px; background:var(--ink); transition:.2s; }
nav a:hover::after { width:100%; }
.language-select { max-width:150px; padding:8px 28px 8px 10px; border:1px solid #bdc1c3; color:var(--ink); background:rgba(255,255,255,.68); cursor:pointer; }
.menu-toggle { display:none; border:0; background:none; }
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); }

.hero { min-height:690px; padding-top:132px; padding-bottom:70px; display:grid; grid-template-columns:.82fr 1.18fr; gap:64px; align-items:center; }
.eyebrow { margin:0 0 18px; color:#737a7f; font-size:10px; font-weight:700; letter-spacing:.22em; }
h1,h2,p { margin-top:0; }
h1 { margin-bottom:24px; font-size:clamp(48px,5vw,72px); line-height:1.06; letter-spacing:-.055em; }
h1 span { color:#858b8f; font-weight:500; }
.lead { max-width:520px; margin-bottom:0; color:var(--muted); font-size:15px; line-height:1.85; }
.actions { display:flex; gap:12px; margin-top:34px; }
.button { min-height:48px; padding:0 24px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #b9bdc0; font-size:13px; font-weight:600; transition:.2s; }
.button.primary { border-color:var(--ink); color:#fff; background:var(--ink); }
.button:hover { transform:translateY(-2px); }
.image-frame { position:relative; padding:28px; background:#dedfdd; box-shadow:0 24px 70px rgba(22,25,27,.1); }
.image-frame img { aspect-ratio:1.28; object-fit:cover; }
.frame-caption { position:absolute; right:18px; bottom:10px; padding:5px 8px; color:#fff; background:rgba(20,22,24,.78); font-size:8px; letter-spacing:.16em; }

.products { padding-block:104px 120px; border-top:1px solid var(--line); }
.catalog-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:38px; }
.catalog-heading h2 { margin:0; font-size:clamp(40px,5vw,62px); letter-spacing:-.045em; }
.catalog-heading>p { margin:0; color:var(--muted); font-size:12px; }
.catalog-heading strong { color:var(--ink); font-size:22px; }
.product-search { position:relative; display:block; margin-bottom:14px; }
.product-search input { width:100%; height:54px; padding:0 18px; border:1px solid #cfd1d2; border-radius:0; color:var(--ink); background:var(--white); font-size:16px; outline:none; }
.product-search input:focus { border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); }
.product-search input::placeholder { color:#8a9094; }
.category-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:34px; }
.category-filters button { min-height:42px; padding:0 16px; border:1px solid #cfd1d2; color:#555c61; background:transparent; cursor:pointer; }
.category-filters button span { margin-left:8px; color:#999ea2; font-size:10px; }
.category-filters button:hover,.category-filters button.active { border-color:var(--ink); color:#fff; background:var(--ink); }
.product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.catalog-card { min-width:0; background:var(--white); border:1px solid #e1e2e2; }
.catalog-card[hidden] { display:none; }
.catalog-card__button { display:block; width:100%; height:100%; margin:0; padding:0; border:0; border-radius:0; -webkit-appearance:none; appearance:none; color:inherit; background:transparent; text-align:left; cursor:pointer; }
.catalog-card__image { display:block; overflow:hidden; aspect-ratio:1.1; background:#e9e9e7; }
.catalog-card__image img { height:100%; object-fit:cover; transition:transform .45s ease; }
.catalog-card:hover img { transform:scale(1.035); }
.catalog-card__meta { min-height:108px; padding:15px 16px 14px; display:flex; flex-direction:column; align-items:flex-start; }
.catalog-card__meta small { margin-bottom:7px; color:#858b90; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.catalog-card__meta strong { font-size:17px; line-height:1.35; }
.catalog-card__meta>span { margin-top:8px; padding-top:0; color:var(--accent); font-size:12px; font-weight:600; }
.empty-state { padding:70px 20px; border:1px solid var(--line); color:var(--muted); background:var(--white); text-align:center; }

.contact { margin-bottom:90px; padding:92px 40px; color:#fff; background:var(--ink); text-align:center; }
.contact .eyebrow { color:#8f989c; }
.contact h2 { margin-bottom:18px; font-size:clamp(36px,5vw,62px); letter-spacing:-.05em; }
.contact>p:not(.eyebrow) { color:#aeb3b5; }
.contact-actions { margin-top:34px; display:flex; flex-direction:column; align-items:center; gap:16px; }
.contact .button.primary { border-color:#fff; color:var(--ink); background:#fff; }
.contact-email { color:#c4c8ca; font-size:16px; font-weight:600; }
footer { width:min(var(--max),calc(100% - 48px)); margin:auto; padding:32px 0; display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); }
footer p { margin:0; color:#8b9093; font-size:10px; }

.product-dialog { width:min(1040px,calc(100% - 32px)); max-height:calc(100vh - 32px); padding:0; border:0; background:var(--paper); box-shadow:0 30px 100px rgba(0,0,0,.35); }
.product-dialog.dialog-fallback { position:fixed; z-index:100; inset:16px; margin:auto; display:block; overflow:auto; }
.product-dialog::backdrop { background:rgba(10,12,13,.72); backdrop-filter:blur(4px); }
.dialog-close { position:absolute; z-index:2; top:14px; right:14px; min-width:64px; height:38px; padding:0 14px; border:0; color:#fff; background:rgba(20,22,24,.82); font-size:11px; cursor:pointer; }
.dialog-layout { display:grid; grid-template-columns:1.2fr .8fr; min-height:580px; }
.dialog-media { position:relative; display:grid; place-items:center; overflow:hidden; background:#e5e5e3; }
.dialog-media img { width:100%; height:100%; max-height:760px; object-fit:contain; opacity:1; transition:opacity .18s ease; }
.dialog-media.is-loading img { opacity:.18; }
.dialog-media.is-loading::after { content:""; position:absolute; z-index:1; width:34px; height:34px; border:3px solid rgba(20,22,24,.18); border-top-color:var(--accent); border-radius:50%; animation:gallery-spin .7s linear infinite; pointer-events:none; }
.dialog-media.load-error { animation:gallery-error .28s ease 2; }
@keyframes gallery-spin { to { transform:rotate(360deg); } }
@keyframes gallery-error { 50% { filter:brightness(.9); } }
.dialog-media button { position:absolute; top:50%; min-width:72px; height:42px; padding:0 10px; transform:translateY(-50%); border:0; color:#fff; background:rgba(20,22,24,.7); font-size:10px; cursor:pointer; }
.dialog-media button:disabled { opacity:.55; cursor:wait; }
.dialog-media [data-gallery-prev] { left:12px; }.dialog-media [data-gallery-next] { right:12px; }
.single-image .dialog-media button { display:none; }
.dialog-media span { position:absolute; right:16px; bottom:14px; padding:5px 8px; color:#fff; background:rgba(20,22,24,.7); font-size:10px; }
.dialog-copy { padding:72px 48px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.dialog-copy h2 { margin-bottom:22px; font-size:34px; line-height:1.18; letter-spacing:-.035em; }
.dialog-copy>p:not(.eyebrow) { margin-bottom:34px; color:var(--muted); font-size:14px; line-height:1.85; }
.dialog-copy ul { margin:0; padding:22px 0 0 18px; border-top:1px solid var(--line); color:#4f565b; font-size:12px; line-height:1.75; }
.dialog-copy li { margin-bottom:10px; padding-left:4px; }

.js .reveal { opacity:0; transform:translateY(16px); transition:opacity .55s ease,transform .55s ease; }
.js .reveal.visible { opacity:1; transform:none; }
@media (max-width:1000px) { .hero { grid-template-columns:1fr; }.hero-copy { max-width:700px; }.product-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:720px) { .section-shell,.site-header,footer { width:calc(100% - 32px); }.site-header { height:74px; }.brand-logo { width:104px; height:38px; }.site-header nav { gap:10px; font-size:12px; }.language-select { max-width:112px; padding:7px 24px 7px 8px; font-size:12px; }.hero { min-height:auto; padding-top:112px; padding-bottom:60px; gap:38px; }.actions { flex-direction:column; }.image-frame { padding:18px; }.products { padding-block:76px 84px; }.catalog-heading { align-items:flex-start; flex-direction:column; gap:16px; }.category-filters { flex-wrap:nowrap; overflow-x:auto; padding-bottom:6px; -webkit-overflow-scrolling:touch; }.category-filters button { flex:0 0 auto; }.product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.catalog-card__meta { min-height:96px; padding:12px; }.catalog-card__meta small { margin-bottom:5px; }.catalog-card__meta strong { font-size:15px; }.catalog-card__meta>span { margin-top:6px; font-size:11px; }.contact { width:100%; margin-bottom:52px; padding:72px 24px; }.dialog-layout { grid-template-columns:1fr; }.dialog-media { min-height:52vh; }.dialog-copy { padding:34px 26px; }.dialog-copy h2 { font-size:27px; }.product-dialog { max-height:calc(100vh - 16px); }.dialog-close { top:8px; right:8px; } }
@media (max-width:430px) { h1 { font-size:43px; }.product-grid { grid-template-columns:1fr 1fr; }.catalog-card__image { aspect-ratio:1; }.catalog-card__meta strong { font-size:14px; }.catalog-card__meta>span { font-size:11px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }*,*::before,*::after { transition:none!important; } }
