/* ── PAGE HERO ── */
.page-hero{
  padding:8rem 4rem 4rem;background:var(--dark);text-align:center;
  position:relative;overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='52' height='90'%3E%3Cpolygon points='26,0 52,45 0,45' fill='none' stroke='rgba(255,255,255,.04)' stroke-width='.5'/%3E%3Cpolygon points='26,90 0,45 52,45' fill='none' stroke='rgba(255,255,255,.04)' stroke-width='.5'/%3E%3C/svg%3E");
  background-size:52px 90px;
}
.page-hero-inner{position:relative;z-index:1;max-width:700px;margin:0 auto;}
.page-hero-en{
  font-family:var(--ff);font-size:.7rem;font-weight:800;
  letter-spacing:.35em;color:var(--blue);text-transform:uppercase;margin-bottom:.6rem;
}
.page-hero-deco{width:40px;height:2px;background:linear-gradient(90deg,var(--blue),rgba(0,188,212,.3));margin:0 auto .8rem;}
.page-hero-title{
  font-family:var(--ffj);font-size:clamp(1.6rem,3vw,2.4rem);
  font-weight:700;color:#fff;line-height:1.5;margin-bottom:1rem;
}
.page-hero-sub{
  font-family:var(--ffj);font-size:.85rem;font-weight:300;
  color:rgba(255,255,255,.45);line-height:2;
}

/* ── COMPANY INFO TABLE ── */
.company-section{padding:5rem 4rem;background:var(--bg);}
.company-inner{max-width:900px;margin:0 auto;}
.company-table{width:100%;border-collapse:collapse;}
.company-table tr{border-bottom:1px solid var(--border);}
.company-table th,
.company-table td{
  padding:1.5rem 1.2rem;
  font-family:var(--ffj);font-size:.88rem;
  text-align:left;vertical-align:top;
}
.company-table th{
  font-weight:700;color:var(--ink-dark);
  width:160px;white-space:nowrap;
  letter-spacing:.04em;
  position:relative;
  padding-left:1.2rem;
}
.company-table th::before{
  content:'';position:absolute;left:0;top:1.5rem;
  width:3px;height:calc(100% - 3rem);
  background:var(--blue);border-radius:2px;
}
.company-table td{
  font-weight:400;color:rgba(26,26,26,.7);
  line-height:2;
}
.company-table td .sub-label{
  font-family:var(--ff);font-size:.65rem;font-weight:700;
  letter-spacing:.12em;color:var(--blue);
  display:block;margin-top:1.2rem;margin-bottom:.3rem;
}
.company-table td .sub-label:first-child{margin-top:0;}

/* ── OFFICE SECTION ── */
.office-section{padding:5rem 4rem;background:var(--bg2);}
.office-inner{max-width:900px;margin:0 auto;}
.office-title{
  font-family:var(--ff);font-size:.7rem;font-weight:800;
  letter-spacing:.3em;color:var(--blue);text-transform:uppercase;
  margin-bottom:.6rem;
}
.office-title-ja{
  font-family:var(--ffj);font-size:clamp(1.3rem,2.5vw,1.8rem);
  font-weight:700;color:var(--ink-dark);margin-bottom:2.5rem;
}
.office-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;
}
.office-card{
  background:#fff;border:1px solid var(--border);
  padding:2rem;transition:box-shadow .3s;
}
.office-card:hover{box-shadow:0 8px 30px rgba(0,0,0,.06);}
.office-card-label{
  font-family:var(--ff);font-size:.6rem;font-weight:700;
  letter-spacing:.2em;color:var(--blue);margin-bottom:.8rem;
  display:flex;align-items:center;gap:.5rem;
}
.office-card-label::after{content:'';display:block;width:20px;height:1px;background:var(--blue);opacity:.4;}
.office-card-name{
  font-family:var(--ffj);font-size:1.1rem;font-weight:700;
  color:var(--ink-dark);margin-bottom:1rem;
}
.office-card-address{
  font-family:var(--ffj);font-size:.82rem;font-weight:300;
  color:rgba(26,26,26,.55);line-height:2;
  margin-bottom:1.2rem;
  padding-bottom:1.2rem;
  border-bottom:1px solid var(--border);
}
.office-card-access-title{
  font-family:var(--ff);font-size:.58rem;font-weight:700;
  letter-spacing:.15em;color:rgba(26,26,26,.35);
  margin-bottom:.6rem;
}
.office-card-access{
  list-style:none;display:flex;flex-direction:column;gap:.4rem;
}
.office-card-access li{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;
  color:rgba(26,26,26,.5);line-height:1.7;
  padding-left:1rem;position:relative;
}
.office-card-access li::before{
  content:'';position:absolute;left:0;top:.55rem;
  width:5px;height:5px;border-radius:50%;
  background:var(--blue);opacity:.4;
}

/* ── MAP ── */
.map-section{
  width:100%;height:400px;
  position:relative;overflow:hidden;
  background:var(--bg2);
}
.map-tabs{
  position:absolute;top:1rem;left:50%;transform:translateX(-50%);z-index:10;
  display:flex;gap:.4rem;
}
.map-tab{
  font-family:var(--ff);font-size:.68rem;font-weight:700;
  letter-spacing:.08em;
  padding:.45rem 1.2rem;border-radius:100vmax;
  background:#fff;color:var(--ink-dark);
  border:1px solid var(--border);cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.map-tab.active{background:var(--ink-dark);color:#fff;border-color:var(--ink-dark);}
.map-tab:hover:not(.active){border-color:var(--blue);color:var(--blue);}
.map-iframe{
  width:100%;height:100%;border:0;
  position:absolute;inset:0;
  transition:opacity .3s;
}
.map-iframe.hidden{opacity:0;pointer-events:none;}

/* ── CTA ── */
.cta-section{
  padding:4rem;background:var(--dark);text-align:center;
  position:relative;overflow:hidden;
}
.cta-section::before{
  content:'VEXUM';position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--ff);font-size:clamp(5rem,12vw,10rem);
  font-weight:900;letter-spacing:.1em;
  color:rgba(255,255,255,.02);pointer-events:none;white-space:nowrap;
}
.cta-inner{position:relative;z-index:1;max-width:600px;margin:0 auto;}
.cta-title{
  font-family:var(--ffj);font-size:clamp(1.2rem,2vw,1.5rem);
  font-weight:700;color:#fff;line-height:1.6;margin-bottom:1.5rem;
}
.cta-buttons{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;}
.cta-btn-primary{
  display:inline-block;font-family:var(--ffj);font-size:.78rem;font-weight:700;
  letter-spacing:.08em;padding:.8rem 2rem;
  background:var(--accent);color:#fff;border-radius:40px;text-decoration:none;
  transition:background .25s,transform .25s;
}
.cta-btn-primary:hover{background:#D4941A;transform:translateY(-2px);}
.cta-btn-secondary{
  display:inline-block;font-family:var(--ffj);font-size:.78rem;font-weight:500;
  letter-spacing:.06em;padding:.8rem 2rem;
  background:transparent;color:rgba(255,255,255,.6);border-radius:40px;
  border:1px solid rgba(255,255,255,.2);text-decoration:none;
  transition:border-color .25s,color .25s;
}
.cta-btn-secondary:hover{border-color:rgba(255,255,255,.5);color:#fff;}

/* ══════════════════════════════════════
   RESPONSIVE — 1024px
══════════════════════════════════════ */
@media(max-width:1024px){
  .office-grid{gap:1.5rem;}
}

/* ══════════════════════════════════════
   RESPONSIVE — 640px
══════════════════════════════════════ */
@media(max-width:640px){
  .page-hero{padding:6rem 1.4rem 3rem;}
  .page-hero-title{font-size:1.4rem;}

  .company-section{padding:3rem 1.4rem;}
  .company-table th{display:block;width:100%;padding-bottom:.3rem;border:none;}
  .company-table td{display:block;width:100%;padding-top:0;padding-left:1.2rem;}
  .company-table tr{display:block;padding:1rem 0;}

  .office-section{padding:3rem 1.4rem;}
  .office-grid{grid-template-columns:1fr;gap:1.5rem;}

  .map-section{height:300px;}

  .cta-section{padding:3rem 1.4rem;}
  .cta-buttons{flex-direction:column;align-items:center;}
}
