@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@700&display=swap');
/*
CONTRAST RATIOS
--text #1c2b3a on white:       16.8:1 AAA
--text-sub #445566 on white:    7.7:1 AAA
white on overlay ~rgba(15,34,68,0.82): >7:1 AAA
#c8d8eb on --navy:             10.9:1 AAA
#0f2244 on white:                15.1:1 AAA
--text-sub on --bg-light:      11.2:1 AAA

WCAG 2.2 1.4.8 Visual Presentation (AAA) — 本文ブロックの作者スタイル
https://www.w3.org/WAI/WCAG22/Understanding/visual-presentation.html
- 行長: CJK おおよそ 40 字以内 → body max-width 40em
- 両端揃え禁止 → text-align: justify 未使用、main は start
- 段落内行間: 少なくとも 1.5 倍（space-and-a-half）→ line-height >= 1.5
- 段落間: 行間の少なくとも 1.5 倍 → margin 下を calc(1.5 * 1lh)（lh 非対応は rem 近似）
- 前景色・背景色: 利用者が選べる仕組み（ブラウザ・OS 等に委ねる）
- 200% 拡大で横スクロール不要: 相対単位・折り返し（overflow-wrap）
1.4.12 Text Spacing (AA): https://www.w3.org/WAI/WCAG22/Understanding/text-spacing.html
*/
*{box-sizing:border-box;margin:0;padding:0;}
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;padding:0.6rem 1.2rem;background:var(--navy);color:#fff;font-size:var(--font-body);font-weight:700;text-decoration:none;border-radius:2px;}
.skip-link:focus{left:1rem;top:1rem;outline:2px solid #fff;outline-offset:2px;}
:root{
  --navy:#0f2244;
  --navy-mid:#1a3560;
  --navy-light:#24487a;
  --accent:#c96a2a;
  --text:#1c2b3a;
  --text-sub:#445566;
  --bg-light:#f0f4f8;
  --border:#d4dde8;
  --border-light:#e8edf4;
  --muted-on-navy:#c8d8eb;
  /* タイポ: 特別な意図がない本文は同一。アイブロー・商品名のみ別階 */
  --font-body:1rem;
  --font-eyebrow:0.6875rem;
  --font-h2:1.25rem;
  --font-hero-product:2.2rem;
  /* 1.4.8: lh 非対応ブラウザ向け段落下マージン近似 = 1.5 × (font-size × line-height) */
  --para-gap-lead-185:2.775rem;
  --para-gap-lead-190:2.85rem;
  --para-gap-lead-180:2.7rem;
}
body{font-family:'Noto Sans JP',sans-serif;background:#fff;color:var(--text);font-size:100%;line-height:1.75;max-width:40em;margin:0 auto;}
main{text-align:start;overflow-wrap:break-word;}

/* ── HERO ── */
/* 固定 300px + 縦中央だと文言・ボタンがはみ出し overflow で上が欠ける。min-height で確保し上寄せ＋ safe-area */
.hero{position:relative;overflow:hidden;min-height:clamp(340px,58vmin,460px);}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block;filter:brightness(0.72);}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(105deg,rgba(15,34,68,0.86) 0%,rgba(15,34,68,0.7) 45%,rgba(15,34,68,0.28) 100%);}
.hero-fade{position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(to bottom,transparent,#fff);}
.hero-wm{position:absolute;bottom:0;right:0;width:80px;height:48px;background:linear-gradient(135deg,transparent 30%,rgba(15,34,68,0.92) 100%);}
.hero-content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-start;box-sizing:border-box;padding-top:max(2.25rem,calc(env(safe-area-inset-top,0px) + 1.25rem));padding-left:1.75rem;padding-right:1.75rem;padding-bottom:max(2.75rem,calc(env(safe-area-inset-bottom,0px) + 1.25rem));}
.hero-eyebrow{font-size:var(--font-eyebrow);letter-spacing:0.08em;color:var(--accent);font-weight:700;margin-bottom:0.8rem;line-height:1.5;}
.hero-product{font-family:'Noto Serif JP',serif;font-size:var(--font-hero-product);font-weight:700;color:#ffffff;line-height:1.5;margin-bottom:0.55rem;letter-spacing:0.02em;}
.hero-title{font-family:'Noto Serif JP',serif;font-size:var(--font-h2);font-weight:700;color:#fff;line-height:1.5;margin-bottom:0.75rem;}
.hero-sub{font-size:var(--font-body);color:var(--muted-on-navy);line-height:1.85;margin-bottom:var(--para-gap-lead-185);max-width:21.25em;}
@supports (width:1lh){
  .hero-sub{margin-bottom:calc(1.5 * 1lh);}
}
.hero-cta{display:flex;flex-direction:column;gap:0.65rem;align-items:flex-start;width:100%;}
.hero-cta .btn-primary,.hero-cta .btn-ghost{display:inline-block;width:100%;max-width:280px;box-sizing:border-box;}
.btn-primary{display:inline-block;background:#fff;color:var(--navy);border:1px solid rgba(255,255,255,0.9);font-weight:700;font-size:var(--font-body);padding:0.85rem 1.6rem;border-radius:3px;text-decoration:none;letter-spacing:0.03em;text-align:center;box-shadow:0 8px 20px rgba(10,24,48,0.16);}
.btn-disabled{cursor:not-allowed;opacity:0.78;}
.btn-ghost{display:inline-block;border:1px solid rgba(255,255,255,0.55);background:rgba(15,34,68,0.22);color:#fff;font-size:var(--font-body);padding:0.7rem 1.6rem;border-radius:3px;text-decoration:none;text-align:center;}

/* ── STRIPE ── */
.stripe{height:4px;background:linear-gradient(90deg,var(--navy) 0%,var(--navy-light) 60%,var(--accent) 100%);}

/* ── SECTION ── */
.section{padding:2.75rem 1.75rem;}
.section-tight-top{padding-top:0;}
.section-eyebrow{font-size:var(--font-eyebrow);letter-spacing:0.18em;text-transform:uppercase;color:var(--navy-light);font-weight:700;margin-bottom:0.35rem;}
.section-heading{font-family:'Noto Serif JP',serif;font-size:var(--font-h2);font-weight:700;color:var(--navy);line-height:1.5;margin-bottom:1.5rem;}
.lead-copy{font-size:var(--font-body);color:var(--text-sub);line-height:1.85;margin-bottom:var(--para-gap-lead-185);}
@supports (width:1lh){
  .lead-copy{margin-bottom:calc(1.5 * 1lh);}
}
.lead-copy:last-child{margin-bottom:0;}
.lead-copy-tight{margin-bottom:0;}
.lead-copy-link-top{margin-top:0.75rem;margin-bottom:0;}
.section ul,.section ol{padding-left:1.35rem;margin:0;}
.section ul li,.section ol li{margin-bottom:1rem;line-height:1.75;}
.section ul li:last-child,.section ol li:last-child{margin-bottom:0;}
.steps-list{padding-left:1.35rem;margin:0;}
.steps-list.steps-list-spaced{margin-bottom:1rem;}
.steps-list li{margin-bottom:1rem;line-height:1.75;}
.steps-list li:last-child{margin-bottom:0;}
.mt-16{margin-top:16px;}
.spec-note{display:block;font-size:var(--font-body);color:var(--text-sub);margin-top:0.35rem;line-height:1.65;}
.nvda-block{background:#f7f9fc;padding-top:3.25rem;padding-bottom:3rem;border-bottom:1px solid var(--border-light);}
.nvda-block .section-heading{margin-bottom:1rem;}
.nvda-block .lead-copy{line-height:1.9;margin-bottom:var(--para-gap-lead-190);}
@supports (width:1lh){
  .nvda-block .lead-copy{margin-bottom:calc(1.5 * 1lh);}
}
.nvda-block .lead-copy a{font-weight:700;color:var(--navy-light);text-decoration:underline;text-underline-offset:0.2em;}
.nvda-block .lead-copy a:hover{color:var(--navy);}
.nvda-block .lead-copy a:focus-visible{outline:2px solid var(--navy-light);outline-offset:3px;border-radius:2px;}

/* ── PERSONAS ── */
.persona-block{background:var(--bg-light);border-radius:4px;padding:1.5rem;margin-bottom:0;}
.persona-label{font-size:var(--font-eyebrow);letter-spacing:0.12em;color:var(--navy-light);text-transform:uppercase;font-weight:700;margin-bottom:1rem;}
.persona-list{display:flex;flex-direction:column;gap:2.75rem;}
.persona{display:flex;gap:0.85rem;align-items:flex-start;}
.persona-icon{width:36px;height:36px;border-radius:50%;background:var(--navy);flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.persona-text{font-size:var(--font-body);color:var(--text-sub);line-height:1.8;}
.persona-text strong{color:var(--text);display:block;font-size:var(--font-body);font-weight:700;margin-bottom:0.1rem;}

/* ── FEATURES ── */
.feature-list{display:flex;flex-direction:column;gap:0;}
.feature{padding:1.25rem 0;border-bottom:1px solid var(--border-light);display:flex;gap:1rem;align-items:flex-start;}
.feature:last-child{border-bottom:none;}
.feature-num{font-family:'Noto Serif JP',serif;font-size:var(--font-body);color:var(--text-sub);font-weight:700;flex-shrink:0;min-width:1.75rem;padding-top:2px;}
.feature-name{font-size:var(--font-body);font-weight:700;color:var(--navy);margin-bottom:0.3rem;}
.feature-desc{font-size:var(--font-body);color:var(--text-sub);line-height:1.8;}
.engine-note{background:#fffbf0;border:1px solid #f0d090;border-radius:4px;padding:1rem 1.1rem;margin-top:2rem;}
.engine-note p{font-size:var(--font-body);color:#6a4e10;line-height:1.75;}
.engine-note strong{color:#4a3608;}
.engine-note ul{margin:0;padding-left:1.15rem;list-style:disc;}
.engine-note li{font-size:var(--font-body);color:#6a4e10;line-height:1.75;margin-bottom:1rem;}
.engine-note li::marker{color:#a87d1a;font-size:0.85em;}
.engine-note li:last-child{margin-bottom:0;}

/* ── VALUE ── */
.value-list{display:flex;flex-direction:column;gap:2.75rem;margin-top:1.5rem;}
.value-item{display:flex;gap:0.85rem;align-items:flex-start;padding:1rem 1.1rem;background:var(--bg-light);border-radius:4px;border-left:3px solid var(--navy);}
.value-icon{flex-shrink:0;margin-top:2px;}
.value-text{font-size:var(--font-body);color:var(--text-sub);line-height:1.8;}
.value-text strong{color:var(--text);display:block;font-size:var(--font-body);font-weight:700;margin-bottom:0.1rem;}

/* ── SPECS ── */
.specs-wrap{background:var(--bg-light);padding:2.75rem 1.75rem;}
table{width:100%;border-collapse:collapse;font-size:var(--font-body);background:#fff;border-radius:4px;overflow:hidden;border:1px solid var(--border-light);}
thead th{background:var(--navy);color:var(--muted-on-navy);font-weight:500;text-align:left;padding:0.65rem 1rem;font-size:var(--font-body);letter-spacing:0.06em;}
tbody td{padding:0.7rem 1rem;border-bottom:1px solid var(--border-light);vertical-align:top;line-height:1.75;text-align:start;}
tbody td:first-child{color:var(--text-sub);width:38%;font-weight:500;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:nth-child(even) td{background:#fafbfc;}
tbody tr.row-caution td{background:#fff8f0;border-bottom:1px solid #f0d090;}
tbody tr.row-caution td:first-child{color:#7a4010;font-weight:700;}
tbody tr.row-caution td strong{color:#7a4010;}
.tbd{color:#8899aa;font-style:italic;}

/* ── PRICE ── */
.price-section{background:var(--navy);padding:2.75rem 1.75rem;}
.price-heading{font-family:'Noto Serif JP',serif;font-size:var(--font-h2);font-weight:700;color:#fff;margin-bottom:0.4rem;}
.price-sub{font-size:var(--font-body);color:var(--muted-on-navy);margin-bottom:var(--para-gap-lead-180);line-height:1.8;}
@supports (width:1lh){
  .price-sub{margin-bottom:calc(1.5 * 1lh);}
}
.price-sub-follow{margin-top:-0.75rem;margin-bottom:1.25rem;}
.price-rows{display:flex;flex-direction:column;gap:0;border-radius:4px;overflow:hidden;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.08);}
.price-row{background:rgba(255,255,255,0.05);padding:1.1rem 1.15rem;border-bottom:1px solid rgba(255,255,255,0.1);}
.price-row:last-child{border-bottom:none;}
.price-row.featured{background:rgba(201,106,42,0.15);}
/* 価格行は常に縦積み（短いラベルだけ横1行になる不揃いを防ぐ） */
.price-row-main{display:flex;flex-direction:column;gap:0.4rem;align-items:flex-start;}
.price-row-label{font-size:var(--font-body);color:var(--muted-on-navy);line-height:1.5;max-width:100%;width:100%;}
.price-row-value{font-size:var(--font-body);font-weight:700;color:#fff;text-align:left;width:100%;line-height:1.5;}
.price-tax{font-size:var(--font-body);font-weight:500;color:var(--muted-on-navy);margin-left:0.35rem;}
.price-row-note{font-size:var(--font-body);color:var(--muted-on-navy);margin-top:0.65rem;line-height:1.75;padding-top:0.5rem;border-top:1px solid rgba(255,255,255,0.08);}
.price-disclaimer{font-size:var(--font-body);color:#8899aa;margin-top:1.25rem;line-height:1.8;}

/* ── CTA BOTTOM ── */
.cta-bottom{padding:3rem 1.75rem;text-align:center;border-top:1px solid var(--border-light);}
.cta-lead{font-family:'Noto Serif JP',serif;font-size:var(--font-h2);color:var(--navy);margin-bottom:0.5rem;line-height:1.5;}
.cta-sub{font-size:var(--font-body);color:var(--text-sub);margin:0 auto var(--para-gap-lead-180);line-height:1.8;max-width:32.5em;text-align:start;}
@supports (width:1lh){
  .cta-sub{margin-bottom:calc(1.5 * 1lh);}
}
.cta-sub-spaced{margin-top:1.5rem;margin-bottom:0.75rem;}
.cta-actions{display:flex;justify-content:center;margin-bottom:0.5rem;}
.cta-mail{font-size:var(--font-body);font-weight:700;margin-top:0.25rem;}
.cta-mail a{color:var(--navy);text-decoration:underline;}
.cta-bottom .btn-primary{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:none;max-width:100%;box-sizing:border-box;}

/* ── FOOTER ── */
/* フッターは短文の p が続くため、本文ブロック用の大きな段落間隔は付けない（1.4.8 は「テキストの塊」向け） */
footer{background:#0a1830;color:#8899aa;padding:2rem 1.75rem;font-size:var(--font-body);line-height:1.75;}
.footer-nav{display:flex;flex-wrap:wrap;gap:0.4rem 1.25rem;margin-bottom:1rem;}
.footer-nav a{color:#a0bcd8;font-size:inherit;text-decoration:none;}
.footer-nav a:hover,.footer-nav a:focus{color:#fff;text-decoration:underline;}
footer p{margin-bottom:0.55rem;text-align:start;}
footer p:last-child{margin-bottom:0;}
footer strong{color:#fff;display:block;font-size:var(--font-body);font-weight:700;margin-bottom:0.1rem;}
footer .footer-note{margin-top:0.5rem;line-height:1.75;color:#8899aa;}
footer p.footer-note + p.footer-note{margin-top:0.65rem;}
footer a{color:#a0bcd8;}
