:root{
  --black:#0d0c0b;
  --ink:#17130f;
  --dark:#11100e;
  --gold:#b98b45;
  --gold2:#d6aa61;
  --cream:#fffaf2;
  --base:#f7f1e8;
  --muted:#6e6258;
  --pink:#d48d9b;
  --pink2:#f8e7ea;
  --line:rgba(185,139,69,.16);
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--base);
  color:var(--ink);
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Yu Gothic",Meiryo,sans-serif;
  letter-spacing:.035em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

a{text-decoration:none;color:inherit}

img{max-width:100%;display:block}

.wrap{
  width:min(1180px, calc(100% - 48px));
  margin:auto;
}

.header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:50;
  background:rgba(255,250,242,.92);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(185,139,69,.12);
}

.header__inner{
  height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 48px;
}

.brand{
  display:flex;
  gap:14px;
  align-items:center;
}

.brand__mark{
  width:38px;
  height:38px;
  border:1px solid var(--gold);
  color:var(--gold);
  display:grid;
  place-items:center;
  font-family:"Cormorant Garamond","Times New Roman",serif;
  font-size:13px;
  letter-spacing:.08em;
}

.brand strong{
  display:block;
  font-family:"Cormorant Garamond","Times New Roman",serif;
  font-size:25px;
  letter-spacing:.08em;
  line-height:1;
}

.brand small{
  display:block;
  margin-top:6px;
  font-size:10px;
  letter-spacing:.2em;
  color:var(--gold);
}

.nav{
  display:flex;
  gap:30px;
  align-items:center;
}

.nav a{
  font-family:"Cormorant Garamond","Times New Roman",serif;
  font-size:13px;
  letter-spacing:.12em;
  text-align:center;
}

.nav small{
  display:block;
  margin-top:5px;
  font-family:"Noto Sans JP",sans-serif;
  font-size:9px;
  letter-spacing:.08em;
}

.header-cta{
  background:var(--gold);
  color:#fff;
  height:82px;
  padding:0 36px;
  display:flex;
  align-items:center;
  font-weight:700;
  font-size:13px;
}

.fixed-contact{
  position:fixed;
  right:22px;
  top:180px;
  z-index:40;
  background:#fff;
  box-shadow:0 20px 50px rgba(0,0,0,.14);
}

.fixed-contact a{
  display:block;
  padding:18px 16px;
  border-bottom:1px solid #eee;
  font-size:12px;
  text-align:center;
}

.hero{
  position:relative;
  min-height:760px;
  overflow:hidden;
  background:#111;
}

.hero__bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.42) 35%,rgba(0,0,0,.12)),
    url("../images/hero-realestate.jpg") center/cover no-repeat;
  transform:scale(1.04);
  animation:slowZoom 18s ease-in-out infinite alternate;
}

.hero__shade{
  position:absolute;
  inset:auto 0 0;
  height:160px;
  background:linear-gradient(transparent,#0d0c0b);
}

.hero__content{
  position:relative;
  z-index:2;
  width:min(1180px, calc(100% - 48px));
  margin:auto;
  padding-top:210px;
}

.eyebrow{
  font-family:"Cormorant Garamond","Times New Roman",serif;
  color:var(--gold);
  letter-spacing:.22em;
  font-size:14px;
  margin:0 0 20px;
}

.eyebrow.pink{color:#b86d7d}

h1,h2,h3{
  margin:0;
  font-family:"Cormorant Garamond","Noto Serif JP","Times New Roman",serif;
  font-weight:500;
}

h1{
  color:#fff;
  font-size:58px;
  line-height:1.28;
  letter-spacing:.04em;
}

h2{
  font-size:42px;
  line-height:1.35;
}

h3{
  font-size:23px;
}

p{
  color:var(--muted);
  line-height:2;
  font-size:15px;
}

.hero__lead{
  color:rgba(255,255,255,.88);
  max-width:540px;
  margin-top:28px;
}

.hero__actions{
  display:flex;
  gap:16px;
  margin-top:38px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 30px;
  border:1px solid transparent;
  font-size:13px;
  font-weight:700;
  transition:.35s ease;
}

.btn:hover{
  transform:translateY(-2px);
}

.btn--gold{
  background:linear-gradient(135deg,#caa15f,#8b602b);
  color:#fff;
}

.btn--outline{
  color:#fff;
  border-color:rgba(255,255,255,.42);
}

.btn--pink{
  background:linear-gradient(135deg,#d9959e,#b66b78);
  color:#fff;
}

.btn--line{
  background:#18b900;
  color:#fff;
}

.scroll-sign{
  position:absolute;
  right:80px;
  bottom:42px;
  color:#fff;
  font-size:11px;
  letter-spacing:.16em;
  z-index:2;
}

.section{
  padding:105px 0;
}

.service{
  background:var(--cream);
}

.service__grid{
  display:grid;
  grid-template-columns:.34fr .66fr;
  gap:52px;
  align-items:start;
}

.section-copy p{
  margin-top:24px;
}

.text-link{
  display:inline-flex;
  margin-top:26px;
  padding:14px 34px;
  border:1px solid var(--gold);
  color:var(--gold);
  font-weight:700;
  font-size:13px;
}

.service-cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}

.service-card{
  background:#fff;
  box-shadow:0 18px 44px rgba(57,42,25,.08);
  transition:.35s;
}

.service-card:hover{
  transform:translateY(-7px);
}

.service-card__image{
  height:170px;
  background:center/cover no-repeat;
}

.service-rental{background-image:url("../images/service-rental.jpg")}
.service-sale{background-image:url("../images/service-sale.jpg")}
.service-management{background-image:url("../images/service-management.jpg")}
.service-consulting{background-image:url("../images/service-consulting.jpg")}

.service-card__body{
  padding:24px;
}

.service-card span{
  color:var(--gold);
  font-family:"Cormorant Garamond",serif;
}

.section--dark{
  background:linear-gradient(135deg,#0d0c0b,#17130f 55%,#21170f);
  color:#fff;
}

.pickup__grid{
  display:grid;
  grid-template-columns:.25fr .75fr;
  gap:48px;
}

.section--dark p{
  color:rgba(255,255,255,.68);
}

.property-search{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:24px;
}

.property-search select,
.property-search button{
  height:48px;
  border:0;
  padding:0 14px;
  background:#fff;
}

.property-search button{
  background:var(--gold);
  color:#fff;
  font-weight:700;
}

.property-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.property-card{
  background:#fff;
  color:var(--ink);
}

.property-card__image{
  height:180px;
  background:center/cover no-repeat;
}

.property01{background-image:url("../images/property01.jpg")}
.property02{background-image:url("../images/property02.jpg")}
.property03{background-image:url("../images/property03.jpg")}

.property-card__body{
  padding:18px;
}

.property-card span{
  color:var(--gold);
  font-size:12px;
}

.property-card strong{
  display:block;
  margin-top:8px;
}

.share1-intro{
  position:relative;
  min-height:420px;
  background:linear-gradient(90deg,#fff7f8,#fffaf2);
  overflow:hidden;
}

.share1-intro__image{
  position:absolute;
  inset:0 0 0 40%;
  background:url("../images/share1-hero.jpg") center/cover no-repeat;
}

.share1-intro__content{
  position:relative;
  z-index:2;
  padding:82px 0;
  max-width:1180px;
}

.share1-intro__content p{
  max-width:440px;
}

.section-heading{
  text-align:center;
  margin-bottom:42px;
}

.rooms{
  background:#fff;
}

.room-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;
}

.room-card{
  border:1px solid #eee;
  background:#fff;
  transition:.35s;
}

.room-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 45px rgba(159,93,109,.12);
}

.room-card__image{
  height:165px;
  background:center/cover no-repeat;
}

.room01{background-image:url("../images/room01.jpg")}
.room02{background-image:url("../images/room02.jpg")}
.room03{background-image:url("../images/room03.jpg")}
.room04{background-image:url("../images/room04.jpg")}
.room05{background-image:url("../images/room05.jpg")}

.room-card__body{
  padding:18px;
  text-align:center;
}

.room-card strong{
  display:block;
  font-size:24px;
  font-family:"Cormorant Garamond",serif;
}

.status{
  display:block;
  margin-top:12px;
  background:#d87f8c;
  color:#fff;
  padding:8px;
  font-size:13px;
}

.status--wait{
  background:#b98b45;
}

.strength{
  background:var(--cream);
}

.strength-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}

.strength article{
  text-align:center;
  padding:28px;
  border-right:1px solid var(--line);
}

.strength span{
  color:var(--gold);
  font-family:"Cormorant Garamond",serif;
  font-size:24px;
}

.contact-band{
  padding:70px 0;
  background:
    linear-gradient(90deg,rgba(17,16,14,.82),rgba(17,16,14,.58)),
    url("../images/contact-bg.jpg") center/cover no-repeat;
  color:#fff;
}

.contact-band p{
  color:rgba(255,255,255,.74);
}

.contact-band__grid{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:40px;
}

.contact-buttons{
  display:flex;
  gap:14px;
}

.footer{
  background:#0d0c0b;
  color:rgba(255,255,255,.66);
  padding:58px 0 18px;
}

.footer__grid{
  display:grid;
  grid-template-columns:1.6fr repeat(3,1fr);
  gap:34px;
}

.footer h4{
  color:#fff;
  margin:0 0 16px;
}

.footer a{
  display:block;
  margin-bottom:10px;
  color:rgba(255,255,255,.66);
  font-size:13px;
}

.footer p{
  color:rgba(255,255,255,.62);
  font-size:12px;
  margin:8px 0;
}

.footer__bottom{
  border-top:1px solid rgba(255,255,255,.12);
  margin-top:34px;
  padding-top:14px;
  text-align:center;
}

.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .8s ease, transform .8s ease;
}

.reveal.is-show{
  opacity:1;
  transform:none;
}

@keyframes slowZoom{
  from{transform:scale(1.02)}
  to{transform:scale(1.08)}
}

@media(max-width:1000px){
  .header__inner{
    padding:0 20px;
  }

  .nav{
    display:none;
  }

  .header-cta{
    display:none;
  }

  .fixed-contact{
    display:none;
  }

  h1{
    font-size:38px;
  }

  h2{
    font-size:30px;
  }

  .hero{
    min-height:680px;
  }

  .hero__content{
    padding-top:170px;
  }

  .service__grid,
  .pickup__grid,
  .contact-band__grid{
    grid-template-columns:1fr;
    display:grid;
  }

  .service-cards,
  .property-cards,
  .room-grid,
  .strength-grid,
  .footer__grid{
    grid-template-columns:1fr;
  }

  .property-search{
    grid-template-columns:1fr;
  }

  .share1-intro__image{
    position:relative;
    inset:auto;
    height:300px;
  }

  .share1-intro__content{
    padding:48px 0;
  }

  .contact-buttons,
  .hero__actions{
    display:grid;
  }
}

/* ===== layout quality fix 01 ===== */

/* ヘッダー下の余白と見え方調整 */
.header{
  box-shadow:0 8px 28px rgba(40,30,20,.04);
}

/* 固定問い合わせを少し控えめに */
.fixed-contact{
  right:24px;
  top:auto;
  bottom:110px;
  width:112px;
  box-shadow:0 18px 44px rgba(0,0,0,.10);
}

.fixed-contact a{
  padding:15px 10px;
  font-size:12px;
  line-height:1.4;
}

/* ヒーローの文字位置を少し整える */
.hero__content{
  padding-top:230px;
}

.hero__lead{
  font-size:15.5px;
  line-height:2.15;
}

/* サービスカードが細くなりすぎる問題を修正 */
.service__grid{
  grid-template-columns:320px 1fr;
  gap:56px;
}

.service-cards{
  grid-template-columns:repeat(4,minmax(180px,1fr));
  gap:22px;
}

.service-card__body{
  padding:26px 22px 30px;
}

.service-card h3{
  font-size:24px;
  line-height:1.45;
  word-break:keep-all;
}

.service-card p{
  font-size:14px;
  line-height:1.9;
  word-break:normal;
}

/* 4枚目の見出しが縦に見えすぎるのを緩和 */
.service-card:nth-child(4) h3{
  font-size:22px;
  letter-spacing:.02em;
}

/* PICKUPのカードを少し広く綺麗に */
.property-cards{
  gap:22px;
}

.property-card__image{
  height:190px;
}

/* SHARE1セクションの文字切れを修正 */
.share1-intro{
  min-height:500px;
}

.share1-intro__image{
  inset:0 0 0 43%;
}

.share1-intro__content{
  padding:96px 0;
}

.share1-intro__content h2{
  font-size:46px;
  line-height:1.35;
  max-width:520px;
  word-break:keep-all;
}

.share1-intro__content p{
  max-width:500px;
}

/* ROOMカードの画像高さ調整 */
.room-card__image{
  height:175px;
}

.room-card h3{
  font-size:22px;
}

.room-card__body p{
  min-height:58px;
}

/* 強みセクションを少し上品に */
.strength article{
  min-height:190px;
}

/* スマホ調整 */
@media(max-width:1000px){
  .hero__content{
    padding-top:170px;
  }

  .service__grid{
    grid-template-columns:1fr;
  }

  .service-cards{
    grid-template-columns:1fr;
  }

  .share1-intro__image{
    position:relative;
    inset:auto;
    height:320px;
  }

  .share1-intro__content h2{
    font-size:34px;
  }

  .fixed-contact{
    display:none;
  }
}

@media(min-width:1001px) and (max-width:1300px){
  .service-cards{
    grid-template-columns:repeat(2,1fr);
  }
}

/* ===== service card layout fix ===== */

/* サービスカードを2列にして読みやすくする */
.service__grid{
  grid-template-columns:360px 1fr !important;
  gap:64px !important;
}

.service-cards{
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:26px !important;
}

.service-card{
  min-height:auto !important;
}

.service-card__image{
  height:230px !important;
}

.service-card__body{
  padding:30px 30px 34px !important;
}

.service-card h3{
  font-size:25px !important;
  line-height:1.45 !important;
  letter-spacing:.04em !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
}

.service-card p{
  font-size:14.5px !important;
  line-height:2.05 !important;
  word-break:normal !important;
}

/* 不動産コンサルティングだけ自然に見せる */
.service-card:nth-child(4) h3{
  font-size:24px !important;
  max-width:100% !important;
}

/* タブレット以下は1列 */
@media(max-width:900px){
  .service__grid{
    grid-template-columns:1fr !important;
  }

  .service-cards{
    grid-template-columns:1fr !important;
  }

  .service-card__image{
    height:220px !important;
  }
}
