:root{
  --color-primary:#f5a623;
  --color-secondary:#fff6e9;
  --color-text-primary:#1f2937;
  --color-background:#ffffff;
  --color-border:#eae0d0;
  --color-accent:#ff7a29;
  --color-text-secondary:#6b7280;
  --color-bg-dark:#1c1b1f;

  --font-jp:'Noto Sans JP',-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",YuGothic,Meiryo,sans-serif;
  --font-en:'Inter',var(--font-jp);

  --fs-h1:48px; --lh-h1:1.35;
  --fs-h2:32px; --lh-h2:1.4;
  --fs-h3:20px; --lh-h3:1.5;
  --fs-h4:18px; --lh-h4:1.5;
  --fs-lead:18px; --lh-lead:1.8;
  --fs-body:16px; --lh-body:1.8;
  --fs-caption:13px; --lh-caption:1.6;

  --space-section:88px;
  --space-block:40px;
  --space-element:16px;
  --space-small:8px;

  --radius-card:20px;
  --radius-pill:999px;

  --content-width:1080px;
}

@media (max-width:640px){
  :root{
    --fs-h1:34px; --lh-h1:1.4;
    --fs-h2:24px; --lh-h2:1.45;
    --fs-h3:16px; --lh-h3:1.5;
    --fs-h4:16px; --lh-h4:1.5;
    --fs-lead:16px; --lh-lead:1.75;
    --fs-body:16px; --lh-body:1.75;
    --fs-caption:14px; --lh-caption:1.6;
    --space-section:53px;
    --space-block:24px;
    --space-element:12px;
  }
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-jp);
  color:var(--color-text-primary);
  background:var(--color-background);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
section{ padding:var(--space-section) 0; }
.container{ max-width:var(--content-width); margin:0 auto; padding:0 24px; }
@media (max-width:640px){ .container{ padding:0 16px; } }

.section-cream{ background:var(--color-secondary); }
.section-white{ background:var(--color-background); }

h1,h2,h3,h4{ font-weight:700; margin:0; color:var(--color-text-primary); }
.h1{ font-size:var(--fs-h1); line-height:var(--lh-h1); font-family:var(--font-jp); }
.h2{ font-size:var(--fs-h2); line-height:var(--lh-h2); text-align:center; margin-bottom:var(--space-block); }
.h2.align-left{ text-align:left; }
.h3{ font-size:var(--fs-h3); line-height:var(--lh-h3); }
.h4{ font-size:var(--fs-h4); line-height:var(--lh-h4); }
.lead{ font-size:var(--fs-lead); line-height:var(--lh-lead); color:var(--color-text-secondary); font-weight:400; margin:0; }
p{ margin:0; font-size:var(--fs-body); line-height:var(--lh-body); color:var(--color-text-primary); }
.caption{ font-size:var(--fs-caption); line-height:var(--lh-caption); color:var(--color-text-secondary); }
.eyebrow-label{ display:inline-flex; align-items:center; gap:6px; background:var(--color-secondary); color:var(--color-text-primary); font-size:12px; font-weight:700; padding:8px 16px; border-radius:var(--radius-pill); }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-jp); font-weight:700; font-size:16px;
  padding:16px 32px; border-radius:var(--radius-pill);
  white-space:nowrap; text-decoration:none; cursor:pointer; border:none;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn svg{ width:18px; height:18px; flex-shrink:0; }
.btn-primary{ background:var(--color-primary); color:var(--color-text-primary); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(245,166,35,0.35); }
.btn-secondary{ background:var(--color-background); color:var(--color-primary); border:2px solid var(--color-primary); padding:14px 30px; }
.btn-secondary:hover{ background:var(--color-secondary); }
.btn-invert{ background:var(--color-bg-dark); color:#ffffff; }
.btn-invert:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,0.35); }
@media (max-width:640px){ .btn{ width:100%; } }

/* Icons */
.icon{ width:24px; height:24px; stroke:currentColor; stroke-width:1.7; fill:none; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.icon-circle{
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--color-secondary); color:var(--color-primary); margin-bottom:var(--space-element);
}
.check-icon{ width:18px; height:18px; stroke:var(--color-primary); stroke-width:2.2; fill:none; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }

/* Header */
.site-header{
  position:sticky; top:0; z-index:50; height:88px; background:rgba(255,255,255,0.96); backdrop-filter:blur(8px);
  border-bottom:1px solid #ececec;
}
.header-inner{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:0 80px; max-width:1560px; }
.logo{ font-weight:900; font-size:27px; letter-spacing:-.035em; white-space:nowrap; color:#111; }
.nav-links{ display:flex; align-items:center; justify-content:center; gap:24px; flex:1; flex-wrap:nowrap; }
.nav-link{ font-size:15px; font-weight:700; padding:8px 4px; border-radius:8px; color:#191919; white-space:nowrap; }
.nav-link:hover{ background:var(--color-secondary); }
.header-cta{ width:232px; min-height:58px; padding:14px 24px; font-size:16px; flex-shrink:0; justify-content:space-between; background:linear-gradient(100deg,#ffb000,#ffc238); }
.header-cta::after{ content:'›'; font-size:28px; line-height:1; transform:translateY(-1px); }
@media (max-width:1120px){
  .header-inner{ padding:0 28px; }
  .nav-links{ gap:12px; }
  .nav-link{ font-size:13px; }
  .header-cta{ width:210px; }
}
.mobile-menu{ display:none; position:relative; }
.mobile-menu summary{ width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--color-border); border-radius:12px; cursor:pointer; list-style:none; }
.mobile-menu summary::-webkit-details-marker{ display:none; }
.hamburger,.hamburger::before,.hamburger::after{ width:22px; height:2px; display:block; position:relative; border-radius:2px; background:#202020; }
.hamburger::before,.hamburger::after{ content:''; position:absolute; left:0; }
.hamburger::before{ top:-7px; }.hamburger::after{ top:7px; }
.mobile-menu-panel{ position:absolute; top:54px; right:0; width:min(300px,calc(100vw - 32px)); padding:12px; display:grid; gap:4px; background:#fff; border:1px solid var(--color-border); border-radius:14px; box-shadow:0 14px 35px rgba(31,41,55,.16); }
.mobile-menu-panel .nav-link{ padding:11px 12px; }
@media (max-width:1279px){
  .header-inner{ padding:0 28px; gap:18px; }
  .nav-links{ gap:12px; }
  .nav-link{ font-size:13px; }
  .header-cta{ width:205px; }
}
@media (max-width:1023px){
  .site-header{ height:74px; }
  .header-inner{ padding:0 24px; }
  .logo{ font-size:22px; }
  .nav-links,.header-cta{ display:none; }
  .mobile-menu{ display:block; }
}
@media (max-width:600px){ .header-inner{ padding:0 16px; } }

/* FV */
.fv{ min-height:700px; padding:24px 0 0; overflow:hidden; position:relative; background:#fff; }
.fv-grid{
  max-width:1560px; min-height:676px; padding:0 80px; display:grid; row-gap:22px; column-gap:14px;
  grid-template-columns:1fr;
  grid-template-areas:
    "intro"
    "cta"
    "visual"
    "checks"
    "note";
}
@media (min-width:1024px){
  .fv-grid{
    grid-template-columns:minmax(0,47fr) minmax(0,53fr);
    grid-template-rows:auto auto auto 1fr;
    column-gap:40px;
    row-gap:10px;
    grid-template-areas:
      "intro  visual"
      "checks visual"
      "cta    visual"
      "note   visual";
    align-items:start; position:relative;
  }
}
.fv-intro{ grid-area:intro; width:100%; max-width:640px; display:flex; flex-direction:column; align-items:flex-start; gap:16px; padding-top:12px; position:relative; z-index:5; }
.fv-intro .eyebrow-label{ min-height:42px; padding:9px 20px; border-radius:7px; background:linear-gradient(100deg,#ffb434,#ffc43d); font-size:clamp(13px,1vw,16px); font-weight:900; }
.fv-intro .h1{ margin:0; width:100%; max-width:640px; font-size:clamp(40px,4.15vw,69px); line-height:1.15; letter-spacing:-.035em; font-weight:900; color:#090909; }
.fv-intro .h1 .h1-line{ display:block; text-wrap:balance; }
.fv-intro .h1 .underline{ display:inline-block; position:relative; }
.fv-intro .h1 .underline::after{
  content:''; position:absolute; left:0; right:2%; bottom:-8px; height:14px; z-index:-1;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 24' preserveAspectRatio='none'%3E%3Cpath d='M4 14 C95 6 175 18 263 11 S425 5 516 13' fill='none' stroke='%23ffb000' stroke-width='10' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;
}
.fv-intro .lead{ margin-top:4px; width:100%; max-width:610px; font-size:clamp(16px,1.25vw,18px); line-height:1.75; color:#303238; font-weight:500; overflow-wrap:normal; word-break:normal; }
.fv-checks{ grid-area:checks; width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; max-width:625px; padding:2px 0 5px; position:relative; z-index:5; }
.fv-checks li{ min-height:58px; display:flex; align-items:flex-start; gap:8px; padding:3px 10px; border-left:1px solid #dedede; font-size:14.5px; line-height:1.45; letter-spacing:-.02em; font-weight:700; color:#232323; }
.fv-checks li:first-child{ border-left:0; padding-left:0; }
.fv-checks .check-icon{ width:22px; height:22px; padding:4px; border-radius:50%; background:#ffb000; stroke:#fff; stroke-width:3; flex:0 0 auto; }
.fv-cta-group{ grid-area:cta; display:grid; grid-template-columns:minmax(0,330px) minmax(0,205px); gap:14px; width:100%; max-width:549px; position:relative; z-index:5; }
.fv-cta-group .btn{ min-height:82px; border-radius:22px; padding:18px 24px; font-size:17px; font-weight:900; justify-content:flex-start; }
.fv-cta-group .btn-primary{ overflow:hidden; background:linear-gradient(105deg,#ffb000,#ffc238); padding:18px 14px; gap:7px; font-size:14.25px; letter-spacing:-.025em; white-space:nowrap; }
.fv-cta-group .btn-primary svg:first-child,.fv-cta-group .btn-primary .cta-arrow{ flex:0 0 auto; }
.fv-cta-group .btn-secondary{ border:1.5px solid #2d2d2d; color:#202020; background:#fff; }
.fv-cta-group .btn .cta-arrow{ margin-left:auto; width:20px; height:20px; }
.fv-note{ grid-area:note; display:flex; align-items:center; align-self:start; gap:7px; margin-top:1px; padding:0 0 0 52px; font-size:14px; font-weight:700; color:#333; position:relative; z-index:5; }

/* FV visual: person + role cards */
.fv-visual{ grid-area:visual; position:relative; align-self:end; min-width:0; }
.fv-blob{ display:none; }
.fv-person-wrap{ width:min(92vw,680px); max-width:680px; margin:0 auto; position:relative; z-index:2; }
.fv-person-wrap img{ width:100%; height:auto; display:block; object-fit:contain; }
.fv-roles{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:24px; }
.fv-role-card{
  background:var(--color-background); border:1px solid var(--color-border); border-radius:16px;
  box-shadow:0 8px 22px rgba(31,41,55,0.09); padding:16px;
  display:grid; grid-template-columns:50px 1fr; grid-template-rows:auto auto; column-gap:12px; align-items:center;
}
.fv-role-icon{ width:48px; height:48px; padding:5px; grid-row:1 / 3; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.role-analysis{color:#2f75e8}.role-planning{color:#e6a400}.role-writing{color:#45a33c}.role-improvement{color:#f07818}.role-search{color:#7554dc}.role-automation{color:#20a8a1}
.fv-role-card strong{ font-size:18px; line-height:1.3; font-weight:900; color:#202020; }
.fv-role-card span{ font-size:12.5px; line-height:1.45; color:#4f535b; }
.fv-connectors{ display:none; }
.fv-handnote{ display:none; }
.fv-bottom-curve{ position:absolute; left:0; right:0; bottom:-1px; width:100%; height:46px; z-index:6; pointer-events:none; }

@media (min-width:1024px){
  .fv-visual{ min-height:652px; height:652px; margin-left:0; }
  .fv-blob{ display:block; position:absolute; z-index:0; }
  .fv-blob-1{
    width:370px; height:505px; left:45%; top:65px;
    background:#ffb718;
    border-radius:43% 57% 38% 62% / 28% 37% 63% 72%; opacity:.97;
    transform:translateX(-50%) rotate(-7deg);
  }
  .fv-blob-2{
    width:155px; height:165px; left:25%; bottom:8%; background:#ffcc58; opacity:.45;
    border-radius:58% 42% 65% 35% / 52% 60% 40% 48%; transform:rotate(14deg);
  }
  .fv-person-wrap{
    position:absolute; left:50%; bottom:0; width:min(76%,600px); max-width:none; margin:0; z-index:2; transform:translateX(-50%);
  }
  .fv-roles{
    position:absolute; inset:0; display:block; margin-top:0; z-index:3; pointer-events:none;
  }
  .fv-role-card{
    position:absolute; width:215px; min-height:110px; pointer-events:auto; padding:16px 17px; grid-template-columns:48px 1fr; column-gap:11px;
  }
  .fv-roles .fv-role-card:nth-child(1){ left:0; top:12px; }
  .fv-roles .fv-role-card:nth-child(3){ left:0; top:167px; }
  .fv-roles .fv-role-card:nth-child(5){ left:2%; top:322px; }
  .fv-roles .fv-role-card:nth-child(2){ right:0; top:70px; }
  .fv-roles .fv-role-card:nth-child(4){ right:0; top:225px; }
  .fv-roles .fv-role-card:nth-child(6){ right:0; top:380px; }
  .fv-connectors{ display:block; position:absolute; inset:0; z-index:1; width:100%; height:100%; pointer-events:none; color:#343434; }
  .fv-connectors path{ fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .fv-connectors .dashed{ stroke-dasharray:3 8; }
  .fv-handnote{ display:block; position:absolute; z-index:4; right:0; top:-12px; width:165px; font-size:17px; line-height:1.35; font-weight:700; letter-spacing:.03em; transform:rotate(-3deg); }
}

@media (min-width:1280px) and (max-width:1599px){
  .fv-grid{ padding:0 40px; grid-template-columns:minmax(0,47fr) minmax(0,53fr); column-gap:32px; }
  .fv-intro .h1{ font-size:clamp(54px,4.35vw,64px); }
  .fv-intro .lead{ font-size:16px; }
  .fv-cta-group{ grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:12px; }
  .fv-cta-group .btn{ min-height:72px; padding:14px 12px; font-size:13.5px; }
  .fv-role-card{ width:190px; min-height:98px; padding:12px; grid-template-columns:42px 1fr; column-gap:9px; }
  .fv-role-icon{ width:42px; height:42px; }
  .fv-role-card strong{ font-size:15px; }
  .fv-role-card span{ font-size:11px; }
  .fv-person-wrap{ width:min(73%,560px); }
  .fv-handnote{ top:-8px; width:150px; font-size:15px; }
}

@media (min-width:1024px) and (max-width:1279px){
  .fv{ min-height:650px; }
  .fv-grid{ min-height:626px; padding:0 28px; grid-template-columns:minmax(0,49fr) minmax(0,51fr); column-gap:32px; }
  .fv-intro .h1{ font-size:clamp(44px,4.25vw,52px); }
  .fv-intro .lead{ font-size:16px; }
  .fv-checks{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fv-checks li:nth-child(3){ border-left:0; padding-left:0; }
  .fv-cta-group{ grid-template-columns:1fr; max-width:390px; }
  .fv-cta-group .btn{ min-height:62px; }
  .fv-note{ padding-left:0; }
  .fv-visual{ height:626px; min-height:626px; }
  .fv-person-wrap{ width:92%; }
  .fv-role-card{ width:168px; min-height:92px; padding:11px; grid-template-columns:38px 1fr; column-gap:8px; }
  .fv-role-icon{ width:38px; height:38px; }
  .fv-role-card strong{ font-size:14px; }
  .fv-role-card span{ font-size:11px; }
  .fv-roles .fv-role-card:nth-child(2),.fv-roles .fv-role-card:nth-child(4){ display:none; }
  .fv-roles .fv-role-card:nth-child(1){ top:45px; }
  .fv-roles .fv-role-card:nth-child(3){ top:190px; }
  .fv-roles .fv-role-card:nth-child(5){ top:335px; left:0; }
  .fv-roles .fv-role-card:nth-child(6){ top:100px; }
  .fv-handnote,.fv-connectors{ display:none; }
}

@media (min-width:1600px){
  .fv-grid{ grid-template-columns:minmax(0,47fr) minmax(0,53fr); column-gap:48px; }
  .fv-person-wrap{ width:min(76%,620px); }
}

@media (max-width:1023px){
  .fv{ min-height:0; padding:36px 0 68px; }
  .fv-grid{ min-height:0; padding:0 24px; row-gap:28px; grid-template-areas:"intro" "checks" "cta" "note" "visual"; }
  .fv-intro{ padding-top:0; }
  .fv-intro{ max-width:720px; margin:0 auto; }
  .fv-intro .h1{ font-size:clamp(42px,7vw,58px); max-width:680px; }
  .fv-intro .lead{ max-width:680px; }
  .fv-checks{ grid-template-columns:repeat(2,minmax(0,1fr)); max-width:none; gap:12px 0; }
  .fv-checks li:nth-child(3){ border-left:0; padding-left:0; }
  .fv-cta-group{ grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); max-width:none; }
  .fv-visual{ padding-top:20px; width:100%; max-width:760px; margin:0 auto; }
  .fv-person-wrap{ width:min(76vw,560px); }
  .fv-blob-1{ display:block; position:absolute; width:58%; height:58%; right:19%; top:12%; background:#ffb916; border-radius:52% 48% 42% 58% / 37% 48% 52% 63%; z-index:0; }
  .fv-roles{ position:relative; z-index:3; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
  .fv-bottom-curve{ height:34px; }
}

@media (min-width:768px) and (max-width:1023px){
  .fv-roles .fv-role-card:nth-child(2),.fv-roles .fv-role-card:nth-child(4){ display:none; }
}

@media (max-width:767px){
  .fv-grid{ padding:0 16px; }
  .fv-intro .eyebrow-label{ min-height:38px; padding:8px 14px; font-size:13px; }
  .fv-intro .h1{ max-width:100%; font-size:clamp(35px,9.4vw,38px); line-height:1.18; letter-spacing:-.06em; }
  .fv-intro .h1 .h1-line{ max-width:100%; }
  .fv-intro .lead{ font-size:16px; line-height:1.75; }
  .fv-checks{ grid-template-columns:1fr; gap:0; }
  .fv-checks li,.fv-checks li:nth-child(3){ min-height:46px; padding:8px 0; border-left:0; border-bottom:1px solid #e6e6e6; font-size:13px; }
  .fv-cta-group{ width:100%; max-width:100%; grid-template-columns:1fr; gap:12px; }
  .fv-cta-group .btn{ min-height:66px; width:100%; padding:15px 18px; font-size:14px; }
  .fv-note{ padding:0; font-size:12px; }
  .fv-visual{ width:100%; max-width:100%; min-width:0; overflow:hidden; }
  .fv-person-wrap{ width:min(100%,520px); max-width:100%; margin:0 auto; }
  .fv-blob-1{ width:70%; height:48%; right:15%; top:6%; }
  .fv-roles{ width:100%; max-width:100%; min-width:0; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .fv-role-card{ width:auto !important; min-width:0; min-height:104px; padding:10px; grid-template-columns:36px minmax(0,1fr); column-gap:7px; }
  .fv-role-icon{ width:38px; height:38px; }
  .fv-role-card strong{ font-size:13px; }
  .fv-role-card span{ font-size:11px; }
}
@media (max-width:359px){
  .logo{ font-size:20px; }
  .fv-intro .h1{ font-size:clamp(31px,10vw,35px); letter-spacing:-.055em; }
  .fv-cta-group .btn-primary{ padding-inline:10px; gap:5px; font-size:13px; letter-spacing:-.04em; }
  .fv-roles{ grid-template-columns:1fr; }
  .fv-role-card{ min-height:88px; }
}

/* Usecase */
.usecase-header{ text-align:center; }
.usecase-eyebrow{ margin-bottom:10px; color:var(--color-primary-strong); font-family:var(--font-en); font-size:12px; font-weight:800; letter-spacing:.2em; }
.usecase-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
@media (max-width:820px){ .usecase-grid{ grid-template-columns:1fr; } }
.usecase-card{ display:flex; min-width:0; flex-direction:column; border:1px solid var(--color-border); border-radius:var(--radius-card); overflow:hidden; background:var(--color-background); }
.usecase-image{ aspect-ratio:3/1; background:var(--color-secondary); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.usecase-image img{ width:100%; height:100%; object-fit:cover; object-position:center center; }
.usecase-body{ padding:22px; display:flex; flex-direction:column; gap:14px; }
.usecase-body h3{ font-size:16px; }
.usecase-card--post{ box-shadow:0 14px 36px rgba(18,32,51,.06); transition:transform .25s ease,box-shadow .25s ease; }
.usecase-card--post:hover{ transform:translateY(-3px); box-shadow:0 20px 42px rgba(18,32,51,.1); }
.usecase-image--post{ display:block; aspect-ratio:16/9; background:#fffaf3; }
.usecase-image--post img{ display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.usecase-body--post{ min-height:260px; flex:1; gap:11px; }
.usecase-category{ align-self:flex-start; margin:0; padding:5px 10px; border-radius:999px; background:#fff4d9; color:#a95300; font-size:11px; font-weight:800; line-height:1.4; }
.usecase-title{ min-height:3.2em; margin:0; color:var(--color-navy); line-height:1.6; text-wrap:pretty; }
.usecase-title a{ color:inherit; }
.usecase-excerpt{ display:-webkit-box; overflow:hidden; color:var(--color-text-secondary); font-size:13.5px; line-height:1.8; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.usecase-detail{ align-self:flex-start; margin-top:auto; padding-top:4px; color:var(--color-primary-strong); font-size:13px; font-weight:800; }
.usecase-caption{ margin-top:24px; text-align:center; }
.before-after{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.pill{ font-size:12px; font-weight:700; padding:6px 14px; border-radius:var(--radius-pill); }
.pill-before{ background:var(--color-secondary); color:var(--color-text-secondary); }
.pill-after{ background:var(--color-primary); color:var(--color-text-primary); }
.usecase-more{ text-align:center; margin-top:var(--space-block); }
.usecase-more .btn{ display:inline-flex; width:auto; }
.text-link{ font-weight:700; font-size:15px; border-bottom:2px solid var(--color-primary); padding-bottom:2px; }

.case-card-placeholder{ position:relative; display:grid; width:100%; height:100%; overflow:hidden; place-items:center; background:radial-gradient(circle at 18% 22%,rgba(91,190,222,.2),transparent 31%),radial-gradient(circle at 82% 72%,rgba(245,166,35,.25),transparent 34%),linear-gradient(135deg,#fffaf0,#eef9fb); color:var(--color-navy); }
.case-card-placeholder::before{ position:absolute; width:58%; height:46%; border:1px solid rgba(59,151,190,.2); border-radius:50%; content:""; transform:rotate(-12deg); }
.case-card-placeholder span{ position:relative; font-family:var(--font-en); font-size:18px; font-weight:800; letter-spacing:.08em; }

.front-latest-posts{ padding:clamp(72px,8vw,112px) 0; background:#fffaf1; }
.front-latest-posts__header{ max-width:760px; margin:0 auto var(--space-block); text-align:center; }
.front-latest-posts__eyebrow{ margin-bottom:10px; color:var(--color-primary-strong); font-family:var(--font-en); font-size:12px; font-weight:800; letter-spacing:.18em; }
.front-latest-posts__header .h2{ margin-bottom:14px; }
.front-latest-posts__header > p:last-child{ color:var(--color-text-secondary); font-size:15px; line-height:1.8; }
.front-latest-posts__grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.front-post-card{ display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid rgba(215,208,195,.78); border-radius:var(--radius-card); background:#fff; box-shadow:0 14px 36px rgba(18,32,51,.06); transition:transform .25s ease,box-shadow .25s ease; }
.front-post-card:hover{ transform:translateY(-3px); box-shadow:0 20px 42px rgba(18,32,51,.1); }
.front-post-card__media{ display:block; aspect-ratio:16/10; overflow:hidden; background:var(--color-secondary); }
.front-post-card__media img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.front-post-card__body{ display:flex; min-height:285px; flex:1; flex-direction:column; padding:22px; }
.front-post-card__meta{ display:flex; min-height:21px; flex-wrap:wrap; gap:7px 12px; color:var(--color-text-secondary); font-size:12px; }
.front-post-card__meta span{ color:var(--color-primary-strong); font-weight:800; }
.front-post-card__title{ min-height:3.2em; margin:12px 0 10px; color:var(--color-navy); font-size:17px; line-height:1.6; text-wrap:pretty; }
.front-post-card__title a{ color:inherit; }
.front-post-card__excerpt{ display:-webkit-box; overflow:hidden; color:var(--color-text-secondary); font-size:13.5px; line-height:1.8; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.front-post-card__more{ align-self:flex-start; margin-top:auto; padding-top:18px; color:var(--color-primary-strong); font-size:13px; font-weight:800; }
.front-latest-posts__more{ margin-top:var(--space-block); text-align:center; }
.front-latest-posts__more .btn{ display:inline-flex; width:auto; }

@media (max-width:960px){ .front-latest-posts__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){
  .usecase-eyebrow,.front-latest-posts__eyebrow{ font-size:11px; }
  .front-latest-posts{ padding:64px 0; }
  .front-latest-posts__grid{ grid-template-columns:1fr; gap:18px; }
  .usecase-more .btn,.front-latest-posts__more .btn{ width:100%; }
}

@media (prefers-reduced-motion:reduce){ .usecase-card--post,.front-post-card{ transition:none; } }

/* Mid CTA */
.cta-mid{ background:var(--color-primary); }
.cta-mid-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
@media (max-width:900px){ .cta-mid-grid{ grid-template-columns:minmax(0,1fr); } .cta-mid-grid > *{ min-width:0; } }
.cta-mid-text p{ margin-top:14px; color:#3f2c0d; }
.cta-mid-panel{ background:var(--color-background); border-radius:var(--radius-card); padding:28px; display:flex; flex-direction:column; gap:18px; box-shadow:0 24px 48px -28px rgba(31,41,55,0.3); }
.cta-mid-item{ display:flex; align-items:flex-start; gap:14px; }
.cta-mid-item .icon-circle{ margin-bottom:0; width:44px; height:44px; flex-shrink:0; }
.cta-mid-item .icon-circle .icon{ width:20px; height:20px; }
.cta-mid-item h4{ font-size:15px; }
.cta-mid-item p{ font-size:13.5px; color:var(--color-text-secondary); margin-top:4px; }

/* Pricing */
.pricing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:820px){ .pricing-grid{ grid-template-columns:1fr; } }
.price-card{ background:var(--color-background); border:1px solid var(--color-border); border-radius:var(--radius-card); padding:24px; display:flex; flex-direction:column; gap:8px; }
.price-card .price-label{ font-size:14px; font-weight:700; color:var(--color-text-secondary); text-wrap:balance; }
.price-card .price-value{ font-size:26px; font-weight:700; font-family:var(--font-en); color:var(--color-accent); white-space:nowrap; }
.price-card .price-desc{ font-size:13.5px; color:var(--color-text-secondary); }
.pricing-note{ text-align:center; margin-top:var(--space-block); }

/* Process */
.process-row{ display:flex; align-items:stretch; gap:16px; margin-bottom:var(--space-block); }
@media (max-width:900px){ .process-row{ flex-direction:column; } }
.process-item{ flex:1; text-align:center; background:var(--color-background); border:1px solid var(--color-border); border-radius:var(--radius-card); padding:26px 18px; display:flex; flex-direction:column; align-items:center; gap:8px; }
.process-item p{ font-size:13.5px; color:var(--color-text-secondary); }
.process-arrow{ display:flex; align-items:center; justify-content:center; color:var(--color-text-secondary); flex-shrink:0; }
@media (max-width:900px){ .process-arrow{ transform:rotate(90deg); } }
.process-footer{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:18px; }

/* FAQ */
.faq-container{ max-width:820px; }
.accordion{ display:flex; flex-direction:column; gap:12px; }
.faq-item{ background:var(--color-background); border:1px solid var(--color-border); border-radius:16px; padding:6px 24px; }
.faq-item summary{ list-style:none; cursor:pointer; padding:16px 0; display:flex; align-items:center; justify-content:space-between; gap:16px; font-weight:700; font-size:15.5px; }
.faq-question{ min-width:0; line-break:strict; word-break:normal; overflow-wrap:normal; text-wrap:pretty; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .faq-icon{ position:relative; width:20px; height:20px; flex-shrink:0; }
.faq-item summary .faq-icon::before,
.faq-item summary .faq-icon::after{ content:""; position:absolute; background:var(--color-primary); transition:transform .2s ease; }
.faq-item summary .faq-icon::before{ top:9px; left:2px; width:16px; height:2px; }
.faq-item summary .faq-icon::after{ left:9px; top:2px; width:2px; height:16px; }
.faq-item[open] summary .faq-icon::after{ transform:rotate(90deg); opacity:0; }
.faq-item p{ padding-bottom:18px; color:var(--color-text-secondary); font-size:14.5px; }

/* Final CTA */
.cta-final{ padding:clamp(64px,6vw,88px) 0; background:var(--color-bg-dark); color:#ffffff; text-align:center; }
.cta-final-inner{ display:flex; flex-direction:column; align-items:center; gap:clamp(18px,2vw,24px); }
.cta-final .icon-circle{ background:rgba(245,166,35,0.15); color:var(--color-primary); width:64px; height:64px; margin-bottom:0; }
.cta-final .icon-circle .icon{ width:28px; height:28px; }
.cta-final .h2{ max-width:900px; color:#ffffff; margin-bottom:0; line-height:1.55; }
.cta-final .btn{ width:min(100%,340px); min-height:58px; }
.cta-final__sentence{ display:block; text-wrap:balance; }

/* Footer */
.site-footer{ padding:56px 0 24px; border-top:1px solid var(--color-border); background:#fffdf9; }
.footer-grid{ padding-bottom:36px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,560px); align-items:start; gap:48px; border-bottom:1px solid var(--color-border); }
.footer-brand{ max-width:430px; }
.footer-logo{ width:230px; height:58px; position:relative; overflow:hidden; display:block; }
.footer-logo img{ width:300px; max-width:none; height:auto; position:absolute; left:-35px; top:50%; transform:translateY(-50%); }
.footer-tagline{ margin-top:10px; color:var(--color-ink); font-size:15px; line-height:1.6; font-weight:800; text-wrap:balance; }
.footer-description{ max-width:390px; margin-top:8px; color:var(--color-text-secondary); font-size:14px; line-height:1.8; text-wrap:pretty; }
.footer-navigation{ display:grid; justify-items:end; gap:14px; }
.footer-links{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px 8px; }
.footer-link{ min-height:44px; padding:10px 9px; display:inline-flex; align-items:center; border-radius:8px; color:var(--color-ink); font-size:14px; line-height:1.4; font-weight:700; transition:color var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard); }
.footer-link:hover{ color:var(--color-primary-strong); background:var(--color-cream); }
.footer-privacy{ color:var(--color-text-secondary); font-size:13px; font-weight:600; }
.footer-bottom{ padding-top:22px; display:flex; align-items:flex-start; justify-content:space-between; gap:20px 32px; }
.footer-business{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 20px; color:var(--color-text-secondary); font-style:normal; }
.footer-business span,.footer-business a{ font-size:13px; line-height:1.7; }
.footer-mail{ color:var(--color-ink-soft); overflow-wrap:anywhere; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:4px; transition:color var(--motion-fast) var(--ease-standard),text-decoration-color var(--motion-fast) var(--ease-standard); }
.footer-mail:hover{ color:var(--color-primary-strong); text-decoration-color:currentColor; }
.footer-copyright{ flex:0 0 auto; color:var(--color-text-secondary); }

@media (min-width:768px) and (max-width:900px){
  .footer-grid{ grid-template-columns:1fr; gap:26px; }
  .footer-navigation{ justify-items:start; }
  .footer-links{ justify-content:flex-start; }
}

@media (max-width:767px){
  .cta-final{ padding:56px 0 60px; }
  .cta-final .icon-circle{ width:56px; height:56px; }
  .cta-final .icon-circle .icon{ width:25px; height:25px; }
  .cta-final .h2{ font-size:clamp(23px,6.6vw,28px); line-height:1.58; }
  .site-footer{ padding:42px 0 22px; }
  .footer-grid{ grid-template-columns:1fr; gap:30px; padding-bottom:30px; }
  .footer-logo{ width:210px; height:54px; }
  .footer-logo img{ width:278px; left:-33px; }
  .footer-tagline{ margin-top:8px; }
  .footer-navigation{ justify-items:stretch; gap:12px; }
  .footer-links{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 10px; }
  .footer-link{ min-height:48px; padding:11px 8px; }
  .footer-privacy{ width:fit-content; min-height:44px; }
  .footer-bottom{ padding-top:22px; display:flex; flex-direction:column; gap:18px; }
  .footer-business{ order:1; display:grid; justify-content:start; gap:3px; }
  .footer-business span,.footer-business a{ min-height:28px; display:flex; align-items:center; font-size:13px; }
  .footer-copyright{ order:2; }
}
