
:root { --tomato:#c9362a; --tomato-dark:#9f281f; --leaf:#285d35; --leaf-light:#e9f0e6; --cream:#fbf7ed; --ink:#262b24; --muted:#6f746b; --line:#e1dfd5; --white:#fffefb; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; line-height:1.8; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.wrap { width:min(1120px,calc(100% - 48px)); margin-inline:auto; }
.site-header { position:sticky; top:0; z-index:50; background:rgb(255 254 251/94%); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.header-inner { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.brand { display:inline-flex; align-items:center; flex-shrink:0; }
.brand img { width:214px; height:auto; }
.desktop-nav { display:flex; align-items:center; gap:30px; font-size:14px; font-weight:700; }
.desktop-nav a:not(.nav-order):hover { color:var(--tomato); }
.nav-order { padding:11px 18px; color:white; background:var(--tomato); border-radius:5px; }
.nav-order:hover { background:var(--tomato-dark); }
.mobile-menu { display:none; position:relative; }
.mobile-menu summary { list-style:none; display:flex; align-items:center; gap:6px; font-weight:700; cursor:pointer; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.mobile-menu nav { position:absolute; right:0; top:48px; width:min(280px,calc(100vw - 32px)); padding:10px; display:grid; background:white; border:1px solid var(--line); border-radius:8px; box-shadow:0 18px 50px rgb(34 42 29/15%); }
.mobile-menu nav a { padding:13px 12px; border-bottom:1px solid #eee; }
.hero { position:relative; min-height:620px; display:flex; align-items:center; overflow:hidden; color:white; background:#263f29; }
.hero>img,.hero-overlay { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero>img { object-position:center center; transform:scale(1.015); }
.hero-overlay { background:linear-gradient(90deg,rgb(18 31 19/62%) 0%,rgb(24 35 22/42%) 39%,rgb(24 28 18/18%) 45%); }
.hero-content { position:relative; z-index:2; padding-block:90px 115px; }
.kicker { display:flex; align-items:center; gap:9px; margin:0 0 18px; font-size:14px; font-weight:700; letter-spacing:.12em; }
.hero h1 { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(48px,6vw,76px); line-height:1.25; letter-spacing:.08em; text-shadow:0 3px 30px rgb(0 0 0/20%); }
.hero-copy { margin:23px 0 30px; font-size:17px; line-height:2; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button { min-height:54px; padding:0 22px; display:inline-flex; align-items:center; justify-content:center; gap:9px; border-radius:5px; font-weight:700; transition:.2s ease; }
.primary-button { background:var(--tomato); }
.primary-button:hover { background:#e04b3e; transform:translateY(-2px); }
.ghost-button { border:1px solid rgb(255 255 255/55%); background:rgb(255 255 255/9%); }
.ghost-button:hover { background:rgb(255 255 255/18%); }
.season-card { position:absolute; z-index:3; right:max(24px,calc((100% - 1120px)/2)); bottom:0; width:285px; padding:22px 26px; color:var(--ink); background:var(--cream); border-radius:8px 8px 0 0; }
.season-card span,.season-card small,.season-card strong { display:block; }
.season-card span { color:var(--tomato); font-size:12px; font-weight:800; letter-spacing:.15em; }
.season-card strong { font-family:"Yu Mincho",serif; font-size:28px; margin:2px 0; }
.season-card small { color:var(--muted); font-size:12px; }
.news-strip { border-bottom:1px solid var(--line); background:white; }
.news-inner { min-height:66px; display:flex; align-items:center; gap:24px; font-size:14px; }
.news-inner strong { flex-shrink:0; color:var(--tomato); padding-right:24px; border-right:1px solid var(--line); }
.section { padding:100px 0; }
.section-label { margin:0 0 9px; color:var(--tomato); font-size:12px; font-weight:800; letter-spacing:.18em; }
.section h2,.contact-section h2 { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(32px,4.5vw,48px); line-height:1.45; letter-spacing:.05em; }
.intro-grid { display:grid; grid-template-columns:360px 1fr; gap:80px; align-items:center; }
.portrait-frame { position:relative; padding:18px 18px 54px; background:var(--cream); transform:rotate(-1.5deg); box-shadow:0 18px 45px rgb(52 52 35/10%); }
.portrait-frame img { width:100%; height:410px; object-fit:cover; object-position:center top; }
.portrait-frame span { position:absolute; bottom:18px; left:24px; font-family:"Yu Mincho",serif; font-size:15px; letter-spacing:.09em; }
.intro-copy>p:not(.section-label) { color:#50564d; margin:22px 0 0; }
.award { margin-top:30px; padding:18px 20px; display:flex; align-items:center; gap:17px; color:#735614; background:#fff8da; border:1px solid #e8d998; border-radius:7px; }
.award p,.award span { margin:0; display:block; line-height:1.6; }
.award strong { font-size:15px; }
.award span { font-size:12px; }
.tomato-section { background:var(--cream); }
.section-heading { max-width:720px; margin-bottom:40px; }
.section-heading.centered { margin-inline:auto; text-align:center; }
.section-heading>p:last-child { color:var(--muted); }
.fresh-card { display:grid; grid-template-columns:1.1fr .9fr; min-height:420px; overflow:hidden; background:white; border-radius:10px; box-shadow:0 20px 55px rgb(54 54 38/9%); }
.fresh-image { position:relative; min-height:360px; }
.fresh-image img { width:100%; height:100%; object-fit:cover; }
.fresh-image span,.product-image span { position:absolute; top:18px; left:18px; padding:7px 12px; color:white; background:var(--tomato); border-radius:3px; font-size:12px; font-weight:800; letter-spacing:.1em; }
.fresh-copy { padding:55px; align-self:center; }
.fresh-copy h3,.product-copy h3 { margin:0; font-family:"Yu Mincho",serif; font-size:28px; line-height:1.45; }
.fresh-copy>p { color:var(--muted); }
.fresh-copy ul { list-style:none; margin:24px 0; padding:0; display:grid; gap:8px; }
.fresh-copy li { display:flex; align-items:center; gap:9px; font-size:14px; font-weight:700; }
.fresh-copy li svg { color:var(--tomato); }
.text-link { display:inline-flex; align-items:center; gap:8px; color:var(--tomato); font-weight:800; border-bottom:1px solid currentColor; }
.price-list { margin-top:34px; padding:42px; background:white; border:1px solid var(--line); border-radius:10px; box-shadow:0 16px 45px rgb(54 54 38/7%); }
.price-list-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:24px; }
.price-list-heading h3 { margin:0; font-family:"Yu Mincho",serif; font-size:30px; line-height:1.4; }
.price-list-heading>span { color:var(--muted); font-size:13px; font-weight:700; }
.price-table { border-top:2px solid var(--leaf); }
.price-row { display:grid; grid-template-columns:1fr 120px 150px; align-items:center; gap:16px; min-height:58px; padding:8px 18px; border-bottom:1px solid var(--line); }
.price-row strong { font-size:15px; }
.price-row strong small { color:var(--muted); font-weight:500; }
.price-row b { color:var(--tomato); text-align:right; font-family:"Yu Mincho",serif; font-size:21px; }
.price-head { min-height:42px; color:var(--muted); background:#f4f2e9; font-size:11px; font-weight:800; }
.price-head span:last-child { text-align:right; }
.shipping-box { margin-top:24px; padding:24px; background:var(--leaf-light); border-radius:7px; }
.shipping-box h4 { margin:0 0 12px; display:flex; align-items:center; gap:8px; color:var(--leaf); font-size:16px; }
.shipping-box dl { margin:0; }
.shipping-box dl>div { display:flex; justify-content:space-between; gap:20px; padding:7px 0; border-bottom:1px solid rgb(40 93 53/14%); font-size:14px; }
.shipping-box dt small { color:var(--muted); }
.shipping-box dd { margin:0; flex-shrink:0; font-weight:800; }
.shipping-box p { margin:13px 0 0; color:var(--muted); font-size:12px; }
.product-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.product-card { display:grid; grid-template-columns:44% 56%; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:#fff; }
.product-image { position:relative; min-height:350px; background:#f1eee4; }
.product-image img { width:100%; height:100%; object-fit:cover; }
.product-copy { padding:34px 30px; align-self:center; }
.product-copy>p:not(.product-eyebrow) { color:var(--muted); font-size:14px; }
.product-eyebrow { color:var(--tomato); font-size:12px; font-weight:800; }
.price { margin-top:24px; padding-top:18px; border-top:1px solid var(--line); }
.price strong,.price span { display:block; }
.price strong { color:var(--tomato); font-family:"Yu Mincho",serif; font-size:29px; line-height:1.3; }
.price span { color:var(--muted); font-size:11px; }
.values { padding-top:0; }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid var(--line); }
.values article { padding:44px; text-align:center; }
.values article+article { border-left:1px solid var(--line); }
.values article>span { width:55px; aspect-ratio:1; margin:0 auto 18px; display:grid; place-items:center; color:var(--leaf); background:var(--leaf-light); border-radius:50%; }
.values h3 { font-family:"Yu Mincho",serif; font-size:19px; }
.values p { color:var(--muted); font-size:13px; }
.contact-section { padding:90px 0; color:white; background:var(--leaf); }
.contact-card { display:flex; align-items:center; justify-content:space-between; gap:60px; }
.contact-copy { max-width:480px; }
.contact-card .section-label { color:#b8d4b8; }
.contact-card p:last-child { margin-bottom:0; color:#d8e4d8; }
.contact-actions { width:min(100%,430px); display:grid; gap:12px; }
.phone-card { min-width:330px; padding:18px 26px; display:flex; align-items:center; justify-content:center; gap:15px; color:var(--leaf); background:white; border-radius:7px; }
.phone-card small,.phone-card strong { display:block; line-height:1.35; }
.phone-card small { color:var(--muted); font-size:11px; }
.phone-card strong { font-family:Georgia,serif; font-size:26px; letter-spacing:.04em; }
.fax-order-card { padding:20px 22px; display:flex; gap:15px; color:var(--ink); background:var(--cream); border-radius:7px; }
.fax-icon { width:46px; height:46px; flex:0 0 46px; display:grid; place-items:center; color:white; background:var(--tomato); border-radius:50%; }
.fax-order-card small,.fax-order-card strong { display:block; line-height:1.5; }
.fax-order-card small { color:var(--tomato); font-size:11px; font-weight:800; letter-spacing:.08em; }
.fax-order-card strong { font-family:"Yu Mincho",serif; font-size:20px; }
.fax-order-card p { margin:4px 0 12px!important; color:var(--muted)!important; font-size:12px; }
.fax-order-card a { min-height:42px; padding:0 14px; display:inline-flex; align-items:center; gap:8px; color:white; background:var(--tomato); border-radius:4px; font-size:13px; font-weight:800; }
.fax-order-card a:hover { background:var(--tomato-dark); }
footer { padding:55px 0 18px; color:#d5ddd3; background:#1d2b20; }
.footer-main { display:flex; justify-content:space-between; gap:40px; padding-bottom:42px; }
.footer-brand { padding:8px 12px; background:white; border-radius:5px; }
.footer-brand img { width:230px; }
.footer-company h3 { margin:22px 0 4px; color:white; font-family:"Yu Mincho",serif; font-size:17px; }
.footer-main p { display:flex; align-items:center; gap:6px; font-size:12px; }
.footer-company dl { margin:14px 0 0; display:grid; gap:5px; font-size:11px; }
.footer-company dl>div { display:grid; grid-template-columns:70px auto; gap:12px; }
.footer-company dt { color:#93a091; }
.footer-company dd { margin:0; color:#d5ddd3; }
.footer-main nav { display:grid; grid-template-columns:repeat(2,auto); align-content:center; gap:9px 35px; font-size:13px; }
.footer-main nav a:hover { color:white; }
.copyright { padding-top:16px; border-top:1px solid rgb(255 255 255/12%); font-size:10px; letter-spacing:.08em; }

@media(max-width:900px){.desktop-nav{display:none}.mobile-menu{display:block}.hero{min-height:590px}.intro-grid{grid-template-columns:300px 1fr;gap:44px}.portrait-frame img{height:360px}.product-card{grid-template-columns:1fr}.product-image{height:300px;min-height:0}.contact-card{align-items:flex-start;flex-direction:column}.contact-actions{width:100%}}
@media(max-width:680px){.wrap{width:min(100% - 32px,1120px)}.header-inner{min-height:68px}.brand img{width:174px}.hero{min-height:610px;align-items:flex-start}.hero>img{object-position:58% center}.hero-overlay{background:linear-gradient(90deg,rgb(17 28 18/22%),rgb(24 32 20/40%))}.hero-content{padding-top:84px}.hero h1{font-size:43px}.hero-copy{font-size:15px}.desktop-only{display:none}.hero-actions,.button{width:100%}.season-card{right:16px;left:16px;width:auto;padding:15px 18px}.season-card strong{font-size:22px}.news-inner{padding-block:14px;align-items:flex-start;gap:14px}.news-inner strong{padding-right:14px}.section{padding:70px 0}.intro-grid,.fresh-card,.product-grid{grid-template-columns:1fr}.intro-grid{gap:42px}.portrait-frame{width:min(88%,340px);margin-inline:auto}.portrait-frame img{height:370px}.fresh-copy{padding:32px 24px 38px}.fresh-image{min-height:280px}.price-list{padding:26px 18px}.price-list-heading{align-items:flex-start;flex-direction:column;gap:4px}.price-row{grid-template-columns:1fr auto;padding:11px 10px;gap:2px 12px}.price-row>strong{grid-column:1}.price-row>span{grid-column:1;color:var(--muted);font-size:12px}.price-row>b{grid-column:2;grid-row:1/3}.price-head{display:none}.shipping-box{padding:20px 16px}.shipping-box dl>div{align-items:flex-start}.product-grid{gap:18px}.product-card{grid-template-columns:42% 58%}.product-image{height:auto;min-height:320px}.product-copy{padding:26px 20px}.product-copy h3{font-size:21px}.price strong{font-size:25px}.values-grid{grid-template-columns:1fr}.values article{padding:32px 24px}.values article+article{border-left:0;border-top:1px solid var(--line)}.contact-section{padding:65px 0}.contact-card{gap:30px}.phone-card{min-width:0;width:100%}.footer-main{flex-direction:column}.footer-main nav{grid-template-columns:1fr 1fr}.footer-brand img{width:220px}}
@media(max-width:420px){.hero h1{font-size:37px}.product-card{grid-template-columns:1fr}.product-image{height:280px;min-height:0}}
