:root {
  --paper: #f4ead5;
  --paper-light: #fffaf0;
  --ink: #40372f;
  --wine: #6d3545;
  --green: #647260;
  --gold: #b28a4f;
  --line: rgba(95, 69, 43, .35);
  --shadow: 0 24px 70px rgba(63, 43, 30, .18);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 15% 10%, rgba(178,138,79,.16), transparent 30rem),
    radial-gradient(circle at 85% 90%, rgba(100,114,96,.15), transparent 34rem),
    repeating-linear-gradient(0deg, rgba(70,45,25,.025), rgba(70,45,25,.025) 1px, transparent 1px, transparent 4px),
    var(--paper);
  min-height: 100vh;
}
a { color: inherit; }
img, video { max-width: 100%; display: block; }
.site-shell { width: min(1120px, calc(100% - 32px)); margin: 0 auto; }
.topbar {
  position: sticky; top: 0; z-index: 10;
  backdrop-filter: blur(12px);
  background: rgba(244,234,213,.88);
  border-bottom: 1px solid var(--line);
}
.topbar-inner { min-height: 68px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { text-decoration:none; letter-spacing:.18em; font-size:1.08rem; font-weight:700; }
.nav { display:flex; gap:22px; font-size:.9rem; }
.nav a { text-decoration:none; opacity:.78; }
.nav a:hover { opacity:1; }
.ornament-frame {
  position: relative;
  background: rgba(255,250,240,.78);
  border: 1px solid var(--gold);
  box-shadow: inset 0 0 0 7px rgba(178,138,79,.08), var(--shadow);
}
.ornament-frame::before, .ornament-frame::after {
  content:""; position:absolute; width:84px; height:84px; pointer-events:none;
  border-color: var(--wine); opacity:.64;
}
.ornament-frame::before { left:12px; top:12px; border-left:2px solid; border-top:2px solid; border-radius:36px 0 0 0; }
.ornament-frame::after { right:12px; bottom:12px; border-right:2px solid; border-bottom:2px solid; border-radius:0 0 36px 0; }
.kicker { text-transform:uppercase; letter-spacing:.28em; font-size:.7rem; color:var(--wine); }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(2rem,5vw,4.8rem); line-height:1.06; letter-spacing:.06em; }
h2 { font-size:clamp(1.55rem,3vw,2.7rem); letter-spacing:.08em; }
.placeholder { letter-spacing:.18em; line-height:2; opacity:.75; overflow-wrap:anywhere; }
.button {
  display:inline-flex; min-height:52px; align-items:center; justify-content:center;
  padding:0 28px; text-decoration:none; border:1px solid var(--wine);
  background:var(--wine); color:#fff9ee; letter-spacing:.12em; transition:.2s ease;
  font:inherit; cursor:pointer;
}
.button:hover { transform:translateY(-2px); box-shadow:0 10px 25px rgba(109,53,69,.22); }
.button.secondary { background:transparent; color:var(--wine); }
.button[hidden] { display:none; }
.entry-page { min-height:100vh; display:grid; place-items:center; padding:36px 0; }
.entry-card { width:min(900px, calc(100% - 32px)); padding:clamp(24px,6vw,72px); text-align:center; }
.entry-portrait { width:min(340px, 78%); margin:24px auto 30px; padding:12px; border:1px solid var(--line); background:#fff; }
.entry-portrait img { width:100%; filter:saturate(.72) sepia(.08); }
.entry-title { font-size:clamp(2.4rem,8vw,6rem); margin-bottom:8px; }
.entry-sub { letter-spacing:.3em; font-size:.78rem; color:var(--green); }
.main-section { padding:80px 0; }
.page-heading { max-width:720px; margin-bottom:42px; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.product-card { grid-column:span 2; text-decoration:none; padding:16px; transition:.22s ease; }
.product-card:hover { transform:translateY(-4px); }
.product-card img { aspect-ratio:16/9; width:100%; object-fit:cover; }
.product-card-copy { padding:24px 18px 16px; }
.product-card h2 { margin-bottom:12px; }
.empty-card { min-height:100%; padding:36px; border:1px dashed var(--line); display:grid; place-items:center; text-align:center; opacity:.55; }
.product-hero { padding:56px 0 34px; }
.hero-layout { display:grid; grid-template-columns:1.35fr .65fr; gap:36px; align-items:start; padding:18px; }
.hero-image img { width:100%; }
.hero-copy { padding:32px 18px 20px 0; }
.meta { display:grid; grid-template-columns:auto 1fr; gap:12px 20px; font-size:.88rem; border-top:1px solid var(--line); padding-top:22px; margin-top:24px; }
.meta dt { color:var(--wine); }
.meta dd { margin:0; }
.content-block { margin:34px auto; padding:clamp(24px,5vw,52px); }
.video-wrap { background:#171513; padding:12px; }
.video-wrap video { width:100%; aspect-ratio:16/9; background:#000; }
.purchase-box { text-align:center; }
.contact-card { max-width:820px; margin:0 auto; padding:clamp(32px,6vw,72px); }
.contact-card h1 { margin-bottom:24px; }
.contact-copy { max-width:640px; line-height:2; }
.contact-action { margin-top:30px; }
.contact-result { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.contact-result[hidden] { display:none; }
.contact-address { margin-bottom:10px; font-size:clamp(1rem,2.4vw,1.35rem); letter-spacing:.04em; }
.contact-address a { color:var(--wine); text-underline-offset:.2em; }
.contact-note, .noscript-note { font-size:.84rem; line-height:1.8; opacity:.72; }
.footer-inner { display:flex; justify-content:space-between; gap:24px; align-items:center; }
.footer a { text-underline-offset:.2em; }
.entry-contact { margin:22px 0 0; font-size:.82rem; opacity:.7; }
.entry-contact a { text-underline-offset:.2em; }
.footer { padding:38px 0 52px; border-top:1px solid var(--line); font-size:.8rem; opacity:.7; }
@media (max-width: 820px) {
  .product-grid, .hero-layout { grid-template-columns:1fr; }
  .product-card { grid-column:auto; }
  .hero-copy { padding:18px; }
  .nav { display:none; }
  .footer-inner { align-items:flex-start; flex-direction:column; gap:12px; }
}
