@charset "UTF-8";
/* ============================================================
   LOCAL CRAFT PLATFORM — Design System
   base: LOCAL CRAFT JAPAN style (minimal / 和の美学 / serif × Montserrat)
   ============================================================ */

:root{
  --c-text:#333333;
  --c-text-dark:#292929;
  --c-red:#ea0000;
  --c-border:#dddddd;
  --c-bg-grey:#f7f7f7;
  --c-bg-beige:#f8f8f2;
  --c-gold:#b18d33;
  --c-white:#ffffff;
  --f-serif:"Noto Serif JP", YuMincho, "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  --f-en:Montserrat, "游ゴシック体", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic Pro", Meiryo, sans-serif;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--f-serif);
  font-size:14px;
  font-weight:400;
  line-height:1.75;
  letter-spacing:.08em;
  color:var(--c-text);
  background:var(--c-white);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:opacity .2s}
a:hover{opacity:.7}
ul,ol{margin:0;padding:0;list-style:none}
p{margin:0 0 1.5em}
p:last-child{margin-bottom:0}
h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.5}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ---------- layout ---------- */
.l-inner{max-width:1110px;margin:0 auto;padding:0 15px}
.l-inner.-v2{max-width:1230px}
.l-inner.-v3{max-width:1500px}
.l-section{padding:120px 0}
.l-section.-grey{background:var(--c-bg-grey)}
.l-section.-beige{background:var(--c-bg-beige)}
.l-section.-dark{background:var(--c-text-dark);color:var(--c-white)}
.l-divider{border:none;border-bottom:1px solid var(--c-border);margin:0}

/* ---------- typography ---------- */
.u-en{font-family:var(--f-en);letter-spacing:.08em}
.c-title{color:var(--c-text-dark)}
.c-title.-primary{
  font-size:26px;font-weight:600;text-align:center;
  position:relative;padding-bottom:50px;margin-bottom:60px;
}
.c-title.-primary::after{
  content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:50px;border-bottom:1px solid var(--c-red);
}
.c-title.-main{font-size:23px;font-weight:600}
.c-title.-secondary{font-size:20px;font-weight:600;margin-bottom:35px}
.c-title.-sub{
  font-family:var(--f-en);font-size:11px;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:var(--c-text);
  display:block;margin-bottom:18px;
}
.c-title.-sub.-gold{color:var(--c-gold)}
.-dark .c-title,.-dark .c-title.-sub{color:var(--c-white)}
.c-lead{font-size:15px;line-height:2.2}
.c-note{font-size:12px;color:#808080}

/* ---------- button ---------- */
.c-button{
  font-family:var(--f-en);font-size:14px;font-weight:500;letter-spacing:.08em;
  color:var(--c-text);border:1px solid var(--c-text);border-radius:50px;
  background:transparent;display:flex;align-items:center;justify-content:center;
  width:200px;height:50px;position:relative;cursor:pointer;
  transition:.2s;text-align:center;
}
.c-button::after{
  content:"›";font-family:var(--f-en);font-size:16px;line-height:1;
  position:absolute;right:18px;top:50%;transform:translateY(-50%);
}
.c-button:hover{background:var(--c-text);color:var(--c-white);opacity:1}
.c-button.-white{color:var(--c-white);border-color:var(--c-white)}
.c-button.-white:hover{background:var(--c-white);color:var(--c-text)}
.c-button.-black{background:var(--c-text);color:var(--c-white);border-color:var(--c-text)}
.c-button.-black:hover{background:transparent;color:var(--c-text)}
.c-button.-sm{width:150px;height:36px;font-size:12px;padding:6px 10px}
.c-button.-sm::after{right:12px;font-size:13px}
.c-button.-big{width:100%;max-width:600px;height:70px;font-size:15px}
.c-button.-center{margin:0 auto}
.c-buttons{display:flex;gap:16px;flex-wrap:wrap}
.c-buttons.-center{justify-content:center}

/* ---------- photo placeholder ---------- */
.ph{
  position:relative;overflow:hidden;background:#3a352f;
  background-image:
    radial-gradient(120% 90% at 20% 10%, rgba(255,255,255,.10), transparent 55%),
    radial-gradient(100% 80% at 85% 90%, rgba(177,141,51,.22), transparent 60%),
    linear-gradient(160deg,#4a443c 0%,#2e2a26 65%,#211e1b 100%);
}
.ph.-cool{background-image:
    radial-gradient(120% 90% at 25% 12%, rgba(255,255,255,.10), transparent 55%),
    radial-gradient(100% 80% at 85% 90%, rgba(111,141,160,.25), transparent 60%),
    linear-gradient(160deg,#3d474e 0%,#262d33 65%,#1b2126 100%)}
.ph.-warm{background-image:
    radial-gradient(120% 90% at 25% 12%, rgba(255,255,255,.12), transparent 55%),
    radial-gradient(110% 80% at 80% 88%, rgba(234,90,0,.14), transparent 60%),
    linear-gradient(160deg,#5a4636 0%,#3a2d24 65%,#28201a 100%)}
.ph.-light{background:#efece3;background-image:
    radial-gradient(120% 90% at 20% 10%, rgba(255,255,255,.7), transparent 60%),
    linear-gradient(160deg,#f2efe6 0%,#e5e0d2 100%)}
.ph.-photo{background-size:cover;background-position:center;background-repeat:no-repeat}
.ph.-photo::before,.ph.-photo::after{content:none}
.ph::before{
  content:"";position:absolute;inset:0;opacity:.25;
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.03) 0 2px,transparent 2px 6px);
}
.ph::after{
  content:attr(data-label);position:absolute;left:14px;bottom:12px;
  font-family:var(--f-en);font-size:9px;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;color:rgba(255,255,255,.5);
}
.ph.-light::after{color:rgba(51,51,51,.35)}

/* ---------- header ---------- */
.l-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 34px;transition:background .3s,padding .3s,box-shadow .3s;
}
.l-header.is-scrolled{background:rgba(255,255,255,.97);box-shadow:0 1px 0 var(--c-border);padding:10px 34px}
.header-logo{position:relative;display:block;width:186px;height:auto;line-height:0;transition:width .3s}
.l-header.is-scrolled .header-logo{width:96px}
.logo-img{display:block;width:100%;height:auto}
.header-logo .logo-img--dark{position:absolute;inset:0;opacity:0;transition:opacity .3s}
.header-logo .logo-img--light{opacity:1;transition:opacity .3s}
.is-scrolled .header-logo .logo-img--dark{opacity:1}
.is-scrolled .header-logo .logo-img--light{opacity:0}
.header-nav{display:flex;gap:30px}
.header-nav a{
  font-family:var(--f-en);font-size:13px;font-weight:600;letter-spacing:.08em;
  color:var(--c-white);transition:color .3s;position:relative;padding-bottom:4px;
}
.is-scrolled .header-nav a{color:var(--c-text)}
.header-nav a.is-current::after{
  content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:1px solid var(--c-red);
}
.header-right{display:flex;align-items:center;gap:14px}
.header-right .c-button.-sm{border-color:var(--c-white);color:var(--c-white)}
.header-right .c-button.-sm:hover{background:var(--c-white);color:var(--c-text)}
.is-scrolled .header-right .c-button.-sm{border-color:var(--c-text);color:var(--c-text)}
.is-scrolled .header-right .c-button.-sm:hover{background:var(--c-text);color:var(--c-white)}
.header-lang{font-family:var(--f-en);font-size:11px;font-weight:500;color:var(--c-white);transition:color .3s}
.header-lang b{font-weight:600}
.header-lang span{opacity:.55}
.is-scrolled .header-lang{color:var(--c-text)}

/* hamburger */
.header-toggle{
  display:none;background:none;border:none;cursor:pointer;padding:8px;z-index:110;
}
.header-toggle i{
  display:block;width:26px;height:1px;background:var(--c-white);margin:7px 0;transition:.3s;
}
.is-scrolled .header-toggle i,.is-menu-open .header-toggle i{background:var(--c-text)}
.is-menu-open .header-toggle i:nth-child(1){transform:translateY(8px) rotate(45deg)}
.is-menu-open .header-toggle i:nth-child(2){opacity:0}
.is-menu-open .header-toggle i:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ---------- hero (top) ---------- */
.hero{position:relative;height:100vh;min-height:620px;overflow:hidden;background:#211e1b}
.hero__slide{position:absolute;inset:0;opacity:0;animation:heroFade 21s infinite;transform:scale(1.02)}
.hero__slide:nth-child(1){animation-delay:0s}
.hero__slide:nth-child(2){animation-delay:7s}
.hero__slide:nth-child(3){animation-delay:14s}
@keyframes heroFade{
  0%{opacity:0;transform:scale(1.05)}
  6%{opacity:1}
  33.3%{opacity:1;transform:scale(1)}
  41%{opacity:0}
  100%{opacity:0}
}
.hero::after{content:"";position:absolute;inset:0;background:rgba(20,18,15,.38)}
.hero__body{
  position:absolute;z-index:2;left:0;right:0;top:50%;transform:translateY(-50%);
}
.hero__copy{
  font-size:clamp(30px,4.2vw,48px);font-weight:600;color:var(--c-white);
  line-height:1.6;letter-spacing:.1em;text-shadow:0 2px 30px rgba(0,0,0,.3);
}
.hero__sub{
  color:rgba(255,255,255,.92);font-size:15px;letter-spacing:.14em;margin-top:26px;
}
.hero__cta{display:flex;gap:16px;margin-top:44px;flex-wrap:wrap}
.hero__scroll{
  position:absolute;z-index:2;bottom:0;left:50%;
  font-family:var(--f-en);font-size:9px;letter-spacing:.3em;color:rgba(255,255,255,.8);
  writing-mode:vertical-rl;padding-bottom:70px;
}
.hero__scroll::after{
  content:"";position:absolute;bottom:0;left:50%;width:1px;height:56px;
  background:rgba(255,255,255,.6);animation:scrollLine 2.4s ease-in-out infinite;
  transform-origin:top;
}
@keyframes scrollLine{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* ---------- page hero (subpages) ---------- */
.page-hero{
  position:relative;height:46vh;min-height:340px;display:flex;align-items:center;
  overflow:hidden;
}
.page-hero .ph-bg{position:absolute;inset:0}
.page-hero::after{content:"";position:absolute;inset:0;background:rgba(20,18,15,.45)}
.page-hero__body{position:relative;z-index:2;padding-top:40px}
.page-hero__en{
  font-family:var(--f-en);font-size:11px;font-weight:500;letter-spacing:.3em;
  text-transform:uppercase;color:rgba(255,255,255,.85);display:block;margin-bottom:16px;
}
.page-hero__title{font-size:clamp(24px,3.4vw,34px);color:var(--c-white);letter-spacing:.12em}

/* ---------- proof bar ---------- */
.proof{border-bottom:1px solid var(--c-border);background:var(--c-white)}
.proof__list{display:flex;justify-content:center}
.proof__item{
  flex:1;text-align:center;padding:36px 20px;border-left:1px solid var(--c-border);
}
.proof__item:first-child{border-left:none}
.proof__num{font-family:var(--f-en);font-size:34px;font-weight:500;color:var(--c-text-dark);line-height:1.2}
.proof__num small{font-family:var(--f-serif);font-size:13px;margin-left:4px}
.proof__label{font-size:12px;color:#808080;margin-top:6px;display:block}

/* ---------- 2-column (About Us) ---------- */
.two-col{display:grid;grid-template-columns:1fr 2fr;gap:70px;align-items:start}
.two-col.-half{grid-template-columns:1fr 1fr}
.two-col.-rev{grid-template-columns:2fr 1fr}

/* ---------- split entry ---------- */
.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.entry-card{position:relative;display:block}
.entry-card .ph{aspect-ratio:16/10}
.entry-card__body{padding:28px 4px 0}
.entry-card__label{
  font-family:var(--f-en);font-size:11px;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--c-gold);display:block;margin-bottom:10px;
}
.entry-card__title{font-size:20px;margin-bottom:12px}
.entry-card__text{font-size:13.5px;color:#555;margin-bottom:18px}
.entry-card .c-button{margin-top:4px}

/* ---------- journey (steps) ---------- */
.journey{counter-reset:step}
.journey__list{display:grid;grid-template-columns:repeat(7,1fr);gap:0;border:1px solid var(--c-border);background:var(--c-white)}
.journey__item{
  padding:26px 14px 22px;border-left:1px solid var(--c-border);position:relative;text-align:center;
}
.journey__item:first-child{border-left:none}
.journey__item::before{
  counter-increment:step;content:"0" counter(step);
  font-family:var(--f-en);font-size:11px;font-weight:500;letter-spacing:.15em;color:var(--c-gold);
  display:block;margin-bottom:10px;
}
.journey__item b{font-size:13.5px;display:block;font-weight:600}
.journey__item span{font-size:11px;color:#808080;display:block;margin-top:6px;line-height:1.6}

/* ---------- map section ---------- */
.map-panel{
  position:relative;background:var(--c-bg-beige);border:1px solid var(--c-border);
  min-height:420px;height:100%;
}
.map-panel__caption{
  position:absolute;left:20px;top:18px;font-family:var(--f-en);font-size:10px;
  letter-spacing:.25em;text-transform:uppercase;color:#a0a0a0;
}
.map-pin{position:absolute;transform:translate(-50%,-50%);text-align:center}
.map-pin i{
  display:block;width:9px;height:9px;border-radius:50%;background:var(--c-red);margin:0 auto 7px;
  box-shadow:0 0 0 5px rgba(234,0,0,.12);
}
.map-pin.-active i{animation:pinPulse 2.4s infinite}
@keyframes pinPulse{0%,100%{box-shadow:0 0 0 5px rgba(234,0,0,.12)}50%{box-shadow:0 0 0 10px rgba(234,0,0,.06)}}
.map-pin span{font-size:11px;letter-spacing:.1em;white-space:nowrap}
.map-pin small{display:block;font-family:var(--f-en);font-size:8px;letter-spacing:.2em;color:#a0a0a0;text-transform:uppercase}
.map-pin.-ghost i{background:#c8c2b2;box-shadow:none}
.map-pin.-ghost span{color:#a0a0a0}

.big-number{font-family:var(--f-en);font-size:52px;font-weight:400;color:var(--c-text-dark);line-height:1}
.big-number small{font-size:16px;color:var(--c-gold)}

/* plan switch banner */
.plan-switch{display:flex;border:1px solid var(--c-border);margin-top:34px}
.plan-switch a{
  flex:1;text-align:center;padding:20px 10px;font-family:var(--f-en);
  font-size:12px;font-weight:600;letter-spacing:.15em;position:relative;
}
.plan-switch a b{display:block;font-family:var(--f-serif);font-size:14px;font-weight:600;letter-spacing:.1em;margin-top:4px}
.plan-switch a + a{border-left:1px solid var(--c-border)}
.plan-switch a:hover{background:var(--c-bg-grey);opacity:1}

/* ---------- craft cards ---------- */
.craft-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px 30px}
.craft-card{display:block}
.craft-card .ph{aspect-ratio:16/9}
.craft-card__area{
  display:flex;align-items:center;gap:7px;margin:20px 0 10px;
  font-family:var(--f-en);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
}
.craft-card__area::before{
  content:"";width:8px;height:11px;flex:none;
  background:var(--c-red);
  clip-path:polygon(50% 100%,5% 38%,15% 12%,50% 0,85% 12%,95% 38%);
}
.craft-card__title{font-size:17px;font-weight:600;margin-bottom:10px}
.craft-card__text{font-size:13px;color:#555}
.craft-card__tag{
  display:inline-block;font-size:10.5px;color:#656565;background:var(--c-border);
  padding:1px 12px;height:22px;line-height:20px;margin-left:10px;vertical-align:2px;
}

/* ---------- story / event section ---------- */
.story-block{display:grid;grid-template-columns:1fr 1fr;min-height:400px}
.story-block .ph{min-height:300px}
.story-block__body{
  background:var(--c-text-dark);color:var(--c-white);
  display:flex;flex-direction:column;justify-content:center;padding:60px 56px;
}
.story-block__num{
  font-family:var(--f-en);font-size:11px;font-weight:500;letter-spacing:.3em;
  color:var(--c-gold);text-transform:uppercase;margin-bottom:18px;
}
.story-block__title{font-size:21px;color:var(--c-white);line-height:1.8;margin-bottom:18px}
.story-block__text{font-size:13.5px;color:rgba(255,255,255,.78);margin-bottom:30px}
.story-block.-rev .ph{order:2}
.story-block.-rev .story-block__body{order:1}

/* ---------- news ---------- */
.news-list li{border-bottom:1px dotted #eeeeee}
.news-list a{display:flex;align-items:center;gap:24px;padding:22px 6px;flex-wrap:wrap}
.news-list time{font-family:var(--f-en);font-size:12px;font-weight:500;color:#808080;letter-spacing:.1em}
.news-list .cat{
  font-size:10.5px;color:#656565;background:var(--c-border);
  width:10em;height:22px;line-height:22px;text-align:center;flex:none;
}
.news-list .ttl{font-size:13.5px;flex:1;min-width:200px}

/* ---------- CTA banner ---------- */
.cta-banner{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.cta-banner__mosaic{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:110px;gap:8px}
.cta-banner__mosaic .ph:nth-child(2){grid-row:span 2}

/* ---------- generic content parts ---------- */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--c-border);border:1px solid var(--c-border)}
.feature-grid.-c2{grid-template-columns:repeat(2,1fr)}
.feature-grid.-c4{grid-template-columns:repeat(4,1fr)}
.feature-cell{background:var(--c-white);padding:38px 30px}
.feature-cell.-beige{background:var(--c-bg-beige)}
.feature-cell__en{
  font-family:var(--f-en);font-size:10px;font-weight:500;letter-spacing:.25em;
  text-transform:uppercase;color:var(--c-gold);display:block;margin-bottom:14px;
}
.feature-cell h3{font-size:16px;margin-bottom:12px}
.feature-cell p{font-size:13px;color:#555}

.compare{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.compare__col{border:1px solid var(--c-border);padding:40px 36px;background:var(--c-white)}
.compare__col.-lcp{border-color:var(--c-text-dark);border-width:1px;position:relative}
.compare__col.-lcp::before{
  content:"LCP MODEL";position:absolute;top:-9px;left:32px;background:var(--c-text-dark);
  color:#fff;font-family:var(--f-en);font-size:9px;font-weight:600;letter-spacing:.25em;padding:3px 14px;
}
.compare__label{font-family:var(--f-en);font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:#a0a0a0;display:block;margin-bottom:14px}
.compare__flow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px}
.compare__flow i{font-style:normal;border:1px solid var(--c-border);padding:5px 13px;background:var(--c-bg-grey)}
.compare__flow em{font-style:normal;color:var(--c-gold)}
.compare__col.-lcp .compare__flow i{background:var(--c-bg-beige);border-color:#d9d2bd}

/* voice / persona chips */
.chip-list{display:flex;flex-wrap:wrap;gap:10px}
.chip-list li{
  border:1px solid var(--c-border);border-radius:50px;padding:9px 22px;
  font-size:13px;background:var(--c-white);
}

/* FAQ */
.faq details{border-bottom:1px solid var(--c-border)}
.faq summary{
  cursor:pointer;padding:24px 40px 24px 6px;font-size:15px;font-weight:600;
  list-style:none;position:relative;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q.";font-family:var(--f-en);color:var(--c-gold);margin-right:14px}
.faq summary::after{
  content:"＋";position:absolute;right:10px;top:50%;transform:translateY(-50%);
  font-size:14px;color:#a0a0a0;font-weight:400;
}
.faq details[open] summary::after{content:"−"}
.faq .faq__a{padding:0 6px 26px 40px;font-size:13.5px;color:#555}

/* table */
.def-table{width:100%;border-collapse:collapse}
.def-table th,.def-table td{
  border-bottom:1px solid var(--c-border);padding:20px 10px;text-align:left;
  font-size:13.5px;vertical-align:top;font-weight:400;
}
.def-table th{width:11em;color:#808080;font-weight:500;white-space:nowrap}

/* tabs (partner) */
.tabs{display:flex;border-bottom:1px solid var(--c-border);margin-bottom:60px}
.tabs button{
  flex:1;background:none;border:none;cursor:pointer;padding:20px 10px;
  font-family:var(--f-serif);font-size:14.5px;letter-spacing:.08em;color:#909090;
  position:relative;transition:color .2s;
}
.tabs button .en{display:block;font-family:var(--f-en);font-size:9px;letter-spacing:.25em;text-transform:uppercase;margin-bottom:8px;color:#b8b8b8}
.tabs button.is-active{color:var(--c-text-dark);font-weight:600}
.tabs button.is-active::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;border-bottom:2px solid var(--c-red);
}
.tab-panel{display:none}
.tab-panel.is-active{display:block;animation:fadeIn .4s}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* spiral (negative → positive) */
.spiral{display:grid;grid-template-columns:1fr auto 1fr;gap:26px;align-items:stretch}
.spiral__col{border:1px solid var(--c-border);padding:34px 30px;background:var(--c-white)}
.spiral__col.-neg{background:var(--c-bg-grey)}
.spiral__col.-pos{border-color:#d9d2bd;background:var(--c-bg-beige)}
.spiral__arrow{display:flex;align-items:center;font-family:var(--f-en);font-size:20px;color:var(--c-gold)}
.spiral__col h4{font-size:15px;margin-bottom:16px}
.spiral__col li{font-size:13px;padding:7px 0;border-bottom:1px dotted #ddd;color:#555}
.spiral__col li:last-child{border-bottom:none}

/* form */
.form-grid{display:grid;gap:28px;max-width:760px;margin:0 auto}
.form-row label{display:block;font-size:13px;font-weight:600;margin-bottom:10px}
.form-row label small{font-size:10px;color:var(--c-white);background:var(--c-red);padding:2px 8px;margin-left:10px;letter-spacing:.15em;vertical-align:1px}
.form-row input[type=text],.form-row input[type=email],.form-row input[type=tel],
.form-row select,.form-row textarea{
  width:100%;border:1px solid var(--c-border);background:var(--c-bg-grey);
  padding:14px 16px;font-family:var(--f-serif);font-size:14px;letter-spacing:.08em;color:var(--c-text);
}
.form-row textarea{min-height:160px;resize:vertical}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{
  outline:none;border-color:var(--c-gold);background:var(--c-white);
}
.radio-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.radio-cards label{
  border:1px solid var(--c-border);padding:20px;cursor:pointer;font-weight:400;
  display:flex;gap:12px;align-items:flex-start;margin:0;transition:.2s;
}
.radio-cards label:has(input:checked){border-color:var(--c-text-dark);background:var(--c-bg-beige)}
.radio-cards b{display:block;font-size:14px;margin-bottom:4px}
.radio-cards span{font-size:11.5px;color:#808080;display:block}
.radio-cards input{margin-top:5px;accent-color:var(--c-red)}

/* contact direct */
.contact-direct{
  border:1px solid var(--c-border);background:var(--c-bg-beige);
  text-align:center;padding:44px 20px;margin-top:70px;
}
.contact-direct .tel{
  font-family:var(--f-en);font-size:32px;font-weight:500;letter-spacing:.1em;color:var(--c-text-dark);
  display:block;margin:10px 0 4px;
}

/* ---------- footer ---------- */
.l-footer{border-top:1px solid var(--c-border);margin-top:100px}
.footer-main{
  display:flex;justify-content:space-between;align-items:flex-start;gap:40px;
  padding:70px 15px 50px;max-width:1230px;margin:0 auto;flex-wrap:wrap;
}
.footer-logo{display:block;width:180px;line-height:0}
.footer-nav{display:flex;gap:26px;flex-wrap:wrap}
.footer-nav a{font-family:var(--f-en);font-size:13px;font-weight:600}
.footer-side{text-align:right}
.footer-side .lang-label{font-family:var(--f-en);font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:#a0a0a0;display:block;margin-bottom:8px}
.footer-side .langs{font-family:var(--f-en);font-size:12px;font-weight:500}
.footer-side .langs span{opacity:.5}
.footer-sns{display:flex;gap:14px;justify-content:flex-end;margin-top:18px}
.footer-sns a{font-family:var(--f-en);font-size:10px;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--c-border);padding-bottom:2px}
.footer-bottom{
  border-top:1px solid var(--c-border);
}
.footer-bottom__inner{
  max-width:1230px;margin:0 auto;padding:22px 15px;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
.footer-bottom a{font-size:11px;color:#808080;margin-right:22px}
.footer-bottom .copy{font-family:var(--f-en);font-size:10px;color:#a0a0a0;letter-spacing:.1em}

/* ---------- utilities ---------- */
.u-center{text-align:center}
.u-mt-20{margin-top:20px}.u-mt-40{margin-top:40px}.u-mt-60{margin-top:60px}.u-mt-80{margin-top:80px}
.u-mb-20{margin-bottom:20px}.u-mb-40{margin-bottom:40px}.u-mb-60{margin-bottom:60px}
.u-max-text{max-width:760px;margin-left:auto;margin-right:auto}
/* 折り返しを文節単位に固定する（スマホで語中改行・1文字残りを防ぐ） */
.u-nb{display:inline-block}

/* ---------- responsive ---------- */
@media (max-width:767px){
  .l-section{padding:70px 0}
  .l-header{padding:16px 18px}
  .l-header.is-scrolled{padding:12px 18px}
  .header-logo{width:146px}
  .l-header.is-scrolled .header-logo{width:88px}
  .footer-logo{width:160px}
  .header-nav,.header-right .c-button,.header-lang{display:none}
  .header-toggle{display:block}
  .header-nav.is-open{
    display:flex;flex-direction:column;gap:0;
    position:fixed;inset:0;background:var(--c-white);padding:110px 34px 40px;
  }
  .header-nav.is-open a{
    color:var(--c-text)!important;font-size:15px;padding:18px 0;border-bottom:1px solid var(--c-border);
  }
  .hero{min-height:560px}
  .hero__copy{font-size:28px}
  .two-col,.two-col.-half,.two-col.-rev{grid-template-columns:1fr;gap:40px}
  .entry-grid,.craft-grid,.compare,.cta-banner{grid-template-columns:1fr}
  .journey__list{grid-template-columns:1fr;border-left:none;border-right:none}
  .journey__item{border-left:none;border-top:1px solid var(--c-border);text-align:left;display:flex;gap:16px;align-items:baseline}
  .journey__item::before{margin-bottom:0}
  .journey__item:first-child{border-top:none}
  .story-block{grid-template-columns:1fr}
  .story-block.-rev .ph{order:1}
  .story-block.-rev .story-block__body{order:2}
  .story-block__body{padding:44px 28px}
  .proof__list{flex-wrap:wrap}
  .proof__item{flex:1 1 50%;border-top:1px solid var(--c-border)}
  .proof__item:nth-child(-n+2){border-top:none}
  .proof__item:nth-child(odd){border-left:none}
  .feature-grid,.feature-grid.-c2,.feature-grid.-c4{grid-template-columns:1fr}
  .spiral{grid-template-columns:1fr}
  .spiral__arrow{justify-content:center;transform:rotate(90deg)}
  .radio-cards{grid-template-columns:1fr}
  .tabs{flex-direction:column}
  .tabs button{text-align:left;padding:16px 6px}
  .footer-main{flex-direction:column;gap:34px}
  .footer-side{text-align:left}
  .footer-sns{justify-content:flex-start}
  .map-panel{min-height:340px}
  .news-list a{gap:12px}
  .l-section.-mobile-grey{background:var(--c-bg-grey)}
  /* 会社概要テーブルは項目名を上に積んで、値の折り返し幅を確保する */
  .def-table th,.def-table td{display:block;width:auto;padding:0 4px}
  .def-table th{padding-top:20px;border-bottom:none}
  .def-table td{padding-top:6px;padding-bottom:20px}
}
