/* 案件固有のスタイル。型(styles.css)は編集禁止 — 上書きはすべてここに書く。
   読み込み順は styles.css → custom.css なので、同じセレクタ/変数はこちらが勝つ。 */

:root {
  --mold-version: 9;
  /* font-preset: clean */
  --lh-body: 1.90;
  --lh-display: 1.38;
  --ls-en: .06em;
  --ls-body: .02em;
  --ls-display: .01em;
  --fw-strong: 700;
  --fw-body: 400;
  --fw-display: 700;
  --font-en: "Jost", sans-serif;
  --font-body: "Noto Sans JP", sans-serif;
  --font-display: "Zen Kaku Gothic New", sans-serif;
  /* 配色: extract_palette.py の4値をここに */
  /* 書体: apply_design_tokens.py --preset <key> が自動で書く */
}

/* ルートAヒーロー(make_hero_bg.py の出力座標)はここに書く */

/* Adopted A: photography collage kept separate from real HTML text/UI. */
:root { --ink:#382619; --paper:#faf3e9; --gold:#f77813; --muted:#73665a; --font-body:"Noto Sans JP",sans-serif; --font-display:"Zen Kaku Gothic New",sans-serif; }
html { scroll-behavior:smooth; scroll-padding-top:20px; }
body.farm-site { background:var(--paper); color:var(--ink); font-family:var(--font-body); font-size:16px; line-height:1.9; overflow-x:clip; }
.farm-site h1,.farm-site h2,.farm-site h3 { font-family:var(--font-display); font-weight:700; }
.farm-site h2 { font-size:clamp(25px,2.7vw,42px); line-height:1.5; letter-spacing:.025em; }
.farm-site h3 { font-size:22px; line-height:1.6; }
.farm-site a:focus-visible,.farm-site button:focus-visible { outline:3px solid #2c6e9b; outline-offset:6px; }
.skip-link { position:fixed; top:-100px; left:16px; z-index:100; background:white; padding:12px 20px; }
.skip-link:focus { top:12px; }
.farm-site .site-header { position:sticky; inset:0 auto auto 0; height:7.68vw; min-height:80px; padding:0 3.125vw; display:flex; justify-content:space-between; align-items:center; background:var(--paper); border:0; transform:none; box-shadow:none; z-index:30; }
.farm-site .brand { display:block; color:var(--ink); }
.farm-site .brand__logo { display:block; width:clamp(220px,23vw,340px); max-width:100%; height:auto; }
.farm-site .brand__text { font-family:var(--font-display); font-size:2.2vw; font-weight:700; letter-spacing:.035em; }
.farm-site .nav { display:flex; gap:2.7vw; align-items:center; }
.farm-site .nav a { font-size:1.15vw; font-weight:700; letter-spacing:.035em; min-height:44px; display:flex; align-items:center; }
.farm-site .nav a[aria-current] { color:#b64d0b; }
.farm-site .nav-toggle { display:none; }
.farm-site .hero { padding:0; min-height:0; background:var(--paper); position:relative; }
.farm-site .hero__stage { position:relative; height:auto; min-height:0; aspect-ratio:1536/756; padding:0; display:block; }
.farm-site .hero__photo-wrap { position:absolute; left:39.6484%; top:0; width:60.3516%; height:auto; margin:0; overflow:hidden; border-radius:0; transform:none !important; clip-path:none; }
.farm-site .hero__photo { position:static; width:100%; height:auto; aspect-ratio:927/756; object-fit:contain; border-radius:0; filter:none; transform:none; }
.farm-site .hero__photo-wrap::before,.farm-site .hero__photo-wrap::after { content:none; display:none; }
.farm-site .hero__copy { position:absolute; inset:0 auto 0 0; width:39.6484%; padding:0; z-index:2; }
.farm-site .hero-kicker { position:absolute; top:13.8%; left:7.9%; margin:0; font-size:1.4vw; color:#c95008; font-weight:700; letter-spacing:.11em; }
.farm-site .hero-kicker span { margin-left:1vw; }
.farm-site #hero-title { position:absolute; top:21.4%; left:7.9%; width:92%; margin:0; font-size:3.25vw; line-height:1.52; letter-spacing:.005em; font-weight:700; }
.farm-site #hero-title .l { display:block; overflow:visible; padding:0; margin:0; }
.farm-site #hero-title .l>span { display:block; transform:none; opacity:1; }
.farm-site .hero__lead { position:absolute; top:56.5%; left:8.5%; width:88%; margin:0; font-size:1.4vw; font-weight:500; line-height:1.75; letter-spacing:.015em; }
.farm-site .hero__actions { position:absolute; top:76.7%; left:7.9%; display:flex; gap:1vw; margin:0; padding:0; }
.farm-site .hero__actions .btn { height:4.85vw; min-height:50px; padding:0 2vw; width:18.9vw; font-size:1.5vw; gap:1vw; border-radius:60px; letter-spacing:.07em; justify-content:center; }
.farm-site .hero__actions .btn--ghost { width:14.8vw; }
.farm-site .hero__actions .btn--ghost { font-size:1.3vw; }
.farm-site .hero__actions .btn>span:first-child { white-space:nowrap; }
.farm-site .btn { display:inline-flex; gap:22px; align-items:center; justify-content:center; padding:14px 27px; min-height:48px; border:1px solid var(--gold); background:var(--gold); color:white; border-radius:100px; font-weight:700; font-size:16px; line-height:1.6; text-decoration:none; transition:background .25s ease,transform .25s ease; }
.farm-site .btn::before,.farm-site .btn::after { display:none; }
.farm-site .btn--ghost { color:var(--ink); background:transparent; border-color:#785b46; }
.farm-site .btn:hover { background:#d75805; border-color:#d75805; color:white; transform:translateY(-2px); }
.farm-site .btn span { transform:none; }
.farm-site .season-band { height:9.7vw; min-height:125px; display:flex; align-items:center; gap:2vw; position:relative; background:#f5ede1; padding:0 3vw 0 14vw; }
.farm-site .season-band>img { position:absolute; inset:0 auto 0 0; width:12.45vw; height:100%; object-fit:contain; }
.farm-site .season-band>p { font-size:1.65vw; font-weight:700; display:flex; align-items:center; gap:1.7vw; margin:0; }
.farm-site .season-band>p>span { font-size:1.25vw; font-weight:500; background:#e4d8c8; border-radius:50px; padding:8px 25px; color:#715f50; }
.farm-site .season-band>small { font-size:max(12px,.8vw); width:34%; margin-left:auto; line-height:1.8; color:#756959; }
.farm-site .top-intro { max-width:860px; padding:75px 28px 0; margin:auto; text-align:center; }
.farm-site .top-intro>p:first-child { font-family:var(--font-display); font-size:22px; font-weight:600; }
.farm-site .section { max-width:1280px; margin:auto; padding:100px 60px; }
.farm-site .section__head { max-width:none; margin:0; }
.farm-site .section__head>p:not(.eyebrow) { margin:24px 0; max-width:44em; }
.farm-site .eyebrow { color:#b74f0c; font-size:14px; letter-spacing:.13em; font-weight:700; margin:0 0 16px; }
.farm-site .story-section,.farm-site .news-section { display:grid; grid-template-columns:1fr 1fr; gap:65px; align-items:center; }
.farm-site figure { margin:0; }
.farm-site .section figure img { width:100%; height:auto; border-radius:2px; }
.farm-site .uses-section { background:#f4e9d9; max-width:none; }
.farm-site .uses-section>.section__head,.farm-site .uses-grid { max-width:1120px; margin:auto; }
.farm-site .uses-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:44px; }
.farm-site .uses-grid article { background:var(--paper); overflow:hidden; }
.farm-site .uses-grid article>img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.farm-site .uses-grid article>div { padding:30px 36px 36px; }
.farm-site .uses-grid .btn { margin-top:22px; }
.farm-site .purchase-section { text-align:center; }
.farm-site .purchase-section .section__head>p { margin:22px auto; }
.farm-site .steps { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; list-style:none; padding:0; margin:45px 0 0; text-align:left; }
.farm-site .steps>li { padding:30px; border-top:2px solid #dca966; background:#f2e8d9; }
.farm-site .steps>li>span { font-family:var(--font-en); color:#b74f0c; font-size:35px; }
.farm-site .steps h3 { margin:12px 0; }
.farm-site .farm-news { list-style:none; margin:30px 0; padding:0; }
.farm-site .farm-news li { border-bottom:1px solid #d8c5b0; }
.farm-site .farm-news a { display:grid; grid-template-columns:1fr auto; padding:20px 0; gap:4px 20px; }
.farm-site .farm-news time { grid-column:1/-1; font-size:13px; color:#7c6652; }
.farm-site .footer.farm-footer { position:relative; display:grid; grid-template-columns:1.1fr .7fr 1.2fr; gap:45px; padding:65px max(30px,5vw) 30px; background:#39291e; color:#fff6e9; }
.farm-site .footer__brand { display:block; }
.farm-site .footer__logo-link { display:block; width:min(100%,320px); padding:10px 14px; border-radius:6px; background:var(--paper); }
.farm-site .footer__logo { display:block; width:100%; height:auto; }
.farm-site .footer__brand strong { font-family:var(--font-display); font-size:27px; }
.farm-site .footer__brand p { font-size:14px; margin-top:14px; }
.farm-site .footer__nav { display:flex; flex-direction:column; gap:0; }
.farm-site .footer__nav a { padding:7px 0; min-height:44px; font-size:14px; }
.farm-site .footer__sns { display:block; font-size:13px; line-height:1.9; }
.farm-site .footer__sns p { margin:0 0 15px; }
.farm-site .footer__sns a { min-height:44px; display:inline-flex; width:auto; height:auto; font-size:14px; border:0; border-bottom:1px solid #b29a81; }
.farm-site .footer small { grid-column:1/-1; font-size:12px; opacity:.75; border-top:1px solid #755e49; padding-top:24px; }
.farm-site .subpage-head { padding:60px 30px; text-align:center; }
.farm-site .subpage-head h1 { font-size:clamp(30px,3.3vw,52px); line-height:1.55; margin:0; }
.farm-site .breadcrumb { font-size:13px; margin-top:28px; }
.farm-site .subpage-photo { max-width:1200px; margin:auto; padding:0 30px; }
.farm-site .subpage-photo img { width:100%; max-height:530px; object-fit:cover; }
.farm-site .subpage-content { max-width:900px; margin:0 auto; padding:40px 32px 90px; }
.farm-site .copy-block { margin:0; padding:38px 0; border-bottom:1px solid #dfcfbb; }
.farm-site .copy-block h2 { font-size:28px; margin:0 0 25px; }
.farm-site .copy-block h3 { font-size:21px; margin:28px 0 15px; }
.farm-site .copy-block p { margin:0 0 22px; }
.farm-site .copy-block ul { padding-left:1.5em; margin-bottom:24px; }
.farm-site .copy-block .btn { margin:8px 12px 10px 0; }
.farm-site .inline-photo { max-width:600px; width:100%; height:auto; margin:0 0 28px; }
.farm-site .season-band>small,.farm-site .footer__sns p { font-size:15px; }
@media (max-width:1040px) {
 .farm-site .site-header { height:82px; padding:0 24px; min-height:0; }
 .farm-site .brand__text { font-size:27px; }
 .farm-site .nav { gap:18px; }
 .farm-site .nav a { font-size:13px; }
 .farm-site .hero__stage { aspect-ratio:auto; display:flex; flex-direction:column; }
 .farm-site .hero__copy { position:relative; inset:auto; width:100%; padding:30px 30px 35px; }
 .farm-site .hero-kicker,.farm-site #hero-title,.farm-site .hero__lead,.farm-site .hero__actions { position:static; width:auto; margin:0; }
 .farm-site .hero-kicker { font-size:15px; margin-bottom:18px; }
 .farm-site #hero-title { font-size:40px; line-height:1.4; max-width:700px; }
 .farm-site .hero__lead { font-size:17px; line-height:1.8; margin:20px 0 24px; }
 .farm-site .hero__actions { gap:15px; }
 .farm-site .hero__actions .btn,.farm-site .hero__actions .btn--ghost { width:auto; height:auto; min-height:52px; font-size:16px; padding:13px 25px; }
 .farm-site .hero__photo-wrap { position:static; width:100%; order:2; }
 .farm-site .hero__copy { order:1; }
 .farm-site .hero__photo { width:100%; height:auto; aspect-ratio:927/756; }
 .farm-site .season-band { height:auto; min-height:145px; padding:25px 28px 25px 160px; flex-wrap:wrap; gap:15px; }
 .farm-site .season-band>img { width:140px; }
 .farm-site .season-band>p { font-size:20px; gap:20px; }
 .farm-site .season-band>p>span { font-size:15px; padding:7px 16px; }
 .farm-site .season-band>small { width:100%; font-size:15px; margin:0; }
 .farm-site .section { padding:70px 30px; }
 .farm-site .story-section,.farm-site .news-section { gap:35px; }
 .farm-site .steps { gap:15px; }
 .farm-site .steps>li { padding:22px; }
}
@media (max-width:700px) {
 .farm-site .site-header { height:74px; padding:0 22px; }
 .farm-site .brand__logo { width:220px; }
 .farm-site .brand__text { font-size:24px; }
 .farm-site .nav { display:none; }
 .farm-site .nav-toggle { display:flex; background:transparent; color:var(--ink); }
 .farm-site .nav-overlay { background:var(--paper); padding:95px 28px 30px; }
 .farm-site .nav-overlay a { font-size:22px; padding:7px 0; }
 .farm-site .hero__copy { padding:25px 24px 30px; }
 .farm-site #hero-title { font-size:clamp(22px,7.4vw,32px); line-height:1.48; }
 .farm-site .hero__lead { font-size:15px; margin:17px 0 22px; line-height:1.85; }
 .farm-site .hero__lead br:last-of-type { display:none; }
 .farm-site .hero__actions { gap:10px; }
 .farm-site .hero__actions .btn,.farm-site .hero__actions .btn--ghost { font-size:13px; min-height:48px; padding:11px 12px; gap:8px; }
 .farm-site .season-band { padding:25px 24px; min-height:0; }
 .farm-site .season-band>img { display:none; }
 .farm-site .season-band>p { font-size:18px; gap:17px; }
 .farm-site .top-intro { padding:40px 24px 0; }
 .farm-site .top-intro>p:first-child { font-size:18px; }
 .farm-site .section { padding:55px 24px; }
 .farm-site .story-section,.farm-site .news-section,.farm-site .uses-grid,.farm-site .steps { grid-template-columns:1fr; }
 .farm-site .story-section,.farm-site .news-section { gap:30px; }
 .farm-site h2 { font-size:28px; }
 .farm-site .uses-grid { gap:25px; margin-top:30px; }
 .farm-site .uses-grid article>div { padding:25px; }
 .farm-site .steps { gap:12px; margin-top:28px; }
 .farm-site .steps>li { padding:22px; }
 .farm-site .footer.farm-footer { grid-template-columns:1fr; gap:32px; padding:45px 24px 25px; }
 .farm-site .footer__nav { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
 .farm-site .subpage-head { padding:38px 24px; }
 .farm-site .subpage-head h1 { font-size:clamp(21px,6.65vw,28px); }
 .farm-site .subpage-photo { padding:0 24px; }
 .farm-site .subpage-content { padding:20px 24px 60px; }
 .farm-site .copy-block { padding:28px 0; }
 .farm-site .copy-block h2 { font-size:25px; }
}
@media (prefers-reduced-motion: reduce) {
 .farm-site [data-reveal] { transform:none !important; clip-path:none !important; transition:opacity .6s ease !important; }
 .hero__ambient { display:none; }
 .marquee__inner { animation-duration:55s; }
}

/* Reading progress gives orientation on the long, calm farming story. */
.reading-progress { position:fixed; inset:0 auto auto 0; width:100%; height:3px; z-index:70; background:#ef7b20; transform:scaleX(0); transform-origin:left; pointer-events:none; }
@supports (animation-timeline:scroll()) {
 .reading-progress { animation:reading-progress linear; animation-timeline:scroll(root block); }
}
@keyframes reading-progress { from { transform:scaleX(0); } to { transform:scaleX(1); } }
