
:root{--bg:#f7f6f1;--surface:#fffefa;--soft:#eef1ec;--ink:#22362b;--muted:#66746b;--line:#daddd6;--green:#315846;--deep:#244737;--gold:#a98d58;--goldsoft:#eee6d4;--rose:#b85f78;--shadow:0 18px 46px rgba(29,47,37,.09);--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;color:var(--ink);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;background:linear-gradient(180deg,#fbfaf6 0,#f5f6f1 54%,#faf9f5 100%);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{max-width:var(--max);margin:auto;padding:0 28px}.serif{font-family:"Yu Mincho","Hiragino Mincho ProN",serif}.eyebrow{font:600 11px Georgia,"Times New Roman",serif;letter-spacing:.17em;color:var(--gold)}
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,254,250,.96);border-bottom:1px solid rgba(49,88,70,.13);backdrop-filter:blur(12px)}.header-row{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px}.logo{width:auto;max-height:56px}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{font:500 24px Georgia,"Times New Roman",serif;color:var(--green)}.brand-copy small{font-size:9px;color:#7b887f;letter-spacing:.12em}.header-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.link-mini{font-size:12px;font-weight:700;color:#53665b}.btn{appearance:none;border:1px solid transparent;border-radius:7px;min-height:46px;padding:12px 17px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:800;letter-spacing:.02em;cursor:pointer}.btn.primary{background:var(--green);color:white;border-color:var(--green)}.btn.primary:hover{background:var(--deep)}.btn.outline{background:transparent;border-color:#b8c6bc;color:var(--green)}.btn.light{background:#fff;color:var(--deep);border-color:#fff}.btn.gold{background:var(--goldsoft);border-color:#d5c49d;color:#5e4d2b}.btn.large{min-height:52px;padding:14px 22px;font-size:14px}
.hero{padding:54px 0 58px}.hero-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:36px;align-items:center}.hero-kicker{margin:10px 0 5px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;color:#776b59;font-size:21px;letter-spacing:.05em}.hero h1{margin:12px 0 20px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:40px;font-weight:500;line-height:1.5;letter-spacing:.045em;color:#284b39}.hero h1 span{display:block}.hero-lead{margin:0;max-width:44em;color:#58675e;font-size:15px;line-height:2}.badges{display:flex;flex-wrap:wrap;gap:8px;margin:23px 0}.badge{padding:7px 10px;border:1px solid #c8d2ca;border-radius:4px;background:rgba(255,254,250,.85);font-size:11px;color:#4f6458;font-weight:700}.hero-actions{display:flex;flex-wrap:wrap;gap:10px}.hero-note{margin:12px 0 0;color:#79827c;font-size:11px;line-height:1.7}.hero-photo{position:relative}.hero-photo>img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;border:1px solid rgba(169,141,88,.4);box-shadow:var(--shadow)}.hero-sheep{position:absolute!important;width:112px!important;height:auto!important;object-fit:contain!important;aspect-ratio:auto!important;right:-12px;bottom:-22px;border:0!important;box-shadow:none!important;filter:drop-shadow(0 8px 12px rgba(33,45,38,.12))}.hero-tag{position:absolute;left:18px;bottom:18px;padding:10px 13px;background:rgba(36,71,55,.92);color:#eadfca;border:1px solid rgba(234,223,202,.6);font:500 10px Georgia,serif;letter-spacing:.14em;border-radius:4px}
.trustbar{border-block:1px solid var(--line);background:rgba(255,254,250,.7)}.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}.trust-item{padding:18px;text-align:center;border-right:1px solid var(--line);font-size:12px;font-weight:750;color:#40594a}.trust-item:last-child{border-right:0}section{padding:70px 0}section.alt{background:rgba(237,239,233,.58);border-block:1px solid rgba(222,223,216,.65)}.section-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px;align-items:end;margin-bottom:30px;padding-bottom:16px;border-bottom:1px solid #d9dbd5}.section-head h2{margin:7px 0 0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:31px;font-weight:500;letter-spacing:.06em;color:#294c3a}.section-head p{margin:0;color:#68766e;font-size:13px;line-height:1.9}
.problem-grid,.plans,.simulation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.problem,.plan,.sim-card,.info-card{padding:25px;background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:0 8px 24px rgba(30,48,38,.05)}.problem .num{display:block;color:var(--gold);font:500 13px Georgia,serif;letter-spacing:.12em;margin-bottom:12px}.problem b{display:block;font-size:16px;line-height:1.6;color:#315543;margin-bottom:8px}.problem p,.info-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.9}.feature-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.feature-image{overflow:hidden;border-radius:14px;border:1px solid var(--line);background:#fff}.feature-image img{width:100%;aspect-ratio:4/3;object-fit:cover}.feature-image p{margin:0;padding:14px 16px;color:#5c6a61;font-size:12px;line-height:1.7}
.value-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.value{display:grid;grid-template-columns:48px 1fr;gap:15px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.value-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#e8eeea;color:var(--green);font-weight:900}.value h3{margin:1px 0 7px;font-size:16px;color:#315543}.value p{margin:0;color:var(--muted);font-size:13px;line-height:1.85}
.plan{position:relative}.plan.recommended{border-color:#b9a26f;box-shadow:0 15px 38px rgba(51,77,61,.1)}.plan-label{display:inline-block;margin-bottom:12px;padding:5px 8px;border:1px solid #bcc9bf;border-radius:3px;color:#506659;font-size:10px;font-weight:800;letter-spacing:.08em}.recommended .plan-label{color:#685935;border-color:#c7b17d;background:#f9f5e9}.plan h3{margin:0 0 8px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:22px;color:#2d513d}.plan-sub{min-height:44px;margin:0 0 16px;color:var(--muted);font-size:12px;line-height:1.75}.price{margin:0;color:#2d513d;font:500 37px/1.15 Georgia,"Times New Roman",serif;white-space:nowrap}.price small{font:500 11px "Hiragino Sans","Yu Gothic",sans-serif;color:#78817b;margin-left:4px}.price-unit{margin:7px 0 16px;color:#776e5e;font-size:12px;font-weight:700}.plan-list{list-style:none;margin:0;padding:15px 0 0;border-top:1px solid #e3e4df}.plan-list li{position:relative;padding:5px 0 5px 20px;color:#59685f;font-size:12px;line-height:1.7}.plan-list li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:900}.plan-foot{margin:16px 0 0;padding-top:13px;border-top:1px solid #e3e4df;color:#7a837d;font-size:10px;line-height:1.7}.subsidy-example{margin-top:18px;padding:18px;background:#f7f8f4;border:1px solid #dde1da;border-radius:9px}.subsidy-example strong{display:block;color:#3d5d4a;margin-bottom:8px}.subsidy-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#647069;font-size:13px}.chip{padding:7px 10px;border-radius:4px;background:#fff;border:1px solid #d4d9d3;font-weight:700;color:#365543}.operation-box{margin-top:20px;padding:22px 24px;border:1px solid #d7d7ca;border-radius:12px;background:#fffdf7}.operation-box h3{margin:0 0 14px;font-size:17px;color:#315543}.operation-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.operation-step{padding:14px;border-radius:8px;background:#f3f5f0}.operation-step b{display:block;color:#315543;font-size:12px;margin-bottom:6px}.operation-step p{margin:0;color:#657269;font-size:11px;line-height:1.75}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.step{padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:11px}.step img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;border:1px solid #ece4d8;margin-bottom:13px}.step-num{font:500 12px Georgia,serif;color:var(--gold);letter-spacing:.12em}.step h3{margin:10px 0 8px;font-size:15px;color:#315543;line-height:1.5}.step p{margin:0;color:var(--muted);font-size:12px;line-height:1.8}
.report-box{display:grid;grid-template-columns:1fr 1fr;gap:18px}.report-card{padding:28px;background:#284b39;color:#f9f7ef;border:1px solid var(--gold);border-radius:13px}.report-card .eyebrow{color:#d9c79e}.report-card h3{margin:10px 0 12px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:24px;font-weight:500}.report-card p{margin:0;color:#e2e7e2;font-size:13px;line-height:1.9}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.metric{padding:12px;border:1px solid rgba(231,217,187,.36);border-radius:6px}.metric b{display:block;color:#f5ecd9;font-size:13px;margin-bottom:4px}.metric span{font-size:10px;color:#becbc2}.privacy-card{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:13px}.privacy-card h3{margin:0 0 12px;font-size:19px;color:#315543}.privacy-card p{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.9}.privacy-card ul{margin:0;padding-left:19px;color:#5f6d64;font-size:12px;line-height:2}
.simulation-grid{grid-template-columns:repeat(2,1fr)}.sim-card{box-shadow:none}.sim-label{font-size:10px;color:var(--gold);font-weight:800;letter-spacing:.08em}.sim-card h3{margin:9px 0 12px;font-size:18px;color:#315543}.sim-numbers{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.sim-number{padding:9px 11px;border-radius:7px;background:#f0f3ee;color:#315543;font-size:12px;font-weight:800}.sim-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.8}.simulation-note{margin:14px 0 0;color:#7a837d;font-size:10px;line-height:1.7}
.fit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.fit{padding:18px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:10px;color:#3f5b4b;font-weight:700;font-size:13px;line-height:1.6}.fit span{display:block;margin-top:5px;color:#7c847e;font-size:10px;font-weight:500}.faq{max-width:900px;margin:auto}details{background:var(--surface);border:1px solid var(--line);border-radius:9px;margin-bottom:10px;overflow:hidden}summary{position:relative;padding:18px 50px 18px 20px;cursor:pointer;list-style:none;font-weight:700;color:#355544;font-size:14px}summary::-webkit-details-marker{display:none}summary:after{content:"＋";position:absolute;right:20px;top:16px;color:var(--gold);font-size:20px}details[open] summary:after{content:"−"}.faq-answer{padding:0 20px 18px;color:#68746d;font-size:12px;line-height:1.95}
.download-band{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;align-items:center;padding:28px 30px;background:#fffdf8;border:1px solid #d7c9a9;border-radius:13px}.download-band h3{margin:7px 0 10px;font-size:22px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;color:#315543}.download-band p{margin:0;color:var(--muted);font-size:12px;line-height:1.85}.download-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.contact-wrap{display:grid;grid-template-columns:.83fr 1.17fr;gap:22px;align-items:start}.contact-intro{padding:29px;background:#284b39;color:#fff;border:1px solid var(--gold);border-radius:14px}.contact-intro .eyebrow{color:#dbc99f}.contact-intro h2{margin:9px 0 12px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500;font-size:29px;line-height:1.5}.contact-intro p{margin:0;color:#dfe7e1;font-size:13px;line-height:1.9}.contact-points{margin:17px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:7px}.contact-points li{font-size:10px;border:1px solid rgba(231,217,187,.35);padding:6px 8px;border-radius:3px;color:#d7e0da}.contact-intro .btn{margin-top:18px;width:100%}.contact-form{padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:800;color:#41594c}.req{color:var(--rose);font-size:10px;margin-left:4px}.field input,.field select,.field textarea{width:100%;border:1px solid #cdd4ce;border-radius:7px;background:white;padding:12px 13px;font:inherit;font-size:13px;color:var(--ink);outline:none}.field textarea{min-height:130px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#6e8c7c;box-shadow:0 0 0 3px rgba(49,88,70,.08)}.agree{display:flex;gap:9px;align-items:flex-start;margin:15px 0;color:#66746b;font-size:11px;line-height:1.7}.agree input{margin-top:3px}.agree a{text-decoration:underline}.form-note{margin:10px 0 0;color:#7b847e;font-size:10px;line-height:1.7}.form-note strong{color:#9a4d60}.contact-form button{width:100%}
.legal-links{display:flex;gap:12px;flex-wrap:wrap}.legal-links a{text-decoration:underline;text-underline-offset:3px}footer{padding:28px 0 40px;border-top:1px solid var(--line);color:#748078;font-size:11px;background:#f4f5f0}.footer-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-end}.footer-brand b{display:block;color:#496253;margin-bottom:4px}.status-note{padding:13px 15px;border-radius:8px;background:#fff8e8;border:1px solid #e1cf9e;color:#715d34;font-size:11px;line-height:1.8;margin-bottom:16px}
.legal-page{padding:55px 0 80px}.legal-card{max-width:900px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:34px}.legal-card h1{margin:5px 0 12px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;color:#294c3a;font-size:32px}.legal-card h2{margin:30px 0 10px;font-size:18px;color:#315543}.legal-card p,.legal-card li{font-size:12px;line-height:1.95;color:#5f6d64}.legal-card table{width:100%;border-collapse:collapse;margin:14px 0;font-size:12px}.legal-card th,.legal-card td{border:1px solid var(--line);padding:10px;vertical-align:top;text-align:left}.legal-card th{width:28%;background:#f3f5f0;color:#3d5749}.legal-card .note{padding:13px 15px;background:#f7f5ee;border:1px solid #e0d7c3;border-radius:8px;color:#665b48}
@media(max-width:960px){.hero-grid,.section-head,.contact-wrap,.download-band{grid-template-columns:1fr}.plans,.problem-grid{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.fit-grid{grid-template-columns:repeat(2,1fr)}.feature-strip{grid-template-columns:1fr}.download-actions{justify-content:flex-start}.hero-sheep{right:0}.header-actions .link-mini{display:none}}@media(max-width:640px){.container{padding:0 18px}.header-row{min-height:68px}.logo{max-height:44px}.brand-copy strong{font-size:18px}.brand-copy small{display:none}.header-actions .btn.gold{display:none}.hero{padding:36px 0 42px}.hero h1{font-size:30px}.hero-kicker{font-size:17px}.trust-grid{grid-template-columns:repeat(2,1fr)}.trust-item:nth-child(2){border-right:0}.trust-item:nth-child(-n+2){border-bottom:1px solid var(--line)}section{padding:54px 0}.section-head h2{font-size:27px}.value-grid,.report-box,.simulation-grid,.operation-steps,.form-grid{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.fit-grid{grid-template-columns:1fr 1fr}.field.full{grid-column:auto}.hero-actions .btn{width:100%}.hero-sheep{width:84px!important;bottom:-14px}.contact-intro,.contact-form,.legal-card{padding:22px}.legal-card table,.legal-card tbody,.legal-card tr,.legal-card th,.legal-card td{display:block}.legal-card th{width:auto;border-bottom:0}}


/* Hero headline line-break fix */
.hero h1 .hero-line-booking{
  display:block;
  white-space:nowrap;
  font-size:.88em;
  letter-spacing:.025em;
}
@media(max-width:900px){
  .hero h1 .hero-line-booking{font-size:.94em;}
}
@media(max-width:640px){
  .hero h1 .hero-line-booking{
    font-size:.88em;
    letter-spacing:.005em;
  }
}
@media(max-width:420px){
  .hero h1 .hero-line-booking{font-size:.82em;}
}

/* Hero compact layout — reduce excess vertical space */
@media (min-width: 961px){
  .hero{padding:34px 0 38px;}
  .hero-grid{
    grid-template-columns:1.06fr .94fr;
    gap:30px;
    align-items:center;
  }
  .hero-photo{
    width:100%;
    max-width:520px;
    justify-self:end;
  }
  .hero-photo>img:not(.hero-sheep){
    aspect-ratio:3/2;
    object-fit:cover;
    object-position:center 45%;
  }
  .hero-kicker{margin:6px 0 3px;}
  .hero h1{margin:8px 0 14px;line-height:1.34;}
  .hero-lead{line-height:1.82;}
  .badges{margin:16px 0;}
  .hero-note{margin-top:8px;}
}

@media (max-width: 960px) and (min-width: 641px){
  .hero{padding:34px 0 40px;}
  .hero-grid{gap:26px;}
  .hero-photo{
    width:min(100%,680px);
    justify-self:center;
  }
  .hero-photo>img:not(.hero-sheep){aspect-ratio:16/10;object-fit:cover;object-position:center 45%;}
}

@media (max-width: 640px){
  .hero{padding:26px 0 32px;}
  .hero-grid{gap:22px;}
  .hero-kicker{margin:5px 0 2px;}
  .hero h1{margin:7px 0 12px;line-height:1.38;}
  .hero-lead{line-height:1.8;}
  .badges{margin:14px 0;}
  .hero-note{margin-top:8px;}
  .hero-photo>img:not(.hero-sheep){aspect-ratio:16/10;object-fit:cover;object-position:center 45%;}
}



/* Hero compact layout v7 — make hero photo clearly shorter on both desktop and mobile */
.hero{
  padding:26px 0 30px;
}
.hero-grid{
  grid-template-columns:1.08fr .92fr;
  gap:22px;
  align-items:center;
}
.hero-kicker{
  margin:0 0 4px;
}
.hero h1{
  margin:6px 0 12px;
  line-height:1.28;
}
.hero-lead{
  line-height:1.8;
}
.badges{
  margin:14px 0;
}
.hero-note{
  margin-top:8px;
}
.hero-photo{
  width:100%;
  max-width:480px;
  justify-self:end;
}
.hero-photo>img:not(.hero-sheep){
  width:100%;
  aspect-ratio:16/9;
  max-height:320px;
  object-fit:cover;
  object-position:center 44%;
  border-radius:16px;
}
.hero-tag{
  left:14px;
  bottom:14px;
  padding:8px 11px;
}

@media (max-width: 960px){
  .hero{
    padding:24px 0 28px;
  }
  .hero-grid{
    gap:18px;
  }
  .hero-photo{
    max-width:100%;
    justify-self:center;
  }
  .hero-photo>img:not(.hero-sheep){
    aspect-ratio:16/9;
    max-height:300px;
    object-position:center 44%;
  }
}

@media (max-width: 640px){
  .hero{
    padding:20px 0 24px;
  }
  .hero-grid{
    gap:16px;
  }
  .hero-kicker{
    margin:0 0 3px;
    font-size:16px;
  }
  .hero h1{
    margin:5px 0 10px;
    font-size:28px;
    line-height:1.3;
  }
  .hero-lead{
    font-size:14px;
    line-height:1.72;
  }
  .badges{
    margin:12px 0;
  }
  .hero-photo>img:not(.hero-sheep){
    aspect-ratio:16/9;
    max-height:220px;
    object-position:center 44%;
    border-radius:14px;
  }
  .hero-sheep{
    width:72px !important;
    right:-6px;
    bottom:-10px;
  }
  .hero-tag{
    left:12px;
    bottom:12px;
    padding:7px 10px;
  }
}


/* v8: Keep Hero headline line breaks identical on desktop and mobile */
.hero h1 > span{
  display:block;
  white-space:nowrap;
}
@media (max-width:640px){
  .hero h1{
    font-size:28px;
    line-height:1.30;
  }
  .hero h1 > span{
    white-space:nowrap;
  }
  .hero h1 .hero-line-booking{
    font-size:.88em;
    letter-spacing:.005em;
  }
}
@media (max-width:420px){
  .hero h1{
    font-size:27px;
  }
  .hero h1 .hero-line-booking{
    font-size:.82em;
  }
}
@media (max-width:360px){
  .hero h1{
    font-size:25px;
  }
  .hero h1 .hero-line-booking{
    font-size:.80em;
  }
}


/* v9: Mobile Hero order
   Copy -> Hero image -> description / badges / buttons */
@media (max-width: 640px){
  .hero-grid{
    display:grid;
    grid-template-columns:1fr;
  }

  /* Flatten the text wrapper so the photo can sit immediately after h1 */
  .hero-grid > div:first-child{
    display:contents;
  }

  .hero-grid .eyebrow{order:1;}
  .hero-grid .hero-kicker{order:2;}
  .hero-grid h1{order:3;}
  .hero-grid .hero-photo{
    order:4;
    margin:2px 0 8px;
  }
  .hero-grid .hero-lead{order:5;}
  .hero-grid .badges{order:6;}
  .hero-grid .hero-actions{order:7;}
  .hero-grid .hero-note{order:8;}

  .hero-photo>img:not(.hero-sheep){
    width:100%;
    aspect-ratio:16/9;
    max-height:220px;
    object-fit:cover;
    object-position:center 44%;
  }
}


/* v10: WHY SLEEP SHEEP cards — image + copy as one explanatory unit */
.problem-grid-visual{
  align-items:stretch;
}
.problem.problem-visual{
  padding:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:var(--surface);
}
.problem-media{
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.problem-media img{
  display:block;
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
}
.problem-body{
  padding:22px 24px 24px;
  flex:1;
}
.problem.problem-visual .num{
  margin-bottom:8px;
}
.problem.problem-visual b{
  font-size:17px;
  margin-bottom:9px;
}
.problem.problem-visual p{
  font-size:13px;
  line-height:1.85;
}
@media (max-width:960px){
  .problem.problem-visual{
    display:grid;
    grid-template-columns:minmax(180px, 38%) 1fr;
  }
  .problem-media{
    border-bottom:0;
    border-right:1px solid var(--line);
  }
  .problem-media img{
    height:100%;
    min-height:190px;
    aspect-ratio:auto;
  }
  .problem-body{
    padding:22px;
  }
}
@media (max-width:640px){
  .problem.problem-visual{
    display:flex;
  }
  .problem-media{
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .problem-media img{
    height:auto;
    min-height:0;
    aspect-ratio:16/9;
  }
  .problem-body{
    padding:18px 18px 20px;
  }
}


/* v11: Clear 3-phase corporate usage flow */
.flow-section-head{
  margin-bottom:28px;
}
.flow-simple{
  max-width:900px;
  margin:0 auto;
}
.flow-phase{
  position:relative;
  display:grid;
  grid-template-columns:110px 1fr;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--surface);
  box-shadow:0 10px 28px rgba(41,63,51,.055);
}
.flow-who{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px 14px;
  background:#294d3b;
  color:#fff;
  font-size:14px;
  font-weight:700;
  letter-spacing:.12em;
}
.employee-phase .flow-who{
  background:#9a8157;
}
.flow-phase-main{
  padding:24px 28px 26px;
}
.flow-phase-num{
  display:block;
  margin-bottom:4px;
  font:600 11px Georgia,serif;
  letter-spacing:.18em;
  color:#a3895b;
}
.flow-phase h3{
  margin:0 0 7px;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:23px;
  font-weight:600;
  color:#294d3b;
}
.flow-phase-lead{
  margin:0;
  color:#5d6b63;
  font-size:14px;
  line-height:1.8;
}
.flow-mini-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:18px;
}
.flow-mini-step{
  padding:14px 15px;
  border:1px solid #dde3de;
  border-radius:10px;
  background:#fbfaf6;
}
.flow-mini-step b{
  display:block;
  margin-bottom:5px;
  color:#294d3b;
  font-size:13px;
}
.flow-mini-step span{
  display:block;
  color:#68736c;
  font-size:11px;
  line-height:1.65;
}
.flow-point{
  margin-top:16px;
  padding:14px 16px;
  border-left:3px solid #a3895b;
  background:#fbfaf6;
  border-radius:0 8px 8px 0;
}
.flow-point strong{
  display:block;
  margin-bottom:4px;
  color:#374f42;
  font-size:13px;
}
.flow-point span{
  display:block;
  color:#68736c;
  font-size:12px;
  line-height:1.7;
}
.flow-arrow{
  height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#9c8a69;
  font-size:22px;
  line-height:1;
}
.flow-summary{
  max-width:900px;
  margin:18px auto 0;
  padding:16px 20px;
  text-align:center;
  border:1px solid rgba(163,137,91,.35);
  border-radius:12px;
  background:#f4f0e7;
  color:#415349;
}
.flow-summary b{
  display:block;
  font-size:13px;
  margin-bottom:3px;
}
.flow-summary span{
  font-size:12px;
  color:#69766e;
}

@media (max-width:720px){
  .flow-section-head{
    margin-bottom:20px;
  }
  .flow-phase{
    grid-template-columns:1fr;
  }
  .flow-who{
    justify-content:flex-start;
    padding:8px 16px;
    font-size:11px;
  }
  .flow-phase-main{
    padding:18px 18px 20px;
  }
  .flow-phase h3{
    font-size:20px;
  }
  .flow-mini-steps{
    grid-template-columns:1fr;
    gap:8px;
    margin-top:14px;
  }
  .flow-mini-step{
    display:grid;
    grid-template-columns:96px 1fr;
    gap:8px;
    align-items:start;
    padding:11px 12px;
  }
  .flow-mini-step b{
    margin:0;
  }
  .flow-arrow{
    height:28px;
    font-size:19px;
  }
  .flow-summary{
    margin-top:14px;
    padding:14px 16px;
    text-align:left;
  }
}


/* v12: Visual 3-step flow */
.flow-visual{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) 34px minmax(0,.9fr) 34px minmax(0,.9fr);
  align-items:stretch;
  gap:0;
}
.flow-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--surface);
  box-shadow:0 10px 28px rgba(41,63,51,.055);
}
.flow-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:13px 16px;
  background:#f4f0e7;
  border-bottom:1px solid var(--line);
}
.flow-card-num{
  color:#9b8358;
  font:600 11px Georgia,serif;
  letter-spacing:.17em;
}
.flow-role{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:54px;
  padding:5px 9px;
  border-radius:999px;
  background:#294d3b;
  color:#fff;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
}
.flow-role.employee{
  background:#9a8157;
}
.flow-company-images{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
}
.flow-thumb{
  position:relative;
  min-width:0;
  background:#fff;
}
.flow-thumb img{
  display:block;
  width:100%;
  aspect-ratio:1/1.05;
  object-fit:cover;
}
.flow-thumb span{
  position:absolute;
  left:8px;
  bottom:8px;
  padding:5px 7px;
  border-radius:5px;
  background:rgba(35,66,51,.9);
  color:#fff;
  font-size:9px;
  font-weight:700;
  line-height:1;
}
.flow-main-image{
  position:relative;
  overflow:hidden;
}
.flow-main-image img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.flow-image-label{
  position:absolute;
  left:12px;
  bottom:12px;
  padding:6px 9px;
  border-radius:6px;
  background:rgba(35,66,51,.91);
  color:#fff;
  font-size:10px;
  font-weight:700;
}
.flow-card-employee .flow-image-label{
  background:rgba(146,119,72,.94);
}
.flow-card-copy{
  padding:19px 20px 21px;
}
.flow-card-copy h3{
  margin:0 0 8px;
  color:#294d3b;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:19px;
  font-weight:600;
  line-height:1.45;
}
.flow-card-copy p{
  margin:0;
  color:#657169;
  font-size:12px;
  line-height:1.8;
}
.flow-visual-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#aa9267;
  font-size:27px;
}
.flow-visual-note{
  margin:18px auto 0;
  padding:15px 18px;
  border:1px solid rgba(163,137,91,.34);
  border-radius:12px;
  background:#f5f1e8;
  text-align:center;
}
.flow-visual-note strong{
  display:block;
  margin-bottom:3px;
  color:#3f5649;
  font-size:13px;
}
.flow-visual-note span{
  color:#6d786f;
  font-size:12px;
}

@media (max-width:960px){
  .flow-visual{
    grid-template-columns:1fr;
    gap:0;
  }
  .flow-visual-arrow{
    height:34px;
    transform:none;
  }
  .flow-visual-arrow::before{
    content:"↓";
  }
  .flow-visual-arrow{
    font-size:0;
  }
  .flow-visual-arrow::before{
    font-size:22px;
    color:#aa9267;
  }
  .flow-company-images{
    grid-template-columns:repeat(3,1fr);
  }
  .flow-thumb img{
    aspect-ratio:16/10;
  }
  .flow-main-image img{
    aspect-ratio:16/9;
    max-height:320px;
  }
}

@media (max-width:640px){
  .flow-company-images{
    grid-template-columns:repeat(3,1fr);
  }
  .flow-thumb img{
    aspect-ratio:1/1.05;
  }
  .flow-thumb span{
    left:5px;
    bottom:5px;
    padding:4px 5px;
    font-size:8px;
  }
  .flow-main-image img{
    aspect-ratio:16/9;
    max-height:220px;
  }
  .flow-card-copy{
    padding:16px 17px 18px;
  }
  .flow-card-copy h3{
    font-size:18px;
  }
  .flow-visual-note{
    text-align:left;
    padding:13px 15px;
  }
}


/* v13: Clear process-first timeline — no dominant photos */
.process-wrap{
  max-width:1060px;
  margin:0 auto;
}
.process-stage{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fffefb;
  overflow:hidden;
}
.process-stage-title{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 18px;
  border-bottom:1px solid var(--line);
  background:#f2f5f1;
}
.process-stage-title span{
  padding:5px 9px;
  border-radius:999px;
  background:#294d3b;
  color:#fff;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
}
.process-stage-title strong{
  color:#42584c;
  font-size:13px;
}
.process-stage-use .process-stage-title{
  background:#f5f0e6;
}
.process-stage-use .process-stage-title span{
  background:#9a8157;
}
.process-steps{
  display:grid;
  align-items:stretch;
  padding:20px;
}
.process-steps-three{
  grid-template-columns:1fr 34px 1fr 34px 1fr;
}
.process-steps-two{
  grid-template-columns:1fr 44px 1fr;
  max-width:760px;
  margin:0 auto;
}
.process-step{
  position:relative;
  display:grid;
  grid-template-columns:44px 1fr;
  gap:13px;
  min-width:0;
  padding:18px;
  border:1px solid #dde4de;
  border-radius:14px;
  background:#fff;
}
.process-number{
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#294d3b;
  color:#fff;
  font:600 20px Georgia,serif;
}
.process-step-employee .process-number{
  background:#9a8157;
}
.process-copy{
  min-width:0;
}
.process-owner{
  display:inline-block;
  margin-bottom:5px;
  padding:3px 7px;
  border-radius:999px;
  background:#edf3ef;
  color:#395645;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
}
.process-owner.employee{
  background:#f1e9d9;
  color:#7b633d;
}
.process-copy h3{
  margin:0 0 6px;
  color:#294d3b;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:18px;
  font-weight:600;
  line-height:1.35;
}
.process-copy p{
  margin:0;
  color:#66736b;
  font-size:12px;
  line-height:1.7;
}
.process-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#aa9267;
  font-size:23px;
  font-weight:400;
}
.process-start{
  position:relative;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.process-start::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:1px;
  background:#c9b990;
}
.process-start span{
  position:relative;
  z-index:1;
  padding:7px 15px;
  border:1px solid #b7a16e;
  border-radius:999px;
  background:#fffdf8;
  color:#806c45;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
}
.process-bottom-note{
  max-width:820px;
  margin:16px auto 0;
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:13px 16px;
  border-radius:10px;
  background:#f5f1e8;
  color:#5d6b63;
}
.process-bottom-note strong{
  flex:0 0 auto;
  color:#43594c;
  font-size:12px;
}
.process-bottom-note span{
  font-size:12px;
  line-height:1.65;
}

@media(max-width:820px){
  .process-steps,
  .process-steps-three,
  .process-steps-two{
    grid-template-columns:1fr;
    max-width:none;
    gap:0;
    padding:16px;
  }
  .process-arrow{
    height:30px;
    font-size:0;
  }
  .process-arrow::before{
    content:"↓";
    color:#aa9267;
    font-size:20px;
  }
  .process-stage-title{
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
    padding:12px 15px;
  }
  .process-step{
    grid-template-columns:40px 1fr;
    padding:15px;
  }
  .process-number{
    width:40px;
    height:40px;
    font-size:18px;
  }
  .process-start{
    height:48px;
  }
  .process-bottom-note{
    margin-top:14px;
  }
}

@media(max-width:480px){
  .process-copy h3{
    font-size:17px;
  }
  .process-copy p{
    font-size:11px;
  }
  .process-bottom-note{
    display:block;
  }
  .process-bottom-note strong{
    display:block;
    margin-bottom:4px;
  }
}


/* v14: 3-stage card flow with images */
.flow-section-head{
  margin-bottom:24px;
}
.stage-flow{
  display:grid;
  grid-template-columns:minmax(0,1.36fr) 32px minmax(0,1fr) 32px minmax(0,1fr);
  align-items:stretch;
  gap:0;
}
.stage-flow-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#a48b60;
  font-size:24px;
  line-height:1;
}
.stage-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fffefb;
  box-shadow:0 10px 30px rgba(40,61,50,.055);
}
.stage-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:13px 16px;
  border-bottom:1px solid var(--line);
  background:#f5f2ea;
}
.stage-step{
  color:#9a8257;
  font:600 11px Georgia,serif;
  letter-spacing:.16em;
}
.stage-role{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  padding:5px 10px;
  border-radius:999px;
  background:#294d3b;
  color:#fff;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
}
.stage-role.employee{
  background:#9a8157;
}
.stage-card-title{
  padding:18px 18px 10px;
}
.stage-card-title h3,
.stage-card-body h3{
  margin:0 0 8px;
  color:#294d3b;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:21px;
  font-weight:600;
  line-height:1.42;
}
.stage-card-title p,
.stage-card-body p{
  margin:0;
  color:#647169;
  font-size:12px;
  line-height:1.78;
}
.stage-substeps{
  display:grid;
  gap:10px;
  padding:0 18px 18px;
}
.stage-substep{
  display:grid;
  grid-template-columns:92px 1fr;
  gap:12px;
  align-items:center;
  padding:10px;
  border:1px solid #e0e5e0;
  border-radius:12px;
  background:#fff;
}
.stage-substep img{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:10px;
}
.stage-subcopy b{
  display:block;
  margin-bottom:4px;
  color:#334d40;
  font-size:13px;
}
.stage-subcopy span{
  display:block;
  color:#6d786f;
  font-size:11px;
  line-height:1.65;
}
.stage-card-foot{
  margin-top:auto;
  padding:14px 18px 18px;
  border-top:1px dashed #ddd5c7;
  background:#fbfaf6;
}
.stage-card-foot strong{
  display:block;
  margin-bottom:4px;
  color:#43584c;
  font-size:12px;
}
.stage-card-foot span{
  display:block;
  color:#6b756d;
  font-size:11px;
  line-height:1.7;
}
.stage-main-image img{
  display:block;
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
}
.stage-card-body{
  padding:17px 18px 18px;
}
.stage-flow-note{
  margin:16px auto 0;
  padding:14px 18px;
  border:1px solid rgba(163,137,91,.32);
  border-radius:12px;
  background:#f5f1e8;
  text-align:center;
}
.stage-flow-note strong{
  display:block;
  margin-bottom:3px;
  color:#44594d;
  font-size:13px;
}
.stage-flow-note span{
  color:#6b776f;
  font-size:12px;
}

@media (max-width:980px){
  .stage-flow{
    grid-template-columns:1fr;
    gap:0;
  }
  .stage-flow-arrow{
    height:32px;
    font-size:0;
  }
  .stage-flow-arrow::before{
    content:"↓";
    color:#a48b60;
    font-size:22px;
  }
}

@media (max-width:640px){
  .flow-section-head{
    margin-bottom:18px;
  }
  .stage-card-title{
    padding:16px 16px 10px;
  }
  .stage-card-title h3,
  .stage-card-body h3{
    font-size:19px;
  }
  .stage-substeps{
    padding:0 16px 16px;
    gap:8px;
  }
  .stage-substep{
    grid-template-columns:76px 1fr;
    gap:10px;
    padding:8px;
  }
  .stage-subcopy b{
    font-size:12px;
  }
  .stage-subcopy span{
    font-size:10px;
  }
  .stage-card-foot{
    padding:12px 16px 16px;
  }
  .stage-main-image img{
    aspect-ratio:16/9;
    max-height:220px;
  }
  .stage-card-body{
    padding:15px 16px 16px;
  }
  .stage-flow-note{
    text-align:left;
    padding:13px 15px;
  }
}


/* v16: Premium image-led 3-stage flow */
.premium-flow-section{
  background:
    radial-gradient(circle at 20% 10%, rgba(190,169,130,.10), transparent 34%),
    linear-gradient(180deg,#f8f6f1 0%,#fbfaf7 100%);
}
.flow-section-head{
  margin-bottom:30px;
}
.flow-section-head h2{
  color:#233e31;
  font-size:34px;
  letter-spacing:.035em;
}
.flow-section-head p{
  color:#66736b;
  font-size:14px;
  line-height:1.95;
  max-width:54em;
}
.premium-stage-flow{
  display:grid;
  grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr) 40px minmax(0,1fr);
  gap:0;
  align-items:stretch;
}
.premium-stage-card{
  overflow:hidden;
  border:1px solid rgba(159,138,101,.25);
  border-radius:22px;
  background:#fffdf9;
  box-shadow:0 18px 44px rgba(38,48,43,.08);
}
.premium-stage-image{
  position:relative;
  overflow:hidden;
  background:#ece8df;
}
.premium-stage-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(20,24,22,0) 50%,rgba(20,24,22,.28) 100%);
  pointer-events:none;
}
.premium-stage-image img{
  display:block;
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  object-position:center;
  filter:saturate(.90) contrast(1.03) brightness(.98);
}
.premium-stage-badge{
  position:absolute;
  z-index:2;
  left:16px;
  bottom:14px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(35,65,50,.90);
  color:#fff;
  backdrop-filter:blur(6px);
}
.premium-stage-badge.employee{
  background:rgba(146,117,72,.92);
}
.premium-stage-badge span{
  font:600 9px Georgia,serif;
  letter-spacing:.15em;
  opacity:.82;
}
.premium-stage-badge strong{
  font-size:10px;
  letter-spacing:.08em;
}
.premium-stage-body{
  padding:24px 23px 25px;
}
.premium-stage-body h3{
  margin:0 0 9px;
  color:#253f32;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:22px;
  font-weight:600;
  line-height:1.42;
  letter-spacing:.025em;
}
.premium-stage-lead{
  margin:0;
  min-height:4.9em;
  color:#68746c;
  font-size:12px;
  line-height:1.9;
}
.premium-stage-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#aa9060;
  font-size:27px;
}
.premium-mini-flow{
  display:grid;
  grid-template-columns:1fr 18px 1fr 18px 1fr;
  align-items:center;
  margin-top:19px;
  padding-top:18px;
  border-top:1px solid rgba(167,149,116,.22);
}
.premium-mini-item{
  min-width:0;
  text-align:center;
}
.premium-mini-item>span{
  display:inline-flex;
  width:28px;
  height:28px;
  align-items:center;
  justify-content:center;
  margin-bottom:7px;
  border:1px solid rgba(154,129,87,.38);
  border-radius:50%;
  color:#947a4e;
  font:600 10px Georgia,serif;
}
.premium-mini-item b{
  display:block;
  color:#405549;
  font-size:11px;
  line-height:1.35;
}
.premium-mini-item small{
  display:block;
  margin-top:4px;
  color:#7a817c;
  font-size:8.5px;
  line-height:1.45;
}
.premium-mini-arrow{
  color:#b09a72;
  text-align:center;
  font-size:15px;
}
.premium-keypoint{
  margin-top:19px;
  padding:13px 14px;
  border:1px solid rgba(166,148,115,.20);
  border-radius:11px;
  background:#f7f3eb;
}
.premium-keypoint span{
  display:block;
  margin-bottom:4px;
  color:#987e50;
  font:600 9px Georgia,serif;
  letter-spacing:.15em;
}
.premium-keypoint p{
  margin:0;
  color:#5e6b63;
  font-size:10.5px;
  line-height:1.7;
}
.premium-flow-summary{
  display:flex;
  align-items:center;
  gap:14px;
  margin:22px auto 0;
  max-width:760px;
}
.summary-line{
  height:1px;
  flex:1;
  background:linear-gradient(90deg,transparent,rgba(153,131,91,.45));
}
.summary-line:last-child{
  background:linear-gradient(90deg,rgba(153,131,91,.45),transparent);
}
.premium-flow-summary p{
  margin:0;
  white-space:nowrap;
  color:#6b756e;
  font-size:12px;
  letter-spacing:.03em;
}
.premium-flow-summary strong{
  color:#3d5347;
  font-weight:700;
}

@media(max-width:980px){
  .premium-stage-flow{
    grid-template-columns:1fr;
  }
  .premium-stage-arrow{
    height:36px;
    font-size:0;
  }
  .premium-stage-arrow::before{
    content:"↓";
    color:#aa9060;
    font-size:22px;
  }
  .premium-stage-card{
    max-width:720px;
    width:100%;
    margin:0 auto;
  }
  .premium-stage-image img{
    aspect-ratio:16/8;
    max-height:300px;
  }
  .premium-stage-lead{
    min-height:0;
  }
}

@media(max-width:640px){
  .flow-section-head{
    margin-bottom:20px;
  }
  .flow-section-head h2{
    font-size:29px;
  }
  .flow-section-head p{
    font-size:13px;
    line-height:1.82;
  }
  .premium-stage-card{
    border-radius:18px;
  }
  .premium-stage-image img{
    aspect-ratio:16/9;
    max-height:215px;
  }
  .premium-stage-badge{
    left:12px;
    bottom:11px;
  }
  .premium-stage-body{
    padding:19px 17px 20px;
  }
  .premium-stage-body h3{
    font-size:20px;
  }
  .premium-stage-lead{
    font-size:11.5px;
    line-height:1.82;
  }
  .premium-mini-flow{
    grid-template-columns:1fr;
    gap:8px;
    padding-top:14px;
  }
  .premium-mini-arrow{
    font-size:0;
    height:12px;
  }
  .premium-mini-arrow::before{
    content:"↓";
    font-size:13px;
  }
  .premium-mini-item{
    display:grid;
    grid-template-columns:32px 1fr;
    gap:9px;
    align-items:center;
    text-align:left;
    padding:7px 0;
  }
  .premium-mini-item>span{
    margin:0;
  }
  .premium-mini-item small{
    font-size:9px;
  }
  .premium-flow-summary{
    gap:8px;
    margin-top:18px;
  }
  .premium-flow-summary p{
    white-space:normal;
    text-align:center;
    font-size:11px;
  }
}


/* v17: Compact, step-first 3-card flow */
.compact-flow-section{
  background:linear-gradient(180deg,#f8f6f1 0%,#fbfaf7 100%);
}
.compact-flow-head{
  margin-bottom:24px;
}
.compact-flow-head h2{
  color:#243f32;
  font-size:32px;
  letter-spacing:.035em;
}
.compact-flow-head p{
  color:#68736c;
  font-size:13px;
  line-height:1.85;
}
.compact-stage-flow{
  display:grid;
  grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr) 30px minmax(0,1fr);
  align-items:stretch;
}
.compact-stage-card{
  border:1px solid rgba(162,143,108,.24);
  border-radius:18px;
  background:#fffefb;
  box-shadow:0 10px 28px rgba(38,49,43,.055);
  overflow:hidden;
}
.compact-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 14px;
  border-bottom:1px solid rgba(162,143,108,.18);
  background:#f5f1e9;
}
.compact-step{
  color:#9b8255;
  font:600 10px Georgia,serif;
  letter-spacing:.17em;
}
.compact-role{
  padding:5px 9px;
  border-radius:999px;
  background:#294d3b;
  color:#fff;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
}
.compact-role.employee{
  background:#9a8157;
}
.compact-card-intro{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:13px;
  align-items:center;
  padding:16px 16px 14px;
}
.compact-card-intro img{
  display:block;
  width:88px;
  height:66px;
  object-fit:cover;
  border-radius:10px;
  box-shadow:0 6px 16px rgba(35,44,40,.08);
  filter:saturate(.94) contrast(1.02);
}
.compact-card-intro h3{
  margin:0 0 5px;
  color:#284337;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:19px;
  font-weight:600;
  line-height:1.38;
}
.compact-card-intro p{
  margin:0;
  color:#6a756e;
  font-size:11px;
  line-height:1.65;
}
.compact-mini-flow{
  padding:0 16px 16px;
  display:grid;
  gap:7px;
}
.compact-mini-item{
  display:grid;
  grid-template-columns:30px 1fr;
  gap:9px;
  align-items:center;
  padding:8px 10px;
  border:1px solid rgba(167,151,120,.20);
  border-radius:10px;
  background:#faf8f3;
}
.compact-mini-item>span{
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#eef3ef;
  color:#375345;
  font:600 11px Georgia,serif;
}
.compact-mini-item b{
  display:block;
  margin-bottom:2px;
  color:#42574b;
  font-size:11px;
}
.compact-mini-item small{
  display:block;
  color:#7a827d;
  font-size:9px;
  line-height:1.45;
}
.compact-point{
  margin:0 16px 16px;
  padding:11px 12px;
  border-left:3px solid #a68d60;
  background:#f8f4ec;
  border-radius:0 8px 8px 0;
}
.compact-point strong{
  display:block;
  margin-bottom:3px;
  color:#43584c;
  font-size:11px;
}
.compact-point span{
  display:block;
  color:#6e7972;
  font-size:10px;
  line-height:1.6;
}
.compact-flow-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#aa9162;
  font-size:22px;
}
.compact-flow-summary{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:16px auto 0;
  padding:12px 14px;
  max-width:600px;
  border:1px solid rgba(163,141,101,.22);
  border-radius:999px;
  background:#f6f1e8;
  color:#6a756d;
  font-size:11px;
}
.compact-flow-summary strong{
  color:#40564a;
  font-weight:700;
}

@media(max-width:900px){
  .compact-stage-flow{
    grid-template-columns:1fr;
  }
  .compact-flow-arrow{
    height:28px;
    font-size:0;
  }
  .compact-flow-arrow::before{
    content:"↓";
    color:#aa9162;
    font-size:19px;
  }
  .compact-stage-card{
    max-width:680px;
    width:100%;
    margin:0 auto;
  }
}
@media(max-width:640px){
  .compact-flow-head{
    margin-bottom:18px;
  }
  .compact-flow-head h2{
    font-size:28px;
  }
  .compact-card-intro{
    grid-template-columns:76px 1fr;
    gap:11px;
    padding:14px 14px 12px;
  }
  .compact-card-intro img{
    width:76px;
    height:58px;
    border-radius:9px;
  }
  .compact-card-intro h3{
    font-size:18px;
  }
  .compact-mini-flow{
    padding:0 14px 14px;
  }
  .compact-point{
    margin:0 14px 14px;
  }
  .compact-flow-summary{
    flex-wrap:wrap;
    border-radius:12px;
    text-align:center;
    line-height:1.7;
  }
}


/* v18: stronger framed separation for each step */
.compact-stage-flow{
  gap: 0;
}

.compact-stage-card{
  border: 1.5px solid rgba(149, 127, 88, .32);
  border-radius: 20px;
  background: linear-gradient(180deg, #fffefb 0%, #fbf8f1 100%);
  box-shadow:
    0 12px 28px rgba(38,49,43,.05),
    inset 0 1px 0 rgba(255,255,255,.45);
}

.compact-card-top{
  padding: 13px 15px;
  border-bottom: 1px solid rgba(162,143,108,.22);
  background: linear-gradient(180deg, #f7f3eb 0%, #f1ece1 100%);
}

.compact-card-intro{
  padding: 17px 17px 15px;
  border-bottom: 1px solid rgba(162,143,108,.14);
}

.compact-card-intro img{
  border: 1px solid rgba(162,143,108,.18);
}

.compact-mini-flow{
  padding: 14px 17px 17px;
  gap: 9px;
  background: rgba(250,248,243,.7);
}

.compact-mini-item{
  padding: 10px 11px;
  border: 1px solid rgba(163, 144, 109, .26);
  border-radius: 11px;
  background: #fffdfa;
  box-shadow: 0 4px 10px rgba(31,39,35,.03);
}

.compact-mini-item > span{
  border: 1px solid rgba(146, 125, 88, .18);
  background: #f3f6f3;
}

.compact-point{
  margin: 0 17px 17px;
  padding: 12px 13px;
  border: 1px solid rgba(166,148,115,.24);
  border-left: 4px solid #a68d60;
  background: linear-gradient(180deg, #faf7f0 0%, #f5efe4 100%);
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(31,39,35,.025);
}

.compact-flow-arrow{
  color: #ad9467;
  font-size: 24px;
}

.compact-flow-summary{
  margin-top: 18px;
  padding: 13px 16px;
  border: 1px solid rgba(163,141,101,.24);
  background: linear-gradient(180deg, #f8f4eb 0%, #f4eee3 100%);
}

@media(max-width:900px){
  .compact-stage-card{
    margin: 0 auto;
  }
}

@media(max-width:640px){
  .compact-stage-card{
    border-radius: 17px;
  }

  .compact-card-top{
    padding: 12px 14px;
  }

  .compact-card-intro{
    padding: 14px 14px 12px;
  }

  .compact-mini-flow{
    padding: 12px 14px 14px;
  }

  .compact-mini-item{
    padding: 9px 10px;
  }

  .compact-point{
    margin: 0 14px 14px;
    padding: 11px 12px;
  }
}
