@charset "UTF-8";
/* 株式会社リエゾン サイト共通スタイル
   英字は Marcellus、和文見出しは明朝、本文はゴシック。
   色は下の4パターンを data-palette で切り替え（本番では1つに決めて残りを削除） */
:root {
  /* 採用色：ストーン（明るい石色 × ガーネット） */
  --bg: #efede8; --bg-2: #e7e4dd; --panel: #f8f7f4;
  --text: #1d1b1a; --text-sub: #66605a;
  --accent: #7a1f2b; --accent-ink: #ffffff;
  --line: #d3cec6; --tile-hi: #fbfaf7; --tile-lo: #e1ddd5; --shadow: rgba(60,40,30,.22);
  --font-en: "Marcellus", "Times New Roman", serif;
  --font-mincho: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
  --font-body: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  color-scheme: light;
}
:root[data-palette="charcoal"] {
  --bg: #121315; --bg-2: #18191c; --panel: #1f2024;
  --text: #ecebe6; --text-sub: #9d9a93;
  --accent: #b89a64; --accent-ink: #121315;
  --line: #2e2f33; --tile-hi: #2c2d31; --tile-lo: #17181b; --shadow: rgba(0,0,0,.55);
  color-scheme: dark;
}
:root[data-palette="bordeaux"] {
  --bg: #170b0e; --bg-2: #1f0f13; --panel: #2a151a;
  --text: #f2e9e4; --text-sub: #b49f9f;
  --accent: #c8a27a; --accent-ink: #170b0e;
  --line: #3a2228; --tile-hi: #3b1e25; --tile-lo: #1d0e12; --shadow: rgba(0,0,0,.6);
  color-scheme: dark;
}
:root[data-palette="midnight"] {
  --bg: #0c1118; --bg-2: #111823; --panel: #18212e;
  --text: #e7ebf0; --text-sub: #8e9aa8;
  --accent: #d2b98a; --accent-ink: #0c1118;
  --line: #253041; --tile-hi: #22304a; --tile-lo: #101722; --shadow: rgba(0,0,0,.55);
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font-body); font-size: 14px; line-height: 1.9; letter-spacing: .02em; }
a { color: inherit; text-decoration: none; transition: color .15s, opacity .15s; }
a:focus-visible, button:focus-visible { outline: 1px solid var(--accent); outline-offset: 3px; }
img { display: block; max-width: 100%; }
.container {
  max-width: 1080px; margin-inline: auto;
  padding-left: max(20px, env(safe-area-inset-left, 0px));
  padding-right: max(20px, env(safe-area-inset-right, 0px));
}

/* 写真の差し込み枠 */
.photo { position: relative; background: linear-gradient(160deg, var(--panel), var(--bg)); overflow: hidden; max-width: 100%; }
.photo::after { content: attr(data-label); position: absolute; left: 12px; bottom: 10px; right: 12px; font-size: 11px; color: var(--text-sub); opacity: .7; line-height: 1.5; }

/* ヘッダー */
header.site { border-bottom: 1px solid var(--line); }
.head-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-block: 22px; }
.logo { display: flex; align-items: center; gap: 14px; line-height: 1.4; }
.logo img { height: 62px; width: auto; }
.logo .ja { font-family: var(--font-mincho); font-size: 12px; letter-spacing: .24em; display: flex; flex-direction: column; padding-left: 14px; border-left: 1px solid var(--line); }
.logo .ja small { font-family: var(--font-en); font-size: 10px; color: var(--text-sub); letter-spacing: .14em; }
.footer-logo { display: block; height: 52px; width: auto; margin: 0 auto 22px; }
nav.gnav { display: flex; flex-wrap: wrap; gap: 4px 26px; }
nav.gnav a { display: flex; flex-direction: column; align-items: center; font-family: var(--font-mincho); font-size: 13px; line-height: 1.5; padding-block: 4px; }
nav.gnav a span { font-family: var(--font-en); font-size: 9px; color: var(--accent); letter-spacing: .16em; }
nav.gnav a:hover, nav.gnav a[aria-current="page"] { color: var(--accent); }
@media (max-width: 820px) {
  .head-row { justify-content: center; }
  .logo { justify-content: center; width: 100%; }
  nav.gnav { justify-content: center; gap: 4px 16px; }
}

/* 冒頭：橋渡しの図 */
.hero { padding-block: 40px 64px; border-bottom: 1px solid var(--line); }
.bridge { margin: 0; }
.bridge svg { width: 100%; height: auto; display: block; max-width: 100%; }
.bridge .base { stroke: var(--line); stroke-width: 1; }
.bridge .arc { fill: none; stroke: var(--accent); stroke-width: 1.3; stroke-dasharray: 2 6; stroke-linecap: round; }
.bridge .pt { fill: var(--accent); }
.bridge .ring { fill: none; stroke: var(--accent); stroke-width: 1; opacity: .5; }
.bridge text { fill: var(--text-sub); }
.bridge .big { font-family: var(--font-en); font-size: 26px; fill: var(--text); letter-spacing: .08em; }
.bridge .sm { font-family: var(--font-en); font-size: 12px; letter-spacing: .08em; }
.bridge .cap { font-family: var(--font-mincho); font-size: 13px; }
.bridge .mid { font-family: var(--font-mincho); font-size: 14px; fill: var(--accent); letter-spacing: .3em; }
.bridge .dist { font-family: var(--font-en); font-size: 12px; letter-spacing: .12em; }
.hero-text { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; margin-top: 44px; align-items: start; }
.hero-text h1 { font-family: var(--font-mincho); font-weight: 500; font-size: clamp(22px, 3vw, 30px); letter-spacing: .12em; line-height: 1.7; margin: 0; text-wrap: balance; }
.hero-text p { margin: 0 0 12px; color: var(--text-sub); font-size: 13px; }
@media (max-width: 720px) { .hero-text { grid-template-columns: minmax(0, 1fr); gap: 18px; } }

/* セクション見出し */
section.sec { padding-block: 72px; border-bottom: 1px solid var(--line); }
section.sec.alt { background: var(--bg-2); }
.band { display: flex; align-items: baseline; gap: 16px; margin-bottom: 36px; }
.band span { order: -1; font-family: var(--font-en); font-size: 30px; letter-spacing: .1em; line-height: 1.2; }
.band h2 { font-family: var(--font-mincho); font-weight: 500; font-size: 13px; letter-spacing: .2em; color: var(--accent); margin: 0; }
.band::after { content: ""; flex: 1; height: 1px; background: var(--line); align-self: center; }

/* お知らせ */
.news-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; }
@media (max-width: 760px) { .news-wrap { grid-template-columns: minmax(0, 1fr); } }
.news { list-style: none; margin: 0; padding: 0; }
.news li { display: flex; gap: 16px; align-items: baseline; padding-block: 14px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.news li:first-child { border-top: 1px solid var(--line); }
.news time { font-family: var(--font-en); font-size: 13px; color: var(--text-sub); min-width: 86px; font-variant-numeric: tabular-nums; }
.news .cat { font-family: var(--font-en); font-size: 10px; letter-spacing: .12em; color: var(--accent); min-width: 44px; }
.news a { flex: 1 1 240px; min-width: 0; }
.news a:hover { color: var(--accent); }
.side-links { display: flex; flex-direction: column; gap: 14px; }
.side-card { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 20px; border: 1px solid var(--accent); }
.side-card .t { font-family: var(--font-mincho); font-size: 15px; }
.side-card .t small { display: block; font-family: var(--font-en); font-size: 11px; color: var(--accent); letter-spacing: .12em; }
.side-card .arrow { font-family: var(--font-en); color: var(--accent); font-size: 18px; }
.side-card:hover { background: var(--panel); }

/* 注目のワイナリー */
.feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
@media (max-width: 760px) { .feature { grid-template-columns: minmax(0, 1fr); } }
.feature .photo.main { aspect-ratio: 3 / 2; }
.feature-photo { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; max-width: 100%; background: var(--panel); }
.feature-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.feature h3 { font-family: var(--font-en); font-weight: 400; font-size: 30px; letter-spacing: .08em; margin: 0; line-height: 1.3; }
.feature .area { font-family: var(--font-mincho); font-size: 13px; color: var(--accent); margin: 6px 0 18px; }
.feature p { margin: 0 0 12px; color: var(--text-sub); font-size: 13px; }
.bottles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 44px; }
@media (max-width: 900px) { .bottles { grid-template-columns: minmax(0, 1fr); } }
.bottle { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 18px; align-items: start; }
.bottle-img { background: radial-gradient(ellipse at 50% 35%, var(--tile-hi), var(--tile-lo) 75%); display: flex; justify-content: center; align-items: flex-end; padding: 16px 8px 10px; }
.bottle-img img { height: 210px; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 8px 10px var(--shadow)); }
.bottle .type { font-size: 11px; color: var(--accent); letter-spacing: .08em; }
.bottle h4 { font-family: var(--font-mincho); font-weight: 500; font-size: 15px; margin: 4px 0 0; line-height: 1.6; }
.bottle .en { font-family: var(--font-en); font-size: 12px; color: var(--text-sub); }
.bottle-body p { font-size: 12px; color: var(--text-sub); margin: 8px 0 0; line-height: 1.8; }
.bottle .score { font-family: var(--font-en); font-size: 12px; color: var(--accent); margin-top: 8px; letter-spacing: .06em; }

/* ワイナリー一覧 */
.list-note { color: var(--text-sub); font-size: 12px; margin: -16px 0 32px; }
.country + .country { margin-top: 48px; }
.country-title { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.country-title .flag { width: 26px; height: 17px; flex: none; }
.country-title h3 { font-family: var(--font-en); font-weight: 400; font-size: 22px; letter-spacing: .14em; margin: 0; }
.region-name { font-family: var(--font-mincho); font-size: 13px; color: var(--accent); margin: 24px 0 12px; }
.winery-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 860px) { .winery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 560px) { .winery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } }
.winery-img {
  aspect-ratio: 3 / 4; max-width: 100%; display: flex; align-items: flex-end; justify-content: center;
  padding: 14px 10px 10px; background: radial-gradient(ellipse at 50% 30%, var(--tile-hi), var(--tile-lo) 78%);
}
.winery-img img { height: 100%; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 8px 10px var(--shadow)); transition: transform .3s ease; }
.winery:hover .winery-img img { transform: translateY(-4px); }
.winery .name { font-family: var(--font-en); font-size: 13px; margin-top: 10px; line-height: 1.4; }
.winery:hover .name { color: var(--accent); }
.new { font-family: var(--font-en); font-size: 9px; color: var(--accent-ink); background: var(--accent); padding: 1px 5px; margin-left: 6px; vertical-align: 2px; letter-spacing: .1em; }

/* 事業内容 */
.biz { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; border-top: 1px solid var(--line); }
@media (max-width: 760px) { .biz { grid-template-columns: minmax(0, 1fr); } }
.biz > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 22px; align-items: start; padding-block: 26px; border-bottom: 1px solid var(--line); }
.biz-icon { width: 64px; height: 64px; display: grid; place-items: center; background: var(--panel); border: 1px solid var(--line); }
.biz-icon svg { width: 40px; height: 40px; fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.biz .photo { aspect-ratio: 16 / 9; }
.biz h3 { font-family: var(--font-mincho); font-weight: 500; font-size: 16px; letter-spacing: .06em; margin: 0; line-height: 1.6; }
.biz p { margin: 6px 0 0; font-size: 13px; color: var(--text-sub); line-height: 1.9; }

/* 表 */
table.company { width: 100%; border-collapse: collapse; font-size: 13px; }
table.company th, table.company td { text-align: left; vertical-align: top; padding: 16px 4px; border-bottom: 1px solid var(--line); }
table.company tr:first-child th, table.company tr:first-child td { border-top: 1px solid var(--line); }
table.company th { width: 150px; font-weight: 400; font-family: var(--font-mincho); color: var(--accent); }
@media (max-width: 560px) {
  table.company th, table.company td { display: block; width: auto; }
  table.company th { border-bottom: 0; padding-bottom: 0; }
  table.company tr:first-child td { border-top: 0; }
}
.company-grid { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 860px; }
@media (max-width: 760px) { .company-grid { grid-template-columns: minmax(0, 1fr); } }
.company-grid .photo { aspect-ratio: 3 / 4; }

/* お問い合わせ */
.contact-area { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 48px; align-items: end; }
@media (max-width: 680px) { .contact-area { grid-template-columns: minmax(0, 1fr); } }
.contact-area p { margin: 0 0 18px; color: var(--text-sub); font-size: 13px; }
.btn-gold { display: inline-block; background: var(--accent); color: var(--accent-ink); border-radius: 0; padding: 12px 34px; font-family: var(--font-mincho); font-size: 14px; letter-spacing: .12em; }
.btn-gold:hover { opacity: .85; }
.addr { font-size: 13px; line-height: 2; }
.contact-wrap { max-width: 880px; }
.contact-lead { margin: 0 0 32px; font-size: 14px; line-height: 2; color: var(--text-sub); }
.contact-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 640px) { .contact-cards { grid-template-columns: minmax(0, 1fr); } }
.contact-card { display: flex; flex-direction: column; gap: 14px; padding: 26px 28px 22px; background: var(--panel); border: 1px solid var(--line); transition: border-color .2s, transform .2s; }
a.contact-card:hover { border-color: var(--accent); transform: translateY(-2px); }
.contact-card.is-static { cursor: default; }
.cc-value.selectable { user-select: all; }
.cc-arrow { font-size: .8em; margin-left: 10px; color: var(--accent); }
.cc-kind { font-family: var(--font-en); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--accent); display: flex; align-items: baseline; gap: 10px; }
.cc-kind small { font-family: var(--font-mincho); font-size: 11px; letter-spacing: .12em; text-transform: none; color: var(--text-sub); }
.cc-value { font-family: var(--font-en); font-size: clamp(17px, 2vw, 20px); letter-spacing: .03em; color: var(--text); overflow-wrap: anywhere; }
.cc-action { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line); font-family: var(--font-mincho); font-size: 12px; letter-spacing: .1em; color: var(--text-sub); display: flex; justify-content: space-between; }
.contact-card:hover .cc-action { color: var(--accent); }
.contact-info { margin: 36px 0 0; display: grid; gap: 6px; font-size: 13px; }
.contact-info div { display: grid; grid-template-columns: 7em minmax(0, 1fr); gap: 12px; }
.contact-info dt { font-family: var(--font-mincho); color: var(--text-sub); font-size: 12px; letter-spacing: .08em; padding-top: 1px; }
.contact-info dd { margin: 0; font-variant-numeric: tabular-nums; }
@media (max-width: 480px) { .contact-info div { grid-template-columns: minmax(0, 1fr); gap: 0; margin-bottom: 6px; } }

/* フッター */
footer.site { padding-block: 36px 40px; }
.fnav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; }
.fnav a { font-family: var(--font-en); font-size: 11px; letter-spacing: .1em; color: var(--text-sub); }
.fnav a:hover { color: var(--accent); }
.legal { text-align: center; margin-top: 22px; font-size: 12px; color: var(--text-sub); }
.legal .warn { color: var(--text); font-size: 13px; margin-bottom: 6px; }
.copy { text-align: center; font-family: var(--font-en); font-size: 10px; color: var(--text-sub); margin-top: 16px; letter-spacing: .12em; }

/* 下層ページ */
.page-title { padding-block: 48px 8px; }
.page-title h1 { font-family: var(--font-mincho); font-weight: 500; font-size: 24px; letter-spacing: .12em; margin: 0; }
.page-title .en { font-family: var(--font-en); color: var(--accent); font-size: 13px; letter-spacing: .16em; }
.recruit-grid { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 860px; }
@media (max-width: 760px) { .recruit-grid { grid-template-columns: minmax(0, 1fr); } }
.recruit-grid .photo { aspect-ratio: 3 / 4; }
.breadcrumb { font-size: 11px; color: var(--text-sub); padding-block: 0 14px; margin-top: -8px; }
.breadcrumb a:hover { color: var(--accent); }

/* ワイナリー個別ページ */
.winery-hero { padding-block: 48px 64px; border-bottom: 1px solid var(--line); }




.origin { font-family: var(--font-mincho); font-size: 13px; color: var(--accent); letter-spacing: .1em; }
.origin span { font-family: var(--font-en); color: var(--text-sub); margin-left: 12px; font-size: 12px; letter-spacing: .08em; }
.winery-hero h1 { font-family: var(--font-en); font-weight: 400; font-size: clamp(32px, 5vw, 52px); letter-spacing: .06em; line-height: 1.15; margin: 14px 0 4px; text-wrap: balance; }
.winery-hero .kana { font-family: var(--font-mincho); font-size: 13px; color: var(--text-sub); letter-spacing: .2em; }
.tagline { font-family: var(--font-mincho); font-size: 17px; line-height: 1.9; margin: 28px 0 22px; padding-left: 18px; border-left: 1px solid var(--accent); text-wrap: pretty; }
.winery-desc p { margin: 0 0 14px; color: var(--text-sub); font-size: 13px; line-height: 2; max-width: 42em; }

.wine-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; }
@media (max-width: 860px) { .wine-list { grid-template-columns: minmax(0, 1fr); } }
.wine { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 22px; padding-block: 28px; border-top: 1px solid var(--line); }
.wine .bottle-img { padding: 18px 8px 10px; align-self: start; }
.wine .bottle-img img { height: 230px; }
.wine .bottle-img.empty { aspect-ratio: 1 / 2.2; }
.wine .type { font-size: 11px; color: var(--accent); letter-spacing: .08em; }
.wine h3 { font-family: var(--font-mincho); font-weight: 500; font-size: 17px; line-height: 1.6; margin: 4px 0 0; }
.wine .en { font-family: var(--font-en); font-size: 13px; color: var(--text-sub); }
.wine .catch { font-family: var(--font-mincho); font-size: 13px; margin: 12px 0 0; line-height: 1.8; }
.tasting p { margin: 10px 0 0; font-size: 12px; color: var(--text-sub); line-height: 1.8; }
.tasting span { display: inline-block; min-width: 4em; color: var(--text); font-family: var(--font-mincho); }
dl.spec { margin: 14px 0 0; display: grid; gap: 4px; font-size: 12px; }
dl.spec div { display: grid; grid-template-columns: 5.5em minmax(0, 1fr); gap: 8px; }
dl.spec dt { color: var(--accent); font-family: var(--font-mincho); }
dl.spec dd { margin: 0; color: var(--text-sub); }
.wine .score { font-family: var(--font-en); font-size: 12px; color: var(--accent); margin-top: 10px; letter-spacing: .06em; }
@media (max-width: 480px) { .wine { grid-template-columns: 88px minmax(0, 1fr); gap: 16px; } .wine .bottle-img img { height: 180px; } }
.list-note.after { margin: 28px 0 0; }
.list-note a { color: var(--accent); }

.pager { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; align-items: center; padding-block: 40px; }
.pager a { font-family: var(--font-en); font-size: 15px; display: flex; flex-direction: column; }
.pager a small { font-family: var(--font-mincho); font-size: 11px; color: var(--text-sub); }
.pager a:hover { color: var(--accent); }
.pager .center { font-family: var(--font-mincho); font-size: 13px; border: 1px solid var(--accent); padding: 10px 22px; text-align: center; }
.pager .right { text-align: right; align-items: flex-end; }
@media (max-width: 560px) { .pager { grid-template-columns: 1fr 1fr; } .pager .center { grid-column: 1 / -1; order: -1; } }
.feature-more { display: inline-block; margin-top: 8px; font-family: var(--font-mincho); font-size: 13px; color: var(--accent); border-bottom: 1px solid var(--accent); }

/* 事業内容の写真 */
.biz-img { aspect-ratio: 3 / 2; overflow: hidden; max-width: 100%; background: var(--panel); }
.biz-img img { width: 100%; height: 100%; object-fit: cover; }
.legal .note { margin: 4px 0 10px; font-size: 11px; }
.news-more { margin-top: 16px; }

/* お知らせ一覧ページ */
.news-page { padding-block: 24px 72px; }
.news-filter { display: flex; align-items: center; gap: 14px; margin-bottom: 28px; }
.news-filter label { font-family: var(--font-mincho); font-size: 13px; color: var(--text-sub); }
.news-filter select { font: inherit; font-family: var(--font-en); font-size: 14px; letter-spacing: .06em; color: var(--text); background: var(--panel); border: 1px solid var(--line); padding: 8px 36px 8px 14px; border-radius: 0; cursor: pointer; appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--accent) 50%), linear-gradient(135deg, var(--accent) 50%, transparent 50%);
  background-position: calc(100% - 18px) 55%, calc(100% - 13px) 55%; background-size: 5px 5px; background-repeat: no-repeat; }
.news-filter select:focus-visible { outline: 1px solid var(--accent); outline-offset: 2px; }
.news-year { font-family: var(--font-en); font-weight: 400; font-size: 22px; letter-spacing: .1em; margin: 0 0 8px; color: var(--accent); }
.news-archive { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.news-archive li { border-bottom: 1px solid var(--line); scroll-margin-top: 24px; }
.news-archive summary { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; padding: 16px 28px 16px 0; cursor: pointer; list-style: none; position: relative; }
.news-archive summary::-webkit-details-marker { display: none; }
.news-archive summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-family: var(--font-en); font-size: 18px; color: var(--accent); }
.news-archive details[open] summary::after { content: "\2212"; }
.news-archive summary:hover .ttl { color: var(--accent); }
.news-archive time { font-family: var(--font-en); font-size: 13px; color: var(--text-sub); min-width: 86px; font-variant-numeric: tabular-nums; }
.news-archive .cat { font-family: var(--font-en); font-size: 10px; letter-spacing: .12em; color: var(--accent); min-width: 44px; }
.news-archive .ttl { flex: 1 1 260px; min-width: 0; }
.news-body { padding: 0 0 22px; max-width: 46em; }
.news-body p { margin: 0 0 14px; white-space: pre-line; font-size: 13px; color: var(--text-sub); line-height: 2; overflow-wrap: anywhere; }
.news-body p a { color: var(--accent); }
.news-body img { max-width: min(100%, 520px); height: auto; margin: 4px 0 14px; }
.news-file { display: inline-block; font-family: var(--font-mincho); font-size: 13px; color: var(--accent); border: 1px solid var(--accent); padding: 6px 16px; margin-right: 10px; }
.news-file:hover { background: var(--panel); }
.muted { color: var(--text-sub); font-size: 13px; }


/* プライバシーポリシー */
.policy { max-width: 760px; padding-block: 16px 72px; }
.policy .intro { font-size: 14px; line-height: 2.1; margin: 0 0 36px; }
.policy h2 { font-family: var(--font-mincho); font-weight: 500; font-size: 17px; letter-spacing: .06em; margin: 40px 0 12px; padding-bottom: 10px; border-bottom: 1px solid var(--line); display: flex; gap: 14px; align-items: baseline; }
.policy h2 .no { font-family: var(--font-en); color: var(--accent); font-size: 15px; min-width: 1.4em; }
.policy p, .policy li { font-size: 13px; line-height: 2; color: var(--text-sub); }
.policy p { margin: 0 0 10px; }
.policy ul, .policy ol { margin: 0 0 10px; padding-left: 1.4em; }
.policy .contact-line { color: var(--text); font-family: var(--font-en); font-size: 15px; letter-spacing: .03em; user-select: all; }
.policy .sign { margin-top: 48px; text-align: right; font-size: 13px; line-height: 2; color: var(--text); }

/* ワイナリー個別ページ：写真の形に合わせた2つのレイアウト */
.winery-photo { margin: 0; max-width: 100%; background: var(--panel); }
.winery-photo img { display: block; width: 100%; height: auto; }
.winery-photo.contain { background: #fdf9e8; padding: 8%; }

/* 横長でない写真：見出しと写真を左右に並べ、本文はその下に2段組み */
.winery-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.is-side .winery-aside .photo { aspect-ratio: 4 / 3; }
.is-side .tagline { margin-bottom: 0; }
.winery-desc.is-columns { column-count: 2; column-gap: 56px; margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--line); }
.winery-desc.is-columns p { max-width: none; break-inside: avoid-column; }
@media (max-width: 860px) {
  .winery-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .is-side .winery-aside { order: -1; }
  .winery-desc.is-columns { column-count: 1; margin-top: 28px; padding-top: 24px; }
}

/* 横長の写真：見出し → 写真（全幅） → キャッチコピーと本文の2列 */
.is-wide .winery-head { margin-bottom: 28px; }
.is-wide .winery-photo img { max-height: 520px; object-fit: cover; }
.is-wide .winery-body { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 56px; margin-top: 36px; align-items: start; }
.is-wide .tagline { margin: 0; }
.is-wide .winery-desc p { max-width: none; }
@media (max-width: 860px) { .is-wide .winery-body { grid-template-columns: minmax(0, 1fr); gap: 22px; margin-top: 26px; } }

/* デザイン案用：色の切り替え（本番では削除） */
.palette-switch {
  position: fixed; z-index: 20;
  right: calc(16px + env(safe-area-inset-right, 0px)); bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  background: var(--panel); border: 1px solid var(--line); padding: 10px 12px; display: flex; flex-direction: column; gap: 6px;
  box-shadow: 0 8px 24px var(--shadow); font-size: 11px;
}
.palette-switch .lbl { color: var(--text-sub); }
.palette-switch .opts { display: flex; gap: 6px; flex-wrap: wrap; }
.palette-switch button {
  font: inherit; font-size: 11px; cursor: pointer; padding: 5px 9px; border: 1px solid var(--line);
  background: var(--bg); color: var(--text); display: flex; align-items: center; gap: 6px;
}
.palette-switch button[aria-pressed="true"] { border-color: var(--accent); color: var(--accent); }
.palette-switch .sw { width: 12px; height: 12px; border-radius: 50%; border: 1px solid rgba(128,128,128,.5); flex: none; }
