/* =========================================================
   DAIICHI BUSSAN LOWER PAGE COMMON / v64
   Inherits TOP: white + black + DAIICHI red, large typography,
   generous negative space, crisp rules and diagonal accents.
   ========================================================= */
.subpage-body{background:#fff;color:#181818}
.sub-main{overflow:hidden;padding-top:var(--header-h)}
.desktop-nav a.is-current{color:var(--omega-red);font-weight:800}
.desktop-nav a.is-current::after{right:0}

.sub-hero{
  position:relative;
  min-height:clamp(520px,64vw,760px);
  height:calc(78svh - var(--header-h));
  max-height:760px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  background:#f5f5f3;
  border-bottom:1px solid #ddd;
  isolation:isolate;
}
.sub-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:linear-gradient(180deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.76) 34%,rgba(255,255,255,.55) 100%);
  pointer-events:none;
}
.sub-hero::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:8px;
  background:var(--omega-red);
  z-index:8;
}
.sub-hero-photo{
  position:absolute;
  z-index:-3;
  inset:0 14.8vw 0 0;
  background:url("assets/company/kyoto-city.webp") center 48% / cover no-repeat;
  filter:grayscale(1) contrast(.78) brightness(1.18);
  opacity:.42;
  transform:scale(1.018);
}
.sub-hero-bgword{
  position:absolute;
  z-index:-1;
  left:-.025em;
  top:43%;
  transform:translateY(-50%);
  color:rgba(15,15,15,.40);
  font-size:clamp(120px,14.4vw,255px);
  font-weight:900;
  letter-spacing:-.07em;
  line-height:.72;
  white-space:nowrap;
  user-select:none;
  pointer-events:none;
}

.about-page .sub-hero-bgword{
  letter-spacing:-0.05em;
}

.sub-hero-red{
  position:absolute;
  z-index:2;
  right:0;
  top:0;
  width:15.8vw;
  min-width:210px;
  height:100%;
  background:#2c2c31;
  clip-path:polygon(16% 0,100% 0,100% 100%,0 100%);
  overflow:hidden;
}
.sub-hero-red::after{
  content:"";
  position:absolute;
  right:-18%;
  bottom:23%;
  width:170%;
  height:22px;
  background:linear-gradient(to bottom,var(--omega-red-dark) 0 10px,transparent 10px 20px,var(--omega-red-dark) 20px 22px);
  transform:rotate(-34deg);
  transform-origin:right center;
}
.sub-hero-mark{
  position:absolute;
  z-index:3;
  right:1.8vw;
  top:52%;
  transform:translateY(-50%);
  width:clamp(118px,10vw,180px);
  height:clamp(118px,10vw,180px);
  opacity:.10;
  filter:grayscale(1) brightness(4.4);
  pointer-events:none;
}
.sub-hero-mark img{width:100%;height:100%;object-fit:contain}
.sub-hero-inner{
  position:relative;
  z-index:4;
  width:min(100% - 9vw,1540px);
  margin:0 auto;
  padding:0 0 clamp(92px,9vw,138px);
}
.sub-hero-kicker{
  margin:0 0 15px;
  color:var(--omega-red);
  font-size:10px;
  font-weight:850;
  letter-spacing:.25em;
}
.sub-hero h1{
  margin:0;
  color:#171717;
  font-size:clamp(58px,5.15vw,90px);
  font-family:"Helvetica Neue",Arial,-apple-system,BlinkMacSystemFont,sans-serif;
  font-weight:300;
  letter-spacing:-.065em;
  line-height:.82;
}
.sub-hero-ja{
  margin:20px 0 0 3px;
  font-size:clamp(20px,1.55vw,27px);
  font-weight:800;
  letter-spacing:.06em;
}
.sub-hero-meta{
  position:absolute;
  z-index:5;
  right:1.1vw;
  top:34px;
  display:flex;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.76);
  font-size:7px;
  font-weight:750;
  letter-spacing:.20em;
  white-space:nowrap;
}
.sub-hero-meta i{width:28px;height:1px;background:rgba(255,255,255,.45)}

.about-local-nav{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  width:min(100% - 9vw,1540px);
  margin:-38px auto 0;
  position:relative;
  z-index:8;
  background:#fff;
  box-shadow:0 16px 45px rgba(0,0,0,.09);
}
.about-local-nav a{
  position:relative;
  min-height:116px;
  padding:25px 54px 22px 70px;
  border-right:1px solid #e5e5e5;
  transition:.28s ease;
}
.about-local-nav a:last-child{border-right:0}
.about-local-nav a>span{position:absolute;left:24px;top:28px;color:#aaa;font-size:10px;font-weight:800;letter-spacing:.08em}
.about-local-nav b{display:block;font-size:clamp(17px,1.35vw,22px);letter-spacing:.06em}
.about-local-nav small{display:block;margin-top:7px;color:#888;font-size:11px}
.about-local-nav a::after{content:"↗";position:absolute;right:22px;top:24px;color:#bbb;transition:.28s ease}
.about-local-nav a:hover{background:#f7f7f5;padding-left:78px}
.about-local-nav a:hover::after{color:var(--omega-red);transform:translate(3px,-3px)}
.about-local-nav a.is-active{background:var(--omega-red);color:#fff}
.about-local-nav a.is-active>span,.about-local-nav a.is-active small,.about-local-nav a.is-active::after{color:rgba(255,255,255,.65)}

.breadcrumb-wrap{width:min(100% - 9vw,1540px);margin:0 auto}
.breadcrumb{display:flex;align-items:center;gap:11px;padding:34px 0 0;color:#999;font-size:9px;letter-spacing:.16em}
.breadcrumb strong{color:#333}
.breadcrumb a:hover{color:var(--omega-red)}

.section-shell{width:min(100% - 9vw,1540px);margin:0 auto;padding:clamp(95px,10vw,170px) 0}
.section-heading{display:flex;align-items:flex-start;gap:20px;margin-bottom:clamp(52px,5vw,82px)}
.section-num{margin:5px 0 0;color:var(--omega-red);font-size:10px;font-weight:850;letter-spacing:.16em}
.section-en{margin:0 0 10px;color:var(--omega-red);font-size:10px;font-weight:850;letter-spacing:.23em}
.section-heading h2{margin:0;font-size:clamp(38px,4vw,66px);letter-spacing:-.04em;line-height:1;font-weight:900}

.profile-layout{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(560px,1.55fr);gap:clamp(70px,9vw,160px);align-items:start}
.profile-aside{position:sticky;top:calc(var(--header-h) + 28px);padding-top:14px;border-top:2px solid var(--omega-red)}
.profile-aside p{margin:20px 0 22px;font-size:clamp(20px,1.7vw,27px);font-weight:800;line-height:1.65;letter-spacing:.025em}
.profile-aside span{color:#aaa;font-size:9px;font-weight:700;letter-spacing:.18em}
.profile-list{margin:0;border-top:1px solid #171717}
.profile-row{display:grid;grid-template-columns:minmax(170px,.68fr) minmax(280px,1.3fr);gap:32px;padding:26px 4px;border-bottom:1px solid #ddd;transition:background .25s ease,padding .25s ease}
.profile-row:hover{background:#f7f7f5;padding-left:12px;padding-right:12px}
.profile-row dt{display:flex;align-items:baseline;gap:20px;color:#555;font-size:clamp(15px,1.05vw,17px);font-weight:750;line-height:1.7}
.profile-row dt span{color:#aaa;font-size:9px;letter-spacing:.1em}
.profile-row dd{margin:0;font-size:clamp(15px,1.15vw,18px);font-weight:650;line-height:1.7}
.profile-row dd small{font-size:12px;font-weight:500;color:#888}

.company-people{padding-top:30px}
.company-profile{background:#fff}
.company-people{position:relative;isolation:isolate;overflow:visible}
.company-people::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:#f7f7f5}
.company-organization{background:#fff}
.officer-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #1d1d1d;border-bottom:1px solid #ddd;background:transparent}
.officer-grid article{position:relative;z-index:1;min-height:220px;padding:34px 30px;border-right:1px solid #ddd;display:flex;flex-direction:column;justify-content:flex-end;background:#fff}
.officer-grid article:last-child{border-right:0}
.officer-grid article::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:transparent;z-index:2}
.officer-grid article.is-president::before{background:var(--omega-red)}
.officer-grid article>*{position:relative;z-index:2}
.officer-grid article p{margin:0 0 14px;color:#888;font-size:11px;letter-spacing:.06em}
.officer-grid article h3{margin:0;font-size:clamp(20px,1.8vw,30px);letter-spacing:.03em}


.company-people-diagonal{position:absolute;z-index:1;left:50%;width:100vw;transform:translateX(-50%);top:0;bottom:0;display:flex;justify-content:flex-end;gap:28px;padding-right:22px;pointer-events:none;overflow:hidden}
.company-people-diagonal i{display:block;width:68px;height:100%;background:rgba(115,120,124,.18);transform:skewX(-34deg);transform-origin:center;flex:0 0 68px}

.company-base{position:relative;background:var(--omega-red);color:#fff;padding:clamp(90px,9vw,150px) 0;overflow:hidden}
.company-base::before{content:"DAIICHIBUSSAN";position:absolute;pointer-events:none;left:-.04em;bottom:-.09em;color:rgba(255,255,255,.055);font-size:clamp(120px,18vw,330px);font-weight:950;letter-spacing:-.085em;line-height:.78;white-space:nowrap}
.company-base::after{content:"";position:absolute;pointer-events:none;right:-8vw;top:-8%;width:30vw;height:124%;border-left:2px solid #c81924;border-right:0;transform:skewX(-30deg)}
.company-base-inner{position:relative;z-index:2;width:min(100% - 9vw,1540px);margin:0 auto}
.section-heading-light .section-num,.section-heading-light .section-en{color:rgba(255,255,255,.62)}
.section-heading-light h2{color:#fff}
.base-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.base-card{min-height:560px;padding:34px 38px 38px;background:#fff;color:#181818;display:flex;flex-direction:column;transition:.3s ease}
.base-card:hover{transform:translateY(-7px);box-shadow:0 20px 50px rgba(72,0,5,.25)}
.base-card-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid #ddd;color:#999;font-size:9px;font-weight:800;letter-spacing:.18em}
.base-card-head b{color:var(--omega-red);font-size:11px}
.base-card-copy{display:flex;flex-direction:column;min-height:210px}
.base-label{margin:34px 0 8px;color:var(--omega-red);font-size:9px;font-weight:850;letter-spacing:.2em}
.base-card h3{margin:0 0 26px;font-size:clamp(30px,2.6vw,42px);letter-spacing:-.03em}
.base-card address{margin:auto 0 0;font-style:normal;font-size:14px;line-height:1.8;color:#555}
.base-map{position:relative;height:250px;margin-top:28px;overflow:hidden;background:#eee;border-top:1px solid #e2e2e2}
.base-map iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(1) contrast(.92);transition:filter .3s ease,transform .3s ease}
.base-card:hover .base-map iframe{filter:grayscale(.25) contrast(1);transform:scale(1.012)}
.base-tel{margin:16px 0 0;font-size:11px;font-weight:800;letter-spacing:.08em}

.company-related{padding-bottom:clamp(105px,10vw,170px)}
.related-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #222}
.related-list p{position:relative;margin:0;padding:30px 30px 30px 76px;border-bottom:1px solid #ddd;font-size:clamp(17px,1.4vw,23px);font-weight:750}
.related-list p:nth-child(odd){border-right:1px solid #ddd}
.related-list p span{position:absolute;left:22px;top:33px;color:var(--omega-red);font-size:9px;letter-spacing:.12em}

.about-next{display:grid;grid-template-columns:1fr 1fr;background:#f3f3f1;border-top:1px solid #ddd}
.about-next-card{position:relative;min-height:250px;padding:48px clamp(40px,5vw,90px);display:flex;align-items:flex-end;gap:26px;border-right:1px solid #d5d5d5;overflow:hidden;transition:.35s ease}
.about-next-card:last-child{border-right:0}
.about-next-card::before{content:"";position:absolute;inset:0;background:var(--omega-red);transform:translateY(101%);transition:transform .38s cubic-bezier(.2,.7,.25,1)}
.about-next-card>*{position:relative;z-index:2}
.about-next-card:hover{color:#fff}
.about-next-card:hover::before{transform:none}
.about-next-no{align-self:flex-start;color:#aaa;font-size:10px;letter-spacing:.12em}
.about-next-card small{display:block;margin-bottom:10px;color:#999;font-size:9px;font-weight:800;letter-spacing:.18em}
.about-next-card strong{display:block;font-size:clamp(28px,3vw,50px);letter-spacing:-.04em}
.about-next-card p{margin:8px 0 0;color:#777;font-size:12px}
.about-next-card>b{margin-left:auto;font-size:24px;color:#aaa;align-self:center}
.about-next-card:hover small,.about-next-card:hover p,.about-next-card:hover .about-next-no,.about-next-card:hover>b{color:rgba(255,255,255,.7)}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.25,1)}
.reveal.is-visible{opacity:1;transform:none}

@media(max-width:980px){
  .sub-main{padding-top:var(--header-h)}
  .sub-hero{height:62svh;min-height:520px}
  .sub-hero-photo{inset:0 17vw 0 0;background-position:58% 48%}
  .sub-hero-bgword{font-size:17vw;top:43%;left:-.02em}
  .sub-hero-inner{width:calc(100% - 44px);padding-bottom:86px}
  .sub-hero-red{width:18vw;min-width:165px}
  .sub-hero-mark{right:1.3vw;width:130px;height:130px}
  .sub-hero-meta{display:none}
  .about-local-nav{width:calc(100% - 32px);margin-top:-30px}
  .about-local-nav a{min-height:94px;padding:20px 28px 18px 50px}
  .about-local-nav a>span{left:17px;top:23px}
  .about-local-nav a::after{right:14px;top:20px}
  .breadcrumb-wrap,.section-shell,.company-base-inner{width:calc(100% - 44px)}
  .profile-layout{grid-template-columns:1fr;gap:42px}
  .profile-aside{position:static;display:flex;justify-content:space-between;align-items:flex-end;gap:30px}
  .profile-aside p{margin-bottom:0}
  .officer-grid{grid-template-columns:repeat(2,1fr)}
  .officer-grid article{min-height:180px;border-bottom:1px solid #ddd}
  .officer-grid article:nth-child(2n){border-right:0}
  .officer-grid article:last-child{border-right:1px solid #ddd}
  .about-next-card{min-height:210px;padding:38px 30px}
}

@media(max-width:640px){
  .sub-hero{height:59svh;min-height:470px;align-items:flex-end}
  .sub-hero-photo{inset:0 19vw 0 0;background-position:68% 50%;opacity:.38}
  .sub-hero-bgword{font-size:22vw;left:-.02em;top:41%;letter-spacing:-.075em}
  .sub-hero-red{width:22vw;min-width:92px;clip-path:polygon(23% 0,100% 0,100% 100%,0 100%)}
  .sub-hero-mark{right:-1vw;top:46%;width:86px;height:86px;opacity:.09}
  .sub-hero-inner{width:calc(100% - 36px);padding-bottom:66px;padding-right:21vw}
  .sub-hero-kicker{font-size:8px;margin-bottom:10px;letter-spacing:.18em}
  .sub-hero h1{font-size:clamp(46px,14vw,72px);line-height:.82}
  .sub-hero-ja{margin-top:14px;font-size:17px}

  .about-local-nav{width:calc(100% - 24px);margin-top:-22px;grid-template-columns:1fr}
  .about-local-nav a{min-height:70px;padding:16px 42px 13px 48px;border-right:0;border-bottom:1px solid #e5e5e5}
  .about-local-nav a:last-child{border-bottom:0}
  .about-local-nav a>span{left:16px;top:18px}
  .about-local-nav b{font-size:15px}
  .about-local-nav small{margin-top:3px;font-size:9px}
  .about-local-nav a::after{top:16px}
  .about-local-nav a:hover{padding-left:54px}

  .breadcrumb-wrap,.section-shell,.company-base-inner{width:calc(100% - 36px)}
  .breadcrumb{padding-top:24px;font-size:8px;gap:8px}
  .section-shell{padding:78px 0}
  .section-heading{gap:13px;margin-bottom:40px}
  .section-en{font-size:8px;margin-bottom:7px}
  .section-heading h2{font-size:38px}
  .profile-aside{display:block;padding-top:10px}
  .profile-aside p{font-size:18px;line-height:1.6}
  .profile-aside span{display:block;margin-top:18px;font-size:8px}
  .profile-row{grid-template-columns:1fr;padding:20px 2px;gap:10px}
  .profile-row dt{gap:12px;font-size:11px}
  .profile-row dd{padding-left:24px;font-size:15px}
  .profile-row dd small{display:block;margin-top:4px;font-size:10px}

  .company-people{padding-top:12px}
  .officer-grid{grid-template-columns:1fr}
  .officer-grid article,.officer-grid article:last-child{min-height:128px;border-right:0}
  .officer-grid article{padding:24px 20px}
  .officer-grid article p{margin-bottom:8px;font-size:10px}
  .officer-grid article h3{font-size:24px}

  .company-base{padding:76px 0}
  .company-base::before{font-size:30vw;bottom:-.03em;left:-.02em}
  .base-grid{grid-template-columns:1fr;gap:10px}
  .base-card{min-height:0;padding:26px 24px 24px}
  .base-card-copy{min-height:190px}
  .base-map{height:220px;margin-top:22px}
  .base-label{margin-top:34px}
  .base-card h3{font-size:31px}
  .base-card address{font-size:13px}

  .related-list{grid-template-columns:1fr}
  .related-list p,.related-list p:nth-child(odd){border-right:0}
  .related-list p{padding:23px 20px 23px 54px;font-size:16px}
  .related-list p span{left:14px;top:26px}

  .about-next{grid-template-columns:1fr}
  .about-next-card{min-height:165px;padding:28px 22px;border-right:0;border-bottom:1px solid #d5d5d5}
  .about-next-card strong{font-size:31px}
  .about-next-card>b{font-size:20px}
}

@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
}

/* v65: Company organization chart */
.company-organization{padding-top:clamp(35px,5vw,90px)}
.organization-content{border-top:1px solid #dedede;padding-top:clamp(24px,3vw,46px)}
.organization-figure{margin:0}
.organization-figure img{display:block;width:100%;height:auto;max-width:1448px;margin:0 auto}
.organization-figure figcaption{margin-top:16px;color:#888;font-size:11px;letter-spacing:.04em;text-align:right}
.organization-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:30px;flex-wrap:wrap}
.organization-actions p{margin:0;color:#888;font-size:12px;line-height:1.7}
.organization-open{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:48px;padding:12px 20px;border:1px solid #d5d5d5;color:#222;font-size:12px;font-weight:750;text-decoration:none;transition:border-color .2s,color .2s,background .2s}
.organization-open:hover,.organization-open:focus-visible{border-color:var(--omega-red);color:var(--omega-red);background:#faf7f7}
.organization-open span{font-size:18px;line-height:1}
@media(max-width:640px){
  .company-organization{padding-top:20px}
  .organization-content{padding-top:20px}
  .organization-figure figcaption{text-align:left}
  .organization-actions{margin-top:20px;gap:12px}
  .organization-open{width:100%}
}


/* v108 ABOUTローカルナビを4項目化 */
@media(min-width:901px){
  .about-local-nav a{padding-left:58px;padding-right:42px}
  .about-local-nav a>span{left:19px}
  .about-local-nav a::after{right:16px}
  .about-local-nav a:hover{padding-left:64px}
}

.company-office-link{position:relative;z-index:3;
  display:inline-flex;
  align-items:center;
  gap:28px;
  padding:12px 0;
  border-bottom:1px solid currentColor;
  color:#fff;
  font-size:10px;
  font-weight:850;
  letter-spacing:.18em;
  transition:opacity .2s ease;
}
.company-office-link:hover{opacity:.72}


/* v196: COMPANY first view half-height on smartphones only */
@media (max-width:640px){
  .about-page .sub-hero{
    height:29.5svh;
    min-height:235px;
    max-height:360px;
  }
  .about-page .sub-hero-bgword{
    top:38%;
    font-size:19vw;
  }
  .about-page .sub-hero-inner{
    padding-bottom:30px;
  }
  .about-page .sub-hero-mark{top:48%;}
  .about-page .sub-hero-ja{margin-top:10px;}
}

/* =========================================================
   v218 SUB HERO edge fix
   写真レイヤーを右側の斜めパネルの下まで延長し、境目の白い隙間を防止
   ========================================================= */
.sub-hero .sub-hero-photo,
.sub-hero .amusement-hero-photo,
.sub-hero .food-hero-photo,
.sub-hero .recruit-hero-photo,
.sub-hero .community-hero-media,
.sub-hero .business-hero-visuals{
  right:0 !important;
}
