@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');

body{
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
}

img{
  max-width:100%;
}

a:hover img{
  opacity:0.8;
}


#present{
  background:#f9f4e9;
  padding:0px 0px 0px 0px;
}

#presentimg{
  margin-top:-30px;
}

.small{
  font-size:9px;
}

/* 「Let's start!」は次セクションへ重ねる */
.rally-start{
  position:relative;
  z-index:2;
}
.rally-start img{
  display:inline-block;
  vertical-align:bottom;
  margin-bottom:-52px;
}


/* =========================================================
   スタンプラリー 各セクション共通
   デザイン幅1498pxを基準にclamp()で可変
   ========================================================= */
.rally{
  padding:clamp(44px, 4.3vw, 64px) 0 clamp(52px, 5.3vw, 80px);
  color:#000;
}
.rally--gray{ background:#eff0f4; }
.rally--cream{ background:#fdeddc; }
.rally--pink{ background:#fceaec; }

#stamp0102{ padding:clamp(70px, 7.9vw, 118px) 0 clamp(50px, 4.9vw, 74px); }
#stamp03  { padding-bottom:clamp(68px, 7.1vw, 106px); }
#stamp0405{ padding-top:clamp(32px, 2.9vw, 44px); }
#stamp06  { padding-bottom:clamp(48px, 4.7vw, 70px); }
#stamp07  { padding:clamp(56px, 5.4vw, 81px) 0 clamp(62px, 6.5vw, 97px); }
#stamp08  { padding-bottom:clamp(40px, 3.8vw, 57px); }

/* ---- stampマーク（stamp + 番号） ---- */
.stamp-mark{
  display:block;
  width:clamp(76px, 7.3vw, 110px);
  height:auto;
  margin:0 auto clamp(5px, 0.5vw, 8px);
  overflow:visible;
}
.stamp-mark text{
  fill:#000;
  font-family:"Noto Sans JP", sans-serif;
  font-weight:800;
  text-anchor:middle;
}
.stamp-mark__word{ font-size:20px; letter-spacing:2.5px; }
.stamp-mark__num{ font-size:38px; letter-spacing:1px; }

/* ---- 吹き出しバッジ ---- */
.rally-badges{
  display:flex;
  justify-content:center;
  gap:clamp(24px, 6.5vw, 97px);
}
.rally-badge{
  position:relative;
  width:246px;
  max-width:86vw;
  min-height:clamp(60px, 5.9vw, 88px);
  margin:0 auto;
  padding:6px 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:var(--badge-color);
  color:#fff;
  font-size:clamp(19px, 1.87vw, 28px);
  font-weight:700;
  line-height:1.22;
  letter-spacing:1px;
  text-align:center;
}
.rally-badge--wide{ width:296px; }
.rally-badge::after{
  content:"";
  position:absolute;
  top:100%;
  left:50%;
  width:0;
  height:0;
  margin-left:-14px;
  border:14px solid transparent;
  border-top:clamp(15px, 1.5vw, 22px) solid var(--badge-color);
}
.rally-badge--blue{        --badge-color:#2798e1; }
.rally-badge--blue2{       --badge-color:#1b8de1; }
.rally-badge--green{       --badge-color:#5fac43; }
.rally-badge--green2{      --badge-color:#5faa45; }
.rally-badge--lightorange{ --badge-color:#f1863f; }
.rally-badge--purple{      --badge-color:#8d4aaa; }
.rally-badge--teal{        --badge-color:#0aabb0; }
.rally-badge--pink{        --badge-color:#f76c89; }

/* ---- 見出し・リード ---- */
.rally-head{
  margin:clamp(22px, 2vw, 30px) 0 0;
  font-size:clamp(20px, 2.14vw, 32px);
  font-weight:700;
  line-height:1.4;
  text-align:center;
}
.rally-lead{
  margin:clamp(6px, 0.7vw, 10px) 0 0;
  font-size:clamp(15px, 1.47vw, 22px);
  font-weight:700;
  line-height:1.95;
  text-align:center;
}

/* ---- カード（住宅展示場／分譲住宅／分譲地） ---- */
.rally-cards{
  display:flex;
  justify-content:center;
  gap:clamp(16px, 3.47vw, 52px);
  max-width:1020px;
  margin:clamp(34px, 3.4vw, 51px) auto 0;
}
.rally-card{
  --dome:clamp(96px, 9.3vw, 140px);
  position:relative;
  flex:1 1 0;
  min-width:0;
  padding:clamp(16px, 1.7vw, 25px) 0 clamp(26px, 2.8vw, 42px);
  background:var(--card-color);
  color:#fff;
  text-align:center;
}
.rally-card::before{
  content:"";
  position:absolute;
  left:50%;
  top:calc(var(--dome) * -0.264);
  width:var(--dome);
  height:var(--dome);
  margin-left:calc(var(--dome) / -2);
  border-radius:50%;
  background:var(--card-color);
}
.rally-card--teal{   --card-color:#00b0af; }
.rally-card--red{    --card-color:#ef4457; }
.rally-card--orange{ --card-color:#ff922b; }

.rally-card__title{
  position:relative;
  margin:0 0 clamp(20px, 2.3vw, 34px);
  font-size:clamp(21px, 2vw, 30px);
  font-weight:700;
  line-height:1;
  letter-spacing:2px;
}
.rally-card__photo{
  margin:0;
}
.rally-card__photo img{
  display:block;
  width:100%;
  aspect-ratio:306 / 205;
  object-fit:cover;
}
.rally-card__text{
  margin:clamp(10px, 1vw, 15px) 0 0;
  font-size:clamp(14px, 1.34vw, 20px);
  font-weight:500;
  line-height:1.4;
}
.rally-pills{
  margin:clamp(11px, 1vw, 15px) 0 0;
  padding:0 clamp(12px, 1.6vw, 24px);
  list-style:none;
}
.rally-pills li + li{
  margin-top:clamp(9px, 1vw, 15px);
}
.rally-pill{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  height:clamp(28px, 2.5vw, 37px);
  border-radius:999px;
  background:#fff;
  color:var(--card-color);
  font-size:clamp(15px, 1.34vw, 20px);
  font-weight:700;
  letter-spacing:0.3em;
  text-decoration:none;
}
.rally-pill:hover{
  color:var(--card-color);
  opacity:0.85;
}
.rally-pill .rally-chev{
  right:clamp(10px, 1.1vw, 16px);
}

/* ---- 写真3点並び ---- */
.rally-photos{
  display:flex;
  justify-content:center;
  gap:clamp(16px, 4.4vw, 66px);
  max-width:911px;
  margin:clamp(22px, 1.9vw, 28px) auto 0;
  padding:0;
  list-style:none;
}
.rally-lead + .rally-photos{
  margin-top:clamp(26px, 2.9vw, 44px);
}
.rally-photos li{
  flex:1 1 0;
  min-width:0;
}
.rally-photos img{
  display:block;
  width:100%;
  aspect-ratio:259 / 230;
  object-fit:cover;
}

/* ---- オレンジのボタン ---- */
.rally-btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(447px, 100%);
  height:clamp(54px, 4.9vw, 73px);
  margin:clamp(40px, 4vw, 60px) auto 0;
  border-radius:999px;
  background:linear-gradient(180deg,
              #d07c00 0%,
              #f4a01f 24%,
              #ef8200 38%,
              #ec6e00 76%,
              #c75200 100%);
  box-shadow:0 2px 4px rgba(0,0,0,.2);
  color:#fff;
  font-size:clamp(16px, 1.47vw, 22px);
  font-weight:700;
  letter-spacing:2px;
  text-decoration:none;
}
.rally-btn::before{
  content:"";
  position:absolute;
  left:4%;
  right:4%;
  top:6px;
  height:38%;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(255,255,255,.38), rgba(255,255,255,0));
}
.rally-btn:hover{
  color:#fff;
  opacity:0.88;
}
.rally-btn .rally-chev{
  right:clamp(24px, 3.4vw, 50px);
}
.rally-cards + .rally-btn{
  margin-top:clamp(26px, 2.5vw, 37px);
}

/* ---- 3連の山カッコ ---- */
.rally-chev{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  letter-spacing:0;
  line-height:1;
}
.rally-chev i + i{
  margin-left:-0.22em;
}
.rally-pill .rally-chev{ font-size:1.2em; }
.rally-btn .rally-chev{ font-size:1.55em; }

/* ---- 注釈・囲み注意書き ---- */
.rally-note{
  max-width:1060px;
  margin:clamp(26px, 2.6vw, 39px) auto 0;
  font-size:clamp(12px, 1.2vw, 18px);
  font-weight:500;
  line-height:1.6;
  text-align:center;
}
.rally-note a{
  color:#3fa9dc;
}
.rally-notice{
  max-width:862px;
  margin:clamp(24px, 2.3vw, 34px) auto 0;
  padding:9px 20px;
  border:1px solid #4b4442;
  background:#fff;
  font-size:clamp(14px, 1.34vw, 20px);
  font-weight:700;
  line-height:1.5;
  text-align:center;
}
.rally-photos + .rally-notice{
  margin-top:clamp(40px, 5vw, 76px);
}

/* ---- 注意事項 ---- */
.rally--terms{
  padding:clamp(36px, 3.7vw, 56px) 0 clamp(60px, 6vw, 90px);
}
.rally-terms{
  max-width:1190px;
  margin:0 auto;
  font-size:clamp(12px, 1.2vw, 18px);
  font-weight:500;
  line-height:1.45;
}
.rally-terms p{
  margin:0 0 1.45em;
}
.rally-terms p:last-child{
  margin-bottom:0;
}
.rally-terms__indent{
  padding-left:1em;
}


@media screen and (max-width: 1200px) {
}


@media screen and (max-width: 991px) {
}

/* md ≥768px */
@media screen and (max-width: 991px) {
}

/* sm ≥576px */
@media screen and (max-width: 767px) {
  .rally-start img{
    margin-bottom:-26px;
  }
  .rally-badges{
    flex-direction:column;
    align-items:center;
    gap:36px;
  }
  .rally-badge,
  .rally-badge--wide{
    width:min(280px, 86vw);
    font-size:20px;
    min-height:62px;
  }
  .rally-badge::after{
    border-top-width:16px;
  }
  .stamp-mark{
    width:84px;
  }
  .rally-head{
    font-size:20px;
    margin-top:24px;
  }
  .rally-lead{
    font-size:15px;
  }
  .rally-cards{
    flex-direction:column;
    align-items:center;
    gap:52px;
    margin-top:56px;
  }
  .rally-card{
    --dome:110px;
    width:min(320px, 100%);
    flex:0 0 auto;
    padding:18px 0 28px;
  }
  .rally-card__title{
    font-size:24px;
    margin-bottom:24px;
  }
  .rally-card__text{
    font-size:16px;
  }
  .rally-pill{
    height:34px;
    font-size:17px;
  }
  .rally-photos{
    flex-direction:column;
    align-items:center;
    gap:16px;
  }
  .rally-photos li{
    flex:0 0 auto;
    width:min(320px, 100%);
  }
  .rally-btn{
    width:min(320px, 100%);
    height:56px;
    font-size:17px;
  }
  .rally-notice{
    font-size:14px;
    padding:12px 14px;
    text-align:left;
  }
  .rally-note,
  .rally-terms{
    font-size:12px;
  }
  .rally-note{
    text-align:left;
  }
}

/* xs <576px */
@media screen and (max-width: 576px) {
  .stage_house{
    margin-bottom:20px;
  }
  h2{
    font-size:20px;
  }
}
