/* =========================================================
   DAIICHI BUSSAN / PROPERTY v109
   出店用地募集
   ========================================================= */

.estate-page .sub-hero-bgword{
  top:43%;
  font-size:clamp(90px,12vw,215px);
  color:rgba(15,15,15,.40);
}

.estate-intro{
  padding-top:clamp(100px,10vw,155px);
  padding-bottom:clamp(105px,10vw,165px);
}
.estate-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);
  gap:clamp(55px,9vw,145px);
  align-items:end;
}
.estate-intro-title>p,
.estate-types-heading>p,
.estate-contact-title>p{
  margin:0 0 20px;
  color:var(--omega-red);
  font-size:9px;
  font-weight:850;
  letter-spacing:.24em;
}
.estate-intro-title h2,
.estate-contact-title h2{
  margin:0;
  font-size:clamp(42px,4.3vw,72px);
  line-height:1.24;
  letter-spacing:-.045em;
  font-weight:900;
}
.estate-intro-copy{
  border-top:2px solid var(--omega-red);
  padding-top:24px;
}
.estate-intro-copy p{
  margin:0 0 18px;
  color:#555;
  font-size:clamp(15px,1.05vw,18px);
  line-height:2.05;
}

.estate-summary{
  background:#2c2c31;
  color:#fff;
}
.estate-summary-inner{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  padding-top:clamp(80px,8vw,125px);
  padding-bottom:clamp(80px,8vw,125px);
}
.estate-summary-card{
  position:relative;
  min-height:340px;
  padding:48px 54px 44px;
  border-top:1px solid rgba(255,255,255,.55);
  border-bottom:1px solid rgba(255,255,255,.14);
}
.estate-summary-card:first-child{
  border-right:1px solid rgba(255,255,255,.15);
}
.estate-summary-card>span{
  position:absolute;
  right:28px;
  top:27px;
  color:#777;
  font-size:10px;
  font-weight:850;
}
.estate-summary-card small{
  display:block;
  margin-bottom:25px;
  color:#d5535b;
  font-size:9px;
  font-weight:850;
  letter-spacing:.22em;
}
.estate-summary-card h2{
  margin:0 0 42px;
  font-size:20px;
  font-weight:700;
}
.estate-summary-card strong{
  display:block;
  margin-bottom:23px;
  font-size:clamp(30px,3vw,50px);
  line-height:1.35;
  letter-spacing:-.035em;
}
.estate-summary-card p{
  max-width:560px;
  margin:0;
  color:#c7c7c7;
  font-size:13px;
  line-height:1.9;
}

.estate-types{
  background:#f5f5f3;
}
.estate-types-inner{
  padding-top:clamp(105px,10vw,165px);
  padding-bottom:clamp(105px,10vw,165px);
}
.estate-types-heading{
  margin-bottom:clamp(55px,6vw,90px);
}
.estate-types-heading h2{
  margin:0;
  font-size:clamp(42px,4.3vw,72px);
  line-height:1.15;
  letter-spacing:-.045em;
}
.estate-types-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid #202020;
  border-bottom:1px solid #d5d5d2;
}
.estate-type{
  position:relative;
  min-height:250px;
  padding:38px 28px 34px;
  border-right:1px solid #d5d5d2;
}
.estate-type:last-child{border-right:0}
.estate-type>span{
  position:absolute;
  right:20px;
  top:20px;
  color:#aaa;
  font-size:9px;
  font-weight:850;
}
.estate-type small{
  display:block;
  margin-bottom:58px;
  color:var(--omega-red);
  font-size:8px;
  font-weight:850;
  letter-spacing:.2em;
}
.estate-type h3{
  margin:0;
  font-size:clamp(25px,2.2vw,36px);
  letter-spacing:-.02em;
}

.estate-contact{
  background:#fff;
}
.estate-contact-inner{
  padding-top:clamp(105px,10vw,165px);
  padding-bottom:clamp(105px,10vw,165px);
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(400px,1.1fr);
  gap:clamp(60px,9vw,145px);
  align-items:start;
}
.estate-contact-body{
  border-top:1px solid #202020;
  padding-top:24px;
}
.estate-contact-body>p{
  margin:0 0 14px;
  color:#555;
  font-size:clamp(14px,1vw,17px);
  line-height:1.95;
}
.estate-contact-box{
  margin-top:42px;
  padding:38px 42px;
  background:#f5f5f3;
  border:1px solid #e0e0dd;
}
.estate-contact-box small{
  display:block;
  margin-bottom:8px;
  color:#888;
  font-size:9px;
  font-weight:750;
  letter-spacing:.12em;
}
.estate-contact-box strong{
  display:block;
  margin-bottom:20px;
  font-size:25px;
}
.estate-contact-box address{
  margin:0 0 18px;
  color:#555;
  font-size:13px;
  line-height:1.8;
  font-style:normal;
}
.estate-contact-box a{
  width:max-content;
  max-width:100%;
  display:block;
  margin-top:11px;
  padding-bottom:4px;
  border-bottom:1px solid #aaa;
  font-size:13px;
  font-weight:700;
  overflow-wrap:anywhere;
}
.estate-contact-box a:hover{
  color:var(--omega-red);
  border-bottom-color:var(--omega-red);
}
.estate-contact-note{
  margin-top:22px!important;
  color:#999!important;
  font-size:11px!important;
}

.utility-next{
  width:min(100% - 9vw,1540px);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  border-top:1px solid #ddd;
  border-left:1px solid #ddd;
}
.utility-next a{
  position:relative;
  min-height:170px;
  padding:42px 52px;
  border-right:1px solid #ddd;
  border-bottom:1px solid #ddd;
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-rows:auto auto;
  align-content:center;
  transition:.25s ease;
}
.utility-next a:hover{background:#f5f5f3}
.utility-next span{
  grid-column:1;
  margin-bottom:8px;
  color:var(--omega-red);
  font-size:9px;
  font-weight:850;
  letter-spacing:.2em;
}
.utility-next strong{
  grid-column:1;
  font-size:clamp(20px,1.7vw,28px);
}
.utility-next b{
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  font-size:20px;
  font-weight:400;
  transition:.25s ease;
}
.utility-next a:hover b{transform:translate(3px,-3px)}

@media(max-width:900px){
  .estate-intro-grid,
  .estate-contact-inner{
    grid-template-columns:1fr;
    gap:42px;
  }
  .estate-summary-inner{
    grid-template-columns:1fr;
  }
  .estate-summary-card:first-child{
    border-right:0;
  }
  .estate-types-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .estate-type:nth-child(2){
    border-right:0;
  }
  .estate-type:nth-child(-n+2){
    border-bottom:1px solid #d5d5d2;
  }
}

@media(max-width:640px){
  .estate-page .sub-hero-bgword{font-size:20vw}
  .estate-intro{padding-top:78px;padding-bottom:92px}
  .estate-intro-title h2,
  .estate-contact-title h2,
  .estate-types-heading h2{font-size:35px}
  .estate-summary-inner{padding-top:60px;padding-bottom:60px}
  .estate-summary-card{min-height:280px;padding:36px 26px 32px}
  .estate-types-inner,
  .estate-contact-inner{padding-top:78px;padding-bottom:92px}
  .estate-types-grid{grid-template-columns:1fr}
  .estate-type{
    min-height:180px;
    border-right:0;
    border-bottom:1px solid #d5d5d2;
  }
  .estate-type:last-child{border-bottom:0}
  .estate-type small{margin-bottom:38px}
  .estate-contact-box{padding:30px 24px}
  .utility-next{
    width:calc(100% - 24px);
    grid-template-columns:1fr;
  }
  .utility-next a{min-height:130px;padding:30px 24px}
}
