/* =========================================================
   佐々木農産 連島れんこん リニューアル共通CSS（2026-11）
   読み込み順：style.css → customize.css → renewal.css（最後に上書き）
   配色：白い果肉／粘土質の土／蓮の花／水田の緑（CLAUDE.md ルール5）
   ========================================================= */

:root {
  --c-flesh: #fbf8f1;      /* 白い果肉：地 */
  --c-flesh-2: #f3eee3;    /* 地の濃い面 */
  --c-clay: #7c6b57;       /* 粘土質の土 */
  --c-clay-dark: #5a4c3d;
  --c-lotus: #c9849a;      /* 蓮の花 */
  --c-lotus-pale: #f5e6ea;
  --c-paddy: #5d7a4b;      /* 水田の緑 */
  --c-paddy-pale: #e7ede0;
  --c-ink: #2e2a25;        /* 本文 */
  --c-ink-2: #6b645b;      /* 補足 */
  --c-line: #e3dccd;
  --c-accent: var(--c-clay);

  --f-mincho: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --f-gothic: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif; /* 2026-11-04 西田さん：明朝で統一 */
  --f-latin: "Cormorant Garamond", "Times New Roman", serif;

  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 24px; --space-6: 40px; --space-7: 64px; --space-8: 104px;
  --w-content: 1080px;
  --radius: 2px;
}

/* ---------- 地と書体（customize.css の Kiwi Maru 強制を上書き） ---------- */
html, body { background: var(--c-flesh); color: var(--c-ink); }
body, div, p, a, ul, li, span, dt, dd, th, td, label, input, select, textarea, button {
  font-family: var(--f-gothic) !important;
  font-weight: 400;
  letter-spacing: 0.04em;
}
h1, h2, h3, h4, h5,
.ec-secHeading__ja, .ec-pageHeader h1, .ec-headingTitle, .ec-productRole__title,
.rn-heading__ja, .rn-display {
  font-family: var(--f-mincho) !important;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--c-ink);
}
body { line-height: 1.9; font-size: 15px; }
a { color: var(--c-clay-dark); }
a:hover { opacity: 0.75; }
img { max-width: 100%; height: auto; }

/* ---------- 共通部品 ---------- */
.rn-section { padding: var(--space-7) var(--space-4); }
.rn-section__inner { max-width: var(--w-content); margin: 0 auto; }
.rn-section--pale { background: var(--c-flesh-2); }

.rn-heading { text-align: center; margin: 0 0 var(--space-6); }
.rn-heading__en {
  display: block;
  font-family: var(--f-latin) !important;
  font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--c-accent);
  margin-bottom: var(--space-2);
}
.rn-heading__ja { display: block; font-size: 24px; line-height: 1.6; margin: 0; }
.rn-heading--left { text-align: left; }

.rn-lead { font-size: 15px; line-height: 2.1; color: var(--c-ink); max-width: 36em; margin: 0 auto var(--space-5); }
.rn-display { font-size: 28px; line-height: 1.7; }

.rn-btn {
  box-sizing: border-box;
  display: inline-block; min-width: 220px; padding: 14px 28px;
  border: 1px solid var(--c-accent); border-radius: var(--radius);
  font-size: 14px; letter-spacing: 0.12em; text-align: center; text-decoration: none;
  transition: background .2s ease, color .2s ease;
}
.rn-btn--primary { background: var(--c-accent); color: #fff !important; }
.rn-btn--primary:hover { background: var(--c-clay-dark); opacity: 1; }
.rn-btn--ghost { background: transparent; color: var(--c-accent) !important; }
.rn-btn--ghost:hover { background: var(--c-accent); color: #fff !important; opacity: 1; }

.rn-card { display: block; background: #fff; border: 1px solid var(--c-line); text-decoration: none; color: var(--c-ink); }
.rn-card__img { aspect-ratio: 1 / 1; overflow: hidden; background: var(--c-flesh-2); }
.rn-card__img img { width: 100%; height: 100%; object-fit: cover; }
.rn-card__body { padding: var(--space-4); }
.rn-card__name { font-family: var(--f-mincho) !important; font-size: 16px; margin: 0 0 var(--space-2); }
.rn-card__price { font-size: 15px; color: var(--c-ink); margin: 0; }
.rn-card__price small { font-size: 11px; color: var(--c-ink-2); margin-left: 2px; }

.rn-motif {
  position: relative;
}
.rn-motif::before {
  content: ""; position: absolute; width: 56px; height: 56px; left: 50%; top: calc(var(--space-6) * -0.5);
  transform: translate(-50%, -100%);
  background-color: var(--c-accent); opacity: .35;
  -webkit-mask: url("../img/motif/renkon-section.svg") center / contain no-repeat;
          mask: url("../img/motif/renkon-section.svg") center / contain no-repeat;
}
.rn-divider {
  width: 40px; height: 40px; margin: var(--space-6) auto; color: var(--c-accent); opacity: .5;
  background-color: currentColor;
  -webkit-mask: url("../img/motif/renkon-section.svg") center / contain no-repeat;
          mask: url("../img/motif/renkon-section.svg") center / contain no-repeat;
}

.rn-note { font-size: 12px; color: var(--c-ink-2); line-height: 1.8; }

/* ---------- ページごとの強調トーン ---------- */
body.rn-tone-gift { --c-accent: var(--c-lotus); }
body.rn-tone-gift .rn-section--pale { background: var(--c-lotus-pale); }
body.rn-tone-business { --c-accent: var(--c-paddy); }
body.rn-tone-business .rn-section--pale { background: var(--c-paddy-pale); }

/* ---------- EC-CUBE 標準ボタンをトーンに合わせる ---------- */
.ec-blockBtn--action, .ec-inlineBtn--action, .ec-blockBtn--top, .ec-inlineBtn--top {
  background: var(--c-accent) !important; border-color: var(--c-accent) !important;
  border-radius: var(--radius); letter-spacing: 0.12em; color: #fff !important;
}
.ec-blockBtn--action:hover, .ec-inlineBtn--action:hover, .ec-blockBtn--top:hover, .ec-inlineBtn--top:hover {
  background: var(--c-clay-dark) !important; border-color: var(--c-clay-dark) !important;
}
.ec-blockBtn--cancel, .ec-inlineBtn--cancel { border-radius: var(--radius); }

/* ---------- スマホ ---------- */
@media (max-width: 767px) {
  body { font-size: 14px; }
  .rn-section { padding: var(--space-6) var(--space-4); }
  .rn-heading { margin-bottom: var(--space-5); }
  .rn-heading__ja { font-size: 20px; }
  .rn-display { font-size: 22px; }
  .rn-btn { min-width: 0; width: 100%; }
}


/* ---------- 世界観の部品（試作C：土から光へ） ---------- */
.rn-en {                         /* 英字の大見出し */
  font-family: var(--f-latin) !important; font-weight: 400; line-height: 1.02; letter-spacing: .02em;
  font-size: clamp(52px, 9vw, 140px); margin: 0 0 var(--space-5);
}
.rn-en small { display: block; font-size: 12px; letter-spacing: .45em; margin-bottom: 18px; line-height: 1.6; }
.rn-vertical {                   /* 縦書きの明朝コピー */
  writing-mode: vertical-rl; white-space: nowrap;
  font-family: var(--f-mincho) !important; font-size: clamp(24px, 3.2vw, 42px);
  letter-spacing: .3em; line-height: 2.1; margin: 0;
}
.rn-scene { position: relative; min-height: 110vh; display: flex; align-items: center; justify-content: center; padding: 0 8vw; box-sizing: border-box; }
.rn-scene__inner { display: flex; gap: 6vw; align-items: center; justify-content: space-between; max-width: var(--w-content); width: 100%; }
.rn-scene__body { font-size: 15px; line-height: 2.3; max-width: 24em; }
.rn-scene--hero { min-height: 100svh; }
.rn-on-dark, .rn-on-dark * { color: #f7f1e6 !important; }
.rn-on-light, .rn-on-light * { color: var(--c-ink) !important; }
.rn-on-light .rn-en small { color: var(--c-lotus) !important; }

canvas.rn-journey { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 0; display: block; pointer-events: none; }
.rn-journey-wrap { position: relative; z-index: 1; }

.rn-chapter-nav { position: fixed; right: 18px; top: 50%; transform: translateY(-50%); z-index: 2; display: flex; flex-direction: column; gap: 18px;
  font-family: var(--f-latin) !important; font-size: 10px; letter-spacing: .3em; }
.rn-chapter-nav span { writing-mode: vertical-rl; }
.rn-chapter-nav span { color: rgba(255,255,255,.5) !important; transition: color .3s; }
.rn-chapter-nav span.is-current { color: #fff !important; }
body[data-rn-stage="2"] .rn-chapter-nav span { color: rgba(46,42,37,.4) !important; }
.rn-chapter-nav { transition: opacity .3s; }
body.rn-journey--past .rn-chapter-nav { opacity: 0; visibility: hidden; }
body[data-rn-stage="2"] .rn-chapter-nav span.is-current { color: var(--c-ink) !important; }

/* ほかのページ用：ページ上部の質感の帯（静かな版） */
.rn-band { position: relative; padding: var(--space-8) 8vw var(--space-7); background-size: cover; background-position: center; }
.rn-band__inner { max-width: var(--w-content); margin: 0 auto; display: flex; justify-content: space-between; align-items: flex-end; gap: 6vw; }
.rn-band .rn-en { font-size: clamp(44px, 7vw, 96px); }
.rn-band--soil { background-image: url("../img/texture/soil.jpg"); background-color: #3b3128; }
.rn-band--water { background-image: linear-gradient(rgba(20,26,18,.35), rgba(20,26,18,.35)), url("../../../template/default/assets/img/about/img_about_mv_bg.jpg"); background-color: #33433a; }
.rn-band--blossom { background-image: url("../img/texture/blossom.jpg"); background-color: #f6ecec; }
.rn-band--soil, .rn-band--soil *, .rn-band--water, .rn-band--water * { color: #f7f1e6 !important; }
.rn-band--blossom, .rn-band--blossom * { color: var(--c-ink) !important; }

@media (max-width: 767px) {
  .rn-scene { padding: 0 24px; }
  .rn-scene__inner { flex-direction: column-reverse; align-items: flex-start; gap: 32px; }
  .rn-scene--hero .rn-scene__inner { flex-direction: row-reverse; align-items: flex-end; }
  .rn-vertical { font-size: 24px; }
  .rn-chapter-nav { display: none; }
  .rn-band { padding: var(--space-7) 24px var(--space-6); }
  .rn-band__inner { flex-direction: column-reverse; align-items: flex-start; gap: 24px; }
}
@media (prefers-reduced-motion: reduce) { .rn-chapter-nav span { transition: none; } }

/* cart & shopping */

/* help & mypage */

/* ---------- ヘッダー・フッター ---------- */
/* 旧デザインの「PC幅で左に固定の列」をやめ、上部の横一列にする（customize.css の上書き） */
body { margin-top: 0 !important; }
.ec-layoutRole .ec-layoutRole__contents { padding-left: 0 !important; }
.ec-layoutRole__header { height: auto !important; }
.ec-categoryNaviRole { display: none !important; }            /* カテゴリのメニュー：上部メニューと重複 */
.ec-headerNav__item__pc_only { display: none !important; }    /* 旧サイドのメニュー：上部メニューと重複 */

.rn-header { position: relative; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 8px 24px; padding: 14px 32px; background: rgba(251,248,241,.94); border-bottom: 1px solid var(--c-line); }
.rn-header .ec-headerNaviRole { display: contents !important; }
.rn-header .ec-headerNaviRole__left { order: 1; display: flex; align-items: center; gap: 12px; margin: 0 !important; width: auto !important; }
.rn-header__nav { order: 2; flex: 1; display: flex; justify-content: center; gap: 36px; }
@media (min-width: 768px) { .rn-sp-only { display: none !important; } }
.rn-header .ec-headerNaviRole__right { order: 3; position: static !important; display: flex; flex-direction: row !important; align-items: center;
  width: auto !important; max-width: none; padding: 0 !important; top: auto; left: auto; box-shadow: none !important; background: transparent !important; }
.rn-header .ec-headerNav { flex-direction: row !important; align-items: center; margin: 0 !important; }
.rn-header .ec-headerNav .ec-headerNav__item { margin: 0 0 0 16px !important; }
.rn-header .ec-headerNav__itemLink { font-size: 12px !important; letter-spacing: .1em; }
.rn-header .ec-headerLogo { position: static !important; display: block !important; width: auto; }
.rn-header .ec-headerLogo img { height: 64px; width: auto; display: block; }
.rn-header .ec-cartNavi { background: transparent; border: 1px solid var(--c-line); border-radius: 999px; }
.rn-header__nav a { font-size: 13px; letter-spacing: .18em; color: var(--c-ink) !important; text-decoration: none; }
.rn-header__nav a:hover { color: var(--c-accent) !important; opacity: 1; }
/* トップ：最初の画面の上に透明で重ねる */
:is(#page_homepage, .rn-journey-page) .ec-layoutRole__header { position: absolute; top: 0; left: 0; right: 0; z-index: 5; background: transparent; }
:is(#page_homepage, .rn-journey-page) .rn-header { background: transparent; border-bottom: 0; }
:is(#page_homepage, .rn-journey-page) .rn-header__nav a, :is(#page_homepage, .rn-journey-page) .rn-header .ec-headerNav__itemLink, :is(#page_homepage, .rn-journey-page) .rn-header .ec-headerNav__itemIcon,
:is(#page_homepage, .rn-journey-page) .rn-header .ec-cartNavi i, :is(#page_homepage, .rn-journey-page) .rn-header .ec-cartNavi__price { color: #f7f1e6 !important; }
:is(#page_homepage, .rn-journey-page) .rn-header .ec-cartNavi { border-color: rgba(247,241,230,.5); }
:is(#page_homepage, .rn-journey-page) .rn-header .ec-headerLogo img { filter: brightness(0) invert(1); }
@media (max-width: 767px) {
  .rn-header { padding: 10px 16px; }
  .rn-header .ec-headerLogo img { height: 44px; }
  .rn-header .ec-headerNaviRole__left { width: 100% !important; justify-content: center; }
  .rn-header .ec-headerNaviRole__right .ec-headerNav { flex: 1; justify-content: space-evenly; }
  .rn-header .ec-headerNaviRole__right .ec-headerNav .ec-headerNav__item { margin: 0 !important; }
  .rn-header .ec-headerNaviRole__right .ec-headerNav__itemLink { padding: 0 4px !important; }
  .rn-header .ec-headerRole__cart { margin-right: 12px; }
  .rn-header__nav { order: 4; width: 100%; gap: 18px; overflow-x: auto; white-space: nowrap; padding-bottom: 2px; }
  /* スマホの下部の帯（カート・ログイン）は残し、色だけ合わせる */
  .rn-header .ec-headerNaviRole__right { position: fixed !important; left: 0; right: 0; bottom: 0; top: auto; justify-content: center;
    background: var(--c-flesh) !important; border-top: 1px solid var(--c-line); padding: 10px 0 !important; z-index: 20; }
  :is(#page_homepage, .rn-journey-page) .rn-header .ec-headerNaviRole__right .ec-headerNav__itemLink,
  :is(#page_homepage, .rn-journey-page) .rn-header .ec-headerNaviRole__right .ec-headerNav__itemIcon,
  :is(#page_homepage, .rn-journey-page) .rn-header .ec-headerNaviRole__right .ec-cartNavi i,
  :is(#page_homepage, .rn-journey-page) .rn-header .ec-headerNaviRole__right .ec-cartNavi__price { color: var(--c-ink) !important; }
  body { padding-bottom: 64px; }
}

.rn-footer { background: #3b3128 url("../img/texture/soil.jpg") center / cover; padding: var(--space-7) 8vw var(--space-5); }
.rn-footer, .rn-footer * { color: #efe4cf !important; }
.rn-footer__inner { max-width: var(--w-content); margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--space-6); }
.rn-footer .rn-en { font-size: clamp(36px, 4.5vw, 64px); }
.rn-footer__name { font-family: var(--f-mincho) !important; letter-spacing: .3em; margin-top: var(--space-4); }
.rn-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; font-size: 13px; }
.rn-footer a { text-decoration: none; }
.rn-footer__copy { text-align: center; font-size: 11px; letter-spacing: .1em; margin: var(--space-6) 0 0; opacity: .7; }
@media (max-width: 767px) {
  .rn-header__nav { gap: 18px; overflow-x: auto; justify-content: flex-start; padding: 4px 16px 12px; white-space: nowrap; }
  .rn-footer { padding: var(--space-6) 24px var(--space-5); }
  .rn-footer__inner { grid-template-columns: 1fr; gap: var(--space-5); }
}

/* ---------- トップページ ---------- */
.rn-btn--light { border-color: rgba(247,241,230,.8); color: #f7f1e6 !important; background: rgba(0,0,0,.12); }
.rn-btn--light:hover { background: #f7f1e6; color: var(--c-ink) !important; opacity: 1; }
.rn-hero__actions { margin-top: var(--space-6); }
:is(#page_homepage, .rn-journey-page) .ec-layoutRole__contents, :is(#page_homepage, .rn-journey-page) .ec-layoutRole__main { max-width: none; padding: 0; }
:is(#page_homepage, .rn-journey-page) .ec-layoutRole__mainBottom { position: relative; z-index: 1; background: transparent; }
:is(#page_homepage, .rn-journey-page) .ec-layoutRole__footer { position: relative; z-index: 1; }
:is(#page_homepage, .rn-journey-page) .ec-layoutRole__mainBottom .ec-role { max-width: none; padding: 0; }
.rn-lineup { position: relative; z-index: 1; }
.rn-lineup__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.rn-lineup__more { text-align: center; margin-top: var(--space-6); }
.rn-notice { position: relative; z-index: 1; }
.rn-notice__campaign img { display: block; width: 100%; max-width: 920px; margin: 0 auto var(--space-6); }
.rn-notice__title { text-align: center; font-family: var(--f-mincho) !important; letter-spacing: .12em; }
.rn-notice__movie { position: relative; max-width: 720px; margin: 0 auto; aspect-ratio: 16 / 9; }
.rn-notice__movie iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rn-eyecatch__inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); align-items: center; }
.rn-eyecatch .rn-lead { margin-left: 0; }
.rn-eyecatch .rn-heading__ja { margin: var(--space-2) 0 var(--space-5); }
@media (max-width: 767px) {
  .rn-lineup__grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .rn-eyecatch__inner { grid-template-columns: 1fr; }
}
.ec-blockTopBtn { background: var(--c-clay) !important; font-family: var(--f-latin) !important; letter-spacing: .2em; font-size: 12px; }
@media (max-width: 767px) { .ec-blockTopBtn { bottom: 76px !important; } }


/* =========================================================
   v2：ページ全体を1つの物語に（2026-11-04 西田さんの差し戻し反映）
   ========================================================= */
/* 演出が使えない端末：固定レイヤーで1枚ずつふわっと切り替える（rn-journey.js が .rn-static-bg を作る） */
.rn-static-bg { position: fixed; inset: 0; z-index: 0; pointer-events: none; background: #3b3128; }
.rn-static-bg > div { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.2s ease; }
.rn-static-bg [data-k="soil"]    { background-image: url("../img/texture/soil.jpg"); }
.rn-static-bg [data-k="dusk"]    { background-image: url("../img/texture/dusk.jpg"); }
.rn-static-bg [data-k="paddy"]   { background-image: url("../img/texture/paddy.jpg"); }
.rn-static-bg [data-k="field"]   { background-image: linear-gradient(rgba(0,0,0,.18), rgba(0,0,0,.18)), url("../../../template/default/assets/img/about/img_about_mv_bg.jpg"); }
.rn-static-bg [data-k="harvest"] { background-image: linear-gradient(rgba(0,0,0,.42), rgba(0,0,0,.42)), url("../img/rn/hands.jpg"); }
.rn-static-bg [data-k="blossom"] { background-image: url("../img/texture/blossom.jpg"); }
.rn-static-bg [data-k="farm"]    { background-image: linear-gradient(rgba(0,0,0,.4), rgba(0,0,0,.4)), url("../../../template/default/assets/img/about/img_about_step2.jpg"); }
body[data-rn-bg="soil"] .rn-static-bg [data-k="soil"], body[data-rn-bg="dusk"] .rn-static-bg [data-k="dusk"],
body[data-rn-bg="paddy"] .rn-static-bg [data-k="paddy"], body[data-rn-bg="field"] .rn-static-bg [data-k="field"],
body[data-rn-bg="harvest"] .rn-static-bg [data-k="harvest"], body[data-rn-bg="blossom"] .rn-static-bg [data-k="blossom"],
body[data-rn-bg="farm"] .rn-static-bg [data-k="farm"] { opacity: 1; }

.rn-scene--auto { min-height: 0; padding-top: var(--space-8); padding-bottom: var(--space-8); }
.rn-scene { overflow: hidden; }

/* ローディング */
.rn-loader { position: fixed; inset: 0; z-index: 100; display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: #241d17; color: #e9dcc2; transition: opacity 1.1s ease .2s, visibility 0s linear 1.3s; }
.rn-loader__mark { width: 96px; height: 96px; color: #d9c08f; }
.rn-loader__mark .rn-section-svg { width: 100%; height: 100%; stroke-width: 1.4; }
.rn-loader__mark .rn-section-svg * { stroke-dasharray: 1; stroke-dashoffset: 1; animation: rn-draw 1.6s cubic-bezier(.6,.1,.2,1) forwards; }
.rn-loader__mark .rn-section-svg *:nth-child(n+2) { animation-delay: .35s; }
.rn-loader__name { font-family: var(--f-mincho) !important; font-size: 20px; letter-spacing: .6em; margin: 28px 0 8px; color: #efe4cf !important; opacity: 0; animation: rn-fade 1s ease 1s forwards; }
.rn-loader__en { font-family: var(--f-latin) !important; font-size: 11px; letter-spacing: .5em; color: #b8a27a !important; opacity: 0; animation: rn-fade 1s ease 1.3s forwards; }
body.rn-loaded .rn-loader { opacity: 0; visibility: hidden; }
@keyframes rn-draw { to { stroke-dashoffset: 0; } }
@keyframes rn-fade { to { opacity: 1; } }

/* 最初の画面：大きなれんこんの断面が光の線で描かれ、ゆっくり回る */
.rn-hero__section { position: absolute; left: 50%; top: 50%; width: min(44vmin, 420px); aspect-ratio: 1; transform: translate(-50%, -50%);
  color: #e6cf9c; opacity: .22; pointer-events: none; filter: drop-shadow(0 0 12px rgba(230,207,156,.45)); }
.rn-hero__section .rn-section-svg { width: 100%; height: 100%; stroke-width: .5; animation: rn-spin 120s linear infinite; }
.rn-hero__section .rn-section-svg * { stroke-dasharray: 1; stroke-dashoffset: 1; }
body.rn-loaded .rn-hero__section .rn-section-svg * { animation: rn-draw 3.2s cubic-bezier(.5,.1,.2,1) forwards; }
body.rn-loaded .rn-hero__section .rn-section-svg *:nth-child(n+2) { animation-delay: .6s; }
@keyframes rn-spin { to { transform: rotate(360deg); } }
.rn-scene--hero .rn-scene__inner { position: relative; z-index: 1; }
.rn-scroll { position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%); writing-mode: vertical-rl; font-family: var(--f-latin) !important;
  font-size: 11px; letter-spacing: .4em; color: rgba(247,241,230,.8) !important; }
.rn-scroll::after { content: ""; display: block; width: 1px; height: 52px; margin: 12px auto 0; background: linear-gradient(#f7f1e6, transparent); animation: rn-drip 2.4s ease-in-out infinite; }
@keyframes rn-drip { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

/* 浮かび上がる演出（rn-reveal.js） */
.rn-reveal-on [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity 1.2s ease, transform 1.2s cubic-bezier(.2,.7,.2,1); }
.rn-reveal-on [data-reveal].is-in { opacity: 1; transform: none; }
.rn-reveal-on .rn-vertical .rn-ch { display: inline-block; opacity: 0; transform: translateY(-10px); filter: blur(4px); transition: opacity .9s ease, transform .9s ease, filter .9s ease; }
.rn-reveal-on .rn-vertical.is-in .rn-ch { opacity: 1; transform: none; filter: none; }
.rn-reveal-on .rn-scene--hero .rn-vertical .rn-ch { transition-delay: 0s; }
body:not(.rn-loaded) .rn-scene--hero [data-reveal], body:not(.rn-loaded) .rn-scene--hero .rn-ch { opacity: 0 !important; }

/* 額縁（写真・動画） */
.rn-frame { position: relative; margin: 0; padding: 10px; border: 1px solid rgba(230,207,156,.55); }
.rn-frame::before { content: ""; position: absolute; inset: -8px 8px 8px -8px; border: 1px solid rgba(230,207,156,.25); pointer-events: none; }
.rn-frame img, .rn-frame iframe { display: block; width: 100%; }
.rn-frame--photo img { aspect-ratio: 4 / 5; object-fit: cover; }
.rn-frame--movie { aspect-ratio: 16 / 9; }
.rn-frame--movie iframe { position: absolute; inset: 10px; width: calc(100% - 20px); height: calc(100% - 20px); border: 0; }
.rn-frame__mark { position: absolute; right: -28px; bottom: -28px; width: 72px; height: 72px; color: #e6cf9c; opacity: .8; }
.rn-frame__mark .rn-section-svg { width: 100%; height: 100%; stroke-width: 1.2; }
.rn-on-light .rn-frame { border-color: rgba(124,107,87,.45); }
.rn-on-light .rn-frame::before { border-color: rgba(124,107,87,.2); }

/* 商品の並び：花の背景の上に半透明の板 */
.rn-lineup .rn-card { background: rgba(255,253,249,.78); border-color: rgba(201,132,154,.25); backdrop-filter: blur(6px); transition: transform .4s ease, box-shadow .4s ease; }
.rn-lineup .rn-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -24px rgba(90,60,50,.45); opacity: 1; }

/* お知らせ */
.rn-info .rn-section__inner { width: 100%; }
.rn-info__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 6vw; margin-bottom: var(--space-7); }
.rn-info__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); align-items: start; margin-bottom: var(--space-7); }
.rn-campaign { position: relative; padding: var(--space-6); border: 1px solid rgba(230,207,156,.55); background: rgba(36,29,23,.35); overflow: hidden; text-align: center; }
.rn-campaign__mark { position: absolute; right: -50px; top: -50px; width: 200px; height: 200px; color: #e6cf9c; opacity: .22; }
.rn-campaign__mark .rn-section-svg { width: 100%; height: 100%; stroke-width: .8; animation: rn-spin 90s linear infinite; }
.rn-campaign__tag { font-size: 12px; letter-spacing: .3em; color: #d9c08f !important; margin: 0 0 var(--space-5); }
.rn-campaign__cond { font-family: var(--f-mincho) !important; font-size: 15px; letter-spacing: .1em; margin: 0; }
.rn-campaign__cond b { font-family: var(--f-latin) !important; font-weight: 500; font-size: 40px; letter-spacing: .02em; color: #f3dfb2 !important; margin: 0 6px; vertical-align: -4px; }
.rn-campaign__main { font-family: var(--f-mincho) !important; font-size: 40px; letter-spacing: .4em; text-indent: .4em; color: #f3dfb2 !important; margin: var(--space-2) 0 var(--space-4); }
.rn-campaign__note { font-size: 12px; opacity: .8; margin: 0 0 var(--space-5); }
.rn-info__label { font-family: var(--f-mincho) !important; letter-spacing: .12em; margin: 0 0 var(--space-4); }
.rn-info .ec-newsRole { padding: 0; background: transparent; max-width: 760px; }
.rn-info .ec-newsRole__news { border: 0; padding: 0; }
.rn-info .ec-newsRole__newsItem { border-bottom: 1px solid rgba(230,207,156,.25); padding: 16px 0; }
.rn-info .ec-newsRole__newsDate { font-family: var(--f-latin) !important; letter-spacing: .1em; }
.rn-info #news_readmore { background: transparent !important; border: 1px solid rgba(230,207,156,.6) !important; }

/* 紹介 */
.rn-about .rn-scene__inner { align-items: center; }
.rn-about .rn-frame--photo { flex: 0 0 38%; }
.rn-about__text { flex: 1; display: flex; justify-content: space-between; gap: 5vw; align-items: center; }

/* レシピ */
.rn-recipe .rn-section__inner { width: 100%; }
.rn-recipe__head { display: flex; justify-content: space-between; align-items: center; gap: 6vw; margin-bottom: var(--space-7); }
.rn-recipe__grid { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 28px; padding: 0 !important; }
.rn-recipe__grid .rn-frame { aspect-ratio: 9 / 16; }
.rn-recipe__grid .rn-frame iframe { position: absolute; inset: 10px; width: calc(100% - 20px); height: calc(100% - 20px); border: 0; }

@media (max-width: 767px) {
  .rn-scene--auto { padding-top: var(--space-7); padding-bottom: var(--space-7); }
  .rn-hero__section { width: 64vmin; top: 46%; opacity: .16; }
  .rn-about .rn-scene__inner { flex-direction: column; }
  .rn-info__head { flex-direction: column-reverse; align-items: flex-start; }
  .rn-info__grid { grid-template-columns: 1fr; }
  .rn-campaign { padding: var(--space-5); }
  .rn-campaign__main { font-size: 30px; }
  .rn-about .rn-frame--photo { width: 82%; }
  .rn-about__text { flex-direction: column-reverse; align-items: flex-start; }
  .rn-recipe__head { flex-direction: column-reverse; align-items: flex-start; }
  .rn-recipe__grid { grid-template-columns: 1fr 1fr; gap: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .rn-loader { display: none; }
  .rn-hero__section .rn-section-svg, .rn-campaign__mark .rn-section-svg { animation: none; }
  .rn-hero__section .rn-section-svg * { stroke-dashoffset: 0; }
}

/* 業務用への入口：写真＋文章＋縦書き */
.rn-business-entry .rn-scene__inner { align-items: center; }
.rn-frame--wide { flex: 0 0 40%; }
.rn-frame--wide img { aspect-ratio: 4 / 3; object-fit: cover; object-position: 75% 60%; }
@media (max-width: 767px) { .rn-business-entry .rn-scene__inner { flex-direction: column; align-items: flex-start; } .rn-frame--wide { width: 100%; } }

/* ヘッダーを常に上に（スクロールしたら背景を付けて詰める） */
.ec-layoutRole__header { position: sticky !important; top: 0; z-index: 50; transition: background .4s ease, box-shadow .4s ease; }
:is(#page_homepage, .rn-journey-page) .ec-layoutRole__header { position: fixed !important; }
.rn-header { transition: padding .3s ease; }
.rn-header .ec-headerLogo img { transition: height .3s ease; }
.rn-scrolled .rn-header { padding-top: 8px; padding-bottom: 8px; }
.rn-scrolled .rn-header .ec-headerLogo img { height: 44px; }
.rn-scrolled .ec-layoutRole__header { box-shadow: 0 6px 24px -18px rgba(0,0,0,.6); }
.rn-scrolled :is(#page_homepage, .rn-journey-page) .ec-layoutRole__header, html.rn-scrolled :is(#page_homepage, .rn-journey-page) .ec-layoutRole__header { background: rgba(36,29,23,.72) !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
html.rn-scrolled body:not(#page_homepage):not(.rn-journey-page) .rn-header { background: rgba(251,248,241,.92); backdrop-filter: blur(10px); }

/* ページトップへ：TOP と矢印 */
.ec-blockTopBtn { width: 52px !important; height: 52px !important; padding: 0 !important; border-radius: 50% !important; display: flex !important; flex-direction: column; align-items: center; justify-content: center;
  font-size: 10px !important; letter-spacing: .2em; line-height: 1; border: 1px solid rgba(230,207,156,.6); }
.rn-top-arrow { width: 9px; height: 9px; border-left: 1px solid currentColor; border-top: 1px solid currentColor; transform: rotate(45deg); margin: 4px 0 5px; }

/* お知らせの開閉矢印：黒い丸をやめ、細い線の丸に */
.rn-info .ec-newsRole__newsCloseBtn { background: transparent !important; border: 1px solid rgba(230,207,156,.6); color: #efe4cf !important; }
/* 明るい背景の上の枠線ボタン：最初から見えるように淡い地と濃い線 */
.rn-on-light .rn-btn--ghost { background: rgba(255,253,249,.72); border-color: var(--c-clay-dark); color: var(--c-clay-dark) !important; }
.rn-on-light .rn-btn--ghost:hover { background: var(--c-clay-dark); color: #fff !important; }

/* カートボタン：アイコン・個数・金額を詰めて1つのまとまりに */
.rn-header .ec-cartNavi { min-width: 0 !important; display: inline-flex !important; align-items: center; gap: 8px; padding: 8px 16px !important; }
.rn-header .ec-cartNavi .ec-cartNavi__icon { position: relative; font-size: 18px; }
.rn-header .ec-cartNavi .ec-cartNavi__badge { position: absolute; top: -8px; right: -10px; min-width: 16px; height: 16px; line-height: 16px; padding: 0 4px;
  font-size: 10px; border-radius: 8px; background: var(--c-lotus) !important; color: #fff !important; font-family: var(--f-latin) !important; }
.rn-header .ec-cartNavi .ec-cartNavi__label { margin-left: 6px; }
.rn-header .ec-cartNavi .ec-cartNavi__price { font-family: var(--f-latin) !important; font-size: 14px; letter-spacing: .04em; }
/* スマホ：すりガラスは使わない（中の下部の帯が画面に固定されなくなるため） */
@media (max-width: 767px) {
  html.rn-scrolled :is(#page_homepage, .rn-journey-page) .ec-layoutRole__header, .rn-scrolled :is(#page_homepage, .rn-journey-page) .ec-layoutRole__header { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: rgba(36,29,23,.94) !important; }
  html.rn-scrolled body:not(#page_homepage):not(.rn-journey-page) .rn-header { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: var(--c-flesh); }
  .rn-header .ec-cartNavi { padding: 6px 12px 0 !important; border: 0 !important; }
}
/* カートの個数：読みやすい太めの数字と濃い丸 */
.rn-header .ec-cartNavi .ec-cartNavi__badge { font-family: -apple-system, "Helvetica Neue", Arial, sans-serif !important; font-weight: 700; font-size: 11px;
  background: #a8566e !important; box-shadow: 0 0 0 2px rgba(36,29,23,.35); letter-spacing: 0; }
.rn-header .ec-cartNavi .ec-cartNavi__badge { left: auto !important; right: -12px !important; top: -9px !important; width: auto !important;
  box-sizing: border-box; text-align: center; padding: 0 5px !important; min-width: 17px; height: 17px; line-height: 17px; border-radius: 9px; }
.rn-header .ec-cartNavi .ec-cartNavi__label { margin-left: 14px; }

/* 最初の画面のれんこんの写真：右側に、土へ溶けるように */
.rn-hero__photo { position: absolute; top: 0; right: 0; bottom: 0; width: 62%; background-size: cover; background-position: 58% 52%;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 42%), linear-gradient(to bottom, transparent 0%, #000 18%, #000 80%, transparent 100%);
  -webkit-mask-composite: source-in; mask-image: linear-gradient(to right, transparent 0%, #000 42%), linear-gradient(to bottom, transparent 0%, #000 18%, #000 80%, transparent 100%);
  mask-composite: intersect; opacity: 0; transform: scale(1.06); transition: opacity 2.4s ease .3s, transform 6s cubic-bezier(.2,.6,.2,1) .3s; }
body.rn-loaded .rn-hero__photo { opacity: .78; transform: scale(1); }
.rn-frame__note { position: absolute; left: 10px; bottom: -26px; font-size: 11px; color: rgba(239,228,207,.75) !important; }

/* スマホのヘッダーと下部の帯（2026-11-04 崩れの修正） */
@media (max-width: 767px) {
  .rn-header__nav { display: none !important; }                 /* 文字のメニューは隠す（≡ と下部の帯で足りる） */
  .ec-headerNaviRole { padding-bottom: 0 !important; }
  .rn-header { padding: 8px 12px !important; min-height: 0; }
  .rn-header .ec-headerLogo img, .rn-scrolled .rn-header .ec-headerLogo img { height: 38px; }
  .rn-header .ec-headerNaviRole__right { padding: 6px 4px calc(6px + env(safe-area-inset-bottom)) !important; }
  .rn-header .ec-headerNaviRole__right .ec-headerNav { flex-wrap: nowrap !important; justify-content: space-around; width: 100%; }
  .rn-header .ec-headerNaviRole__right .ec-headerNav .ec-headerNav__item { flex: 1 1 0; min-width: 0; text-align: center; }
  .rn-header .ec-headerNaviRole__right .ec-headerNav__item a { display: flex !important; flex-direction: column; align-items: center; gap: 2px; }
  .rn-header .ec-headerNaviRole__right .ec-headerNav__itemIcon { font-size: 16px !important; margin: 0 !important; }
  .rn-header .ec-headerNaviRole__right .ec-headerNav__itemLink { font-size: 9px !important; letter-spacing: 0 !important; white-space: nowrap; padding: 0 !important; margin: 0 !important; }
  .rn-header .ec-headerRole__cart { flex: 0 0 auto; margin: 0 6px 0 0 !important; }
  .rn-campaign__cond { font-size: 13px; }
  .rn-campaign__cond b { font-size: 32px; }
  .ec-blockTopBtn { width: 44px !important; height: 44px !important; bottom: 74px !important; }
}
.rn-nowrap { white-space: nowrap; }

/* スマホの引き出し */
.ec-drawerRole { background: #2a221b !important; }
.ec-drawerRole, .ec-drawerRole * { color: #efe4cf !important; }
.rn-drawer-nav { display: grid; gap: 4px; padding: 24px 20px 8px; }
.rn-drawer-nav .rn-en { margin: 0 0 8px; }
.rn-drawer-nav a { font-family: var(--f-mincho) !important; font-size: 15px; letter-spacing: .15em; padding: 12px 0; border-bottom: 1px solid rgba(230,207,156,.2); text-decoration: none; }

/* 最初の画面：れんこんの断面の写真を全面に（右に断面、左に文字） */
.rn-scene--hero { padding: 0; align-items: stretch; }
.rn-hero__photo { position: absolute; inset: 0; z-index: 0; opacity: 0; transform: scale(1.05); transition: opacity 2.2s ease .2s, transform 7s cubic-bezier(.2,.6,.2,1) .2s; }
.rn-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; display: block; }
.rn-hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,15,11,.55) 0%, rgba(20,15,11,.15) 45%, rgba(20,15,11,0) 70%), linear-gradient(0deg, rgba(20,15,11,.45), transparent 30%); }
body.rn-loaded .rn-hero__photo, .rn-reveal-off .rn-hero__photo { opacity: 1; transform: scale(1); }
.rn-hero__inner { position: relative; z-index: 1; width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 6vw; box-sizing: border-box;
  display: flex; align-items: center; gap: 4vw; min-height: 100svh; }
.rn-hero__copy { font-size: clamp(26px, 3vw, 40px); }
.rn-hero__en { font-size: clamp(40px, 5.4vw, 84px); }
.rn-hero__note { position: absolute; right: 24px; bottom: 18px; z-index: 1; font-size: 11px; color: rgba(239,228,207,.7) !important; margin: 0; }
@media (max-width: 767px) {
  .rn-hero__photo img { object-position: 50% 100%; }
  .rn-hero__photo::after { background: linear-gradient(180deg, rgba(20,15,11,.35) 0%, rgba(20,15,11,0) 55%); }
  .rn-hero__inner { flex-direction: row; align-items: flex-start; padding: 110px 24px 0; gap: 18px; }
  .rn-hero__copy { font-size: 24px; }
  .rn-hero__en { font-size: 36px; }
  .rn-hero__note { right: 12px; bottom: 76px; }
}

/* 最初の画面：背景を抜いた断面を、土の上に浮かべてゆっくり回す（写真の四角い境目を出さない） */
.rn-hero__photo--cutout { inset: auto; top: 50%; right: 8vw; left: auto; width: min(38vw, 520px); aspect-ratio: 465 / 443; transform: translateY(-50%) scale(.94); }
.rn-hero__photo--cutout::after { display: none; }
.rn-hero__photo--cutout img { object-fit: contain; filter: drop-shadow(0 30px 40px rgba(0,0,0,.55)) drop-shadow(0 0 30px rgba(230,200,150,.18)); animation: rn-float 9s ease-in-out infinite; }
body.rn-loaded .rn-hero__photo--cutout, .rn-reveal-off .rn-hero__photo--cutout { opacity: 1; transform: translateY(-50%) scale(1); }
@keyframes rn-float { 0%,100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-14px) rotate(4deg); } }
@media (max-width: 767px) {
  .rn-hero__photo--cutout { top: auto; bottom: 110px; right: 50%; width: 70vw; transform: translateX(50%) scale(.94); }
  body.rn-loaded .rn-hero__photo--cutout, .rn-reveal-off .rn-hero__photo--cutout { transform: translateX(50%) scale(1); }
}
@media (prefers-reduced-motion: reduce) { .rn-hero__photo--cutout img { animation: none; } }
@media (max-width: 767px) { .rn-hero__note { right: auto; left: 14px; bottom: 74px; } .rn-scroll { display: none; } }

/* =========================================================
   トップ以外のページ：同じ世界観の「静かな版」
   土の質感の背景（固定）＋ページ頭の帯＋生成りの紙
   ========================================================= */
body:not(#page_homepage):not(.rn-journey-page) { background: #2a221b url("../img/texture/soil.jpg") center / cover fixed; }
body:not(#page_homepage):not(.rn-journey-page) .ec-layoutRole, body:not(#page_homepage):not(.rn-journey-page) .ec-layoutRole__contents { background: transparent; }
body:not(#page_homepage):not(.rn-journey-page) .ec-layoutRole__contents { max-width: none; }
body:not(#page_homepage):not(.rn-journey-page) .ec-layoutRole__main { max-width: 1180px; margin: 0 auto var(--space-7); padding: 0 24px; box-sizing: border-box; }
.rn-paper, body:not(#page_homepage):not(.rn-journey-page) .ec-layoutRole__main > .ec-role, body:not(#page_homepage):not(.rn-journey-page) .ec-layoutRole__main > div:not(.rn-page-band):not(.rn-paper):not(.rn-scene):not(script),
body:not(#page_homepage):not(.rn-journey-page) .ec-layoutRole__main > form {
  background: rgba(251,248,241,.97); padding: var(--space-6) clamp(16px, 4vw, 56px); box-shadow: 0 30px 60px -40px rgba(0,0,0,.6); }
.rn-paper { position: relative; }
.rn-paper::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--c-clay), var(--c-lotus), var(--c-paddy)); opacity: .5; }
.rn-page-band { background: transparent !important; padding: calc(var(--space-8) + 40px) 8vw var(--space-6); }
.rn-page-band .rn-en { font-size: clamp(48px, 7vw, 104px); }
.rn-page-band, .rn-page-band * { color: #f7f1e6 !important; }
body:not(#page_homepage):not(.rn-journey-page) .ec-layoutRole__footer { margin-top: 0; }

/* 商品一覧 */
.rn-paper .ec-shelfGrid__item { padding-bottom: var(--space-5); }
.rn-paper .ec-shelfGrid__item-image img { aspect-ratio: 1 / 1; object-fit: cover; border: 1px solid var(--c-line); }
.rn-paper .ec-shelfGrid__item p { font-family: var(--f-mincho) !important; }
.rn-paper .ec-searchnavRole__topicpath a { color: var(--c-clay-dark) !important; }
.rn-paper .price02-default { font-family: var(--f-latin) !important; font-size: 20px; letter-spacing: .03em; }
.rn-paper .ec-select select, .rn-paper .ec-numberInput input, .rn-paper select { border-radius: var(--radius); border-color: var(--c-line); background: #fff; }
/* 商品詳細 */
.rn-paper .ec-productRole__title h2, .rn-paper .ec-productRole__title .ec-headingTitle { font-size: 26px; letter-spacing: .1em; }
.rn-paper .ec-productRole__price { color: var(--c-ink) !important; }
.rn-paper .ec-productRole__price .ec-price__price { font-family: var(--f-latin) !important; font-size: 34px; }
.rn-product-info { display: grid; grid-template-columns: 8em 1fr; gap: 12px 20px; margin: var(--space-6) 0 0; padding: var(--space-5) 0 0; border-top: 1px solid var(--c-line); font-size: 14px; line-height: 1.9; }
.rn-product-info dt { font-family: var(--f-mincho) !important; color: var(--c-clay-dark) !important; letter-spacing: .1em; }
.rn-product-info dd { margin: 0; }
@media (max-width: 767px) {
  .rn-page-band { padding: 96px 20px var(--space-5); }
  body:not(#page_homepage):not(.rn-journey-page) .ec-layoutRole__main { padding: 0 10px; }
  .rn-paper { padding: var(--space-5) 14px; }
  .rn-product-info { grid-template-columns: 1fr; gap: 4px; }
  .rn-product-info dd { margin-bottom: 10px; }
}
html:has(> body:not(#page_homepage):not(.rn-journey-page)) { background: #2a221b; }
/* EC-CUBE 標準ボタン：お気に入り・戻る等（濃い灰色をやめ、枠線ボタンに） */
.ec-blockBtn--cancel, .ec-inlineBtn--cancel, .ec-blockBtn, .ec-inlineBtn, .ec-blockBtn--favorite, #favorite {
  background: transparent !important; border: 1px solid var(--c-clay-dark) !important; color: var(--c-clay-dark) !important; border-radius: var(--radius) !important; letter-spacing: .12em; }
.ec-blockBtn--cancel:hover, .ec-inlineBtn--cancel:hover, .ec-blockBtn:hover, .ec-inlineBtn:hover { background: var(--c-clay-dark) !important; color: #fff !important; }
.rn-paper .ec-productRole__btn .ec-blockBtn--action { max-width: 360px; }
.rn-paper .ec-color-red, .rn-paper .ec-productRole__btn p[style*="red"], .rn-paper .ec-productRole__btn .ec-color-red { color: var(--c-clay-dark) !important; font-size: 12px; }
.rn-guest-note { margin: 6px 0 0; max-width: 360px; text-align: right; color: var(--c-clay-dark) !important; }

/* cart & shopping（見た目のみ。フォーム・ボタンの動きは変えない） */
body:not(#page_homepage):not(.rn-journey-page) .ec-pageHeader { display: none; }      /* 帯に置き換えたため、標準の見出しは隠す */
.ec-progress .ec-progress__number { background: var(--c-line) !important; color: var(--c-ink) !important; font-family: var(--f-latin) !important; }
.ec-progress .is-complete .ec-progress__number { background: var(--c-clay) !important; color: #fff !important; }
.ec-progress .is-complete .ec-progress__label { color: var(--c-clay-dark) !important; }
.ec-cartRow, .ec-cartHeader { border-color: var(--c-line) !important; }
.ec-cartHeader__label { background: var(--c-flesh-2) !important; color: var(--c-ink) !important; font-family: var(--f-mincho) !important; }
.ec-cartRole__totalAmount, .ec-totalBox__paymentTotal .ec-totalBox__price, .ec-totalBox__price { font-family: "Noto Serif JP", serif !important; }
.ec-totalBox { background: var(--c-flesh-2) !important; border: 1px solid var(--c-line); }
.ec-rectHeading h2, .ec-heading, .ec-off1Grid h2, .ec-headingTitle { font-family: var(--f-mincho) !important; border-color: var(--c-line) !important; letter-spacing: .1em; }
.ec-rectHeading { border-top-color: var(--c-clay) !important; }
.ec-input input, .ec-select select, .ec-halfInput input, .ec-zipInput input, .ec-telInput input, .ec-birth select, .ec-numberInput input, textarea {
  border-radius: var(--radius) !important; border-color: #d8cfbf !important; background: #fff !important; }
.ec-input input:focus, .ec-select select:focus, textarea:focus { border-color: var(--c-clay) !important; box-shadow: 0 0 0 2px rgba(124,107,87,.15) !important; }
.ec-required { background: var(--c-lotus) !important; color: #fff !important; padding: 1px 6px; }
.ec-cartCompleteRole .ec-reportHeading h2 { font-family: var(--f-mincho) !important; letter-spacing: .15em; }

.rn-band__ja--h { font-family: var(--f-mincho) !important; font-size: clamp(20px, 2.4vw, 30px); letter-spacing: .2em; margin: 0; align-self: flex-end; }
.ec-layoutRole__main > .ec-role:not(:has(> :not(.ec-pageHeader))) { display: none !important; }
.ec-cartRole__totalAmount, .ec-cartRole__totalText .ec-color-accent, .ec-color-accent { color: var(--c-clay-dark) !important; }

/* =========================================================
   2026-11-04 西田さん：日本語を主役に（英字は副題）、最初の画面は線画の断面を右側に
   ========================================================= */
.rn-en { font-size: clamp(26px, 3vw, 44px) !important; letter-spacing: .06em; }
.rn-vertical { font-size: clamp(30px, 3.8vw, 54px); }
.rn-page-band .rn-en { font-size: clamp(26px, 3vw, 44px) !important; }
.rn-hero__copy { font-size: clamp(40px, 5.2vw, 76px) !important; letter-spacing: .32em; line-height: 1.9; }
.rn-hero__brand { font-family: var(--f-mincho) !important; font-size: clamp(18px, 1.8vw, 24px); letter-spacing: .5em; margin: 0 0 var(--space-4); }
.rn-hero__en { font-size: clamp(18px, 1.6vw, 22px) !important; letter-spacing: .18em; margin-bottom: var(--space-6); }
.rn-hero__en small { margin-bottom: 8px; }
.rn-hero__inner { align-items: center; gap: 5vw; }
.rn-hero__section--right { left: auto; right: 6vw; top: 50%; width: min(42vw, 560px); transform: translateY(-50%); opacity: .5; color: #e6cf9c; }
.rn-hero__section--right .rn-section-svg { stroke-width: .6; }
@media (max-width: 767px) {
  .rn-en { font-size: 22px !important; }
  .rn-vertical { font-size: 28px; }
  .rn-hero__copy { font-size: 36px !important; }
  .rn-hero__en { font-size: 15px !important; }
  .rn-hero__section--right { right: -18vw; top: auto; bottom: 90px; width: 86vw; transform: none; opacity: .35; }
  .rn-hero__inner { padding-top: 96px; }
}

/* 物語ページ（佐々木農産について等）：流れ・お客様の声 */
.rn-flow .rn-section__inner, .rn-voices .rn-section__inner { width: 100%; }
.rn-flow__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 6vw; margin-bottom: var(--space-7); }
.rn-flow__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; counter-reset: none; }
.rn-flow__item .rn-frame img { aspect-ratio: 1 / 1; object-fit: cover; }
.rn-flow__no { font-family: var(--f-latin) !important; font-size: 28px; color: #d9c08f !important; margin: var(--space-4) 0 0; }
.rn-flow__title { font-family: var(--f-mincho) !important; font-size: 19px; letter-spacing: .15em; margin: 4px 0 var(--space-2); }
.rn-flow__body { font-size: 13px; line-height: 2; margin: 0; }
.rn-voices__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.rn-voice { margin: 0; padding: var(--space-5) var(--space-5) var(--space-4); background: rgba(255,253,249,.78); border: 1px solid rgba(201,132,154,.25); backdrop-filter: blur(6px); }
.rn-voice__text { font-size: 14px; line-height: 2.1; margin: 0 0 var(--space-3); }
.rn-voice__name { font-style: normal; font-family: var(--f-mincho) !important; font-size: 13px; letter-spacing: .15em; color: var(--c-clay-dark) !important; }
.rn-voices__note { margin-top: var(--space-4); text-align: right; }
.rn-greeting__text .rn-scene__body { max-width: 34em; }
@media (max-width: 767px) {
  .rn-flow__head { flex-direction: column-reverse; align-items: flex-start; }
  .rn-flow__list { grid-template-columns: 1fr 1fr; gap: 18px; }
  .rn-voices__list { grid-template-columns: 1fr; }
}

/* 業務用 */
.rn-biz-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.rn-biz-card { position: relative; padding: var(--space-5); border: 1px solid rgba(230,207,156,.35); background: rgba(20,24,16,.28); overflow: hidden; }
.rn-biz-card__mark { position: absolute; right: -24px; top: -24px; width: 96px; height: 96px; color: #d9c08f; opacity: .22; }
.rn-biz-card__mark .rn-section-svg { width: 100%; height: 100%; stroke-width: 1.2; }
.rn-biz-card__title { font-family: var(--f-mincho) !important; font-size: 18px; letter-spacing: .12em; margin: 0 0 var(--space-3); }
.rn-biz-card__body { font-size: 13px; line-height: 2; margin: 0; }
.rn-biz-reasons { grid-template-columns: repeat(3, 1fr); }
.rn-biz-table { width: 100%; border-collapse: collapse; font-size: 14px; background: rgba(20,24,16,.28); }
.rn-biz-table th, .rn-biz-table td { border-bottom: 1px solid rgba(230,207,156,.3); padding: 16px 14px; text-align: left; }
.rn-biz-table th { font-family: var(--f-mincho) !important; font-weight: 500; letter-spacing: .12em; color: #d9c08f !important; }
.rn-biz-note { margin-top: var(--space-4); color: rgba(239,228,207,.8) !important; }
.rn-biz-cta { margin-top: var(--space-6); text-align: center; }
@media (max-width: 767px) {
  .rn-biz-cards { grid-template-columns: 1fr; }
  .rn-biz-reasons { grid-template-columns: 1fr; }
  .rn-biz-table { font-size: 12px; } .rn-biz-table th, .rn-biz-table td { padding: 10px 6px; }
}
.rn-biz-reasons .rn-flow__item, .rn-flow__item:not(:has(.rn-frame)) { background: rgba(20,24,16,.5); padding: var(--space-4) var(--space-5) var(--space-5); backdrop-filter: blur(3px); }

/* スマホ下部の帯：5項目を幅いっぱいに均等（カートも文字付きで同じ形に） */
@media (max-width: 767px) {
  .rn-header .ec-headerNaviRole__right { display: flex !important; justify-content: stretch !important; align-items: flex-end; width: 100% !important; box-sizing: border-box; }
  .rn-header .ec-headerNaviRole__right > .ec-headerNaviRole__nav { flex: 4 1 0; order: 1; }
  .rn-header .ec-headerNaviRole__right > .ec-headerRole__cart { flex: 1 1 0; order: 2 !important; margin: 0 !important; display: flex; justify-content: center; }
  .rn-header .ec-headerNaviRole__right .ec-headerNav { display: flex; width: 100%; }
  .rn-header .ec-headerNaviRole__right .ec-headerNav .ec-headerNav__item { flex: 1 1 0; }
  .rn-header .ec-cartNavi { padding: 0 !important; border: 0 !important; background: transparent !important; display: flex !important; flex-direction: column; align-items: center; gap: 2px; min-width: 0 !important; }
  .rn-header .ec-cartNavi .ec-cartNavi__icon { font-size: 16px; }
  .rn-header .ec-cartNavi .ec-cartNavi__label { margin: 0 !important; }
  .rn-header .ec-cartNavi .ec-cartNavi__price { display: none !important; }
  .rn-header .ec-cartNavi::after { content: "カート"; font-size: 9px; line-height: 1.2; white-space: nowrap; }
  .rn-header .ec-cartNavi .ec-cartNavi__badge { top: -6px !important; right: -12px !important; }
}

/* 最初の画面：コピーを上部メニューから離す */
.rn-hero__inner { padding-top: 130px !important; padding-bottom: 60px; }
@media (max-width: 767px) { .rn-hero__inner { padding-top: 100px !important; } }
/* 2026-11-04 西田さん：PC のコピーを一段小さく、線画も小さく */
@media (min-width: 768px) {
  .rn-hero__copy { font-size: clamp(32px, 3.4vw, 50px) !important; }
  .rn-hero__section--right { width: min(26vw, 360px) !important; right: 9vw !important; }
}
@media (max-width: 767px) { .rn-hero__section--right { width: 60vw !important; right: -8vw !important; } }

/* 最初の画面が蓮田の写真のときの文字の読みやすさ */
.rn-scene--hero[data-bg="farm"] .rn-hero__inner { text-shadow: 0 2px 18px rgba(0,0,0,.45); }

.rn-lineup__lead { margin: var(--space-4) auto 0; max-width: 32em; font-size: 14px; line-height: 2; }

/* =========================================================
   下層の「読み物型」（佐々木農産について・業務用）：曽我農園の about を参考に
   生成りの紙・余白で区切る・2カラム交互・中央寄せの短文・情報表だけ細い罫線。縦書き・WebGL は使わない
   ========================================================= */
html:has(> body.rn-read-page) { background: var(--c-flesh) !important; }
body.rn-read-page { background: var(--c-flesh) url("../img/texture/blossom.jpg") center top / 100% auto no-repeat !important; }
body.rn-read-page.rn-tone-business { background: var(--c-flesh) !important; }
body.rn-read-page .ec-layoutRole__main { max-width: none; padding: 0; margin: 0; }
.rn-read { max-width: 1080px; margin: 0 auto; padding: 0 24px var(--space-8); color: var(--c-ink); }
.rn-read h1, .rn-read h2, .rn-read h3 { font-family: var(--f-mincho) !important; font-weight: 500; letter-spacing: .14em; color: var(--c-ink); }
.rn-read p { line-height: 2.1; }
.rn-read-en, .rn-read-hero__en { font-family: var(--f-latin) !important; font-size: 12px; letter-spacing: .4em; color: var(--c-accent) !important; margin: 0 0 var(--space-3); }
.rn-read-hero { text-align: center; padding: calc(var(--space-8) + 40px) 0 var(--space-7); }
.rn-read-hero h1 { font-size: clamp(30px, 4vw, 50px); margin: 0 0 var(--space-4); }
.rn-read-hero__lead { font-size: 15px; margin: 0 auto var(--space-7); }
.rn-read-hero__photo { margin: 0 auto; width: min(520px, 86%); position: relative; }
.rn-read-hero__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.rn-read-hero__photo--wide { width: min(880px, 100%); }
.rn-read-hero__photo--wide img { aspect-ratio: 16 / 9; }
.rn-read-hero__photo figcaption { position: absolute; right: 8px; bottom: -22px; }
.rn-read-sec { padding: var(--space-8) 0 0; }
.rn-read-center { text-align: center; max-width: 40em; margin: 0 auto var(--space-7); }
.rn-read-center h2 { font-size: clamp(24px, 2.8vw, 34px); margin: 0 0 var(--space-5); }
.rn-read-2col { display: grid; grid-template-columns: 1fr 1.2fr; gap: var(--space-7); align-items: start; }
.rn-read-2col h2 { font-size: clamp(24px, 2.8vw, 36px); line-height: 1.7; margin: 0; }
.rn-read-wide { margin: var(--space-7) 0 0; }
.rn-read-wide img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; display: block; }
.rn-read-alt { display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--space-7); align-items: center; margin-bottom: var(--space-7); }
.rn-read-alt--rev .rn-read-alt__photo { order: 2; }
.rn-read-alt__photo { margin: 0; }
.rn-read-alt__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.rn-read-alt__photo--cutout img { object-fit: contain; background: var(--c-flesh-2); padding: 8%; box-sizing: border-box; }
.rn-read-alt__text h3 { font-size: 24px; margin: 0 0 var(--space-4); }
.rn-read-no { font-family: var(--f-latin) !important; font-size: 34px; color: var(--c-accent) !important; margin: 0; line-height: 1.2; }
.rn-read-greeting .rn-read-center p { text-align: left; }
.rn-read-movie { position: relative; max-width: 880px; margin: 0 auto; aspect-ratio: 16 / 9; }
.rn-read-movie iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rn-read-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.rn-read-steps img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; margin-bottom: var(--space-3); }
.rn-read-steps h3 { font-size: 18px; margin: 4px 0 var(--space-2); }
.rn-read-steps p { font-size: 13px; line-height: 2; margin: 0; }
.rn-read .rn-voice { background: #fff; border-color: var(--c-line); backdrop-filter: none; }
.rn-profile { width: 100%; border-collapse: collapse; font-size: 14px; }
.rn-profile th, .rn-profile td { border-bottom: 1px solid var(--c-line); padding: 14px 10px; text-align: left; vertical-align: top; color: var(--c-ink) !important; background: transparent; }
.rn-profile th { width: 7em; font-family: var(--f-mincho) !important; font-weight: 500; color: var(--c-clay-dark) !important; letter-spacing: .1em; }
.rn-read-map { margin-top: var(--space-8); aspect-ratio: 21 / 9; }
.rn-read-map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(.4) sepia(.15); }
.rn-read-cta { padding-top: var(--space-8); }
.rn-read-cta__mark { display: block; width: 56px; height: 56px; margin: 0 auto var(--space-4); color: var(--c-accent); }
.rn-read-cta__mark .rn-section-svg { width: 100%; height: 100%; stroke-width: 1.4; }
.rn-read .rn-biz-cards { grid-template-columns: repeat(4, 1fr); }
.rn-read .rn-biz-card { background: #fff; border: 1px solid var(--c-line); padding: 0 0 var(--space-4); }
.rn-read .rn-biz-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; margin-bottom: var(--space-4); }
.rn-read .rn-biz-card__title, .rn-read .rn-biz-card__body { padding: 0 var(--space-4); color: var(--c-ink) !important; }
.rn-read .rn-biz-table { background: transparent; }
.rn-read .rn-biz-table th { color: var(--c-clay-dark) !important; }
.rn-read .rn-biz-note { color: var(--c-ink-2) !important; text-align: center; }
@media (max-width: 767px) {
  .rn-read { padding: 0 18px var(--space-7); }
  .rn-read-hero { padding-top: 110px; }
  .rn-read-2col, .rn-read-alt { grid-template-columns: 1fr; gap: var(--space-5); }
  .rn-read-alt--rev .rn-read-alt__photo { order: 0; }
  .rn-read-steps, .rn-read .rn-biz-cards { grid-template-columns: 1fr 1fr; gap: 16px; }
  .rn-read-wide img, .rn-read-map { aspect-ratio: 4 / 3; }
}

/* ご利用ガイド */
.rn-guide { max-width: 860px; margin: 0 auto; }
.rn-guide__toc { display: flex; flex-wrap: wrap; gap: 8px 20px; padding-bottom: var(--space-5); margin-bottom: var(--space-5); border-bottom: 1px solid var(--c-line); font-size: 13px; }
.rn-guide__toc a { color: var(--c-clay-dark) !important; text-decoration: none; letter-spacing: .08em; }
.rn-guide section { padding: var(--space-5) 0; border-bottom: 1px solid var(--c-line); scroll-margin-top: 90px; }
.rn-guide section:last-child { border-bottom: 0; }
.rn-guide h2 { font-family: var(--f-mincho) !important; font-size: 22px; letter-spacing: .14em; margin: 0 0 var(--space-4); }
.rn-guide p, .rn-guide li { font-size: 14px; line-height: 2.1; }
.rn-guide ul { padding-left: 1.2em; margin: 0; }
.rn-guide__steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; counter-reset: g; }
.rn-guide__steps li { position: relative; padding: var(--space-4); background: var(--c-flesh-2); font-size: 13px; line-height: 1.9; counter-increment: g; }
.rn-guide__steps li::before { content: counter(g, decimal-leading-zero); display: block; font-family: var(--f-latin) !important; font-size: 26px; color: var(--c-clay) !important; }
.rn-guide__steps b { display: block; font-family: var(--f-mincho) !important; font-weight: 500; font-size: 16px; margin-bottom: 4px; }
.rn-guide__point { margin-top: var(--space-3); padding: 12px 16px; border-left: 3px solid var(--c-lotus); background: var(--c-lotus-pale); }
@media (max-width: 767px) { .rn-guide__steps { grid-template-columns: 1fr 1fr; } }

/* =========================================================
   トップ v5：最初の画面の下は、曽我農園に寄せた明るい紙の誌面
   ========================================================= */
.rn-light { position: relative; z-index: 1; background: var(--c-flesh); padding: var(--space-8) 24px 0; color: var(--c-ink); }
.rn-light, .rn-light * { color: var(--c-ink); }
.rn-light:last-of-type { padding-bottom: var(--space-8); }
.rn-light__inner { max-width: 1080px; margin: 0 auto; }
.rn-center { text-align: center; }
.rn-light-en { font-family: var(--f-latin) !important; font-size: 12px; letter-spacing: .4em; color: var(--c-clay) !important; margin: 0 0 var(--space-2); }
.rn-light-h { font-family: var(--f-mincho) !important; font-weight: 500; font-size: clamp(22px, 2.6vw, 32px); letter-spacing: .14em; line-height: 1.7; margin: 0 0 var(--space-5); }
.rn-light-head { margin-bottom: var(--space-6); }
.rn-light-head--row { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.rn-light p { line-height: 2.1; }
.rn-link { font-family: var(--f-mincho) !important; font-size: 14px; letter-spacing: .12em; color: var(--c-clay-dark) !important; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.rn-link::after { content: " →"; }
/* ブランド紹介 */
.rn-intro .rn-light__inner { max-width: 680px; }
.rn-intro__mark { display: block; width: 44px; height: 44px; margin: 0 auto var(--space-4); color: var(--c-clay); opacity: .7; }
.rn-intro__mark .rn-section-svg { width: 100%; height: 100%; stroke-width: 1.4; }
/* お知らせ */
.rn-light.rn-info .rn-light__inner { max-width: 820px; }
.rn-light .rn-campaign { display: block; text-align: center; padding: var(--space-5); margin-bottom: var(--space-5); border: 1px solid var(--c-line) !important; background: #fff !important; text-decoration: none; }
.rn-light .rn-campaign__tag { display: inline-block; font-size: 11px; letter-spacing: .3em; padding: 2px 10px; border: 1px solid var(--c-lotus); color: var(--c-lotus) !important; margin-bottom: var(--space-3); }
.rn-light .rn-campaign__text { display: block; font-family: var(--f-mincho) !important; font-size: 16px; letter-spacing: .1em; }
.rn-light .rn-campaign__text b { font-family: var(--f-latin) !important; font-weight: 500; font-size: 30px; margin: 0 4px; }
.rn-light .rn-campaign__text em { font-style: normal; font-size: 24px; letter-spacing: .3em; margin-left: .6em; color: var(--c-clay-dark) !important; }
.rn-light .rn-campaign__note { display: block; font-size: 12px; color: var(--c-ink-2) !important; margin-top: 6px; }
.rn-light .ec-newsRole { padding: 0; background: transparent; }
.rn-light .ec-newsRole__news { border: 0; padding: 0; }
.rn-light .ec-newsRole__newsItem { border-bottom: 1px solid var(--c-line); padding: 16px 0; }
.rn-light .ec-newsRole__newsDate { font-family: var(--f-latin) !important; letter-spacing: .1em; color: var(--c-clay) !important; }
.rn-light .ec-newsRole__newsCloseBtn { background: transparent !important; border: 1px solid var(--c-line); color: var(--c-clay-dark) !important; }
.rn-light #news_readmore { background: transparent !important; border: 1px solid var(--c-clay) !important; color: var(--c-clay-dark) !important; }
/* 特集 */
.rn-featured__card { display: block; max-width: 460px; margin: 0 auto var(--space-5); padding: var(--space-6) var(--space-6) var(--space-5); background: #f2eee6; text-decoration: none; }
.rn-featured__img img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.rn-featured__en { display: block; font-family: var(--f-latin) !important; font-size: 13px; letter-spacing: .3em; color: var(--c-clay) !important; margin-top: var(--space-4); }
.rn-featured__name { display: block; font-family: var(--f-mincho) !important; font-size: 22px; letter-spacing: .12em; margin-top: 4px; }
.rn-featured__price { display: block; font-family: var(--f-latin) !important; font-size: 22px; margin-top: 4px; }
.rn-featured__price small { font-size: 11px; color: var(--c-ink-2) !important; }
/* 商品の並び（3列） */
.rn-grid__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.rn-grid .rn-card { background: #fff; }
/* カテゴリのバナー（2×2） */
.rn-banners__list { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.rn-banner { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; text-decoration: none; }
.rn-banner img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s ease; }
.rn-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20,15,11,.55), rgba(20,15,11,.05) 60%); }
.rn-banner:hover img { transform: scale(1.04); }
.rn-banner__text { position: absolute; left: 24px; bottom: 20px; z-index: 1; font-family: var(--f-mincho) !important; font-size: 24px; letter-spacing: .16em; color: #f7f1e6 !important; }
.rn-banner__text small { display: block; font-family: var(--f-latin) !important; font-size: 11px; letter-spacing: .35em; color: #f7f1e6 !important; opacity: .85; }
.rn-banner__text em { display: block; font-style: normal; font-size: 11px; letter-spacing: .1em; color: #f7f1e6 !important; opacity: .85; }
.rn-banner__note { position: absolute; right: 10px; bottom: 8px; z-index: 1; font-size: 10px; color: rgba(247,241,230,.8) !important; }
/* 読みもの（レシピ） */
.rn-light.rn-stories .rn-recipe__grid { grid-template-columns: repeat(4, 1fr); }
.rn-light .rn-frame { border-color: var(--c-line); }
.rn-light .rn-frame::before { border-color: rgba(124,107,87,.15); }
@media (max-width: 767px) {
  .rn-light { padding: var(--space-7) 18px 0; }
  .rn-light-head--row { flex-direction: column; align-items: flex-start; }
  .rn-grid__list { grid-template-columns: 1fr 1fr; gap: 14px; }
  .rn-banners__list { grid-template-columns: 1fr; }
  .rn-featured__card { padding: var(--space-5); }
  .rn-light .rn-campaign__text em { display: block; margin: 4px 0 0; }
  .rn-light.rn-stories .rn-recipe__grid { grid-template-columns: 1fr 1fr; }
}

/* ===== 2026-11-05 本番反映後の修正（西田さんの確認から） ===== */
/* スマホ下部のカート：枠全体（文字の部分も）を押せるように */
@media (max-width: 767px) {
  .rn-header .ec-headerRole__cart { cursor: pointer; align-self: stretch; }
  .rn-header .ec-headerRole__cart .ec-cartNaviWrap { width: 100%; height: 100%; display: flex; justify-content: center; align-items: flex-end; cursor: pointer; }
  .rn-header .ec-headerRole__cart .ec-cartNavi { width: 100%; cursor: pointer; }
}
/* ドロワーを開いている間は、固定ヘッダーを×ボタンやメニューより下に */
body.have_curtain .ec-layoutRole__header { z-index: 0 !important; }
body.have_curtain .ec-headerNavSP { visibility: hidden; }
.ec-drawerRoleClose.is_active { z-index: 10001 !important; }
/* ドロワー：新しいメニューだけを出す（旧メニューは重複するので隠す。ログイン等は下の帯にある） */
.ec-drawerRole .ec-headerLinkArea { display: none !important; }
/* 商品一覧：トップの商品カードと同じ白いカード */
.rn-paper .ec-shelfGrid__item { background: #fff; border: 1px solid var(--c-line); padding: 14px 14px 18px !important; box-sizing: border-box; }
.rn-paper .ec-shelfGrid__item a p:not(.ec-shelfGrid__item-image) { font-family: var(--f-mincho) !important; font-size: 16px; margin: 10px 0 4px; color: var(--c-ink); }
.rn-paper .ec-shelfGrid__item .ec-blockBtn--action { width: 100%; max-width: 100%; box-sizing: border-box; white-space: nowrap; overflow: hidden; }
@media (max-width: 767px) {
  .rn-paper .ec-shelfGrid { gap: 0; }
  .rn-paper .ec-shelfGrid__item { padding: 10px 10px 14px !important; }
  .rn-paper .ec-shelfGrid__item .ec-blockBtn--action { font-size: 13px !important; letter-spacing: .04em !important; padding: 0 4px !important; height: 44px; line-height: 44px; }
  .rn-paper .ec-shelfGrid__item .ec-numberInput { display: flex; align-items: center; gap: 8px; }
  .rn-paper .ec-shelfGrid__item .ec-numberInput input { width: 100% !important; min-width: 0; }
}
/* お知らせの矢印：丸の中央に */
.rn-info .ec-newsRole__newsCloseBtn { display: inline-flex !important; align-items: center; justify-content: center; width: 32px !important; height: 32px !important; padding: 0 !important; line-height: 1 !important; box-sizing: border-box; }
.rn-info .ec-newsRole__newsCloseBtn i { display: block; line-height: 1 !important; margin: 0 !important; position: static !important; transform: none; }
.rn-info .ec-newsRole__newsItem.is_active .ec-newsRole__newsCloseBtn i { transform: rotate(180deg); }
/* ===== カート・ご注文手続き・ご注文内容確認（2026-11-05 西田さん：スマホで見づらい・文字の大きさがばらばら） ===== */
:is(#page_cart, body[id^="page_shopping"]) { --rn-co-text: 15px; }
:is(#page_cart, body[id^="page_shopping"]) .ec-cartRow__unitPrice, :is(#page_cart, body[id^="page_shopping"]) .ec-cartRow__subtotal,
:is(#page_cart, body[id^="page_shopping"]) .ec-cartRole__totalText strong, :is(#page_cart, body[id^="page_shopping"]) .ec-imageGrid__content p { font-family: var(--f-gothic) !important; }
:is(#page_cart, body[id^="page_shopping"]) .ec-rectHeading { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--c-line) !important; padding: 0 0 8px !important; margin: 0 0 14px !important; }
:is(#page_cart, body[id^="page_shopping"]) .ec-rectHeading h2 { background: transparent !important; font-size: 18px !important; padding: 0 !important; color: var(--c-ink) !important; }
:is(#page_cart, body[id^="page_shopping"]) .ec-orderRole, :is(#page_cart, body[id^="page_shopping"]) .ec-orderRole * { font-size: inherit; }
:is(#page_cart, body[id^="page_shopping"]) .ec-orderRole__detail, :is(#page_cart, body[id^="page_shopping"]) .ec-orderAccount__account,
:is(#page_cart, body[id^="page_shopping"]) .ec-orderDelivery__address, :is(#page_cart, body[id^="page_shopping"]) .ec-orderDelivery__actions,
:is(#page_cart, body[id^="page_shopping"]) .ec-orderPayment, :is(#page_cart, body[id^="page_shopping"]) .ec-imageGrid__content p { font-size: var(--rn-co-text) !important; line-height: 1.8; color: var(--c-ink) !important; }
:is(#page_cart, body[id^="page_shopping"]) .ec-orderAccount, :is(#page_cart, body[id^="page_shopping"]) .ec-orderDelivery,
:is(#page_cart, body[id^="page_shopping"]) .ec-orderPayment, :is(#page_cart, body[id^="page_shopping"]) .ec-orderConfirm { margin-bottom: 28px !important; }
:is(#page_cart, body[id^="page_shopping"]) .ec-cartRow__name, :is(#page_cart, body[id^="page_shopping"]) .ec-cartRow__summary a { color: var(--c-ink) !important; font-family: var(--f-mincho) !important; }
:is(#page_cart, body[id^="page_shopping"]) .ec-totalBox { font-size: var(--rn-co-text); }
:is(#page_cart, body[id^="page_shopping"]) .ec-totalBox__paymentTotal .ec-totalBox__price, :is(#page_cart, body[id^="page_shopping"]) .ec-totalBox__paymentTotal .ec-totalBox__taxLabel { color: var(--c-ink) !important; }
@media (max-width: 767px) {
  /* 帯：低い横書きに（中身まで早く届くように） */
  :is(#page_cart, body[id^="page_shopping"]) .rn-page-band { padding: 26px 20px 22px !important; }
  :is(#page_cart, body[id^="page_shopping"]) .rn-page-band .rn-band__inner { flex-direction: row !important; align-items: flex-end; justify-content: space-between; gap: 12px; }
  :is(#page_cart, body[id^="page_shopping"]) .rn-page-band h1 { writing-mode: horizontal-tb !important; font-size: 20px !important; letter-spacing: .12em !important; margin: 0 !important; height: auto !important; }
  :is(#page_cart, body[id^="page_shopping"]) .rn-page-band h1 .rn-ch { display: inline !important; }
  :is(#page_cart, body[id^="page_shopping"]) .rn-page-band .rn-en { font-size: 22px !important; margin: 0 !important; }
  :is(#page_cart, body[id^="page_shopping"]) .rn-page-band .rn-en small { font-size: 9px !important; }
  /* 紙の箱：進み具合と中身の間の余白を詰める */
  :is(#page_cart, body[id^="page_shopping"]) .ec-layoutRole__main > .ec-cartRole:first-of-type { padding-bottom: 8px !important; }
  body[id^="page_shopping"] .ec-layoutRole__main > form { padding-top: 16px !important; margin-top: -1px; }
  :is(#page_cart, body[id^="page_shopping"]) .ec-layoutRole__main > * { padding-left: 16px !important; padding-right: 16px !important; }
  /* 進み具合：1行に収める */
  .ec-progress .ec-progress__label { font-size: 10px !important; letter-spacing: 0 !important; white-space: nowrap; line-height: 1.6; }
  .ec-progress .ec-progress__number { width: 26px !important; height: 26px !important; line-height: 26px !important; font-size: 12px !important; }
  /* カートの商品の行：写真｜名前と金額、その下に数量、右上に削除 */
  #page_cart .ec-cartRow { display: grid !important; grid-template-columns: 76px 1fr; grid-template-areas: "img sum" "amt amt"; gap: 10px 12px; position: relative; padding: 16px 30px 16px 0 !important; }
  #page_cart .ec-cartRow > * { display: block !important; width: auto !important; padding: 0 !important; border: 0 !important; }
  #page_cart .ec-cartRow__delColumn { position: absolute !important; top: 14px; right: 0; width: 24px !important; }
  #page_cart .ec-cartRow__delColumn .ec-icon img, #page_cart .ec-cartRow__delColumn img { width: 16px !important; height: 16px !important; }
  #page_cart .ec-cartRow__contentColumn { display: contents !important; }
  #page_cart .ec-cartRow__img { grid-area: img; width: 76px !important; margin: 0 !important; }
  #page_cart .ec-cartRow__img img { width: 76px; height: 76px; object-fit: cover; border: 1px solid var(--c-line); }
  #page_cart .ec-cartRow__summary { grid-area: sum; margin: 0 !important; font-size: 14px; line-height: 1.7; }
  #page_cart .ec-cartRow__name { font-size: 16px !important; margin-bottom: 4px; }
  #page_cart .ec-cartRow__unitPrice, #page_cart .ec-cartRow__sutbtotal, #page_cart .ec-cartRow__subtotal { font-size: 14px !important; display: inline-block; margin-right: 10px; }
  #page_cart .ec-cartRow__amountColumn { grid-area: amt; display: flex !important; align-items: center; justify-content: space-between; text-align: left !important; }
  #page_cart .ec-cartRow__amount { font-size: 14px !important; margin: 0 !important; }
  #page_cart .ec-cartRow__amountUpDown { margin: 0 !important; display: flex; gap: 10px; }
  #page_cart .ec-cartRow > .ec-cartRow__subtotalColumn { display: none !important; }
  #page_cart .ec-cartRow__name { letter-spacing: .04em !important; }
  #page_cart .ec-cartRow__sutbtotalSP { font-size: 14px !important; }
  #page_cart .ec-cartRole__totalText { font-size: 14px !important; }
  #page_cart .ec-cartRole__total { font-size: 16px !important; display: flex; justify-content: flex-end; align-items: baseline; gap: 12px; }
  #page_cart .ec-cartRole__totalAmount { font-size: 22px !important; }
  /* ご注文手続き・確認：商品の行と各欄 */
  body[id^="page_shopping"] .ec-orderDelivery__item .ec-imageGrid { display: grid !important; grid-template-columns: 64px 1fr; gap: 12px; align-items: start; }
  body[id^="page_shopping"] .ec-orderDelivery__item .ec-imageGrid__img { width: 64px !important; padding: 0 !important; }
  body[id^="page_shopping"] .ec-orderDelivery__item .ec-imageGrid__img img { width: 64px; height: 64px; object-fit: cover; }
  body[id^="page_shopping"] .ec-orderDelivery__item .ec-imageGrid__content { padding: 0 !important; width: auto !important; }
  body[id^="page_shopping"] .ec-orderDelivery__title { font-size: 16px !important; }
  body[id^="page_shopping"] .ec-orderDelivery__actions .ec-selects, body[id^="page_shopping"] .ec-orderDelivery__actions .ec-select { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: 10px; }
  body[id^="page_shopping"] .ec-orderDelivery__actions label { font-size: 14px !important; margin: 0 !important; min-width: 5em; }
  body[id^="page_shopping"] .ec-orderDelivery__actions select { font-size: 15px !important; max-width: 100%; }
  body[id^="page_shopping"] .ec-radio > div { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
  body[id^="page_shopping"] .ec-radio label { display: inline; font-size: 15px !important; margin: 0 !important; }
  body[id^="page_shopping"] .ec-totalBox { padding: 18px 16px !important; }
  body[id^="page_shopping"] .ec-totalBox__spec { font-size: 14px !important; }
  body[id^="page_shopping"] .ec-totalBox__total, body[id^="page_shopping"] .ec-totalBox__paymentTotal { font-size: 15px !important; }
  body[id^="page_shopping"] .ec-totalBox__price { font-size: 20px !important; }
  body[id^="page_shopping"] .ec-totalBox__taxRate { font-size: 11px !important; }
}
@media (max-width: 767px) { .rn-paper .ec-shelfGrid__item .ec-numberInput span { white-space: nowrap; font-size: 13px; } }
/* 贈答商品の詳細：贈り物のご案内（2026-11-05） */
.rn-gift-howto { margin: 18px 0; padding: 16px 18px; border: 1px solid rgba(201,132,154,.45); background: #fbf4f5; }
.rn-gift-howto__title { font-family: var(--f-mincho) !important; font-size: 15px; letter-spacing: .12em; color: #8a4f62; margin: 0 0 8px; }
.rn-gift-howto ul { margin: 0; padding-left: 1.2em; }
.rn-gift-howto li { font-size: 13px; line-height: 1.8; color: var(--c-ink); }
.rn-gift__soldout { display: inline-block; margin: 8px 0 4px; padding: 6px 14px; border: 1px solid rgba(201,132,154,.6); color: #8a4f62 !important; font-size: 14px; }
/* ===== 贈答ページ：格式のある黒・金・生成り（2026-11-05 西田さん：ポストカード・ローディングと同じ世界観） ===== */
body.rn-gift-page { background: #1a1410 !important; }
body.rn-gift-page .ec-layoutRole, body.rn-gift-page .ec-layoutRole__contents, body.rn-gift-page .ec-layoutRole__main { background: transparent !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
.rn-gift-formal { --gf-bg: #1a1410; --gf-bg2: #221a14; --gf-gold: #d9c08f; --gf-cream: #efe4cf; --gf-sub: #b8a27a; --gf-line: rgba(217,192,143,.32); --gf-lotus: #c9849a;
  background: var(--gf-bg); color: var(--gf-cream); font-family: var(--f-gothic); overflow: hidden; }
.rn-gift-formal * { color: inherit; }
.rn-gift-formal h1, .rn-gift-formal h2, .rn-gift-formal h3 { font-family: var(--f-mincho) !important; font-weight: 500; color: var(--gf-cream) !important; margin: 0; }
.rn-gf-en { font-family: var(--f-latin) !important; font-size: 12px; letter-spacing: .5em; color: var(--gf-sub) !important; margin: 0 0 14px; }
.rn-gf-mark { display: block; width: 72px; height: 72px; margin: 0 auto 26px; color: var(--gf-gold); }
.rn-gf-mark .rn-section-svg { width: 100%; height: 100%; stroke-width: 1.3; }
.rn-gf-mark .rn-section-svg * { stroke-dasharray: none; stroke-dashoffset: 0; }
.rn-gf-mark--s { width: 48px; height: 48px; }
/* 最初の画面 */
.rn-gf-hero { position: relative; min-height: min(86vh, 760px); display: flex; align-items: center; justify-content: center; text-align: center;
  background: radial-gradient(ellipse at 50% 40%, #2c231b 0%, var(--gf-bg) 65%); padding: 120px 24px 80px; }
.rn-gf-frame { position: absolute; inset: 96px 40px 40px; border: 1px solid var(--gf-line); pointer-events: none; }
.rn-gf-title { font-size: clamp(30px, 4vw, 48px); letter-spacing: .3em; padding-left: .3em; line-height: 1.6; }
.rn-gf-lead { font-size: 15px; line-height: 2.1; letter-spacing: .1em; color: var(--gf-cream) !important; margin: 28px 0 0; }
.rn-gf-brand { font-family: var(--f-mincho) !important; font-size: 13px; letter-spacing: .4em; color: var(--gf-sub) !important; margin: 40px 0 0; }
/* セクション共通 */
.rn-gf-sec { max-width: 1040px; margin: 0 auto; padding: 110px 32px; border-top: 1px solid var(--gf-line); }
.rn-gf-head { text-align: center; margin-bottom: 56px; }
.rn-gf-head h2 { font-size: clamp(24px, 2.6vw, 32px); letter-spacing: .3em; padding-left: .3em; }
.rn-gf-note { text-align: center; font-size: 14px; color: var(--gf-sub) !important; margin-top: 30px; }
/* 商品 */
.rn-gf-product { display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: center; }
.rn-gf-product__photo { margin: 0; border: 1px solid var(--gf-line); padding: 14px; background: var(--gf-bg2); }
.rn-gf-product__photo img { width: 100%; display: block; aspect-ratio: 1 / 1; object-fit: cover; }
.rn-gift-formal .rn-gift__name { font-size: 26px; letter-spacing: .14em; line-height: 1.6; }
.rn-gf-product__desc { font-size: 15px; line-height: 2; margin: 18px 0 0; }
.rn-gift-formal .rn-gift__price { font-family: var(--f-gothic) !important; font-size: 30px; letter-spacing: .04em; color: var(--gf-gold) !important; margin: 22px 0 6px; }
.rn-gift-formal .rn-gift__price small { font-size: 13px; color: var(--gf-sub) !important; margin-left: 4px; }
.rn-gift-formal .rn-gift__soldout { border-color: rgba(201,132,154,.6) !important; color: #e3b7c4 !important; background: transparent; font-size: 13px; line-height: 1.8; }
.rn-gf-btn { display: inline-block; min-width: 260px; text-align: center; padding: 16px 28px; margin-top: 14px; border: 1px solid var(--gf-gold); color: var(--gf-gold) !important;
  font-family: var(--f-mincho) !important; font-size: 15px; letter-spacing: .3em; text-decoration: none !important; transition: background .3s ease, color .3s ease; }
.rn-gf-btn:hover { background: var(--gf-gold); color: var(--gf-bg) !important; opacity: 1; }
/* お届けするもの */
.rn-gf-contents__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.rn-gf-item { text-align: center; padding: 0 8px; }
.rn-gf-item__no { display: block; font-family: var(--f-mincho) !important; font-size: 20px; color: var(--gf-gold) !important; margin-bottom: 14px; }
.rn-gf-item h3 { font-size: 19px; letter-spacing: .18em; margin-bottom: 14px; }
.rn-gf-item p { font-size: 14px; line-height: 2; margin: 0; }
.rn-gf-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 64px; }
.rn-gf-gallery img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border: 1px solid var(--gf-line); }
/* 表書き */
.rn-gf-omote__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.rn-gf-omote__list li { border: 1px solid var(--gf-line); padding: 26px 8px 20px; text-align: center; background: var(--gf-bg2); }
.rn-gf-omote__list span { display: block; font-family: var(--f-mincho) !important; font-size: 22px; letter-spacing: .2em; writing-mode: vertical-rl; margin: 0 auto 14px; height: 4.6em; color: var(--gf-cream) !important; }
.rn-gf-omote__list small { font-size: 12px; color: var(--gf-sub) !important; }
/* ご案内 */
.rn-gf-guide__list { margin: 0 auto; max-width: 820px; }
.rn-gf-guide__list > div { display: grid; grid-template-columns: 9em 1fr; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--gf-line); }
.rn-gf-guide__list dt { font-family: var(--f-mincho) !important; letter-spacing: .15em; color: var(--gf-gold) !important; font-size: 15px; }
.rn-gf-guide__list dd { margin: 0; font-size: 14px; line-height: 2; }
/* 締め */
.rn-gf-cta { text-align: center; padding-bottom: 140px; }
.rn-gf-cta h2 { font-size: clamp(22px, 2.4vw, 30px); letter-spacing: .3em; padding-left: .3em; margin-bottom: 28px; }
@media (max-width: 767px) {
  .rn-gf-hero { padding: 110px 20px 70px; min-height: 80vh; }
  .rn-gf-frame { inset: 84px 14px 18px; }
  .rn-gf-title { letter-spacing: .18em; padding-left: .18em; }
  .rn-gf-lead { font-size: 14px; }
  .rn-gf-sec { padding: 72px 20px; }
  .rn-gf-product { grid-template-columns: 1fr; gap: 32px; }
  .rn-gf-contents__list { grid-template-columns: 1fr; gap: 36px; }
  .rn-gf-gallery { grid-template-columns: 1fr; }
  .rn-gf-omote__list { grid-template-columns: repeat(3, 1fr); }
  .rn-gf-guide__list > div { grid-template-columns: 1fr; gap: 6px; }
  .rn-gf-btn { min-width: 0; width: 100%; box-sizing: border-box; }
}
/* 下層ページ共通の「紙」の箱を、贈答ページでは使わない */
body.rn-gift-page .ec-layoutRole__main > .rn-gift-formal { background: #1a1410 !important; padding: 0 !important; box-shadow: none !important; max-width: none !important; }
@media (max-width: 767px) { .rn-gf-title { font-size: 24px !important; letter-spacing: .12em !important; padding-left: .12em !important; white-space: nowrap; } }
/* 贈答ページ：熨斗とポストカードの紹介（画像＋文章） */
.rn-gf-feature { display: grid; grid-template-columns: 1.15fr 1fr; gap: 56px; align-items: center; margin-top: 90px; }
.rn-gf-feature--rev .rn-gf-feature__img { order: 2; }
.rn-gf-feature__img { margin: 0; border: 1px solid var(--gf-line); padding: 10px; background: var(--gf-bg2); }
.rn-gf-feature__img img { width: 100%; display: block; }
.rn-gf-feature__text h3 { font-size: 22px; letter-spacing: .2em; margin-bottom: 18px; }
.rn-gf-feature__text p { font-size: 14px; line-height: 2.1; margin: 0 0 12px; }
.rn-gf-feature__text .rn-gf-en { margin-bottom: 10px; }
.rn-gf-feature__note { font-size: 12px !important; color: var(--gf-sub) !important; }
@media (max-width: 767px) {
  .rn-gf-feature { grid-template-columns: 1fr; gap: 24px; margin-top: 64px; }
  .rn-gf-feature--rev .rn-gf-feature__img { order: 0; }
}
/* 贈答ページの WebGL 背景（rn-gift-gl.js）。動いているあいだだけ本文の背景を透明にして、背景の演出を見せる */
canvas.rn-gift-gl { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 0; pointer-events: none; display: block; }
.rn-gift-formal { position: relative; z-index: 1; }
body.rn-gift-page .ec-layoutRole__footer { position: relative; z-index: 2; }
html.rn-gf-gl-on body.rn-gift-page .ec-layoutRole__main > .rn-gift-formal, html.rn-gf-gl-on .rn-gf-hero { background: transparent !important; }
html.rn-gf-gl-on .rn-gf-product__photo, html.rn-gf-gl-on .rn-gf-feature__img, html.rn-gf-gl-on .rn-gf-omote__list li { background: rgba(26,20,16,.72); backdrop-filter: blur(2px); }
/* 2026-11-05：.ec-layoutRole の overflow:hidden がヘッダーの sticky を止めていた。はみ出しは clip で隠す（スクロールの箱を作らない） */
.ec-layoutRole { overflow: visible !important; overflow-x: clip !important; }
.rn-campaign__per { display: block; font-size: 13px; letter-spacing: .15em; margin-bottom: 6px; opacity: .85; }
@media (max-width: 767px) { .rn-light .rn-campaign { padding: 20px 16px !important; } }
