/* ============================================================
   U01 LP v2 — ui-ux-pro-max 適用レイヤー
   既存 site.css の後に読み込み、トークンと主要コンポーネントを上書きする。
   戻すときは index.html の <link> 1行を消せば v1 に戻る。
   ============================================================ */

:root{
  color-scheme: light;

  /* Trust teal + warm paper（スキル推奨の #0F766E 系を、日本語LP向けに深く調整） */
  --main:#0E5A50;
  --main2:#14756A;
  --ink:#16211F;
  --muted:#56645F;
  --paper:#FBFAF6;
  --white:#FFFFFF;
  --line:#E2DED4;
  --mint:#EAF4F0;
  --gold:#C8A24A;
  --gold-soft:#F6E7BE;
  --danger:#8D2F26;
  --danger-bg:#FFF1EE;

  /* 8px ベースの余白スケール */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px;

  --shadow:0 10px 30px rgba(18,42,38,.08);
  --shadow-lg:0 22px 60px rgba(18,42,38,.14);

  font-family:"Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}

body{
  font-size:16px;
  line-height:1.8;
  letter-spacing:.01em;
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}

/* 見出しは明朝（不動産・信頼の文脈） */
h1,h2,h3,.brand,.price-value,.pct-value,.diff-value,.doc-title{
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  font-feature-settings:"palt" 1;
}
h1{font-weight:700;letter-spacing:-.02em;line-height:1.28}
h2{font-weight:700;letter-spacing:-.015em;line-height:1.35}
h3{font-weight:700;letter-spacing:0}

.shell{width:min(100% - 40px,1080px)}

/* ── ヘッダー ─────────────────────────────────────────── */
.site-header{
  height:72px;
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(160%) blur(10px);
}
.brand{font-size:17px;letter-spacing:.06em}
.header-cta{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:0 20px;
  border-radius:999px;background:var(--main);color:#fff;
  font-size:13.5px;font-weight:800;letter-spacing:.04em;
  transition:background .18s ease,transform .18s ease;
}
.header-cta:hover{background:var(--main2)}
.header-cta:active{transform:translateY(1px)}

/* ── ボタン ───────────────────────────────────────────── */
.button{
  min-height:52px;
  padding:0 26px;
  border-radius:999px;
  font-weight:800;
  letter-spacing:.03em;
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.button.primary{background:var(--main);box-shadow:0 8px 20px rgba(14,90,80,.18)}
.button.primary:hover{background:var(--main2);transform:translateY(-1px);box-shadow:0 12px 26px rgba(14,90,80,.24)}
.button.ghost{
  background:transparent;color:#fff;border:0;
  text-decoration:underline;text-underline-offset:4px;font-weight:700;
}
.button.secondary{border-color:var(--main2);color:var(--main)}

/* ── ヒーロー ─────────────────────────────────────────── */
.hero-photo{
  background:
    radial-gradient(120% 90% at 85% 10%, rgba(20,117,106,.45) 0%, transparent 55%),
    linear-gradient(165deg,#0A2623 0%,#0E3B36 55%,#115249 100%);
  padding:72px 0 64px;
}
.hero-grid{grid-template-columns:1.1fr .9fr;gap:48px}
.hero-main .eyebrow{
  color:var(--gold-soft);
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;
}
.hero-photo h1{
  font-size:clamp(30px,4.4vw,50px);
  line-height:1.3;
  margin:14px 0 16px;
  text-wrap:balance;
}
.hero-photo h1 strong{
  color:var(--gold-soft);
  border-bottom:0;
  background:linear-gradient(transparent 62%,rgba(200,162,74,.32) 62%);
  padding:0 .06em;
}
.hero-photo .hero-note{
  margin:0 0 16px;padding:0;
  color:rgba(255,255,255,.72);font-size:12.5px;font-weight:500;
}
.hero-photo .hero-copy{
  color:rgba(255,255,255,.84);
  font-size:15.5px;line-height:1.95;max-width:34em;
}
.hero-badges{gap:8px;margin:20px 0 22px}
.hero-badges li{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;font-size:12.5px;font-weight:700;
  padding:7px 13px;border-radius:999px;
  backdrop-filter:blur(6px);
}
.hero-actions{gap:18px;align-items:center;margin:22px 0 12px}
.hero-photo .button.primary{
  background:linear-gradient(180deg,#F3D68C 0%,#E4BE62 100%);
  color:#1E2A1B;
  min-height:58px;padding:0 34px;font-size:16.5px;letter-spacing:.04em;
  box-shadow:0 14px 34px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.5);
}
.cta-arrow span{display:inline-block;margin-left:6px;transition:transform .2s ease}
.cta-arrow:hover span{transform:translateX(4px)}
.hero-photo .button.primary:hover{background:linear-gradient(180deg,#F9E2A6 0%,#EAC970 100%)}
.hero-photo .small.muted{color:rgba(255,255,255,.62);font-size:12.5px}

/* ── 証明書モック ─────────────────────────────────────── */
.doc-paper{border-radius:10px;box-shadow:0 30px 70px rgba(0,0,0,.38);transform:rotate(-1.4deg)}
.doc-title{font-size:16px;letter-spacing:.08em}

/* ── 要点ストリップ（ヒーロー直下） ──────────────────── */
.proof-strip{background:#fff;border-bottom:1px solid var(--line)}
.proof-strip ul{
  list-style:none;margin:0;padding:18px 0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;
}
.proof-strip li{
  display:flex;align-items:center;justify-content:center;gap:9px;
  font-size:13.5px;font-weight:700;color:var(--main);
  text-align:center;
}
.proof-strip svg{flex:none;width:20px;height:20px;stroke:var(--main2)}

/* ── セクションのリズム ──────────────────────────────── */
.section{padding-block:64px}
.section-tint{background:#F2F6F3}
.section-heading{margin-bottom:28px}
.section-heading h2{font-size:clamp(25px,3.6vw,36px)}
.section-heading .eyebrow{
  color:var(--main2);font-size:11.5px;letter-spacing:.2em;
}
.section-heading>p:last-child{color:var(--muted);font-size:15px;max-width:46em}

/* ── カード ───────────────────────────────────────────── */
.info-card{
  border:1px solid var(--line);border-radius:16px;
  padding:24px;box-shadow:none;
  transition:transform .2s ease,box-shadow .2s ease;
}
.info-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.info-card h3{font-size:19px;line-height:1.5}
.info-card p{font-size:14px;line-height:1.85}
.card-kicker{letter-spacing:.12em;font-size:11px}

/* ── 比較表 ───────────────────────────────────────────── */
.compare-table{border-radius:14px;font-size:14.5px}
.compare-table th,.compare-table td{padding:15px 16px}
.compare-table thead th{background:#F1F5F3;font-size:13px;letter-spacing:.04em}
.compare-table .is-after{background:var(--main)}

/* ── 差額・料金 ──────────────────────────────────────── */
.diff-box{border-radius:16px;padding:26px}
.diff-box .diff-value{letter-spacing:-.03em}
.pct-card{border-radius:16px;padding:22px;transition:transform .2s ease,box-shadow .2s ease}
.pct-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.pct-value{letter-spacing:-.03em}

/* ── フォーム ─────────────────────────────────────────── */
.form-card{border-radius:20px;padding:28px 22px;box-shadow:var(--shadow-lg)}
.form-step h3{font-family:"Noto Sans JP",sans-serif;font-size:20px;font-weight:800}
.form-step input[type=text],.form-step input[type=email],.form-step input[type=tel],.form-step select{
  min-height:52px;border-radius:10px;border-color:#B9C7C1;
  font-size:16px; /* iOS の自動ズーム防止 */
}
.form-step input:focus,.form-step select:focus,.form-step textarea:focus{
  border-color:var(--main);box-shadow:0 0 0 3px rgba(14,90,80,.14);outline:none;
}
.choice-row{border-radius:12px;min-height:56px}
.choice-row:has(input:checked){background:var(--mint);border-color:var(--main)}
.form-help{color:var(--muted);font-size:13.5px}
.field-error{color:var(--danger)}
.error-summary{
  margin:0 0 20px;padding:14px 16px;
  border:1px solid #E0B4AC;border-left:5px solid var(--danger);
  border-radius:12px;background:var(--danger-bg);color:#6E2A22;
  font-size:14px;
}
.error-summary:focus{outline:3px solid var(--gold);outline-offset:2px}
.error-summary ul{margin:6px 0 0;padding-left:20px}
.error-summary a{color:#6E2A22;font-weight:700}
.form-remind{border-radius:14px}

/* ── 固定CTA ─────────────────────────────────────────── */
.mobile-cta a{border-radius:999px;background:var(--main);box-shadow:0 10px 26px rgba(14,90,80,.3)}

/* ── フッター ─────────────────────────────────────────── */
.site-footer{background:#0B2B27;color:#D7E4DE}

/* ── フォーカス・モーション ──────────────────────────── */
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ── レスポンシブ ─────────────────────────────────────── */
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:32px}
  .proof-strip ul{grid-template-columns:repeat(2,1fr);text-align:left;justify-content:flex-start}
  .proof-strip li{justify-content:flex-start}
}
@media (max-width:640px){
  .shell{width:min(100% - 32px,1080px)}
  .site-header{height:64px}
  .hero-photo{padding:44px 0 48px}
  .hero-photo h1{font-size:clamp(27px,7.6vw,34px)}
  .section{padding-block:48px}
  .section-heading{margin-bottom:22px}
  .button{width:100%;padding:0 20px}
  .hero-actions{gap:10px}
  .hero-actions .button.ghost{width:auto;padding:0}
}

.hero-photo .button.ghost{background:transparent;border:0;min-height:auto;padding:0;text-decoration:underline}
.doc-paper{transform:rotate(-1.2deg) scale(.97)}
@media (max-width:640px){.hero-photo .button.primary{width:100%;font-size:16px}}

/* ── 仕上げ（スキル監査の指摘対応） ─────────────────── */
[id]{scroll-margin-top:88px}
.brand{display:inline-flex;align-items:center;min-height:44px}
.footer-inner nav a{display:inline-flex;align-items:center;min-height:44px}
.faq-item summary{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:48px;padding:6px 0;list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"";flex:none;width:10px;height:10px;margin-right:4px;
  border-right:2px solid var(--main2);border-bottom:2px solid var(--main2);
  transform:rotate(45deg);transition:transform .2s ease;
}
.faq-item[open] summary::after{transform:rotate(-135deg)}
.hero-photo .hero-note{max-width:30em;line-height:1.7}
.flow-list li,.scope-box,.before-box{background:#fff;border:1px solid var(--line);border-radius:16px}
.flow-list li{transition:box-shadow .2s ease}
.flow-list li:hover{box-shadow:var(--shadow)}

.faq-group{
  margin:32px 0 6px;padding-left:12px;border-left:4px solid var(--gold);
  font-family:"Noto Sans JP",sans-serif;font-size:15px;font-weight:800;letter-spacing:.04em;
}
.faq-group:first-of-type{margin-top:8px}
.faq-item summary{padding-right:6px}
.faq-item p{font-size:14.5px;line-height:1.9}
@media (max-width:820px){
  .mobile-cta{padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  .site-footer{padding-bottom:96px}
}

/* ── 全体の見通しを良くする（第3パス） ──────────────── */
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-weight:800;letter-spacing:.02em}
.eyebrow .num{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:26px;height:20px;padding:0 6px;border-radius:6px;
  background:var(--main);color:#fff;font-size:11px;font-weight:800;letter-spacing:.06em;
}
.section-heading .eyebrow{color:var(--main)}
.page-map{background:#fff;border-bottom:1px solid var(--line)}
.page-map .shell{display:flex;align-items:center;gap:14px;padding:10px 0;flex-wrap:wrap}
.page-map-title{margin:0;font-size:12px;font-weight:800;color:var(--muted);letter-spacing:.08em;white-space:nowrap}
.page-map ul{list-style:none;margin:0;padding:0;display:flex;gap:8px;flex-wrap:wrap}
.page-map a{
  display:inline-flex;align-items:center;min-height:40px;padding:0 14px;
  border:1px solid var(--line);border-radius:999px;
  font-size:13px;font-weight:700;color:var(--main);text-decoration:none;
  transition:background .18s ease,border-color .18s ease;
}
.page-map a:hover{background:var(--mint);border-color:var(--main2)}
@media (min-width:900px){
  .page-map{position:sticky;top:72px;z-index:30;box-shadow:0 8px 18px rgba(18,42,38,.05)}
}
.compare-table caption{
  caption-side:top;text-align:left;padding:0 0 10px;
  font-size:13px;font-weight:600;color:var(--muted);
}
.section-heading>p:last-child{font-size:15.5px;line-height:1.95;max-width:44em}
p{text-wrap:pretty}
h2{text-wrap:balance}
@media (max-width:640px){
  .page-map .shell{gap:10px;padding:12px 0}
  .page-map a{min-height:44px}
  .page-map-title{width:100%}
}
