/* page-flow.css - page-specific styles */

h2{font-size:clamp(1.05rem, 0.85rem + 2.2vw, 1.9rem);}

.c-hero h1 .c-highlight{
    background:none;
    color:#B31F31;
    font-size:1.25em;
  }

.c-heading__mark{color:#B31F31; font-size:1.3em;}

#flow h2{font-size:clamp(1.2075rem, 0.9775rem + 2.53vw, 2.185rem);}

#flow h2 .c-heading__mark{font-size:calc(1.3em / 1.15);}

/* ---------- Marks & emphasis ---------- */
  .c-mark{
    background:linear-gradient(180deg, transparent 58%, var(--yellow) 58%);
    padding:0 .1em;
    font-weight:700;
  }

.c-mark__block{
    display:inline-block;
    background:var(--yellow);
    color:var(--purple-900);
    padding:.25em .7em;
    border-radius:3px;
    font-weight:700;
  }

/* Header hamburger: square button, dark purple background, white lines */
  .c-hamburger--header{
    width:40px; height:40px;
    background:var(--purple-900);
    border-radius:8px;
  }

.c-hamburger--header span{
    left:10px; right:10px;
    background:#fff;
  }

.c-hamburger--header span:nth-child(1){top:13px;}

.c-hamburger--header span:nth-child(2){top:19px;}

.c-hamburger--header span:nth-child(3){top:25px;}

.c-hamburger--header.is-open span:nth-child(1){top:19px; transform:rotate(45deg);}

.c-hamburger--header.is-open span:nth-child(3){top:19px; transform:rotate(-45deg);}

@media(max-width:768px){
    .l-submenu__inner{display:none;}
    .c-hamburger--header{display:flex; align-items:center; justify-content:center;}
    .l-submenu{background:transparent; border-bottom:none;}
    .l-submenu.is-menu-open{background:var(--purple-900); border-bottom:1px solid rgba(255,255,255,.08);}
  }

.c-kv__placeholder .u-wrap{
    display:flex;
  }

.c-lead h1 .c-highlight{
    background:linear-gradient(180deg, transparent 62%, var(--yellow) 62%);
  }

.c-mechanism .c-eyebrow{color:var(--yellow);}

.c-mechanism .c-eyebrow::before{background:var(--yellow);}

.c-timeline{
    margin-top:52px;
    display:flex;
    flex-direction:column;
    gap:0;
  }

.c-timeline__row{
    display:grid;
    grid-template-columns:64px 1fr;
    gap:24px;
    position:relative;
    padding-bottom:40px;
  }

.c-timeline__row:last-child{padding-bottom:0;}

.c-timeline__num{
    width:52px;height:52px;border-radius:50%;
    background:var(--purple);
    color:#fff;
    font-family:"Noto Serif JP",serif;
    font-weight:700;
    display:flex;align-items:center;justify-content:center;
    font-size:1.15rem;
    z-index:2;
  }

.c-timeline__row:not(:last-child)::before{
    content:"";
    position:absolute;
    left:26px; top:52px; bottom:-14px;
    width:2px;
    background:var(--purple-300);
  }

.c-timeline__body{
    background:#fff;
    border:1px solid var(--line);
    border-radius:8px;
    padding:20px 24px;
    display:flex;
    gap:20px;
    align-items:center;
  }

.c-timeline__img{flex:none; width:100px;}

.c-timeline__img img{width:100%; height:auto; display:block;}

.c-timeline__body-text{flex:1; min-width:0;}

.c-timeline--compact .c-timeline__body{display:block; padding:14px 18px;}

@media(max-width:560px){
  .c-timeline__body{flex-direction:column; text-align:center;}
  .c-timeline__img{width:120px;}
}

.c-timeline__body h4{font-size:1.12rem;}

.c-timeline__body h4 + p{margin-top:6px;}

.c-timeline__body p{margin:0; font-size:.9rem; color:var(--ink-soft);}

/* ---------- Merits ---------- */
  .c-merit{padding:56px 0;}

.c-merit__grid{
    margin-top:48px;
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:24px;
  }

@media(max-width:768px){.c-merit__grid{grid-template-columns:minmax(0,1fr);}}

.c-merit__card{
    padding:32px 26px;
    border:1px solid var(--line);
    border-radius:10px;
    position:relative;
    background:linear-gradient(180deg,#fff, var(--purple-050));
  }

.c-merit__icon{
    width:64px;height:64px;
    border-radius:50%;
    background:var(--purple-050);
    border:1.5px solid var(--purple-300);
    display:flex;align-items:center;justify-content:center;
  }

.c-merit__icon + h4{margin-top:18px;}

.c-merit__icon svg{width:30px;height:30px;stroke:var(--purple);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}

.c-merit__icon .c-icon__accent{stroke:var(--yellow-dark);}

.c-merit__card h4{font-size:1.02rem;}

.c-merit__card h4 + p{margin-top:12px;}

.c-merit__card p{margin:0; font-size:.88rem; color:var(--ink-soft);}

.c-mini-cta .c-btn-group{max-width:640px; margin:0 auto;}

.c-callout .c-eyebrow{justify-content:center; color:var(--yellow); font-size:1.05rem; font-weight:700;}

.c-callout .c-eyebrow::before{display:none;}

.c-plan__card.is-featured{
    border:2px solid var(--yellow-dark);
    box-shadow:0 10px 30px rgba(102,80,133,.14);
    position:relative;
  }

.c-plan__badge{
    position:absolute; top:-1px; right:-1px;
    background:var(--yellow); color:var(--purple-900);
    font-size:.72rem; font-weight:700;
    padding:6px 14px; border-radius:0 0 0 8px;
  }

@keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}

/* ---------- Section intro (shared) ---------- */
  .c-section__intro{max-width:720px; margin:16px 0 0;}

.c-section__intro p{margin:0; font-size:.95rem; color:var(--ink-soft);}

/* ---------- Route cards (示談交渉 / 訴訟) ---------- */
  .c-route__grid{
    margin-top:44px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    align-items:stretch;
  }

@media(max-width:768px){.c-route__grid{grid-template-columns:minmax(0,1fr);}}

.c-route__card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:30px;
    display:flex;
    flex-direction:column;
    gap:20px;
    position:relative;
  }

.c-route__card.is-featured{
    border:2px solid var(--yellow-dark);
    box-shadow:0 10px 30px rgba(102,80,133,.14);
  }

.c-route__head h3{font-size:1.15rem;}

.c-route__head + .c-route__case{margin-top:4px;}

.c-route__head .c-route__sub{font-size:.82rem; color:var(--purple-500); font-weight:700;}

.c-route__case{
    background:var(--purple-050);
    border-radius:8px;
    padding:14px 18px;
    font-size:.85rem;
    color:var(--ink-soft);
    margin:0;
  }

.c-route__case strong{color:var(--purple-900);}

.c-route__result{
    text-align:center;
    margin-top:4px;
  }

.c-timeline--compact .c-timeline__row{grid-template-columns:44px 1fr; gap:16px; padding-bottom:24px;}

.c-timeline--compact .c-timeline__num{width:38px;height:38px;font-size:.9rem;}

.c-timeline--compact .c-timeline__row:not(:last-child)::before{left:19px; top:38px;}

.c-timeline--compact .c-timeline__body h4{font-size:.92rem;}

.c-timeline--compact .c-timeline__body p{font-size:.85rem;}

/* ---------- Comparison table (sortable) ---------- */
  .c-compare-table__wrap{margin-top:40px; overflow-x:auto; border-radius:10px; border:1px solid var(--line);}

table.c-compare-table{width:100%; border-collapse:collapse; background:#fff; min-width:560px;}

.c-compare-table th{
    background:var(--purple-900); color:#fff; text-align:left;
    padding:16px 20px; font-family:"Noto Serif JP",serif; font-weight:700; font-size:.92rem;
    white-space:nowrap;
  }

.c-compare-table td{
    padding:16px 20px; font-size:.88rem; color:var(--ink-soft);
    border-top:1px solid var(--line); vertical-align:top;
  }

.c-compare-table tbody tr:nth-child(even) td{background:var(--purple-050);}

.c-compare-table td:first-child{font-weight:700; color:var(--purple-900); white-space:nowrap;}

@media(max-width:700px){
    .c-compare-table th, .c-compare-table td{padding:12px 14px; font-size:.82rem;}
  }

/* ---------- Advice cards ---------- */
  .c-advice-icon-num{
    font-family:"Noto Serif JP",serif; font-weight:900; color:var(--purple); font-size:1.4rem;
  }

/* ---------- Anchor offset for sticky header ---------- */
  section[id]{scroll-margin-top:118px;}

/* ---------- Fixed bottom CTA (PC + Mobile) ---------- */
  body{padding-bottom:132px;}

.c-fixed-cta__photo{display:none;}

.c-fixed-cta__caption{display:none;}

@media(min-width:1100px){
    .c-fixed-cta__buttons{max-width:600px; margin:0 auto;}
    .c-fixed-cta__photo{
      display:block;
      position:absolute;
      left:calc(50% + 300px - 16px); bottom:-10px;
      pointer-events:none;
    }
    .c-fixed-cta__photo img{width:150px; height:auto; display:block;}
    .c-fixed-cta__caption{
      display:block;
      position:absolute;
      left:calc(50% + 300px - 16px + 158px);
      bottom:20px;
      width:106px;
      margin:0;
      font-size:.6rem;
      font-weight:700;
      color:var(--ink-soft);
      line-height:1.5;
      text-align:left;
      white-space:nowrap;
      pointer-events:none;
    }
  }

/* ---------- Utility classes (inline style removal) ---------- */
  .u-hidden-frame{display:none;visibility:hidden;}

.u-bg-tint{background:var(--purple-050);}

.c-eyebrow--center{justify-content:center;}
