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

:root { --ink:#242722; --moss:#536b57; --moss-dark:#384c3b; --cream:#f4f0e7; --paper:#fbf9f3; --sand:#e8ddc5; --clay:#c9694b; --line:rgba(36,39,34,.18); --soft-line:rgba(36,39,34,.1); --display:'Zen Maru Gothic','Noto Sans TC',sans-serif; --body:'Noto Sans TC',sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:var(--body); font-size:16px; line-height:1.7; text-wrap:pretty; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
button { cursor:pointer; }
img { display:block; max-width:100%; }
.announcement { min-height:36px; padding:8px 5vw; display:flex; gap:18px; justify-content:center; align-items:center; background:var(--moss-dark); color:#fff; font-size:12px; letter-spacing:.05em; }
.announcement a { color:#f5dca6; text-decoration:underline; text-underline-offset:3px; }
.site-header { max-width:1440px; min-height:86px; margin:0 auto; padding:0 5vw; display:flex; align-items:center; gap:32px; border-bottom:1px solid var(--line); background:var(--cream); position:relative; z-index:20; }
.brand { display:inline-flex; align-items:center; gap:10px; flex-shrink:0; }
.brand img { width:37px; height:37px; }
.brand span { display:grid; line-height:1.05; }
.brand b { font-family:var(--display); font-size:20px; font-weight:700; letter-spacing:.05em; }
.brand small { font-size:7px; letter-spacing:.17em; margin-top:5px; color:var(--moss); white-space:nowrap; }
.nav-links { display:flex; align-items:center; justify-content:center; gap:28px; margin-left:auto; }
.nav-links a { font-size:14px; position:relative; padding:28px 0; }
.nav-links a::after { content:''; position:absolute; left:0; right:0; bottom:22px; height:2px; background:var(--clay); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.nav-links a:hover::after,.nav-links a.active::after { transform:scaleX(1); }
.cart-link { display:inline-flex; gap:8px; align-items:center; border:1px solid var(--ink); border-radius:999px; padding:8px 12px; font-size:12px; line-height:1; white-space:nowrap; transition:.2s ease; }
.cart-link:hover,.cart-link.active { color:#fff; background:var(--moss); border-color:var(--moss); }
.cart-count { display:grid; place-items:center; width:17px; height:17px; border-radius:50%; background:var(--clay); color:#fff; font-size:10px; }
.bag-icon { width:15px; height:14px; display:inline-block; border:1.6px solid currentColor; border-radius:2px 2px 3px 3px; position:relative; }
.bag-icon::before { content:''; position:absolute; height:7px; width:7px; border:1.6px solid currentColor; border-bottom:0; border-radius:7px 7px 0 0; top:-6px; left:2.4px; }
.bag-icon.large { width:45px; height:42px; border-width:3px; border-radius:7px; }
.bag-icon.large::before { width:23px; height:21px; border-width:3px; top:-19px; left:8px; }
.menu-toggle { display:none; margin-left:auto; border:0; background:transparent; width:42px; height:42px; padding:10px; }
.menu-toggle i { display:block; height:1.5px; width:100%; background:var(--ink); margin:6px 0; transition:.2s; }
.section-frame { width:min(1210px,90vw); margin-left:auto; margin-right:auto; }
.hero { min-height:680px; padding:70px 0 88px; display:grid; grid-template-columns:minmax(0,.93fr) minmax(420px,1.07fr); gap:6vw; align-items:center; }
.eyebrow { margin:0 0 14px; color:var(--moss); font-size:11px; letter-spacing:.17em; font-weight:700; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--display); letter-spacing:.01em; line-height:1.32; }
h1 { font-size:clamp(44px,5.5vw,77px); margin:0 0 24px; font-weight:500; }
h2 { font-size:clamp(30px,3.4vw,49px); margin-bottom:19px; font-weight:500; }
h3 { font-size:20px; margin-bottom:6px; }
em { font-style:normal; color:var(--moss); position:relative; white-space:nowrap; }
em::after { content:''; height:8px; position:absolute; left:-4px; right:-4px; bottom:4px; background:#dce1cb; z-index:-1; transform:rotate(-1.5deg); }
.hero-lead { max-width:490px; font-size:17px; color:#4b504a; margin-bottom:28px; }
.hero-actions { display:flex; align-items:center; gap:25px; flex-wrap:wrap; }
.button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:20px; padding:12px 20px; border-radius:3px; border:1px solid transparent; font-size:14px; font-weight:700; transition:transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform:translateY(-2px); }
.button span { font-size:20px; font-weight:400; line-height:1; }
.button-primary { color:#fff; background:var(--moss); }
.button-primary:hover { background:var(--moss-dark); }
.button-outline { border-color:var(--moss); color:var(--moss); }
.button-outline:hover { background:var(--moss); color:#fff; }
.text-link { color:var(--moss-dark); font-size:14px; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:3px; }
.text-link span { font-size:18px; margin-left:6px; }
.hero-note { display:flex; align-items:center; gap:12px; margin-top:48px; color:#62685e; font-size:12px; line-height:1.6; }
.hero-note p { margin:0; }.hero-note b { color:var(--ink); }
.sun-stamp { display:inline-grid; place-items:center; width:39px; height:39px; border:1px solid var(--clay); color:var(--clay); border-radius:50%; position:relative; flex:0 0 auto; }
.sun-stamp::before { content:'日'; font-family:var(--display); font-size:17px; }
.hero-art { position:relative; }
.hero-image-wrap { overflow:hidden; border-radius:42% 42% 3px 3px; background:#ddd6c7; box-shadow:20px 21px 0 var(--sand); }
.hero-image-wrap img { aspect-ratio:1.03/1; object-fit:cover; width:100%; }
.hero-tag { position:absolute; bottom:-30px; left:-35px; display:grid; gap:2px; min-width:178px; padding:13px 17px; background:var(--paper); border:1px solid var(--line); transform:rotate(-3deg); box-shadow:0 8px 22px rgba(36,39,34,.08); }
.hero-tag span { font-size:10px; color:var(--clay); font-weight:700; }.hero-tag b { font-family:var(--display); font-size:15px; }.hero-tag small { font-size:9px; letter-spacing:.07em; color:#62685e; }
.category-ribbon { padding:0 max(5vw,calc((100vw - 1210px)/2)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; align-items:stretch; overflow-x:auto; background:#edf0e5; }
.category-ribbon p { min-width:220px; margin:0; padding:23px 22px 23px 0; font-family:var(--display); font-size:14px; display:flex; align-items:center; }.category-ribbon a { min-width:170px; border-left:1px solid var(--line); padding:18px 17px; display:flex; gap:10px; align-items:center; font-size:13px; transition:background .2s; }.category-ribbon a:hover { background:#dfe6d5; }.category-symbol { color:var(--clay); font-size:10px; font-weight:700; }
.goods-section { padding:118px 0 112px; }.editorial-heading { display:grid; grid-template-columns:.8fr 1.1fr .8fr; align-items:end; column-gap:30px; margin-bottom:50px; }.editorial-heading .eyebrow { align-self:start; margin-top:11px; }.editorial-heading h2 { margin:0; }.editorial-heading > p:last-child { color:#586058; margin:0 0 8px; font-size:14px; }
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; align-items:start; }.product-card { min-width:0; }.product-card.offset-card { margin-top:44px; }.product-card.wide-card { margin-top:-14px; }.product-image { display:block; background:#e7e2d7; overflow:hidden; aspect-ratio:1; }.product-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.8,.2,1); }.product-card:hover img { transform:scale(1.04); }.product-meta { display:flex; justify-content:space-between; gap:6px; margin-top:14px; color:var(--moss); font-size:10px; letter-spacing:.09em; }.product-meta span:last-child { color:#85877e; }.product-card h3 { margin:5px 0 4px; font-size:18px; }.product-card > p { color:#646a60; font-size:13px; margin-bottom:13px; min-height:44px; }.product-bottom { display:flex; justify-content:space-between; align-items:center; gap:8px; border-top:1px solid var(--soft-line); padding-top:12px; }.product-bottom b { color:var(--moss-dark); font-size:14px; }.product-bottom button { padding:0; color:var(--moss); background:none; border:0; font-size:12px; font-weight:700; }.product-bottom button span { font-size:17px; margin-left:3px; }.catalog-note { margin:32px 0 0; color:#73786e; font-size:11px; }
.story-band { padding:100px 0; background:var(--moss); color:#fff; overflow:hidden; }.story-layout { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:9vw; }.story-band .eyebrow { color:#e6d7aa; }.story-band h2 { margin-bottom:20px; }.story-band em { color:#f4db9d; }.story-band em::after { background:rgba(244,219,157,.19); }.story-copy > p:not(.eyebrow) { max-width:540px; color:#e3e7dc; }.story-band .button-outline { color:#f7f3e8; border-color:#e3e7dc; margin-top:13px; }.story-band .button-outline:hover { background:#f7f3e8; color:var(--moss-dark); }.story-mark { width:clamp(205px,25vw,300px); height:clamp(205px,25vw,300px); margin:auto; border:1px solid rgba(255,255,255,.42); border-radius:50%; display:grid; place-items:center; position:relative; }.story-mark span { font-family:var(--display); font-size:clamp(110px,12vw,155px); font-weight:500; line-height:1; }.story-mark i { position:absolute; background:#e6d7aa; border-radius:50%; }.story-mark i:nth-of-type(1) { width:8px; height:8px; top:12%; left:20%; }.story-mark i:nth-of-type(2) { width:5px; height:5px; right:14%; top:30%; }.story-mark i:nth-of-type(3) { width:11px; height:11px; bottom:14%; left:22%; }
.visit-section { padding:80px 0; }.visit-card { padding:45px 48px; min-height:270px; border:1px solid var(--line); display:grid; grid-template-columns:1fr .85fr 60px; align-items:center; gap:36px; background:var(--paper); position:relative; overflow:hidden; }.visit-card::before { content:''; width:240px; height:240px; position:absolute; right:4%; top:-170px; border:1px solid #c8d0bb; border-radius:50%; }.visit-card h2 { margin:0; font-size:35px; }.address-block { font-size:15px; line-height:1.55; }.address-block p { font-weight:700; margin-bottom:10px; }.address-block small { color:#63685f; font-size:11px; }.circle-link { display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:var(--clay); color:#fff; font-size:24px; transition:transform .2s; }.circle-link:hover { transform:rotate(45deg); }
.site-footer { max-width:1440px; padding:57px 5vw 22px; margin:0 auto; background:#e8e3d8; display:grid; grid-template-columns:1fr .9fr; column-gap:40px; }.site-footer.compact { margin-top:58px; }.footer-main > p { margin:19px 0 0; color:#5d625a; font-size:13px; }.footer-address { font-size:11px; display:grid; gap:5px; color:#5f645c; }.footer-address b { color:var(--ink); font-size:13px; }.footer-bottom { grid-column:1/-1; border-top:1px solid var(--line); margin-top:35px; padding-top:14px; color:#71766d; display:flex; justify-content:space-between; gap:15px; font-size:10px; }
.toast { position:fixed; z-index:50; left:50%; bottom:22px; opacity:0; pointer-events:none; transform:translate(-50%,20px); padding:11px 18px; background:var(--ink); color:#fff; border-radius:999px; font-size:13px; transition:.25s ease; box-shadow:0 8px 24px rgba(0,0,0,.18); }.toast.show { opacity:1; transform:translate(-50%,0); }
.detail-main { padding:50px 0 80px; }.back-link { display:inline-block; margin-bottom:30px; color:var(--moss); font-size:13px; font-weight:700; }.product-detail { display:grid; grid-template-columns:1.05fr .8fr; gap:7vw; align-items:center; }.detail-image { background:#e8e3d8; }.detail-image img { width:100%; aspect-ratio:1; object-fit:cover; }.skeleton { aspect-ratio:1; background:linear-gradient(110deg,#e9e4d8 8%,#f5f1e9 18%,#e9e4d8 33%); background-size:200% 100%; animation:shimmer 1.4s linear infinite; }@keyframes shimmer { to { background-position-x:-200%; } }.detail-copy h1 { font-size:clamp(35px,4vw,58px); margin-bottom:6px; }.english-name { color:var(--moss); font-size:13px; letter-spacing:.09em; margin-bottom:23px; }.detail-price { font-family:var(--display); font-size:23px; color:var(--moss-dark); margin-bottom:19px; }.detail-description { color:#545b52; }.detail-list { list-style:none; padding:0; margin:24px 0; border-top:1px solid var(--line); }.detail-list li { padding:10px 0; border-bottom:1px solid var(--soft-line); font-size:13px; }.detail-list li::before { content:'—'; color:var(--clay); margin-right:9px; }.detail-actions { display:flex; gap:24px; align-items:center; flex-wrap:wrap; }.detail-note { margin-top:47px; }
.about-hero { padding:90px 0 82px; min-height:530px; display:grid; grid-template-columns:1fr .72fr; align-items:center; }.about-window { justify-self:end; width:min(310px,100%); height:310px; background:var(--sand); border-radius:50% 50% 6px 6px; position:relative; display:grid; place-items:center; overflow:hidden; }.about-window span { color:var(--moss); font:500 150px/1 var(--display); z-index:1; }.about-window i { position:absolute; height:1px; width:190px; background:rgba(83,107,87,.4); transform:rotate(-35deg); }.about-window i:nth-of-type(1){top:58px;left:-29px}.about-window i:nth-of-type(2){top:115px;left:-17px}.about-window i:nth-of-type(3){top:172px;left:-6px}.about-window i:nth-of-type(4){top:229px;left:5px}.about-copy { padding:90px 0; display:grid; grid-template-columns:130px minmax(0,650px); gap:28px; border-top:1px solid var(--line); }.chapter-number { font:500 44px/1 var(--display); color:var(--clay); }.about-copy h2 { font-size:37px; }.about-copy p { color:#555b52; max-width:630px; }.principles { padding:65px 0 100px; }.principle-list { display:grid; grid-template-columns:repeat(3,1fr); margin-top:25px; border-top:1px solid var(--line); }.principle-list article { padding:27px 32px 20px 0; border-right:1px solid var(--line); }.principle-list article+article { padding-left:31px; }.principle-list article:last-child { border-right:0; }.principle-list span { color:var(--clay); font:500 23px var(--display); }.principle-list h3 { margin:8px 0; }.principle-list p { color:#5f655d; font-size:13px; }.company-sheet { padding:60px; margin-bottom:90px; background:var(--moss); color:#fff; position:relative; overflow:hidden; }.company-sheet::after { content:'日'; position:absolute; right:5%; bottom:-55px; color:rgba(255,255,255,.1); font:500 230px/1 var(--display); }.company-sheet .eyebrow { color:#e5d69f; }.company-sheet h2 { position:relative; z-index:1; font-size:44px; }.company-sheet h2 em { color:#f4dc9c; }.company-sheet h2 em::after { background:rgba(244,220,156,.15); }.company-sheet .button-primary { position:relative; z-index:1; background:#f7f3e8; color:var(--moss-dark); }
.contact-main { padding:88px 0 85px; }.contact-heading { max-width:730px; }.contact-heading > p:last-child { max-width:520px; color:#5f655d; }.location-layout { margin-top:58px; display:grid; grid-template-columns:.88fr 1.12fr; min-height:460px; }.location-card { padding:44px; background:var(--paper); border:1px solid var(--line); position:relative; }.location-card h2 { font-size:29px; }.location-pin { width:18px; height:18px; display:inline-block; border:2px solid var(--clay); border-radius:50% 50% 50% 0; transform:rotate(-45deg); margin-bottom:21px; }.address-copy { padding:12px 0 23px; border-top:1px solid var(--soft-line); }.address-copy p { font-size:14px; margin:0 0 10px; }.address-copy p:last-child { color:#60665d; font-size:12px; }.map-panel { background:#d9dfcf; position:relative; overflow:hidden; min-height:360px; }.map-lines i { position:absolute; display:block; background:rgba(83,107,87,.32); height:16px; border:1px solid rgba(255,255,255,.36); transform:rotate(-21deg); width:150%; left:-22%; }.map-lines i:nth-child(1){top:9%}.map-lines i:nth-child(2){top:28%;transform:rotate(43deg)}.map-lines i:nth-child(3){top:51%;transform:rotate(-5deg)}.map-lines i:nth-child(4){top:69%;transform:rotate(62deg)}.map-lines i:nth-child(5){top:89%;transform:rotate(-24deg)}.map-place { position:absolute; top:12%; left:11%; font:500 44px/1.1 var(--display); color:rgba(83,107,87,.5); }.map-place span { font:12px var(--body); letter-spacing:.1em; }.map-marker { position:absolute; top:45%; left:48%; display:flex; align-items:center; gap:12px; }.map-marker span { display:grid; place-items:center; width:47px; height:47px; color:#fff; background:var(--clay); border-radius:50% 50% 50% 0; transform:rotate(-45deg); font:20px var(--display); box-shadow:0 6px 0 rgba(99,53,37,.14); }.map-marker span::first-letter { transform:rotate(45deg); }.map-marker p { margin:0; font:700 13px/1.35 var(--body); }.map-marker small { font-weight:400; font-size:10px; }.map-note { position:absolute; right:8%; bottom:12%; color:var(--moss); font:700 11px var(--body); letter-spacing:.08em; }.contact-note { display:flex; gap:15px; align-items:center; max-width:650px; margin:47px 0 0 auto; }.contact-note p { margin:0; color:#5c6359; font-size:13px; }
.cart-main { padding:80px 0 45px; }.cart-intro { max-width:650px; margin-bottom:47px; }.cart-intro h1 { font-size:clamp(38px,4.5vw,64px); margin-bottom:13px; }.cart-intro > p:last-child { color:#5f655d; max-width:540px; }.cart-layout { display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:6vw; align-items:start; }.cart-items { border-top:1px solid var(--line); }.cart-item { display:grid; grid-template-columns:140px minmax(0,1fr) 100px; gap:20px; align-items:start; padding:20px 0; border-bottom:1px solid var(--line); }.cart-thumb { display:block; background:#e8e3d8; }.cart-thumb img { width:100%; aspect-ratio:1; object-fit:cover; }.cart-item-copy > span { color:var(--moss); font-size:10px; letter-spacing:.1em; }.cart-item h2 { margin:3px 0 2px; font-size:19px; }.cart-item-copy p { margin-bottom:11px; font-size:13px; color:#596158; }.quantity-control { display:inline-flex; align-items:center; border:1px solid var(--line); }.quantity-control button { width:29px; height:28px; border:0; background:transparent; font-size:17px; }.quantity-control b { min-width:30px; text-align:center; font-size:12px; }.cart-line-right { display:grid; gap:20px; text-align:right; padding-top:7px; }.cart-line-right b { font-size:13px; color:var(--moss-dark); }.remove-button { padding:0; color:#777c74; border:0; background:transparent; font-size:12px; text-decoration:underline; text-underline-offset:3px; }.checkout-card { position:sticky; top:20px; padding:25px; border:1px solid var(--line); background:var(--paper); }.checkout-card .eyebrow { margin-bottom:20px; }.summary-line,.summary-total { display:flex; justify-content:space-between; gap:10px; padding:9px 0; font-size:13px; }.summary-line { color:#60665e; }.summary-total { margin-top:7px; padding-top:16px; border-top:1px solid var(--line); color:var(--moss-dark); font-size:17px; font-family:var(--display); }.checkout-hint { color:#6a7068; font-size:11px; line-height:1.6; }.checkout-form { display:grid; gap:13px; margin-top:21px; }.checkout-form label { color:#50574e; font-size:12px; display:grid; gap:5px; }.checkout-form input,.checkout-form select { width:100%; padding:9px 10px; background:#fffdf8; border:1px solid var(--line); color:var(--ink); border-radius:0; outline-offset:2px; }.checkout-form input:focus,.checkout-form select:focus { outline:2px solid #b4c2a5; }.checkout-form .button { width:100%; margin-top:4px; }.empty-cart { max-width:560px; margin:75px auto; display:grid; justify-items:center; text-align:center; }.empty-cart .bag-icon { margin-bottom:18px; color:var(--moss); }.empty-cart h2 { font-size:29px; margin-bottom:4px; }.empty-cart p { color:#636a60; margin-bottom:22px; }.order-confirmation { max-width:650px; margin:80px auto; padding:56px; text-align:center; background:var(--paper); border:1px solid var(--line); }.confirmation-mark { display:grid; place-items:center; width:54px; height:54px; border-radius:50%; margin:0 auto 19px; background:var(--moss); color:#fff; font:500 28px var(--display); }.order-confirmation h2 { margin-bottom:9px; }.order-confirmation > p:not(.eyebrow) { color:#5e655c; margin-bottom:22px; }
@media (max-width:900px) { .site-header { gap:17px; }.nav-links { gap:16px; }.nav-links a { font-size:12px; }.hero { min-height:auto; grid-template-columns:1fr 1fr; gap:5vw; }.editorial-heading { grid-template-columns:.7fr 1.2fr; }.editorial-heading > p:last-child { display:none; }.product-grid { grid-template-columns:repeat(2,1fr); gap:36px 25px; }.product-card.offset-card,.product-card.wide-card { margin-top:0; }.story-layout { gap:5vw; }.visit-card { padding:36px; grid-template-columns:1fr 1fr 55px; }.cart-layout { grid-template-columns:minmax(0,1fr) 310px; gap:28px; } }
@media (max-width:680px) { body { font-size:15px; }.announcement { justify-content:space-between; padding:8px 5vw; font-size:10px; }.site-header { min-height:70px; padding:0 5vw; gap:10px; }.brand img { width:32px; height:32px; }.brand b { font-size:18px; }.brand small { font-size:6px; }.menu-toggle { display:block; }.nav-links { position:absolute; z-index:10; top:70px; left:0; right:0; padding:9px 5vw 17px; display:none; flex-direction:column; align-items:stretch; gap:0; background:var(--cream); border-bottom:1px solid var(--line); box-shadow:0 12px 16px rgba(36,39,34,.06); }.nav-links.open { display:flex; }.nav-links a { padding:12px 0; }.nav-links a::after { bottom:8px; }.cart-link { padding:7px 9px; }.cart-link > span:not(.bag-icon) { display:none; }.hero { padding:48px 0 68px; grid-template-columns:1fr; gap:44px; }.hero-copy { order:2; }.hero-art { order:1; }.hero-image-wrap { border-radius:45% 45% 3px 3px; width:88%; margin:0 auto; }.hero-tag { left:1px; bottom:-23px; }.hero-note { margin-top:30px; }.category-ribbon { padding:0 5vw; }.category-ribbon p { min-width:175px; font-size:12px; }.category-ribbon a { min-width:145px; font-size:12px; }.goods-section { padding:78px 0; }.editorial-heading { display:block; margin-bottom:35px; }.editorial-heading .eyebrow { margin-bottom:9px; }.product-grid { gap:34px 16px; }.product-card h3 { font-size:16px; }.product-card > p { min-height:0; font-size:12px; }.product-bottom { align-items:flex-start; flex-direction:column; }.story-band { padding:75px 0; }.story-layout { grid-template-columns:1fr; }.story-mark { width:190px; height:190px; }.story-mark span { font-size:105px; }.story-copy { text-align:left; }.visit-section { padding:55px 0; }.visit-card { min-height:0; padding:30px; grid-template-columns:1fr 50px; gap:21px; }.visit-card .address-block { grid-column:1/-1; }.site-footer { grid-template-columns:1fr; gap:27px; padding-top:44px; }.footer-bottom { flex-direction:column; gap:4px; }.detail-main { padding-top:35px; }.product-detail { grid-template-columns:1fr; gap:30px; }.about-hero { min-height:0; padding:62px 0; grid-template-columns:1fr; gap:40px; }.about-window { justify-self:start; width:205px; height:205px; }.about-window span { font-size:100px; }.about-copy { grid-template-columns:1fr; gap:13px; padding:62px 0; }.about-copy h2 { font-size:30px; }.principles { padding:25px 0 65px; }.principle-list { grid-template-columns:1fr; }.principle-list article,.principle-list article+article { padding:19px 0; border-right:0; border-bottom:1px solid var(--line); }.company-sheet { padding:36px 27px; margin-bottom:55px; }.company-sheet h2 { font-size:31px; }.contact-main { padding:59px 0; }.location-layout { grid-template-columns:1fr; margin-top:38px; }.location-card { padding:30px; }.map-panel { min-height:315px; }.contact-note { margin-top:28px; }.cart-main { padding-top:57px; }.cart-layout { grid-template-columns:1fr; }.cart-item { grid-template-columns:82px minmax(0,1fr); gap:13px; }.cart-line-right { grid-column:2; display:flex; justify-content:space-between; align-items:center; padding-top:0; }.checkout-card { position:static; }.order-confirmation { padding:37px 25px; margin:50px auto; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; } }


/* 100-SKU catalogue */
.catalog-main { padding:82px 0 90px; }
.catalog-heading { display:grid; grid-template-columns:1fr .82fr; gap:7vw; align-items:end; margin-bottom:52px; }
.catalog-heading h1 { margin-bottom:0; }
.catalog-heading-note { max-width:470px; color:#5d655b; font-size:14px; }
.catalog-heading-note p:last-child { margin-bottom:0; }
.price-notice,.cart-price-notice { padding:12px 15px; border-left:3px solid var(--clay); background:#eee9de; color:#646a60; font-size:12px; line-height:1.65; }
.catalog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:18px; border-top:1px solid var(--line); }
.catalog-result,.catalog-page-note { margin:0; font-size:13px; }.catalog-result b { color:var(--clay); font-size:17px; }.catalog-page-note { color:#71776d; }
.catalog-filters { display:flex; gap:8px; flex-wrap:wrap; padding:18px 0 30px; }
.catalog-filters button { border:1px solid var(--line); border-radius:999px; padding:8px 13px; background:transparent; color:#4f574d; font-size:12px; line-height:1.15; transition:background .18s ease,color .18s ease,border-color .18s ease; }
.catalog-filters button:hover,.catalog-filters button.active { background:var(--moss); border-color:var(--moss); color:#fff; }
.catalog-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:36px 22px; }
.catalog-card { min-width:0; display:flex; flex-direction:column; }
.catalog-card-image { display:block; overflow:hidden; background:#e6e0d4; aspect-ratio:1; }
.catalog-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s cubic-bezier(.2,.8,.2,1); }
.catalog-card:hover .catalog-card-image img { transform:scale(1.045); }
.catalog-card-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:12px; color:var(--moss); font-size:10px; letter-spacing:.06em; }
.catalog-status { flex:0 0 auto; padding:2px 6px; border:1px solid #c8cec1; color:#6f786b; letter-spacing:0; }.catalog-status.priority { border-color:#d49883; color:#a75238; }
.catalog-card h2 { margin:6px 0 5px; font-size:17px; line-height:1.45; }
.catalog-card > p { min-height:62px; margin-bottom:13px; color:#666e64; font-size:12px; line-height:1.65; }
.catalog-card-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:9px; margin-top:auto; padding-top:12px; border-top:1px solid var(--soft-line); }
.catalog-card-bottom span { display:grid; gap:2px; }.catalog-card-bottom small { color:#7b8177; font-size:10px; }.catalog-card-bottom b { color:var(--moss-dark); font-size:15px; }
.catalog-card-bottom button { padding:0; border:0; background:transparent; color:var(--moss); font-size:11px; font-weight:700; white-space:nowrap; }.catalog-card-bottom button span { display:inline; margin-left:3px; font-size:16px; }
.pagination { display:flex; justify-content:center; align-items:center; gap:7px; margin-top:55px; flex-wrap:wrap; }.pagination button { min-width:35px; height:35px; padding:0 10px; border:1px solid var(--line); background:transparent; color:var(--moss-dark); font-size:12px; }.pagination button:hover:not(:disabled),.pagination button.active { background:var(--moss); border-color:var(--moss); color:#fff; }.pagination button:disabled { color:#b8bcb5; cursor:not-allowed; }
.detail-status { display:inline-block; margin:0 0 10px; padding:3px 8px; border:1px solid #c8cec1; color:#62705f; font-size:11px; }.detail-status.priority { border-color:#d49883; color:#a75238; }.detail-price small { display:block; margin-bottom:2px; color:#777e73; font:12px var(--body); }.cart-price-notice { margin:0 0 19px; }

@media (max-width:900px) { .catalog-heading { grid-template-columns:1fr; gap:18px; }.catalog-heading-note { max-width:680px; }.catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 20px; } }
@media (max-width:680px) { .catalog-main { padding:56px 0 65px; }.catalog-heading { margin-bottom:30px; }.catalog-heading h1 { font-size:45px; }.catalog-toolbar { align-items:flex-start; flex-direction:column; gap:5px; padding-top:13px; }.catalog-filters { padding:15px 0 24px; gap:7px; }.catalog-filters button { padding:7px 11px; font-size:11px; }.catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:29px 15px; }.catalog-card h2 { font-size:15px; }.catalog-card > p { min-height:78px; font-size:11px; }.catalog-card-bottom { align-items:flex-start; flex-direction:column; }.pagination { margin-top:38px; gap:5px; }.pagination button { min-width:31px; height:32px; padding:0 8px; font-size:11px; } }


/* Compact catalogue browsing: show more products per screen */
.catalog-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:28px 16px; }
.catalog-card-image { aspect-ratio:4 / 3; }
.catalog-card h2 { font-size:15px; line-height:1.42; }
.catalog-card > p { min-height:39px; margin-bottom:10px; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; }
.catalog-card-meta { margin-top:10px; font-size:9px; }
.catalog-card-bottom { padding-top:9px; }.catalog-card-bottom b { font-size:14px; }.catalog-card-bottom button { font-size:10px; }
@media (max-width:1100px) { .catalog-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:900px) { .catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 14px; } }
@media (max-width:680px) { .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 12px; }.catalog-card-image { aspect-ratio:1.15 / 1; }.catalog-card > p { min-height:54px; }.catalog-card h2 { font-size:14px; } }
