/* ===== SHARED STYLES for all service pages ===== */

:root {
  --navy:       #0b1e3d;
  --navy-2:     #112847;
  --navy-3:     #1a3a6b;
  --cyan:       #4ab8d8;
  --cyan-light: #7acfe8;
  --cyan-pale:  #dff3f9;
  --gold:       #c89a32;
  --gold-light: #dbb44a;
  --gold-pale:  #f5e8c0;
  --cream:      #f6f4f0;
  --cream-2:    #ebe7de;
  --text:       #151e35;
  --text-mid:   #404868;
  --text-light: #7880a0;
  --white:      #ffffff;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Helvetica Neue',Arial,'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif; color:var(--text); background:var(--white); overflow-x:hidden;  }

body::after {
  content:''; position:fixed; inset:0;
  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.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:0.022; pointer-events:none; z-index:900;
}

/* Scroll reveal */
.reveal { opacity:0; transform:translateY(30px); transition:opacity 0.75s cubic-bezier(.16,1,.3,1), transform 0.75s cubic-bezier(.16,1,.3,1); }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-left { opacity:0; transform:translateX(-40px); transition:opacity 0.8s cubic-bezier(.16,1,.3,1), transform 0.8s cubic-bezier(.16,1,.3,1); }
.reveal-left.visible { opacity:1; transform:translateX(0); }
.reveal-right { opacity:0; transform:translateX(40px); transition:opacity 0.8s cubic-bezier(.16,1,.3,1), transform 0.8s cubic-bezier(.16,1,.3,1); }
.reveal-right.visible { opacity:1; transform:translateX(0); }
.d1{transition-delay:.1s} .d2{transition-delay:.2s} .d3{transition-delay:.3s} .d4{transition-delay:.4s}

/* HEADER */
/* (header styles consolidated in the Header & Nav section below) */

/* SERVICE PAGE HERO */

/* ===== ANIMATED CITY HERO ===== */
.svc-hero {
  min-height: 52vh;
  background: var(--navy);
  display: flex; align-items: flex-end;
  padding: 72px 2.5rem 4rem;
  position: relative; overflow: hidden;
}

/* City skyline buildings - CSS drawn */
.city-layer {
  position: absolute; inset: 0;
  overflow: hidden;
  pointer-events: none;
}

/* Animated slow pan overlay */
.city-pan {
  position: absolute;
  width: 220%; height: 100%;
  top: 0; left: 0;
  animation: cityPan 40s linear infinite;
}

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

/* Buildings drawn in SVG style using CSS */
.city-buildings {
  position: absolute;
  bottom: 0; left: 0;
  width: 100%; height: 75%;
  background:
    /* Far background buildings - light */
    linear-gradient(to top, rgba(15,35,70,0.9) 0%, transparent 100%),

    /* Building silhouettes using repeating gradients */
    repeating-linear-gradient(
      90deg,
      transparent 0px, transparent 18px,
      rgba(20,48,90,0.85) 18px, rgba(20,48,90,0.85) 38px,
      transparent 38px, transparent 60px,
      rgba(18,42,80,0.9) 60px, rgba(18,42,80,0.9) 95px,
      transparent 95px, transparent 110px,
      rgba(22,50,95,0.8) 110px, rgba(22,50,95,0.8) 140px,
      transparent 140px, transparent 170px,
      rgba(16,40,78,0.9) 170px, rgba(16,40,78,0.9) 210px,
      transparent 210px, transparent 240px,
      rgba(24,52,98,0.85) 240px, rgba(24,52,98,0.85) 270px,
      transparent 270px, transparent 310px,
      rgba(19,45,85,0.9) 310px, rgba(19,45,85,0.9) 355px,
      transparent 355px, transparent 385px,
      rgba(21,48,92,0.85) 385px, rgba(21,48,92,0.85) 430px,
      transparent 430px
    );
}

/* Window lights on buildings */
.city-windows {
  position: absolute;
  inset: 0;
  background-image:
    /* Scattered window lights */
    radial-gradient(ellipse 1px 2px at 25px 60%, rgba(184,146,74,0.7) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 28px 70%, rgba(184,146,74,0.5) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 68px 50%, rgba(200,220,255,0.6) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 72px 65%, rgba(200,220,255,0.4) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 120px 45%, rgba(184,146,74,0.6) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 125px 58%, rgba(184,146,74,0.8) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 175px 40%, rgba(200,220,255,0.5) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 195px 55%, rgba(200,220,255,0.6) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 255px 48%, rgba(184,146,74,0.7) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 260px 62%, rgba(184,146,74,0.5) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 320px 52%, rgba(200,220,255,0.6) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 330px 44%, rgba(200,220,255,0.4) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 400px 38%, rgba(184,146,74,0.8) 0%, transparent 100%),
    radial-gradient(ellipse 1px 2px at 405px 52%, rgba(184,146,74,0.6) 0%, transparent 100%);
  background-size: 440px 100%;
  animation: windowFlicker 8s ease-in-out infinite alternate;
}

@keyframes windowFlicker {
  0%   { opacity: 0.6; }
  30%  { opacity: 1.0; }
  60%  { opacity: 0.75; }
  100% { opacity: 0.9; }
}

/* Moving light beam sweep */
.city-beam {
  position: absolute;
  top: -20%;
  left: -30%;
  width: 40%;
  height: 140%;
  background: linear-gradient(
    105deg,
    transparent 40%,
    rgba(184,146,74,0.03) 50%,
    rgba(184,146,74,0.06) 52%,
    rgba(184,146,74,0.03) 54%,
    transparent 64%
  );
  animation: beamSweep 12s ease-in-out infinite;
  pointer-events: none;
}

@keyframes beamSweep {
  0%   { left: -30%; opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 1; }
  100% { left: 110%; opacity: 0; }
}

/* Floating particles (bokeh lights) */
.city-particles {
  position: absolute; inset: 0;
}

.city-particles::before,
.city-particles::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle 3px at 8% 30%, rgba(184,146,74,0.35) 0%, transparent 100%),
    radial-gradient(circle 2px at 15% 70%, rgba(200,220,255,0.25) 0%, transparent 100%),
    radial-gradient(circle 4px at 25% 20%, rgba(184,146,74,0.2) 0%, transparent 100%),
    radial-gradient(circle 2px at 38% 55%, rgba(200,220,255,0.3) 0%, transparent 100%),
    radial-gradient(circle 3px at 52% 35%, rgba(184,146,74,0.25) 0%, transparent 100%),
    radial-gradient(circle 2px at 64% 65%, rgba(200,220,255,0.2) 0%, transparent 100%),
    radial-gradient(circle 4px at 75% 25%, rgba(184,146,74,0.3) 0%, transparent 100%),
    radial-gradient(circle 2px at 85% 50%, rgba(200,220,255,0.25) 0%, transparent 100%),
    radial-gradient(circle 3px at 93% 40%, rgba(184,146,74,0.2) 0%, transparent 100%);
  animation: particleFloat 15s ease-in-out infinite;
}

.city-particles::after {
  animation-duration: 20s;
  animation-delay: -7s;
  background-image:
    radial-gradient(circle 2px at 12% 45%, rgba(200,220,255,0.3) 0%, transparent 100%),
    radial-gradient(circle 3px at 30% 15%, rgba(184,146,74,0.25) 0%, transparent 100%),
    radial-gradient(circle 2px at 45% 75%, rgba(200,220,255,0.2) 0%, transparent 100%),
    radial-gradient(circle 4px at 58% 30%, rgba(184,146,74,0.35) 0%, transparent 100%),
    radial-gradient(circle 2px at 70% 55%, rgba(200,220,255,0.25) 0%, transparent 100%),
    radial-gradient(circle 3px at 82% 20%, rgba(184,146,74,0.3) 0%, transparent 100%),
    radial-gradient(circle 2px at 90% 68%, rgba(200,220,255,0.2) 0%, transparent 100%);
}

@keyframes particleFloat {
  0%   { transform: translateY(0px) translateX(0px); opacity: 0.6; }
  25%  { transform: translateY(-12px) translateX(5px); opacity: 1; }
  50%  { transform: translateY(-6px) translateX(-3px); opacity: 0.8; }
  75%  { transform: translateY(-18px) translateX(8px); opacity: 0.7; }
  100% { transform: translateY(0px) translateX(0px); opacity: 0.6; }
}

/* Ground glow - city reflection */
.city-glow {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(
    to top,
    rgba(184,146,74,0.08) 0%,
    rgba(27,52,97,0.3) 40%,
    transparent 100%
  );
  animation: glowPulse 6s ease-in-out infinite alternate;
}

@keyframes glowPulse {
  0%   { opacity: 0.7; }
  100% { opacity: 1.0; }
}

/* Horizontal scan line */
.city-scanline {
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184,146,74,0.15), rgba(184,146,74,0.3), rgba(184,146,74,0.15), transparent);
  animation: scanMove 8s linear infinite;
}

@keyframes scanMove {
  0%   { top: 100%; opacity: 0; }
  5%   { opacity: 1; }
  95%  { opacity: 1; }
  100% { top: 0%; opacity: 0; }
}

/* Override original bg to work with new layers */
.svc-hero-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 70% 80% at 80% 50%, rgba(27,52,97,0.7) 0%, transparent 65%),
              linear-gradient(160deg, rgba(8,21,42,0.85) 0%, rgba(14,31,58,0.75) 50%, rgba(20,45,86,0.8) 100%);
  z-index: 2;
}
.svc-hero-grid {
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(184,146,74,.04) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(184,146,74,.04) 1px, transparent 1px);
  background-size: 70px 70px;
  z-index: 3;
  animation: gridShift 30s linear infinite;
}
@keyframes gridShift {
  0%   { background-position: 0 0; }
  100% { background-position: 70px 70px; }
}
.svc-hero-num { z-index: 4; }
.svc-hero-inner { z-index: 5; }

.svc-hero-num {
  position:absolute; right:3%; bottom:-2%;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(8rem,20vw,18rem); font-weight:700; font-style:italic;
  color:transparent; -webkit-text-stroke:1px rgba(184,146,74,.06);
  line-height:1; pointer-events:none; user-select:none;
}
.svc-hero-inner { position:relative; z-index:1; max-width:1280px; margin:0 auto; width:100%; }
.svc-breadcrumb { display:flex; align-items:center; gap:.5rem; margin-bottom:1.5rem; }
.svc-breadcrumb a, .svc-breadcrumb span { font-size:.7rem; color:rgba(255,255,255,.5); text-decoration:none; letter-spacing:.08em; }
.svc-breadcrumb a:hover { color:var(--gold); }
.svc-breadcrumb .sep { color:rgba(255,255,255,.25); }
.svc-tag { display:inline-flex; align-items:center; gap:.7rem; font-family:Georgia,'Times New Roman',serif; font-style:italic; font-size:.72rem; letter-spacing:.22em; color:var(--gold); margin-bottom:1rem; }
.svc-tag::before { content:''; width:30px; height:1px; background:var(--gold); opacity:.7; }
.svc-hero-title { font-family:'Yu Mincho','游明朝','Hiragino Mincho ProN','HG明朝E',serif; font-size:clamp(2rem,5vw,3.8rem); font-weight:700; color:var(--white); letter-spacing:.05em; line-height:1.3; }
.svc-hero-lead { font-size:.9rem; color:rgba(255,255,255,.6); font-weight:300; line-height:2; margin-top:1.2rem; max-width:580px; }

/* MAIN CONTENT LAYOUT */
.svc-body { max-width:1280px; margin:0 auto; padding:5rem 2.5rem; display:grid; grid-template-columns:1fr 300px; gap:4rem; align-items:start; }

/* ARTICLE */
.svc-article h2 { font-family:'Yu Mincho','游明朝','Hiragino Mincho ProN','HG明朝E',serif; font-size:1.5rem; font-weight:700; color:var(--navy); letter-spacing:.04em; margin:2.5rem 0 1rem; padding-bottom:.7rem; border-bottom:2px solid var(--gold-pale); position:relative; }
.svc-article h2::after { content:''; position:absolute; bottom:-2px; left:0; width:60px; height:2px; background:var(--gold); }
.svc-article h3 { font-family:'Yu Mincho','游明朝','Hiragino Mincho ProN','HG明朝E',serif; font-size:1.1rem; font-weight:600; color:var(--navy-2); margin:2rem 0 .7rem; padding-left:1rem; border-left:3px solid var(--gold); }
.svc-article p { font-size:.87rem; line-height:2; color:var(--text); font-weight:300; margin-bottom:1.2rem; }
.svc-article ul, .svc-article ol { padding-left:1.5rem; margin-bottom:1.2rem; }
.svc-article li { font-size:.86rem; line-height:1.9; color:var(--text); font-weight:300; margin-bottom:.3rem; }
.svc-article strong { font-weight:600; color:var(--navy); }

/* highlight box */
.highlight-box { background:var(--cream); border-left:3px solid var(--gold); padding:1.5rem 1.8rem; border-radius:0 4px 4px 0; margin:2rem 0; }
.highlight-box p { margin:0; font-size:.86rem; }

/* step list */
.step-list { counter-reset:step; list-style:none; padding:0; margin:1.5rem 0 2rem; }
.step-list li { counter-increment:step; display:flex; gap:1rem; padding:.9rem 0; border-bottom:1px solid var(--cream-2); align-items:flex-start; font-size:.86rem; font-weight:300; line-height:1.8; }
.step-list li:last-child { border-bottom:none; }
.step-list li::before { content:counter(step); min-width:28px; height:28px; background:var(--navy); color:var(--white); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.7rem; font-weight:700; flex-shrink:0; margin-top:2px; }

/* concern list */
.concern-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:1.5rem 0 2rem; }
.concern-item { background:var(--cream); border:1px solid var(--cream-2); border-radius:4px; padding:1.1rem 1.3rem; font-size:.82rem; color:var(--text); line-height:1.7; font-weight:300; position:relative; padding-left:2.2rem; }
.concern-item::before { content:'✓'; position:absolute; left:.9rem; top:1.1rem; color:var(--gold); font-weight:700; }

/* strength cards */
.strength-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin:1.5rem 0 2rem; }
.strength-card { background:var(--white); border:1px solid var(--cream-2); border-radius:4px; padding:1.5rem 1.3rem; border-top:3px solid var(--gold); transition:box-shadow .25s, transform .25s; }
.strength-card:hover { box-shadow:0 6px 24px rgba(8,21,42,.08); transform:translateY(-2px); }
.strength-card .sc-num { font-family:Georgia,'Times New Roman',serif; font-size:1.4rem; color:var(--gold); font-weight:400; font-style:italic; margin-bottom:.6rem; }
.strength-card h4 { font-family:'Yu Mincho','游明朝','Hiragino Mincho ProN','HG明朝E',serif; font-size:.92rem; font-weight:700; color:var(--navy); margin-bottom:.5rem; letter-spacing:.03em; }
.strength-card p { font-size:.76rem; color:var(--text-light); line-height:1.8; font-weight:300; margin:0; }

/* fee table */
.fee-tbl-wrap { overflow-x:auto; margin:1.5rem 0 2rem; }
.fee-tbl { width:100%; border-collapse:collapse; font-size:.83rem; }
.fee-tbl thead { background:var(--navy); }
.fee-tbl th { padding:.8rem 1rem; color:var(--gold-light); font-weight:500; font-size:.72rem; letter-spacing:.06em; text-align:left; }
.fee-tbl td { padding:.85rem 1rem; border-bottom:1px solid var(--cream-2); color:var(--text); vertical-align:middle; line-height:1.6; }
.fee-tbl td:first-child { font-family:'Yu Mincho','游明朝','Hiragino Mincho ProN','HG明朝E',serif; font-weight:600; color:var(--navy); }
.fee-tbl tr:last-child td { border-bottom:none; }
.price-val { font-family:Georgia,'Times New Roman',serif; font-size:1.15rem; color:var(--gold); }
.fee-note { font-size:.74rem; color:var(--text-light); line-height:1.8; padding-left:1rem; border-left:2px solid var(--gold-pale); margin-bottom:1.5rem; }

/* CTA section inside article */
.article-cta { background:var(--navy); border-radius:4px; padding:2.5rem 2.5rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; margin:3rem 0; flex-wrap:wrap; }
.article-cta p { font-size:.88rem; color:rgba(255,255,255,.75); font-weight:300; line-height:1.8; margin:0; }
.article-cta strong { display:block; font-family:'Yu Mincho','游明朝','Hiragino Mincho ProN','HG明朝E',serif; font-size:1.1rem; color:var(--white); font-weight:700; margin-bottom:.4rem; }
.btn-gold { display:inline-flex; align-items:center; gap:.5rem; background:var(--gold); color:var(--navy); text-decoration:none; font-size:.82rem; font-weight:700; letter-spacing:.1em; padding:.9rem 2rem; border-radius:2px; white-space:nowrap; transition:background .25s, transform .2s, box-shadow .25s; box-shadow:0 4px 20px rgba(184,146,74,.3); }
.btn-gold:hover { background:var(--gold-light); transform:translateY(-2px); box-shadow:0 8px 28px rgba(184,146,74,.4); }
.btn-outline-navy { display:inline-flex; align-items:center; gap:.5rem; border:1px solid var(--navy); color:var(--navy); text-decoration:none; font-size:.82rem; font-weight:600; letter-spacing:.08em; padding:.88rem 2rem; border-radius:2px; transition:background .25s, color .25s; }
.btn-outline-navy:hover { background:var(--navy); color:var(--white); }

/* SIDEBAR */
.svc-sidebar { position:sticky; top:90px; }
.side-nav { background:var(--navy); border-radius:4px; overflow:hidden; margin-bottom:1.5rem; }
.side-nav-hd { background:rgba(184,146,74,.15); padding:1rem 1.3rem; font-family:Georgia,'Times New Roman',serif; font-style:italic; font-size:.7rem; letter-spacing:.2em; color:var(--gold); border-bottom:1px solid rgba(184,146,74,.15); }
.side-nav a { display:flex; align-items:center; gap:.7rem; padding:.75rem 1.3rem; color:rgba(255,255,255,.65); text-decoration:none; font-size:.78rem; letter-spacing:.04em; border-bottom:1px solid rgba(255,255,255,.05); transition:background .2s, color .2s; }
.side-nav a:last-child { border-bottom:none; }
.side-nav a:hover, .side-nav a.active { background:rgba(184,146,74,.1); color:var(--gold-light); }
.side-nav a.active { border-left:2px solid var(--gold); }
.side-nav a .dot { width:5px; height:5px; border-radius:50%; background:var(--gold); opacity:.5; flex-shrink:0; }
.side-nav a.active .dot { opacity:1; }

.side-contact { background:var(--cream); border-radius:4px; padding:1.5rem; }
.side-contact h4 { font-family:'Yu Mincho','游明朝','Hiragino Mincho ProN','HG明朝E',serif; font-size:.92rem; font-weight:700; color:var(--navy); margin-bottom:.8rem; }
.side-contact p { font-size:.75rem; color:var(--text-light); line-height:1.8; font-weight:300; margin-bottom:1rem; }
.side-tel { font-family:Georgia,'Times New Roman',serif; font-size:1.2rem; color:var(--navy); font-weight:400; letter-spacing:.05em; margin-bottom:.3rem; }
.side-tel-lbl { font-size:.62rem; color:var(--gold); letter-spacing:.15em; font-family:Georgia,'Times New Roman',serif; font-style:italic; margin-bottom:.5rem; }

/* RELATED SERVICES */
.related-section { background:var(--cream); padding:5rem 2.5rem; border-top:1px solid var(--cream-2); }
.related-inner { max-width:1280px; margin:0 auto; }
.related-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-top:2rem; }
.related-card { background:var(--white); border-radius:4px; padding:1.5rem 1.3rem; text-decoration:none; border-bottom:3px solid transparent; transition:border-color .25s, box-shadow .25s, transform .25s; display:block; }
.related-card:hover { border-color:var(--gold); box-shadow:0 6px 24px rgba(8,21,42,.08); transform:translateY(-2px); }
.related-card .rc-icon { font-size:1.4rem; margin-bottom:.8rem; }
.related-card h4 { font-family:'Yu Mincho','游明朝','Hiragino Mincho ProN','HG明朝E',serif; font-size:.9rem; font-weight:700; color:var(--navy); margin-bottom:.5rem; }
.related-card p { font-size:.73rem; color:var(--text-light); line-height:1.7; font-weight:300; margin:0; }

/* FOOTER */
footer { background:var(--navy); color:rgba(255,255,255,.65); padding:3.5rem 2.5rem 2rem; border-top:1px solid rgba(184,146,74,.15); }
.ft-inner { max-width:1280px; margin:0 auto; }
.ft-top { display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr; gap:3rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(255,255,255,.1); margin-bottom:1.5rem; }
.ft-brand p { font-size:.76rem; line-height:1.9; margin-top:1rem; color:rgba(255,255,255,.55); }
.ft-col h4 { font-size:.64rem; letter-spacing:.25em; color:var(--gold); font-family:Georgia,'Times New Roman',serif; font-style:italic; font-weight:400; margin-bottom:1rem; text-transform:uppercase; }
.ft-col a { display:block; color:rgba(255,255,255,.6); text-decoration:none; font-size:.78rem; padding:.25rem 0; transition:color .2s; }
.ft-col a:hover { color:var(--gold-light); }
.ft-bottom { display:flex; align-items:center; justify-content:space-between; font-size:.72rem; color:rgba(255,255,255,.4); }
.ft-bottom a { color:rgba(255,255,255,.4); text-decoration:none; }
.ft-bottom a:hover { color:var(--gold); }

/* RESPONSIVE */
@media(max-width:1024px) { nav > a:not(.nav-cta),.nav-item{display:none;} .svc-body{grid-template-columns:1fr;} .svc-sidebar{position:static;} .ft-top{grid-template-columns:1fr 1fr;} }
@media(max-width:768px) { .strength-grid{grid-template-columns:1fr 1fr;} .concern-grid{grid-template-columns:1fr;} .related-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:480px) { .strength-grid{grid-template-columns:1fr;} .related-grid{grid-template-columns:1fr;} .ft-top{grid-template-columns:1fr;} }



/* ── Logo ── */
a.logo { display:flex; flex-direction:row; align-items:center; gap:.85rem; text-decoration:none; flex-shrink:0; }
.logo-icon { height:40px; width:auto; display:block; filter:drop-shadow(0 1px 6px rgba(0,0,0,.5)); }
.logo-text { display:flex; flex-direction:column; gap:2px; }
.logo-name { font-family:'Yu Mincho','游明朝','Hiragino Mincho ProN','HG明朝E',serif; font-size:.88rem; font-weight:700; color:#ffffff; letter-spacing:.06em; line-height:1.2; }
.logo-sub  { font-family:Georgia,'Times New Roman',serif; font-style:italic; font-size:.54rem; color:#7acfe8; letter-spacing:.16em; line-height:1.2; opacity:.80; }
a.logo-footer .logo-icon { height:30px; }
a.logo-footer .logo-name { font-size:.76rem; }
a.logo-footer .logo-sub  { font-size:.48rem; }

/* ── svc-hero text visibility fix ── */
.svc-hero-label { color:var(--cyan-light) !important;  }
.svc-hero-title { color:#ffffff !important; text-shadow:0 2px 20px rgba(0,0,0,.6); }
.svc-hero-lead  { color:rgba(255,255,255,.88) !important; text-shadow:0 1px 8px rgba(0,0,0,.5); }
.svc-hero-bg {
  background:
    radial-gradient(ellipse 70% 80% at 80% 50%, rgba(27,52,97,0.45) 0%, transparent 65%),
    linear-gradient(160deg, rgba(4,10,22,0.72) 0%, rgba(8,18,38,0.60) 50%, rgba(12,28,54,0.65) 100%) !important;
}
.news-hero-title, .news-hero h1 { color:#ffffff !important; text-shadow:0 2px 20px rgba(0,0,0,.6); }
.news-hero-lead { color:rgba(255,255,255,.88) !important; }

/* ── Title no-wrap fix ── */
.svc-hero-title {
  font-size:clamp(1.6rem,3.2vw,2.8rem) !important;
  line-height:1.25 !important;
  white-space:normal;
}
.svc-hero-lead { font-size:.85rem !important; max-width:520px; }

/* ════ Responsive ════ */
@media(max-width:1024px){
  .svc-layout{grid-template-columns:1fr 220px;gap:2.5rem;}
}
@media(max-width:768px){
  .svc-layout{grid-template-columns:1fr;}
  .svc-sidebar{display:none;}
  .svc-hero{padding:72px 1.5rem 3rem;min-height:40vh;}
  .svc-hero-title{font-size:clamp(1.5rem,5.5vw,2.4rem)!important;}
  .svc-hero-lead{font-size:.8rem!important;}
  .svc-body{padding:3rem 1.5rem;}
  .related-grid{grid-template-columns:1fr 1fr;}
  header nav > a:not(.nav-cta), header .nav-item{display:none;}
  .header-inner{padding:0 1.2rem;}
}
@media(max-width:480px){
  .svc-hero-title{font-size:1.5rem!important;}
  .related-grid{grid-template-columns:1fr;}
}




/* ── Header & Nav ── */
header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:background .4s,border-color .4s;border-bottom:1px solid transparent;}
header.scrolled{background:rgba(8,21,42,.97);backdrop-filter:blur(16px);border-color:rgba(184,146,74,.25);}
#site-header{position:sticky;top:0;z-index:100;background:var(--navy);transition:background .3s;}
#site-header.scrolled{background:rgba(11,30,61,.97);box-shadow:0 2px 20px rgba(0,0,0,.3);}
.header-inner,.hd-inner{max-width:1400px;margin:0 auto;padding:0 2.5rem;height:72px;display:flex;align-items:center;justify-content:space-between;gap:2rem;}
nav{display:flex;align-items:center;gap:1.8rem;flex-shrink:0;}
nav > a, .nav-item > a{color:rgba(255,255,255,.75);text-decoration:none;font-size:.8rem;letter-spacing:.07em;transition:color .2s;white-space:nowrap;}
nav > a:hover, .nav-item > a:hover{color:#fff;}
.nav-item{position:relative;display:inline-flex;align-items:center;height:100%;}
.nav-dropdown{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%);background:rgba(9,22,50,.97);border:1px solid rgba(74,184,216,.18);border-radius:4px;box-shadow:0 8px 32px rgba(0,0,0,.5);min-width:210px;z-index:200;padding:.4rem 0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility .15s ease;transition-delay:.35s;}
.nav-dropdown::before{content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid rgba(74,184,216,.25);}
.nav-dropdown::after{content:'';position:absolute;top:-18px;left:0;width:100%;height:18px;}
.nav-dropdown a{display:block!important;padding:.52rem 1.2rem!important;font-size:.74rem!important;color:rgba(255,255,255,.68)!important;letter-spacing:.03em;border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s,color .15s!important;white-space:nowrap;text-decoration:none;}
.nav-dropdown a:last-child{border-bottom:none;}
.nav-dropdown a:hover{background:rgba(74,184,216,.13);color:#fff!important;}
.nav-dropdown-divider{height:1px;background:rgba(74,184,216,.2);margin:.3rem 0;}
.nav-item:hover .nav-dropdown{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;}
.nav-cta{border:1px solid var(--gold)!important;color:var(--gold)!important;padding:.42rem 1rem!important;border-radius:2px;font-size:.74rem!important;letter-spacing:.08em;transition:background .2s,color .2s!important;}
.nav-cta:hover{background:var(--gold)!important;color:var(--navy)!important;}
@media(max-width:768px){nav > a:not(.nav-cta){display:none;}.header-inner{padding:0 1.2rem;}}

/* ── HAMBURGER MENU ── */
.hamburger{display:none;background:none;border:none;cursor:pointer;padding:8px;z-index:1100;}
.hamburger span{display:block;width:24px;height:2px;background:var(--gold-light);margin:5px 0;transition:transform .3s,opacity .3s;}
.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.active span:nth-child(2){opacity:0;}
.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-nav{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(8,21,42,.98);z-index:1050;padding:90px 2rem 2rem;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;}
.mobile-nav.open{opacity:1;visibility:visible;}
.mobile-nav a{display:block;color:rgba(255,255,255,.8);text-decoration:none;font-size:.95rem;padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.06);letter-spacing:.04em;transition:color .2s;}
.mobile-nav a:hover{color:var(--gold-light);}
.mobile-nav .mn-section{font-size:.65rem;color:var(--gold);letter-spacing:.2em;font-family:Georgia,'Times New Roman',serif;font-style:italic;margin-top:1.5rem;margin-bottom:.3rem;text-transform:uppercase;}
.mobile-nav .mn-sub a{padding-left:1.2rem;font-size:.85rem;color:rgba(255,255,255,.6);}
.mobile-nav .mn-cta{display:inline-block;margin-top:1.5rem;border:1px solid var(--gold);color:var(--gold);padding:.7rem 2rem;border-radius:2px;font-size:.9rem;letter-spacing:.08em;font-weight:600;text-align:center;}
.mobile-nav .mn-cta:hover{background:var(--gold);color:var(--navy);}
@media(max-width:1024px){.hamburger{display:block;}}

/* ── ACCESSIBILITY: Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
  .reveal, .reveal-left, .reveal-right, .reveal-scale { opacity:1; transform:none; }
}

/* ── PRINT STYLES ── */
@media print {
  body::after, header, .hamburger, .mobile-nav, footer,
  .city-layer, .city-sky, .city-glow, .city-particles, .city-grid, .city-overlay,
  .hero-bg, .hero-lines, .hero-watermark,
  .cta-banner-section, .btn-gold, .btn-ghost, .submit-btn,
  .svc-cta-section, .news-hero-bg, .news-hero-grid { display:none !important; }
  body { background:#fff !important; color:#000 !important; font-size:11pt; }
  section, .inner { padding:1rem 0 !important; }
  a { color:#000 !important; text-decoration:underline; }
  .sec-title, h1, h2, h3 { color:#000 !important; }
  .fee-tbl, .career-tbl { border:1px solid #ccc; }
  .fee-tbl th, .fee-tbl td, .career-tbl th, .career-tbl td { color:#000 !important; border:1px solid #ccc; }
  .ofc-card { box-shadow:none; border:1px solid #ccc; }
  * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
