/* ═══════════════════════════════════════════════════
   Oidon-Japan — Premium v6
   BLUE × RED × WHITE  Dynamic Japanese Corporate
   #051020 navy / #1048B8 blue / #D40018 red / #FFF
   ═══════════════════════════════════════════════════ */
:root {
  --navy:    #051020;
  --navy2:   #091828;
  --navy3:   #0D2D5C;
  --blue:    #1048B8;
  --blue2:   #1A5FFF;
  --blue3:   #5B9BFF;
  --red:     #D40018;
  --red2:    #FF1F3D;
  --white:   #FFFFFF;
  --offwhite:#F0F5FF;
  --gray:    #E5EDFF;
  --gray2:   #C8D6F0;
  --gray3:   #7A90B0;
  --text:    #0A1628;
  --ease:    cubic-bezier(.16,1,.3,1);
  --t:       .45s;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family:'Noto Sans JP',sans-serif;
  color:var(--text); background:var(--white);
  overflow-x:hidden;
}
img  { display:block; max-width:100%; }
a    { text-decoration:none; color:inherit; }
ul   { list-style:none; }

.w { max-width:1200px; margin:0 auto; padding:0 56px; }

/* ── Reveal animations ── */
.reveal {
  opacity:0; transform:translateY(36px);
  transition:opacity .85s var(--ease), transform .85s var(--ease);
}
.reveal.in { opacity:1; transform:none; }

.reveal-l {
  opacity:0; transform:translateX(-40px);
  transition:opacity .85s var(--ease), transform .85s var(--ease);
}
.reveal-l.in { opacity:1; transform:none; }

.reveal-r {
  opacity:0; transform:translateX(40px);
  transition:opacity .85s var(--ease), transform .85s var(--ease);
}
.reveal-r.in { opacity:1; transform:none; }

/* ═══════════ LOADER — 3パネル カーテン上昇 ═══════════ */
#loader {
  position:fixed; inset:0; z-index:9999;
  pointer-events:all;
}
#loader.gone { pointer-events:none; }

/* ── 3枚の縦パネル ── */
.ld-panel {
  position:absolute; top:0; bottom:0;
  background:var(--navy);
  will-change:transform;
  transition:transform 1.1s cubic-bezier(.77,0,.18,1);
}
.lp1 { left:0;      right:66.68%; }
.lp2 { left:33.32%; right:33.36%; transition-delay:.09s; }
.lp3 { left:66.64%; right:0;      transition-delay:.18s; }

#loader.gone .lp1,
#loader.gone .lp2,
#loader.gone .lp3 { transform:translateY(-100%); }

/* ── 中央コンテンツ ── */
.ld-inner {
  position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:22px;
  transition:opacity .35s ease;
}
#loader.gone .ld-inner { opacity:0; }

.ld-img {
  height:54px; filter:brightness(0) invert(1);
  animation:ldIn .8s var(--ease) .3s both;
}
.ld-en {
  font-family:'Montserrat',sans-serif;
  font-size:10px; font-weight:600; letter-spacing:4px;
  color:rgba(255,255,255,.35); text-transform:uppercase;
  animation:ldIn .8s var(--ease) .55s both;
}
@keyframes ldIn {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:none; }
}

.ld-bar {
  width:200px; height:1px;
  background:rgba(255,255,255,.1); overflow:hidden;
  animation:ldIn .8s var(--ease) .75s both;
}
.ld-bar span {
  display:block; height:100%; width:0;
  background:linear-gradient(90deg, var(--blue2), var(--red));
  animation:ldBarFill 1.5s var(--ease) .5s forwards;
}
@keyframes ldBarFill { to { width:100%; } }

.ld-pct {
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:700; letter-spacing:2px;
  color:rgba(255,255,255,.35);
  animation:ldIn .8s var(--ease) .75s both;
}
.ld-pct em { font-style:normal; font-size:10px; margin-left:1px; }

/* ═══════════ HEADER ═══════════ */
#hdr {
  position:fixed; top:0; left:0; right:0; z-index:800;
  transition:background .5s, border-color .5s, box-shadow .5s;
  border-bottom:1px solid transparent;
}
#hdr.solid {
  background:rgba(5,16,32,.97);
  backdrop-filter:blur(20px) saturate(160%);
  border-color:rgba(26,95,255,.18);
  box-shadow:0 2px 40px rgba(0,0,0,.5);
}
.hdr-wrap {
  max-width:1440px; margin:0 auto;
  padding:0 56px; height:72px;
  display:flex; align-items:center; gap:48px;
}
.hdr-logo img { height:36px; filter:brightness(0) invert(1); transition:opacity .3s; }
.hdr-logo:hover img { opacity:.65; }

.hdr-nav { display:flex; gap:36px; margin-left:auto; }
.hdr-nav a {
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:600; letter-spacing:1.5px;
  color:rgba(255,255,255,.65);
  transition:color .3s; position:relative;
}
.hdr-nav a::after {
  content:''; position:absolute; bottom:-4px; left:0;
  width:0; height:2px; background:var(--red);
  transition:width .35s var(--ease);
}
.hdr-nav a:hover { color:#fff; }
.hdr-nav a:hover::after { width:100%; }

.hdr-contact {
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:800; letter-spacing:1.5px;
  color:#fff; background:var(--red);
  padding:9px 24px; text-transform:uppercase;
  transition:background .3s, transform .2s;
  flex-shrink:0;
}
.hdr-contact:hover { background:var(--red2); transform:translateY(-1px); }

.hdr-menu {
  display:none; flex-direction:column; gap:6px;
  background:none; border:none; cursor:pointer; padding:6px; margin-left:auto;
}
.hdr-menu span { display:block; width:26px; height:2px; background:#fff; transition:transform .4s var(--ease), opacity .3s; }
.hdr-menu.open span:nth-child(1) { transform:rotate(45deg) translate(5px,6px); }
.hdr-menu.open span:nth-child(2) { transform:rotate(-45deg) translate(5px,-6px); }

/* ═══════════ MOBILE MENU ═══════════ */
.mmenu {
  position:fixed; inset:0; z-index:790;
  background:var(--navy);
  display:flex; flex-direction:column; justify-content:center;
  padding:100px 56px 60px;
  clip-path:circle(0% at calc(100% - 80px) 36px);
  transition:clip-path .75s var(--ease);
  pointer-events:none;
}
/* Blue/Red side stripe */
.mmenu::before {
  content:'';
  position:absolute; top:0; left:0;
  width:4px; height:100%;
  background:linear-gradient(180deg, var(--blue2) 0%, var(--red) 100%);
}
.mmenu.open {
  clip-path:circle(150% at calc(100% - 80px) 36px);
  pointer-events:all;
}
.mmenu nav { display:flex; flex-direction:column; }
.mmenu nav a {
  font-size:clamp(28px,5vw,56px); font-weight:900;
  color:rgba(255,255,255,.7);
  padding:14px 0; border-bottom:1px solid rgba(255,255,255,.06);
  transition:color .3s, padding-left .35s var(--ease);
}
.mmenu nav a:hover { color:#fff; padding-left:14px; }
.mm-info { display:flex; gap:40px; margin-top:40px; flex-wrap:wrap; }
.mm-info p { font-size:13px; color:rgba(255,255,255,.3); }

/* ═══════════ HERO ═══════════ */
.hero {
  position:relative; min-height:100vh;
  background:var(--navy); overflow:hidden;
  display:flex; align-items:flex-end;
}

/* ── YouTube video BG (with Ken Burns zoom-out) ── */
.hero-video {
  position:absolute; inset:0; overflow:hidden;
  pointer-events:none; z-index:0;
  animation:heroZoom 14s cubic-bezier(.0,.0,.3,1) forwards;
  transform-origin:center center;
}
@keyframes heroZoom {
  from { transform:scale(1.1); }
  to   { transform:scale(1.0); }
}
#ytbg {
  position:absolute; top:50%; left:50%; border:none; pointer-events:none;
  width:max(100vw, calc(100vh * 16/9));
  height:max(100vh, calc(100vw * 9/16));
  transform:translate(-50%,-50%);
}

/* ── Overlay: deep blue tint ── */
.hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(160deg,
      rgba(5,16,32,.90) 0%,
      rgba(16,72,184,.50) 45%,
      rgba(5,16,32,.85) 100%
    );
}

/* ── Decorative animated elements ── */
.hero-deco {
  position:absolute; inset:0; z-index:2;
  pointer-events:none; overflow:hidden;
}

/* Blue glow orb — top-left, drifting */
.hd-glow-blue {
  position:absolute;
  width:800px; height:800px; border-radius:50%;
  background:radial-gradient(circle, rgba(26,95,255,.22) 0%, transparent 65%);
  top:-200px; left:-150px;
  animation:glowBlue 12s ease-in-out infinite alternate;
}
@keyframes glowBlue {
  from { transform:translate(0,0) scale(1);    opacity:.7; }
  to   { transform:translate(160px,100px) scale(1.2); opacity:1; }
}

/* Red glow orb — bottom-right, drifting */
.hd-glow-red {
  position:absolute;
  width:500px; height:500px; border-radius:50%;
  background:radial-gradient(circle, rgba(212,0,24,.18) 0%, transparent 65%);
  bottom:-80px; right:-60px;
  animation:glowRed 8s ease-in-out infinite alternate;
}
@keyframes glowRed {
  from { transform:translate(0,0) scale(1); }
  to   { transform:translate(-80px,-60px) scale(1.15); }
}

/* Horizontal scan line */
.hd-scan {
  position:absolute; left:0; right:0; height:1px;
  background:linear-gradient(
    90deg,
    transparent 0%,
    rgba(26,95,255,.7) 35%,
    rgba(212,0,24,.7) 65%,
    transparent 100%
  );
  top:0;
  animation:scanLine 5s linear infinite;
}
@keyframes scanLine {
  0%   { top:-2px; opacity:0; }
  5%   { opacity:1; }
  95%  { opacity:.8; }
  100% { top:100%; opacity:0; }
}

/* Subtle grid overlay */
.hd-grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:90px 90px;
  animation:gridIn 3s ease-out .5s forwards;
  opacity:0;
}
@keyframes gridIn { to { opacity:1; } }

/* Red/blue accent bar along the bottom */
.hd-redbar {
  position:absolute; bottom:0; left:0;
  height:3px;
  background:linear-gradient(90deg, var(--blue2), var(--red) 55%, transparent 100%);
  width:0;
  animation:barGrow 2.5s var(--ease) 1.2s forwards;
}
@keyframes barGrow { to { width:65%; } }

/* Watermark text */
.hero::before {
  content:'OIDON JAPAN';
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  z-index:2; pointer-events:none;
  font-family:'Montserrat',sans-serif;
  font-size:clamp(60px,10vw,140px); font-weight:900;
  letter-spacing:.35em; white-space:nowrap;
  color:rgba(255,255,255,.028);
  width:100%; text-align:center;
}

/* Diagonal bottom cut */
.hero::after {
  content:''; position:absolute; bottom:-1px; left:0; right:0; z-index:4;
  height:100px;
  background:linear-gradient(to bottom-right, transparent 49.5%, var(--white) 50%);
}

/* ── Hero inner content ── */
.hero-inner {
  position:relative; z-index:3;
  padding:0 80px 110px; max-width:1100px;
}

.hero-en {
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:700; letter-spacing:4px;
  color:var(--red); text-transform:uppercase;
  display:flex; align-items:center; gap:14px;
  margin-bottom:28px;
  animation:hFadeUp .8s var(--ease) .4s both;
}
.hero-en::before {
  content:''; display:block;
  width:36px; height:2px; background:var(--red);
}

.hero-ttl {
  font-size:clamp(50px,8.5vw,108px);
  font-weight:900; color:#fff; line-height:1.12;
  letter-spacing:-1.5px; margin-bottom:24px;
}
.hero-ttl .ht-line {
  display:block;
  animation:hFadeUp .9s var(--ease) both;
}
.hero-ttl .ht-line:nth-child(1) { animation-delay:.55s; }
.hero-ttl .ht-line:nth-child(2) { animation-delay:.78s; }

@keyframes hFadeUp {
  from { opacity:0; transform:translateY(40px); }
  to   { opacity:1; transform:none; }
}

.hero-sub {
  font-size:16px; color:rgba(255,255,255,.5);
  letter-spacing:.06em; margin-bottom:48px;
  animation:hFadeUp .9s var(--ease) 1s both;
}

/* CTA Button */
.hero-cta {
  display:inline-flex; align-items:center; gap:14px;
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:800; letter-spacing:2px;
  color:#fff; text-transform:uppercase;
  background:var(--red);
  padding:16px 40px;
  transition:background .3s, transform .3s, gap .3s;
  animation:hFadeUp .9s var(--ease) 1.2s both;
}
.hero-cta:hover { background:var(--red2); transform:translateX(6px); gap:22px; }
.hero-cta-arr { font-size:20px; }

/* Scroll hint */
.hero-scroll-cta {
  display:inline-flex; align-items:center; gap:16px;
  margin-left:36px;
  animation:hFadeUp .9s var(--ease) 1.4s both;
  opacity:0;
  animation-fill-mode:forwards;
}
.hsc-bar {
  display:block; width:48px; height:1px;
  background:rgba(255,255,255,.3);
  position:relative; overflow:hidden;
}
.hsc-bar::after {
  content:''; position:absolute; top:0; left:-100%;
  width:100%; height:100%;
  background:linear-gradient(90deg, var(--blue2), var(--red));
  animation:barSlide 2.5s ease 2s infinite;
}
@keyframes barSlide { to { left:100%; } }
.hsc-txt {
  font-family:'Montserrat',sans-serif;
  font-size:10px; font-weight:700; letter-spacing:4px;
  color:rgba(255,255,255,.4); text-transform:uppercase;
}

.hero-corp {
  position:absolute; right:0; bottom:120px; z-index:3;
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-family:'Montserrat',sans-serif;
  font-size:9px; font-weight:700; letter-spacing:4px;
  color:rgba(255,255,255,.18); padding-right:24px;
  animation:hFadeUp .9s var(--ease) 1.6s both;
}

/* ═══════════ TICKER ═══════════ */
.ticker {
  background:var(--blue);
  overflow:hidden; padding:12px 0;
  position:relative; z-index:10;
}
.ticker-wrap { overflow:hidden; }
.ticker-inner {
  display:flex; align-items:center;
  white-space:nowrap;
  animation:tickMove 30s linear infinite;
}
.ticker-inner span {
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:700;
  letter-spacing:2px; color:#fff; padding:0 28px;
}
.ticker-inner i { color:rgba(255,255,255,.3); font-style:normal; }
@keyframes tickMove { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* ═══════════ COMMON SECTION STYLES ═══════════ */
.eyebrow {
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:700; letter-spacing:4px;
  color:var(--blue2); display:flex; align-items:center; gap:10px;
  margin-bottom:14px; text-transform:uppercase;
}
.eyebrow::before {
  content:''; display:block;
  width:24px; height:2px; background:var(--blue2);
}
.eyebrow-w { color:rgba(255,255,255,.6); }
.eyebrow-w::before { background:var(--red); }

h2 {
  font-size:clamp(32px,4vw,52px); font-weight:900;
  line-height:1.15; letter-spacing:-.5px;
}
.h2-w { color:#fff; }

.s-title-row {
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:32px; margin-bottom:64px; flex-wrap:wrap;
}
.s-title-sub { font-size:15px; color:var(--gray3); max-width:360px; line-height:1.7; }
.s-title-sub-w { color:rgba(255,255,255,.45); }

/* Section padding */
section { padding:112px 0; }

/* ═══════════ MISSION ═══════════ */
.s-mission {
  background:var(--white); padding:120px 0;
  position:relative;
}
/* Blue top rule */
.s-mission::before {
  content:'';
  position:absolute; top:0; left:0; right:0;
  height:4px;
  background:linear-gradient(90deg, var(--blue2) 0%, var(--red) 50%, var(--blue2) 100%);
}

.mission-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:96px; align-items:center;
}

.mission-l blockquote {
  font-size:clamp(28px,3.5vw,44px); font-weight:900;
  line-height:1.4; letter-spacing:-.5px;
  color:var(--text); font-style:normal;
  border-left:5px solid var(--red);
  padding-left:28px; margin-bottom:40px;
}
.mission-author { display:flex; align-items:center; gap:20px; }
.author-bar { display:block; width:2px; height:52px; background:var(--blue2); flex-shrink:0; }
.author-name { font-size:17px; font-weight:700; }
.author-title { font-size:12px; color:var(--gray3); margin-top:4px; }

.mission-body { font-size:15px; line-height:1.95; color:#4A5A70; margin-bottom:18px; }

.mission-nums {
  display:flex; gap:0; margin-top:48px;
  border-top:2px solid var(--gray);
  border-bottom:2px solid var(--gray);
  padding:32px 0;
}
.mnum {
  flex:1; text-align:center;
  border-right:1px solid var(--gray);
  padding:0 16px;
}
.mnum:last-child { border-right:none; }
.mnum-n {
  display:block;
  font-family:'Montserrat',sans-serif;
  font-size:clamp(40px,5vw,60px); font-weight:900;
  line-height:1; color:var(--blue2); margin-bottom:8px;
}
.mnum-l { font-size:12px; color:var(--gray3); letter-spacing:.05em; }

/* ═══════════ BUSINESS ═══════════ */
.s-biz {
  background:var(--offwhite); padding:112px 0;
}

.biz-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:2px; margin-bottom:2px;
  background:var(--gray2);
}
.biz-card {
  background:var(--white); padding:48px 44px;
  position:relative;
  overflow:hidden;
  transition:background .4s var(--ease);
}
/* Blue/Red gradient top accent on hover */
.biz-card::after {
  content:''; position:absolute; top:0; left:0;
  width:0; height:3px;
  background:linear-gradient(90deg, var(--blue2), var(--red));
  transition:width .6s var(--ease);
}
.biz-card:hover::after { width:100%; }

/* Large number watermark */
.biz-card::before {
  content:attr(data-n);
  position:absolute; top:24px; right:32px;
  font-family:'Montserrat',sans-serif;
  font-size:80px; font-weight:900;
  color:rgba(16,72,184,.055); line-height:1;
  transition:color .4s;
}
.biz-card:hover { background:var(--navy); }
.biz-card:hover::before { color:rgba(26,95,255,.12); }
.biz-card:hover h3 { color:#fff; }
.biz-card:hover > p:not(.bc-brand) { color:rgba(255,255,255,.65); }
.biz-card:hover li { color:rgba(255,255,255,.6); border-bottom-color:rgba(255,255,255,.08); }
.biz-card:hover .bc-brand { color:rgba(255,255,255,.35); border-top-color:rgba(255,255,255,.08); }
.biz-card:hover .bc-icon svg { stroke:var(--blue3); }

/* Featured card (レンタカー) */
.biz-featured { background:var(--navy); }
.biz-featured::before { color:rgba(26,95,255,.1); }
.biz-featured::after { background:linear-gradient(90deg, var(--red), var(--red2)); width:100%; }
.biz-featured h3 { color:#fff; }
.biz-featured > p:not(.bc-brand) { color:rgba(255,255,255,.65); }
.biz-featured li { color:rgba(255,255,255,.6); border-bottom-color:rgba(255,255,255,.08); }
.biz-featured .bc-brand { color:rgba(255,255,255,.35); border-top-color:rgba(255,255,255,.08); }
.biz-featured .bc-icon svg { stroke:var(--blue3); }
.biz-featured:hover { background:var(--navy3); }

.bc-tag {
  display:inline-block;
  font-family:'Montserrat',sans-serif;
  font-size:9px; font-weight:800; letter-spacing:2px;
  background:var(--red); color:#fff;
  padding:4px 10px; margin-bottom:20px;
}
.bc-icon { width:40px; height:40px; margin-bottom:20px; }
.bc-icon svg { width:100%; height:100%; stroke:var(--blue2); }

.biz-card h3 {
  font-size:22px; font-weight:900; line-height:1.35;
  margin-bottom:14px; transition:color .4s;
}
.biz-card > p:not(.bc-brand) {
  font-size:14px; line-height:1.9; color:#4A5A70;
  margin-bottom:20px; transition:color .4s;
}
.biz-card ul { margin-bottom:20px; }
.biz-card li {
  font-size:13px; color:#5A6A80; padding:8px 0 8px 16px;
  border-bottom:1px solid var(--gray); position:relative;
  transition:color .4s, border-color .4s;
}
.biz-card li::before {
  content:''; position:absolute; left:0; top:50%;
  width:6px; height:2px; background:var(--blue2); transform:translateY(-50%);
}
.biz-featured li::before { background:var(--red); }
.bc-brand {
  font-size:11px; color:var(--gray3);
  padding-top:14px; border-top:1px solid var(--gray);
  transition:color .4s, border-color .4s;
}

/* Brands row */
.brands-row { margin-top:2px; background:var(--white); padding:40px 44px; }
.brands-ttl {
  font-family:'Montserrat',sans-serif;
  font-size:10px; font-weight:700; letter-spacing:3px;
  color:var(--gray3); margin-bottom:20px; text-transform:uppercase;
}
.brands-list { display:flex; flex-wrap:wrap; gap:8px; }
.brands-list span {
  font-size:12px; font-weight:500; color:var(--gray3);
  border:1px solid var(--gray2); padding:6px 16px;
  transition:color .3s, border-color .3s, background .3s;
}
.brands-list span:hover {
  color:var(--blue2); border-color:var(--blue2);
  background:rgba(26,95,255,.05);
}

/* ═══════════ DARK STATEMENT ═══════════ */
.s-statement {
  background:var(--navy); padding:100px 0;
  position:relative; overflow:hidden;
}
/* BG watermark */
.s-statement::before {
  content:'AUTHENTIC';
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  font-family:'Montserrat',sans-serif;
  font-size:clamp(70px,14vw,180px); font-weight:900;
  color:rgba(255,255,255,.025); white-space:nowrap;
  pointer-events:none; letter-spacing:.2em;
}
/* Blue gradient shine */
.s-statement::after {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(16,72,184,.25) 0%, transparent 60%);
  pointer-events:none;
}
.statement-en {
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:700; letter-spacing:5px;
  color:var(--red); text-transform:uppercase;
  margin-bottom:20px; position:relative; z-index:1;
  display:flex; align-items:center; gap:12px;
}
.statement-en::before { content:''; display:block; width:32px; height:1px; background:var(--red); }
.statement-jp {
  font-size:clamp(28px,4.5vw,54px); font-weight:900;
  color:#fff; line-height:1.45; position:relative; z-index:1;
}

/* ═══════════ MEDIA ═══════════ */
.s-media { background:var(--white); padding:112px 0; }
.media-layout {
  display:grid; grid-template-columns:1.3fr 1fr;
  gap:72px; align-items:center;
}
.vid-wrap {
  position:relative; padding-bottom:56.25%;
  overflow:hidden;
  box-shadow:0 32px 80px rgba(10,22,40,.15);
}
.vid-wrap::before {
  content:''; position:absolute;
  top:-2px; left:-2px; right:-2px; bottom:-2px; z-index:1;
  border:2px solid var(--blue2);
  pointer-events:none;
}
.vid-wrap iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }
.media-cat {
  font-family:'Montserrat',sans-serif;
  font-size:9px; font-weight:800; letter-spacing:2px;
  background:var(--red); color:#fff;
  padding:4px 12px; display:inline-block; margin-bottom:20px;
}
.media-ttl {
  font-size:clamp(22px,3vw,34px); font-weight:900;
  line-height:1.3; margin-bottom:14px;
}
.media-date {
  font-family:'Montserrat',sans-serif;
  font-size:11px; font-weight:600; letter-spacing:2px;
  color:var(--gray3); margin-bottom:20px;
}
.media-body { font-size:14px; line-height:1.9; color:#4A5A70; margin-bottom:14px; }
.media-link {
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:700; letter-spacing:1px;
  color:var(--blue2); border-bottom:1px solid var(--blue2);
  padding-bottom:4px; margin-top:8px;
  transition:color .3s, border-color .3s, gap .3s;
}
.media-link:hover { color:var(--red); border-color:var(--red); gap:16px; }

/* ═══════════ NEWS ═══════════ */
.s-news { background:var(--offwhite); padding:112px 0; }
.news-list { display:flex; flex-direction:column; }
.news-item {
  display:grid;
  grid-template-columns:110px 90px 1fr 28px;
  align-items:center; gap:24px;
  padding:22px 0;
  border-bottom:1px solid var(--gray2);
  transition:background .3s, padding .3s;
  cursor:pointer;
}
.news-item:first-child { border-top:1px solid var(--gray2); }
.news-item:hover {
  background:rgba(26,95,255,.04);
  padding-left:12px; padding-right:12px;
  margin:0 -12px;
}
.ni-date {
  font-family:'Montserrat',sans-serif;
  font-size:12px; font-weight:600; letter-spacing:1px; color:var(--gray3);
}
.ni-cat {
  font-family:'Montserrat',sans-serif;
  font-size:9px; font-weight:800; letter-spacing:1.5px;
  padding:4px 10px; text-align:center;
}
.cat-new   { background:var(--red);   color:#fff; }
.cat-info  { background:var(--blue2); color:#fff; }
.cat-biz   { background:var(--navy);  color:#fff; }
.cat-media { background:#6B21A8;      color:#fff; }
.ni-ttl { font-size:14px; font-weight:500; color:var(--text); line-height:1.5; }
.ni-arr {
  font-size:16px; color:var(--gray2);
  transition:transform .3s, color .3s;
  justify-self:end;
}
.news-item:hover .ni-arr { transform:translateX(5px); color:var(--blue2); }

/* ═══════════ COMPANY ═══════════ */
.s-company { background:var(--navy); padding:112px 0; }
.s-company h2 { color:#fff; }
.s-company .eyebrow { color:var(--blue3); }
.s-company .eyebrow::before { background:var(--blue3); }

.co-layout {
  display:grid; grid-template-columns:1.1fr 1fr;
  gap:64px; align-items:start;
}
.co-tbl { width:100%; border-collapse:collapse; }
.co-tbl tr { border-bottom:1px solid rgba(255,255,255,.07); }
.co-tbl tr:first-child { border-top:1px solid rgba(255,255,255,.07); }
.co-tbl th {
  width:130px; padding:18px 0; text-align:left; vertical-align:top;
  font-family:'Montserrat',sans-serif;
  font-size:10px; font-weight:700; letter-spacing:1.5px;
  color:var(--blue3); text-transform:uppercase;
}
.co-tbl td {
  padding:18px 0 18px 24px;
  font-size:14px; color:rgba(255,255,255,.75); line-height:1.75;
}
.co-tbl td small { display:block; font-size:11px; color:rgba(255,255,255,.35); margin-top:3px; }
.co-tbl a { color:var(--blue3); transition:color .3s; }
.co-tbl a:hover { color:var(--red); }
.co-map { overflow:hidden; }
.co-map iframe {
  width:100%; height:440px; border:none;
  filter:saturate(.4) brightness(.7) hue-rotate(180deg);
  transition:filter .5s;
}
.co-map:hover iframe { filter:saturate(.6) brightness(.8) hue-rotate(180deg); }

/* ═══════════ CONTACT ═══════════ */
.s-contact {
  background:linear-gradient(145deg, var(--navy3) 0%, var(--blue) 55%, var(--navy2) 100%);
  padding:112px 0; position:relative; overflow:hidden;
}
/* Subtle cross-hatch pattern */
.s-contact::before {
  content:'';
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:60px 60px;
  pointer-events:none;
}

.ct-layout {
  display:grid; grid-template-columns:340px 1fr;
  gap:80px; align-items:start;
}
.ct-info { display:flex; flex-direction:column; gap:12px; }
.ct-box {
  display:flex; flex-direction:column; gap:5px;
  border:1px solid rgba(255,255,255,.15);
  padding:20px 24px; position:relative; overflow:hidden;
  transition:border-color .3s, background .3s;
}
.ct-box::before {
  content:''; position:absolute; left:0; top:0;
  width:3px; height:0;
  background:var(--red);
  transition:height .45s var(--ease);
}
a.ct-box:hover { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.3); }
a.ct-box:hover::before { height:100%; }
.ctb-label {
  font-family:'Montserrat',sans-serif;
  font-size:9px; font-weight:800; letter-spacing:3px;
  color:var(--red); text-transform:uppercase;
}
.ctb-val { font-size:15px; font-weight:700; color:#fff; line-height:1.4; }
.ctb-sub { font-size:11px; color:rgba(255,255,255,.35); }

.ct-form { display:flex; flex-direction:column; gap:18px; }
.ff { display:flex; flex-direction:column; gap:7px; }
.ff-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.ff label {
  font-size:11px; font-weight:700; letter-spacing:.5px;
  color:rgba(255,255,255,.55);
  display:flex; align-items:center; gap:8px;
}
.ff label em {
  font-style:normal; font-size:9px; font-weight:800;
  background:var(--red); color:#fff; padding:2px 7px;
}
.ff input,.ff select,.ff textarea {
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.15);
  padding:13px 16px;
  font-size:14px; font-family:inherit; color:#fff;
  outline:none; resize:vertical;
  transition:border-color .3s, background .3s;
  -webkit-appearance:none;
}
.ff input::placeholder,.ff textarea::placeholder { color:rgba(255,255,255,.25); }
.ff select option { background:var(--navy); color:#fff; }
.ff input:focus,.ff select:focus,.ff textarea:focus {
  border-color:var(--blue3); background:rgba(255,255,255,.1);
}
.ct-submit {
  display:flex; align-items:center; justify-content:space-between;
  gap:12px;
  background:var(--red); color:#fff; border:none; cursor:pointer;
  padding:17px 36px; width:100%;
  font-size:14px; font-weight:700; font-family:inherit; letter-spacing:1px;
  box-shadow:0 8px 32px rgba(212,0,24,.4);
  transition:background .3s, transform .2s, box-shadow .3s;
}
.cs-arr { font-size:20px; transition:transform .3s; }
.ct-submit:hover {
  background:var(--red2); transform:translateX(4px);
  box-shadow:0 12px 40px rgba(212,0,24,.6);
}
.ct-submit:hover .cs-arr { transform:translateX(5px); }

/* ═══════════ FOOTER ═══════════ */
.footer { background:var(--navy); border-top:1px solid rgba(26,95,255,.15); padding:72px 0 0; }
.ft-top {
  display:grid; grid-template-columns:1.4fr 1fr;
  gap:80px; padding-bottom:56px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.ft-brand img { height:32px; filter:brightness(0) invert(1); margin-bottom:16px; }
.ft-brand p { font-size:13px; color:rgba(255,255,255,.4); margin-bottom:8px; font-weight:500; }
.ft-brand small { font-size:11px; color:rgba(255,255,255,.2); }
.ft-nav { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.ft-nav-col > p {
  font-family:'Montserrat',sans-serif;
  font-size:10px; font-weight:700; letter-spacing:3px;
  color:var(--blue3); margin-bottom:18px; text-transform:uppercase;
}
.ft-nav-col a {
  display:block; font-size:13px;
  color:rgba(255,255,255,.4); padding:7px 0;
  border-bottom:1px solid rgba(255,255,255,.04);
  transition:color .3s, padding-left .3s;
}
.ft-nav-col a:hover { color:#fff; padding-left:7px; }
.ft-bottom {
  display:flex; justify-content:space-between; align-items:center;
  padding:24px 0; flex-wrap:wrap; gap:12px;
  border-top:1px solid rgba(26,95,255,.12);
}
.ft-bottom p { font-size:11px; color:rgba(255,255,255,.2); }
.ft-links { display:flex; gap:28px; }
.ft-links a { font-size:12px; color:rgba(255,255,255,.25); transition:color .3s; }
.ft-links a:hover { color:#fff; }

/* ═══════════ RESPONSIVE ═══════════ */
@media (max-width:1080px) {
  .hdr-nav,.hdr-contact { display:none; }
  .hdr-menu { display:flex; }
  .hdr-wrap { padding:0 28px; gap:0; }
  .w { padding:0 28px; }
  .hero-inner { padding:0 40px 100px; }
  .hero-scroll-cta { display:none; }
  .mission-grid { grid-template-columns:1fr; gap:56px; }
  .biz-grid { grid-template-columns:1fr; }
  .media-layout { grid-template-columns:1fr; }
  .co-layout { grid-template-columns:1fr; }
  .co-map iframe { height:300px; }
  .ct-layout { grid-template-columns:1fr; }
  .ft-top { grid-template-columns:1fr; }
  section { padding:88px 0; }
}
@media (max-width:640px) {
  .w { padding:0 20px; }
  .hero-inner { padding:0 24px 80px; }
  .hero-ttl { font-size:clamp(40px,12vw,72px); }
  .hero::before { display:none; }
  .hero::after { height:60px; }
  .hero-corp { display:none; }
  .mission-nums { flex-direction:column; gap:0; }
  .mnum { border-right:none; border-bottom:1px solid var(--gray); padding:20px 0; }
  .mnum:last-child { border-bottom:none; }
  .news-item { grid-template-columns:90px 80px 1fr; }
  .ni-arr { display:none; }
  .ff-row { grid-template-columns:1fr; }
  .ft-nav { grid-template-columns:1fr; }
  .biz-card { padding:36px 28px; }
  section { padding:72px 0; }
  .s-company { padding:72px 0; }
}
