/*
Theme Name: Life Good Insurance LP
Theme URI: 
Author: 
Author URI: 
Description: 株式会社ライフグッド様 保険相談ランディングページ用WordPressテーマ。
Version: 5.3
Requires at least: 5.9
Requires PHP: 7.4
Text Domain: lifegood-theme
*/

  :root{
    --navy:#132430;
    --navy-dark:#0a161d;
    --teal:#3d6660;
    --teal-light:#eaf0ed;
    --cream:#ffffff;
    --cream-2:#f4f1e9;
    --coral:#9c5330;
    --coral-dark:#7d4326;
    --gold:#ab8c52;
    --text:#242e33;
    --text-light:#63706f;
    --white:#ffffff;
    --border:#e3d9c4;
    --shadow:0 18px 44px -22px rgba(10,22,29,0.22);
    --radius:14px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:"Noto Sans JP", sans-serif;
    font-size:18px;
    color:var(--text);
    background:var(--cream);
    line-height:1.85;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,h4,.mincho{
    font-family:"Zen Old Mincho", serif;
    letter-spacing:0.03em;
  }
  img,svg{display:block; max-width:100%;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
  .section{padding:110px 0;}
  .section-narrow{padding:80px 0;}
  @media(max-width:780px){
    .section{padding:72px 0;}
    .section-narrow{padding:56px 0;}
  }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:15.5px; font-weight:700; letter-spacing:0.18em;
    color:var(--coral-dark); text-transform:uppercase;
    margin-bottom:18px;
  }
  .eyebrow::before{content:""; width:28px; height:1px; background:var(--coral-dark);}
  h2.title{position:relative; padding-bottom:6px; font-size:clamp(30px,4.8vw,46px); font-weight:700; color:var(--navy); margin-bottom:22px; line-height:1.5;}
  @media(max-width:600px){ h2.title{font-size:23px; line-height:1.6;} }
  @media(max-width:420px){ h2.title{font-size:20px; line-height:1.6;} }
  /* 画面幅・コンテナ幅（最大680px）に応じて連続的に縮小し、最長行が確実に1行へ収まるようにする */
  .title-tight{
    white-space:normal;
    font-size:min(clamp(30px,4.8vw,46px), calc((100vw - 56px) / 18), calc(680px / 19)) !important;
  }
  /* メッセージ欄（左右2カラム、コンテナがやや狭い）用 */
  .title-tight-narrow{
    white-space:normal;
    font-size:min(clamp(30px,4.8vw,46px), calc((100vw - 56px) / 16), 34px) !important;
  }
  h2.title::after{
    content:""; display:block; width:56px; height:3px; margin-top:16px; border-radius:3px;
    background:linear-gradient(90deg,var(--coral),var(--gold));
  }
  h2.title.center::after, .center h2.title::after{margin-left:auto; margin-right:auto;}
  .on-dark h2.title::after{background:linear-gradient(90deg,var(--gold),var(--coral));}
  .lead{font-size:21px; line-height:1.85; color:var(--text-light); max-width:660px; margin-bottom:40px;}
  .center{text-align:center; margin-left:auto; margin-right:auto;}

  /* fade-in */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ---------- HEADER ---------- */
  header{
    position:sticky; top:0; left:0; right:0; z-index:200;
    background:linear-gradient(120deg,rgba(47,127,192,0.94) 0%,rgba(28,90,148,0.94) 100%);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(255,255,255,0.25);
    transition:box-shadow .3s ease;
  }
  header.scrolled{box-shadow:0 8px 24px -12px rgba(10,37,48,0.3);}
  .header-inner{
    max-width:1440px; margin:0 auto; padding:16px 28px;
    display:flex; align-items:center; justify-content:space-between; gap:18px;
  }
  .logo{display:flex; align-items:center; gap:10px; font-weight:700; color:#fff; font-size:17px; flex-shrink:0;}
  .logo-mark{
    width:38px; height:38px; border-radius:10px;
    background:rgba(255,255,255,0.16); border:1px solid rgba(255,255,255,0.4);
    display:flex; align-items:center; justify-content:center; color:#fff;
    font-family:"Zen Old Mincho",serif; font-weight:700; font-size:18px; flex-shrink:0;
  }
  .logo-text{display:flex; flex-direction:column; line-height:1.2; white-space:nowrap;}
  .logo-text small{font-size:11px; font-weight:500; color:rgba(255,255,255,0.7); letter-spacing:0.1em;}
  nav.main-nav{display:flex; gap:22px; font-size:17px; font-weight:700; color:#fff; flex-shrink:0;}
  nav.main-nav a{position:relative; padding:4px 0; white-space:nowrap;}
  nav.main-nav a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--gold); transition:width .25s ease;}
  nav.main-nav a:hover::after{width:100%;}
  .header-cta{display:flex; align-items:center; gap:14px; flex-shrink:0;}
  .tel-mini{display:flex; align-items:center; gap:6px; font-size:16px; color:#fff; font-weight:700; white-space:nowrap;}
  .tel-mini svg{width:16px; height:16px; color:var(--gold);}
  @media(max-width:1180px){ nav.main-nav{display:none;} .tel-mini span.label{display:none;} }

  /* ---------- BUTTONS ---------- */
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    padding:18px 32px; border-radius:999px; font-weight:700; font-size:17.5px;
    cursor:pointer; border:none; transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
    white-space:nowrap;
  }
  .btn svg{width:20px; height:20px;}
  .btn-primary{
    background:linear-gradient(180deg,#f7954f 0%,#e0530a 65%); color:#fff;
    box-shadow:0 10px 28px -10px rgba(224,83,10,0.6);
    transition:transform .3s ease, box-shadow .3s ease, background .3s ease;
  }
  .btn-primary:hover{background:linear-gradient(180deg,#f28a41 0%,#c2450a 65%); transform:translateY(-2px); box-shadow:0 16px 34px -10px rgba(224,83,10,0.7);}
  .pulse-cta{ opacity:0; animation:gentleIn .9s ease .3s forwards; }
  @keyframes gentleIn{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:translateY(0);} }
  .btn-outline{background:var(--navy); color:#fff; border:1.5px solid var(--navy);}
  .btn-outline:hover{background:#0d3a63; color:#fff; transform:translateY(-2px);}
  .btn-ghost-white{background:rgba(255,255,255,0.12); color:#fff; border:1.5px solid rgba(255,255,255,0.5);}
  .btn-ghost-white:hover{background:#fff; color:var(--navy);}
  .btn-disabled{background:var(--cream-2); color:var(--text-light); cursor:not-allowed; border:1.5px dashed var(--border);}
  .btn-block{width:100%;}
  .btn-sm{padding:13px 22px; font-size:15.5px;}

  .cta-row{display:flex; flex-wrap:wrap; gap:14px; align-items:center;}

  /* ---------- HERO ---------- */
  @keyframes floatBlob{
    0%,100%{ transform:translate(0,0) scale(1); }
    50%{ transform:translate(-24px,26px) scale(1.08); }
  }
  @keyframes floatBlob2{
    0%,100%{ transform:translate(0,0) scale(1); }
    50%{ transform:translate(20px,-20px) scale(1.05); }
  }
  .hero{
    position:relative; padding:108px 0 236px; overflow:hidden;
    background:
      linear-gradient(rgba(252,250,246,0.02), rgba(252,250,246,0.12)) center/cover no-repeat,
      url('assets/img/kazoku.png') center top 72px/cover no-repeat;
    background-attachment:fixed, fixed;
    min-height:920px;
    display:flex; align-items:flex-end;
  }
  .hero .wrap.hero-grid{width:100%;}
  @media(max-width:780px){
    .hero{
      min-height:0;
      background-position:center top, center top;
      background-attachment:scroll, scroll;
    }
  }
  .hero::before, .hero::after{
    content:""; position:absolute; border-radius:50%; filter:blur(70px); z-index:0; pointer-events:none; opacity:0.5;
  }
  .hero::before{
    width:460px; height:460px; top:-160px; right:-140px;
    background:radial-gradient(circle, rgba(156,83,48,0.14), rgba(156,83,48,0) 70%);
    animation:floatBlob 22s ease-in-out infinite;
  }
  .hero::after{
    width:380px; height:380px; bottom:-140px; left:-100px;
    background:radial-gradient(circle, rgba(61,102,96,0.12), rgba(61,102,96,0) 70%);
    animation:floatBlob2 26s ease-in-out infinite;
  }
  .hero-grid{position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}
  @media(max-width:940px){ .hero-grid{grid-template-columns:1fr;} }
  .hero-grid.single{grid-template-columns:1fr; max-width:800px; margin:0 auto; text-align:center;}
  .hero-grid.single .meta-line, .hero-grid.single .cta-row, .hero-grid.single .hero-note{justify-content:center;}
  .hero-grid.single p.sub{margin-left:auto; margin-right:auto;}
  .hero-profile-link{
    display:inline-flex; align-items:center; gap:6px; margin-top:20px;
    font-size:15.5px; font-weight:700; color:var(--navy); text-decoration:underline; text-underline-offset:3px;
    background:#fff; padding:10px 18px; border-radius:999px; box-shadow:0 8px 20px -10px rgba(10,37,48,0.3);
  }
  .hero-profile-link svg{width:15px; height:15px;}
  .meta-line{
    display:flex; flex-wrap:wrap; align-items:center; gap:10px;
    font-size:17px; font-weight:700; letter-spacing:0.02em; color:var(--text-light);
    margin-bottom:30px;
  }
  .meta-line .dot{width:3px; height:3px; border-radius:50%; background:var(--gold); flex-shrink:0;}
  .meta-badge{
    display:inline-flex; align-items:center; gap:7px; padding:8px 16px 8px 12px;
    background:#fff; border:1.5px solid var(--border); border-radius:999px;
    color:var(--navy); box-shadow:0 4px 10px -6px rgba(10,22,29,0.18);
  }
  .meta-badge svg{width:16px; height:16px; color:var(--teal); flex-shrink:0;}
  .hero h1{
    font-size:min(clamp(20px,5.4vw,56px), calc((100vw - 48px) / 29), calc(800px / 29));
    font-weight:700; color:#111; white-space:nowrap;
    line-height:1.45; margin-bottom:26px; letter-spacing:0.01em;
    text-shadow:0 1px 0 #fff, 0 0 8px rgba(255,255,255,0.95), 0 0 18px rgba(255,255,255,0.85), 0 0 28px rgba(255,255,255,0.6);
  }
  .hero h1 .accent{
    color:#2f7fc0;
  }
  .hero p.sub{font-size:19px; line-height:1.85; color:#111; max-width:540px; margin-top:-10px; margin-bottom:38px; text-shadow:0 1px 0 #fff, 0 0 6px rgba(255,255,255,0.9), 0 0 14px rgba(255,255,255,0.8);}
  .hero-note{margin-top:22px; font-size:16.5px; color:#fff; display:flex; align-items:center; gap:8px; text-shadow:0 1px 3px rgba(10,22,29,0.6);}
  .hero-note svg{width:18px; height:18px; color:#fff; flex-shrink:0;}

  .hero-visual{
    position:relative; overflow:hidden;
    background:linear-gradient(160deg,#2f7fc0 0%, #1c5a94 100%);
    border-radius:28px; padding:26px; color:#fff; box-shadow:var(--shadow);
  }
  .hero-visual-body{padding:0;}
  .avatar-frame{
    position:relative; overflow:hidden;
    width:100%; aspect-ratio:4/3; border-radius:16px;
    background:linear-gradient(150deg, rgba(255,255,255,0.14), rgba(255,255,255,0.02));
    border:10px solid #1c5a94;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
    text-align:center; padding:20px; margin-bottom:20px;
  }
  .avatar-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2;}
  .avatar-frame svg{width:56px; height:56px; color:rgba(255,255,255,0.75);}
  .avatar-frame span{font-size:15px; color:rgba(255,255,255,0.65); line-height:1.6;}
  .quote-badge{
    display:flex; align-items:center; gap:10px; background:#fff; color:var(--navy);
    border-radius:14px; padding:12px 16px; margin-bottom:20px; box-shadow:0 12px 26px -10px rgba(0,0,0,0.35);
  }
  .quote-badge svg{width:20px; height:20px; color:var(--coral-dark); flex-shrink:0;}
  .quote-badge span{font-size:15.5px; font-weight:700; line-height:1.5;}
  .hero-visual .name{font-family:"Zen Old Mincho",serif; font-size:22px; font-weight:700; margin-bottom:4px;}
  .hero-visual .role{font-size:16px; color:rgba(255,255,255,0.7); margin-bottom:18px;}
  .stat-mini-row{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
  .stat-mini{background:rgba(255,255,255,0.08); border-radius:12px; padding:14px 6px; text-align:center;}
  .stat-mini b{display:flex; align-items:baseline; justify-content:center; gap:2px; font-size:22px; font-family:"Zen Old Mincho",serif;}
  .stat-mini b .count-up{font-size:1.35em; font-weight:700;}
  .stat-mini span{font-size:14px; color:rgba(255,255,255,0.65);}

  /* ---------- TRUST LINE ---------- */
  .trust-line{background:var(--white); border-bottom:1px solid var(--border); padding:16px 0;}
  .trust-line-inner{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:14px 32px;}
  .trust-line-item{
    display:inline-flex; align-items:center; gap:8px;
    font-size:15.5px; font-weight:700; color:var(--navy);
  }
  .trust-line-item svg{width:18px; height:18px; color:var(--coral-dark); flex-shrink:0;}
  @media(max-width:700px){ .trust-line-inner{gap:10px 20px;} .trust-line-item{font-size:14px;} }

  /* ---------- MARQUEE ---------- */
  .marquee{
    background:var(--navy-dark); overflow:hidden; padding:16px 0; position:relative;
    border-top:1px solid rgba(255,255,255,0.08); border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .marquee-track{display:flex; width:max-content; animation:marqueeScroll 42s linear infinite; gap:0;}
  .marquee:hover .marquee-track{animation-play-state:paused;}
  .marquee-item{
    display:flex; align-items:center; gap:10px; padding:0 32px; color:rgba(255,255,255,0.85);
    font-size:17px; font-weight:700; white-space:nowrap; letter-spacing:0.03em;
  }
  .marquee-item svg{width:16px; height:16px; color:var(--gold); flex-shrink:0;}
  .marquee-item .dividerdot{width:4px; height:4px; border-radius:50%; background:rgba(255,255,255,0.25);}
  @keyframes marqueeScroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  /* ---------- CARDS: CONCERN / CHIP / QA ---------- */
  .worry-list{display:grid; grid-template-columns:1fr 1fr; gap:0 56px; max-width:840px; margin:0 auto;}
  @media(max-width:700px){ .worry-list{grid-template-columns:1fr;} }
  .worry-item{display:flex; align-items:center; gap:18px; padding:22px 0; border-bottom:1px solid var(--border);}
  .worry-item .num{font-family:"Zen Old Mincho",serif; font-size:15px; color:var(--gold); font-weight:700; flex-shrink:0; letter-spacing:0.05em;}
  .worry-item .wicon{display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; background:var(--teal-light); color:var(--teal); flex-shrink:0;}
  .worry-item .wicon svg{width:22px; height:22px;}
  .worry-item p{font-size:18px; color:var(--text); font-weight:500; line-height:1.6;}

  /* ---------- TRUST BANNER ---------- */
  .trust-banner-row{display:flex; align-items:center; justify-content:center; gap:22px; margin-bottom:14px;}
  .tb-line{flex:1; max-width:150px; height:1px; background:var(--border);}
  .trust-banner-title{font-family:"Zen Old Mincho",serif; font-size:clamp(28px,4.2vw,38px); font-weight:700; color:var(--navy); white-space:nowrap;}
  .trust-banner-sub{font-size:18px; color:var(--text-light); font-weight:600; letter-spacing:0.02em;}

  /* ---------- TRUST STRIP (above hero) ---------- */
  .trust-strip{
    position:relative; overflow:hidden; margin-top:76px;
    background:linear-gradient(120deg,#2f7fc0 0%,#1c5a94 100%);
    border-bottom:1px solid rgba(255,255,255,0.35);
    padding:16px 0;
  }
  .trust-strip::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:repeating-linear-gradient(115deg, rgba(255,255,255,0.05) 0 2px, transparent 2px 26px);
  }
  .trust-strip-inner{
    position:relative; display:flex; align-items:center; justify-content:center;
    gap:22px; flex-wrap:wrap; text-align:center;
  }
  .leafgroup{display:flex; align-items:center; gap:1px; flex-shrink:0;}
  .leafgroup svg{width:30px; height:30px; color:var(--gold); opacity:0.9;}
  .leafgroup svg:nth-child(1){transform:rotate(-16deg) translateY(3px);}
  .leafgroup svg:nth-child(2){transform:translateY(-3px); opacity:1;}
  .leafgroup svg:nth-child(3){transform:rotate(16deg) translateY(3px);}
  .trust-strip-text{display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; justify-content:center;}
  .trust-strip-text .spark{width:18px; height:18px; color:var(--gold); flex-shrink:0; align-self:center;}
  .trust-strip-text strong{font-family:"Zen Old Mincho",serif; font-size:25px; font-weight:700; color:#fff; letter-spacing:0.05em;}
  .trust-strip-text .tb-sep{width:1px; height:16px; background:rgba(255,255,255,0.3); align-self:center;}
  .trust-strip-text span:not(.tb-sep){font-size:16px; color:rgba(255,255,255,0.8); font-weight:600;}
  @media(max-width:640px){ .leafgroup{display:none;} .trust-strip-text strong{font-size:20px;} .trust-strip-text span:not(.tb-sep){font-size:14px;} }

  /* ---------- TIMING LIST ---------- */
  .timing-photo{max-width:720px; margin:32px auto; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);}
  .timing-photo img{width:100%; height:280px; object-fit:cover; display:block;}
  @media(max-width:600px){ .timing-photo img{height:200px;} }
  .timing-list{display:grid; grid-template-columns:1fr 1fr; gap:0 48px; max-width:860px; margin:0 auto;}
  @media(max-width:700px){ .timing-list{grid-template-columns:1fr;} }
  .timing-item{
    display:flex; align-items:center; justify-content:space-between; gap:14px;
    padding:19px 4px; border-bottom:1px dotted var(--border);
    font-size:17.5px; color:var(--navy); font-weight:600;
    transition:padding-left .2s ease, color .2s ease;
  }
  .timing-item svg{width:16px; height:16px; color:var(--gold); flex-shrink:0; transition:transform .2s ease;}
  .timing-item:hover{padding-left:8px; color:var(--coral-dark);}
  .timing-item:hover svg{transform:translateX(4px); color:var(--coral-dark);}

  /* ---------- PROMO STRIP ---------- */
  .promo-strip{
    background:var(--white);
    border:1px solid var(--border); border-radius:28px;
    padding:44px 32px; text-align:center;
  }
  .promo-strip .tagline{font-size:15px; font-weight:700; color:var(--coral-dark); letter-spacing:0.04em; margin-bottom:6px;}
  .promo-strip .subtagline{font-size:16.5px; color:var(--text-light); margin-bottom:26px;}
  .promo-strip .btn-primary{font-size:18px; padding:20px 40px;}

  /* ---------- FLOW TIMELINE (縦フロー・カード) ---------- */
  .flow-timeline{position:relative; max-width:720px; margin:0 auto;}
  .flow-timeline::before{
    content:""; position:absolute; left:29px; top:8px; bottom:8px; width:2px;
    background:repeating-linear-gradient(var(--gold),var(--gold) 6px,transparent 6px,transparent 12px);
    opacity:0.55;
  }
  .flow-card-step{position:relative; display:flex; gap:22px; padding-bottom:34px;}
  .flow-card-step:last-child{padding-bottom:0;}
  .flow-marker{
    position:relative; z-index:1; flex-shrink:0; width:60px; height:60px; border-radius:50%;
    background:linear-gradient(145deg,var(--navy),var(--navy-dark)); color:var(--gold);
    display:flex; align-items:center; justify-content:center;
    font-family:"Zen Old Mincho",serif; font-size:23px; font-weight:700;
    box-shadow:0 8px 18px -8px rgba(10,22,29,0.45); border:2px solid var(--gold);
  }
  .flow-body-card{
    flex:1; background:#fff; border:1px solid var(--border); border-radius:var(--radius);
    padding:22px 26px; box-shadow:var(--shadow); margin-top:4px;
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .flow-body-card:hover{transform:translateY(-3px); box-shadow:0 20px 40px -20px rgba(10,22,29,0.28);}
  .flow-body-card .flow-icon{
    display:flex; align-items:center; justify-content:center; width:38px; height:38px;
    border-radius:10px; background:var(--teal-light); color:var(--teal); margin-bottom:12px;
  }
  .flow-body-card .flow-icon svg{width:20px; height:20px;}
  .flow-body-card h3{font-size:19px; font-weight:700; color:var(--navy); margin-bottom:8px; line-height:1.5;}
  .flow-body-card p{font-size:16.5px; color:var(--text-light); line-height:1.75;}
  @media(max-width:560px){
    .flow-timeline::before{left:23px;}
    .flow-marker{width:48px; height:48px; font-size:19px;}
    .flow-body-card{padding:18px 20px;}
  }

  .flow-mini-contacts{display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:20px;}
  .flow-mini-contact{
    display:inline-flex; align-items:center; gap:7px; padding:8px 14px;
    background:var(--teal-light); color:var(--teal); border-radius:999px;
    font-size:14px; font-weight:700; transition:background .2s ease, transform .2s ease;
  }
  .flow-mini-contact svg{width:15px; height:15px; flex-shrink:0;}
  .flow-mini-contact:hover{background:var(--gold); color:#fff; transform:translateY(-2px);}

  .flow-step-title-bar .step-num{
    font-family:"Zen Old Mincho",serif; font-weight:700; font-size:14px; background:var(--coral);
    width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .flow-step-title-bar span.label{font-size:17px; font-weight:700;}
  .flow-step-content p{font-size:17px; color:var(--text-light); line-height:1.75;}
  .concern-card{
    background:var(--white); border:1px solid var(--border); border-radius:var(--radius);
    padding:26px 22px; display:flex; gap:14px; align-items:flex-start;
    transition:transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease, border-color .3s ease;
  }
  .concern-card:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:rgba(226,112,63,0.35);}
  .concern-card svg{width:28px; height:28px; color:var(--coral-dark); flex-shrink:0; margin-top:2px;}
  .concern-card p{font-size:16.5px; font-weight:600; color:var(--text); line-height:1.6;}

  .statement-banner{
    max-width:760px; margin:44px auto 0; background:var(--white); border-left:4px solid var(--coral);
    border-radius:0 16px 16px 0; padding:30px 34px; box-shadow:var(--shadow);
  }
  .statement-banner p{font-family:"Zen Old Mincho",serif; font-size:21px; line-height:1.9; color:var(--navy); font-weight:600;}
  .statement-banner.on-dark{background:rgba(255,255,255,0.07); border-left-color:var(--gold);}
  .statement-banner.on-dark p{color:#f6f1e6;}

  .qa-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
  @media(max-width:780px){ .qa-grid{grid-template-columns:1fr;} }
  .qa-card{background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:26px 26px; transition:transform .25s ease, box-shadow .25s ease;}
  .qa-card:hover{transform:translateY(-4px); box-shadow:var(--shadow);}
  .qa-card .q{display:flex; gap:10px; align-items:flex-start; font-size:18px; font-weight:700; color:var(--navy); margin-bottom:12px;}
  .qa-card .q .qmark{width:26px;height:26px;border-radius:50%;background:var(--cream-2);color:var(--coral-dark);display:flex;align-items:center;justify-content:center;font-family:"Zen Old Mincho",serif;font-size:14px;flex-shrink:0;margin-top:1px;}
  .qa-card .a{display:flex; gap:10px; align-items:flex-start; font-size:16.5px; line-height:1.6; color:var(--text-light); padding-left:36px;}
  .qa-card .a svg{width:16px;height:16px;color:var(--teal); flex-shrink:0; margin-top:3px;}
  .qa-card.highlight{background:var(--white); border-color:var(--border);}

  /* ---------- STORY-STYLE NAVY BLOCK (reused for 06) ---------- */
  .navy-block{background:var(--navy); color:#fff; position:relative; overflow:hidden; padding:120px 0 150px;}
  .navy-block::before{
    content:""; position:absolute; top:-120px; right:-120px; width:420px; height:420px;
    background:radial-gradient(circle, rgba(171,140,82,0.14), transparent 70%);
    animation:floatBlob 26s ease-in-out infinite;
  }
  .navy-block::after{
    content:""; position:absolute; bottom:-140px; left:-100px; width:360px; height:360px; border-radius:50%;
    background:radial-gradient(circle, rgba(171,140,82,0.1), transparent 70%);
    animation:floatBlob2 30s ease-in-out infinite;
  }
  .navy-block .eyebrow{color:var(--gold);}
  .navy-block .eyebrow::before{background:var(--gold);}
  .navy-block h2.title{color:#fff;}
  .navy-block p{color:rgba(255,255,255,0.82);}
  .wave-divider{ margin-top:-90px; line-height:0; position:relative; z-index:2; }
  .wave-divider svg{ width:100%; height:90px; display:block; }
  .navy-inner{position:relative; z-index:1; max-width:760px; margin:0 auto; text-align:center;}
  .navy-inner .lead{margin-left:auto; margin-right:auto;}

  /* ---------- PHILOSOPHY / BALANCE ---------- */
  .balance-row{display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; margin:40px 0;}
  .balance-card{background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:26px 32px; text-align:center; min-width:170px; box-shadow:var(--shadow);}
  .balance-card .bicon{display:flex; align-items:center; justify-content:center; width:46px; height:46px; margin:0 auto 10px; border-radius:50%; background:var(--teal-light); color:var(--teal);}
  .balance-card .bicon svg{width:24px; height:24px;}
  .balance-card b{display:block; font-family:"Zen Old Mincho",serif; font-size:21px; color:var(--navy); margin-bottom:4px;}
  .balance-card span{font-size:16px; color:var(--text-light);}
  .balance-times{font-family:"Zen Old Mincho",serif; font-size:28px; color:var(--coral-dark); font-weight:700;}

  /* ---------- LINEUP ---------- */
  .lineup-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
  @media(max-width:860px){ .lineup-grid{grid-template-columns:repeat(2,1fr);} }
  .lineup-card{background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:26px 16px; text-align:center; box-shadow:0 10px 28px -20px rgba(10,22,29,0.18); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
  .lineup-card:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:rgba(226,112,63,0.35);}
  .lineup-icon{width:52px;height:52px;border-radius:14px;background:var(--teal-light);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
  .lineup-icon svg{width:26px;height:26px;color:var(--teal);}
  .lineup-card span{display:block; font-size:18px; font-weight:700; color:var(--navy); letter-spacing:0.03em; line-height:1.4;}

  /* ---------- FLOW ---------- */
  .flow-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:16px; position:relative;}
  @media(max-width:980px){ .flow-grid{grid-template-columns:repeat(3,1fr);} }
  @media(max-width:620px){ .flow-grid{grid-template-columns:1fr;} }
  .flow-card{background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:24px 18px; text-align:center;}
  .flow-step{
    width:38px; height:38px; border-radius:50%; background:var(--navy); color:#fff;
    display:flex; align-items:center; justify-content:center; font-family:"Zen Old Mincho",serif; font-weight:700;
    margin:0 auto 14px;
  }
  .flow-card svg{width:28px; height:28px; color:var(--teal); margin:0 auto 10px;}
  .flow-card h4{font-size:17px; color:var(--navy); margin-bottom:6px;}
  .flow-card p{font-size:16px; line-height:1.6; color:var(--text-light);}

  /* ---------- MESSAGE ---------- */
  .message-wrap{display:grid; grid-template-columns:auto 1fr; gap:56px; align-items:center;}
  @media(max-width:900px){ .message-wrap{grid-template-columns:1fr;} }
  .message-photo{
    background:rgba(255,255,255,0.06); border:1px dashed rgba(255,255,255,0.35); border-radius:22px;
    aspect-ratio:3/4; width:100%; max-width:260px; margin:0 auto;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:10px; text-align:center; padding:24px; position:relative; overflow:hidden;
  }
  .message-photo svg{width:60px; height:60px; color:rgba(255,255,255,0.6);}
  .message-photo span{font-size:14px; color:rgba(255,255,255,0.55);}
  .message-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:22px; z-index:2;}
  .message-body p{color:rgba(255,255,255,0.85); font-size:18px; line-height:1.9; margin-bottom:18px;}
  .message-signature{margin-top:26px; font-family:"Zen Old Mincho",serif; font-size:17px; color:var(--gold);}

  /* ---------- PROMISE ---------- */
  .promise-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
  @media(max-width:620px){ .promise-grid{grid-template-columns:1fr;} }
  .promise-card{background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:24px 18px; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
  .promise-card:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:rgba(226,112,63,0.35);}
  .promise-num{font-family:"Zen Old Mincho",serif; font-size:24px; color:var(--coral-dark); font-weight:700; margin-bottom:10px;}
  .promise-card h4{font-size:16.5px; color:var(--navy); margin-bottom:8px; line-height:1.5;}
  .promise-card p{font-size:16px; color:var(--text-light); line-height:1.6;}

  /* ---------- VOICE (testimonial placeholders) ---------- */
  .voice-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
  @media(max-width:780px){ .voice-grid{grid-template-columns:1fr;} }
  .voice-card{background:var(--white); border:1.5px dashed var(--border); border-radius:var(--radius); padding:30px 28px;}
  .voice-tag{display:inline-block; background:var(--cream-2); color:var(--text-light); font-size:14px; font-weight:700; padding:5px 12px; border-radius:999px; margin-bottom:18px;}
  .voice-step{font-size:16.5px; color:var(--text-light); margin-bottom:10px; padding-left:20px; position:relative; line-height:1.6;}
  .voice-step::before{content:"→"; position:absolute; left:0; color:var(--coral-dark); font-weight:700;}
  .voice-step b{color:var(--navy);}
  .voice-note{font-size:15.5px; color:var(--text-light); margin-top:16px; border-top:1px solid var(--border); padding-top:14px;}
  .voice-quote-mark{width:26px; height:26px; color:var(--gold); margin-bottom:10px;}
  .voice-quote-text{font-size:16.5px; color:var(--text); line-height:1.85; margin-bottom:16px;}
  .voice-attr{font-size:14.5px; color:var(--text-light); font-weight:700;}

  /* ---------- TEAM / COMPANY ---------- */
  .solo-team-card{display:flex; gap:28px; align-items:center; background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:34px; box-shadow:var(--shadow); margin-bottom:48px; flex-wrap:wrap;}
  .solo-team-card .profile-photo{width:130px; height:130px; flex-shrink:0; margin-bottom:0;}
  .solo-team-card .profile-img{border-radius:50%;}
  .solo-team-info{flex:1; min-width:240px;}
  .solo-team-info h3{font-size:24px; color:var(--navy); margin-bottom:4px;}
  .solo-team-info .role{font-size:16px; color:var(--text-light); margin-bottom:12px;}
  .solo-team-info .specialty{font-size:16px; color:var(--teal); font-weight:700; margin-bottom:14px;}
  .profile-photo{
    position:relative; overflow:hidden;
    width:104px; height:104px; border-radius:50%; background:var(--cream-2);
    display:flex; align-items:center; justify-content:center; margin-bottom:18px; border:1px dashed var(--border);
  }
  .profile-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; border-radius:50%;}
  .profile-photo svg{width:44px; height:44px; color:var(--text-light);}
  .badge-mini-list{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px;}
  .badge-mini{background:var(--cream-2); color:var(--navy); font-size:14.5px; font-weight:700; padding:6px 12px; border-radius:999px;}

  .company-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
  @media(max-width:820px){ .company-grid{grid-template-columns:1fr;} }
  .company-table{width:100%; border-collapse:collapse;}
  .company-table tr{border-bottom:1px solid var(--border);}
  .company-table td{padding:16px 8px; font-size:17px; vertical-align:top;}
  .company-table td:first-child{color:var(--text-light); width:130px; font-weight:700; white-space:nowrap;}
  .map-box{
    background:var(--cream-2); border:1px solid var(--border); border-radius:var(--radius);
    aspect-ratio:4/3; overflow:hidden; box-shadow:var(--shadow);
  }
  .map-box svg{width:40px; height:40px; color:var(--teal);}

  /* ---------- CONTACT METHODS ---------- */
  .contact-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
  @media(max-width:940px){ .contact-grid{grid-template-columns:1fr 1fr;} }
  @media(max-width:560px){ .contact-grid{grid-template-columns:1fr;} }
  .contact-card{
    background:var(--white); border:1px solid var(--border); border-radius:var(--radius);
    padding:28px 22px; text-align:center; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .contact-card:hover{transform:translateY(-5px); box-shadow:var(--shadow); border-color:rgba(226,112,63,0.35);}
  .contact-icon{width:56px; height:56px; border-radius:16px; margin:0 auto 16px; display:flex; align-items:center; justify-content:center;}
  .contact-icon svg{width:28px; height:28px;}
  .contact-card h4{font-size:18px; color:var(--navy); margin-bottom:8px; font-weight:700;}
  .contact-card p{font-size:16.5px; line-height:1.6; color:var(--text-light); margin-bottom:18px; min-height:38px;}
  .soon-tag{display:inline-block; background:var(--cream-2); color:var(--text-light); font-size:13.5px; font-weight:700; padding:4px 10px; border-radius:999px; margin-bottom:8px;}

  /* ---------- FORM ---------- */
  .form-section{background:var(--white); border:1px solid var(--border); border-radius:24px; padding:48px; box-shadow:var(--shadow);}
  @media(max-width:640px){ .form-section{padding:28px 20px;} }
  .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
  @media(max-width:640px){ .form-grid{grid-template-columns:1fr;} }
  .field{display:flex; flex-direction:column; gap:8px; margin-bottom:20px;}
  .field.full{grid-column:1 / -1;}
  .field label{font-size:16.5px; font-weight:700; color:var(--navy);}
  .field label .req{color:var(--coral-dark); font-size:14.5px; margin-left:4px;}
  .consent-check{
    display:flex; align-items:flex-start; gap:10px; margin:24px 0 4px;
    padding:16px 18px; background:var(--cream-2); border-radius:10px;
    font-size:15.5px; color:var(--text); cursor:pointer;
  }
  .consent-check input{width:19px; height:19px; margin-top:2px; accent-color:var(--coral); flex-shrink:0; cursor:pointer;}
  .consent-check .req{color:var(--coral-dark); font-size:13.5px; margin-left:4px; font-weight:700;}
  .field input, .field select, .field textarea{
    border:1.5px solid var(--border); border-radius:10px; padding:14px 16px; font-size:17px;
    font-family:inherit; color:var(--text); background:var(--cream); transition:border-color .2s ease;
  }
  .field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--teal); background:#fff;}
  .field textarea{resize:vertical; min-height:110px;}
  .form-foot{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-top:8px;}
  .form-note{font-size:15.5px; color:var(--text-light); display:flex; align-items:center; gap:8px;}
  .form-note svg{width:16px; height:16px; color:var(--teal); flex-shrink:0;}
  #form-success{display:none; text-align:center; padding:50px 20px; background:var(--teal-light); border-radius:16px;}
  #form-success svg{width:48px; height:48px; color:var(--teal); margin:0 auto 16px;}
  #form-success h3{color:var(--navy); font-size:22px; margin-bottom:8px;}
  #form-success p{color:var(--text-light); font-size:17.5px;}

  /* ---------- FAQ ---------- */
  .faq-list{max-width:820px; margin:0 auto;}
  .faq-item{border-bottom:1px solid var(--border);}
  .faq-q{
    width:100%; text-align:left; background:none; border:none; padding:24px 0;
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    font-size:19px; font-weight:700; color:var(--navy); cursor:pointer; font-family:inherit;
  }
  .faq-q .qmark{
    width:28px; height:28px; border-radius:50%; background:var(--cream-2); color:var(--coral-dark);
    display:flex; align-items:center; justify-content:center; font-family:"Zen Old Mincho",serif; flex-shrink:0; font-size:15px;
  }
  .faq-plus{width:20px; height:20px; flex-shrink:0; position:relative;}
  .faq-plus::before, .faq-plus::after{content:""; position:absolute; background:var(--navy); border-radius:2px; transition:transform .3s ease;}
  .faq-plus::before{width:100%; height:2px; top:9px; left:0;}
  .faq-plus::after{width:2px; height:100%; left:9px; top:0;}
  .faq-item.open .faq-plus::after{transform:rotate(90deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease;}
  .faq-a p{font-size:17px; line-height:1.75; color:var(--text-light); padding:0 0 24px 40px;}

  /* ---------- FINAL CTA ---------- */
  .final-cta{
    background:linear-gradient(155deg,var(--navy),var(--navy-dark));
    color:#fff; text-align:center; border-radius:32px; padding:64px 40px; position:relative; overflow:hidden;
  }
  .final-cta::before{content:""; position:absolute; inset:0; background:radial-gradient(circle at 80% 20%, rgba(226,112,63,0.25), transparent 55%);}
  .final-cta h2{position:relative; z-index:1; color:#fff; font-size:clamp(26px,4vw,38px); margin-bottom:18px;}
  .final-cta p{position:relative; z-index:1; font-size:19px; color:rgba(255,255,255,0.82); margin-bottom:32px; max-width:560px; margin-left:auto; margin-right:auto;}
  .final-cta .cta-row{position:relative; z-index:1; justify-content:center;}

  /* ---------- FINAL REASSURANCE ---------- */
  .reassure{max-width:640px; margin:0 auto; text-align:center;}
  .reassure-photo{width:112px; height:112px; border-radius:50%; overflow:hidden; margin:0 auto 24px; box-shadow:var(--shadow); border:4px solid #fff;}
  .reassure-photo img{width:100%; height:100%; object-fit:cover; display:block;}
  .reassure p{font-size:19px; line-height:1.9; color:var(--text-light); margin-bottom:14px;}
  .reassure .big{font-family:"Zen Old Mincho",serif; font-size:24px; color:var(--navy); font-weight:700; line-height:1.7; margin-bottom:22px;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--navy-dark); color:rgba(255,255,255,0.7); padding:50px 0 26px; font-size:16.5px;}
  .footer-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px; margin-bottom:30px;}
  .footer-brand{max-width:320px;}
  .footer-brand .logo{color:#fff; margin-bottom:12px;}
  .footer-cols{display:flex; gap:60px; flex-wrap:wrap;}
  .footer-cols h5{color:#fff; font-size:16.5px; margin-bottom:14px; letter-spacing:0.06em;}
  .footer-cols li{margin-bottom:9px; color:rgba(255,255,255,0.6);}
  .footer-bottom{border-top:1px solid rgba(255,255,255,0.12); padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; color:rgba(255,255,255,0.45); font-size:15px;}

  /* ---------- DESKTOP STICKY CTA BAR ---------- */
  .sticky-cta-bar{
    position:fixed; bottom:0; left:0; right:0; z-index:190;
    background:linear-gradient(120deg,rgba(19,36,48,0.82) 0%,rgba(10,22,29,0.82) 100%);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    border-top:1px solid rgba(171,140,82,0.5);
    padding:14px 28px; box-shadow:0 -10px 30px rgba(10,22,29,0.28);
    transform:translateY(100%); transition:transform .35s ease;
  }
  .sticky-cta-bar.show{transform:translateY(0);}
  .sticky-cta-inner{
    max-width:1120px; margin:0 auto; display:flex; align-items:center;
    justify-content:center; gap:26px; flex-wrap:wrap; text-align:center;
  }
  .sticky-cta-text{display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; justify-content:center;}
  .sticky-cta-text strong{font-family:"Zen Old Mincho",serif; font-size:19px; font-weight:700; color:#fff; letter-spacing:0.03em;}
  .sticky-cta-text span{font-size:14px; color:rgba(255,255,255,0.75); font-weight:600;}
  .sticky-cta-btn{animation:ctaPulse 2.6s ease-in-out infinite;}
  @keyframes ctaPulse{ 0%,100%{ box-shadow:0 10px 26px -12px rgba(224,83,10,0.6);} 50%{ box-shadow:0 10px 34px -6px rgba(242,112,25,0.85);} }
  @media(max-width:780px){ .sticky-cta-bar{display:none;} }

  /* ---------- MOBILE STICKY BAR ---------- */
  .sticky-bar{
    position:fixed; bottom:0; left:0; right:0; z-index:190; display:none;
    background:#fff; border-top:1px solid var(--border); padding:10px 14px;
    box-shadow:0 -8px 24px rgba(10,37,48,0.12);
  }
  .sticky-bar .row{display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px;}
  .sticky-bar a{
    display:flex; flex-direction:column; align-items:center; gap:3px; font-size:13.5px; font-weight:700;
    padding:8px 4px; border-radius:12px; color:var(--navy);
  }
  .sticky-bar a svg{width:19px; height:19px;}
  .sticky-bar a.primary{background:var(--coral); color:#fff;}
  .sticky-bar a.chat{background:var(--navy); color:#fff;}
  @media(max-width:780px){ .sticky-bar{display:block;} body{padding-bottom:78px;} }
  @media(min-width:781px){ body{padding-bottom:76px;} }

  /* ---------- プライバシーポリシー ポップアップ ---------- */
  #privacy-overlay{
    position:fixed; inset:0; z-index:400; display:none;
    background:rgba(10,22,29,0.55); backdrop-filter:blur(3px);
    align-items:center; justify-content:center; padding:24px;
  }
  #privacy-overlay.open{display:flex;}
  #privacy-modal{
    position:relative; background:#fff; border-radius:20px; max-width:640px; width:100%;
    max-height:82vh; overflow-y:auto; padding:44px 36px 36px; box-shadow:0 30px 70px -20px rgba(10,22,29,0.45);
    animation:privacyPopIn .25s ease;
  }
  @keyframes privacyPopIn{ from{ opacity:0; transform:translateY(12px) scale(0.98);} to{ opacity:1; transform:translateY(0) scale(1);} }
  #privacy-close{
    position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:50%;
    background:var(--cream-2); color:var(--navy); display:flex; align-items:center; justify-content:center;
    border:none; cursor:pointer; transition:background .2s ease;
  }
  #privacy-close:hover{background:var(--border);}
  #privacy-close svg{width:18px; height:18px;}
  .privacy-modal-title{font-family:"Zen Old Mincho",serif; font-size:24px; font-weight:700; color:var(--navy); margin-bottom:20px;}
  .privacy-modal-body{font-size:15.5px; line-height:1.9; color:var(--text-light);}
  .privacy-modal-body h4{color:var(--navy); font-size:16.5px; margin-bottom:8px;}


  /* ---------- POLISH: progress bar / grain ---------- */
  #scroll-progress{
    position:fixed; top:0; left:0; height:3px; width:0%; z-index:300;
    background:linear-gradient(90deg,var(--coral),var(--gold)); box-shadow:0 0 12px rgba(226,112,63,0.6);
    transition:width .12s linear;
  }
  body::after{
    content:""; position:fixed; inset:0; pointer-events:none; z-index:250; opacity:0.035; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }
  .count-up{ font-variant-numeric:tabular-nums; }

  ::selection{background:var(--coral); color:#fff;}
