:root{
  --red:#9e1b1b; --red-deep:#6f1414; --gold:#a9803f; --gold-soft:#c9ad72;
  --ink:#17140f; --ink-soft:#3b352b; --paper:#f6f2ea; --panel:#fffefb; --cream:#efe8db;
  --sub:#6f6557; --line:#e7dfce; --line-strong:#d6cab2;
  --maxw:1200px; --r:16px; --r-sm:10px;
  --shadow:0 24px 60px -28px rgba(48,32,14,.35);
  --shadow-soft:0 14px 40px -24px rgba(48,32,14,.3);
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
html,body{overflow-x:clip;}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Noto Sans JP",sans-serif;
  line-height:1.9; font-size:16px; letter-spacing:.012em; -webkit-font-smoothing:antialiased;}
.mincho,h1,h2,h3,h4{font-family:"Noto Serif JP",serif;
  font-weight:600; text-wrap:balance; letter-spacing:.03em; line-height:1.5;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
html,body{overflow-x:clip;}
.en{font-family:"Josefin Sans","Optima","Cormorant Garamond",serif;}

/* ===== reveal ===== */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);}
.reveal.is-in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.08s;} .reveal.d2{transition-delay:.16s;} .reveal.d3{transition-delay:.24s;} .reveal.d4{transition-delay:.32s;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none;}}

/* ===== header ===== */
.hdr{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .35s ease,box-shadow .35s ease,border-color .35s;
  background:rgba(247,243,236,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
.hdr.solid{background:rgba(247,243,236,.96);box-shadow:0 6px 26px -20px rgba(48,32,14,.55);}
.hdr .bar{display:flex;align-items:center;gap:26px;min-height:74px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand .mark{width:38px;height:38px;flex:none;}
.logoimg{height:44px;width:auto;display:block;}
@media(max-width:820px){.logoimg{height:38px;}}
.brand b{font-family:"Noto Serif JP",serif;font-weight:600;font-size:19px;letter-spacing:.08em;line-height:1;color:var(--ink);}
.brand span{font-size:9.5px;letter-spacing:.34em;color:var(--gold);display:block;margin-top:5px;}
.hdr.on-hero:not(.solid) .brand b{color:#fff;}
.hdr.on-hero:not(.solid) .brand span{color:var(--gold-soft);}
.hdr.on-hero:not(.solid) .navlink{color:rgba(255,255,255,.86);}
.hdr.on-hero:not(.solid) .navlink:hover{color:#fff;}
.nav{display:flex;gap:4px;margin-left:auto;}
.navlink{appearance:none;background:none;border:0;cursor:pointer;color:var(--ink-soft);font-size:13.5px;
  letter-spacing:.05em;padding:10px 13px;position:relative;transition:color .2s;}
.navlink::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:1.5px;background:var(--red);
  transform:scaleX(0);transform-origin:left;transition:transform .28s ease;}
.navlink:hover::after,.navlink[aria-current="true"]::after{transform:scaleX(1);}
.navlink[aria-current="true"]{color:var(--red);}
.hdr.on-hero:not(.solid) .navlink[aria-current="true"]{color:#fff;}
.cta-pill{display:inline-flex;align-items:center;gap:9px;background:var(--red);color:#fff;padding:11px 22px;
  border-radius:999px;font-size:13.5px;letter-spacing:.04em;transition:.25s;white-space:nowrap;border:1px solid var(--red);}
.cta-pill:hover{background:var(--red-deep);border-color:var(--red-deep);transform:translateY(-1px);}
.cta-pill svg{width:14px;height:14px;}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line-strong);background:rgba(255,255,255,.5);
  border-radius:10px;cursor:pointer;align-items:center;justify-content:center;margin-left:8px;}
.burger span{display:block;width:18px;height:1.6px;background:var(--ink);position:relative;}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:1.6px;background:var(--ink);}
.burger span::before{top:-6px;} .burger span::after{top:6px;}
.hdr.on-hero:not(.solid) .burger{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.12);}
.hdr.on-hero:not(.solid) .burger span,.hdr.on-hero:not(.solid) .burger span::before,.hdr.on-hero:not(.solid) .burger span::after{background:#fff;}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:99;background:rgba(23,20,15,.5);opacity:0;pointer-events:none;transition:opacity .3s;}
.drawer.open{opacity:1;pointer-events:auto;}
.drawer .panel{position:absolute;top:0;right:0;width:min(86vw,360px);height:100%;background:var(--panel);
  padding:90px 30px 40px;transform:translateX(100%);transition:transform .38s cubic-bezier(.2,.8,.2,1);overflow-y:auto;}
.drawer.open .panel{transform:none;}
.drawer .panel button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);
  padding:16px 4px;font-size:16px;color:var(--ink);cursor:pointer;font-family:"Noto Serif JP",serif;letter-spacing:.04em;}
.drawer .panel button:hover{color:var(--red);}

/* ===== page shell =====
   カンプ時代の .page{display:none} は削除。WordPress が <body> に付ける page クラスと衝突し body が消えるため。 */

@keyframes kenburns{to{transform:scale(1.12);}}

/* ===== あしらい utilities (Unipos-tone) ===== */
.watermark{position:absolute;font-family:"Noto Serif JP",serif;font-weight:700;line-height:.82;white-space:nowrap;
  color:rgba(23,20,15,.055);letter-spacing:.02em;pointer-events:none;user-select:none;z-index:0;
  font-size:clamp(58px,13vw,172px);left:-.02em;top:26px;}
.feature-dark .watermark{color:rgba(255,255,255,.05);}
.wm-host{overflow:hidden;}
.wm-host > .wrap{position:relative;z-index:1;}
.micro{writing-mode:vertical-rl;font-family:"Noto Serif JP",serif;font-size:11px;letter-spacing:.32em;color:var(--red);font-weight:600;}
.redrule{display:inline-block;width:34px;height:1px;background:var(--red);vertical-align:middle;margin:0 0 0 14px;}

/* ===== TOP hero (headline over wide photo band) ===== */
.thero{position:relative;background:var(--paper);padding:120px 0 48px;overflow:hidden;}
.thero .kick{display:inline-flex;align-items:center;gap:11px;color:var(--ink);font-size:12.5px;letter-spacing:.16em;font-weight:600;margin-bottom:20px;}
.thero .kick::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--red);}
.thero .head{display:flex;align-items:flex-end;justify-content:space-between;gap:34px;margin-bottom:30px;flex-wrap:wrap;}
.thero h1{font-family:"Noto Serif JP",serif;font-weight:600;font-size:clamp(29px,5.3vw,66px);line-height:1.34;
  letter-spacing:.05em;color:var(--ink);margin:0;}
.thero h1 .em{color:var(--red);}
.thero .entag{font-family:"Noto Serif JP",serif;text-align:right;color:var(--gold);font-size:clamp(10px,1vw,12.5px);
  letter-spacing:.24em;line-height:2;text-transform:uppercase;white-space:nowrap;padding-bottom:10px;}
.thero .band{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);aspect-ratio:16/7.4;border-radius:0;overflow:hidden;
  background:linear-gradient(135deg,#2a2118,#4a3826);box-shadow:none;}
.thero .band img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);animation:kenburns 22s ease-out forwards;}
.thero .band::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(158,27,27,.08),rgba(23,18,11,.22));pointer-events:none;}
.thero .band .trail{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;}
.thero .base{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:32px;flex-wrap:wrap;}
.thero .base p{font-family:"Noto Serif JP",serif;color:var(--ink-soft);font-size:15.5px;line-height:2;margin:0;max-width:46ch;}
.thero .base .btnrow{display:flex;gap:14px;flex-wrap:wrap;}
.scrollcue{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--sub);font-size:10px;letter-spacing:.3em;margin:34px auto 0;width:max-content;}
.scrollcue i{width:1px;height:44px;background:linear-gradient(var(--gold),transparent);animation:cue 2s ease-in-out infinite;}
@keyframes cue{0%,100%{opacity:.3;transform:scaleY(.6);}50%{opacity:1;transform:scaleY(1);}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:11px;background:var(--red);color:#fff;padding:15px 30px;
  font-size:14.5px;letter-spacing:.05em;border-radius:999px;transition:.25s;border:1px solid var(--red);cursor:pointer;}
.btn:hover{background:var(--red-deep);border-color:var(--red-deep);transform:translateY(-2px);box-shadow:var(--shadow-soft);}
.btn svg{width:15px;height:15px;transition:transform .25s;}
.btn:hover svg{transform:translateX(4px);}
.btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5);}
.btn.ghost:hover{background:rgba(255,255,255,.1);border-color:#fff;}
.btn.dark{background:transparent;color:var(--red);border-color:var(--line-strong);}
.btn.dark:hover{background:var(--red);color:#fff;border-color:var(--red);}

/* section rhythm */
section{padding:clamp(72px,10vw,132px) 0;position:relative;}
.sec-band{background:var(--panel);}
.sec-cream{background:var(--cream);}
.eyebrow{display:inline-block;color:var(--gold);font-size:12.5px;letter-spacing:.2em;font-weight:500;line-height:1;text-transform:uppercase;}
.shead{margin-bottom:52px;max-width:68%;}
.shead h2{font-size:clamp(28px,3.8vw,46px);margin:20px 0 20px;color:var(--ink);line-height:1.42;}
.shead p{color:var(--ink-soft);font-size:16px;margin:0;line-height:1.95;}
.lead{color:var(--ink-soft);font-size:16.5px;line-height:2;max-width:68%;}

/* media / duotone */
.media{position:relative;overflow:hidden;border-radius:var(--r);background:linear-gradient(135deg,#2a2118,#4a3826);}
.media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
.media::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(158,27,27,.14),rgba(23,18,11,.32));mix-blend-mode:multiply;pointer-events:none;}
.media.hoverable:hover img{transform:scale(1.06);}

/* customer split */
.split{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.entry{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;cursor:pointer;
  transition:transform .3s,box-shadow .3s,border-color .3s;display:flex;flex-direction:column;}
.entry:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--gold-soft);}
.entry .em{position:relative;height:170px;}
.entry .em img{width:100%;height:100%;object-fit:cover;}
.entry .em::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,18,11,.15),rgba(23,18,11,.6));}
.entry .em .role{position:absolute;left:22px;bottom:16px;color:#fff;font-size:11px;letter-spacing:.18em;z-index:2;}
.entry .bd{padding:26px 26px 30px;flex:1;display:flex;flex-direction:column;}
.entry h3{font-size:21px;margin:0 0 12px;color:var(--ink);line-height:1.55;}
.entry p{font-size:14px;color:var(--sub);margin:0 0 20px;flex:1;}
.entry .go{font-size:13px;color:var(--red);letter-spacing:.04em;display:inline-flex;align-items:center;gap:7px;}
.entry:hover .go{gap:11px;}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel);}
.stat{text-align:center;padding:44px 16px;border-right:1px solid var(--line);}
.stat:last-child{border-right:0;}
.stat .n{font-family:"Noto Serif JP",serif;font-size:clamp(38px,5vw,58px);
  color:var(--red);font-variant-numeric:tabular-nums;line-height:1;}
.stat .n .s{font-size:.42em;color:var(--gold);margin-left:2px;}
.stat .u{font-size:12.5px;color:var(--sub);letter-spacing:.06em;margin-top:16px;line-height:1.6;}

/* 実績インフォグラフィック (circular medallions) */
.facts-sec{padding:clamp(16px,2.5vw,36px) 0 clamp(56px,7vw,96px);}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,3vw,44px);}
.fact{display:flex;flex-direction:column;align-items:center;text-align:center;}
.ring{position:relative;width:clamp(158px,15.5vw,206px);aspect-ratio:1;display:grid;place-items:center;transition:transform .35s ease;}
.fact:hover .ring{transform:translateY(-5px);}
.ring::before{content:"";position:absolute;inset:11%;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:0 14px 34px rgba(70,45,20,.07);}
.ring>svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible;}
.ring .rtrack{fill:none;stroke:var(--line);stroke-width:2;}
.ring .rarc{fill:none;stroke:var(--gold);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:339.3;stroke-dashoffset:339.3;transition:stroke-dashoffset 1.5s cubic-bezier(.2,.7,.2,1);}
#statwrap.is-in .ring .rarc{stroke-dashoffset:74.6;}
.fin{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;}
.ficon{width:clamp(36px,3.6vw,46px);height:auto;fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:translateY(6px);transition:opacity .7s ease .5s,transform .7s ease .5s;}
.ficon *{stroke-dasharray:160;stroke-dashoffset:160;transition:stroke-dashoffset 1.6s cubic-bezier(.2,.7,.2,1) .6s;}
#statwrap.is-in .ficon{opacity:1;transform:none;}
#statwrap.is-in .ficon *{stroke-dashoffset:0;}
.fnum{position:relative;z-index:1;font-family:"Noto Serif JP",serif;color:var(--red);line-height:1;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;justify-content:center;gap:3px;white-space:nowrap;}
.fnum .n{font-size:clamp(27px,3.3vw,40px);}
.fnum .n .s{font-size:.5em;color:var(--gold);margin-left:1px;}
.fnum .fu{font-style:normal;font-size:clamp(12px,1.15vw,15px);color:var(--gold);font-family:"Noto Sans JP",sans-serif;font-weight:600;}
.flabel{margin-top:20px;font-size:13px;color:var(--sub);letter-spacing:.04em;line-height:1.7;max-width:13em;}
.fnum .nx{font-family:"Noto Serif JP",serif;font-size:clamp(22px,2.7vw,34px);letter-spacing:.04em;display:inline-block;transform-origin:center;}
#statwrap.is-in .fnum .nx{animation:stampin .8s cubic-bezier(.2,.85,.25,1) both, seal-glow 3.6s ease-in-out .9s infinite;}
@keyframes stampin{0%{opacity:0;transform:scale(1.55) rotate(-7deg);}55%{opacity:1;transform:scale(.93) rotate(1.5deg);}78%{transform:scale(1.03) rotate(-.5deg);}100%{opacity:1;transform:scale(1) rotate(0);}}
@keyframes seal-glow{0%,100%{text-shadow:0 0 0 rgba(198,160,80,0);}50%{text-shadow:0 0 16px rgba(198,160,80,.42);}}
.flabel.wide{max-width:18em;}
@media(max-width:720px){.facts{grid-template-columns:repeat(2,1fr);gap:36px 16px;}}
/* こんな思いを持つ方へ (needs infographic, informational / non-clickable) */
.needs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:34px;}
.need{text-align:center;padding:6px clamp(18px,3vw,46px);border-left:1px solid var(--line);cursor:default;}
.need:first-child{border-left:0;}
.nicon{width:62px;height:62px;margin:0 auto 20px;border:1.5px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--red);}
.nicon svg{width:26px;height:26px;}
.nrole{display:inline-block;font-family:"Noto Sans JP",sans-serif;font-size:11px;letter-spacing:.2em;color:var(--gold);font-weight:600;margin-bottom:11px;}
.need h3{font-family:"Noto Serif JP",serif;font-size:clamp(17px,1.7vw,21px);color:var(--ink);margin:0 0 11px;line-height:1.5;font-weight:600;}
.need p{font-size:12.5px;color:var(--sub);line-height:1.85;margin:0;}
.needs-div{height:1px;background:var(--line);margin:clamp(40px,5vw,66px) 0 clamp(34px,4vw,50px);}
@media(max-width:720px){.needs{grid-template-columns:1fr;}.need{border-left:0;border-top:1px solid var(--line);padding:26px 8px;}.need:first-child{border-top:0;}}

/* generic grids */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column;}
.card.lift:hover{transform:translateY(-5px);box-shadow:var(--shadow);}
.card .em{height:190px;position:relative;}
.card .em img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
.card.lift:hover .em img{transform:scale(1.06);}
.card .em::after{content:"";position:absolute;inset:0;background:linear-gradient(165deg,rgba(158,27,27,.1),rgba(23,18,11,.34));}
.card .bd{padding:28px;flex:1;display:flex;flex-direction:column;}
.card h3{font-size:20px;margin:0 0 12px;color:var(--ink);line-height:1.5;}
.card p{font-size:14.5px;color:var(--sub);margin:0;flex:1;line-height:1.85;}
.kicker-sm{color:var(--gold);font-size:11px;letter-spacing:.16em;margin-bottom:10px;text-transform:uppercase;}
/* 事業内容 4-category grid */
.biz-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.biz-grid .card .em{height:166px;}
.biz-grid .card .bd{padding:22px;}
.biz-grid .card h3{font-size:17px;margin-bottom:10px;}
.biz-grid .card p{font-size:13px;line-height:1.8;}
@media(max-width:960px){.biz-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.biz-grid{grid-template-columns:1fr;}}
.tags{margin-top:18px;display:flex;flex-wrap:wrap;gap:7px;}
.tag{font-size:11px;letter-spacing:.06em;padding:5px 12px;border-radius:999px;border:1px solid var(--line-strong);color:var(--sub);}
.tag.red{color:var(--red);border-color:color-mix(in srgb,var(--red) 38%,var(--line));background:color-mix(in srgb,var(--red) 5%,transparent);}
.tag.gold{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 45%,var(--line));background:color-mix(in srgb,var(--gold) 6%,transparent);}
.badge-full{font-size:10.5px;letter-spacing:.1em;color:#fff;background:var(--ink-soft);padding:4px 11px;border-radius:999px;}

/* 天地人 feature band (dark) */
.feature-dark{background:linear-gradient(160deg,#1b1610,#221a12);color:#f2ece0;}
.feature-dark .eyebrow{color:var(--gold-soft);}
.feature-dark .shead h2{color:#fff;}
.feature-dark .shead p{color:rgba(242,236,224,.72);}
.flame-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;margin-bottom:60px;}
.flame-hero .media{aspect-ratio:4/5;box-shadow:var(--shadow);}
.flame-hero .txt .k{font-family:"Noto Serif JP",serif;font-size:clamp(22px,2.6vw,30px);color:#f0c877;margin-bottom:18px;}
.flame-hero .txt p{color:rgba(242,236,224,.82);font-size:16px;line-height:2;}
.tenchijin{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.tc{border:1px solid rgba(255,255,255,.12);border-radius:var(--r);overflow:hidden;background:rgba(255,255,255,.03);transition:.3s;}
.tc:hover{background:rgba(255,255,255,.06);transform:translateY(-4px);}
.tc .em{height:150px;position:relative;}
.tc .em img{width:100%;height:100%;object-fit:cover;opacity:.86;}
.tc .em::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(20,15,10,.7));}
.tc .em .kanji{position:absolute;left:20px;bottom:12px;font-family:"Noto Serif JP",serif;font-size:40px;color:#f0c877;z-index:2;line-height:1;}
.tc .bd{padding:24px;}
.tc h4{margin:0 0 10px;font-size:17px;color:#f0c877;}
.tc p{font-size:13.5px;color:rgba(242,236,224,.72);margin:0;line-height:1.85;}

/* WHY HOW WHAT */
.whw{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);}
.whw .col{padding:40px 34px;background:var(--panel);border-right:1px solid var(--line);}
.whw .col:last-child{border-right:0;}
.whw .col .lbl{font-family:"Josefin Sans",serif;color:var(--gold);font-size:13px;letter-spacing:.2em;margin-bottom:18px;}
.whw .col h3{font-size:20px;margin:0 0 14px;color:var(--red);}
.whw .col p{font-size:14.5px;color:var(--ink-soft);margin:0;line-height:1.9;}

/* case */
.filter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:38px;padding:20px 22px;
  border:1px solid var(--line);background:var(--panel);border-radius:var(--r);}
.filter .fl{font-size:11.5px;color:var(--sub);letter-spacing:.14em;margin-right:4px;}
.filter .sep{width:1px;height:22px;background:var(--line);margin:0 8px;}
.chip{font-size:12.5px;padding:7px 15px;border:1px solid var(--line-strong);border-radius:999px;color:var(--sub);cursor:pointer;transition:.2s;background:none;}
.chip[aria-pressed="true"]{background:var(--red);color:#fff;border-color:var(--red);}
.chip:hover{border-color:var(--red);color:var(--red);}
.chip[aria-pressed="true"]:hover{color:#fff;}
.case{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .3s,box-shadow .3s;}
.case:hover{transform:translateY(-5px);box-shadow:var(--shadow);}
.case .em{height:172px;position:relative;}
.case .em img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
.case:hover .em img{transform:scale(1.06);}
.case .em::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(158,27,27,.16),rgba(23,18,11,.42));}
.case .ind{position:absolute;left:18px;top:16px;z-index:2;font-size:11px;letter-spacing:.12em;color:#fff;
  background:rgba(23,18,11,.5);backdrop-filter:blur(4px);padding:5px 12px;border-radius:999px;}
.case .bd{padding:26px;flex:1;display:flex;flex-direction:column;}
.case h3{font-size:18.5px;margin:0 0 14px;line-height:1.55;color:var(--ink);}
.case .flow{font-size:13.5px;color:var(--sub);margin:0 0 18px;line-height:1.8;flex:1;}
.case .flow b{color:var(--red);font-weight:600;}
.case.hide{display:none;}
.count-note{font-size:13px;color:var(--sub);margin:-18px 0 26px;letter-spacing:.03em;}

/* sub-page hero (editorial / Unipos-tone) */
.phero{position:relative;background:var(--paper);padding:154px 0 60px;overflow:hidden;}
.phero .wrap{position:relative;z-index:2;}
.phero .head{text-align:right;}
.phero h1{font-family:"Noto Serif JP",serif;font-weight:600;font-size:clamp(30px,5vw,58px);color:var(--ink);
  margin:0;letter-spacing:.12em;line-height:1.42;}
.phero .en-lbl{display:inline-flex;align-items:center;color:var(--sub);letter-spacing:.28em;font-size:12px;font-weight:600;margin-top:16px;}
.phero p{color:var(--ink-soft);margin:20px 0 0 auto;max-width:66%;font-size:15px;font-family:"Noto Serif JP",serif;line-height:1.95;}
.phero .watermark{top:auto;bottom:6px;color:rgba(23,20,15,.05);}

/* profile */
.profile{display:grid;grid-template-columns:340px 1fr;gap:56px;align-items:start;}
.profile .side{position:sticky;top:100px;}
.portrait{aspect-ratio:3/4;border-radius:var(--r);overflow:hidden;position:relative;box-shadow:var(--shadow);background:linear-gradient(160deg,#2a2018,#463424);}
.portrait img{width:100%;height:100%;object-fit:cover;}
.portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(20,15,10,.7));}
.portrait .nm{position:absolute;left:24px;bottom:22px;z-index:2;color:#fff;}
.portrait .nm b{font-family:"Noto Serif JP",serif;font-size:26px;display:block;letter-spacing:.08em;}
.portrait .nm span{font-size:11px;color:var(--gold-soft);letter-spacing:.22em;}
.anchors{display:flex;flex-direction:column;gap:2px;margin-top:22px;}
.anchors a{font-size:14px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;color:var(--ink-soft);
  transition:.2s;display:flex;justify-content:space-between;align-items:center;background:var(--panel);}
.anchors a:hover{border-color:var(--red);color:var(--red);transform:translateX(3px);}
.pblock{margin-bottom:56px;}
.pblock h2{font-size:clamp(24px,3vw,34px);margin:0 0 20px;color:var(--ink);line-height:1.45;}
.pblock h3{font-size:22px;margin:0 0 16px;color:var(--red);}
.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;}

/* info table */
.info{width:100%;border-collapse:collapse;font-size:15px;border-top:1px solid var(--line);}
.info th,.info td{text-align:left;padding:20px 8px;border-bottom:1px solid var(--line);vertical-align:top;}
.info th{width:190px;color:var(--red);font-weight:600;font-family:"Noto Serif JP",serif;letter-spacing:.04em;}
.info td{color:var(--ink-soft);line-height:1.9;}
.info-sub{margin-top:14px;}
.info-sub b{color:var(--ink);font-weight:600;}
.info-note{font-size:13px;color:var(--sub);}

/* timeline */
.tl{border-left:2px solid var(--line-strong);margin:0 0 0 10px;padding:6px 0 6px 34px;display:flex;flex-direction:column;gap:34px;list-style:none;}
.tl li{position:relative;}
.tl li::before{content:"";position:absolute;left:-42px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--red);box-shadow:0 0 0 5px var(--paper);}
.tl .yr{font-family:"Noto Serif JP",serif;color:var(--red);font-size:19px;font-variant-numeric:tabular-nums;letter-spacing:.04em;}
.tl .ev{font-size:15px;color:var(--ink-soft);margin-top:4px;}

/* member */
.members{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.member{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:.3s;}
.member:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft);}
.member .av{height:220px;background:var(--cream);position:relative;overflow:hidden;}
.member .av img{width:100%;height:100%;object-fit:cover;transition:transform 1s;}
.member:hover .av img{transform:scale(1.05);}
.member .bd{padding:22px 24px 26px;}
.member .bd h3{font-size:18px;margin:0 0 6px;}
.member .bd p{font-size:13px;color:var(--sub);margin:0;}

/* news */
.newslist{border-top:1px solid var(--line);}
.newsitem{display:grid;grid-template-columns:130px 116px 1fr auto;gap:22px;align-items:center;
  padding:24px 8px;border-bottom:1px solid var(--line);cursor:pointer;transition:.2s;}
.newsitem:hover{background:var(--panel);padding-left:16px;}
.newsitem .d{font-size:13px;color:var(--sub);font-variant-numeric:tabular-nums;letter-spacing:.04em;}
.newsitem .c{font-size:11px;color:var(--red);border:1px solid color-mix(in srgb,var(--red) 36%,var(--line));
  border-radius:999px;padding:4px 0;text-align:center;letter-spacing:.06em;}
.newsitem .t{font-size:15.5px;color:var(--ink);}
.newsitem:hover .t{color:var(--red);}
.newsitem .ar{color:var(--gold);opacity:0;transition:.2s;}
.newsitem:hover .ar{opacity:1;}

/* media split (youtube) */
.msplit{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.videoframe{position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);cursor:pointer;background:linear-gradient(140deg,#241f1a,#3a2f26);}
.videoframe img{width:100%;height:100%;object-fit:cover;opacity:.72;transition:.5s;}
.videoframe:hover img{opacity:.85;transform:scale(1.04);}
.videoframe .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.videoframe .play span{width:78px;height:78px;border-radius:50%;background:rgba(158,27,27,.92);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 40px rgba(0,0,0,.4);transition:.3s;}
.videoframe:hover .play span{transform:scale(1.08);background:var(--red);}
.videoframe .play svg{width:26px;height:26px;margin-left:4px;}

/* form */
.form{display:grid;grid-template-columns:1fr;gap:24px;max-width:none;}
.form .req{display:inline-block;margin-left:8px;padding:2px 7px;font-size:10.5px;letter-spacing:.08em;color:#fff;background:var(--red);border-radius:2px;vertical-align:middle;}
.form .agree{padding-top:6px;text-align:center;}
.form .submit{text-align:center;}
.form .check{display:inline-flex;align-items:center;gap:12px;cursor:pointer;font-size:14.5px;color:var(--ink-soft);margin:0;letter-spacing:.02em;}
.form .check input{position:absolute;opacity:0;width:0;height:0;}
.form .check .box{width:20px;height:20px;border:1px solid var(--line-strong);border-radius:4px;background:var(--panel);flex:none;position:relative;transition:.15s;}
.form .check input:checked+.box{background:var(--red);border-color:var(--red);}
.form .check input:checked+.box::after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.form .check a{color:var(--red);text-decoration:underline;text-underline-offset:3px;}
.form label{font-size:12.5px;color:var(--sub);letter-spacing:.06em;display:block;margin-bottom:9px;}
.form input,.form textarea{width:100%;padding:14px 16px;border:1px solid var(--line-strong);background:var(--panel);
  color:var(--ink);border-radius:10px;font-family:inherit;font-size:14.5px;transition:.2s;}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 12%,transparent);}
.notice{border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));background:color-mix(in srgb,var(--gold) 8%,var(--panel));
  padding:20px 24px;border-radius:var(--r);font-size:14.5px;color:var(--ink-soft);margin-bottom:34px;display:flex;gap:14px;align-items:flex-start;}
.notice b{color:var(--red);}
.notice .dot{width:8px;height:8px;border-radius:50%;background:var(--red);margin-top:9px;flex:none;}

/* CTA strip */
.ctastrip{background:linear-gradient(150deg,var(--red-deep),#8a1717);color:#fff;border-radius:calc(var(--r) + 6px);
  padding:clamp(44px,6vw,72px);text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow);}
.ctastrip h2{font-size:clamp(26px,3.6vw,40px);margin:0 0 18px;color:#fff;position:relative;}
.cta-sun{position:relative;z-index:2;width:clamp(88px,9vw,122px);margin:0 auto 22px;color:#f0dcb0;opacity:.95;}
.cta-sun svg{width:100%;height:auto;display:block;}
.cta-glow{position:absolute;bottom:-40px;width:min(44%,330px);color:#f6ead0;opacity:.13;z-index:0;pointer-events:none;}
.cta-glow svg{width:100%;height:auto;display:block;}
.cta-glow.l{left:-26px;}
.cta-glow.r{right:-26px;}
.ctastrip p,.ctastrip .btn{position:relative;z-index:2;}
.ctastrip p{color:rgba(255,255,255,.85);max-width:66%;margin:0 auto 30px;position:relative;}

/* footer */
.foot{background:var(--ink);color:#cdc4b4;padding:74px 0 34px;}
.foot .cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:44px;}
.foot h5{color:#f2ede2;font-family:"Noto Serif JP",serif;font-size:16px;margin:0 0 18px;letter-spacing:.06em;}
.foot a{display:block;font-size:13.5px;color:#b7ad9c;padding:6px 0;transition:.2s;}
.foot a:hover{color:var(--gold-soft);}
.foot .fine{margin-top:52px;padding-top:26px;border-top:1px solid #332d24;font-size:11.5px;color:#8c8474;letter-spacing:.05em;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.foot .brand b{color:#f2ede2;} .foot .brand span{color:var(--gold-soft);}

@media(max-width:980px){
  .flame-hero,.profile,.msplit{grid-template-columns:1fr;gap:36px;}
  .profile .side{position:static;}
  .foot .cols{grid-template-columns:repeat(3,1fr);gap:36px 24px;}
  .foot .cols > div:first-child{grid-column:1/-1;}
}
@media(max-width:600px){
  .foot .cols{grid-template-columns:1fr;gap:0;}
  .foot .cols > div:first-child{margin-bottom:28px;}
  .foot .cols > div:not(:first-child){border-top:1px solid #332d24;padding:10px 0;}
  .foot a{padding:9px 0;}
}
@media(max-width:820px){
  .nav{display:none;} .burger{display:flex;} .cta-pill{display:none;}
  .split,.stats,.grid3,.grid2,.tenchijin,.whw,.members{grid-template-columns:1fr;}
  .stat{border-right:0;border-bottom:1px solid var(--line);}
  .stat:last-child{border-bottom:0;}
  .whw .col{border-right:0;border-bottom:1px solid var(--line);}
  .whw .col:last-child{border-bottom:0;}
  .wrap{padding:0 22px;}
  .newsitem{grid-template-columns:auto 1fr;gap:10px 16px;}
  .newsitem .t{grid-column:1/-1;} .newsitem .ar{display:none;}
}
/* hero responsive */
@media(max-width:900px){
  .thero{padding:104px 0 56px;}
  .thero .head{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:24px;}
  .thero .entag{text-align:left;padding-bottom:0;}
  .thero .band{aspect-ratio:4/3;}
  .thero .base{flex-direction:column;align-items:flex-start;gap:22px;}
  .scrollcue{display:none;}
  .phero{padding:120px 0 46px;}
  .phero .head{text-align:left;}
  .phero p{margin-left:0;}
  .watermark{font-size:clamp(48px,18vw,90px);}
}

/* ===== 会社概要（統合ページ） ===== */
.rephero .rh-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:52px;align-items:center;}
.rephero .en-lbl{justify-content:flex-start;margin-top:0;}
.rh-catch{font-family:"Noto Serif JP",serif;font-weight:600;color:var(--ink);font-size:clamp(22px,2.7vw,34px);letter-spacing:.04em;line-height:1.55;margin:18px 0 26px;}
.rh-titles{list-style:none;padding:0;margin:0 0 26px;color:var(--sub);font-size:13.5px;line-height:1.95;letter-spacing:.02em;}
.rh-name b{display:block;font-family:"Noto Serif JP",serif;font-size:clamp(30px,3.6vw,46px);letter-spacing:.12em;color:var(--ink);line-height:1.2;}
.rh-name span{display:block;margin-top:8px;font-size:12px;letter-spacing:.32em;color:var(--gold);font-weight:600;}
.rh-photo{aspect-ratio:3/4;max-width:380px;margin-left:auto;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);background:linear-gradient(160deg,#2a2018,#463424);}
.rh-photo img{width:100%;height:100%;object-fit:cover;}
.pstory{display:grid;gap:64px;}
.prow{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.prow.rev .pimg{order:2;}
.prow .pimg{aspect-ratio:3/2;box-shadow:var(--shadow);}
.prow h3{font-size:clamp(20px,2vw,24px);margin:0 0 18px;color:var(--ink);line-height:1.5;padding-bottom:16px;border-bottom:1px solid var(--line-strong);}
.prow .lead{max-width:none;font-size:15.5px;}
.greet{display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:start;}
.greet-txt p{font-family:"Noto Serif JP",serif;color:var(--ink-soft);font-size:15.5px;line-height:2.05;margin:0 0 18px;}
.creed{list-style:none;padding:12px 22px;margin:4px 0 18px;border-left:2px solid var(--gold);font-family:"Noto Serif JP",serif;color:var(--ink);font-size:16px;line-height:2;}
.sign{margin-top:30px;text-align:right;}
.sign span{display:block;font-size:12px;color:var(--sub);letter-spacing:.06em;margin-bottom:6px;}
.sign b{font-family:"Noto Serif JP",serif;font-size:24px;letter-spacing:.14em;color:var(--ink);}
.greet-photo{aspect-ratio:1/1;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);position:sticky;top:110px;align-self:start;background:linear-gradient(160deg,#2a2018,#463424);}
.greet-photo img{width:100%;height:100%;object-fit:cover;object-position:center;}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 64px;align-items:start;counter-reset:pc;border-top:1px solid var(--line-strong);}
.pcol{display:flex;flex-direction:column;gap:22px;}
.pcard{position:relative;padding:24px 0 24px 52px;border-bottom:1px solid var(--line);counter-increment:pc;}
.pcard::before{content:counter(pc,decimal-leading-zero);position:absolute;left:0;top:27px;font-family:"Noto Serif JP",serif;font-size:13px;letter-spacing:.08em;color:var(--gold);}
.pcard h3{font-size:17px;margin:0 0 4px;color:var(--ink);line-height:1.5;}
.pc-sub{font-size:12.5px;color:var(--gold);letter-spacing:.04em;margin-bottom:8px;}
.pcard p{font-size:13.5px;color:var(--sub);line-height:1.85;margin:8px 0 0;}
.vgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;max-width:960px;}
.vframe{aspect-ratio:16/9;border-radius:var(--r);background:linear-gradient(140deg,#2a2118,#4a3826);border:1px dashed var(--line-strong);display:grid;place-items:center;}
.vplay{width:56px;height:56px;border-radius:50%;background:rgba(158,27,27,.9);display:grid;place-items:center;}
.vplay svg{width:20px;height:20px;margin-left:3px;}
.vt{margin-top:12px;font-size:14px;color:var(--ink);letter-spacing:.02em;}
@media(max-width:900px){.rephero .rh-grid,.prow,.greet,.pgrid{grid-template-columns:1fr;} .prow.rev .pimg{order:0;} .rh-photo{max-width:100%;margin-left:0;} .greet-photo{position:static;max-width:320px;} .vgrid{grid-template-columns:1fr;} }

/* ===== 事業内容（カテゴリー > プロジェクト） ===== */
.bizcat-sec{padding:clamp(56px,7vw,96px) 0;}
.bizcat-head{max-width:68%;margin-bottom:30px;}
.bizcat-head h2{font-size:clamp(24px,3vw,34px);margin:10px 0 12px;color:var(--ink);}
.bizcat-head p{color:var(--ink-soft);font-size:15px;line-height:1.9;margin:0;}
.bizproj{display:grid;grid-template-columns:minmax(0,38%) 1fr;gap:0 36px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:22px;}
.bizproj:last-child{margin-bottom:0;}
.bp-em{align-self:stretch;min-height:220px;position:relative;background:var(--cream);overflow:hidden;}
.bp-em img{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);object-fit:cover;display:block;}
.bp-em::after{content:"";position:absolute;inset:0;background:linear-gradient(165deg,rgba(158,27,27,.1),rgba(23,18,11,.3));pointer-events:none;}
.bp-bd{padding:30px 34px 30px 0;}
.bp-status{display:inline-block;font-size:12px;color:var(--red);letter-spacing:.08em;margin-bottom:10px;font-weight:600;}
.bizproj h3{font-size:20px;margin:0 0 12px;color:var(--ink);line-height:1.5;}
.bizproj p{font-size:14.5px;color:var(--sub);line-height:1.9;margin:0 0 20px;}
@media(max-width:820px){.bizproj{grid-template-columns:1fr;} .bp-em{align-self:auto;height:auto;min-height:0;aspect-ratio:16/9;} .bp-bd{padding:22px 24px 26px;}}

/* ===== 共創メンバー（4列） ===== */
.members4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.members4 .member{cursor:default;}
.members4 .member:hover{transform:none;box-shadow:none;}
.members4 .member .av{height:auto;aspect-ratio:1/1;}
.members4 .member .av img{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);object-fit:cover;transform:none!important;}
.members4 .member .bd{padding:18px 20px 22px;}
.members4 .member .bd h3{font-size:17px;margin:0 0 4px;}
.members4 .member .bd p{font-size:12.5px;color:var(--sub);margin:0;}
@media(max-width:960px){.members4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.members4{grid-template-columns:1fr;}}

/* filter rows + case meta */
.filter{flex-direction:column;align-items:stretch;gap:12px;}
.frow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.frow .fl{min-width:88px;}
.cmeta{margin-top:auto;padding-top:14px;font-size:12px;color:var(--gold);letter-spacing:.04em;line-height:1.6;}
.cmeta i{font-style:normal;color:var(--line-strong);margin:0 6px;}

/* needs: photo medallions */
.nphoto{position:relative;width:150px;height:150px;margin:0 auto 22px;border-radius:50%;background:linear-gradient(160deg,#2a2018,#463424);box-shadow:0 0 0 5px var(--panel),0 0 0 8px var(--gold-soft);}
.nphoto img{width:100%;height:100%;object-fit:cover;object-position:center 22%;border-radius:50%;}
.nnum{position:absolute;left:-16px;top:-6px;font-family:"Noto Serif JP",serif;font-size:28px;font-weight:600;color:var(--red);line-height:1;background:var(--panel);padding:3px 7px;border-radius:8px;letter-spacing:.02em;}
.more-link{font-size:13.5px;color:var(--red);letter-spacing:.04em;border-bottom:1px solid var(--gold);padding-bottom:2px;}
.more-link:hover{color:var(--red-deep);}
.newsitem{cursor:pointer;}

/* lead width: ~2/3 of content; full width inside grids / mobile */
.grid2 .lead,.prow .lead,.pblock .lead,.msplit .lead{max-width:none;}
@media(max-width:820px){.shead,.lead,.phero p,.bizcat-head,.ctastrip p{max-width:100%;}}

/* ===== 行動指針：ゴールデンサークル ===== */
.valgrid{display:grid;grid-template-columns:.7fr 1.5fr;gap:44px;align-items:center;}
.gc{display:grid;grid-template-columns:380px 1fr;gap:0 4px;align-items:start;}
.gc-svg{width:380px;height:399px;display:block;overflow:visible;}
.gc-svg .gc-lbl{font-family:"Noto Sans JP",sans-serif;font-weight:700;letter-spacing:.22em;text-anchor:middle;}
.gc-items{position:relative;height:399px;}
.gc-item{position:absolute;left:0;transform:translateY(-50%);padding-left:18px;max-width:none;right:0;}
.gc-item:nth-child(1){top:36.7%;} .gc-item:nth-child(2){top:60.7%;} .gc-item:nth-child(3){top:85.7%;}
.gc-item h3{font-family:"Noto Serif JP",serif;font-size:17px;margin:0 0 4px;color:var(--red);line-height:1.4;display:flex;align-items:baseline;gap:12px;}
.gc-item h3 em{font-family:"Noto Sans JP",sans-serif;font-style:normal;font-size:11.5px;letter-spacing:.2em;color:var(--gold);font-weight:700;}
.gc-item p{font-size:13px;color:var(--ink-soft);margin:0;line-height:1.8;}
@media(max-width:1080px){.valgrid{grid-template-columns:1fr;gap:36px;}}
@media(max-width:900px){.gc{grid-template-columns:1fr;} .gc-svg{width:min(100%,360px);height:auto;margin:0 auto;} .gc-links,.gc-dots{display:none;} .gc-items{height:auto;margin-top:22px;} .gc-item{position:static;transform:none;padding-left:0;margin-bottom:20px;max-width:none;}}

/* ===== 経営理念 v42 ===== */
.viewgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;margin-top:-8px;}
.pull{font-family:"Noto Serif JP",serif;font-size:clamp(20px,2.2vw,26px);line-height:1.6;color:var(--ink);margin:0 0 22px;padding-left:20px;border-left:2px solid var(--red);}
.viewgrid .lead{max-width:none;font-size:15.5px;margin:0 0 14px;}
.visgrid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.ladder{display:flex;flex-direction:column;}
.rung{position:relative;padding:22px 26px 22px 30px;border:1px solid var(--line-strong);border-radius:12px;background:var(--panel);}
.rung .rn{display:block;font-size:11px;letter-spacing:.22em;color:var(--gold);font-weight:600;margin-bottom:8px;}
.rung b{display:block;font-family:"Noto Serif JP",serif;font-weight:600;font-size:19px;color:var(--ink);line-height:1.5;margin-bottom:6px;}
.rung small{display:block;font-size:13px;color:var(--sub);line-height:1.8;}
.rung.goal{background:var(--red);border-color:var(--red);}
.rung.goal .rn{color:var(--gold-soft);} .rung.goal b{color:#fff;} .rung.goal small{color:rgba(255,255,255,.8);}
.rarrow{width:0;height:30px;margin:0 auto;border-left:1px dashed var(--gold);position:relative;}
.rarrow::after{content:"";position:absolute;left:-4px;top:-3px;width:7px;height:7px;border-left:1px solid var(--gold);border-top:1px solid var(--gold);transform:rotate(45deg);}
.milestone{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;margin-top:22px;}
.milestone .my{font-family:"Noto Serif JP",serif;font-size:40px;color:var(--red);line-height:1;letter-spacing:.02em;}
.milestone .mt{font-size:13.5px;color:var(--ink-soft);line-height:1.85;padding-top:4px;}
.ways{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px;border-top:1px solid var(--line-strong);}
.way{padding:30px 0 28px;border-bottom:1px solid var(--line);}
.way .wn{font-family:"Noto Serif JP",serif;font-size:13px;letter-spacing:.1em;color:var(--gold);display:block;margin-bottom:12px;}
.way h3{font-size:18px;margin:0 0 10px;color:var(--ink);line-height:1.55;}
.way p{font-size:14px;color:var(--sub);line-height:1.85;margin:0;}
.focus{margin:36px 0 0;font-family:"Noto Serif JP",serif;font-size:16.5px;color:var(--ink);line-height:1.9;max-width:68%;}
.valnote{margin:40px 0 0;font-size:13.5px;color:var(--sub);line-height:1.85;max-width:68%;}
.legacy{display:grid;grid-template-columns:.7fr 1.3fr;gap:56px;align-items:start;}
.legacy-txt p{font-family:"Noto Serif JP",serif;color:rgba(242,236,224,.86);font-size:15.5px;line-height:2.05;margin:0 0 20px;}
.terms-sec{padding-top:clamp(56px,7vw,88px);padding-bottom:clamp(56px,7vw,88px);}
.terms{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px;border-top:1px solid var(--line-strong);}
.terms>div{padding:24px 0;border-bottom:1px solid var(--line);}
.terms dt{font-family:"Noto Serif JP",serif;font-size:16px;color:var(--ink);margin-bottom:8px;}
.terms dd{margin:0;font-size:13.5px;color:var(--sub);line-height:1.85;}
br.sp{display:none;}
@media(max-width:1000px){.viewgrid,.visgrid,.legacy{grid-template-columns:1fr;gap:32px;} .ways,.terms{grid-template-columns:1fr;} .focus,.valnote{max-width:100%;}}
@media(max-width:640px){br.sp{display:inline;}}
/* ===== v43 追加 ===== */
br.pc{display:inline;}
@media(max-width:640px){br.pc{display:none;}}
.videoframe iframe,.vframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
.videoframe.playing .play{display:none;}
.vframe.real{position:relative;border:0;background:#000;overflow:hidden;cursor:pointer;box-shadow:var(--shadow-soft);}
.vframe.real img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9;transition:.4s;}
.vframe.real:hover img{opacity:1;transform:scale(1.03);}
.vframe.real .vplay{position:relative;z-index:2;transition:.3s;}
.vframe.real:hover .vplay{transform:scale(1.08);background:var(--red);}
.vframe.real.playing .vplay{display:none;}
.vt{line-height:1.7;}
.legal p{font-size:15px;color:var(--ink-soft);line-height:2;margin:0 0 16px;}
.legal h3{font-size:18px;color:var(--red);margin:40px 0 12px;padding-bottom:10px;border-bottom:1px solid var(--line);}
.legal ol{margin:0 0 16px;padding-left:1.6em;color:var(--ink-soft);font-size:15px;line-height:2;}
.legal-contact{margin:18px 0 0;padding:18px 22px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);font-size:14.5px;line-height:1.9;color:var(--ink-soft);}
.legal-contact b{color:var(--ink);}
.legal-contact a{color:var(--red);text-decoration:underline;text-underline-offset:3px;}
.legal-date{margin-top:44px;text-align:right;font-size:14px;color:var(--sub);line-height:1.9;}

/* ===== WordPress 子テーマ用の追記 ===== */
/* ナビがボタンからリンクになったぶんの調整 */
.navlink{display:inline-block;}
.drawer .panel a{display:block;width:100%;text-align:left;border-bottom:1px solid var(--line);padding:16px 4px;font-size:16px;color:var(--ink);font-family:"Noto Serif JP",serif;letter-spacing:.04em;}
.drawer .panel a:hover{color:var(--red);}
.newsitem{text-decoration:none;}
/* ログイン中の管理バーぶん、固定ヘッダーを下げる */
body.admin-bar .hdr{top:32px;}
@media(max-width:782px){body.admin-bar .hdr{top:46px;}}
/* 親テーマ（DIVER）の body 余白などを打ち消す */
body.rj-page{margin:0;padding:0;background:var(--paper);}
/* Contact Form 7 をカンプのフォーム見た目に合わせる */
.rj-cf7 .wpcf7-form p{margin:0 0 24px;}
.rj-cf7 .wpcf7-form label{font-size:12.5px;color:var(--sub);letter-spacing:.06em;display:block;margin-bottom:9px;}
.rj-cf7 .wpcf7-form input[type="text"],.rj-cf7 .wpcf7-form input[type="email"],.rj-cf7 .wpcf7-form input[type="tel"],.rj-cf7 .wpcf7-form textarea{width:100%;padding:14px 16px;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);border-radius:10px;font-family:inherit;font-size:14.5px;}
.rj-cf7 .wpcf7-form input:focus,.rj-cf7 .wpcf7-form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 12%,transparent);}
.rj-cf7 .wpcf7-submit{display:inline-flex;align-items:center;gap:11px;background:var(--red);color:#fff;padding:15px 30px;font-size:14.5px;letter-spacing:.05em;border-radius:999px;border:1px solid var(--red);cursor:pointer;transition:.25s;}
.rj-cf7 .wpcf7-submit:hover{background:var(--red-deep);transform:translateY(-2px);}
.rj-cf7 .wpcf7-form .wpcf7-submit{margin:0 auto;display:flex;}
.rj-cf7 .wpcf7-response-output{border-radius:10px;font-size:14px;}
.rj-cf7 .wpcf7-not-valid-tip{font-size:12px;color:var(--red);}
/* DIVERのフェードイン/ローダーの残骸が効いても表示されるよう保険 */
body.rj-page{opacity:1!important;visibility:visible!important;animation:none!important;transition:none!important;}

/* MISSION見出し：「変化・進化の担い手」の で改行させるため幅制限を外し、サイズを抑える */
.shead-mission{max-width:100%;}
.shead-mission h2{font-size:clamp(26px,3.4vw,42px);}
.shead-mission p{max-width:68%;}
@media(max-width:820px){.shead-mission p{max-width:100%;}}
