/* =========================================================
   Decelink Bio Co., Ltd.  —  Website stylesheet
   Brand colors are derived from the corporate logo
     green : #166546  /  navy : #1E3A4C
   ========================================================= */

:root{
  --green:        #166546;
  --green-mid:    #227054;
  --green-bright: #35A177;
  --green-glow:   rgba(53,161,119,.35);
  --navy:         #1E3A4C;
  --ink:          #0C1C26;
  --ink-2:        #122936;
  --paper:        #F2F6F4;
  --paper-2:      #E4EDE8;
  --white:        #ffffff;
  --muted:        #6D8794;
  --line:         rgba(30,58,76,.14);
  --line-d:       rgba(255,255,255,.14);
  --maxw:         1180px;
  --ease:         cubic-bezier(.22,.68,.36,1);
  --jp: "Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",
        "Yu Gothic Medium","Yu Gothic",Meiryo,system-ui,sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; font-family:var(--jp); color:var(--ink);
  background:var(--white); line-height:1.75;
  font-feature-settings:"palt" 1; letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }

.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:24px; }

/* ---------------------------------------------------------
   Header
   --------------------------------------------------------- */
.hd{
  position:fixed; inset:0 0 auto 0; z-index:100;
  background:rgba(12,28,38,0); backdrop-filter:blur(0px);
  transition:background .4s var(--ease), backdrop-filter .4s var(--ease),
             border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.hd.solid,
.hd.light{
  background:rgba(12,28,38,.86); backdrop-filter:blur(14px) saturate(1.2);
  border-bottom-color:var(--line-d);
}
.hd__in{
  display:flex; align-items:center; justify-content:space-between;
  height:74px; gap:24px;
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand__mark{
  width:38px; height:38px; background:var(--white); border-radius:7px;
  display:grid; place-items:center; flex:none;
}
.brand__mark img{ width:22px; }
.brand__txt{ line-height:1.15; }
.brand__en{
  display:block; color:#fff; font-weight:800; font-size:16px; letter-spacing:.04em;
}
.brand__jp{
  display:block; color:rgba(255,255,255,.55); font-size:10.5px; letter-spacing:.16em;
}

.nav{ display:flex; align-items:center; gap:4px; }
.nav a{
  position:relative; padding:10px 14px; font-size:13.5px; font-weight:600;
  color:rgba(255,255,255,.78); border-radius:6px; transition:color .25s;
  white-space:nowrap;
}
.nav a::after{
  content:""; position:absolute; left:14px; right:14px; bottom:4px; height:2px;
  background:var(--green-bright); transform:scaleX(0); transform-origin:left;
  transition:transform .32s var(--ease);
}
.nav a:hover{ color:#fff; }
.nav a:hover::after,
.nav a[aria-current="page"]::after{ transform:scaleX(1); }
.nav a[aria-current="page"]{ color:#fff; }
.nav .btn-sm{
  margin-left:10px; background:var(--green); color:#fff; padding:11px 20px;
  border-radius:100px; font-size:13px;
}
.nav .btn-sm::after{ display:none; }
.nav .btn-sm:hover{ background:var(--green-bright); }

.burger{
  display:none; width:44px; height:44px; border:0; background:transparent;
  cursor:pointer; padding:0; position:relative;
}
.burger span{
  position:absolute; left:11px; width:22px; height:2px; background:#fff;
  transition:transform .3s var(--ease), opacity .2s;
}
.burger span:nth-child(1){ top:16px; }
.burger span:nth-child(2){ top:22px; }
.burger span:nth-child(3){ top:28px; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ---------------------------------------------------------
   Hero (top page)
   --------------------------------------------------------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  background:
    radial-gradient(120% 90% at 78% 12%, rgba(53,161,119,.22), transparent 58%),
    radial-gradient(90% 70% at 8% 92%, rgba(22,101,70,.30), transparent 60%),
    linear-gradient(165deg,#0C1C26 0%, #12303F 52%, #0C2029 100%);
  overflow:hidden; color:#fff;
}
.hero__bg{ position:absolute; inset:0; opacity:.5; pointer-events:none; }
.hero__in{ position:relative; z-index:2; padding:130px 0 108px; width:100%; }

.eyebrow{
  display:inline-flex; align-items:center; gap:10px; font-size:11.5px;
  letter-spacing:.24em; font-weight:700; color:var(--green-bright);
  text-transform:uppercase; margin-bottom:26px;
}
.eyebrow::before{
  content:""; width:34px; height:1px; background:var(--green-bright); opacity:.8;
}

.hero h1{
  font-size:clamp(2.5rem,7.2vw,5.4rem); font-weight:800; line-height:1.16;
  letter-spacing:-.01em; margin-bottom:30px;
}
.hero h1 .em{
  background:linear-gradient(100deg,var(--green-bright),#7FD9B4);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero h1 .l{ display:block; }
.hero p.lead{
  font-size:clamp(.95rem,1.6vw,1.15rem); color:rgba(255,255,255,.74);
  max-width:34em; line-height:2.05;
}

.cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:42px; }
.btn{
  display:inline-flex; align-items:center; gap:12px; padding:17px 34px;
  border-radius:100px; font-weight:700; font-size:14.5px; letter-spacing:.04em;
  transition:transform .28s var(--ease), background .28s, box-shadow .28s, color .28s;
}
.btn:hover{ transform:translateY(-2px); }
.btn--p{ background:var(--green); color:#fff; box-shadow:0 10px 30px -10px var(--green-glow); }
.btn--p:hover{ background:var(--green-bright); box-shadow:0 16px 38px -12px var(--green-glow); }
.btn--g{ border:1px solid rgba(255,255,255,.32); color:#fff; }
.btn--g:hover{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.55); }
.btn--d{ background:var(--ink); color:#fff; }
.btn--d:hover{ background:var(--green); }
.btn .ar{ transition:transform .28s var(--ease); }
.btn:hover .ar{ transform:translateX(4px); }

/* scroll cue */
.cue{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  font-size:9.5px; letter-spacing:.24em; color:rgba(255,255,255,.45);
}
.cue i{
  display:block; width:1px; height:44px; background:linear-gradient(rgba(255,255,255,.05),var(--green-bright));
  animation:cue 2.1s var(--ease) infinite;
}
@keyframes cue{ 0%{transform:scaleY(.2);transform-origin:top}
  50%{transform:scaleY(1);transform-origin:top}
  50.1%{transform:scaleY(1);transform-origin:bottom}
  100%{transform:scaleY(.2);transform-origin:bottom} }

/* ---------------------------------------------------------
   Sections
   --------------------------------------------------------- */
.sec{ padding:clamp(72px,9vw,118px) 0; }
.sec--paper{ background:var(--paper); }
.sec--dark{ background:var(--ink); color:#fff; }
.sec--tight{ padding:clamp(56px,6vw,80px) 0; }

.sec-head{ margin-bottom:clamp(38px,5vw,60px); }
.sec-head h2{
  font-size:clamp(1.85rem,4.2vw,3.05rem); font-weight:800; line-height:1.3;
  letter-spacing:-.005em;
}
.sec-head h2 .em{ color:var(--green); }
.sec--dark .sec-head h2 .em{ color:var(--green-bright); }
.sec-head p{ margin-top:18px; color:var(--muted); font-size:.95rem; max-width:40em; }
.sec--dark .sec-head p{ color:rgba(255,255,255,.62); }
.sec-head .eyebrow{ color:var(--green); }
.sec-head .eyebrow::before{ background:var(--green); }
.sec--dark .sec-head .eyebrow{ color:var(--green-bright); }
.sec--dark .sec-head .eyebrow::before{ background:var(--green-bright); }

/* --- 3 steps : what is decellularization --- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); }
.step{ background:var(--paper); padding:clamp(28px,3.4vw,44px); position:relative; }
.sec--dark .step{ background:var(--ink); }
.step__n{
  font-size:11px; letter-spacing:.2em; font-weight:800; color:var(--green);
  display:block; margin-bottom:20px;
}
.step figure{ margin:0 0 22px; height:96px; display:flex; align-items:center; }
.step h3{ font-size:clamp(1.1rem,2vw,1.4rem); font-weight:800; margin-bottom:12px; }
.step p{ font-size:.885rem; color:var(--muted); line-height:1.95; }

/* --- big number facts --- */
.facts{ display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line-d); }
.fact{ background:var(--ink); padding:clamp(26px,3vw,40px) clamp(18px,2vw,30px); }
.fact b{
  display:block; font-size:clamp(1.9rem,4vw,3.1rem); font-weight:800; line-height:1.1;
  color:#fff; letter-spacing:-.02em;
}
.fact b small{ font-size:.45em; font-weight:700; margin-left:4px; color:var(--green-bright); }
.fact span{
  display:block; margin-top:12px; font-size:.78rem; letter-spacing:.06em;
  color:rgba(255,255,255,.55);
}

/* --- navigation tiles (hierarchy) --- */
.tiles{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.tile{
  position:relative; overflow:hidden; border-radius:14px; min-height:210px;
  background:var(--ink); color:#fff; display:flex; flex-direction:column;
  justify-content:flex-end; padding:clamp(26px,3vw,38px);
  padding-top:clamp(62px,6.5vw,80px);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  isolation:isolate;
}
.tile::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background:linear-gradient(150deg,#14313F,#0C1C26);
}
.tile::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(90% 100% at 100% 0%, var(--green-glow), transparent 62%);
  opacity:0; transition:opacity .45s var(--ease);
}
.tile:hover{ transform:translateY(-5px); box-shadow:0 26px 50px -26px rgba(12,28,38,.6); }
.tile:hover::after{ opacity:1; }
.tile__img{
  position:absolute; inset:0; z-index:-3; object-fit:cover; width:100%; height:100%;
  opacity:.26; filter:grayscale(.35); transition:transform .8s var(--ease), opacity .5s;
}
.tile:hover .tile__img{ transform:scale(1.06); opacity:.34; }
.tile__n{
  position:absolute; top:clamp(22px,2.6vw,32px); left:clamp(26px,3vw,38px);
  font-size:11px; letter-spacing:.22em; font-weight:800; color:var(--green-bright);
}
.tile h3{ font-size:clamp(1.25rem,2.4vw,1.7rem); font-weight:800; margin-bottom:10px; }
.tile p{ font-size:.85rem; color:rgba(255,255,255,.66); line-height:1.85; max-width:26em; }
.tile .go{
  margin-top:20px; display:inline-flex; align-items:center; gap:9px; font-size:12.5px;
  font-weight:700; letter-spacing:.06em; color:var(--green-bright);
}
.tile:hover .go .ar{ transform:translateX(5px); }
.tile .go .ar{ transition:transform .3s var(--ease); }

/* ---------------------------------------------------------
   Page hero (lower pages)
   --------------------------------------------------------- */
.phero{
  padding:158px 0 clamp(52px,6vw,76px); color:#fff; position:relative; overflow:hidden;
  background:
    radial-gradient(100% 120% at 88% 0%, rgba(53,161,119,.24), transparent 60%),
    linear-gradient(160deg,#0C1C26,#153444 70%,#0C1C26);
}
.crumb{ font-size:11.5px; letter-spacing:.12em; color:rgba(255,255,255,.5); margin-bottom:22px; }
.crumb a:hover{ color:#fff; }
.crumb i{ font-style:normal; margin:0 9px; opacity:.5; }
.phero h1{
  font-size:clamp(2rem,5vw,3.6rem); font-weight:800; line-height:1.25; letter-spacing:-.01em;
}
.phero .sub{ margin-top:20px; color:rgba(255,255,255,.72); font-size:.98rem; max-width:38em; }

/* sub navigation (hierarchy inside a section) */
.subnav{ background:var(--ink-2); border-bottom:1px solid var(--line-d); }
.subnav ul{ display:flex; gap:2px; overflow-x:auto; }
.subnav a{
  display:block; padding:16px 22px; font-size:13px; font-weight:700; white-space:nowrap;
  color:rgba(255,255,255,.6); border-bottom:2px solid transparent; transition:.25s;
}
.subnav a:hover{ color:#fff; }
.subnav a[aria-current="page"]{ color:#fff; border-bottom-color:var(--green-bright); }

/* ---------------------------------------------------------
   Cards / grids
   --------------------------------------------------------- */
.grid2{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,3vw,46px); align-items:center; }
.grid3{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

.card{
  background:#fff; border:1px solid var(--line); border-radius:14px;
  padding:clamp(26px,3vw,38px); transition:border-color .3s, transform .3s var(--ease), box-shadow .3s;
}
.card:hover{ border-color:rgba(22,101,70,.4); transform:translateY(-3px);
  box-shadow:0 20px 40px -28px rgba(12,28,38,.45); }
.card h3{ font-size:1.12rem; font-weight:800; margin-bottom:12px; }
.card p{ font-size:.875rem; color:var(--muted); line-height:1.95; }
.card__k{
  display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.16em;
  color:var(--green); margin-bottom:16px;
}

.pcard{ overflow:hidden; border-radius:16px; border:1px solid var(--line); background:#fff;
  display:flex; flex-direction:column; transition:transform .4s var(--ease), box-shadow .4s; }
.pcard:hover{ transform:translateY(-4px); box-shadow:0 26px 50px -30px rgba(12,28,38,.5); }
.pcard__ph{ aspect-ratio:16/10; overflow:hidden; background:var(--paper-2); }
.pcard__ph img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.pcard:hover .pcard__ph img{ transform:scale(1.05); }
.pcard__b{ padding:clamp(24px,2.6vw,34px); flex:1; display:flex; flex-direction:column; }
.pcard__b h3{ font-size:clamp(1.15rem,2.2vw,1.5rem); font-weight:800; margin-bottom:12px; }
.pcard__b p{ font-size:.88rem; color:var(--muted); line-height:1.95; flex:1; }
.pcard .go{ margin-top:22px; display:inline-flex; align-items:center; gap:9px;
  font-size:12.5px; font-weight:800; color:var(--green); letter-spacing:.05em; }
.pcard:hover .go .ar{ transform:translateX(5px); }
.pcard .go .ar{ transition:transform .3s var(--ease); }

.badge{
  display:inline-block; padding:6px 14px; border-radius:100px; font-size:11px;
  font-weight:800; letter-spacing:.08em; background:rgba(22,101,70,.1); color:var(--green);
}
.badge--w{ background:rgba(255,255,255,.12); color:#fff; }
.badge--amber{ background:rgba(190,120,20,.12); color:#8A5B10; }

/* ---------------------------------------------------------
   Tabs (keeps lower pages shallow instead of long scroll)
   --------------------------------------------------------- */
.tabs{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:34px; }
.tabs button{
  font-family:inherit; font-size:13px; font-weight:700; letter-spacing:.04em;
  padding:12px 24px; border-radius:100px; cursor:pointer;
  border:1px solid var(--line); background:#fff; color:var(--muted); transition:.28s var(--ease);
}
.tabs button:hover{ border-color:var(--green); color:var(--green); }
.tabs button[aria-selected="true"]{ background:var(--green); border-color:var(--green); color:#fff; }
.panel[hidden]{ display:none; }
.panel{ animation:fade .45s var(--ease); }
@keyframes fade{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:none;} }

/* tables */
.tbl{ width:100%; border-collapse:collapse; font-size:.875rem; }
.tbl th,.tbl td{ padding:16px 18px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.tbl th{ width:32%; font-weight:700; color:var(--ink); background:var(--paper); white-space:nowrap; }
.tbl td{ color:var(--muted); }
.tbl--dark th{ background:rgba(255,255,255,.05); color:#fff; }
.tbl--dark th,.tbl--dark td{ border-bottom-color:var(--line-d); }
.tbl--dark td{ color:rgba(255,255,255,.7); }
.tbl-scroll{ overflow-x:auto; }

/* flow */
.flow{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.flow li{ position:relative; padding:26px 22px; background:var(--paper); border-radius:12px; }
.flow li b{ display:block; font-size:10.5px; letter-spacing:.18em; color:var(--green); margin-bottom:12px; }
.flow li span{ font-size:.9rem; font-weight:700; line-height:1.7; }

/* roadmap */
.road{ display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line-d); }
.road li{ background:var(--ink); padding:30px 24px; position:relative; }
.road li b{ display:block; font-size:10.5px; letter-spacing:.18em; color:rgba(255,255,255,.4); margin-bottom:14px; }
.road li span{ font-size:.98rem; font-weight:800; color:rgba(255,255,255,.45); }
.road li.on{ background:linear-gradient(150deg,#17553E,#0F3B2C); }
.road li.on b{ color:var(--green-bright); }
.road li.on span{ color:#fff; }
.road li.on::after{
  content:"NOW"; position:absolute; top:26px; right:22px; font-size:9px; letter-spacing:.14em;
  font-weight:800; color:#0C1C26; background:var(--green-bright); padding:3px 8px; border-radius:3px;
}

/* list with check */
.ticks li{ position:relative; padding-left:30px; margin-bottom:14px; font-size:.9rem; line-height:1.9; }
.ticks li::before{
  content:""; position:absolute; left:4px; top:.72em; width:8px; height:8px;
  border-radius:50%; background:var(--green);
}
.sec--dark .ticks li::before{ background:var(--green-bright); }
.sec--dark .ticks li{ color:rgba(255,255,255,.78); }

/* note / disclaimer */
.note{
  border-left:3px solid rgba(190,120,20,.5); background:rgba(190,120,20,.06);
  padding:18px 22px; font-size:.79rem; line-height:1.9; color:#6b5426; border-radius:0 8px 8px 0;
}
.sec--dark .note{ background:rgba(255,255,255,.05); color:rgba(255,255,255,.6);
  border-left-color:rgba(255,255,255,.3); }

/* news */
.news li{ border-bottom:1px solid var(--line); }
.news a{ display:flex; gap:clamp(14px,3vw,34px); align-items:baseline; padding:22px 4px;
  transition:background .25s, padding .3s var(--ease); flex-wrap:wrap; }
.news a:hover{ background:var(--paper); padding-inline:14px; }
.news time{ font-size:12px; color:var(--muted); letter-spacing:.06em; flex:none; }
.news .badge{ flex:none; }
.news h3{ font-size:.94rem; font-weight:700; line-height:1.7; }

/* contact */
.cbox{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.cbox a{ display:block; }
.form{ display:grid; gap:20px; }
.field label{ display:block; font-size:12.5px; font-weight:700; margin-bottom:9px; letter-spacing:.04em; }
.field label .req{ color:#B4462F; margin-left:6px; font-size:11px; }
.field input,.field select,.field textarea{
  width:100%; font-family:inherit; font-size:.92rem; padding:14px 16px; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:9px; transition:border-color .25s, box-shadow .25s;
}
.field textarea{ resize:vertical; min-height:130px; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(22,101,70,.12);
}
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }

/* ---------------------------------------------------------
   CTA band + footer
   --------------------------------------------------------- */
.band{
  background:linear-gradient(120deg,#0F3B2C 0%,#166546 55%,#1E3A4C 100%);
  color:#fff; padding:clamp(56px,6vw,84px) 0; position:relative; overflow:hidden;
}
.band__in{ display:flex; align-items:center; justify-content:space-between; gap:34px; flex-wrap:wrap; }
.band h2{ font-size:clamp(1.5rem,3.2vw,2.4rem); font-weight:800; line-height:1.4; }
.band p{ margin-top:14px; color:rgba(255,255,255,.75); font-size:.9rem; }
.band .btn--w{ background:#fff; color:var(--green); }
.band .btn--w:hover{ background:var(--ink); color:#fff; }

.ft{ background:var(--ink); color:rgba(255,255,255,.6); padding:64px 0 30px; font-size:.83rem; }
.ft__top{ display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap;
  padding-bottom:40px; border-bottom:1px solid var(--line-d); }
.ft__nav{ display:flex; gap:clamp(28px,5vw,72px); flex-wrap:wrap; }
.ft__nav h4{ color:#fff; font-size:11px; letter-spacing:.16em; margin-bottom:16px; font-weight:800; }
.ft__nav li{ margin-bottom:10px; }
.ft__nav a:hover{ color:var(--green-bright); }
.ft__addr{ max-width:24em; line-height:1.95; }
.ft__bot{ padding-top:26px; display:flex; justify-content:space-between; gap:16px;
  flex-wrap:wrap; font-size:11.5px; color:rgba(255,255,255,.4); }

/* reveal on scroll */
.rv{ opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.rv.in{ opacity:1; transform:none; }

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */
@media (max-width:1000px){
  .nav{
    position:fixed; inset:74px 0 auto 0; flex-direction:column; align-items:stretch;
    background:rgba(12,28,38,.98); backdrop-filter:blur(16px); padding:14px 20px 26px;
    gap:0; border-bottom:1px solid var(--line-d);
    transform:translateY(-8px); opacity:0; pointer-events:none; transition:.3s var(--ease);
  }
  .nav.open{ transform:none; opacity:1; pointer-events:auto; }
  .nav a{ padding:15px 6px; font-size:15px; border-bottom:1px solid rgba(255,255,255,.07); }
  .nav a::after{ display:none; }
  .nav .btn-sm{ margin:16px 0 0; justify-content:center; display:flex; border-bottom:0; }
  .burger{ display:block; }
  .hd{ background:rgba(12,28,38,.86); backdrop-filter:blur(14px); }
}
@media (max-width:820px){
  .steps,.grid3,.flow,.facts,.road{ grid-template-columns:repeat(2,1fr); }
  .tiles,.grid2,.cbox,.row2{ grid-template-columns:1fr; }
  .hero__in{ padding:120px 0 96px; }
}
@media (max-width:560px){
  .wrap{ padding-inline:20px; }
  .steps,.grid3,.flow,.facts,.road{ grid-template-columns:1fr; }
  .facts,.road{ gap:1px; }
  .cue{ display:none; }
  .btn{ width:100%; justify-content:center; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  .rv{ opacity:1; transform:none; }
}

/* =========================================================
   簡易版（先行公開）用の追加スタイル
   ========================================================= */

/* 準備中ページ */
.soon{ text-align:center; padding:clamp(60px,9vw,110px) 0; }
.soon__mark{
  width:78px; height:78px; margin:0 auto 30px; border-radius:50%;
  display:grid; place-items:center; background:var(--paper);
  border:1px solid var(--line);
}
.soon__mark svg{ display:block; }
.soon h2{ font-size:clamp(1.5rem,3.4vw,2.3rem); font-weight:800; line-height:1.45; margin-bottom:20px; }
.soon p{ color:var(--muted); font-size:.93rem; line-height:2.05; max-width:34em; margin:0 auto; }
.soon .btn{ margin-top:38px; }

/* 経営陣 */
.members{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,3vw,34px); }
.member{
  display:grid; grid-template-columns:132px 1fr; gap:24px; align-items:start;
  border:1px solid var(--line); border-radius:14px; padding:clamp(22px,2.6vw,30px);
  background:#fff;
}
.member__ph{
  width:132px; aspect-ratio:3/4; border-radius:10px; overflow:hidden; background:var(--paper-2);
}
.member__ph img{ width:100%; height:100%; object-fit:cover; }
.member__ph--none{ display:grid; place-items:center; }
.member__ph--none span{ font-size:2rem; font-weight:800; color:var(--muted); opacity:.4; letter-spacing:.04em; }
.member__role{
  display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.16em;
  color:var(--green); margin-bottom:12px;
}
.member h3{ font-size:1.32rem; font-weight:800; letter-spacing:.04em; margin-bottom:4px; }
.member h3 small{ display:block; font-size:11px; font-weight:600; color:var(--muted);
  letter-spacing:.1em; margin-top:6px; }
.member p{ font-size:.85rem; color:var(--muted); line-height:1.95; margin-top:14px; }

/* 代表メッセージの顔写真 */
.portrait{ border-radius:14px; overflow:hidden; max-width:360px; }
.portrait img{ width:100%; }
.portrait figcaption{
  padding:16px 4px 0; font-size:.8rem; color:var(--muted); line-height:1.8;
}
.portrait figcaption b{ display:block; color:var(--ink); font-size:1.05rem; letter-spacing:.06em; margin-top:4px; }

@media (max-width:820px){
  .members{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .member{ grid-template-columns:1fr; }
  .member__ph{ width:120px; }
}

/* ニュース（リンク先を持たない項目） */
.news .item{
  display:flex; gap:clamp(14px,3vw,34px); align-items:baseline; padding:22px 4px; flex-wrap:wrap;
}
.news .item h3{ font-size:.94rem; font-weight:700; line-height:1.7; flex:1; min-width:min(100%,18em); }
.news .item p{ width:100%; margin-top:8px; font-size:.82rem; color:var(--muted); line-height:1.85; }
.badge--soon{ background:rgba(30,58,76,.08); color:var(--navy); }

/* ニュース：日付・タグ幅を揃えて見出しの開始位置を揃える */
.news time{ min-width:7.6em; }
.news .badge{ min-width:5.4em; text-align:center; }
.news .item p{ padding-left:calc(7.6em + 5.4em + clamp(14px,3vw,34px) * 2); }
@media (max-width:640px){
  .news .item p{ padding-left:0; }
  .news time,.news .badge{ min-width:0; }
}
