/* of-reskin.css — 着せ替え追加スタイル（ベースCSSは無改変） */
:root { --of-main:#235f63; --of-dark:#222; --of-washi:#f4f2ec; }
/* ベースCSSはcontent-box前提のため、of-系コンポーネントはborder-boxに統一 */
[class^="of-"], [class*=" of-"], [class^="of-"] *, [class*=" of-"] * { box-sizing:border-box; }

/* KV: PC背景をクライアント写真に差し替え（index.cssのkey1-5を上書き） */
/* PC幅のみ背景画像を読む（SPは .slide .img img の実画像を表示するため、原寸webpの二重ロードを避ける） */
@media (min-width:768px){
#top #key .slide .img1 { background-image:url(../img/of/images/convert/onefrozenjp2/20260603125758.jpg/image.webp)!important; }
#top #key .slide .img2 { background-image:url(../img/of/images/convert/onefrozenjp2/20260603125756.jpg/image.webp)!important; }
#top #key .slide .img3 { background-image:url(../img/of/images/convert/onefrozenjp2/20260603125757.jpg/image.webp)!important; }
#top #key .slide .img4 { background-image:url(../img/of/images/convert/onefrozenjp2/20260604095925.jpg/image.webp)!important; }
}
@media (max-width:767px){ #top #key .slide .img { background-image:none!important; } }
#top #key .slide .img { background-size:cover; background-position:center; }
@media (max-width:767px){ #top #key .slide .img img { width:100%; height:100vh; object-fit:cover; } }

/* KV下の大型瓶デコ(酒写真)は非表示（馬画像支給後に差し替え予定） */
#top #key .deco, .key-deco { display:none!important; }
/* SPの#sec1背景（酒注ぎ切り抜き写真 s1_deco_sp.png）を無効化 */
#top #sec1 { background-image:none!important; }

/* テキストロゴ */
.of-logo a { text-decoration:none; }
.of-logo .txt-vertical { writing-mode:vertical-rl; font-size:20px; letter-spacing:.28em; color:#fff;
  background:var(--of-dark); padding:18px 8px; display:inline-block; line-height:1.2; }
.of-sub .of-logo .txt-vertical { color:#fff; }

/* ECボタン（画像ボタン差し替え待ちのテキスト版） */
.of-ecbtn a { display:inline-block; background:var(--of-main); color:#fff; padding:10px 18px;
  font-family:"Shippori Mincho B1",serif; letter-spacing:.12em; text-decoration:none; }
.of-ecbtn a:hover { opacity:.8; }

/* 汎用ボタン */
.of-btn-basic { display:inline-block; border:1px solid var(--of-dark); color:var(--of-dark); padding:14px 44px;
  font-family:"Shippori Mincho B1",serif; letter-spacing:.2em; text-decoration:none; position:relative; transition:.3s; background:#fff; }
.of-btn-basic:hover { background:var(--of-dark); color:#fff; }
.of-btn-white { border-color:#fff; color:#fff; background:transparent; }
.of-btn-white:hover { background:#fff; color:var(--of-main); }

/* 3カード */
.of-grid3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px; max-width:1180px; margin:90px auto; padding:0 30px; }
.of-grid3 .of-card .img img { width:100%; aspect-ratio:3/2; object-fit:cover; display:block; }
.of-grid3 h3 { font-family:"Shippori Mincho B1",serif; font-size:20px; letter-spacing:.14em; margin:18px 0 10px; line-height:1.7; }
.of-grid3 p { font-size:14px; line-height:2; }
@media (max-width:767px){ .of-grid3 { grid-template-columns:1fr; gap:40px; margin:60px auto; } }

/* 商品帯（トップ） */
.of-lineup-band { background:var(--of-main); color:#fff; padding:80px 30px; text-align:center; }
.of-lineup-band h2 { font-size:30px; letter-spacing:.2em; margin-bottom:24px; }
.of-lineup-band .txt { max-width:760px; margin:0 auto 40px; line-height:2.2; font-size:14px; text-align:left; }
.of-prod-scroller { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; max-width:1100px; margin:0 auto 40px; list-style:none; padding:0; }
.of-prod-scroller a { color:#fff; text-decoration:none; display:block; }
.of-prod-scroller img { width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.of-prod-scroller span { display:block; margin-top:10px; font-size:13px; letter-spacing:.08em; font-family:"Shippori Mincho B1",serif; }
@media (max-width:767px){ .of-prod-scroller { grid-template-columns:repeat(2,minmax(0,1fr)); } .of-lineup-band { padding:60px 20px; } }

/* 2分割誘導 */
.of-duo { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:50px; max-width:1100px; margin:100px auto; padding:0 30px; }
.of-duo-item h3 { font-size:24px; letter-spacing:.16em; line-height:1.8; margin-bottom:18px; }
.of-duo-item p { font-size:14px; line-height:2.1; margin-bottom:24px; }
@media (max-width:767px){ .of-duo { grid-template-columns:1fr; gap:60px; margin:60px auto; } }

/* 会社概要帯（トップ） */
.of-company-band { background:var(--of-washi) url(../img/shared/dot_bg.jpg); padding:90px 30px; }
.of-company-inner { max-width:860px; margin:0 auto; text-align:center; }
.of-company-band h2 { font-size:28px; letter-spacing:.22em; margin-bottom:20px; }
.of-company-band .txt { font-size:14px; line-height:2.2; margin-bottom:36px; }

/* テーブル */
.of-table { width:100%; max-width:820px; margin:0 auto 40px; border-collapse:collapse; text-align:left; background:#fff; }
.of-table th,.of-table td { border:1px solid #ddd; padding:16px 20px; font-size:14px; line-height:1.9; vertical-align:top; }
.of-table th { width:180px; background:var(--of-washi); font-family:"Shippori Mincho B1",serif; letter-spacing:.1em; font-weight:500; }
.of-table a { color:var(--of-main); }
@media (max-width:767px){ .of-table th,.of-table td { display:block; width:auto; border-top:none; } .of-table tr:first-child th { border-top:1px solid #ddd; } }

/* 下層コンテンツ共通 */
.of-content { padding:90px 30px 120px; }
.of-article { max-width:860px; margin:0 auto; }
.of-article h2 { font-size:26px; letter-spacing:.18em; line-height:1.8; margin:70px 0 26px; }
.of-article h2:first-child { margin-top:0; }
.of-article .txt { font-size:15px; line-height:2.3; margin-bottom:20px; }
.of-list { margin:10px 0 30px; padding-left:1.4em; }
.of-list li { font-size:15px; line-height:2.2; }
@media (max-width:767px){ .of-content { padding:60px 20px 90px; } .of-article h2 { font-size:21px; margin:50px 0 20px; } }

/* 商品一覧グリッド */
.of-prod-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px 34px; max-width:1180px; margin:0 auto 90px; }
.of-prod-card a { text-decoration:none; color:var(--of-dark); display:block; }
.of-prod-card .img img { width:100%; aspect-ratio:1/1; object-fit:cover; display:block; transition:.4s; }
.of-prod-card a:hover .img img { opacity:.82; transform:scale(1.02); }
.of-prod-card h3 { font-family:"Shippori Mincho B1",serif; font-size:18px; letter-spacing:.12em; margin-top:16px; text-align:center; }
@media (max-width:767px){ .of-prod-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 16px; } .of-prod-card h3 { font-size:14px; } }

/* 商品詳細 */
.of-prod-detail { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:60px; max-width:1100px; margin:0 auto 70px; align-items:start; }
.of-gallery .img { margin-bottom:26px; }
.of-gallery img { width:100%; display:block; }
.of-prod-info { position:sticky; top:40px; }
.of-prod-info h2 { font-size:32px; letter-spacing:.16em; margin-bottom:22px; }
.of-prod-info .txt { font-size:14px; line-height:2.2; margin-bottom:30px; }
.of-prod-info .tel a { text-decoration:none; color:var(--of-dark); display:block; margin-bottom:22px; }
.of-prod-info .tel .fnt-shipporib1 { font-size:30px; letter-spacing:.1em; display:block; }
.of-prod-info .tel small { font-size:12px; color:#666; }
@media (max-width:767px){ .of-prod-detail { grid-template-columns:1fr; gap:36px; } .of-prod-info { position:static; } }

/* 前後ナビ */
.of-prevnext { display:flex; justify-content:center; gap:34px; flex-wrap:wrap; margin:60px auto 0; max-width:900px; }
.of-prevnext a { color:var(--of-dark); text-decoration:none; font-family:"Shippori Mincho B1",serif; letter-spacing:.1em; font-size:14px; border-bottom:1px solid var(--of-dark); padding-bottom:4px; }
.of-prevnext a:hover { opacity:.6; }

/* こだわり一覧 */
.of-feature-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:20px; max-width:1180px; margin:0 auto 90px; }
.of-feature-card a { text-decoration:none; color:var(--of-dark); display:block; }
.of-feature-card .img img { width:100%; aspect-ratio:3/4; object-fit:cover; display:block; }
.of-feature-card h3 { font-family:"Shippori Mincho B1",serif; text-align:center; font-size:16px; letter-spacing:.14em; margin-top:14px; }
.of-concept { max-width:860px; margin:0 auto; }
.of-concept h2 { font-size:26px; letter-spacing:.18em; margin:60px 0 22px; }
.of-concept .txt { font-size:15px; line-height:2.3; }
@media (max-width:767px){ .of-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* FAQ */
.of-faq { max-width:860px; margin:0 auto; }
.of-faq-item { border:1px solid #ddd; background:#fff; margin-bottom:16px; }
.of-faq-item summary { display:flex; align-items:flex-start; gap:16px; padding:20px 24px; cursor:pointer; list-style:none; }
.of-faq-item summary::-webkit-details-marker { display:none; }
.of-faq-item summary::after { content:"＋"; margin-left:auto; font-size:18px; color:var(--of-main); flex-shrink:0; }
.of-faq-item[open] summary::after { content:"−"; }
.of-faq-item .q { font-family:"Shippori Mincho B1",serif; color:var(--of-main); font-size:15px; flex-shrink:0; padding-top:2px; }
.of-faq-item h3 { font-size:15px; font-weight:500; line-height:1.9; letter-spacing:.04em; }
.of-faq-item .a { display:flex; gap:16px; padding:0 24px 22px; }
.of-faq-item .a .mark { font-family:"Shippori Mincho B1",serif; color:#b0413e; font-size:15px; flex-shrink:0; }
.of-faq-item .a p { font-size:14px; line-height:2.1; }

/* 商品LP: 業態リスト */
.of-shoplist { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 28px;
  max-width:760px; margin:0 auto 20px; padding:0; }
.of-shoplist li { background:#fff; border:1px solid #e2e0da; padding:14px 18px 14px 44px; position:relative;
  font-size:14.5px; letter-spacing:.06em; font-family:"Shippori Mincho B1",serif; }
.of-shoplist li::before { content:''; position:absolute; left:18px; top:50%; transform:translateY(-50%) rotate(45deg);
  width:7px; height:12px; border-right:2px solid var(--of-main); border-bottom:2px solid var(--of-main); }
@media (max-width:767px){ .of-shoplist { grid-template-columns:1fr; gap:10px; } }

/* 商品LP: 関連商品（正方形サムネ） */
.of-relnav--prod img { aspect-ratio:1/1; }
.of-relnav--prod span { font-size:13px; letter-spacing:.08em; padding:0 8px; text-align:center; }

/* 商品LP: セクション見出しをセンターに（.of-lp内限定） */
.of-lp .of-h { text-align:center; }
.of-lp .of-h .rule { margin-left:auto; margin-right:auto; }

/* CTA帯 */
.of-cta-band { text-align:center; background:var(--of-washi); padding:70px 30px; margin-top:80px; }
.of-cta-band h2 { font-size:24px; letter-spacing:.18em; line-height:1.9; margin-bottom:26px; }
@media (max-width:767px){ .of-cta-band { padding:56px 20px; } .of-cta-band h2 { font-size:19px; letter-spacing:.1em; } }
.of-cta-band .tel a { text-decoration:none; color:var(--of-dark); display:inline-block; margin-bottom:20px; }
.of-cta-band .tel .fnt-shipporib1 { font-size:34px; letter-spacing:.08em; display:block; }
.of-cta-band .tel small { font-size:12px; color:#666; }

/* マップ */
.of-map iframe { display:block; width:100%; }

/* メニュー展開中の背面スクロールロック（passive化の代替） */
body.navOpen { overflow:hidden !important; }

/* ============ 日本語改行制御 ============
   wbrの位置でだけ折る（keep-all）。anywhereは収まらない時の保険。 */
body { word-break:keep-all; overflow-wrap:anywhere; line-break:strict; }
.nb { white-space:nowrap; }
/* 縦書き要素は通常の折り返しに戻す（keep-allだと縦組みで語が伸びるため） */
.txt-vertical, .txt-vertical-pc, .of-logo .txt-vertical { word-break:normal; }

/* SP: 縦書きロゴはタイトルに被るため横書きチップ化 */
@media (max-width:767px){
  .of-logo { top:0 !important; left:0 !important; width:auto !important; height:auto !important; max-width:none !important; }
  .of-logo a { display:inline-block !important; width:auto !important; }
  .of-logo .txt-vertical {
    writing-mode:horizontal-tb !important; font-size:10.5px !important; letter-spacing:.18em !important;
    line-height:1 !important; padding:9px 13px !important; display:inline-block !important;
    white-space:nowrap !important; width:auto !important; height:auto !important; }
}

/* SP: SEO用h1はMVに被るためビジュアル非表示（DOMには残しSEO維持） */
@media (max-width:767px){
  #header h1.txt-vertical-pc, #top #key h1.txt-vertical-pc {
    position:absolute !important; width:1px !important; height:1px !important;
    margin:-1px; padding:0 !important; clip-path:inset(50%); overflow:hidden; white-space:nowrap; }
  html, body { overflow-x:hidden; }
}
html { scroll-behavior:smooth; }

/* 固定購入ボタン: 馬シルエット＋縦書きテキスト構成（瓶画像から置換） */
.of-btnfix a { display:flex; flex-direction:column; align-items:center; gap:14px;
  background:#1d2626; padding:20px 15px 24px; border-radius:44px; text-decoration:none;
  box-shadow:0 6px 18px rgba(0,0,0,.28); transition:.3s; }
.of-btnfix a:hover { background:var(--of-main); }
.of-btnfix .horse { width:44px; height:auto; display:block; }
.of-btnfix .txt-vertical { color:#fff; writing-mode:vertical-rl; letter-spacing:.22em; font-size:14px; }

/* ============ リッチ化コンポーネント ============ */
/* 装飾見出し（英字ラベル＋罫線） */
.of-h { margin:80px 0 40px; }
.of-h .en, .of-intro .en, .of-zig-row .en, .of-coming .en {
  display:block; color:var(--of-main); font-family:"Shippori Mincho B1",serif;
  font-size:12px; letter-spacing:.34em; margin-bottom:12px; }
.of-h h2 { font-size:26px; letter-spacing:.16em; line-height:1.8; }
.of-h .rule, .of-intro .rule, .of-zig-row .rule, .of-coming .rule {
  display:block; width:54px; height:1px; background:var(--of-main); margin:18px 0 0; }
.of-faq .of-h { max-width:860px; margin:70px auto 30px; }
.of-faq .of-h:first-child { margin-top:0; }

/* イントロ（センター） */
.of-intro { max-width:820px; margin:0 auto 100px; text-align:center; }
.of-intro h2 { font-size:30px; letter-spacing:.2em; line-height:1.9; }
.of-intro .rule { margin:24px auto 34px; }
.of-intro .txt { text-align:left; font-size:15px; line-height:2.4; margin-bottom:16px; }

/* 写真×テキスト交互 */
.of-zig { max-width:1120px; margin:0 auto; }
.of-zig-row { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:70px; align-items:center; margin-bottom:130px; }
.of-zig-row:last-child { margin-bottom:60px; }
.of-zig-row:nth-child(even) .img { order:2; }
.of-zig-row .img img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; box-shadow:14px 14px 0 rgba(35,95,99,.12); }
.of-zig-row:nth-child(even) .img img { box-shadow:-14px 14px 0 rgba(35,95,99,.12); }
.of-zig-row .body { position:relative; }
.of-zig-row .num { position:absolute; top:-58px; left:-8px; font-size:84px; line-height:1; color:rgba(35,95,99,.14); pointer-events:none; }
.of-zig-row h2 { font-size:25px; letter-spacing:.14em; line-height:1.9; position:relative; }
.of-zig-row .rule { margin:20px 0 26px; }
.of-zig-row .txt { font-size:14.5px; line-height:2.35; margin-bottom:14px; }
@media (max-width:767px){
  .of-intro { margin-bottom:70px; }
  .of-intro h2 { font-size:22px; }
  .of-zig-row { grid-template-columns:1fr; gap:30px; margin-bottom:80px; }
  .of-zig-row:nth-child(even) .img { order:0; }
  .of-zig-row .num { top:-44px; font-size:60px; }
  .of-zig-row h2 { font-size:20px; }
}

/* 番号カード */
.of-num-cards { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:26px; max-width:960px; margin:0 auto 40px; }
.of-num-card { background:#fff; border:1px solid #e2e0da; padding:34px 30px 30px; position:relative; }
.of-num-card .num { position:absolute; top:-16px; left:22px; background:var(--of-main); color:#fff; font-size:15px; letter-spacing:.1em; padding:4px 14px; }
.of-num-card h3 { font-family:"Shippori Mincho B1",serif; font-size:19px; letter-spacing:.14em; margin:10px 0 12px; }
.of-num-card p { font-size:14px; line-height:2.1; }
@media (max-width:767px){ .of-num-cards { grid-template-columns:1fr; gap:30px; } }

/* 帯写真＋キャプション */
.of-map-strip { position:relative; max-width:1120px; margin:0 auto 90px; }
.of-map-strip img { width:100%; height:340px; object-fit:cover; display:block; filter:brightness(.72); }
.of-map-strip .cap { position:absolute; left:6%; bottom:34px; color:#fff; }
.of-map-strip .cap .en { display:block; font-family:"Shippori Mincho B1",serif; letter-spacing:.34em; font-size:12px; margin-bottom:10px; }
.of-map-strip .cap p { font-family:"Shippori Mincho B1",serif; font-size:19px; letter-spacing:.14em; line-height:2; text-shadow:0 1px 8px rgba(0,0,0,.6); }
@media (max-width:767px){ .of-map-strip img { height:240px; } }

/* こだわり相互ナビ */
.of-relnav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; max-width:1120px; margin:90px auto 0; }
.of-relnav a { position:relative; display:block; text-decoration:none; }
.of-relnav img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; filter:brightness(.55); transition:.3s; }
.of-relnav a:hover img { filter:brightness(.75); }
.of-relnav span { position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:#fff; font-family:"Shippori Mincho B1",serif; letter-spacing:.2em; font-size:15px; text-shadow:0 1px 6px rgba(0,0,0,.7); }
@media (max-width:767px){ .of-relnav { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* ============ コラム（WP投稿連動） ============ */
.of-column-band { max-width:1120px; margin:100px auto; padding:0 30px; text-align:center; }
.of-column-band .of-h { margin:0 0 44px; }
.of-column-band .of-h .rule { margin:18px auto 0; }
.of-col-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-bottom:44px; text-align:left; }
.of-col-empty { grid-column:1/-1; text-align:center; font-size:14px; color:#777; letter-spacing:.1em; padding:30px 0; }
.of-col-card { background:#fff; border:1px solid #e2e0da; padding:12px; display:block; text-decoration:none; color:var(--of-dark); transition:.3s; }
.of-col-card:hover { box-shadow:0 10px 26px rgba(0,0,0,.1); transform:translateY(-3px); }
.of-col-card .thumb { overflow:hidden; }
.of-col-card .thumb img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; transition:.4s; }
.of-col-card:hover .thumb img { transform:scale(1.04); }
.of-col-card .body { padding:16px 8px 8px; }
.of-col-card .date { font-family:"Shippori Mincho B1",serif; color:var(--of-main); font-size:12px; letter-spacing:.18em; margin-bottom:10px; display:block; }
.of-col-card h3 { font-family:"Shippori Mincho B1",serif; font-size:14.5px; letter-spacing:.05em; line-height:1.75; font-weight:500;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.of-col-card .more { display:block; margin-top:14px; font-size:12px; letter-spacing:.22em; color:var(--of-main); font-family:"Shippori Mincho B1",serif; }
@media (max-width:767px){ .of-column-band { margin:70px auto; padding:0 20px; } .of-col-cards { grid-template-columns:1fr; gap:20px; } }

/* コラム一覧（全件グリッド） */
.of-col-grid { max-width:1120px; margin:0 auto; }
.of-col-grid .of-col-cards { margin-bottom:0; }

/* コラム記事ページ */
.of-single { max-width:820px; margin:0 auto; }
.of-single-head { text-align:center; margin-bottom:44px; }
.of-single-head .date { color:var(--of-main); font-size:13px; letter-spacing:.2em; margin-bottom:16px; }
.of-single-head h2 { font-size:28px; letter-spacing:.1em; line-height:1.9; }
.of-single-head .rule { display:block; width:54px; height:1px; background:var(--of-main); margin:24px auto 0; }
.of-single-hero { margin:0 0 44px; text-align:center; }
.of-single-hero a { display:inline-block; vertical-align:top; line-height:0; cursor:zoom-in; }
.of-single-hero img { display:block; width:auto; max-width:100%; height:auto; max-height:600px; margin:0 auto; box-shadow:12px 12px 0 rgba(35,95,99,.12); }
.of-single-zoom { display:none; }
.of-single-body { font-size:15px; line-height:2.3; }
.of-single-body p { margin-bottom:1.6em; }
.of-single-body h2 { font-family:"Shippori Mincho B1",serif; font-size:22px; letter-spacing:.12em; line-height:1.8;
  margin:2.4em 0 1em; padding-left:16px; border-left:3px solid var(--of-main); }
.of-single-body h3 { font-family:"Shippori Mincho B1",serif; font-size:18px; letter-spacing:.1em; margin:2em 0 .8em;
  padding-bottom:8px; border-bottom:1px solid #ddd; }
.of-single-body ul, .of-single-body ol { margin:0 0 1.6em 1.5em; }
.of-single-body li { margin-bottom:.5em; }
.of-single-body img { max-width:100%; height:auto; }
.of-single-body blockquote { border-left:3px solid #ccc; padding:4px 0 4px 18px; color:#666; margin:0 0 1.6em; }
.of-single-body a { color:var(--of-main); }
.of-single-body strong { background:linear-gradient(transparent 68%, rgba(35,95,99,.18) 68%); }
.of-single .of-prevnext { margin-top:70px; }
@media (max-width:767px){ .of-single-head h2 { font-size:21px; } .of-single-hero img { max-height:none; }
  .of-single-zoom { display:block; margin-top:12px; font-size:11px; letter-spacing:.08em; color:#8f8b7e; } }

/* コラム準備中 */
.of-coming { max-width:1000px; margin:0 auto; }
.of-coming-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; background:#fff; border:1px solid #e2e0da; }
.of-coming-card img { width:100%; height:100%; min-height:360px; object-fit:cover; display:block; }
.of-coming-card .body { padding:50px 48px; }
.of-coming-mark { font-size:34px; letter-spacing:.18em; color:var(--of-dark); }
.of-coming-card .txt { font-size:14px; line-height:2.3; margin:26px 0 30px; }
@media (max-width:767px){ .of-coming-card { grid-template-columns:1fr; } .of-coming-card img { min-height:200px; } .of-coming-card .body { padding:34px 24px; } }

/* 下層ヒーロー: 200vhスクロール演出前提のpaddingを通常高に（演出スクリプト非搭載のため） */
.of-sub #header .box { padding:50vh 3% 12vw !important; color:#fff; }
@media (max-width:767px){ .of-sub #header .box { padding:58vh 5% 22vw !important; } }

/* 協力会社バナー: 酒瓶写真をクライアント写真へ差し替え＋暗色オーバーレイで文字を確保 */
#bnr-fix a { background-image:linear-gradient(rgba(16,26,27,.62),rgba(16,26,27,.62)),url(../img/of/images/convert/onefrozenjp2/20260603125756.jpg/image_m.webp)!important;
  background-size:cover!important; background-position:center!important; color:#fff!important;
  text-shadow:0 1px 6px rgba(0,0,0,.6); }
#bnr-fix a span { color:#fff!important; }

/* ============ 可視性対策（全ページ共通） ============
   ベースは暗い写真前提の白文字デザイン。クライアント写真は白背景が多いため、
   ヒーロー写真に暗色スクリムを敷き、白文字の可読性をどの写真でも担保する */
.of-sub #header .bg-parallax { overflow:hidden; }
.of-sub #header .bg-parallax::after { content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(14,20,21,.66) 0%, rgba(14,20,21,.42) 55%, rgba(14,20,21,.30) 100%); }
#top #key .slide::after { content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(14,20,21,.42) 0%, rgba(14,20,21,.22) 45%, rgba(14,20,21,.48) 100%); }

/* ヒーロー上の白文字にシャドウを強化（ナビ縦文字・縦書きh1・キャッチ・リード） */
#header h1.txt-vertical-pc,
#header .right .nav li a.txt-vertical,
#header .box h2, #header .box .txt,
#top #key h1.txt-vertical-pc,
#top #key .right .nav li a.txt-vertical {
  text-shadow:0 0 6px rgba(0,0,0,.75), 0 1px 12px rgba(0,0,0,.55);
}
.of-sub #header .box h2, .of-sub #header .box .txt { color:#fff; }

/* ヒーロー左側の電話・ラベルは写真に乗らない位置だが、乗った場合に備え軽くシャドウ */
#header .left .tel a, #top #key .left .tel a { text-shadow:0 0 6px rgba(255,255,255,.9); }

/* 下層: 協力会社バナーはタイトルと重なるため、ビューポート左下の浮遊CTAへ */
.of-sub #bnr-fix { position:fixed !important; top:auto !important; bottom:24px !important; left:24px !important; z-index:60; }
.of-sub #bnr-fix a { box-shadow:0 4px 18px rgba(0,0,0,.35); }
.of-sub #bnr-fix { transform:scale(.82); transform-origin:left bottom; }

/* SPのKV: ランドスケープ写真でも高さを確保（正式なKV画像はクライアント支給後差し替え） */
@media (max-width:767px){
  #top #key { height:72vh; overflow:hidden; position:relative; }
  #top #key .slide, #top #key .slide .slick-list, #top #key .slide .slick-track,
  #top #key .slide .img, #top #key .slide .slick-slide, #top #key .slide .slick-slide > div { height:100% !important; }
  #top #key .slide .img img { width:100%; height:100% !important; object-fit:cover; }
}

/* 下層ナビ8項目の間隔調整 */
#header .right .nav li { margin-left:14px; }
#header .right .nav li a.txt-vertical { font-size:14px; letter-spacing:.18em; }

/* footer 公式アカウント導線 */
.of-sns { display:flex; justify-content:center; align-items:center; gap:14px 26px; flex-wrap:wrap; margin:4px 0 16px; padding:0; list-style:none; }
.of-sns li { list-style:none; }
.of-sns li::before { content:none; }
.of-sns a { color:rgba(255,255,255,.72); font-size:12px; letter-spacing:.08em; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.3); padding-bottom:2px; transition:color .3s, border-color .3s; }
.of-sns a:hover { color:#fff; border-color:rgba(255,255,255,.75); }
@media (max-width:767px){ .of-sns { gap:10px 18px; margin:2px 0 14px; } .of-sns a { font-size:11px; } }

/* 規約・ポリシー本文 */
.of-legal { max-width:900px; margin:0 auto; padding:0 24px; word-break:normal; overflow-wrap:anywhere; line-break:strict; }
.of-legal h2 { font-family:"Shippori Mincho B1",serif; font-size:20px; margin:52px 0 16px; padding-left:14px; border-left:3px solid var(--of-main); line-height:1.6; }
.of-legal > h2:first-child { margin-top:0; }
.of-legal p { font-size:14px; line-height:2; margin:0 0 12px; color:#333; }
.of-legal .of-table { margin-top:24px; }
@media (max-width:767px){
  .of-legal { padding:0 6vw; }
  .of-legal h2 { font-size:17px; margin:38px 0 12px; }
  .of-legal p { font-size:13.5px; line-height:1.95; }
}

/* footer nav wrap — 項目増加で語中折返しが出ないように */
#footer .nav { flex-wrap:wrap; row-gap:8px; }
#footer .nav li { flex:0 0 auto; }
#footer .nav li a { white-space:nowrap; }

/* of-inline-link — 本文中のリンクを判別できるように */
.of-intro .txt a, .of-num-card p a, .of-legal p a { color:var(--of-main); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.of-intro .txt a:hover, .of-num-card p a:hover, .of-legal p a:hover { opacity:.72; }
