:root{
  /* Neutrals */
  --color-bg:#f8fafc;
  --color-surface:#ffffff;
  --color-text:#0f172a;
  --color-text-muted:#475569;
  --color-text-soft:#64748b;
  --color-border:#e2e8f0;
  --color-border-soft:#edf2f7;
  /* Brand primary */
  --color-primary:#0f766e;
  --color-primary-dark:#0d5c56;
  --color-primary-light:#14b8a6;
  /* Accent gold (sparing use) */
  --color-gold:#d4a574;
  --color-gold-bright:#e8c896;
  --color-gold-deep:#9a6b3a;
  /* Legacy aliases */
  --bg:var(--color-bg);
  --bg-alt:var(--color-bg);
  --panel:rgba(255,255,255,.92);
  --text:var(--color-text);
  --muted:var(--color-text-muted);
  --muted-soft:var(--color-text-soft);
  --line:var(--color-border);
  --line-soft:var(--color-border-soft);
  --accent:var(--color-primary);
  --accent-2:var(--color-primary);
  --accent-3:var(--color-primary-light);
  --navy:#0a1628;
  --navy-mid:#111f35;
  --gold:var(--color-gold);
  --gold-bright:var(--color-gold-bright);
  --gold-deep:var(--color-gold-deep);
  /* Gradients & rgba helpers */
  --gradient-brand:linear-gradient(105deg, var(--color-text) 0%, var(--color-primary) 58%, var(--color-gold) 100%);
  --gradient-brand-logo:linear-gradient(105deg, var(--color-text) 0%, var(--color-primary) 100%);
  --gradient-scroll:linear-gradient(90deg, var(--color-gold-deep), var(--color-gold) 32%, var(--color-primary) 100%);
  --rgba-primary:15,118,110;
  --rgba-gold:212,165,116;
  --max:1080px;
  --scroll:0;
  --font-sans:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",system-ui,sans-serif;
  --font-display:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
  --font-serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
}

*{box-sizing:border-box}
html,body{height:100%}
html{
  scroll-behavior:smooth;
  overflow-x:clip;
}
body{
  margin:0;
  color:var(--text);
  background:var(--bg);
  font-family:var(--font-sans);
  line-height:1.85;
  letter-spacing:.02em;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
}
.page--home .home-main{
  font-family:var(--font-serif), "Hiragino Mincho ProN", "Yu Mincho", serif;
}

.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:3px;
  transform-origin:left center;
  transform:scaleX(0);
  background:var(--gradient-scroll);
  z-index:90;
  box-shadow:0 0 14px rgba(var(--rgba-gold),.35);
}

.op,
.page-loader{
  position:fixed;
  inset:0;
  z-index:120;
  display:grid;
  place-items:center;
  background:
    radial-gradient(95vw 75vw at 12% 0%, rgba(var(--rgba-primary),.16), transparent 64%),
    radial-gradient(90vw 70vw at 88% 100%, rgba(var(--rgba-gold),.1), transparent 62%),
    linear-gradient(135deg, #f8fafc 0%, #f0fdfa 48%, #f8fafc 100%);
  overflow:clip;
  transition:opacity .55s ease, visibility .55s ease;
}
.page-loader{
  z-index:115;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.page-loader.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
html.is-loading{
  overflow:hidden;
}
.op::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.5) 45%, rgba(255,255,255,0) 100%);
  transform:translateY(-120%);
  opacity:.35;
  animation:opSweep .9s ease .2s both;
}
.op.is-hide{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.op__grid,
.page-loader__grid{
  position:absolute;
  inset:0;
  background:
    linear-gradient(rgba(var(--rgba-primary),.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--rgba-primary),.07) 1px, transparent 1px);
  background-size:36px 36px;
  opacity:.5;
}
.op__orb,
.page-loader__orb{
  position:absolute;
  width:min(44vw, 460px);
  aspect-ratio:1/1;
  border-radius:999px;
  filter:blur(24px);
  opacity:.28;
}
.op__orb--a,
.page-loader__orb--a{
  left:-8vw;
  top:-14vh;
  background:radial-gradient(circle at 50% 50%, rgba(var(--rgba-primary),.4), transparent);
}
.op__orb--b,
.page-loader__orb--b{
  right:-10vw;
  bottom:-18vh;
  background:radial-gradient(circle at 50% 50%, rgba(var(--rgba-gold),.32), transparent);
}
.op__inner,
.page-loader__inner{
  position:relative;
  z-index:2;
  text-align:center;
  display:grid;
  gap:10px;
  justify-items:center;
}
.op__inner{
  animation:opRise .95s cubic-bezier(.2,.8,.2,1) both;
}
.page-loader__inner{
  gap:0;
}
/* ローディングUI（OP・ページ遷移共通） */
.loader-logo{
  position:relative;
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  margin:0 auto 1.15rem;
}
.loader-logo__ring{
  position:absolute;
  inset:0;
  border:2px solid rgba(var(--rgba-primary),.12);
  border-top-color:var(--color-primary);
  border-right-color:var(--color-gold);
  border-radius:50%;
  animation:loaderSpin 1s linear infinite;
}
.loader-logo__mark{
  display:block;
  width:62%;
  height:62%;
  object-fit:contain;
  animation:loaderLogoSpin 2.4s cubic-bezier(.65,0,.35,1) infinite;
}
.loader-status{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.15em;
  margin:1rem 0 0;
  font-size:12px;
  font-weight:700;
  letter-spacing:.22em;
  color:var(--color-text-soft);
}
.loader-status__label{
  color:var(--color-primary);
}
.loader-dots{
  display:inline-flex;
  gap:1px;
  min-width:1.2em;
  letter-spacing:0;
}
.loader-dots span{
  animation:loaderDot 1.1s ease-in-out infinite;
  opacity:.25;
}
.loader-dots span:nth-child(2){
  animation-delay:.18s;
}
.loader-dots span:nth-child(3){
  animation-delay:.36s;
}
.loader-progress{
  width:min(240px, 58vw);
  height:3px;
  margin-top:1.1rem;
  border-radius:999px;
  background:rgba(var(--rgba-primary),.12);
  overflow:hidden;
}
.loader-progress__bar{
  display:block;
  width:38%;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, var(--color-primary), var(--color-gold));
  animation:loaderProgressSlide 1.05s ease-in-out infinite;
}
.op__inner .loader-logo{
  animation:opFade .5s ease .05s both;
}
.page--home .op__inner .loader-status,
.page--home .page-loader__inner .loader-status{
  animation:opFade .5s ease .35s both;
}
.page--home .op__inner .loader-progress,
.page--home .page-loader__inner .loader-progress{
  animation:opFade .5s ease .45s both;
}
@keyframes loaderSpin{
  to{transform:rotate(360deg)}
}
@keyframes loaderLogoSpin{
  0%{transform:rotate(0deg)}
  55%,70%{transform:rotate(360deg)}
  100%{transform:rotate(360deg)}
}
@keyframes loaderDot{
  0%,80%,100%{opacity:.2;transform:translateY(0)}
  40%{opacity:1;transform:translateY(-2px)}
}
@keyframes loaderProgressSlide{
  0%{transform:translateX(-110%)}
  100%{transform:translateX(320%)}
}
.op__brand,
.page-loader__brand{
  margin:0;
  font-size:clamp(28px, 5vw, 52px);
  letter-spacing:.14em;
  font-weight:700;
  font-family:var(--font-display);
  background:var(--gradient-brand);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.op__brand{
  font-size:clamp(34px, 6vw, 68px);
  letter-spacing:.18em;
  font-weight:760;
  animation:opGlow .7s ease .2s both;
}
.page--home .op__brand{
  letter-spacing:.14em;
}
.op__sub,
.page-loader__sub{
  margin:10px 0 0;
  color:var(--color-text-muted);
  font-size:12px;
  letter-spacing:.15em;
}
.page--home .op__brand,
.page--home .page-loader__brand{
  font-size:clamp(12px, 2vw, 15px);
  font-weight:700;
  letter-spacing:.3em;
  margin:0 0 14px;
}
.page--home .op__inner,
.page--home .page-loader__inner{
  gap:0;
  max-width:none;
  padding:0 1rem;
}
.op__sub{
  animation:opFade .5s ease .15s both;
}
.page--home .op__sub{
  animation:opFade .7s ease .22s both;
}
body::before,
body::after{
  display:none;
}

a{
  color:inherit;
  text-underline-offset:3px;
}

.container{
  width:min(var(--max), calc(100% - 64px));
  margin:0 auto;
}

.skip-link{
  position:absolute;
  left:-9999px;
  top:10px;
  background:#111;
  color:#fff;
  padding:10px 12px;
  border-radius:8px;
  z-index:9999;
}
.skip-link:focus{left:14px}

.top{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter:blur(14px);
  background:rgba(255,255,255,.9);
  border-bottom:1px solid rgba(var(--rgba-primary),.12);
  box-shadow:0 8px 24px rgba(15,23,42,.06);
  transition:background .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.top.is-scrolled{
  background:rgba(255,255,255,.94);
  border-bottom-color:rgba(var(--rgba-primary),.22);
  box-shadow:0 10px 28px rgba(var(--rgba-primary),.1);
}

.top__inner{
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}

.brand__name{
  font-family:var(--font-display);
  font-size:17px;
  font-weight:700;
  letter-spacing:.14em;
  line-height:1;
  background:var(--gradient-brand);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.85));
}

.brand__sub{
  margin-top:8px;
  font-size:11px;
  color:var(--color-text-muted);
  letter-spacing:.15em;
  max-width:min(360px, 86vw);
}
.brand__orgtype{
  margin:6px 0 0;
  font-size:10px;
  font-weight:700;
  letter-spacing:.22em;
  color:var(--color-primary);
  line-height:1.3;
}

.top__nav{
  display:flex;
  align-items:center;
  gap:22px;
  font-size:13px;
  color:var(--muted);
  letter-spacing:.05em;
}
.top__menu-btn{
  display:none;
  position:relative;
  z-index:110;
  width:44px;
  height:44px;
  border:1px solid rgba(15,23,42,.14);
  border-radius:12px;
  background:rgba(255,255,255,.92);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:6px;
  cursor:pointer;
  transition:border-color .28s ease, box-shadow .28s ease, background .28s ease, transform .28s ease;
}
.top__menu-btn__bar{
  display:block;
  width:20px;
  height:2px;
  border-radius:2px;
  background:#0f172a;
  transition:transform .38s cubic-bezier(.22,1,.36,1), opacity .28s ease, width .28s ease;
  transform-origin:center;
}
.top__menu-btn:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
}
.top.is-menu-open .top__menu-btn{
  border-color:rgba(var(--rgba-primary),.4);
  box-shadow:0 0 0 3px rgba(var(--rgba-primary),.1), 0 8px 20px rgba(15,23,42,.1);
  background:var(--color-surface);
}
.top.is-menu-open .top__menu-btn__bar{
  background:var(--color-text);
}
.top.is-menu-open .top__menu-btn__bar:nth-child(1){
  transform:translateY(8px) rotate(45deg);
  width:22px;
}
.top.is-menu-open .top__menu-btn__bar:nth-child(2){
  opacity:0;
  transform:scaleX(0);
}
.top.is-menu-open .top__menu-btn__bar:nth-child(3){
  transform:translateY(-8px) rotate(-45deg);
  width:22px;
}

.top__nav-layer{
  display:contents;
}
.top__nav-scrim,
.top__nav-panel{
  display:none;
}
.top__nav-list{
  display:contents;
}

body.is-menu-open{
  overflow:hidden;
}
.top__nav a,
.top__nav-link{text-decoration:none}
.top__nav a,
.top__nav-link{
  position:relative;
  transition:color .25s ease;
}
.top__nav a::after,
.top__nav-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-5px;
  width:100%;
  height:1px;
  background:linear-gradient(90deg, rgba(31,41,55,0), rgba(31,41,55,.55), rgba(31,41,55,0));
  transform:scaleX(.2);
  opacity:0;
  transform-origin:center;
  transition:transform .28s ease, opacity .28s ease;
}
.top__nav a:hover,
.top__nav-link:hover{
  color:var(--color-primary);
}
.top__nav a:hover::after,
.top__nav-link:hover::after{
  transform:scaleX(1);
  opacity:1;
  background:linear-gradient(90deg, transparent, rgba(var(--rgba-primary),.45), transparent);
}
.top__nav a[aria-current="page"],
.top__nav-link[aria-current="page"]{
  color:var(--color-primary-dark);
  font-weight:600;
}
.top__nav a[aria-current="page"]::after,
.top__nav-link[aria-current="page"]::after{
  transform:scaleX(1);
  opacity:1;
  background:linear-gradient(90deg, rgba(var(--rgba-gold),0), rgba(var(--rgba-gold),.75), rgba(var(--rgba-gold),0));
}

a.brand{
  text-decoration:none;
  color:inherit;
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.brand__mark{
  flex-shrink:0;
  width:44px;
  height:44px;
  border-radius:11px;
  box-shadow:0 2px 12px rgba(10,22,40,.12), 0 0 0 1px rgba(255,255,255,.4) inset;
  object-fit:contain;
}
.brand__text{
  min-width:0;
}
a.brand:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:4px;
  border-radius:12px;
}

.section{
  padding:84px 0;
  border-top:0;
  position:relative;
  background:var(--bg);
}
.section--alt{background:var(--bg)}
.section__inner{
  max-width:920px;
  margin:0 auto;
  text-align:center;
}

.section__title{
  margin:0;
  font-size:clamp(24px, 3vw, 34px);
  line-height:1.35;
  letter-spacing:.04em;
  font-weight:600;
  color:var(--navy);
}

.section__lead{
  margin:22px 0 0;
  max-width:780px;
  color:var(--muted);
  margin-left:auto;
  margin-right:auto;
}

.section__eyebrow{
  margin:0 0 12px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.34em;
  color:#0d9488;
  text-transform:uppercase;
}

.page--home .section--home-guide{
  position:relative;
  overflow:hidden;
  background:var(--bg);
}
.page--home .section--home-guide::before{
  display:none;
}
.page--home .section--home-guide .section__inner{
  position:relative;
  z-index:1;
}
.page--home .section--home-guide .section__lead{
  max-width:min(56rem, 100%);
  margin-top:18px;
  text-align:left;
  line-height:1.9;
}
.page--home .section__title{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:.08em;
}
.page--home #listing .card--listing{
  position:relative;
  overflow:hidden;
  border-radius:20px;
  padding:clamp(28px, 3vw, 36px) clamp(26px, 3vw, 34px);
}
.page--home #listing .card--listing::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:linear-gradient(180deg, #14b8a6 0%, #0f766e 45%, #c4a574 100%);
  border-radius:20px 0 0 20px;
}
.page--home #listing .listing__label{
  padding-left:12px;
}
.page--home #listing .listing__headline,
.page--home #listing .listing__sub{
  padding-left:12px;
}

.hero{
  border-top:0;
  padding:96px 0 88px;
}
.hero--flagship{
  position:relative;
  padding:112px 0 96px;
  border-top:0;
  overflow:hidden;
}
.hero__backdrop{
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse 120% 90% at 50% -20%, rgba(212,165,116,.16), rgba(10,22,40,0) 58%),
    linear-gradient(165deg, var(--navy) 0%, #0d1f3a 48%, var(--navy-mid) 100%);
  z-index:0;
}
.hero__grid{
  position:absolute;
  inset:0;
  z-index:0;
  opacity:.07;
  background-image:
    linear-gradient(rgba(255,255,255,.9) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.9) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 30%, #000 20%, transparent 75%);
}
.hero--flagship .hero__inner{
  position:relative;
  z-index:1;
}
.hero__inner{
  display:grid;
  gap:24px;
  justify-items:center;
  text-align:center;
}
.hero__eyebrow{
  margin:0;
  font-size:12px;
  color:var(--muted-soft);
  letter-spacing:.22em;
}
.hero--flagship .hero__eyebrow{
  color:rgba(232,200,150,.85);
  letter-spacing:.28em;
}
.hero__badge{
  margin:0;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:6px 14px 6px 16px;
  border-radius:999px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.2em;
  color:rgba(248,250,252,.92);
  border:1px solid rgba(212,165,116,.45);
  background:rgba(10,22,40,.45);
  box-shadow:0 0 0 1px rgba(255,255,255,.06) inset, 0 12px 40px rgba(0,0,0,.25);
}
.hero__badge-dot{
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--gold-bright), var(--gold-deep));
  box-shadow:0 0 12px rgba(212,165,116,.7);
}
.hero__tagline{
  margin:-8px 0 0;
  max-width:720px;
  font-size:clamp(17px, 2.4vw, 22px);
  font-weight:500;
  letter-spacing:.04em;
  color:rgba(226,232,240,.95);
  animation:titleLift .9s ease .16s both;
}
.hero__tagline strong{
  font-weight:700;
  background:linear-gradient(105deg, var(--gold-bright), var(--gold) 50%, #fcd9a4);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero__title{
  margin:0;
  max-width:900px;
  font-size:clamp(34px, 6vw, 58px);
  line-height:1.22;
  letter-spacing:.02em;
  font-weight:650;
  text-wrap:balance;
  background:var(--gradient-brand-logo);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  animation:titleLift .9s ease .1s both;
}
.hero--flagship .hero__title{
  font-size:clamp(28px, 5.2vw, 52px);
  line-height:1.18;
  letter-spacing:.03em;
  font-weight:700;
  background:linear-gradient(
    118deg,
    #fefce8 0%,
    var(--gold-bright) 18%,
    #fffef5 38%,
    #e2e8f0 55%,
    var(--gold) 78%,
    #fef3c7 100%
  );
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 2px 24px rgba(212,165,116,.25));
}
.hero__lead{
  margin:0;
  max-width:820px;
  color:var(--muted);
  animation:titleLift .9s ease .22s both;
}
.hero--flagship .hero__lead{
  color:rgba(203,213,225,.88);
  font-size:clamp(15px, 1.65vw, 17px);
  line-height:1.95;
}
.hero__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
}
.hero__meta span{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid rgba(var(--rgba-primary),.22);
  background:rgba(255,255,255,.66);
  backdrop-filter:blur(8px);
  font-size:11px;
  letter-spacing:.08em;
  color:var(--color-primary-dark);
  box-shadow:0 6px 18px rgba(var(--rgba-primary),.08);
  animation:metaFloat 4.6s ease-in-out infinite;
}
.hero__meta span:nth-child(2){
  animation-delay:.35s;
}
.hero__meta span:nth-child(3){
  animation-delay:.7s;
}
.hero--flagship .hero__meta span{
  border:1px solid rgba(212,165,116,.35);
  background:rgba(15,23,42,.35);
  color:rgba(241,245,249,.95);
  box-shadow:0 8px 28px rgba(0,0,0,.2);
}
.hero__figure{
  margin:18px 0 0;
  width:min(920px, 100%);
  overflow:hidden;
  transform:translateY(var(--parallax, 0px)) perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition:transform .28s ease;
  will-change:transform;
  border-radius:18px;
  box-shadow:0 28px 58px rgba(var(--rgba-primary),.14);
}
.hero--flagship .hero__figure{
  border-radius:20px;
  border:1px solid rgba(212,165,116,.35);
  box-shadow:
    0 4px 0 rgba(212,165,116,.12),
    0 40px 80px rgba(0,0,0,.45),
    0 0 80px rgba(212,165,116,.12);
}
.hero__media{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
}
.hero__media .hero__video,
.hero__media .hero__bg-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-width:100%;
  min-height:100%;
  object-fit:cover;
  object-position:38% center;
  display:block;
  border:0;
  will-change:transform, opacity;
  transform:translate3d(var(--vpx, 0px), var(--vpy, 0px), 0) scale(1.12);
  filter:contrast(1.08) saturate(1.14) brightness(1.03);
  transition:opacity .45s ease;
}
.hero__media .hero__video.is-fading,
.hero__media .hero__bg-img.is-fading{
  opacity:0;
}
.hero__scrim{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(115deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,.04) 42%, rgba(var(--rgba-primary),.05) 100%),
    radial-gradient(ellipse 95% 70% at 50% 18%, rgba(255,255,255,.1), rgba(255,255,255,0) 58%),
    linear-gradient(180deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,.08) 55%, rgba(241,248,255,.28) 100%);
  box-shadow:inset 0 -80px 120px rgba(255,255,255,.12);
}
.hero--flagship.hero--power{
  padding:clamp(48px, 7vh, 80px) 0 clamp(40px, 6vh, 72px);
  min-height:min(96vh, 1040px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:stretch;
  overflow:hidden;
}
.hero--power .hero__stage{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(20px, 3.5vh, 36px);
}
.hero__scrim--power{
  background:
    radial-gradient(ellipse 120% 80% at 50% 20%, rgba(13,148,136,.22), rgba(10,22,40,0) 55%),
    radial-gradient(ellipse 90% 60% at 80% 90%, rgba(212,165,116,.14), rgba(10,22,40,0) 50%),
    linear-gradient(180deg, rgba(10,22,40,.72) 0%, rgba(10,22,40,.55) 45%, rgba(10,22,40,.78) 100%);
}
.page--home .hero__scrim--power{
  background:
    radial-gradient(ellipse 110% 75% at 50% 15%, rgba(45,212,191,.18), rgba(10,22,40,0) 58%),
    radial-gradient(ellipse 70% 50% at 15% 85%, rgba(232,200,150,.12), rgba(10,22,40,0) 52%),
    linear-gradient(180deg, rgba(10,22,40,.78) 0%, rgba(10,22,40,.62) 50%, rgba(10,22,40,.85) 100%);
}
.hero__power-head{
  text-align:center;
  max-width:40rem;
  padding:0 clamp(12px, 3vw, 24px);
}
.hero__power-kicker{
  margin:0 0 10px;
  font-size:clamp(15px, 2.8vw, 22px);
  font-weight:700;
  letter-spacing:.12em;
  line-height:1.35;
  color:#f8fafc;
  text-shadow:0 2px 24px rgba(0,0,0,.35);
}
.hero__power-kicker-num{
  display:inline-block;
  margin-right:.15em;
  font-family:var(--font-display);
  font-size:clamp(2.4rem, 8vw, 3.6rem);
  font-weight:600;
  line-height:1;
  letter-spacing:.04em;
  background:linear-gradient(135deg, #fef3c7 0%, var(--gold-bright) 45%, #f59e0b 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 0 28px rgba(232,200,150,.55));
}
.hero__power-lead{
  margin:0;
  font-size:clamp(13px, 2.2vw, 16px);
  font-weight:500;
  letter-spacing:.06em;
  color:rgba(226,232,240,.92);
}
.hero__constellation{
  position:relative;
  width:min(100%, 920px);
  min-height:clamp(380px, 52vh, 520px);
  margin:0 auto;
}
.hero__constellation-glow{
  position:absolute;
  left:50%;
  top:50%;
  width:min(420px, 72%);
  height:min(320px, 58%);
  transform:translate(-50%, -50%);
  border-radius:50%;
  background:
    radial-gradient(ellipse at center, rgba(45,212,191,.22) 0%, rgba(45,212,191,.06) 42%, rgba(10,22,40,0) 72%),
    radial-gradient(ellipse at 30% 80%, rgba(232,200,150,.14) 0%, rgba(10,22,40,0) 55%);
  pointer-events:none;
  animation:heroGlowPulse 5s ease-in-out infinite;
}
.hero__constellation-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  overflow:visible;
}
.hero__constellation-lines line{
  stroke-width:.35;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
}
.hero__constellation-lines--field line{
  stroke:url(#heroLineField);
  opacity:.85;
}
.hero__constellation-lines--org line{
  stroke:url(#heroLineOrg);
  opacity:.9;
}
.hero__constellation-core{
  fill:#5eead4;
  filter:drop-shadow(0 0 8px rgba(94,234,212,.8));
  animation:heroCorePulse 3.5s ease-in-out infinite;
}
.hero__constellation-hub{
  position:absolute;
  left:50%;
  top:50%;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-width:8.5rem;
  padding:1rem 1.25rem;
  transform:translate(-50%, -50%);
  text-align:center;
  border-radius:20px;
  background:linear-gradient(165deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,.06) 100%);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:
    0 0 0 1px rgba(94,234,212,.2) inset,
    0 16px 48px rgba(0,0,0,.35),
    0 0 60px rgba(13,148,136,.2);
  backdrop-filter:blur(14px);
}
.hero__hub-tag{
  font-size:9px;
  font-weight:700;
  letter-spacing:.22em;
  color:rgba(94,234,212,.95);
}
.hero__hub-core{
  font-size:clamp(11px, 1.4vw, 13px);
  font-weight:700;
  line-height:1.55;
  letter-spacing:.04em;
  color:#f8fafc;
}
.hero__hub-org{
  margin-top:2px;
  padding:0.2rem 0.65rem;
  border-radius:999px;
  font-size:9px;
  font-weight:700;
  letter-spacing:.14em;
  color:#fde68a;
  background:rgba(120,53,15,.35);
  border:1px solid rgba(232,200,150,.45);
}
.hero__quals{
  position:absolute;
  inset:0;
  margin:0;
  padding:0;
  list-style:none;
}
.hero__qual{
  position:absolute;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  width:clamp(9.5rem, 17vw, 12.5rem);
  padding:0.85rem 1rem 0.95rem;
  transform:translate(-50%, -50%);
  border-radius:16px;
  background:linear-gradient(155deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,.07) 100%);
  border:1px solid rgba(94,234,212,.4);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.1) inset,
    0 12px 36px rgba(0,0,0,.28),
    0 0 32px rgba(13,148,136,.18);
  backdrop-filter:blur(12px);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.hero__qual:hover{
  transform:translate(-50%, -50%) translateY(-3px) scale(1.03);
  border-color:rgba(94,234,212,.65);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.15) inset,
    0 18px 44px rgba(0,0,0,.32),
    0 0 48px rgba(13,148,136,.32);
}
.hero__qual--org{
  border-color:rgba(232,200,150,.45);
  background:linear-gradient(155deg, rgba(254,243,199,.22) 0%, rgba(255,255,255,.08) 100%);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.1) inset,
    0 12px 36px rgba(0,0,0,.28),
    0 0 32px rgba(180,83,9,.2);
}
.hero__qual--org:hover{
  border-color:rgba(232,200,150,.7);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.15) inset,
    0 18px 44px rgba(0,0,0,.32),
    0 0 48px rgba(217,119,6,.28);
}
.hero__qual--org .hero__qual-num{
  color:rgba(253,230,138,.95);
}
.hero__qual-num{
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  color:rgba(94,234,212,.9);
}
.hero__qual-name{
  font-size:clamp(12px, 1.35vw, 15px);
  font-weight:700;
  line-height:1.45;
  letter-spacing:.03em;
  color:#fff;
  text-shadow:0 1px 12px rgba(0,0,0,.35);
}
.hero__qual--sw{left:18%;top:24%}
.hero__qual--mh{left:82%;top:24%}
.hero__qual--psy{left:12%;top:50%}
.hero__qual--cfsw{left:88%;top:50%}
.hero__qual--sr{left:26%;top:76%}
.hero__qual--cc{left:74%;top:76%}
.hero__identity{
  width:100%;
  max-width:min(720px, 100%);
  margin:0 auto;
  padding:clamp(22px, 3.5vw, 32px) clamp(20px, 3vw, 36px);
  text-align:center;
  border-radius:22px;
  background:linear-gradient(165deg, rgba(255,255,255,.97) 0%, rgba(248,250,252,.95) 100%);
  border:1px solid rgba(255,255,255,.98);
  box-shadow:
    0 1px 0 rgba(255,255,255,1) inset,
    0 24px 56px rgba(0,0,0,.22),
    0 0 0 1px rgba(15,118,110,.08);
  backdrop-filter:blur(16px);
}
@keyframes heroGlowPulse{
  0%,100%{opacity:.75;transform:translate(-50%, -50%) scale(1)}
  50%{opacity:1;transform:translate(-50%, -50%) scale(1.04)}
}
@keyframes heroCorePulse{
  0%,100%{opacity:.7}
  50%{opacity:1}
}
.page--home .hero--flagship.hero--power .hero__title{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:.06em;
  line-height:1.08;
  text-wrap:pretty;
}
.page--home .hero__title-line{
  display:block;
  line-height:1.1;
}
.page--home .hero__title-line + .hero__title-line{
  margin-top:-0.06em;
}
.page--home .hero__badge{
  text-wrap:balance;
  max-width:100%;
}
.page--home .hero__scrim:not(.hero__scrim--power){
  background:
    linear-gradient(118deg, rgba(255,255,255,.1) 0%, rgba(255,255,255,.03) 45%, rgba(var(--rgba-primary),.04) 100%),
    radial-gradient(ellipse 100% 75% at 50% 12%, rgba(255,255,255,.12), rgba(255,255,255,0) 55%),
    linear-gradient(180deg, rgba(15,23,42,.35) 0%, rgba(15,23,42,.12) 42%, rgba(241,248,255,.22) 100%);
}
.hero--flagship.hero--power .hero__eyebrow,
.hero--flagship.hero--videobg .hero__eyebrow{
  color:#64748b;
  letter-spacing:.2em;
}
.hero--flagship.hero--power .hero__badge,
.hero--flagship.hero--videobg .hero__badge{
  color:#1e293b;
  border:1px solid rgba(148,163,184,.35);
  background:rgba(255,255,255,.72);
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset, 0 12px 32px rgba(15,23,42,.06);
}
.hero--flagship.hero--power .hero__badge-dot,
.hero--flagship.hero--videobg .hero__badge-dot{
  background:linear-gradient(135deg, #14b8a6, #0f766e);
  box-shadow:0 0 0 1px rgba(255,255,255,.65);
}
.hero--flagship.hero--power .hero__title,
.hero--flagship.hero--videobg .hero__title{
  background:none;
  -webkit-background-clip:unset;
  background-clip:unset;
  color:#042f2e;
  filter:none;
  text-shadow:0 1px 0 #fff, 0 2px 14px rgba(255,255,255,.85);
  animation:none;
}
.page--home .hero--power .hero__identity .hero__title{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:.06em;
  line-height:1.08;
  text-wrap:pretty;
}
.hero__accentline{
  height:3px;
  width:0;
  margin:8px auto 0;
  border-radius:4px;
  background:linear-gradient(90deg, transparent, #0d9488 20%, #2dd4bf 50%, #0d9488 80%, transparent);
  background-size:200% 100%;
  opacity:0;
}
.hero--flagship.hero--power .hero__accentline,
.hero--flagship.hero--videobg .hero__accentline{
  width:min(260px, 72%);
  opacity:.95;
  animation:heroAccentShine 3.2s linear infinite;
}
.hero--flagship.hero--videobg .hero__tagline-inner{
  display:inline-block;
}
.hero--flagship.hero--videobg .hero__tagline{
  margin:0;
  max-width:720px;
  padding:clamp(18px, 3.2vh, 32px) clamp(12px, 3vw, 24px);
  color:#334155;
  animation:none;
}
.page--home .hero--flagship.hero--power .hero__tagline--solo,
.page--home .hero--flagship.hero--videobg .hero__tagline--solo{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(10px, 1.8vh, 14px);
  padding:clamp(14px, 2.4vh, 22px) 0 0;
  font-size:clamp(14px, 2.8vw, 16px);
  line-height:1.75;
  text-align:center;
  max-width:min(40rem, 100%);
}
@media (max-width: 900px){
  .hero__constellation{
    min-height:auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    padding:0 4px;
  }
  .hero__constellation-glow,
  .hero__constellation-svg{
    display:none;
  }
  .hero__constellation-hub{
    position:relative;
    left:auto;
    top:auto;
    transform:none;
    grid-column:1 / -1;
    margin:0 auto 6px;
    min-width:0;
    width:min(100%, 18rem);
  }
  .hero__quals{
    position:static;
    display:contents;
  }
  .hero__qual{
    position:relative;
    left:auto !important;
    top:auto !important;
    width:auto;
    transform:none;
  }
  .hero__qual:hover{
    transform:translateY(-2px) scale(1.02);
  }
}
@media (max-width: 520px){
  .hero__qual-name{
    font-size:11px;
  }
  .hero__qual{
    padding:0.7rem 0.75rem;
  }
}
.page--home .hero__tagline-lead{
  display:block;
  text-wrap:pretty;
  line-break:strict;
  word-break:normal;
}
.hero--flagship.hero--videobg .hero__tagline strong{
  background:none;
  -webkit-background-clip:unset;
  background-clip:unset;
  color:#0d9488;
  text-shadow:0 1px 0 rgba(255,255,255,.9);
}
.hero--flagship.hero--videobg .hero__quals--core{
  margin-top:0.65em;
}
.hero--flagship.hero--videobg .hero__quals--core span{
  font-size:13px;
  font-weight:700;
  padding:8px 14px;
  border-width:2px;
  border-color:rgba(15,118,110,.38);
  box-shadow:0 4px 16px rgba(13,148,136,.12);
}
.hero--flagship.hero--videobg .hero__quals-note--support{
  margin-top:0.45em;
  max-width:min(560px, 100%);
  font-size:11px;
  line-height:1.65;
  color:#94a3b8;
  letter-spacing:.02em;
}
.hero--flagship.hero--videobg .hero__lead{
  color:#475569;
  animation:none;
}
.hero--flagship.hero--videobg .hero__meta span{
  border:1px solid rgba(226,232,240,.95);
  background:rgba(255,255,255,.78);
  color:#0f172a;
  box-shadow:0 4px 20px rgba(15,118,110,.08), 0 1px 0 rgba(255,255,255,1) inset;
  backdrop-filter:blur(10px);
  animation:none;
}
.hero--flagship.hero--videobg .hero__cta{
  margin:8px 0 0;
}
.hero--flagship.hero--videobg .hero__cta--split{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  justify-content:center;
  align-items:center;
}
.hero--flagship.hero--videobg .hero__cta a:not([class*="btn--"]){
  color:#0f766e;
  text-decoration-color:rgba(15,118,110,.38);
}
.hero--flagship.hero--videobg .hero__cta a:not([class*="btn--"]):hover{
  color:#0d9488;
  text-decoration-color:rgba(13,148,136,.5);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45em;
  min-height:48px;
  padding:0 1.5em;
  border-radius:999px;
  font-size:14px;
  font-weight:600;
  letter-spacing:.05em;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease, color .22s ease;
}
.btn:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}
.btn--primary{
  color:#fff;
  background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 48%, var(--color-primary) 100%);
  background-size:200% 100%;
  border-color:rgba(255,255,255,.2);
  box-shadow:
    0 1px 0 rgba(255,255,255,.22) inset,
    0 10px 28px rgba(13,148,136,.38);
}
.btn--primary:hover{
  transform:translateY(-2px);
  background-position:100% 0;
  box-shadow:
    0 1px 0 rgba(255,255,255,.28) inset,
    0 14px 36px rgba(13,148,136,.48);
}
.btn--ghost{
  color:#0f172a;
  background:rgba(255,255,255,.82);
  border-color:rgba(15,118,110,.32);
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset;
}
.btn--ghost:hover{
  transform:translateY(-2px);
  border-color:rgba(13,148,136,.5);
  background:#fff;
  color:var(--color-primary);
}
.btn--accent{
  color:var(--navy);
  background:linear-gradient(135deg, #f0d7a8 0%, var(--gold-bright) 38%, var(--gold) 72%, #c49a6a 100%);
  background-size:200% 100%;
  border-color:rgba(154,107,58,.4);
  box-shadow:
    0 1px 0 rgba(255,255,255,.5) inset,
    0 10px 28px rgba(212,165,116,.42);
}
.btn--accent:hover{
  transform:translateY(-2px);
  background-position:100% 0;
  border-color:rgba(154,107,58,.55);
  color:#050a12;
  box-shadow:
    0 1px 0 rgba(255,255,255,.55) inset,
    0 14px 36px rgba(212,165,116,.52);
}
.hero--flagship.hero--videobg .hero__cta .btn--primary{
  color:#fff;
}
.hero--flagship.hero--videobg .hero__cta .btn--ghost{
  color:#0f172a;
}
.hero--flagship.hero--videobg .hero__cta .btn--accent{
  color:var(--navy);
}
.hero__image{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  object-fit:cover;
  border:1px solid rgba(var(--rgba-primary),.22);
  transition:transform .7s ease, filter .7s ease;
  animation:imageDrift 8s ease-in-out infinite alternate;
}
.hero--flagship .hero__image{
  border:0;
}
.hero__cta{
  margin:8px 0 0;
  font-size:14px;
}
.hero--flagship .hero__cta a{
  color:var(--gold-bright);
  text-decoration:underline;
  text-underline-offset:4px;
  text-decoration-color:rgba(212,165,116,.55);
}
.hero--flagship .hero__cta a:hover{
  color:#fffef5;
  text-decoration-color:rgba(255,254,245,.6);
}
.hero__figure:hover .hero__image{
  transform:scale(1.03);
  filter:contrast(1.04) saturate(1.03);
}

.listing{
  margin-top:28px;
  display:grid;
  gap:14px;
  justify-items:center;
}

.card{
  background:var(--panel);
  border:1px solid rgba(var(--rgba-primary),.14);
  border-top:2px solid rgba(212,165,116,.55);
  padding:30px 28px;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  transform:translateY(var(--parallax, 0px)) perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  will-change:transform;
  backdrop-filter:blur(10px);
  border-radius:16px;
  width:min(780px, 100%);
}
.card:hover{
  transform:translateY(calc(var(--parallax, 0px) - 6px)) perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  box-shadow:0 20px 38px rgba(var(--rgba-primary),.14);
  border-color:rgba(var(--rgba-primary),.34);
}

.listing__label{
  margin-bottom:14px;
  font-size:12px;
  color:var(--muted-soft);
  letter-spacing:.12em;
}
.listing__headline{
  font-size:25px;
  line-height:1.4;
  letter-spacing:.01em;
  color:#0f172a;
}
.listing__sub{
  margin-top:10px;
  color:var(--gold-deep);
  font-size:13px;
  letter-spacing:.22em;
}

.note{
  margin:0;
  color:var(--muted-soft);
  font-size:14px;
  max-width:760px;
  text-align:center;
}
.article__body > .note{
  text-align:left;
  margin:0 0 8px;
  max-width:none;
}

.contact__mail{
  margin:24px 0 0;
  font-size:18px;
  letter-spacing:.02em;
}
.contact__mail a{
  color:var(--accent);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:4px;
}
.contact__hint{
  margin:1em 0 0;
  padding:14px 16px;
  border-radius:12px;
  background:rgba(248,250,252,.95);
  border:1px solid var(--line-soft);
  font-size:14px;
  line-height:1.85;
  color:var(--muted);
}
.contact-form{
  margin-top:22px;
}
.contact-form__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.contact-form__field{
  display:grid;
  gap:8px;
}
.contact-form__field--full{
  grid-column:1 / -1;
}
.contact-form__label{
  font-size:14px;
  font-weight:600;
  color:var(--color-text);
}
.contact-form__label span{
  color:#b91c1c;
}
.contact-form input,
.contact-form textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--color-text);
  font:inherit;
  font-size:15px;
  line-height:1.6;
  padding:12px 14px;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.contact-form textarea{
  resize:vertical;
}
.contact-form input:focus,
.contact-form textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(var(--rgba-primary), .14);
}
.contact-form__notice{
  margin:18px 0 0;
  padding:14px 16px;
  border-radius:12px;
  border:1px solid var(--line-soft);
  font-size:14px;
}
.contact-form__notice p{
  margin:0;
}
.contact-form__notice ul{
  margin:8px 0 0;
  padding-left:1.2em;
}
.contact-form__notice--success{
  background:rgba(20, 184, 166, .08);
  border-color:rgba(15, 118, 110, .28);
  color:#115e59;
}
.contact-form__notice--error{
  background:rgba(239, 68, 68, .08);
  border-color:rgba(185, 28, 28, .22);
  color:#991b1b;
}

.faq{
  margin:1.75em 0 0;
  display:grid;
  gap:12px;
}
.faq details{
  border:1px solid var(--line);
  border-radius:0;
  background:var(--color-surface);
  box-shadow:none;
  transition:border-color .2s ease;
}
.page--inner .faq details{
  border-left:3px solid transparent;
}
.page--inner .faq details[open]{
  border-color:var(--line);
  border-left-color:var(--color-primary);
}
.faq details[open]{
  border-color:var(--line);
}
.faq summary{
  cursor:pointer;
  list-style:none;
  padding:16px 18px;
  font-size:15px;
  font-weight:600;
  color:var(--color-text);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  user-select:none;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";
  flex-shrink:0;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:8px;
  font-size:18px;
  font-weight:600;
  line-height:1;
  color:var(--accent);
  background:rgba(var(--rgba-primary),.08);
}
.faq details[open] summary::after{
  content:"−";
}
.faq__answer{
  padding:0 18px 18px;
  margin-top:-2px;
}
.faq__answer p{
  margin:0;
  font-size:15px;
  line-height:1.9;
  color:var(--muted);
}
.faq__answer p + p{
  margin-top:0.85em;
}

.footer{
  border-top:1px solid rgba(212,165,116,.25);
  padding:28px 0 44px;
  background:linear-gradient(180deg, var(--navy) 0%, #060d18 100%);
}

.ticker{
  border-top:1px solid rgba(212,165,116,.3);
  border-bottom:1px solid rgba(212,165,116,.25);
  background:linear-gradient(90deg, rgba(10,22,40,.97), rgba(17,31,53,.98), rgba(10,22,40,.97));
  overflow:hidden;
}
.ticker--flagship{
  border-top-color:rgba(212,165,116,.45);
}
.ticker__track{
  display:flex;
  align-items:center;
  gap:48px;
  min-width:max-content;
  padding:18px 0;
  color:rgba(248,250,252,.92);
  font-size:13px;
  letter-spacing:.14em;
  text-transform:none;
  animation:tickerFlow var(--ticker-duration, 22s) linear infinite;
  transition:filter .25s ease;
}
.ticker__track span{
  position:relative;
  padding-left:20px;
}
.ticker__track span::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:8px;
  height:8px;
  border-radius:999px;
  transform:translateY(-50%);
  background:linear-gradient(135deg, var(--gold-bright), var(--gold-deep));
  box-shadow:0 0 14px rgba(212,165,116,.55);
}
.footer__small{
  color:rgba(203,213,225,.72);
  font-size:12px;
  letter-spacing:.06em;
}

.page-head{
  padding:52px 0 40px;
  border-bottom:1px solid var(--line-soft);
  background:var(--bg);
}
.page-head__inner{
  max-width:760px;
  margin:0 auto;
  text-align:center;
}
.page-head__eyebrow{
  margin:0 0 12px;
  font-size:11px;
  letter-spacing:.22em;
  color:var(--muted-soft);
}
.page-head__role{
  margin:0 0 8px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.2em;
  color:#0f766e;
}
.page-head__title{
  margin:0;
  font-size:clamp(26px, 4vw, 36px);
  font-weight:600;
  letter-spacing:.04em;
  color:var(--navy);
  line-height:1.35;
}

.article{
  padding:56px 0 96px;
  border-top:0;
  background:var(--bg);
}
.article .container{
  max-width:760px;
}
.article__body{
  text-align:left;
  color:var(--muted);
  font-size:16px;
  line-height:2;
}
.article__body p + p{
  margin-top:1.25em;
}
.article__body h2{
  margin:2.4em 0 0.85em;
  font-size:clamp(18px, 2.2vw, 20px);
  font-weight:600;
  color:var(--navy);
  letter-spacing:.03em;
  line-height:1.45;
}
.article__body h2:first-child{
  margin-top:0;
}
.article__body ul{
  margin:0.85em 0 0;
  padding-left:1.35em;
}
.article__body li + li{
  margin-top:0.5em;
}
.article__body a{
  color:var(--accent);
  text-underline-offset:3px;
}
.article__closing{
  display:block;
  margin-top:0.85em;
  font-weight:700;
  font-size:1.05em;
  line-height:1.85;
  color:#b91c1c;
  letter-spacing:.02em;
}
.article__signature{
  margin:2.2em 0 0;
  font-size:15px;
  line-height:2;
  letter-spacing:.06em;
  color:#334155;
  text-align:right;
}
.article__bullet-list{
  list-style:none;
  padding-left:0;
}
.article__bullet-list li{
  padding-left:0;
}
.article--flow .flow-section{
  opacity:1;
  transform:none;
}
.article__back{
  margin-top:3rem;
  padding-top:1.5rem;
  border-top:1px solid var(--line-soft);
  font-size:14px;
}
.article__back a{
  color:var(--accent);
  font-weight:500;
}

.article__qual-grid{
  display:flex;
  flex-wrap:wrap;
  gap:10px 12px;
  margin:1.35em 0 0;
  padding:0;
  list-style:none;
}
.article__qual-grid li{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 14px;
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.04em;
  color:#0f172a;
  background:linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);
  border:1px solid rgba(15,118,110,.28);
  box-shadow:0 2px 10px rgba(15,23,42,.06);
}
.article__qual-grid--core li{
  font-size:14px;
  font-weight:700;
  min-height:40px;
  padding:0 16px;
  border-width:2px;
  border-color:rgba(15,118,110,.38);
  background:linear-gradient(180deg, #f0fdfa 0%, #ecfdf5 100%);
  box-shadow:0 4px 14px rgba(13,148,136,.1);
}
.article__support-note{
  margin:1.15em 0 0;
  font-size:14px;
  line-height:1.95;
  color:#64748b;
}
.article__support-tier{
  margin-top:2.25em;
  padding:1.1em 1.15em 1.15em;
  border-radius:14px;
  background:rgba(248,250,252,.95);
  border:1px solid var(--line-soft);
}
.article__support-tier h2{
  margin-top:0 !important;
  font-size:clamp(16px, 1.9vw, 18px) !important;
  color:#475569 !important;
  font-weight:600 !important;
}
.article__support-tier p,
.article__support-tier ul{
  font-size:14px;
  color:#64748b;
  line-height:1.95;
}
.article__support-tier strong{
  color:#475569;
  font-weight:600;
}
.page-head__lead{
  margin:14px auto 0;
  max-width:36em;
  font-size:clamp(14px, 2.2vw, 16px);
  line-height:1.75;
  color:var(--muted);
  text-wrap:balance;
}
.page-head--inner,
.page-head--philosophy{
  background:var(--bg);
  border-bottom-color:var(--line-soft);
}
.page--flow .page-head--inner{
  background:linear-gradient(180deg, rgba(var(--rgba-primary), .09) 0%, var(--bg) 72%);
  border-bottom-color:rgba(var(--rgba-primary), .18);
}
.page--flow .page-head__eyebrow{
  color:var(--color-primary);
  font-weight:600;
}

/* トップ Hero：理念ページと同系統の編集デザイン */
.hero--editorial,
.hero.hero--editorial.section{
  padding:0;
  border-top:0;
  background:var(--bg);
}
.hero--editorial-video{
  position:relative;
  overflow:hidden;
}
.hero--cinematic{
  display:flex;
  flex-direction:column;
}
.hero--cinematic .hero__head-band{
  position:relative;
  flex:0 0 auto;
  min-height:clamp(420px, 78vh, 720px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(88px, 12vh, 120px) 0 clamp(56px, 8vh, 80px);
  overflow:hidden;
  isolation:isolate;
}
.hero--cinematic .hero__head-band::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:3;
  height:clamp(48px, 8vh, 96px);
  background:linear-gradient(180deg, rgba(248,250,252,0) 0%, var(--bg) 100%);
  pointer-events:none;
}
.hero__body-band{
  position:relative;
  z-index:10;
  flex:0 0 auto;
  width:100%;
  background:var(--bg);
}
.hero--editorial-video .hero__media{
  position:absolute;
  inset:0;
  z-index:0;
}
.hero__bg--cinematic{
  position:absolute;
  inset:0;
  z-index:0;
  background:
    radial-gradient(ellipse 110% 75% at 50% 15%, rgba(45,212,191,.22), rgba(10,22,40,0) 58%),
    radial-gradient(ellipse 70% 50% at 15% 85%, rgba(232,200,150,.16), rgba(10,22,40,0) 52%),
    radial-gradient(ellipse 55% 42% at 88% 72%, rgba(var(--rgba-primary),.24), rgba(10,22,40,0) 55%),
    linear-gradient(165deg, var(--navy) 0%, #0d1f3a 48%, var(--navy-mid) 100%);
  transform:translate3d(var(--vpx, 0px), var(--vpy, 0px), 0) scale(1.06);
  will-change:transform;
}
.hero--cinematic .hero__media .hero__video{
  position:relative;
  z-index:1;
  object-position:center center;
  transform:translate3d(var(--vpx, 0px), var(--vpy, 0px), 0) scale(1.12);
  filter:contrast(1.08) saturate(1.12) brightness(.88);
}
.hero__scrim--cinematic{
  background:
    radial-gradient(ellipse 75% 55% at 50% 42%, rgba(10,22,40,.78) 0%, rgba(10,22,40,.2) 62%, rgba(10,22,40,0) 100%),
    linear-gradient(180deg, rgba(10,22,40,.5) 0%, rgba(10,22,40,.15) 45%, rgba(10,22,40,.75) 100%);
}
.hero__overlay{
  position:relative;
  z-index:2;
  width:100%;
  max-width:52rem;
  margin:0 auto;
  padding:0 clamp(20px, 5vw, 32px);
  text-align:center;
}
.hero__line{
  margin:0;
}
.hero--cinematic [data-hero-anim]{
  opacity:0;
  transform:translateY(1.1rem);
  filter:blur(4px);
}
.hero--cinematic.is-hero-ready [data-hero-anim]{
  animation:heroLineIn .85s cubic-bezier(.22,1,.36,1) forwards;
}
.hero__line--eyebrow{
  font-family:var(--font-serif), "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size:clamp(20px, 4.2vw, 36px);
  font-weight:700;
  letter-spacing:.22em;
  line-height:1.2;
  color:#ecfdf5;
  text-shadow:0 2px 20px rgba(0,0,0,.5);
}
.hero--cinematic.is-hero-ready .hero__line--eyebrow{animation-delay:.1s}
.org-name__line{
  display:block;
  line-height:1.18;
}
.org-name__line + .org-name__line{
  margin-top:0.06em;
}
.hero__line--title.org-name{
  margin:12px 0 0;
  font-family:var(--font-serif), "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight:600;
  letter-spacing:.04em;
  color:#fff;
  text-shadow:0 4px 32px rgba(0,0,0,.55);
  display:flex;
  flex-direction:column;
  align-items:center;
}
.hero__line--title.org-name .org-name__line{
  font-family:inherit;
  font-size:clamp(34px, 7.5vw, 58px);
  white-space:nowrap;
  width:fit-content;
  max-width:100%;
}
.hero--cinematic.is-hero-ready .hero__line--title{animation-delay:.24s}
.page--home .op__sub.org-name,
.page--home .page-loader__sub.org-name{
  margin:0;
  max-width:none;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--color-text);
}
.page--home .op__sub.org-name .org-name__line,
.page--home .page-loader__sub.org-name .org-name__line{
  font-family:var(--font-serif), "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size:clamp(22px, 4.8vw, 40px);
  font-weight:600;
  line-height:1.18;
  letter-spacing:.04em;
  white-space:nowrap;
}
.hero__line-accent{
  display:block;
  width:min(160px, 40vw);
  height:3px;
  margin:18px auto 0;
  border-radius:2px;
  background:linear-gradient(90deg, #5eead4, var(--color-gold-bright));
  transform:scaleX(0);
  transform-origin:center;
  box-shadow:0 0 20px rgba(94,234,212,.45);
}
.hero--cinematic.is-hero-ready .hero__line-accent{
  animation:heroAccentGrow .75s cubic-bezier(.22,1,.36,1) .42s forwards;
}
.hero__line--tag{
  margin-top:14px;
  font-size:clamp(13px, 2vw, 15px);
  font-weight:600;
  letter-spacing:.14em;
  color:rgba(241,245,249,.88);
  text-shadow:0 2px 14px rgba(0,0,0,.45);
}
.hero--cinematic.is-hero-ready .hero__line--tag{animation-delay:.52s}
@keyframes heroLineIn{
  to{
    opacity:1;
    transform:translateY(0);
    filter:blur(0);
  }
}
@keyframes heroAccentGrow{
  to{transform:scaleX(1)}
}
@media (prefers-reduced-motion: reduce){
  .hero--cinematic [data-hero-anim]{
    opacity:1;
    transform:none;
    filter:none;
  }
  .hero--cinematic.is-hero-ready [data-hero-anim]{
    animation:none;
  }
  .hero__line-accent{
    transform:scaleX(1);
  }
}
.page-head--home{
  padding:clamp(64px, 12vh, 96px) 0 clamp(40px, 6vh, 56px);
  background:linear-gradient(180deg, rgba(var(--rgba-primary), .09) 0%, var(--bg) 78%);
  border-bottom:1px solid var(--line-soft);
}
.page-head--home .page-head__eyebrow{
  color:var(--color-primary);
  font-weight:600;
  letter-spacing:.24em;
}
.page-head--home .page-head__role{
  margin:0 0 10px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  color:var(--color-text-muted);
}
.page-head--home .page-head__title{
  font-family:var(--font-display);
  font-size:clamp(28px, 5vw, 40px);
  font-weight:600;
  letter-spacing:.05em;
  line-height:1.35;
}
.page-head--home .page-head__title::after{
  content:"";
  display:block;
  width:min(120px, 32vw);
  height:3px;
  margin:18px auto 0;
  border-radius:2px;
  background:linear-gradient(90deg, var(--color-primary) 0%, var(--color-gold) 100%);
}
.hero--editorial .hero__body{
  max-width:min(920px, 100%);
  margin:0 auto;
  padding:clamp(32px, 5vh, 48px) 0 clamp(64px, 9vh, 88px);
  background:transparent;
}

/* トップ：ヒーロー下の区切りセクション（サイトのご案内と同系） */
.hero__body .home-section{
  margin:0 0 clamp(48px, 7vh, 72px);
}
.hero__body .home-section--synergy{
  margin-bottom:clamp(28px, 4.5vh, 40px);
  padding-top:clamp(36px, 5vh, 52px);
  border-top:1px solid var(--line-soft);
}
.hero__body .home-section .section__inner{
  margin-bottom:30px;
}
.hero__body .section__inner--wide{
  max-width:920px;
}
.hero__body .home-section .section__lead{
  margin-top:18px;
  font-size:clamp(14px, 2vw, 16px);
  line-height:1.85;
  text-align:center;
  text-wrap:pretty;
}
.hero__body .home-section .section__lead strong{
  color:var(--color-text);
  font-weight:600;
}
.home-section__actions{
  margin:clamp(22px, 3vh, 28px) 0 0;
}
.home-section--facilities .section__inner{
  text-align:center;
}
.home-facilities-list{
  margin:1.25rem auto 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
  max-width:36rem;
  text-align:left;
}
.home-facilities-list li{
  padding:12px 16px;
  border-radius:12px;
  border:1px solid var(--line-soft);
  background:rgba(255,255,255,.85);
  font-size:15px;
  line-height:1.6;
  color:var(--color-text);
}
@media (min-width:640px){
  .home-facilities-list{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    max-width:52rem;
  }
}

/* トップ：369モデル（3客観 × 6変換 → 9統合） */
.hero__strength{
  margin:0;
}
.hero__strength-heading{
  margin:0 0 clamp(1.25rem, 3vw, 1.75rem);
  padding:0 0 clamp(0.85rem, 2vw, 1.1rem);
  border-bottom:0;
  font-family:var(--font-display);
  font-size:clamp(17px, 2.4vw, 20px);
  font-weight:600;
  letter-spacing:.06em;
  line-height:1.55;
  color:var(--navy);
  text-align:center;
  text-wrap:balance;
  position:relative;
}
.hero__strength-heading::before,
.hero__strength-heading::after{
  content:"";
  position:absolute;
  bottom:0;
  width:min(72px, 18vw);
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(var(--rgba-primary), .45));
}
.hero__strength-heading::before{
  left:50%;
  transform:translateX(calc(-100% - clamp(8px, 2vw, 14px)));
}
.hero__strength-heading::after{
  right:50%;
  transform:translateX(calc(100% + clamp(8px, 2vw, 14px))) scaleX(-1);
}
.hero__strength-heading::first-line{
  letter-spacing:.08em;
}
.hero__strength-lead{
  margin:0 auto 0.95rem;
  max-width:40em;
  font-size:clamp(14px, 2vw, 16px);
  font-weight:500;
  line-height:1.85;
  letter-spacing:.02em;
  color:#334155;
  text-align:center;
  text-wrap:pretty;
}
.hero__strength-lead strong{
  color:var(--color-text);
  font-weight:600;
}

.hero__strength-actions{
  display:flex;
  justify-content:center;
  margin:0 0 clamp(18px, 3.5vh, 26px);
}

.hero__about-link{
  min-height:52px;
  padding:0 1.85em;
  font-size:15px;
  letter-spacing:.06em;
}
.synergy{
  display:flex;
  flex-direction:column;
  gap:0;
  max-width:100%;
}
.synergy__stage{
  position:relative;
  padding:clamp(18px, 3vw, 28px);
  border-radius:28px;
  overflow:clip;
  background:
    linear-gradient(165deg, rgba(255,255,255,.72) 0%, rgba(248,250,252,.35) 50%, rgba(255,255,255,.5) 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 24px 64px rgba(15,23,42,.06),
    0 48px 100px rgba(var(--rgba-primary), .04);
}
.synergy__stage-ring{
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  padding:1px;
  background:linear-gradient(
    135deg,
    rgba(var(--rgba-primary), .45) 0%,
    rgba(var(--rgba-gold), .35) 38%,
    rgba(20,184,166, .25) 62%,
    rgba(var(--rgba-gold), .4) 100%
  );
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:.85;
}
/* トライアングル：上＝施設の経験、下左右＝養育・支援／組織運営 */
.synergy--triangle .synergy__node{
  position:relative;
  margin:0;
  padding:1.45rem 1.55rem 1.5rem;
  border-radius:22px;
  background:
    linear-gradient(165deg, rgba(255,255,255,.98) 0%, rgba(248,250,252,.94) 100%) padding-box,
    linear-gradient(140deg, rgba(var(--rgba-primary), .28), rgba(var(--rgba-gold), .32)) border-box;
  border:1px solid transparent;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  overflow:hidden;
  box-shadow:
    0 1px 0 rgba(255,255,255,.98) inset,
    0 4px 12px rgba(15,23,42,.04),
    0 20px 48px rgba(15,23,42,.08),
    0 48px 96px rgba(15,23,42,.04);
  backdrop-filter:blur(14px) saturate(1.15);
  -webkit-backdrop-filter:blur(14px) saturate(1.15);
  transition:
    transform .5s cubic-bezier(.22,1,.36,1),
    box-shadow .5s cubic-bezier(.22,1,.36,1);
}
.synergy--lux .synergy__triangle .synergy__node{
  animation:synergy-card-rise .85s cubic-bezier(.22,1,.36,1) backwards;
}
.synergy--lux .synergy__node--experience{ animation-delay:.12s; }
.synergy--lux .synergy__node--welfare{ animation-delay:.28s; }
.synergy--lux .synergy__node--people{ animation-delay:.36s; }
.synergy--lux .synergy__node--outcome{ animation-delay:.52s; }

/* Top：AIっぽさを抑えた上品版（装飾/発光/アニメを控えめに） */
.synergy--refined.synergy--triangle .synergy__node{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.08);
  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 14px 34px rgba(15,23,42,.08);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.synergy--refined .synergy__ambient-orb{
  display:none;
}
.synergy--refined .synergy__ambient{
  opacity:.5;
}
.synergy--refined .synergy__tri-outline{
  stroke-dasharray:none;
  animation:none;
  stroke-opacity:.14;
}
.synergy--refined .synergy__tri-edge{
  animation:none;
  stroke-dashoffset:0;
  filter:none;
  opacity:.55;
}
.synergy--refined .synergy__tri-spoke,
.synergy--refined .synergy__hub,
.synergy--refined .synergy__hub-ring,
.synergy--refined .synergy__vertex-ring,
.synergy--refined .synergy__vertex{
  animation:none;
  opacity:1;
}
.synergy--refined .synergy__connector-flow,
.synergy--refined .synergy__connector-gem{
  animation:none;
}
.synergy--refined .synergy__connector-gem{
  box-shadow:
    0 0 0 3px rgba(15,23,42,.06),
    0 6px 16px rgba(15,23,42,.12);
}
.synergy--refined .synergy__connector-arrow{
  filter:drop-shadow(0 2px 2px rgba(15,23,42,.16));
}
@keyframes synergy-card-rise{
  from{
    opacity:0;
    transform:translateY(28px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
.synergy__node-watermark{
  position:absolute;
  top:0.5rem;
  right:0.85rem;
  font-family:var(--font-display);
  font-size:clamp(2.75rem, 7vw, 3.75rem);
  font-weight:600;
  line-height:1;
  letter-spacing:-.04em;
  color:rgba(15,23,42,.045);
  pointer-events:none;
  user-select:none;
  z-index:0;
}
.synergy__fusion-label{
  position:relative;
  z-index:1;
  margin:0 0 0.55rem;
  padding:0 0 0.6rem;
  width:100%;
  border-bottom:1px solid rgba(var(--rgba-primary), .18);
  font-family:var(--font-display);
  font-size:clamp(1.35rem, 3.8vw, 1.85rem);
  font-weight:600;
  letter-spacing:.32em;
  line-height:1.45;
  color:var(--color-primary-dark);
  text-align:center;
  text-indent:.32em;
}
.synergy__node-corner{
  position:absolute;
  width:16px;
  height:16px;
  pointer-events:none;
  z-index:2;
  opacity:.55;
}
.synergy__node-corner--tl{
  top:11px;
  left:11px;
  border-top:1.5px solid rgba(var(--rgba-primary), .45);
  border-left:1.5px solid rgba(var(--rgba-primary), .45);
}
.synergy__node-corner--tr{
  top:11px;
  right:11px;
  border-top:1.5px solid rgba(var(--rgba-gold), .5);
  border-right:1.5px solid rgba(var(--rgba-gold), .5);
}
.synergy__node-corner--bl{
  bottom:11px;
  left:11px;
  border-bottom:1.5px solid rgba(var(--rgba-primary), .35);
  border-left:1.5px solid rgba(var(--rgba-primary), .35);
}
.synergy__node-corner--br{
  bottom:11px;
  right:11px;
  border-bottom:1.5px solid rgba(var(--rgba-gold), .45);
  border-right:1.5px solid rgba(var(--rgba-gold), .45);
}
.synergy__node--people .synergy__node-corner--tl{
  border-top-color:rgba(var(--rgba-gold), .45);
  border-left-color:rgba(var(--rgba-gold), .45);
}
.synergy__node--people .synergy__node-corner--br{
  border-bottom-color:rgba(var(--rgba-gold), .5);
  border-right-color:rgba(var(--rgba-gold), .5);
}
.synergy__node--experience .synergy__node-corner--tl,
.synergy__node--experience .synergy__node-corner--br{
  border-color:rgba(15,23,42,.2);
}
.synergy__node-badge,
.synergy__node-title,
.synergy__node-desc,
.synergy__quals{
  position:relative;
  z-index:1;
}
@media (hover:hover){
  .synergy--triangle .synergy__node:hover{
    transform:translateY(-4px);
    box-shadow:
      0 1px 0 rgba(255,255,255,.98) inset,
      0 8px 24px rgba(15,23,42,.06),
      0 28px 56px rgba(15,23,42,.1);
  }
}
.synergy__triangle{
  position:relative;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  column-gap:clamp(18px, 3.5vw, 40px);
  row-gap:clamp(22px, 3.5vw, 36px);
  max-width:920px;
  margin:0 auto;
  padding:clamp(12px, 2vw, 20px) clamp(8px, 2vw, 16px) clamp(16px, 2.5vw, 24px);
  align-items:stretch;
  isolation:isolate;
}
.synergy__ambient{
  position:absolute;
  inset:-12% -8% -6%;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  border-radius:32px;
}
.synergy__ambient-mesh{
  position:absolute;
  inset:0;
  opacity:.6;
  background:
    radial-gradient(circle at 50% 6%, rgba(var(--rgba-primary), .11), transparent 44%),
    radial-gradient(circle at 16% 76%, rgba(var(--rgba-primary), .07), transparent 40%),
    radial-gradient(circle at 84% 76%, rgba(var(--rgba-gold), .1), transparent 40%),
    radial-gradient(circle at 50% 52%, rgba(20,184,166,.05), transparent 35%),
    repeating-linear-gradient(
      -12deg,
      transparent,
      transparent 20px,
      rgba(15,23,42,.015) 20px,
      rgba(15,23,42,.015) 21px
    );
}
.synergy__ambient-grain{
  position:absolute;
  inset:0;
  opacity:.35;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
  pointer-events:none;
}
.synergy__ambient-orb--center{
  top:38%;
  left:50%;
  width:min(160px, 28vw);
  height:min(120px, 22vw);
  transform:translateX(-50%);
  background:radial-gradient(circle, rgba(20,184,166,.22), transparent 70%);
  animation-delay:-7s;
}
.synergy__ambient-orb{
  position:absolute;
  border-radius:50%;
  filter:blur(48px);
  opacity:.65;
  animation:synergy-orb-float 14s ease-in-out infinite;
}
.synergy__ambient-orb--teal{
  top:2%;
  left:22%;
  width:min(280px, 42vw);
  height:min(200px, 32vw);
  background:radial-gradient(circle, rgba(20,184,166,.35), transparent 68%);
}
.synergy__ambient-orb--gold{
  bottom:8%;
  right:14%;
  width:min(240px, 38vw);
  height:min(180px, 28vw);
  background:radial-gradient(circle, rgba(232,200,150,.4), transparent 70%);
  animation-delay:-5s;
}
@keyframes synergy-orb-float{
  0%, 100%{ transform:translate3d(0, 0, 0) scale(1); }
  50%{ transform:translate3d(12px, -10px, 0) scale(1.06); }
}
.synergy__triangle-lines{
  position:absolute;
  inset:clamp(58px, 14vw, 96px) 5% clamp(10px, 2vw, 18px);
  width:90%;
  left:50%;
  transform:translateX(-50%);
  height:auto;
  z-index:0;
  pointer-events:none;
}
.synergy__tri-fill{
  opacity:1;
}
.synergy__tri-outline{
  stroke-linejoin:round;
  stroke-dasharray:6 8;
  animation:synergy-outline-shift 24s linear infinite;
}
@keyframes synergy-outline-shift{
  to{ stroke-dashoffset:-56; }
}
.synergy__tri-spoke{
  stroke-linecap:round;
  opacity:0;
  animation:synergy-spoke-in .8s ease forwards;
}
.synergy__tri-spoke--l{ animation-delay:.55s; }
.synergy__tri-spoke--r{ animation-delay:.62s; }
.synergy__tri-spoke--r2{ animation-delay:.68s; }
@keyframes synergy-spoke-in{
  to{ opacity:1; }
}
.synergy__hub{
  opacity:0;
  animation:synergy-hub-in .6s cubic-bezier(.22,1,.36,1) .75s forwards;
}
.synergy__hub-ring{
  opacity:0;
  animation:synergy-hub-ring-in .7s ease .8s forwards, synergy-hub-pulse 4s ease-in-out 1.6s infinite;
}
@keyframes synergy-hub-in{
  from{ opacity:0; }
  to{ opacity:.85; }
}
@keyframes synergy-hub-ring-in{
  to{ opacity:1; }
}
@keyframes synergy-hub-pulse{
  0%, 100%{ opacity:.3; }
  50%{ opacity:.75; }
}
.synergy__vertex-ring{
  opacity:0;
  animation:synergy-vertex-ring-in .6s ease forwards;
}
.synergy__vertex-ring--apex{ animation-delay:.95s; }
.synergy__vertex-ring--left,
.synergy__vertex-ring--right{ animation-delay:1.1s; }
@keyframes synergy-vertex-ring-in{
  from{ opacity:0; }
  to{ opacity:1; }
}
.synergy__tri-edge{
  stroke-linecap:round;
  stroke-dasharray:280;
  stroke-dashoffset:280;
  animation:synergy-line-draw 1.4s cubic-bezier(.22,1,.36,1) forwards;
}
.synergy__tri-edge--left{
  animation-delay:.12s;
}
.synergy__tri-edge--right{
  animation-delay:.22s;
}
.synergy__tri-edge--base{
  animation-delay:.38s;
}
@keyframes synergy-line-draw{
  to{ stroke-dashoffset:0; }
}
.synergy__vertex{
  stroke-width:2.25;
  vector-effect:non-scaling-stroke;
  opacity:0;
  animation:synergy-vertex-in .5s cubic-bezier(.22,1,.36,1) forwards;
}
.synergy__vertex--apex{
  stroke:var(--color-primary);
  fill:#fff;
  filter:drop-shadow(0 0 6px rgba(var(--rgba-primary), .35));
  animation-delay:.9s;
}
.synergy__vertex--left{
  stroke:var(--color-primary);
  fill:#fff;
  filter:drop-shadow(0 0 5px rgba(var(--rgba-primary), .28));
  animation-delay:1.05s;
}
.synergy__vertex--right{
  stroke:var(--color-gold-deep);
  fill:#fff;
  filter:drop-shadow(0 0 5px rgba(var(--rgba-gold), .35));
  animation-delay:1.05s;
}
@keyframes synergy-vertex-in{
  from{ opacity:0; }
  to{ opacity:1; }
}
.synergy__triangle .synergy__node{
  position:relative;
  z-index:1;
  width:100%;
}
.synergy__triangle .synergy__node::before{
  content:"";
  position:absolute;
  top:0;
  left:12%;
  right:12%;
  height:1px;
  border-radius:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.95), transparent);
  pointer-events:none;
}
.synergy__node--experience{
  grid-column:1 / -1;
  justify-self:center;
  max-width:min(100%, 520px);
  padding-top:1.65rem;
  background:
    linear-gradient(155deg, rgba(255,255,255,.99) 0%, rgba(241,245,249,.96) 45%, #fff 100%) padding-box,
    linear-gradient(120deg, rgba(15,23,42,.25), rgba(var(--rgba-primary), .2), rgba(var(--rgba-gold), .22)) border-box;
  box-shadow:
    0 1px 0 rgba(255,255,255,.98) inset,
    0 8px 20px rgba(15,23,42,.05),
    0 32px 64px rgba(15,23,42,.11);
  transform:translateY(-8px);
}
.synergy--lux .synergy__node--experience{
  animation-name:synergy-card-rise-apex;
}
@keyframes synergy-card-rise-apex{
  from{
    opacity:0;
    transform:translateY(28px);
  }
  to{
    opacity:1;
    transform:translateY(-8px);
  }
}
.synergy__node--experience::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  border-radius:20px 20px 0 0;
  background:linear-gradient(90deg, var(--navy) 0%, #334155 50%, var(--navy) 100%);
  opacity:.85;
}
@media (hover:hover){
  .synergy__node--experience:hover{
    transform:translateY(-12px);
    box-shadow:
      0 1px 0 rgba(255,255,255,.98) inset,
      0 16px 40px rgba(15,23,42,.08),
      0 40px 80px rgba(15,23,42,.12);
  }
}
.synergy__node--welfare{
  grid-column:1;
}
.synergy__node--people{
  grid-column:2;
}
.synergy__node--welfare{
  background:
    linear-gradient(155deg, rgba(240,253,250,.82) 0%, rgba(255,255,255,.97) 45%, #fff 100%) padding-box,
    linear-gradient(145deg, rgba(var(--rgba-primary), .4), rgba(20,184,166, .15)) border-box;
  box-shadow:
    0 1px 0 rgba(255,255,255,.96) inset,
    0 20px 48px rgba(var(--rgba-primary), .14);
}
.synergy__node--welfare::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  border-radius:20px 20px 0 0;
  background:linear-gradient(90deg, var(--color-primary-dark), var(--color-primary-light));
}
.synergy__node--people{
  background:
    linear-gradient(155deg, rgba(255,251,235,.78) 0%, rgba(255,255,255,.97) 45%, #fff 100%) padding-box,
    linear-gradient(145deg, rgba(var(--rgba-gold), .45), rgba(232,200,150, .2)) border-box;
  box-shadow:
    0 1px 0 rgba(255,255,255,.96) inset,
    0 20px 48px rgba(var(--rgba-gold), .16);
}
.synergy__node--people::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  border-radius:20px 20px 0 0;
  background:linear-gradient(90deg, var(--color-gold-deep), var(--color-gold-bright));
}
.synergy__node--outcome{
  position:relative;
  text-align:center;
  padding:1.65rem 1.55rem 1.7rem;
  border-radius:24px;
  border:1px solid transparent;
  background:
    linear-gradient(165deg, rgba(240,253,250,.55) 0%, rgba(255,251,235,.4) 30%, rgba(255,255,255,.98) 68%) padding-box,
    linear-gradient(120deg, rgba(var(--rgba-primary), .35), rgba(var(--rgba-gold), .4), rgba(var(--rgba-primary), .3)) border-box;
  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 16px 48px rgba(15,23,42,.09),
    0 40px 80px rgba(var(--rgba-primary), .06);
  overflow:hidden;
}
.synergy__node--outcome::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  border-radius:22px 22px 0 0;
  background:linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-light) 38%, var(--color-gold-bright) 72%, var(--color-gold) 100%);
  z-index:2;
}
.synergy__node--outcome::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:22px;
  pointer-events:none;
  background:
    linear-gradient(135deg, rgba(var(--rgba-primary), .04) 0%, transparent 40%, rgba(var(--rgba-gold), .05) 100%);
  box-shadow:inset 1px 0 0 rgba(var(--rgba-primary), .2), inset -1px 0 0 rgba(var(--rgba-gold), .25);
}
.synergy__node-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 0 0.7rem;
  padding:0.42rem 1rem;
  border-radius:999px;
  font-size:clamp(11px, 1.4vw, 12px);
  font-weight:700;
  letter-spacing:.14em;
  line-height:1.35;
  text-align:center;
  text-wrap:balance;
  white-space:normal;
  max-width:100%;
  color:var(--color-primary-dark);
  background:rgba(255,255,255,.75);
  border:1px solid rgba(var(--rgba-primary), .22);
  box-shadow:0 2px 12px rgba(var(--rgba-primary), .1);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.synergy__node-badge--gold{
  color:var(--color-gold-deep);
  border-color:rgba(var(--rgba-gold), .35);
  box-shadow:0 2px 12px rgba(var(--rgba-gold), .15);
}
.synergy__node-badge--blend{
  color:var(--navy);
  border-color:rgba(15,23,42,.12);
  background:linear-gradient(135deg, rgba(255,255,255,.9), rgba(241,245,249,.85));
  box-shadow:0 2px 14px rgba(15,23,42,.08);
}
.synergy__node--experience .synergy__node-badge--blend{
  margin-top:0.15rem;
}
.synergy--triangle .synergy__node-title{
  margin:0 0 0.85rem;
  font-family:var(--font-display);
  font-size:clamp(15px, 2.3vw, 18px);
  font-weight:600;
  line-height:1.55;
  color:var(--navy);
  letter-spacing:.06em;
  width:100%;
  text-align:center;
  text-wrap:balance;
}
.synergy--lux .synergy__node-title::after{
  content:"";
  display:block;
  width:min(40px, 12vw);
  height:2px;
  margin:0.55rem auto 0;
  border-radius:2px;
  background:linear-gradient(90deg, transparent, rgba(var(--rgba-primary), .55), transparent);
  opacity:.7;
}
.synergy__node--people .synergy__node-title::after{
  background:linear-gradient(90deg, transparent, rgba(var(--rgba-gold), .65), transparent);
}
.synergy__node--experience .synergy__node-title::after{
  background:linear-gradient(90deg, transparent, rgba(15,23,42,.35), transparent);
}
.synergy__node-title--outcome{
  position:relative;
  z-index:1;
  text-align:center;
  font-size:clamp(16px, 2.4vw, 19px);
}
.synergy__node--outcome .synergy__node-badge{
  margin-top:0;
}
.synergy__node--outcome .synergy__node-badge,
.synergy__node--outcome .synergy__node-desc{
  position:relative;
  z-index:1;
}
.synergy__triangle .synergy__node-desc{
  margin:0 0 0.7rem;
  width:100%;
  min-height:0;
  display:block;
  font-size:13px;
  line-height:1.8;
  color:var(--muted);
  text-align:center;
  text-wrap:pretty;
}
.synergy__node--experience .synergy__node-desc--sub{
  margin-bottom:0;
  padding-top:0.65rem;
  border-top:1px solid var(--line-soft);
  font-size:12px;
  line-height:1.7;
}
.synergy__node--experience .synergy__node-desc--sub strong{
  color:var(--color-text);
  font-weight:600;
}
.synergy__node--welfare .synergy__node-desc,
.synergy__node--people .synergy__node-desc{
  min-height:4.5em;
  display:flex;
  align-items:center;
  justify-content:center;
}
.synergy__node-desc--outcome{
  margin-bottom:0;
  max-width:36em;
  margin-left:auto;
  margin-right:auto;
  font-size:14px;
  line-height:1.85;
}
.synergy--triangle .synergy__quals{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-content:center;
  gap:7px 9px;
  width:100%;
  min-height:4.25rem;
  margin:0;
  margin-top:auto;
  padding:0.85rem 0 0;
  list-style:none;
  border-top:1px solid rgba(15,23,42,.06);
  text-align:center;
}
.synergy__quals li{
  padding:0.38rem 0.72rem;
  border-radius:999px;
  font-size:11px;
  font-weight:600;
  line-height:1.35;
  letter-spacing:.03em;
  color:var(--color-text-muted);
  background:rgba(255,255,255,.85);
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 1px 3px rgba(15,23,42,.04);
  transition:transform .25s ease, box-shadow .25s ease;
}
@media (hover:hover){
  .synergy__quals li:hover{
    transform:translateY(-1px);
    box-shadow:0 4px 10px rgba(15,23,42,.08);
  }
}
.synergy__node--welfare .synergy__quals li{
  border-color:rgba(var(--rgba-primary), .2);
  color:var(--color-primary-dark);
  background:linear-gradient(180deg, rgba(240,253,250,.9), #fff);
}
.synergy__node--people .synergy__quals li{
  border-color:rgba(var(--rgba-gold), .28);
  color:var(--color-gold-deep);
  background:linear-gradient(180deg, rgba(255,251,235,.95), #fff);
}
.synergy__connector{
  display:flex;
  flex-direction:column;
  align-items:center;
  width:100%;
  max-width:920px;
  margin:0 auto;
  padding:0.65rem 0 0.75rem;
  gap:0;
}
.synergy__connector-funnel{
  position:relative;
  width:min(220px, 58%);
  height:28px;
  margin:0 auto 2px;
}
.synergy__connector-funnel-line{
  position:absolute;
  bottom:0;
  width:2px;
  height:22px;
  border-radius:2px;
  background:linear-gradient(180deg, rgba(var(--rgba-primary), .5), rgba(var(--rgba-gold), .35));
  transform-origin:bottom center;
  opacity:.75;
}
.synergy__connector-funnel-line--l{
  left:18%;
  transform:rotate(22deg);
}
.synergy__connector-funnel-line--c{
  left:50%;
  transform:translateX(-50%);
  height:26px;
  opacity:1;
}
.synergy__connector-funnel-line--r{
  right:18%;
  transform:rotate(-22deg);
}
.synergy__connector-gem{
  display:block;
  width:12px;
  height:12px;
  margin:0 auto 8px;
  border-radius:3px;
  background:linear-gradient(135deg, var(--color-primary-light), var(--color-gold-bright));
  transform:rotate(45deg);
  transform-origin:center center;
  flex-shrink:0;
  box-shadow:
    0 0 0 4px rgba(var(--rgba-primary), .1),
    0 0 20px rgba(var(--rgba-gold), .25),
    0 4px 14px rgba(15,23,42,.14);
  animation:synergy-gem-glow 3s ease-in-out infinite;
}
@keyframes synergy-gem-glow{
  0%, 100%{ box-shadow:0 0 0 4px rgba(var(--rgba-primary), .1), 0 0 16px rgba(var(--rgba-gold), .2), 0 4px 14px rgba(15,23,42,.12); }
  50%{ box-shadow:0 0 0 5px rgba(var(--rgba-primary), .16), 0 0 28px rgba(var(--rgba-gold), .4), 0 6px 18px rgba(15,23,42,.14); }
}
.synergy__connector-line{
  position:relative;
  display:block;
  width:2px;
  height:44px;
  margin:0 auto;
  border-radius:2px;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(var(--rgba-primary), .15), rgba(var(--rgba-gold), .2));
  flex-shrink:0;
}
.synergy__connector-flow{
  position:absolute;
  left:0;
  top:-100%;
  width:100%;
  height:55%;
  border-radius:2px;
  background:linear-gradient(180deg, transparent, var(--color-primary-light), var(--color-gold));
  animation:synergy-connector-flow 2.4s ease-in-out infinite;
}
@keyframes synergy-connector-flow{
  0%{ top:-60%; opacity:0; }
  15%{ opacity:1; }
  85%{ opacity:1; }
  100%{ top:110%; opacity:0; }
}
.synergy__connector-arrow{
  display:block;
  width:0;
  height:0;
  margin:8px auto 0;
  border:0;
  border-left:8px solid transparent;
  border-right:8px solid transparent;
  border-top:10px solid var(--color-gold-deep);
  transform:none;
  filter:drop-shadow(0 2px 4px rgba(var(--rgba-gold), .35));
  flex-shrink:0;
}
@media (prefers-reduced-motion:reduce){
  .synergy__ambient-orb,
  .synergy__tri-edge,
  .synergy__tri-outline,
  .synergy__tri-spoke,
  .synergy__hub,
  .synergy__hub-ring,
  .synergy__vertex-ring,
  .synergy__vertex,
  .synergy__connector-flow,
  .synergy__connector-gem,
  .synergy--lux .synergy__node{
    animation:none;
  }
  .synergy__tri-edge{
    stroke-dashoffset:0;
  }
  .synergy__vertex,
  .synergy__hub,
  .synergy__hub-ring,
  .synergy__tri-spoke,
  .synergy__vertex-ring{
    opacity:1;
  }
  .synergy--triangle .synergy__node:hover,
  .synergy__node--experience:hover{
    transform:none;
  }
  .synergy__node--experience{
    transform:translateY(-8px);
  }
}
@media (max-width:720px){
  .synergy__stage{
    padding:14px 12px 16px;
    border-radius:22px;
  }
  .synergy__stage-ring{
    border-radius:22px;
  }
  .synergy__triangle{
    grid-template-columns:1fr;
    row-gap:16px;
    padding:0.5rem 0 1rem;
    max-width:100%;
  }
  .synergy__ambient{
    inset:-4% -4% 0;
    border-radius:20px;
  }
  .synergy__triangle-lines{
    display:none;
  }
  .synergy__connector-funnel{
    display:none;
  }
  .synergy__node--experience{
    max-width:100%;
    transform:none;
  }
  .synergy--lux .synergy__node--experience{
    animation-name:synergy-card-rise;
  }
  .synergy__node--experience,
  .synergy__node--welfare,
  .synergy__node--people{
    grid-column:1;
    min-height:0;
  }
  .synergy--triangle .synergy__node{
    border-radius:18px;
  }
  .synergy--triangle .synergy__node:has(.synergy__node-watermark){
    padding-top:2.35rem;
    padding-right:2rem;
  }
  .synergy__node-watermark{
    font-size:1.85rem;
    top:0.45rem;
    right:0.55rem;
    left:auto;
    max-width:2.5rem;
    text-align:right;
    line-height:1;
  }
  .synergy__node-badge{
    position:relative;
    z-index:1;
    max-width:calc(100% - 0.25rem);
    margin-top:0;
  }
}
.hero--editorial .hero__cta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px 14px;
  margin:2.75em 0 0;
  padding-top:2rem;
  border-top:1px solid var(--line-soft);
}
@media (max-width:640px){
  .page-head--home{
    padding-top:56px;
  }
  .hero--cinematic .hero__head-band{
    min-height:clamp(360px, 72vh, 520px);
    padding-top:max(68px, calc(52px + env(safe-area-inset-top)));
  }
  .hero--cinematic .hero__media .hero__video,
  .hero--cinematic .hero__bg--cinematic{
    transform:none;
  }
  .hero__overlay{
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .hero__line--title.org-name{
    letter-spacing:.02em;
    width:100%;
  }
  .hero__line--title.org-name .org-name__line{
    font-size:clamp(18px, calc((100vw - 72px) / 10.5), 44px);
    white-space:nowrap;
  }
  .hero__line--tag{
    width:fit-content;
    max-width:100%;
    font-size:clamp(11px, calc((100vw - 72px) / 17), 15px);
    letter-spacing:.06em;
    white-space:nowrap;
  }
  .page--home .op__sub.org-name .org-name__line,
  .page--home .page-loader__sub.org-name .org-name__line{
    font-size:clamp(20px, 6.5vw, 32px);
  }
  .hero--editorial .hero__cta{
    flex-direction:column;
    align-items:stretch;
  }
  .hero--editorial .hero__cta .btn{
    width:100%;
    justify-content:center;
  }
}
.article--inner .article__body,
.article--philosophy .article__body{
  max-width:760px;
  line-height:2;
}
.page--inner .article__body > p,
.page--inner .article__prose p{
  margin:0;
  color:var(--muted);
  font-size:16px;
  line-height:2;
}
.page--inner .article__body > p + p,
.page--inner .article__prose p + p{
  margin-top:1.25em;
}
.page--inner .article__body > h2,
.page--inner .inner-section-title{
  margin:2.4em 0 1.1em;
  font-size:clamp(18px, 2.2vw, 20px);
  font-weight:600;
  letter-spacing:.03em;
  color:var(--navy);
  line-height:1.45;
}
.page--inner .article__body > h2:first-child,
.page--inner .inner-section-title:first-child{
  margin-top:0;
}
.page--inner .article__bullet-list{
  margin:0.85em 0 1.25em;
  padding:0;
  list-style:none;
}
.page--inner .article__bullet-list li{
  position:relative;
  padding-left:1.1em;
  color:var(--muted);
  line-height:2;
}
.page--inner .article__bullet-list li + li{
  margin-top:0.35em;
}
.page--inner .article__bullet-list li::before{
  content:"・";
  position:absolute;
  left:0;
  color:var(--color-primary);
}
.page--inner .article__closing{
  display:block;
  margin-top:0.85em;
  font-weight:700;
  color:var(--color-text);
}
.page--inner .article__signature{
  margin:2.2em 0 0;
  padding-top:1.5em;
  border-top:1px solid var(--line-soft);
  font-size:15px;
  line-height:2;
  letter-spacing:.06em;
  color:var(--color-text-muted);
  text-align:right;
}
/* 私たちについて — 装飾は最小、段落間の余白を明確に（gap で隣接セレクタ不具合を回避） */
.article--about .article__body{
  max-width:760px;
}
.article--about .about__prose{
  display:flex;
  flex-direction:column;
  gap:2.25rem;
}
.article--about .about__prose p{
  margin:0;
  color:var(--muted);
  font-size:16px;
  line-height:2;
}
.article--about .about__prose .article__bullet-list{
  margin:0;
}
.article--about .about__prose .article__signature{
  margin:0;
}
.article--about .article__back{
  margin-top:2.5rem;
}
.about__rep{
  margin-top:2.5rem;
  padding-top:1.75rem;
  border-top:1px solid var(--line-soft);
}
.about__rep-heading{
  margin:0 0 1rem;
  font-size:14px;
  font-weight:600;
  letter-spacing:.14em;
  color:var(--accent);
}
.about__rep-list{
  margin:0;
}
.about__rep-row{
  display:flex;
  gap:1rem;
  padding:.55rem 0;
  border-bottom:1px solid var(--line-soft);
}
.about__rep-row dt{
  flex:0 0 5.5em;
  margin:0;
  font-size:14px;
  font-weight:600;
  color:var(--color-text);
}
.about__rep-row dd{
  margin:0;
  font-size:15px;
  line-height:1.8;
  color:var(--muted);
}
.about__rep-note{
  margin:1.1rem 0 0;
  font-size:14px;
  line-height:1.9;
  color:var(--color-text-muted);
}
.visually-hidden{
  position:absolute !important;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  border:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}
.philosophy__intro{
  margin-bottom:2.8rem;
  padding-bottom:2.4rem;
  border-bottom:1px solid var(--line-soft);
}
.philosophy__policies{
  margin-top:0;
}
.philosophy__section-title{
  margin:0 0 1.1em;
  font-size:clamp(18px, 2.2vw, 20px);
  font-weight:600;
  letter-spacing:.03em;
  color:var(--navy);
  line-height:1.45;
}
.philosophy__quote{
  margin:0 0 1.5em;
  padding:0 0 0 1.1em;
  border:0;
  border-left:3px solid #94a3b8;
  background:none;
  box-shadow:none;
  font-size:17px;
  font-weight:500;
  line-height:2;
  color:#334155;
  text-wrap:pretty;
}
.philosophy__quote strong{
  color:var(--color-text);
  font-weight:700;
}
.philosophy__quote-closing{
  font-weight:700;
  color:var(--color-text);
}
.u-br-sm{
  display:none;
}
@media (max-width: 640px){
  .u-br-sm{
    display:block;
  }
}
.philosophy__narrative p{
  margin:0;
  color:var(--muted);
  font-size:16px;
  line-height:2;
}
.philosophy__narrative p + p{
  margin-top:1.25em;
}
.philosophy__narrative strong{
  color:var(--navy);
  font-weight:600;
}
.philosophy__list,
.inner-list{
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line);
}
.philosophy__item,
.inner-list__item{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem 1.75rem;
  align-items:start;
  padding:1.85rem 0;
  border-bottom:1px solid var(--line-soft);
}
.philosophy__item-num,
.inner-list__num{
  font-family:var(--font-display);
  font-size:clamp(2.25rem, 5vw, 3rem);
  font-weight:600;
  line-height:1;
  letter-spacing:0;
  color:var(--color-primary);
  min-width:2.75rem;
  text-align:center;
}
.philosophy__item-body p,
.inner-list__body p{
  margin:0;
  color:var(--muted);
  font-size:16px;
  line-height:2;
}
.philosophy__item-body p + p,
.inner-list__body p + p{
  margin-top:1.1em;
}
.philosophy__item-body ul,
.inner-list__body ul{
  margin:0.85em 0 0;
  padding-left:1.35em;
  color:var(--muted);
  font-size:16px;
  line-height:1.95;
}
.philosophy__item-body li + li,
.inner-list__body li + li{
  margin-top:0.4em;
}
.philosophy__item-title,
.inner-list__title{
  margin:0 0 0.65em;
  font-size:17px;
  font-weight:600;
  line-height:1.6;
  color:var(--color-text);
  letter-spacing:.02em;
  text-wrap:pretty;
}
@media (max-width: 640px){
  .philosophy__item,
  .inner-list__item{
    grid-template-columns:2.5rem 1fr;
    gap:0.65rem 1.1rem;
    padding:1.5rem 0;
  }
  .philosophy__item-num,
  .inner-list__num{
    font-size:2rem;
    min-width:0;
    text-align:left;
  }
  .philosophy__item-title,
  .inner-list__title{
    font-size:16px;
  }
}

/* 評価の流れ：縦型フロー図 */
.flow-chart{
  margin-top:2.5em;
}
.flow-chart__heading{
  margin:0 0 0.5em;
  padding:0 0 0.65rem;
  border-bottom:2px solid rgba(var(--rgba-primary), .3);
  font-size:clamp(18px, 2.2vw, 20px);
  font-weight:600;
  color:var(--navy);
  letter-spacing:.03em;
}
.flow-chart__intro{
  margin:0 0 1.75rem;
  font-size:14px;
  line-height:1.75;
  color:var(--muted-soft);
}
.flow-chart__steps{
  margin:0;
  padding:0;
  list-style:none;
  max-width:640px;
}
.flow-chart__phase{
  display:flex;
  align-items:center;
  gap:0.75rem;
  margin:1.5rem 0 0.85rem;
  padding:0;
}
.flow-chart__phase:first-child{
  margin-top:0;
}
.flow-chart__phase span{
  flex-shrink:0;
  padding:0.25rem 0.75rem;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--color-primary);
  background:rgba(var(--rgba-primary), .08);
  border:1px solid rgba(var(--rgba-primary), .22);
}
.flow-chart__phase::after{
  content:"";
  flex:1;
  height:1px;
  background:var(--line);
}
.flow-chart__step{
  position:relative;
  margin:0;
  padding:0 0 1.5rem 3.25rem;
}
.flow-chart__step::before{
  content:"";
  position:absolute;
  left:1.125rem;
  top:2.75rem;
  bottom:0;
  width:2px;
  background:var(--line);
}
.flow-chart__step::after{
  content:"";
  position:absolute;
  left:0.7rem;
  bottom:0.35rem;
  width:0;
  height:0;
  border-left:7px solid transparent;
  border-right:7px solid transparent;
  border-top:8px solid var(--color-primary);
  opacity:.45;
}
.flow-chart__step:last-child{
  padding-bottom:0;
}
.flow-chart__step:last-child::before,
.flow-chart__step:last-child::after{
  display:none;
}
.flow-chart__node{
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1rem 1.1rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
}
.flow-chart__step--key .flow-chart__node{
  border-color:rgba(var(--rgba-primary), .35);
  background:#f0fdfa;
}
.flow-chart__step--end .flow-chart__node{
  border-color:rgba(var(--rgba-primary), .28);
}
.flow-chart__num{
  position:absolute;
  left:-3.25rem;
  top:1.05rem;
  z-index:1;
  display:grid;
  place-items:center;
  width:2.25rem;
  height:2.25rem;
  border-radius:50%;
  font-size:14px;
  font-weight:700;
  line-height:1;
  color:#fff;
  background:var(--color-primary);
  box-shadow:0 0 0 4px var(--bg);
}
.flow-chart__step--end .flow-chart__num{
  background:var(--color-primary-dark);
}
.flow-chart__label{
  min-width:0;
  flex:1;
}
.flow-chart__title{
  margin:0;
  font-size:16px;
  font-weight:600;
  line-height:1.5;
  color:var(--color-text);
  letter-spacing:.02em;
}
.flow-chart__summary{
  margin:0.35em 0 0;
  font-size:14px;
  line-height:1.7;
  color:var(--muted);
}
.flow-chart__body{
  margin:0.65rem 0 0;
  padding:0.85rem 1rem;
  border-radius:8px;
  background:var(--color-bg);
  border:1px solid var(--line-soft);
  font-size:14px;
  line-height:1.85;
  color:var(--muted);
}
.flow-chart__body p{
  margin:0 0 0.85em;
}
.flow-chart__body p:last-child{
  margin-bottom:0;
}
.flow-chart__body ul{
  margin:0.5em 0 0.85em;
  padding-left:1.2em;
}
.flow-chart__body li + li{
  margin-top:0.35em;
}
.flow-chart__body li::marker{
  color:var(--color-primary);
}
.page--inner .article--flow .flow-section > h2{
  padding-bottom:0.65rem;
  border-bottom:3px solid rgba(var(--rgba-primary), .35);
}
.page--inner .article--flow .flow-excerpt{
  padding:1.15rem 1.2rem;
  border-radius:10px;
  background:var(--color-surface);
  border:1px solid var(--line);
  border-left:4px solid rgba(var(--rgba-gold), .65);
}
.page--inner .article--flow .flow-section--fee .fee-card{
  background:linear-gradient(165deg, #f0fdfa 0%, #fff 55%);
  border-color:rgba(var(--rgba-primary), .22);
  border-top:4px solid var(--color-primary);
}
.page--inner .article--flow .fee-card__num{
  color:var(--color-primary);
  font-weight:700;
}
@media (max-width:640px){
  .flow-chart__step{
    padding-left:2.75rem;
  }
  .flow-chart__num{
    left:-2.75rem;
    width:2rem;
    height:2rem;
    font-size:13px;
    top:1rem;
  }
  .flow-chart__step::before{
    left:0.95rem;
  }
  .flow-chart__step::after{
    left:0.55rem;
  }
  .flow-chart__node{
    padding:0.9rem 0.95rem;
  }
}

.difference__lead{
  margin:0 0 1.9rem;
  padding:1.1rem 1.2rem;
  border-radius:12px;
  background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border:1px solid #e8edf3;
  color:#334155;
}
.difference__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
.difference__card{
  padding:1.25rem 1.2rem 1.3rem;
  border-radius:14px;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow:0 8px 22px rgba(15,23,42,.05);
}
.difference__card-label{
  margin:0 0 .75rem;
  font-size:clamp(22px, 3.2vw, 28px);
  font-weight:700;
  line-height:1.1;
  letter-spacing:.06em;
  color:#0f766e;
}
.difference__card h2{
  margin:0 0 .75rem;
}
.difference__card p{
  margin:0;
  color:#475569;
}
.difference__list{
  margin:.8rem 0 0;
  color:#475569;
}
.difference__card--accent{
  border-color:rgba(15,118,110,.32);
  background:linear-gradient(180deg, #f9fefd 0%, #f8fafc 100%);
}
.difference__card--support{
  background:#fafafa;
  border-color:#e8e8e8;
  box-shadow:0 4px 16px rgba(15,23,42,.04);
}
.difference__card--support .difference__card-label{
  color:#94a3b8;
  letter-spacing:.1em;
}
.difference__card--support h2{
  font-size:clamp(15px, 1.85vw, 18px);
  font-weight:600;
  color:#64748b;
  line-height:1.45;
}
.difference__card--support p{
  font-size:14px;
  color:#64748b;
}
.difference__summary{
  margin-top:1.6rem;
  padding:1.1rem 1.15rem 1.2rem;
  border-radius:12px;
  border:1px solid #e5e7eb;
  background:#f8fafc;
}
.difference__summary h2{
  margin-top:0 !important;
}
.difference__summary p{
  margin:0;
  color:#334155;
}
.construction{
  margin:0 auto;
  max-width:640px;
  padding:2rem 1.5rem;
  text-align:center;
  border:1px solid var(--line);
  border-radius:0;
  background:var(--color-surface);
  box-shadow:none;
}
.construction__label{
  margin:0 0 .7rem;
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--color-primary);
}
.construction__title{
  margin:0;
  font-size:clamp(20px, 2.4vw, 24px);
  line-height:1.6;
  color:#0f172a;
}
.construction__text{
  margin:.95rem 0 0;
  color:#475569;
  line-height:1.9;
}
.article.article--flow > .container{
  max-width:880px;
}

.flow-excerpt{
  margin:0.75em 0 0;
  padding:1rem 1.05rem 1.05rem 1.15rem;
  border-radius:10px;
  border-left:4px solid rgba(15,118,110,.45);
  background:#fafafa;
}
.flow-excerpt p{
  margin:0;
  font-size:15px;
  line-height:2;
  color:#1e293b;
}
.flow-excerpt p + p{
  margin-top:1em;
}

.flow-section{
  margin:2.5em 0 0;
  padding:0;
}
.flow-section > h2{
  margin:0 0 1em;
  font-size:clamp(18px, 2.2vw, 21px);
  font-weight:600;
  color:var(--navy);
  letter-spacing:.03em;
  line-height:1.45;
  padding-bottom:0.65rem;
  border-bottom:2px solid rgba(15,118,110,.28);
}
.flow-section > p{
  margin:0 0 1.1em;
}
.flow-section > p:last-child{
  margin-bottom:0;
}
.flow-section__hint{
  margin:1rem 0 0;
  font-size:14px;
  color:#64748b;
}
.flow-section__hint a{
  color:var(--accent);
  font-weight:500;
}

.eval-abc-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:1rem;
  margin:1.35em 0 1.5em;
  padding:0;
  list-style:none;
}
.eval-abc-grid > li{
  margin:0;
  padding:0;
}
.eval-abc-card{
  margin:0;
  padding:1.2rem 1.15rem 1.25rem;
  border-radius:14px;
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow:0 6px 20px rgba(15,23,42,.05);
  position:relative;
  overflow:hidden;
}
.eval-abc-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  border-radius:14px 0 0 14px;
}
.eval-abc-card--a::before{background:linear-gradient(180deg, #14b8a6, #0f766e)}
.eval-abc-card--b::before{background:linear-gradient(180deg, #64748b, #475569)}
.eval-abc-card--c::before{background:linear-gradient(180deg, #d97706, #b45309)}
.eval-abc-card__mark{
  display:inline-grid;
  place-items:center;
  width:36px;
  height:36px;
  margin-bottom:0.65rem;
  border-radius:10px;
  font-size:18px;
  font-weight:700;
  letter-spacing:0;
  color:#fff;
  background:linear-gradient(135deg, #0f766e, #0d9488);
}
.eval-abc-card--b .eval-abc-card__mark{background:linear-gradient(135deg, #64748b, #475569)}
.eval-abc-card--c .eval-abc-card__mark{background:linear-gradient(135deg, #d97706, #b45309)}
.eval-abc-card__title{
  margin:0 0 0.5em;
  font-size:16px;
  font-weight:600;
  color:#0f172a;
  letter-spacing:.02em;
}
.eval-abc-card__text{
  margin:0;
  font-size:14px;
  line-height:1.85;
  color:#475569;
}

.flow-callout{
  margin:1.25em 0 0;
  padding:1rem 1.15rem;
  border-radius:12px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  font-size:14px;
  line-height:1.9;
  color:#334155;
}
.flow-callout--emph{
  background:linear-gradient(180deg, #f0fdfa 0%, #f8fafc 100%);
  border-color:rgba(15,118,110,.28);
  box-shadow:0 4px 18px rgba(15,118,110,.06);
}
.flow-callout__lead{
  margin:0 0 0.5em;
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  color:#0f766e;
}
.flow-callout p{
  margin:0;
}
.flow-callout p + p{
  margin-top:0.75em;
}

.flow-section--fee .fee-card{
  margin:1rem 0 0;
  padding:1.35rem 1.4rem 1.4rem;
  border-radius:14px;
  background:linear-gradient(165deg, #fff 0%, #f8fafc 100%);
  border:1px solid rgba(var(--rgba-primary),.14);
  border-top:3px solid rgba(212,165,116,.75);
  box-shadow:0 8px 24px rgba(15,23,42,.06);
  text-align:center;
}
.fee-card__amount{
  margin:0;
  font-size:clamp(22px, 3.5vw, 28px);
  font-weight:700;
  letter-spacing:.04em;
  color:var(--navy);
}
.fee-card__num{
  font-variant-numeric:tabular-nums;
}
.fee-card__tax{
  font-size:0.65em;
  font-weight:600;
  color:#64748b;
}
.fee-card__note{
  margin:0.75em 0 0;
  font-size:14px;
  color:#475569;
}
.fee-card__line{
  margin:0;
  font-size:clamp(17px, 2.6vw, 22px);
  font-weight:600;
  letter-spacing:.02em;
  line-height:1.45;
  color:var(--navy);
}

.flow-outline{
  margin:1em 0 0;
  padding-left:1.35em;
  font-size:15px;
  line-height:1.95;
  color:#374151;
}
.flow-outline li + li{
  margin-top:0.55em;
}

.section--topics .section__inner{
  max-width:720px;
}
.topics-preview{
  margin:1.75em auto 0;
  padding:0;
  list-style:none;
  max-width:640px;
  text-align:left;
}
.topics-preview li + li{
  margin-top:12px;
}
.topics-preview__link{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 16px;
  padding:16px 18px;
  border-radius:14px;
  text-decoration:none;
  color:inherit;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(var(--rgba-primary),.12);
  box-shadow:0 6px 18px rgba(15,23,42,.05);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.topics-preview__link:hover{
  transform:translateY(-2px);
  border-color:rgba(15,118,110,.35);
  box-shadow:0 12px 28px rgba(15,118,110,.1);
}
.topics-preview__text{
  flex:1;
  min-width:min(100%, 14rem);
  font-size:15px;
  font-weight:600;
  color:var(--navy);
  line-height:1.5;
}
.topics-preview__meta{
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
  color:#0d9488;
}
.topics-preview__more{
  margin:1.75em 0 0;
  text-align:center;
}

.topics-external-list{
  margin:1.5em 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line);
}
.topics-external-list li + li{
  border-top:1px solid var(--line-soft);
}
.topics-external-link{
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-rows:auto auto;
  column-gap:12px;
  row-gap:4px;
  align-items:center;
  padding:1.35rem 0;
  text-decoration:none;
  color:inherit;
  background:transparent;
  border:0;
  box-shadow:none;
  transition:color .2s ease;
}
.topics-external-link:hover{
  color:var(--color-primary);
}
.topics-external-link__title{
  grid-column:1 / -1;
  font-size:16px;
  font-weight:600;
  color:var(--color-text);
  line-height:1.55;
}
.topics-external-link:hover .topics-external-link__title{
  color:var(--color-primary);
}
.topics-external-link__url{
  font-size:12px;
  color:var(--muted-soft);
  letter-spacing:.02em;
}
.topics-external-link__arrow{
  font-size:16px;
  color:var(--color-primary);
  line-height:1;
}

.page--home .section--topics{
  background:var(--bg);
}
.page--home .section--topics .section__inner{
  position:relative;
  z-index:1;
}

.flow-source-note{
  margin:0 0 1.5em;
  padding:0 0 0 1rem;
  border-left:3px solid rgba(15,118,110,.35);
  border-radius:0;
  background:transparent;
  font-size:15px;
  line-height:1.95;
  color:#64748b;
}
.flow-meta{
  margin:-0.25em 0 2em;
  font-size:13px;
  font-weight:600;
  letter-spacing:.06em;
  color:#94a3b8;
}
.flow-joschis{
  margin:0 0 2.5em;
  padding:0;
}
.flow-joschis__intro{
  margin:0 0 0.35rem;
}
.flow-joschis__intro .flow-meta{
  margin:0 0 0.35rem;
}
.flow-joschis__h2{
  margin:0 0 1em;
  font-size:clamp(18px, 2.2vw, 21px);
  font-weight:600;
  color:var(--navy);
  letter-spacing:.03em;
  line-height:1.45;
  padding-bottom:0.65rem;
  border-bottom:2px solid rgba(15,118,110,.28);
}
.flow-joschis__guideline-title{
  margin:1.1em 0 0.45em;
  font-size:clamp(16px, 1.85vw, 18px);
  font-weight:600;
  color:var(--navy);
  letter-spacing:.02em;
  line-height:1.45;
}
.flow-joschis__intro + .flow-joschis__guideline-title{
  margin-top:0.35em;
}
.flow-joschis__guideline-links{
  margin:0 0 1.35rem;
}
.flow-joschis__guideline-links p{
  margin:0.35em 0 0;
  font-size:clamp(15px, 1.2vw, 16px);
  line-height:2;
  color:#374151;
}
.flow-joschis__guideline-links p:first-child{
  margin-top:0;
}
.flow-joschis__list{
  margin:0;
  padding:0;
  list-style:none;
}
.flow-joschis__item{
  margin:0 0 28px;
  padding:0;
}
.flow-joschis__item:last-child{
  margin-bottom:0;
}
.flow-joschis__panel{
  margin:0;
  padding:clamp(1.35rem, 3vw, 1.85rem) clamp(1.25rem, 3vw, 1.85rem) clamp(1.45rem, 3vw, 1.95rem);
  border-radius:12px;
  background:#fff;
  border:1px solid #e8e8e8;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.flow-joschis__head{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:0.45em 1.1rem;
  margin:0 0 1.15rem;
  padding-bottom:1rem;
  border-bottom:1px solid #f1f5f9;
}
.flow-joschis__num{
  margin:0;
  font-size:13px;
  font-weight:700;
  letter-spacing:.14em;
  color:#9ca3af;
}
.flow-joschis__title{
  margin:0;
  flex:1;
  min-width:10ch;
  font-size:clamp(1.2rem, 2.5vw, 1.45rem);
  font-weight:700;
  color:#111827;
  letter-spacing:.02em;
  line-height:1.3;
}
.flow-joschis__body{
  font-size:clamp(15px, 1.2vw, 16px);
  line-height:2;
  color:#374151;
  max-width:42em;
}
.flow-joschis__body p{
  margin:0 0 1.1em;
}
.flow-joschis__body p:last-child{
  margin-bottom:0;
}
.flow-joschis__lead{
  margin:0 0 1.35rem;
  font-size:clamp(15px, 1.2vw, 16px);
  line-height:1.95;
  color:#1f2937;
}
.flow-joschis__note{
  margin:1.15rem 0 0 !important;
  padding:0.85rem 1rem;
  border-radius:8px;
  background:#f9fafb;
  border:1px solid #ececec;
  font-size:15px;
  line-height:1.75;
  color:#4b5563;
}
.flow-joschis__split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.25rem 2rem;
  margin:0.35rem 0 0;
  max-width:none;
}
.flow-joschis__col{
  padding:1.1rem 1.15rem 1.2rem;
  border-radius:10px;
  background:#fafafa;
  border:1px solid #ececec;
}
.flow-joschis__subhead{
  margin:0 0 0.85rem;
  font-size:15px;
  font-weight:700;
  color:#111827;
  letter-spacing:.02em;
}
.flow-joschis__col .flow-joschis__subhead + .flow-joschis__h4{
  margin-top:0;
}
.flow-joschis__h4{
  margin:1.1rem 0 0.45rem;
  font-size:14px;
  font-weight:700;
  color:#0f766e;
  letter-spacing:.02em;
}
.flow-joschis__bullets{
  margin:0 0 0.35em;
  padding-left:1.2em;
  font-size:14px;
  line-height:1.95;
  color:#4b5563;
}
.flow-joschis__bullets li + li{
  margin-top:0.5em;
}
.flow-joschis__item--long .flow-joschis__body{
  max-width:none;
}
.flow-joschis__item--long .flow-joschis__panel{
  padding-bottom:clamp(1.5rem, 3vw, 2rem);
}
@media (max-width:720px){
  .flow-joschis__split{
    grid-template-columns:1fr;
  }
}
.flow-cta{
  margin:2.5em 0 0;
  padding:1.5rem 1.6rem 1.55rem;
  border-radius:12px;
  border:1px solid #e8e8e8;
  background:#fff;
  font-size:15px;
  line-height:1.95;
  color:#374151;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.flow-cta p{
  margin:0 0 0.75em;
}
.flow-cta p:last-child{
  margin-bottom:0;
}
.flow-cta__lead{
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  color:#6b7280;
  margin-bottom:0.3em !important;
}
.flow-cta__news{
  margin:0.25em 0 1rem !important;
  font-size:14px;
  font-weight:600;
  color:#0f766e;
}
.article__ref{
  margin-top:1.5em;
  font-size:13px;
  color:var(--muted-soft);
  line-height:1.75;
}

.hero__quals{
  margin:0.35em 0 0;
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  justify-content:center;
  max-width:720px;
}
.hero__quals span{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:650;
  letter-spacing:.04em;
  color:#0f172a;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(15,118,110,.25);
  box-shadow:0 2px 12px rgba(15,23,42,.06);
}
.hero__quals-note{
  margin:0.65em 0 0;
  max-width:640px;
  font-size:12px;
  line-height:1.75;
  color:#64748b;
  letter-spacing:.02em;
}

.site-cards{
  display:grid;
  gap:18px;
  margin-top:36px;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  max-width:960px;
  margin-left:auto;
  margin-right:auto;
  text-align:left;
}
.section--cards .section__inner{
  max-width:1000px;
}
.site-card{
  display:block;
  padding:26px 22px;
  border-radius:16px;
  border:1px solid rgba(var(--rgba-primary),.14);
  border-top:2px solid rgba(212,165,116,.55);
  background:var(--panel);
  backdrop-filter:blur(10px);
  text-decoration:none;
  color:inherit;
  box-shadow:0 8px 28px rgba(10,22,40,.06);
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.site-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 44px rgba(10,22,40,.1);
  border-color:rgba(212,165,116,.4);
}
.site-card__label{
  font-size:11px;
  letter-spacing:.14em;
  color:var(--gold-deep);
  margin-bottom:10px;
}
.site-card__title{
  margin:0 0 10px;
  font-size:18px;
  font-weight:600;
  color:var(--navy);
  line-height:1.4;
}
.site-card__text{
  margin:0;
  font-size:14px;
  color:var(--muted);
  line-height:1.8;
}
.site-card__arrow{
  margin-top:14px;
  font-size:13px;
  color:var(--accent);
  letter-spacing:.04em;
}

.site-cards--bento{
  grid-template-columns:repeat(12, 1fr);
  gap:20px;
  max-width:1100px;
  margin-top:44px;
}
.site-cards--bento .site-card{
  min-height:100%;
  padding:clamp(24px, 3vw, 32px) clamp(22px, 2.6vw, 30px);
  border-radius:20px;
  border:1px solid rgba(255,255,255,.82);
  border-top:2px solid rgba(13,148,136,.42);
  background:linear-gradient(165deg, rgba(255,255,255,.94) 0%, rgba(248,250,252,.88) 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 16px 36px rgba(15,23,42,.07);
}
.site-cards--bento .site-card:hover{
  transform:translateY(-6px);
  border-top-color:rgba(212,165,116,.55);
  box-shadow:
    0 1px 0 rgba(255,255,255,1) inset,
    0 24px 52px rgba(15,118,110,.14);
}
.site-cards--bento .site-card__title{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:.04em;
}
.site-cards--bento .site-card:nth-child(1){grid-column:span 8}
.site-cards--bento .site-card:nth-child(2){grid-column:span 4}
.site-cards--bento .site-card:nth-child(3){grid-column:span 4}
.site-cards--bento .site-card:nth-child(4){grid-column:span 8}
.site-cards--bento .site-card:nth-child(5){grid-column:span 6}
.site-cards--bento .site-card:nth-child(6){grid-column:span 6}

@media (max-width: 1024px){
  .container{width:min(var(--max), calc(100% - 42px))}
  .top__inner{
    min-height:68px;
    flex-direction:row;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    padding:10px 0;
    position:relative;
  }
  .top.is-menu-open{
    z-index:105;
    /* backdrop-filter は fixed 子孫の包含ブロックを作り、オーバーレイがヘッダー内に閉じ込められる。
       メニュー展開中は無効化してビューポート基準に戻す。 */
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .top__menu-btn{
    display:flex !important;
    flex:0 0 44px;
    flex-shrink:0;
    align-items:center;
    justify-content:center;
    opacity:1;
    visibility:visible;
  }
  .top__nav-layer{
    display:block;
    position:fixed;
    inset:0;
    z-index:100;
    pointer-events:none;
    visibility:hidden;
    overflow:clip;
  }
  .top.is-menu-open .top__nav-layer{
    pointer-events:auto;
    visibility:visible;
  }
  .top__nav-scrim{
    display:block;
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.18);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    opacity:0;
    transition:opacity .42s cubic-bezier(.22,1,.36,1);
  }
  .top.is-menu-open .top__nav-scrim{
    opacity:1;
  }
  .top__nav-panel{
    display:block;
    position:relative;
    z-index:1;
    padding:max(28px, env(safe-area-inset-top)) 28px 20px;
    flex-shrink:0;
    border-bottom:1px solid rgba(var(--rgba-primary),.12);
  }
  .top__nav-panel__eyebrow{
    margin:0;
    font-size:11px;
    font-weight:700;
    letter-spacing:.34em;
    text-transform:uppercase;
    color:var(--color-primary);
  }
  .top__nav-panel__org{
    margin:10px 0 0;
    font-size:12px;
    letter-spacing:.12em;
    color:var(--color-text-muted);
    line-height:1.5;
  }
  .top__nav-panel__line{
    margin-top:18px;
    width:min(120px, 40vw);
    height:2px;
    border-radius:2px;
    background:linear-gradient(90deg, var(--color-gold), var(--color-primary), transparent);
  }
  .top__nav{
    position:absolute;
    top:0;
    right:0;
    width:min(100%, 100vw);
    max-width:100vw;
    height:100%;
    height:100dvh;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:0 0 max(24px, env(safe-area-inset-bottom));
    background:
      radial-gradient(ellipse 70% 45% at 100% 0%, rgba(var(--rgba-primary),.1), transparent 58%),
      radial-gradient(ellipse 55% 38% at 0% 100%, rgba(var(--rgba-gold),.14), transparent 52%),
      linear-gradient(180deg, var(--color-surface) 0%, var(--color-bg) 100%);
    color:var(--color-text);
    font-size:15px;
    letter-spacing:.04em;
    box-shadow:-16px 0 40px rgba(15,23,42,.1);
    border-left:1px solid rgba(var(--rgba-primary),.14);
    transform:translate3d(100%, 0, 0);
    transition:transform .48s cubic-bezier(.22,1,.36,1);
    overflow:hidden auto;
    -webkit-overflow-scrolling:touch;
    will-change:transform;
  }
  .top.is-menu-open .top__nav{
    transform:translate3d(0, 0, 0);
  }
  .top__nav::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:
      linear-gradient(rgba(var(--rgba-primary),.06) 1px, transparent 1px),
      linear-gradient(90deg, rgba(var(--rgba-primary),.06) 1px, transparent 1px);
    background-size:48px 48px;
    mask-image:linear-gradient(180deg, rgba(0,0,0,.35), transparent 72%);
    pointer-events:none;
  }
  .top__nav-list{
    display:flex;
    flex-direction:column;
    flex:1;
    gap:2px;
    padding:8px 20px 32px;
    position:relative;
    z-index:1;
  }
  .top__nav-link{
    display:block;
    padding:16px 12px;
    border-radius:14px;
    color:var(--color-text);
    opacity:0;
    transform:translate3d(28px, 0, 0);
    transition:
      color .25s ease,
      background .25s ease,
      opacity .4s cubic-bezier(.22,1,.36,1),
      transform .4s cubic-bezier(.22,1,.36,1);
    transition-delay:calc(.06s * var(--nav-i, 1) + .14s);
  }
  .top.is-menu-open .top__nav-link{
    opacity:1;
    transform:translate3d(0, 0, 0);
  }
  .top__nav-link__text{
    font-family:var(--font-display);
    font-size:clamp(17px, 4.6vw, 22px);
    font-weight:600;
    letter-spacing:.06em;
    line-height:1.35;
    color:var(--color-text);
  }
  .top__nav-link::after{
    display:none;
  }
  .top__nav-link:hover{
    color:var(--color-primary-dark);
    background:rgba(var(--rgba-primary),.08);
  }
  .top__nav-link:hover .top__nav-link__text{
    color:var(--color-primary-dark);
  }
  .top__nav-link[aria-current="page"]{
    color:var(--color-primary-dark);
    font-weight:600;
    background:linear-gradient(90deg, rgba(var(--rgba-primary),.12), rgba(var(--rgba-gold),.1));
    box-shadow:inset 3px 0 0 var(--color-gold);
  }
  .top__nav-link[aria-current="page"] .top__nav-link__text{
    color:var(--color-primary-dark);
  }
  .brand__sub{
    display:none;
  }
  a.brand{
    gap:10px;
  }
  .brand__mark{
    width:38px;
    height:38px;
  }
  .site-cards--bento{
    grid-template-columns:1fr;
  }
  .site-cards--bento .site-card:nth-child(n){
    grid-column:1 / -1;
  }
  .section{
    padding:64px 0;
  }
  .hero{
    padding:74px 0 66px;
  }
  .hero--editorial,
  .hero--cinematic,
  .hero.hero--editorial.section{
    padding:0;
  }
  .hero--flagship{
    padding:88px 0 72px;
  }
  .hero--flagship.hero--videobg{
    min-height:min(86vh, 780px);
    padding:clamp(52px, 8vh, 88px) 0 clamp(40px, 6vh, 68px);
  }
}

@media (max-width: 640px){
  .container{width:min(var(--max), calc(100% - 28px))}
  .construction{
    padding:1.5rem 1rem;
  }
  .hero__title{
    font-size:clamp(28px, 8.2vw, 40px);
  }
  .section__title{
    font-size:clamp(22px, 7vw, 30px);
  }
  .card{
    padding:22px 18px;
  }
  .listing__headline{
    font-size:20px;
  }
  .contact__mail{
    font-size:16px;
  }
  .hero__meta{
    gap:8px;
  }
  .hero__meta span{
    min-height:30px;
    font-size:10px;
    padding:0 10px;
  }
  .page--home .hero--flagship.hero--power,
  .page--home .hero--flagship.hero--videobg{
    min-height:auto;
    padding:clamp(36px, 9vh, 56px) 0 clamp(28px, 5vh, 44px);
  }
  .page--home .hero--power .hero__identity,
  .page--home .hero--flagship.hero--videobg .hero__copy{
    padding:18px 16px 20px;
    border-radius:20px;
  }
  .page--home .hero--power .hero__identity .hero__title,
  .page--home .hero--flagship.hero--videobg .hero__title{
    font-size:clamp(20px, 6.2vw, 30px);
    letter-spacing:.04em;
    line-height:1.06;
  }
  .page--home .hero__title-line{
    line-height:1.08;
  }
  .page--home .hero__title-line:first-child{
    white-space:nowrap;
    font-size:clamp(17px, 5vw, 26px);
    letter-spacing:.03em;
  }
  .page--home .hero__title-line + .hero__title-line{
    margin-top:-0.08em;
    letter-spacing:.05em;
  }
  .page--home .hero--power .hero__identity .hero__badge,
  .page--home .hero--flagship.hero--videobg .hero__badge{
    font-size:11px;
    padding:6px 12px;
  }
  .page--home .hero--power .hero__identity .hero__eyebrow,
  .page--home .hero--flagship.hero--videobg .hero__eyebrow{
    font-size:11px;
    margin-bottom:4px;
  }
  .page--home .hero--power .hero__identity .hero__tagline--solo,
  .page--home .hero--flagship.hero--videobg .hero__tagline--solo{
    gap:8px;
    padding:10px 0 0;
    font-size:13px;
    line-height:1.7;
  }
  .page--home .hero--power .hero__identity .hero__accentline,
  .page--home .hero--flagship.hero--videobg .hero__accentline{
    margin-top:6px;
    width:min(200px, 56%);
  }
  .page--home .hero--power .hero__identity .hero__cta,
  .page--home .hero--flagship.hero--videobg .hero__cta{
    margin-top:14px;
  }
  .page--home .hero--power .hero__identity .hero__cta--split,
  .page--home .hero--flagship.hero--videobg .hero__cta--split{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .page--home .hero--power .hero__identity .hero__cta .btn,
  .page--home .hero--flagship.hero--videobg .hero__cta .btn{
    width:100%;
    min-height:44px;
    font-size:13px;
  }
}
@media (max-width: 360px){
  .page--home .hero__title-line:first-child{
    font-size:clamp(15px, 4.5vw, 20px);
    letter-spacing:.02em;
  }
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .op,
  .page-loader{
    display:none !important;
  }
  .hero__constellation-glow,
  .hero__constellation-core{
    animation:none;
  }
  body::before,
  body::after,
  .hero__title,
  .hero__lead,
  .hero__image,
  .hero__video{
    animation:none;
  }
  .ticker__track{
    animation:none;
  }
  .card,
  .hero__figure,
  .hero__image,
  .hero__video,
  .top__nav a::after,
  .top__nav-link,
  .top__nav-scrim,
  .top__menu-btn__bar,
  .site-card,
  .btn{
    transition:none;
  }
  .topics-preview__link,
  .topics-external-link{
    transition:none;
  }
  .topics-preview__link:hover,
  .topics-external-link:hover{
    transform:none;
  }
  .card,
  .hero__figure{
    transform:none;
  }
  .hero--flagship.hero--power .hero__qual:hover,
  .hero--flagship.hero--videobg .hero__copy{
    transform:none;
  }
  .hero--flagship.hero--power .hero__accentline,
  .hero--flagship.hero--videobg .hero__accentline{
    animation:none !important;
  }
  .site-card:hover{
    transform:none;
  }
  .site-cards--bento .site-card:hover{
    transform:none;
  }
  .btn:hover{
    transform:none;
  }
}

.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .7s ease var(--reveal-delay, 0s), transform .7s ease var(--reveal-delay, 0s);
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

@keyframes orbFloat{
  0%{transform:translate3d(0, 0, 0)}
  100%{transform:translate3d(2.5vw, 2.5vw, 0)}
}

@keyframes imageDrift{
  0%{transform:scale(1.01) translateY(0)}
  100%{transform:scale(1.04) translateY(-6px)}
}

@keyframes titleLift{
  0%{
    opacity:0;
    transform:translateY(16px);
  }
  100%{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes opRise{
  0%{
    opacity:0;
    transform:translateY(16px) scale(.98);
  }
  100%{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

@keyframes opFade{
  from{opacity:0}
  to{opacity:1}
}

@keyframes opGlow{
  0%{
    opacity:0;
    filter:blur(4px);
    transform:translateY(8px);
  }
  100%{
    opacity:1;
    filter:blur(0);
    transform:translateY(0);
  }
}

@keyframes opLineGrow{
  from{width:0; opacity:0}
  to{width:min(42vw, 420px); opacity:1}
}

@keyframes opSweep{
  from{transform:translateY(-120%)}
  to{transform:translateY(120%)}
}

@keyframes metaFloat{
  0%, 100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}

@keyframes heroAccentShine{
  0%{background-position:0% 50%}
  100%{background-position:200% 50%}
}

@keyframes tickerFlow{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
