:root {
  --sd-improve-ink: #172225;
  --sd-improve-muted: #5d6668;
  --sd-improve-line: rgba(23, 34, 37, 0.16);
  --sd-improve-paper: #fffefb;
  --sd-improve-warm: #f6f2e9;
  --sd-improve-gold: #d7a332;
}

.sd-improve-visual {
  position: relative;
  z-index: 3;
  padding: clamp(.65rem,1vw,1rem) 0;
  overflow: hidden;
  background: #f2ede3;
}
.sd-improve-visual figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: #151b1d;
}
.sd-improve-visual picture,
.sd-improve-visual img {
  display: block;
  width: 100%;
}
.sd-improve-visual img {
  height: clamp(24rem, 34vw, 31rem);
  object-fit: cover;
  object-position: center 52%;
  filter: saturate(.88) contrast(1.015);
}

.sd-pr-about {
  padding: 0 !important;
  border-top: clamp(.7rem,1vw,1rem) solid #f2ede3;
}
.sd-pr-about__scene,
.sd-pr-about__content {
  min-height: clamp(31rem,42vw,38rem) !important;
}
.sd-pr-about__photo img {
  object-position: center 54% !important;
  filter: saturate(.78) contrast(1.02) brightness(1.06);
}
.sd-pr-about__veil {
  background: linear-gradient(90deg,rgba(9,19,24,.84) 0%,rgba(9,19,24,.62) 46%,rgba(9,19,24,.25) 100%) !important;
}
.sd-improve-visual figcaption {
  position: absolute;
  right: clamp(1rem,4vw,4rem);
  bottom: clamp(1rem,3vw,2.5rem);
}
.sd-improve-visual figcaption a {
  display: inline-flex;
  align-items: center;
  gap: clamp(1.5rem,3vw,3rem);
  min-height: 3.35rem;
  padding: .85rem 1.15rem;
  color: #fff;
  background: rgba(12,20,22,.84);
  border-bottom: 2px solid #d8a83d;
  font-size: .9rem;
  font-weight: 650;
  letter-spacing: .04em;
  text-decoration: none;
  backdrop-filter: blur(10px);
}
.sd-improve-visual figcaption a:hover { background: rgba(12,20,22,.96); }
.sd-improve-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Clear, visual essentials for people considering a visit. */
.sd-easy-guide {
  position: relative;
  z-index: 3;
  padding-block: clamp(4.5rem,6vw,6rem);
  color: var(--sd-improve-ink);
  background: #fcfbf8;
}
.sd-easy-guide__header {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(25rem,1fr);
  align-items: end;
  gap: clamp(2rem,7vw,7rem);
  margin-bottom: clamp(2.5rem,3.5vw,3.5rem);
}
.sd-easy-guide__eyebrow {
  margin: .2rem 0 0;
  color: #88651f;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .08em;
}
.sd-easy-guide__header > p {
  max-width: 35rem;
  margin: 0 0 .55rem;
  color: #4e5d64;
  font-size: clamp(1.02rem,1.25vw,1.16rem);
  line-height: 2.05;
}
.sd-easy-guide__facts {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 0;
  margin: 0;
  border-block: 1px solid rgba(23,34,37,.16);
}
.sd-easy-guide__facts > div {
  display: grid;
  grid-template-rows: 11.75rem auto 1fr;
  gap: 1.2rem;
  min-width: 0;
  padding: clamp(1.35rem,2.2vw,2.1rem) clamp(1.1rem,2vw,2rem);
  border-left: 1px solid rgba(23,34,37,.13);
}
.sd-easy-guide__facts > div:first-child { border-left: 0; }
.sd-easy-guide__icon {
  display: block;
  width: 100%;
  min-height: 11.75rem;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  filter: saturate(.78) contrast(.96);
}
.sd-easy-guide__fact--time .sd-easy-guide__icon { background-image: url("./images/sunnydays-guide-time-v2.png"); }
.sd-easy-guide__fact--contract .sd-easy-guide__icon { background-image: url("./images/sunnydays-guide-contract-v3.png"); }
.sd-easy-guide__fact--work .sd-easy-guide__icon { background-image: url("./images/sunnydays-guide-work-v3.png"); }
.sd-easy-guide__fact--visit .sd-easy-guide__icon { background-image: url("./images/sunnydays-guide-visit-v2.png"); }
.sd-easy-guide__facts > div:nth-child(odd) {
  background: rgba(220,234,240,.22);
}
.sd-easy-guide__facts dt,
.sd-easy-guide__facts dd { margin: 0; }
.sd-easy-guide__facts dt { display: grid; align-content: start; gap: .6rem; }
.sd-easy-guide__facts dt span {
  color: #72551d;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .035em;
}
.sd-easy-guide__facts dt strong {
  color: var(--sd-improve-ink);
  font-family: var(--sd-font, "Noto Sans JP", sans-serif);
  font-size: clamp(1.12rem,1.35vw,1.35rem);
  font-weight: 720;
  line-height: 1.45;
}
.sd-easy-guide__facts dd {
  color: #526068;
  font-size: .95rem;
  line-height: 1.8;
}

/* The existing Sunnydays opening remains, but useful content appears quickly. */
html.sd-motion-preview .sd-home-opening {
  animation: sd-improve-opening-dismiss .24s ease .92s forwards !important;
  animation-duration: .24s !important;
  animation-delay: .92s !important;
}
html.sd-motion-preview .sd-home-opening__logo {
  animation: sd-improve-opening-logo .72s cubic-bezier(.2,.7,.2,1) both !important;
  animation-duration: .72s !important;
  animation-delay: 0s !important;
}
html.sd-motion-preview .sd-home-opening__glow {
  animation-duration: .58s !important;
  animation-delay: .16s !important;
}
html.sd-motion-preview .sd-home-opening__reveal {
  animation-duration: .52s !important;
  animation-delay: .38s !important;
}
html.sd-motion-preview .sd-pr-hero h1 span {
  animation-delay: .76s !important;
  animation-duration: .62s !important;
}
html.sd-motion-preview .sd-pr-hero h1 span + span { animation-delay: .88s !important; }
html.sd-motion-preview .sd-pr-hero__story span {
  animation-delay: 1s !important;
  animation-duration: .62s !important;
}
html.sd-motion-preview .sd-pr-hero__story span + span { animation-delay: 1.12s !important; }
html.sd-motion-preview .sd-pr-hero__brand img {
  animation-delay: .46s !important;
  animation-duration: .72s !important;
}

@keyframes sd-improve-opening-dismiss {
  to { opacity: 0; visibility: hidden; pointer-events: none; }
}
@keyframes sd-improve-opening-logo {
  0% { opacity: 0; transform: scale(.7); }
  55% { opacity: 1; }
  100% { opacity: 1; transform: scale(1.16); }
}

.sd-improve-essentials,
.sd-improve-work {
  color: var(--sd-improve-ink);
  font-family: var(--sd-font, "Noto Sans JP", sans-serif);
}
.sd-improve-essentials {
  position: relative;
  z-index: 3;
  padding: clamp(.7rem,1.1vw,1.1rem) 0;
  background: #f3efe6;
}
.sd-improve-essentials figure {
  position: relative;
  min-height: clamp(24rem,32vw,34rem);
  margin: 0;
  overflow: hidden;
  background: #151b1d;
}
.sd-improve-essentials figure::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,rgba(9,15,18,.76) 0%,rgba(9,15,18,.3) 48%,rgba(9,15,18,.16) 100%),linear-gradient(0deg,rgba(9,15,18,.76),transparent 56%);
  content: "";
}
.sd-improve-essentials img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 63%;
  filter: saturate(.74) contrast(1.04) brightness(.82);
}
.sd-improve-essentials figcaption {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: clamp(24rem,32vw,34rem);
  flex-direction: column;
  justify-content: space-between;
  padding-block: clamp(2.1rem,4vw,4rem);
  color: #fff;
}
.sd-improve-essentials__eyebrow {
  margin: 0;
  color: #e3bd68;
  font-family: Georgia,"Times New Roman",serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .22em;
}
.sd-improve-essentials__copy {
  display: grid;
  grid-template-columns: 1fr 1.45fr 1fr;
  align-items: end;
  gap: clamp(1.5rem,5vw,5rem);
  padding-top: clamp(1.4rem,3vw,2.5rem);
  border-top: 1px solid rgba(255,255,255,.45);
}
.sd-improve-essentials__copy > div {
  display: grid;
  gap: .7rem;
}
.sd-improve-essentials__copy span {
  color: rgba(255,255,255,.7);
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .12em;
}
.sd-improve-essentials__copy strong {
  color: #fff;
  font-family: "Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-size: clamp(1.2rem,2vw,1.85rem);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .04em;
}
.sd-improve-essentials__time strong {
  display: flex;
  align-items: center;
  gap: clamp(.8rem,2vw,1.8rem);
  font-family: Georgia,"Times New Roman",serif;
  font-size: clamp(2.5rem,5.6vw,5.4rem);
  line-height: 1;
  letter-spacing: -.03em;
  white-space: nowrap;
}
.sd-improve-essentials__time i {
  display: block;
  width: clamp(2rem,5vw,5rem);
  height: 1px;
  background: #e3bd68;
}

.sd-improve-essentials + .sd-improve-work {
  border-top: 0;
}

.sd-improve-work {
  padding: clamp(5rem,9vw,9rem) 0;
  overflow: hidden;
  background: #fff;
}
.sd-improve-work__header {
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(20rem,.7fr);
  align-items: end;
  gap: clamp(2rem,8vw,8rem);
  margin-bottom: clamp(2.5rem,5vw,4.5rem);
}
.sd-improve-work__header h2 {
  margin: .9rem 0 0;
  color: var(--sd-improve-ink);
  font-family: "Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-size: clamp(2.2rem,4.6vw,4.7rem);
  font-weight: 500;
  line-height: 1.32;
  letter-spacing: .015em;
}
.sd-improve-work__header > p {
  margin: 0 0 .35rem;
  color: var(--sd-improve-muted);
  font-size: clamp(.98rem,1.2vw,1.08rem);
  line-height: 2;
}
.sd-improve-work__gallery {
  display: grid;
  grid-template-columns: 1.52fr .78fr;
  grid-template-rows: repeat(2,minmax(15rem,23vw));
  gap: clamp(.7rem,1.2vw,1.15rem);
}
.sd-improve-work__gallery figure {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: #eae7df;
}
.sd-improve-work__gallery .sd-improve-work__main { grid-row: 1 / 3; }
.sd-improve-work__gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.78) contrast(1.03) brightness(.96);
  transition: transform 1.1s cubic-bezier(.2,.7,.2,1), filter .5s ease;
}
.sd-improve-work__gallery figure:hover img { transform: scale(1.018); filter: saturate(.9) contrast(1.03); }
.sd-improve-work__gallery figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.2rem 1.35rem;
  color: #fff;
  background: linear-gradient(180deg,transparent,rgba(8,15,18,.76));
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .04em;
}
.sd-improve-work__gallery figcaption span { color: #e4bb5c; font-family: Georgia,serif; font-size: .75rem; }
.sd-improve-work__footer {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  align-items: center;
  padding-top: 1.7rem;
  border-bottom: 1px solid var(--sd-improve-line);
  color: var(--sd-improve-muted);
}
.sd-improve-work__footer p { margin: 0; padding-bottom: 1.7rem; line-height: 1.8; }
.sd-improve-work__footer p strong { margin-right: 1rem; color: var(--sd-improve-ink); }
.sd-improve-work__footer a {
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  gap: 2rem;
  padding-inline: .25rem;
  color: var(--sd-improve-ink);
  border-bottom: 2px solid var(--sd-improve-gold);
  font-weight: 650;
  text-decoration: none;
}
.sd-improve-work__footer b { font-weight: 400; }

/* Three truthful stages replace five stock-photo cards. */
.sd-use-flow__stage ol { grid-template-columns: repeat(3,1fr) !important; }
.sd-use-flow__stage li { --flow-count: 3; }

@media (max-width: 767px) {
  .sd-pr-hero { min-height: 34rem !important; }
  .sd-pr-hero__grid { min-height: 34rem !important; padding-block: 1.5rem 2rem !important; }
  .sd-improve-visual { padding-block: .5rem; }
  .sd-improve-visual img {
    height: 19.5rem;
    object-position: center 52%;
  }
  .sd-pr-about { border-top-width: .65rem; }
  .sd-pr-about__scene,
  .sd-pr-about__content {
    min-height: 29rem !important;
  }
  .sd-pr-about__veil {
    background: linear-gradient(180deg,rgba(9,19,24,.28) 0%,rgba(9,19,24,.72) 48%,rgba(9,19,24,.93) 100%) !important;
  }
  .sd-improve-visual figcaption { right: .85rem; bottom: .85rem; }
  .sd-improve-visual figcaption a {
    min-height: 2.85rem;
    gap: 1.4rem;
    padding: .7rem .9rem;
    font-size: .8rem;
  }
  .sd-improve-essentials { padding-block: .5rem; }
  .sd-improve-essentials figure,
  .sd-improve-essentials figcaption { min-height: 33rem; }
  .sd-improve-essentials img { object-position: 47% center; }
  .sd-improve-essentials figure::after {
    background: linear-gradient(180deg,rgba(9,15,18,.18),rgba(9,15,18,.32) 44%,rgba(9,15,18,.9) 100%);
  }
  .sd-improve-essentials figcaption { padding-block: 1.6rem 1.8rem; }
  .sd-improve-essentials__copy {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 1.3rem 1rem;
    padding-top: 1.35rem;
  }
  .sd-improve-essentials__copy > div { gap: .35rem; }
  .sd-improve-essentials__copy > div:first-child { order: 2; }
  .sd-improve-essentials__copy > div:last-child { order: 3; grid-column: 1 / 3; }
  .sd-improve-essentials__copy span { font-size: .64rem; }
  .sd-improve-essentials__copy strong { font-size: 1rem; line-height: 1.5; }
  .sd-improve-essentials__time { order: 1; grid-column: 1 / 3; }
  .sd-improve-essentials__time strong { gap: .75rem; font-size: clamp(2.15rem,11.5vw,2.8rem); }
  .sd-improve-essentials__time i { flex: 1; }

  .sd-improve-work { padding: 4.7rem 0 4rem; }
  .sd-improve-work__header { grid-template-columns: 1fr; gap: 1.4rem; margin-bottom: 2.25rem; }
  .sd-improve-work__header h2 { font-size: clamp(2rem,10vw,2.65rem); }
  .sd-improve-work__header > p { font-size: .96rem; line-height: 1.9; }
  .sd-improve-work__gallery {
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-template-rows: 20rem 12rem;
    gap: .5rem;
  }
  .sd-improve-work__gallery .sd-improve-work__main { grid-column: 1 / 3; grid-row: 1; }
  .sd-improve-work__gallery figcaption { padding: .9rem .85rem; font-size: .82rem; }
  .sd-improve-work__footer { display: grid; gap: 0; }
  .sd-improve-work__footer p { padding: 1.25rem 0; font-size: .88rem; }
  .sd-improve-work__footer p span { display: block; margin-top: .2rem; }
  .sd-improve-work__footer a { justify-content: space-between; padding: 1rem 0; }

  .sd-use-flow__stage ol { grid-template-columns: 1fr !important; }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__header { margin-bottom: 1.8rem; }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__stage { padding-top: 0; }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__stage ol { gap: 0 !important; }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__track { display: none; }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__stage li {
    grid-template-columns: 2.35rem 6.5rem minmax(0,1fr) !important;
    align-items: center;
    gap: .8rem;
    min-height: 0 !important;
    padding: 1rem 0 !important;
    border: 0 !important;
    border-top: 1px solid var(--sd-improve-line) !important;
  }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__stage li:last-child {
    border-bottom: 1px solid var(--sd-improve-line) !important;
  }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__number {
    position: static !important;
    grid-column: 1;
    grid-row: 1;
    width: 2.35rem !important;
    height: 2.35rem !important;
    margin: 0 !important;
    transform: none !important;
  }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__number i { transform: none !important; }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__scene {
    grid-column: 2;
    grid-row: 1;
    width: 6.5rem !important;
    height: 6.5rem !important;
    margin: 0 !important;
    aspect-ratio: 1 !important;
  }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__stage li > div {
    grid-column: 3;
    grid-row: 1;
    min-width: 0;
    padding: 0 !important;
  }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__stage h3 {
    margin: 0 0 .35rem;
    font-size: 1rem;
  }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__stage p {
    margin: 0;
    font-size: .84rem;
    line-height: 1.6;
  }
  body.home.sd-site .sd-use-flow--home .sd-use-flow__footer {
    margin-top: 1.5rem;
    padding-top: 1rem;
    padding-left: 0;
  }

  body { padding-bottom: 52px !important; }
  .sd-mobile-cta {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    min-height: 52px !important;
  }
  .sd-mobile-cta a { min-height: 52px !important; font-size: .82rem !important; }
  .sd-mobile-cta__line { color: #fff !important; background: #193d2c !important; }
}

@media (prefers-reduced-motion: reduce) {
  .sd-home-opening { display: none !important; }
  .sd-pr-hero h1 span,
  .sd-pr-hero__story span,
  .sd-pr-hero__brand img { opacity: 1 !important; transform: none !important; animation: none !important; }
  .sd-improve-work__gallery img { transition: none; }
}

/* Editorial flow: photographs and captions form one composition instead of three cards. */
body.home.sd-site .sd-improve-flow {
  padding-block: clamp(5rem,6vw,6.5rem);
  background: #fbfaf7;
}
body.home.sd-site .sd-improve-flow .sd-use-flow__header {
  margin-bottom: clamp(2.5rem,4vw,3.75rem);
}
body.home.sd-site .sd-improve-flow .sd-use-flow__stage {
  padding-top: 0;
}
body.home.sd-site .sd-improve-flow .sd-use-flow__track {
  display: none;
}
body.home.sd-site .sd-improve-flow .sd-use-flow__stage ol {
  display: grid !important;
  grid-template-columns: repeat(12,minmax(0,1fr)) !important;
  align-items: start;
  gap: clamp(1rem,2vw,2rem) !important;
  margin: 0 !important;
}
body.home.sd-site .sd-improve-flow .sd-use-flow__stage li {
  position: relative;
  display: block !important;
  min-width: 0;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
body.home.sd-site .sd-improve-flow .sd-use-flow__stage li:nth-child(1) {
  grid-column: 1 / span 4;
}
body.home.sd-site .sd-improve-flow .sd-use-flow__stage li:nth-child(2) {
  grid-column: 5 / span 3;
  margin-top: clamp(1rem,1.6vw,1.6rem);
}
body.home.sd-site .sd-improve-flow .sd-use-flow__stage li:nth-child(3) {
  grid-column: 8 / span 5;
  margin-top: clamp(1.8rem,2.8vw,2.8rem);
}
body.home.sd-site .sd-improve-flow .sd-use-flow__scene {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  overflow: hidden;
  background: #e7e3da;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.home.sd-site .sd-improve-flow li:nth-child(1) .sd-use-flow__scene { aspect-ratio: 4 / 3; }
body.home.sd-site .sd-improve-flow li:nth-child(2) .sd-use-flow__scene { aspect-ratio: 3 / 4; }
body.home.sd-site .sd-improve-flow li:nth-child(3) .sd-use-flow__scene { aspect-ratio: 5 / 4; }
body.home.sd-site .sd-improve-flow .sd-use-flow__scene img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.72) contrast(1.035) brightness(.96);
  transition: transform 1.1s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}
body.home.sd-site .sd-improve-flow .sd-use-flow__stage li:hover img {
  transform: scale(1.018);
  filter: saturate(.84) contrast(1.035);
}
body.home.sd-site .sd-improve-flow .sd-use-flow__number {
  position: absolute !important;
  z-index: 2;
  top: .85rem !important;
  left: .85rem !important;
  display: grid !important;
  width: 2.7rem !important;
  height: 2.7rem !important;
  margin: 0 !important;
  place-items: center;
  color: #fff !important;
  background: rgba(17,28,31,.86) !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
  backdrop-filter: blur(7px);
}
body.home.sd-site .sd-improve-flow .sd-use-flow__number i {
  color: inherit !important;
  font-family: Georgia,"Times New Roman",serif;
  font-size: .72rem;
  font-style: normal;
  letter-spacing: .08em;
  transform: none !important;
}
body.home.sd-site .sd-improve-flow .sd-use-flow__stage li > div {
  padding: 1.25rem 0 0 !important;
  border-top: 1px solid rgba(23,34,37,.2);
}
body.home.sd-site .sd-improve-flow .sd-use-flow__stage h3 {
  margin: 0 0 .55rem;
  color: var(--sd-improve-ink);
  font-family: "Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-size: clamp(1.3rem,1.8vw,1.8rem);
  font-weight: 500;
  letter-spacing: .025em;
}
body.home.sd-site .sd-improve-flow .sd-use-flow__stage p {
  max-width: 28rem;
  margin: 0;
  color: var(--sd-improve-muted);
  font-size: .93rem;
  line-height: 1.8;
}

/* Access: a truthful exterior photograph replaces the empty map placeholder. */
body.home.sd-site .sd-improve-access {
  padding-block: clamp(6rem,9vw,9rem);
  background: #fff;
}
body.home.sd-site .sd-improve-access .sd-bh-access__layout {
  grid-template-columns: minmax(0,.82fr) minmax(32rem,1.18fr);
  align-items: center;
  gap: clamp(3rem,7vw,8rem);
}
body.home.sd-site .sd-improve-access .sd-bh-access__copy address {
  margin-block: 1.65rem 2rem;
  font-family: "Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-size: clamp(1.45rem,2.25vw,2.3rem);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .035em;
}
body.home.sd-site .sd-improve-access .sd-bh-access__copy dl {
  margin-bottom: 2rem;
  border-top-color: rgba(23,34,37,.28);
}
body.home.sd-site .sd-improve-access .sd-bh-access__copy dl > div {
  padding-block: 1rem;
  border-bottom-color: rgba(23,34,37,.13);
}
body.home.sd-site .sd-improve-access .sd-bh-access__map {
  position: relative;
  min-height: 0 !important;
  overflow: visible;
  background: transparent !important;
  box-shadow: none !important;
}
.sd-improve-access__visual {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  color: #fff;
  background: #d9d7d0;
  text-decoration: none;
}
.sd-improve-access__visual::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,transparent 48%,rgba(10,17,19,.72));
  content: "";
}
.sd-improve-access__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 53%;
  filter: saturate(.72) contrast(1.02) brightness(.96);
  transition: transform 1.1s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}
.sd-improve-access__visual:hover img {
  transform: scale(1.018);
  filter: saturate(.84) contrast(1.02);
}
.sd-improve-access__visual > span,
.sd-improve-access__visual > strong {
  position: absolute;
  z-index: 1;
  bottom: 1.35rem;
}
.sd-improve-access__visual > span {
  left: 1.4rem;
  color: rgba(255,255,255,.76);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
}
.sd-improve-access__visual > strong {
  right: 1.4rem;
  display: flex;
  gap: 2rem;
  align-items: center;
  color: #fff;
  font-size: .88rem;
  letter-spacing: .04em;
}
.sd-improve-access__visual i { color: #e3bd68; font-style: normal; }

/* The FAQ stays easy to scan, while a real room photograph adds reassurance. */
body.home.sd-site #home-faq .sd-bh-faq__layout {
  align-items: start;
}
.sd-easy-faq-photo {
  max-width: 31rem;
  margin: clamp(2rem,4vw,3.5rem) 0 0;
}
.sd-easy-faq-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  filter: saturate(.7) contrast(1.025) brightness(.98);
}
.sd-easy-faq-photo figcaption {
  margin-top: .85rem;
  color: var(--sd-improve-muted);
  font-size: .82rem;
  line-height: 1.75;
}

/* Closing invitation: strong typography and clear hierarchy, without button tiles. */
body.home.sd-site .sd-improve-final {
  position: relative;
  padding-block: clamp(5rem,8vw,8rem);
  color: #fff;
  background: #152124;
}
body.home.sd-site .sd-improve-final .sd-bh-final__beam { display: none; }
body.home.sd-site .sd-improve-final .sd-bh-final__layout {
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(28rem,.95fr);
  align-items: end;
  gap: clamp(3rem,9vw,9rem);
}
body.home.sd-site .sd-improve-final .sd-bh-index { color: #dcb052; }
body.home.sd-site .sd-improve-final h2 {
  margin: 1rem 0 0;
  color: #fff;
  font-family: "Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-size: clamp(1.75rem,2vw,2.1rem);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .015em;
}
body.home.sd-site .sd-improve-final .sd-improve-final__contact > p {
  max-width: 34rem;
  margin: 0 0 2rem;
  color: rgba(255,255,255,.72) !important;
  font-size: 1rem;
  line-height: 2;
}
.sd-improve-final__primary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 4.6rem;
  padding: 1rem 1.35rem;
  color: #152124;
  background: #f7f3ea;
  border-bottom: 3px solid #d7a332;
  font-weight: 700;
  text-decoration: none;
  transition: color .25s ease, background .25s ease;
}
.sd-improve-final__primary:hover { color: #fff; background: #263438; }
.sd-improve-final__primary i { color: #b58218; font-style: normal; }
.sd-improve-final__sub {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  margin-top: 1.2rem;
  border-top: 1px solid rgba(255,255,255,.25);
}
body.home.sd-site .sd-improve-final .sd-improve-final__sub a {
  display: grid;
  gap: .35rem;
  padding: 1.2rem 0;
  color: #fff !important;
  text-decoration: none;
}
.sd-improve-final__sub a + a {
  padding-left: 1.3rem;
  border-left: 1px solid rgba(255,255,255,.18);
}
body.home.sd-site .sd-improve-final .sd-improve-final__sub small {
  color: rgba(255,255,255,.58) !important;
  font-size: .7rem;
  letter-spacing: .08em;
}
body.home.sd-site .sd-improve-final .sd-improve-final__sub strong {
  color: #fff !important;
  font-family: Georgia,"Times New Roman",serif;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: .035em;
}

/* Site-wide contact rail: narrow, fixed and independent from page sections. */
.sd-scroll-contact,
.sd-mobile-cta { display: none !important; }
.sd-global-contact-rail,
.sd-global-mobile-contact { display: none; }

@media (min-width: 768px) {
  .sd-global-contact-rail {
    position: fixed;
    z-index: 980;
    top: 50%;
    right: 0;
    display: flex;
    width: 4rem;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(23,34,37,.14);
    border-right: 0;
    border-radius: 1.45rem 0 0 1.45rem;
    background: #fff;
    box-shadow: 0 1rem 2.8rem rgba(17,25,28,.15);
    transform: translateY(-50%);
  }
  .sd-global-contact-rail a {
    display: flex;
    width: 4rem;
    min-height: 8.3rem;
    box-sizing: border-box;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    padding: .85rem .55rem;
    border-bottom: 1px solid rgba(23,34,37,.12);
    color: #172225;
    text-decoration: none;
    transition: filter .2s ease, box-shadow .2s ease;
  }
  .sd-global-contact-rail a:last-child { border-bottom: 0; }
  .sd-global-contact-rail a:hover,
  .sd-global-contact-rail a:focus-visible {
    filter: brightness(.96);
    box-shadow: inset .22rem 0 0 #d7a332;
  }
  .sd-global-contact-rail span {
    display: grid;
    min-width: 2.2rem;
    min-height: 2.2rem;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    font-family: Arial,sans-serif;
    font-size: .57rem;
    font-weight: 800;
    letter-spacing: .01em;
    writing-mode: horizontal-tb;
  }
  .sd-global-contact-rail strong {
    font-size: .83rem;
    font-weight: 750;
    line-height: 1.6;
    letter-spacing: .09em;
    text-orientation: upright;
    writing-mode: vertical-rl;
  }
  .sd-global-contact-rail__line {
    color: #fff !important;
    background: #06c755;
  }
  .sd-global-contact-rail__mail { background: #fff; }
  .sd-global-contact-rail__phone {
    color: #fff !important;
    background: #1d2b2e;
  }
}

@media (max-width: 767px) {
  .sd-global-mobile-contact {
    position: fixed;
    z-index: 990;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    min-height: 52px;
    border-top: 1px solid rgba(23,34,37,.16);
    background: rgba(255,255,255,.97);
    box-shadow: 0 -.5rem 1.8rem rgba(17,25,28,.08);
    backdrop-filter: blur(12px);
  }
  .sd-global-mobile-contact a {
    display: grid;
    min-height: 52px;
    place-items: center;
    color: #172225;
    border-right: 1px solid rgba(23,34,37,.12);
    font-size: .82rem;
    font-weight: 750;
    text-decoration: none;
  }
  .sd-global-mobile-contact a:last-child { border-right: 0; }
  .sd-global-mobile-contact__line {
    color: #fff !important;
    background: #06c755;
  }
}

@media (max-width: 767px) {
  .sd-easy-guide { padding-block: 4.8rem; }
  .sd-easy-guide__header {
    grid-template-columns: 1fr;
    gap: 1.35rem;
    margin-bottom: 2rem;
  }
  .sd-easy-guide__header > p { margin: 0; font-size: .95rem; line-height: 1.85; }
  .sd-easy-guide__facts {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .sd-easy-guide__facts > div,
  .sd-easy-guide__facts > div:nth-child(odd) {
    grid-template-areas: "icon term" "icon desc";
    grid-template-columns: 7.2rem minmax(0,1fr);
    grid-template-rows: auto auto;
    gap: .45rem 1rem;
    align-items: center;
    padding: 1.35rem .25rem;
    border-top: 1px solid rgba(23,34,37,.13);
    border-left: 0;
    background: transparent;
  }
  .sd-easy-guide__facts > div:first-child { border-top: 0; }
  .sd-easy-guide__icon {
    grid-area: icon;
    width: 7.2rem;
    min-height: 7.2rem;
  }
  .sd-easy-guide__facts dt { grid-area: term; }
  .sd-easy-guide__facts dd { grid-area: desc; align-self: start; }
  .sd-easy-guide__facts dt strong { font-family: inherit; font-size: 1.12rem; font-weight: 700; }
  .sd-easy-guide__facts dd { font-size: .88rem; }

  body.home.sd-site .sd-improve-flow { padding-block: 4.8rem; }
  body.home.sd-site .sd-improve-flow .sd-use-flow__header { margin-bottom: 1.8rem; }
  body.home.sd-site .sd-improve-flow .sd-use-flow__stage ol {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  body.home.sd-site .sd-improve-flow .sd-use-flow__stage li,
  body.home.sd-site .sd-improve-flow .sd-use-flow__stage li:nth-child(n) {
    grid-column: auto;
    display: grid !important;
    grid-template-columns: 6.5rem minmax(0,1fr) !important;
    align-items: center;
    gap: 1rem;
    margin-top: 0 !important;
    padding: 1rem 0 !important;
    border-top: 1px solid var(--sd-improve-line) !important;
  }
  body.home.sd-site .sd-improve-flow .sd-use-flow__stage li:last-child {
    border-bottom: 1px solid var(--sd-improve-line) !important;
  }
  body.home.sd-site .sd-improve-flow .sd-use-flow__scene,
  body.home.sd-site .sd-improve-flow li:nth-child(n) .sd-use-flow__scene {
    grid-column: 1;
    grid-row: 1;
    width: 6.5rem !important;
    height: 6.5rem !important;
    aspect-ratio: 1 !important;
  }
  body.home.sd-site .sd-improve-flow .sd-use-flow__number {
    top: .35rem !important;
    left: .35rem !important;
    width: 1.9rem !important;
    height: 1.9rem !important;
  }
  body.home.sd-site .sd-improve-flow .sd-use-flow__number i { font-size: .6rem; }
  body.home.sd-site .sd-improve-flow .sd-use-flow__stage li > div {
    grid-column: 2;
    grid-row: 1;
    padding: 0 !important;
    border-top: 0;
  }
  body.home.sd-site .sd-improve-flow .sd-use-flow__stage h3 {
    margin-bottom: .3rem;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
  }
  body.home.sd-site .sd-improve-flow .sd-use-flow__stage p { font-size: .83rem; line-height: 1.65; }

  body.home.sd-site .sd-improve-access { padding-block: 4.8rem; }
  body.home.sd-site .sd-improve-access .sd-bh-access__layout {
    grid-template-columns: 1fr;
    gap: 2.2rem;
  }
  body.home.sd-site .sd-improve-access .sd-bh-access__copy address {
    font-family: inherit;
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.65;
  }
  .sd-improve-access__visual { aspect-ratio: 4 / 3; }
  .sd-improve-access__visual > span { left: 1rem; bottom: 1rem; }
  .sd-improve-access__visual > strong { right: 1rem; bottom: 1rem; gap: 1rem; font-size: .78rem; }

  .sd-easy-faq-photo {
    max-width: none;
    margin-top: 2rem;
  }

  body.home.sd-site .sd-improve-final { padding-block: 4.8rem 4.2rem; }
  body.home.sd-site .sd-improve-final .sd-bh-final__layout {
    grid-template-columns: 1fr;
    gap: 2.2rem;
  }
  body.home.sd-site .sd-improve-final h2 {
    font-size: clamp(1.55rem,7vw,1.85rem);
    line-height: 1.5;
  }
  .sd-improve-final__contact > p { margin-bottom: 1.5rem; font-size: .94rem; line-height: 1.85; }
  .sd-improve-final__primary { min-height: 4rem; }
  .sd-improve-final__sub strong { font-size: .96rem; }

  body.home.sd-site .sd-mobile-cta {
    border-top: 1px solid rgba(23,34,37,.18) !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 -8px 26px rgba(17,25,28,.08) !important;
    backdrop-filter: blur(12px);
  }
  body.home.sd-site .sd-mobile-cta a {
    color: var(--sd-improve-ink) !important;
    background: rgba(255,255,255,.96) !important;
    border-right: 1px solid rgba(23,34,37,.12) !important;
  }
  body.home.sd-site .sd-mobile-cta a:first-child {
    color: #fff !important;
    background: #1d2b2e !important;
  }
  body.home.sd-site .sd-mobile-cta .sd-mobile-cta__line {
    color: var(--sd-improve-ink) !important;
    background: #f3efe6 !important;
    border-right: 0 !important;
  }
}
