:root{
  --navy:#0b1a2e;
  --navy-2:#12243d;
  --navy-3:#1a3355;
  --gold:#c9a876;
  --gold-soft:#d9be91;
  --gold-deep:#a98652;
  --ivory:#f6f1e8;
  --ivory-2:#ece3d1;
  --ink:#141a22;
  --muted:#7a8594;
  --line:rgba(201,168,118,.28);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:"Noto Sans JP","Helvetica Neue",Arial,sans-serif;
  color:var(--ink);background:var(--ivory);
  line-height:1.9;font-weight:400;letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:opacity .3s,color .3s}
a:hover{opacity:.75}

/* ===== Header ===== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:22px 48px;
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(11,26,46,0);
  transition:background .4s,padding .4s,box-shadow .4s;
}
.site-header.scrolled,.site-header.solid{
  background:rgba(11,26,46,.94);
  backdrop-filter:blur(12px);
  padding:16px 48px;
  box-shadow:0 1px 0 rgba(201,168,118,.2);
}
.brand{display:inline-flex;align-items:center;color:var(--ivory)}
.brand-logo{
  height:44px;width:auto;
  filter:brightness(0) invert(1);
  opacity:.96;transition:opacity .3s,filter .3s;
}
.brand:hover .brand-logo{opacity:.8}
.footer-brand .brand-logo{height:40px}

.nav{display:flex;align-items:center;gap:42px}
.nav a{
  color:var(--ivory);font-size:13px;letter-spacing:.18em;
  font-weight:500;position:relative;
}
.nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:center;transition:transform .4s;
}
.nav a:hover::after{transform:scaleX(1)}
.nav-toggle{display:none;background:none;border:none;color:var(--ivory);cursor:pointer;font-size:22px}

/* ===== Hero (Home) ===== */
.hero{
  position:relative;min-height:100vh;
  background:
    radial-gradient(ellipse at 20% 30%,rgba(201,168,118,.18),transparent 55%),
    radial-gradient(ellipse at 80% 70%,rgba(26,51,85,.6),transparent 60%),
    linear-gradient(135deg,#08141f 0%,#0b1a2e 40%,#142640 100%);
  color:var(--ivory);display:flex;align-items:center;overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(201,168,118,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(201,168,118,.04) 1px,transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(ellipse at center,black 40%,transparent 80%);
}
.hero::after{
  content:"";position:absolute;right:-200px;top:-200px;
  width:700px;height:700px;border-radius:50%;
  background:radial-gradient(circle,rgba(201,168,118,.12),transparent 70%);
  animation:float 14s ease-in-out infinite;
}
@keyframes float{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(-30px,40px)}
}
.hero-inner{
  position:relative;z-index:2;
  max-width:1280px;width:100%;margin:0 auto;padding:160px 48px 120px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:80px;align-items:center;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:14px;color:var(--gold);
  font-family:"Cormorant Garamond",serif;
  font-size:15px;letter-spacing:.3em;font-weight:500;margin-bottom:32px;
}
.hero-eyebrow::before{content:"";width:48px;height:1px;background:var(--gold)}
.hero h1{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:clamp(32px,4.6vw,66px);line-height:1.35;letter-spacing:.04em;margin-bottom:36px;
}
.hero h1 .accent{color:var(--gold)}
.hero h1 .small{
  display:block;font-size:.6em;color:var(--gold-soft);
  letter-spacing:.2em;font-weight:400;margin-top:20px;
}
.hero-lead{
  max-width:560px;font-size:16px;line-height:2.1;
  color:rgba(246,241,232,.82);margin-bottom:48px;
}
.hero-ctas{display:flex;gap:20px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:14px;
  padding:18px 40px;font-size:13px;letter-spacing:.22em;font-weight:500;
  transition:all .4s cubic-bezier(.2,.8,.2,1);cursor:pointer;border:none;
}
.btn-gold{background:var(--gold);color:var(--navy);border:1px solid var(--gold)}
.btn-gold:hover{background:var(--gold-soft);opacity:1;transform:translateY(-2px);box-shadow:0 20px 40px -20px rgba(201,168,118,.6)}
.btn-outline{background:transparent;color:var(--ivory);border:1px solid rgba(246,241,232,.45)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);opacity:1}

/* ===== Hero Side Panel ===== */
.hero-side{
  border-left:1px solid var(--line);padding-left:48px;
}
.hero-side .label{
  font-family:"Cormorant Garamond",serif;
  font-size:13px;letter-spacing:.3em;color:var(--gold);
  margin-bottom:16px;text-transform:uppercase;
}
.hero-side .quote{
  font-family:"Noto Serif JP",serif;
  font-size:18px;line-height:2;color:var(--ivory);
  font-weight:300;margin-bottom:16px;
  padding-left:18px;border-left:2px solid var(--gold);
}
.hero-side .quote-cite{
  font-size:11px;letter-spacing:.15em;color:rgba(246,241,232,.55);
  padding-left:18px;margin-bottom:40px;
}
.core-list{
  list-style:none;padding:28px 0 0;border-top:1px solid var(--line);
}
.core-list .label{margin-bottom:22px}
.core-list li{
  display:flex;align-items:flex-start;gap:18px;
  padding:14px 0;border-bottom:1px solid rgba(201,168,118,.12);
}
.core-list li:last-child{border-bottom:none}
.core-list .num{
  font-family:"Cormorant Garamond",serif;
  font-size:20px;color:var(--gold);font-weight:500;
  min-width:28px;line-height:1.4;
}
.core-list .name{
  color:var(--ivory);font-size:14px;line-height:1.5;
}
.core-list .name small{
  display:block;font-family:"Cormorant Garamond",serif;
  font-size:11px;letter-spacing:.18em;
  color:rgba(246,241,232,.5);margin-top:3px;font-style:italic;
}
.established{
  margin-top:32px;display:flex;align-items:baseline;gap:14px;
  font-family:"Cormorant Garamond",serif;
}
.established .t{font-size:11px;letter-spacing:.3em;color:var(--gold)}
.established .y{font-size:28px;color:var(--ivory);font-weight:400}

.hero-scroll{
  position:absolute;bottom:32px;left:50%;transform:translateX(-50%);
  color:var(--gold);font-size:11px;letter-spacing:.3em;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  font-family:"Cormorant Garamond",serif;
}
.hero-scroll .line{width:1px;height:52px;background:var(--gold);position:relative;overflow:hidden}
.hero-scroll .line::after{
  content:"";position:absolute;top:0;left:0;width:100%;height:30%;
  background:var(--ivory);animation:scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{top:-30%}50%,100%{top:100%}
}

/* ===== Sub page hero ===== */
.sub-hero{
  position:relative;padding:200px 48px 100px;
  background:
    radial-gradient(ellipse at 20% 30%,rgba(201,168,118,.16),transparent 55%),
    linear-gradient(135deg,#08141f 0%,#0b1a2e 50%,#142640 100%);
  color:var(--ivory);overflow:hidden;
}
.sub-hero::before{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(201,168,118,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(201,168,118,.04) 1px,transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%);
}
.sub-hero-inner{position:relative;z-index:2;max-width:1280px;margin:0 auto}
.sub-hero .eyebrow{
  display:inline-flex;align-items:center;gap:14px;color:var(--gold);
  font-family:"Cormorant Garamond",serif;font-size:14px;letter-spacing:.3em;
  font-weight:500;margin-bottom:22px;text-transform:uppercase;
}
.sub-hero .eyebrow::before{content:"";width:42px;height:1px;background:var(--gold)}
.sub-hero h1{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:clamp(30px,4vw,56px);line-height:1.4;letter-spacing:.04em;
  color:var(--ivory);margin-bottom:24px;
}
.sub-hero p.lead{
  max-width:680px;color:rgba(246,241,232,.8);
  font-size:16px;line-height:2;margin-bottom:36px;
}
.breadcrumb{
  display:flex;gap:12px;align-items:center;
  font-family:"Cormorant Garamond",serif;
  font-size:12px;letter-spacing:.22em;color:rgba(246,241,232,.5);
  text-transform:uppercase;
}
.breadcrumb a{color:var(--gold)}
.breadcrumb .sep{color:rgba(201,168,118,.4)}

/* ===== Section base ===== */
section{position:relative}
.section{padding:120px 48px}
.section-sm{padding:80px 48px}
.container{max-width:1280px;margin:0 auto}
.container-narrow{max-width:900px;margin:0 auto}

.section-head{margin-bottom:80px;text-align:center}
.eyebrow{
  display:inline-flex;align-items:center;gap:14px;color:var(--gold-deep);
  font-family:"Cormorant Garamond",serif;
  font-size:14px;letter-spacing:.3em;font-weight:500;
  margin-bottom:22px;text-transform:uppercase;
}
.eyebrow::before,.eyebrow::after{content:"";width:32px;height:1px;background:var(--gold-deep)}
.eyebrow.start{justify-content:flex-start}
.eyebrow.start::after{display:none}
.section-title{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:clamp(28px,3.4vw,46px);line-height:1.5;letter-spacing:.03em;
  color:var(--navy);margin-bottom:24px;
}
.section-sub{max-width:680px;margin:0 auto;color:#4a5566;font-size:15px;line-height:2.05}

/* ===== Prose (long-form body) ===== */
.prose{color:#2d3644;font-size:15.5px;line-height:2.1}
.prose h2{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:32px;line-height:1.55;color:var(--navy);
  margin:64px 0 28px;padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.prose h3{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:22px;color:var(--navy);
  margin:48px 0 20px;padding-left:18px;
  border-left:3px solid var(--gold);line-height:1.55;
}
.prose h4{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:18px;color:var(--gold-deep);margin:36px 0 14px;
}
.prose p{margin-bottom:26px}
.prose p.lead{
  font-size:18px;color:var(--navy);line-height:2;
  padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  margin:0 0 40px;
}
.prose .dropcap{
  float:left;font-family:"Noto Serif JP",serif;
  font-size:68px;line-height:.85;padding:10px 16px 0 0;
  color:var(--gold-deep);font-weight:500;
}
.prose ul,.prose ol{margin:20px 0 28px;padding-left:22px}
.prose li{margin-bottom:10px}
.prose blockquote{
  margin:36px 0;padding:28px 36px;
  background:var(--ivory-2);border-left:3px solid var(--gold);
  font-family:"Noto Serif JP",serif;font-size:16px;line-height:2;
}
.prose img{margin:32px 0;border:1px solid var(--line)}

/* ===== Philosophy section ===== */
.philosophy{background:var(--ivory)}
.philosophy-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.philosophy-visual{
  position:relative;aspect-ratio:4/5;
  background:linear-gradient(135deg,#08141f 0%,var(--navy-3) 100%);
  padding:32px;
  box-shadow:inset 0 0 120px rgba(0,0,0,.45);
}
.philosophy-visual::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 30% 20%,rgba(201,168,118,.12),transparent 60%),
    repeating-linear-gradient(45deg,transparent 0,transparent 40px,rgba(201,168,118,.04) 40px,rgba(201,168,118,.04) 41px);
}
.philosophy-visual .mat{
  position:relative;z-index:2;
  width:100%;height:100%;
  background:#f2ead3;
  padding:22px 22px 48px;
  display:flex;flex-direction:column;align-items:center;
  box-shadow:
    0 30px 60px -20px rgba(0,0,0,.65),
    0 10px 30px rgba(0,0,0,.35),
    inset 0 0 0 1px var(--gold);
}
.philosophy-visual .mat::before{
  content:"";position:absolute;inset:10px;
  border:1px solid rgba(169,134,82,.35);pointer-events:none;
}
.philosophy-visual .mat img{
  flex:1;min-height:0;width:100%;
  object-fit:contain;object-position:center top;
  filter:sepia(.08) contrast(1.03) brightness(.98);
  mix-blend-mode:multiply;
}
.philosophy-visual .caption{
  margin-top:14px;text-align:center;
  font-family:"Cormorant Garamond",serif;
  font-size:10px;letter-spacing:.32em;color:#7a6a55;
  text-transform:uppercase;line-height:1.5;
}
.philosophy-visual .caption em{
  display:block;font-style:italic;color:#5a4f3b;
  font-size:11px;letter-spacing:.22em;margin-bottom:3px;
}
.philosophy-visual .corner{position:absolute;width:20px;height:20px;border:2px solid var(--gold);z-index:3}
.philosophy-visual .corner.tl{top:-10px;left:-10px;border-right:none;border-bottom:none}
.philosophy-visual .corner.tr{top:-10px;right:-10px;border-left:none;border-bottom:none}
.philosophy-visual .corner.bl{bottom:-10px;left:-10px;border-right:none;border-top:none}
.philosophy-visual .corner.br{bottom:-10px;right:-10px;border-left:none;border-top:none}
.philosophy-text h2{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:clamp(26px,2.8vw,38px);line-height:1.55;color:var(--navy);margin-bottom:36px;
}
.philosophy-text h2 em{font-style:normal;color:var(--gold-deep)}
.philosophy-text p{color:#3a4554;font-size:15px;line-height:2.1;margin-bottom:20px}

/* ===== Services section ===== */
.services{background:var(--navy);color:var(--ivory);position:relative;overflow:hidden}
.services::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 85% 10%,rgba(201,168,118,.1),transparent 50%),
    radial-gradient(ellipse at 10% 90%,rgba(201,168,118,.06),transparent 50%);
}
.services .section-title{color:var(--ivory)}
.services .section-sub{color:rgba(246,241,232,.75)}
.services .eyebrow{color:var(--gold)}
.services .eyebrow::before,.services .eyebrow::after{background:var(--gold)}
.services-grid{
  position:relative;z-index:2;
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
}
.service-card{
  position:relative;padding:56px 40px 48px;
  background:rgba(246,241,232,.025);
  border:1px solid rgba(201,168,118,.22);
  transition:all .5s cubic-bezier(.2,.8,.2,1);overflow:hidden;
}
.service-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  transform:scaleX(0);transition:transform .6s;
}
.service-card:hover{
  background:rgba(201,168,118,.06);transform:translateY(-8px);border-color:var(--gold);
}
.service-card:hover::before{transform:scaleX(1)}
.service-num{
  font-family:"Cormorant Garamond",serif;
  font-size:14px;letter-spacing:.3em;color:var(--gold);
  margin-bottom:24px;display:flex;align-items:center;gap:12px;
}
.service-num::after{content:"";flex:1;height:1px;background:var(--line)}
.service-icon{
  width:64px;height:64px;margin-bottom:28px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--gold);color:var(--gold);
}
.service-icon svg{width:28px;height:28px}
.service-card h3{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:22px;line-height:1.55;color:var(--ivory);margin-bottom:8px;
}
.service-card .en{
  font-family:"Cormorant Garamond",serif;
  font-size:13px;letter-spacing:.22em;color:var(--gold-soft);
  margin-bottom:24px;font-style:italic;
}
.service-card p{color:rgba(246,241,232,.72);font-size:14px;line-height:2}
.service-card .more{
  display:inline-flex;align-items:center;gap:10px;margin-top:28px;
  color:var(--gold);font-size:12px;letter-spacing:.22em;
}
.service-card .more::after{content:"→";transition:transform .4s}
.service-card:hover .more::after{transform:translateX(6px)}

/* ===== Why section ===== */
.why{background:var(--ivory-2)}
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px;margin-top:20px}
.why-item{
  display:flex;gap:28px;padding:40px;
  background:var(--ivory);border-left:3px solid var(--gold);
}
.why-item .num{
  font-family:"Cormorant Garamond",serif;
  font-size:52px;font-weight:400;color:var(--gold);line-height:1;flex-shrink:0;
}
.why-item h3{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:19px;color:var(--navy);margin-bottom:14px;
}
.why-item p{color:#4a5566;font-size:14px;line-height:1.95}

/* ===== Company section ===== */
.company{background:var(--ivory)}
.company-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.company-intro h2{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:34px;line-height:1.55;color:var(--navy);margin-bottom:28px;
}
.company-intro p{color:#4a5566;font-size:14px;line-height:2.05;margin-bottom:20px}
.company-badge{
  margin-top:40px;padding:28px;
  border:1px solid var(--line);background:#fafaf3;
  font-family:"Cormorant Garamond",serif;
}
.company-badge .est{font-size:12px;letter-spacing:.3em;color:var(--gold-deep)}
.company-badge .year{font-size:48px;font-weight:500;color:var(--navy);line-height:1;margin-top:6px}
.company-table{width:100%;border-collapse:collapse;font-size:14px}
.company-table th,.company-table td{
  padding:22px 0;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);
}
.company-table th{
  width:170px;font-weight:500;color:var(--gold-deep);
  font-family:"Noto Serif JP",serif;letter-spacing:.05em;
}
.company-table td{color:#3a4554;line-height:1.9}

/* ===== Case list ===== */
.case-list{display:grid;gap:56px}
.case-item{
  padding:56px 56px 48px;background:#fff;
  border:1px solid var(--line);border-left:4px solid var(--gold);
  transition:all .4s;position:relative;
}
.case-item:hover{transform:translateY(-4px);box-shadow:0 30px 60px -30px rgba(11,26,46,.2)}
.case-item .num{
  font-family:"Cormorant Garamond",serif;
  font-size:13px;letter-spacing:.3em;color:var(--gold);margin-bottom:16px;
}
.case-item h3{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:26px;color:var(--navy);margin-bottom:22px;line-height:1.5;
}
.case-item .client{
  display:inline-block;margin-bottom:22px;padding:8px 22px;
  background:var(--ivory-2);font-size:12px;letter-spacing:.15em;color:var(--gold-deep);
  font-weight:500;
}
.case-block{
  display:grid;grid-template-columns:160px 1fr;gap:28px;
  padding:26px 0;border-bottom:1px dashed var(--line);
}
.case-block:last-child{border-bottom:none}
.case-block .label{
  font-family:"Cormorant Garamond",serif;
  font-size:11px;letter-spacing:.25em;color:var(--gold-deep);
  text-transform:uppercase;padding-top:5px;
}
.case-block .label .ja{
  display:block;font-family:"Noto Serif JP",serif;
  font-size:15px;letter-spacing:.12em;color:var(--navy);
  margin-top:4px;font-weight:500;text-transform:none;
}
.case-block p{
  color:#3a4554;font-size:14px;line-height:1.95;white-space:pre-line;
  margin-bottom:0;
}
.skill-bars{padding-top:6px}
.skill-bar{margin-bottom:14px}
.skill-bar:last-child{margin-bottom:0}
.skill-bar .bar-label{
  display:flex;justify-content:space-between;align-items:center;
  font-size:12px;color:var(--navy);margin-bottom:6px;
}
.skill-bar .bar-label .pct{
  font-family:"Cormorant Garamond",serif;font-size:13px;
  color:var(--gold-deep);font-weight:500;
}
.skill-bar .bar-track{
  height:4px;background:var(--ivory-2);position:relative;overflow:hidden;
}
.skill-bar .bar-fill{
  position:absolute;top:0;left:0;height:100%;
  background:linear-gradient(90deg,var(--gold),var(--gold-deep));
}

/* ===== Skill Mix Pie Chart ===== */
.skill-bars.has-chart{display:none}
.skill-mix-wrap{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:44px;
  align-items:center;
  padding-top:6px;
}
.skill-mix-chart{
  position:relative;
  width:220px;height:220px;
  border-radius:50%;
  background:var(--ivory-2);
  box-shadow:
    0 0 0 1px var(--line),
    0 20px 50px -24px rgba(11,26,46,.22);
}
.skill-mix-chart::before{
  content:"";position:absolute;inset:28%;
  background:var(--ivory);
  border-radius:50%;
  box-shadow:inset 0 0 0 1px var(--line);
}
.skill-mix-chart::after{
  content:"SKILL MIX";
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-family:"Cormorant Garamond",serif;
  font-size:11px;letter-spacing:.28em;color:var(--gold-deep);
  z-index:2;
}
.skill-mix-legend{
  display:grid;gap:10px;
  font-size:12px;
}
.skill-mix-legend li{
  display:grid;
  grid-template-columns:14px 1fr auto;
  gap:12px;align-items:center;
  padding:6px 0;
  border-bottom:1px dashed var(--line);
  list-style:none;
}
.skill-mix-legend li:last-child{border-bottom:none}
.skill-mix-legend .dot{
  width:12px;height:12px;
  border-radius:2px;
}
.skill-mix-legend .name{
  color:var(--navy);font-size:12.5px;letter-spacing:.02em;
}
.skill-mix-legend .pct{
  font-family:"Cormorant Garamond",serif;
  font-size:14px;color:var(--gold-deep);font-weight:500;
}
@media(max-width:760px){
  .skill-mix-wrap{grid-template-columns:1fr;gap:28px;justify-items:center}
  .skill-mix-chart{width:180px;height:180px}
  .skill-mix-legend{width:100%}
}
@media(max-width:760px){
  .case-item{padding:36px 28px 32px}
  .case-block{grid-template-columns:1fr;gap:8px;padding:18px 0}
  .case-item h3{font-size:20px}
}

/* ===== Process flow ===== */
.process{background:var(--ivory-2)}
.process-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  position:relative;margin-top:20px;
}
.process-step{
  position:relative;padding:44px 28px 40px;
  background:var(--ivory);text-align:center;
  border-right:1px solid var(--line);
}
.process-step:last-child{border-right:none}
.process-step .p-num{
  font-family:"Cormorant Garamond",serif;
  font-size:13px;letter-spacing:.3em;color:var(--gold);
  margin-bottom:18px;
}
.process-step .p-icon{
  width:36px;height:36px;margin:0 auto 18px;
  border:1px solid var(--gold);color:var(--gold);
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  flex-shrink:0;
}
.process-step .p-icon svg{width:15px;height:15px;flex-shrink:0}
@media(max-width:560px){
  .process-step{padding:36px 24px 32px}
  .process-step .p-icon{width:32px;height:32px;margin-bottom:14px}
  .process-step .p-icon svg{width:13px;height:13px}
}
.process-step h3{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:18px;color:var(--navy);margin-bottom:12px;line-height:1.55;
}
.process-step p{font-size:13px;line-height:1.85;color:#4a5566}
@media(max-width:960px){
  .process-grid{grid-template-columns:1fr 1fr}
  .process-step{border-right:none;border-bottom:1px solid var(--line)}
}
@media(max-width:560px){
  .process-grid{grid-template-columns:1fr}
}

/* ===== Cases preview on top page ===== */
.case-preview-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:20px;
}
.case-preview{
  padding:44px 36px 40px;background:#fff;
  border:1px solid var(--line);
  transition:all .4s;cursor:pointer;
  display:flex;flex-direction:column;
}
.case-preview:hover{
  transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(11,26,46,.25);
  border-color:var(--gold);
}
.case-preview .tag{
  display:inline-block;align-self:flex-start;margin-bottom:20px;padding:5px 14px;
  background:var(--navy);color:var(--gold);
  font-family:"Cormorant Garamond",serif;font-size:11px;letter-spacing:.22em;
}
.case-preview h3{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:19px;color:var(--navy);margin-bottom:14px;line-height:1.55;
}
.case-preview p{color:#4a5566;font-size:13px;line-height:1.9;margin-bottom:22px;flex:1}
.case-preview .more{
  color:var(--gold-deep);font-size:12px;letter-spacing:.2em;
  font-family:"Cormorant Garamond",serif;
}
@media(max-width:960px){.case-preview-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.case-preview-grid{grid-template-columns:1fr}}

/* ===== 4-reasons grid (team cause) ===== */
.reasons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin:48px 0}
.reason-card{
  padding:48px 40px 44px;background:#fff;
  border:1px solid var(--line);position:relative;
}
.reason-card .r-num{
  position:absolute;top:28px;right:40px;
  font-family:"Cormorant Garamond",serif;
  font-size:44px;color:var(--ivory-2);font-weight:400;line-height:1;
}
.reason-card h3{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:19px;color:var(--navy);margin-bottom:16px;padding-right:60px;
  line-height:1.55;
}
.reason-card p{color:#3a4554;font-size:14px;line-height:1.95}
@media(max-width:760px){.reasons-grid{grid-template-columns:1fr}}

/* ===== Team member with photo ===== */
.team-member{
  display:grid;grid-template-columns:200px 1fr;gap:48px;
  padding:48px;background:#fff;
  border:1px solid var(--line);margin-bottom:32px;align-items:start;
}
.team-photo{
  width:100%;aspect-ratio:1/1;object-fit:cover;
  border:1px solid var(--line);
}
@media(max-width:760px){
  .team-member{grid-template-columns:1fr;gap:28px;padding:32px}
  .team-photo{max-width:200px}
}

/* ===== Step item w/ image (special002) ===== */
.step-item{
  display:grid;grid-template-columns:120px 1fr;gap:40px;
  padding:56px 0;border-bottom:1px solid var(--line);
}
.step-item:last-child{border-bottom:none}
.step-item .step-image{
  grid-column:1/-1;margin-top:20px;
  border:1px solid var(--line);
}

/* ===== Team page ===== */
.team-member{
  padding:48px;background:#fff;
  border:1px solid var(--line);margin-bottom:32px;
}
.team-member .role{
  font-family:"Cormorant Garamond",serif;
  font-size:12px;letter-spacing:.25em;color:var(--gold-deep);
  text-transform:uppercase;margin-bottom:10px;
}
.team-member h3{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:24px;color:var(--navy);margin-bottom:8px;
}
.team-member .name-en{
  font-family:"Cormorant Garamond",serif;font-size:14px;
  color:var(--muted);font-style:italic;margin-bottom:24px;
}
.team-member p{color:#3a4554;font-size:14px;line-height:2;margin-bottom:14px}

/* ===== Step list (special002) ===== */
.step-item{
  display:grid;grid-template-columns:120px 1fr;gap:40px;
  padding:56px 0;border-bottom:1px solid var(--line);
}
.step-item:last-child{border-bottom:none}
.step-item .step-num{
  font-family:"Cormorant Garamond",serif;font-weight:400;
  font-size:72px;color:var(--gold);line-height:1;
}
.step-item .step-num small{display:block;font-size:12px;letter-spacing:.3em;color:var(--gold-deep);margin-bottom:10px}
.step-item h3{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:26px;color:var(--navy);margin-bottom:20px;line-height:1.55;
}
.step-item p{color:#3a4554;font-size:15px;line-height:2.05;margin-bottom:18px}

/* ===== Diagram (section page) ===== */
.org-diagram{
  padding:56px 40px;background:var(--ivory-2);margin:40px 0;
  display:flex;flex-direction:column;align-items:center;gap:20px;
}
.org-node{
  padding:14px 36px;background:#fff;
  border:1px solid var(--line);font-size:14px;
  font-family:"Noto Serif JP",serif;
  min-width:160px;text-align:center;
}
.org-node.highlight{background:var(--navy);color:var(--ivory);border-color:var(--gold)}
.org-line{width:1px;height:24px;background:var(--gold)}
.org-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}

/* ===== News list ===== */
.news-section{background:var(--navy)}
.news-section::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 20% 30%,rgba(201,168,118,.08),transparent 55%),
    radial-gradient(ellipse at 80% 70%,rgba(201,168,118,.06),transparent 60%);
}
.news-section .eyebrow::before,.news-section .eyebrow::after{background:var(--gold)}
.news-list{list-style:none;display:grid;gap:2px;background:rgba(201,168,118,.18)}
.news-item{
  display:grid;grid-template-columns:130px 120px 1fr;gap:28px;
  padding:28px 36px;background:var(--navy);
  align-items:start;transition:background .4s;
}
.news-item:hover{background:rgba(201,168,118,.05)}
.news-date{
  font-family:"Cormorant Garamond",serif;
  font-size:15px;letter-spacing:.12em;color:var(--gold);
  padding-top:3px;
}
.news-cat{
  display:inline-block;align-self:start;
  padding:5px 14px;background:rgba(201,168,118,.12);
  color:var(--gold);
  font-family:"Cormorant Garamond",serif;
  font-size:11px;letter-spacing:.22em;
  border:1px solid rgba(201,168,118,.28);
  justify-self:start;
}
.news-item h3{
  font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:17px;line-height:1.7;color:var(--ivory);
  margin-bottom:8px;
}
.news-item p{
  font-size:13px;color:rgba(246,241,232,.7);line-height:1.9;
}
@media(max-width:860px){
  .news-item{grid-template-columns:1fr;gap:10px;padding:24px 28px}
  .news-date{padding-top:0}
}

/* ===== Contact CTA ===== */
.contact{background:var(--navy);color:var(--ivory);text-align:center;position:relative;overflow:hidden}
.contact::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at center,rgba(201,168,118,.12),transparent 65%);
}

/* ===== Footer ===== */
.site-footer{background:#05101c;color:rgba(246,241,232,.6);padding:72px 48px 36px}
.footer-inner{
  max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:56px;
  padding-bottom:56px;border-bottom:1px solid rgba(201,168,118,.18);
}
.footer-brand .brand{color:var(--ivory);margin-bottom:20px}
.footer-brand p{font-size:13px;line-height:2;max-width:320px}
.footer-col h4{
  font-family:"Cormorant Garamond",serif;
  font-size:13px;letter-spacing:.3em;color:var(--gold);
  margin-bottom:22px;text-transform:uppercase;font-weight:500;
}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:12px}
.footer-col a{font-size:13px}
.footer-bottom{
  max-width:1280px;margin:36px auto 0;
  display:flex;justify-content:space-between;align-items:center;
  font-size:11px;letter-spacing:.15em;color:rgba(246,241,232,.4);
}
.footer-bottom .en{font-family:"Cormorant Garamond",serif;letter-spacing:.25em}

/* ===== Reveal animations ===== */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s,transform 1s}
.reveal.in{opacity:1;transform:none}
.reveal-delay-1{transition-delay:.15s}
.reveal-delay-2{transition-delay:.3s}
.reveal-delay-3{transition-delay:.45s}

/* ===== Responsive ===== */
@media(max-width:1080px){
  .site-header{padding:20px 28px}
  .site-header.scrolled,.site-header.solid{padding:14px 28px}
  .hero-inner{grid-template-columns:1fr;gap:56px;padding:140px 28px 100px}
  .hero-side{border-left:none;border-top:1px solid var(--line);padding:48px 0 0}
  .sub-hero{padding:150px 28px 80px}
  .section{padding:80px 28px}
  .section-sm{padding:60px 28px}
  .site-footer{padding:56px 28px 36px}
  .philosophy-grid,.company-wrap{grid-template-columns:1fr;gap:56px}
  .services-grid{grid-template-columns:1fr;gap:24px}
  .why-grid{grid-template-columns:1fr;gap:24px}
  .footer-inner{grid-template-columns:1fr 1fr;gap:40px}
  .nav{display:none;position:fixed;top:72px;left:0;right:0;background:var(--navy);flex-direction:column;padding:40px 28px;gap:28px;border-top:1px solid var(--line)}
  .nav.open{display:flex}
  .nav-toggle{display:block}
  .step-item{grid-template-columns:1fr;gap:20px}
  .step-item .step-num{font-size:56px}
  .prose h2{font-size:26px}
  .prose h3{font-size:19px}
}
@media(max-width:560px){
  .hero h1{font-size:34px}
  .section-title{font-size:26px}
  .company-table th{width:110px;font-size:12px}
  .footer-inner{grid-template-columns:1fr}
  .team-member,.case-item{padding:32px}
  .sub-hero h1{font-size:28px}
}
