:root{--ink:#050608;--paper:#f2f0eb;--gold:#b89a5e;--muted:#8c8b87;--serif:"Noto Serif JP",serif;--sans:"Noto Sans JP",sans-serif;--display:"Cormorant Garamond",serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);font-weight:300;overflow-x:hidden}a{color:inherit;text-decoration:none}.intro{position:fixed;inset:0;background:#000;z-index:1000;display:grid;place-items:center;animation:introOut 2.8s 1.6s both}.intro span{font:500 12px var(--sans);letter-spacing:.45em;color:#ddd;animation:introText 1.8s both}.site-header{height:88px;padding:0 3.2vw;display:flex;align-items:center;position:absolute;inset:0 0 auto;z-index:20;border-bottom:1px solid rgba(255,255,255,.16)}.brand{display:flex;align-items:center;gap:18px}.brand small{font-size:10px;letter-spacing:.18em;border-right:1px solid #777;padding-right:18px}.brand strong{font:500 14px/1.05 var(--display);letter-spacing:.18em}.site-header nav{margin-left:auto;display:flex;height:100%}.site-header nav a{padding:0 1.25vw;display:grid;place-items:center;font-size:10px;letter-spacing:.2em;color:#ddd}.header-cta{height:100%;margin-left:1.6vw;padding:0 28px;display:flex;align-items:center;gap:30px;background:rgba(184,154,94,.92);font-size:13px}.menu{display:none}.hero{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;background:#000}.cinema,.film,.grain,.vignette{position:absolute;inset:0}.film{opacity:0;background-size:cover;background-position:center;animation:film 18s infinite}.film-1{background-image:url(assets/hero-station.png);animation-delay:3.6s}.film-2{background-image:url(assets/hero-community.png);animation-delay:9.2s}.film-3{background-image:url(assets/hero-residence.png);animation-delay:14.8s}.vignette{background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.08) 55%,rgba(0,0,0,.38)),linear-gradient(0deg,rgba(0,0,0,.64),transparent 48%)}.grain{opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.hero-copy{position:relative;z-index:3;text-align:center;margin-top:7vh;text-shadow:0 2px 20px #000}.eyebrow,.label{font-size:10px;letter-spacing:.4em;color:#d6bd87}.hero h1{font:400 clamp(32px,4.35vw,72px)/1.55 var(--serif);letter-spacing:.1em;margin:28px 0}.hero h1 span,.hero h1 em{display:block;font-style:normal}.hero h1 span{opacity:0;animation:titleIn 1.8s ease forwards}.hero h1 span:nth-child(1){animation-delay:4.2s}.hero h1 span:nth-child(2){animation-delay:5s}.hero h1 em{color:#d4b979;opacity:0;animation:titleIn 1.8s 5.8s ease forwards}.hero-name{font:400 12px var(--display);letter-spacing:.25em}.hero-name b{color:#d6bd87;font-weight:400}.hero-notice{position:absolute;left:4vw;bottom:5vh;z-index:4;display:flex;gap:15px;align-items:center}.hero-notice span{font-size:10px;padding:5px 8px;border:1px solid #ae9a74}.hero-notice p{font-size:11px;line-height:1.7;margin:0}.sound{position:absolute;right:4vw;bottom:5vh;z-index:5;background:none;color:#ddd;border:0;font:10px var(--sans);letter-spacing:.18em}.bars{display:inline-flex;align-items:end;gap:2px;height:14px;margin-right:8px}.bars i{width:1px;background:#d6bd87;animation:bars 1s infinite}.bars i:nth-child(2){animation-delay:.2s}.bars i:nth-child(3){animation-delay:.4s}.scroll{position:absolute;z-index:5;bottom:0;left:50%;display:flex;align-items:center;gap:14px;transform:translateX(-50%) rotate(90deg);transform-origin:0 50%;font-size:9px;letter-spacing:.3em}.scroll i{width:54px;height:1px;background:#ccc;display:block}.manifesto{min-height:52vh;padding:15vh 10vw;display:grid;grid-template-columns:10% 48% 42%;align-items:center;background:#0b0c0e}.section-no{font:400 13px var(--display);color:#bda677;letter-spacing:.15em}.manifesto h2,.landplan h2,.quality h2,.closing h2{font:400 clamp(34px,4vw,64px)/1.6 var(--serif);letter-spacing:.08em;margin:22px 0}.manifesto-body{font-size:15px;line-height:2.4;color:#c9c7c2}.manifesto-body .en{font:400 18px/1.6 var(--display);letter-spacing:.08em;color:#777;margin-top:36px}.location{display:grid;grid-template-columns:58% 42%;min-height:900px;background:#efede7;color:#111}.location-photo{background:url(assets/hero-station.png) center/cover;min-height:700px}.location-panel{padding:13vh 7vw;position:relative}.location-panel>.section-no,.landplan-head .section-no,.quality-copy .section-no{position:absolute;right:10%;top:13vh}.location h2{font:400 clamp(100px,14vw,210px)/.8 var(--display);margin:9vh 0 4vh;color:#151515}.location h2 small{font-size:.16em;letter-spacing:.15em}.location h3{font:500 23px var(--serif);letter-spacing:.08em}.location-panel>p:not(.label,.note){font-size:14px;line-height:2}.access-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:8vh;border-top:1px solid #bbb;border-left:1px solid #bbb}.access-grid div{padding:25px;border-right:1px solid #bbb;border-bottom:1px solid #bbb}.access-grid strong{font:400 48px var(--display)}.access-grid span{font:12px var(--display)}.access-grid p{font-size:11px;line-height:1.5}.note{font-size:10px;color:#777}.landplan{padding:15vh 10vw;background:#0a0b0d;min-height:940px}.landplan-head{max-width:800px;position:relative}.plot-wrap{margin:8vh auto 4vh;max-width:1060px;height:390px;display:grid;grid-template-columns:1fr 1fr 1.12fr 1fr;grid-template-rows:1fr 55px;gap:2px;transform:perspective(900px) rotateX(7deg)}.plot{border:1px solid #887958;background:linear-gradient(140deg,rgba(184,154,94,.12),rgba(255,255,255,.02));position:relative;display:grid;place-items:center}.plot span{font:400 38px var(--display);color:#c4ae7e}.plot-1{clip-path:polygon(10% 0,100% 0,100% 100%,0 100%)}.plot-4{clip-path:polygon(0 0,90% 0,100% 100%,0 100%)}.road{grid-column:1/-1;border:1px solid #393a3d;color:#666;display:grid;place-items:center;font:11px var(--display);letter-spacing:.4em}.land-meta{max-width:1060px;margin:auto;border-top:1px solid #444;display:flex;justify-content:space-between;padding-top:25px;color:#888;font-size:12px}.land-meta b{font:400 26px var(--serif);color:#ddd;margin-right:20px}.quality{min-height:950px;position:relative;display:grid;grid-template-columns:55% 45%;background:#121315}.quality-photo{background:url(assets/hero-residence.png) center/cover}.quality-copy{padding:15vh 6vw;position:relative}.quality-copy>p:not(.label){color:#aaa;line-height:2}.specs{margin-top:8vh;border-top:1px solid #454545}.specs>div{display:grid;grid-template-columns:1fr 90px 80px;align-items:baseline;border-bottom:1px solid #454545;padding:20px 0}.specs span{font:10px var(--sans);letter-spacing:.18em;color:#999}.specs strong{font:400 58px var(--display);color:#d4b979}.specs small{font:12px var(--display);letter-spacing:.12em}.closing{padding:14vh 10vw;background:#e9e6df;color:#111;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.closing-actions a{padding:25px 0;border-top:1px solid #999;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;font-family:var(--serif);font-size:18px}.closing-actions span{font:11px var(--display);letter-spacing:.18em}.closing-actions a:last-child{border-bottom:1px solid #999}.closing-actions b{font-weight:400}.legal{padding:30px 10vw 80px;background:#e9e6df;color:#666;font-size:10px;line-height:1.8}.legal details{border-top:1px solid #bbb;margin-top:25px;padding-top:20px}.legal summary{cursor:pointer;font-size:12px;color:#333}.reveal{opacity:0;transform:translateY(35px);transition:opacity 1.2s,transform 1.2s}.reveal.visible{opacity:1;transform:none}.paused .film,.paused .bars i{animation-play-state:paused}@keyframes introText{0%{opacity:0;letter-spacing:.8em}45%{opacity:1}100%{opacity:.8;letter-spacing:.45em}}@keyframes introOut{0%,65%{opacity:1}99%{opacity:0;visibility:visible}100%{opacity:0;visibility:hidden}}@keyframes titleIn{from{opacity:0;filter:blur(12px);transform:translateY(14px);letter-spacing:.2em}to{opacity:1;filter:none;transform:none}}@keyframes film{0%{opacity:0;transform:scale(1)}10%,27%{opacity:1}35%,100%{opacity:0;transform:scale(1.12)}}@keyframes bars{0%,100%{height:3px}50%{height:14px}}@media(max-width:850px){.site-header{height:70px;padding:0 20px}.site-header nav,.header-cta{display:none}.menu{margin-left:auto;display:block;border:0;background:none;width:38px}.menu i{display:block;height:1px;background:#fff;margin:7px}.hero-copy{padding:0 24px}.hero h1{font-size:30px;letter-spacing:.04em}.hero-name{font-size:9px;line-height:1.8}.hero-notice{left:20px}.sound{right:20px}.manifesto{grid-template-columns:1fr;padding:110px 25px;gap:20px}.manifesto-title{margin-top:30px}.location{grid-template-columns:1fr}.location-photo{min-height:55vh}.location-panel{padding:90px 25px}.location-panel>.section-no{top:90px}.landplan{padding:100px 25px;min-height:auto}.plot-wrap{height:280px}.plot span{font-size:28px}.land-meta{display:block}.land-meta p{display:flex;flex-direction:column;gap:8px}.quality{grid-template-columns:1fr}.quality-photo{min-height:60vh}.quality-copy{padding:100px 25px}.quality-copy .section-no{top:100px}.specs>div{grid-template-columns:1fr 60px 55px}.specs strong{font-size:42px}.closing{grid-template-columns:1fr;padding:100px 25px}.legal{padding:30px 25px 70px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}.intro{display:none}.film{animation:none}.film-2{opacity:1}.hero h1 span,.hero h1 em{animation:none;opacity:1}.reveal{opacity:1;transform:none}}

@media(max-width:850px){.site-header nav.is-open{display:flex;position:absolute;top:70px;left:0;width:100%;height:auto;margin:0;padding:18px 20px 24px;flex-direction:column;background:rgba(5,6,8,.96);border-top:1px solid rgba(255,255,255,.12)}.site-header nav.is-open a{display:block;padding:13px 0}}

/* =========================================================
   SHOWA GROUP original header
   The page body below this block keeps the premium design.
   ========================================================= */
.pcInline{display:block}
.spInline{display:none}

#gHead{
  position:fixed;
  inset:0 0 auto 0;
  z-index:900;
  width:100%;
  min-height:92px;
  padding:22px 30px 18px;
  color:#fff;
  background:transparent;
  border-bottom:1px solid rgba(255,255,255,.18);
  transition:background-color .45s ease,color .45s ease,box-shadow .45s ease;
}
#gHead.is-scrolled{
  color:#111;
  background:rgba(255,255,255,.97);
  box-shadow:0 8px 30px rgba(0,0,0,.08);
}
#gHead ul{list-style:none;margin:0;padding:0}
#gHead a{text-decoration:none}

#gHead .farst_class{position:relative;z-index:2}
#gHead .tit{
  width:40%;
  margin:0;
  color:inherit;
  font-size:15px;
  font-weight:600;
  line-height:1.45;
  letter-spacing:.06em;
}
#gHead .tit a{color:inherit;text-shadow:0 2px 16px rgba(0,0,0,.38)}
#gHead.is-scrolled .tit a{text-shadow:none}

#menu-wrap{position:absolute;top:28px;right:30px;width:min(720px,58vw)}
#menu{display:flex;align-items:stretch;width:100%;height:40px;background:#fff}
#menu li{flex:1;min-width:0;border-right:1px solid #bbb;text-align:center}
#menu li:last-child{border-right:0}
#menu li a{
  display:grid;
  place-items:center;
  width:100%;
  height:40px;
  padding:0 8px;
  color:#111;
  font-size:12px;
  font-weight:600;
  line-height:1.25;
  white-space:nowrap;
  transition:color .25s ease,background-color .25s ease;
}
#menu li a:hover,#menu li a:focus-visible{color:#0c7782;background:#f2f6f6}
#menu .menu-concept{flex:1.45;background:#26b3bf;border-right:0}
#menu .menu-concept a{color:#fff}
#menu .menu-concept a:hover,#menu .menu-concept a:focus-visible{color:#26b3bf;background:#fff;outline:1px solid #26b3bf}

#gHead .banner{position:fixed;top:18%;right:0;z-index:901}
#gHead .banner ul{display:block}
#gHead .banner li{writing-mode:vertical-rl}
#gHead .banner li a{
  display:block;
  padding:32px 13px;
  color:#fff;
  font-size:13px;
  font-weight:600;
  letter-spacing:.12em;
  transition:background-color .25s ease;
}
#gHead .banner .request a{background:#44617b}
#gHead .banner .contact a{background:#942343}
#gHead .banner li a:hover,#gHead .banner li a:focus-visible{background:#000}

#gHead .gh-menu{display:none}
#gNav{display:none}

@media(max-width:980px){
  #gHead{min-height:82px;padding:18px 22px}
  #gHead .tit{font-size:13px}
  #menu-wrap{top:21px;right:18px;width:64vw}
  #menu li a{font-size:10px;padding:0 5px}
}

@media(max-width:769px){
  .pcInline{display:none!important}
  .spInline{display:block}
  #gHead{
    min-height:55px;
    height:55px;
    padding:0;
    color:#111;
    background:rgba(255,255,255,.97);
    border-bottom:1px solid #ddd;
    box-shadow:0 5px 20px rgba(0,0,0,.08);
  }
  #gHead .farst_class{height:55px;padding:4px 70px 3px 12px}
  #gHead .tit{width:100%;font-size:11px;line-height:1.35;letter-spacing:.02em}
  #gHead .tit a{color:#111;text-shadow:none}
  #gHead .banner{display:none}
  #gHead .gh-menu{
    position:absolute;
    top:0;
    right:0;
    display:grid;
    place-items:center;
    width:64px;
    height:55px;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:#000;
    cursor:pointer;
  }
  #gHead .gh-menu-inner{position:relative;display:block;width:26px;height:18px}
  #gHead .gh-menu-bar{position:absolute;left:0;display:block;width:100%;height:1px;background:#fff;transition:transform .3s ease,top .3s ease,bottom .3s ease,opacity .3s ease}
  #gHead .gh-menu-bar.mod-top{top:0}
  #gHead .gh-menu-bar.mod-middle{top:8px}
  #gHead .gh-menu-bar.mod-bottom{bottom:0}
  #gHead .gh-menu.is-open .mod-top{top:8px;transform:rotate(-45deg)}
  #gHead .gh-menu.is-open .mod-middle{opacity:0}
  #gHead .gh-menu.is-open .mod-bottom{bottom:9px;transform:rotate(-135deg)}

  #gNav{
    position:fixed;
    top:55px;
    right:0;
    z-index:899;
    display:block;
    width:min(82vw,360px);
    height:calc(100dvh - 55px);
    overflow-y:auto;
    visibility:hidden;
    opacity:0;
    transform:translateX(100%);
    background:#050608;
    transition:transform .3s ease,opacity .3s ease,visibility .3s ease;
  }
  #gNav.is-open{visibility:visible;opacity:1;transform:none}
  #gNav ul{margin:0;padding:0;list-style:none}
  #gNav li{border-bottom:1px solid rgba(255,255,255,.16)}
  #gNav a{display:block;padding:16px 22px;color:#fff;font-size:13px;font-weight:500;line-height:1.4;text-decoration:none}
#gNav a:hover,#gNav a:focus-visible{background:#15171a;color:#d6bd87}
}

/* =========================================================
   LOCATION（このブロックを最終指定として優先）
   PC：写真＋説明を上段、施設4件を下段に配置
   ========================================================= */
#location.location{
  display:block;
  min-height:0;
  padding:clamp(72px,7vw,110px) clamp(24px,6vw,96px);
  background:#efede7;
  color:#111;
}
#location .location-inner{
  width:100%;
  max-width:1180px;
  margin:0 auto;
}
#location .location-main{
  display:grid;
  grid-template-columns:minmax(0,55%) minmax(0,45%);
  align-items:stretch;
  gap:0;
}
#location .location-photo{
  width:100%;
  height:500px;
  min-height:0;
  background:url(assets/hero-station.png) center/cover no-repeat;
}
#location .location-panel{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  min-height:500px;
  padding:54px 0 54px clamp(42px,5vw,78px);
}
#location .location-panel>.section-no{
  position:absolute;
  top:54px;
  right:0;
}
#location .location-panel h2{
  margin:58px 0 34px;
  font-size:clamp(96px,10vw,150px);
}
#location .location-panel>p:not(.label){
  margin-bottom:0;
}
#location .location-access{
  width:100%;
  margin-top:48px;
}
#location .location-access .access-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  width:100%;
  margin:0;
  border-top:1px solid #bbb;
  border-left:1px solid #bbb;
}
#location .location-access .access-grid>div{
  min-width:0;
  padding:26px clamp(16px,2vw,32px);
  border-right:1px solid #bbb;
  border-bottom:1px solid #bbb;
}
#location .location-access .note{
  margin:12px 0 0;
}

@media(max-width:850px){
  #location.location{padding:0}
  #location .location-inner{max-width:none}
  #location .location-main{grid-template-columns:1fr}
  #location .location-photo{
    width:100%;
    height:auto;
    min-height:52vh;
  }
  #location .location-panel{
    display:block;
    min-height:0;
    padding:90px 25px 66px;
  }
  #location .location-panel>.section-no{top:90px;right:25px}
  #location .location-panel h2{
    margin:9vh 0 4vh;
    font-size:clamp(100px,28vw,160px);
  }
  #location .location-access{
    margin-top:0;
    padding:0 25px 90px;
  }
  #location .location-access .access-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #location .location-access .access-grid>div{padding:22px 18px}
}

@media(max-width:420px){
  #location .location-access .access-grid{grid-template-columns:1fr}
}

/* =========================================================
   FOOTER normalization
   sg_sanyouaboshiekimae の基本CSSと同じ基準を、
   共通フッター内だけに適用する。
   ========================================================= */
#footer{
  position:relative;
  top:auto;
  clear:both;
  width:100%;
  margin:0;
  color:#fff;
  font-family:"Zen Maru Gothic","M PLUS Rounded 1c",sans-serif;
  font-size:16px;
  font-weight:400;
  line-height:1;
}
#footer,
#footer *,
#footer *::before,
#footer *::after{
  box-sizing:border-box;
}
:where(#footer) p,
:where(#footer) dl,
:where(#footer) dt,
:where(#footer) dd,
:where(#footer) ul,
:where(#footer) ol,
:where(#footer) li{
  margin:0;
  padding:0;
  border:0;
  outline:0;
  vertical-align:baseline;
}
:where(#footer) ul,
:where(#footer) ol{
  list-style:none;
}
:where(#footer) p,
:where(#footer) dt,
:where(#footer) dd,
:where(#footer) li{
  font-size:1em;
  line-height:1.75;
  letter-spacing:.04em;
}
:where(#footer) a{
  margin:0;
  padding:0;
  font-size:100%;
  vertical-align:baseline;
  text-decoration:none;
}
:where(#footer) img{
  display:inline-block;
  max-width:100%;
  height:auto;
  vertical-align:bottom;
}
:where(#footer) img[src$=".svg"]{
  display:block;
  width:100%;
  height:auto;
  flex-shrink:0;
}
#footer>.inner{
  width:100%;
  max-width:1200px;
  margin-right:auto;
  margin-left:auto;
}

@media(max-width:680px){
  #footer>.inner{
    width:90.627%;
  }
}

/* =========================================================
   PERFORMANCE IFRAME / sg_noguchichonoguchi と同じ方式
   ========================================================= */
.performance-embed{
  display:block;
  clear:both;
  width:100%;
  margin:0;
  padding:0;
  background:#fff;
}
.performance-embed #myIframe{
  display:block;
  width:100%;
  margin:0;
  border:0;
  overflow:hidden;
  background:#fff;
  pointer-events:auto;
}

/* =========================================================
   HEADER alignment — sv_kakogawaminori_ut 基準
   ========================================================= */
.intro{z-index:2000}

@media(min-width:770px){
  .pcInline{display:inline!important}
  .spInline{display:none!important}

  #gHead{
    position:fixed;
    inset:0 0 auto 0;
    z-index:100;
    display:block;
    width:100%;
    min-height:0;
    padding:30px;
    color:#000;
    background-color:#fff;
    border:0;
    box-shadow:none;
    font-family:"Noto Serif JP",serif;
    font-size:16px;
    font-weight:500;
    line-height:1;
    transition:background-color .5s,color .5s;
  }
  #gHead.is-scrolled{
    color:#000;
    background-color:#fff;
    box-shadow:none;
  }
  #gHead .farst_class{
    position:relative;
    z-index:2;
    width:25%;
  }
  #gHead .tit{
    float:none;
    width:100%;
    margin:0;
    color:#000;
    font-size:16px;
    font-weight:700;
    line-height:1.3;
    letter-spacing:.04em;
  }
  #gHead .tit a,
  #gHead.is-scrolled .tit a{
    color:inherit;
    text-shadow:none;
  }
  #menu-wrap{
    position:absolute;
    top:30px;
    left:25%;
    z-index:1000;
    display:block!important;
    width:50%;
    height:30px;
    padding:5px 0;
    background:#fff;
  }
  #menu-wrap .conFix{
    width:100%;
    height:100%;
  }
  #menu{
    display:flex;
    align-items:flex-start;
    justify-content:flex-end;
    width:88%;
    height:25px;
    margin:0 0 0 auto;
    background:transparent;
    color:#006b85;
  }
  #menu li{
    flex:0 0 25%;
    width:25%;
    min-width:0;
    border-right:1px solid #000;
    text-align:center;
    font-size:85%;
    line-height:1.75;
    letter-spacing:.04em;
  }
  #menu li:last-child{border-right:0}
  #menu li a{
    display:block;
    width:100%;
    padding:8px 0 5px;
    color:#000;
    font-size:inherit;
    font-weight:700;
    line-height:1.3;
    text-shadow:1px 1px 1px #fff;
    white-space:nowrap;
  }
  #menu li a:hover,
  #menu li a:focus-visible{
    color:#0c7782;
    background:transparent;
  }
  #gHead>.omoi-link{
    position:absolute;
    top:30%;
    right:5%;
    z-index:1000;
  }
  #gHead>.omoi-link .omoi{
    display:block;
    padding:.5vw 1.5vw;
    border:1px solid #26b3bf;
    background:#26b3bf;
    color:#fff;
    font-size:16px;
    font-weight:500;
    line-height:1.75;
    white-space:nowrap;
  }
  #gHead>.omoi-link:hover .omoi,
  #gHead>.omoi-link:focus-visible .omoi{
    background:#fff;
    color:#26b3bf;
  }
  #gHead .banner{
    position:fixed;
    top:15%;
    right:0;
    z-index:1001;
  }
  #gHead .banner ul{display:block}
  #gHead .banner li{writing-mode:vertical-rl}
  #gHead .banner li a{
    display:block;
    padding:50px 15px;
    font-size:120%;
    font-weight:500;
    line-height:1.75;
    letter-spacing:.04em;
  }
  #gHead .banner .request a{background:#44617b;color:#fff}
  #gHead .banner .contact a{background:#942343;color:#fff}
  #gHead .banner .request a:hover,
  #gHead .banner .request a:focus-visible{background:#000;color:#fff}
  #gHead .banner .contact a:hover,
  #gHead .banner .contact a:focus-visible{background:#000;color:#fff}
  #gNav{
    position:fixed;
    top:45px;
    right:0;
    z-index:1001;
    display:block;
    width:auto;
    height:0;
    overflow:hidden;
  }
}

@media(min-width:770px) and (max-width:1100px){
  #gHead .tit{font-size:14px}
  #menu li{font-size:70%}
  #gHead>.omoi-link .omoi{font-size:14px}
}

@media(max-width:769px){
  .pcInline{display:none!important}
  .spInline{display:inline!important}

  #gHead{
    position:fixed;
    inset:0 0 auto 0;
    z-index:1000;
    width:100%;
    min-height:55px;
    height:55px;
    padding:0;
    color:#000;
    background-color:#fff;
    border:0;
    box-shadow:none;
    font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
    transition:background-color .5s;
  }
  #gHead.is-scrolled{background-color:#fff}
  #gHead .farst_class{height:55px;padding:0}
  #gHead .tit{
    position:fixed;
    top:3px;
    left:0;
    float:none;
    width:235px;
    height:70px;
    margin:0;
    padding:0;
    color:#000;
    font-size:14.4px;
    font-weight:700;
    line-height:1.1;
    letter-spacing:.04em;
    text-align:left;
  }
  #gHead .tit a,
  #gHead.is-scrolled .tit a{color:#000;text-shadow:none}
  #gHead .gh-menu{
    position:fixed;
    top:0;
    right:0;
    display:grid!important;
    place-items:center;
    width:64px;
    height:55px;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:#000;
  }
  #gHead .gh-menu-inner{
    position:relative;
    display:block;
    width:26px;
    height:17px;
  }
  #gHead .gh-menu-bar{height:1px}
  #gHead .gh-menu-bar.mod-top{top:0}
  #gHead .gh-menu-bar.mod-middle{top:8px}
  #gHead .gh-menu-bar.mod-bottom{bottom:0}
  #gHead .gh-menu.is-open .mod-top{top:8px}
  #gHead .gh-menu.is-open .mod-bottom{bottom:8px}
  #gHead .banner{display:none}
  #gNav{
    position:fixed;
    top:45px;
    right:0;
    z-index:1001;
    display:block;
    width:auto;
    min-width:240px;
    height:0;
    overflow:hidden;
    visibility:visible;
    opacity:1;
    transform:none;
    background:transparent;
    transition:height .3s ease;
  }
  #gNav.is-open{height:auto}
  #gNav ul{margin:0;padding:0;list-style:none}
  #gNav li{padding:12px 20px;border-bottom:1px solid #ccc;background:#000}
  #gNav a{
    display:block;
    padding:0;
    color:#fff;
    font-size:13px;
    font-weight:700;
    line-height:1.75;
  }

  body{
    padding-bottom:calc(50px + env(safe-area-inset-bottom));
  }
  .sp-contact-bar{
    position:fixed;
    right:0;
    bottom:0;
    left:0;
    z-index:1500;
    display:block!important;
    width:100%;
    height:calc(50px + env(safe-area-inset-bottom));
    padding-bottom:env(safe-area-inset-bottom);
    background:#fff;
    font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  }
  .sp-contact-bar__item{
    position:absolute;
    bottom:env(safe-area-inset-bottom);
    display:flex;
    align-items:center;
    justify-content:center;
    width:50%;
    height:50px;
    margin:0;
    padding:0 8px;
    border-radius:0;
    color:#fff;
    font-size:14px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:.04em;
    text-align:center;
    text-decoration:none;
  }
  .sp-contact-bar__item--reservation{
    left:0;
    border-right:1px solid #fff;
    background:#942343;
  }
  .sp-contact-bar__item--request{
    right:0;
    background:#44617b;
  }
  .sp-contact-bar__item:hover,
  .sp-contact-bar__item:focus-visible{
    background:#000;
    color:#fff;
  }
}

/* =========================================================
   ACCESS CARDS / walking distance alignment
   ========================================================= */
#location .access-grid .access-card__walk{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  gap:2px;
  min-width:82px;
  margin:0;
  padding:0!important;
  border:0!important;
}
#location .access-grid .access-card__walk .access-card__time{
  width:100%;
}
#location .access-grid .access-card__distance{
  width:100%;
  margin:3px 0 0;
  padding:0;
  color:#77736b;
  font:400 9px/1.25 var(--sans);
  letter-spacing:0;
  text-align:right;
  white-space:nowrap;
}

@media(max-width:769px){
  #location .access-grid .access-card__walk{
    width:100%;
    min-width:0;
    align-items:flex-end;
    gap:2px;
  }
  #location .access-grid .access-card__walk .access-card__time{
    justify-content:flex-end;
    width:auto;
    min-width:72px;
    margin:0;
    padding:8px 0 0;
    border-top:1px solid rgba(17,17,17,.16);
    border-left:0;
  }
  #location .access-grid .access-card__distance{
    width:auto;
    font-size:9px;
  }
}

@media(max-width:420px){
  #location .access-grid .access-card__walk{
    width:auto;
    min-width:76px;
  }
  #location .access-grid .access-card__walk .access-card__time{
    width:100%;
    padding:0 0 0 10px;
    border-top:0;
    border-left:1px solid rgba(17,17,17,.16);
  }
}

/* =========================================================
   CLOSING CTA / prominent but consistent with the site tone
   ========================================================= */
.closing{
  position:relative;
  overflow:hidden;
}
.closing::before{
  position:absolute;
  top:0;
  right:8%;
  width:1px;
  height:100%;
  background:linear-gradient(180deg,transparent,rgba(184,154,94,.38),transparent);
  content:"";
  pointer-events:none;
}
.closing-copy,
.closing-actions{
  position:relative;
  z-index:1;
}
.closing-copy>p:last-child{
  margin-bottom:0;
  color:#57534d;
  font-size:13px;
  letter-spacing:.06em;
}
.closing-actions{
  display:grid;
  gap:14px;
}
.closing-actions .closing-cta{
  position:relative;
  display:grid;
  grid-template-columns:clamp(88px,8vw,118px) minmax(0,1fr) 42px;
  align-items:center;
  min-height:116px;
  padding:22px 24px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.2);
  color:#fff;
  font-family:var(--sans);
  box-shadow:0 14px 34px rgba(21,23,26,.14);
  isolation:isolate;
  transition:transform .3s ease,box-shadow .3s ease,filter .3s ease;
}
.closing-actions a.closing-cta:last-child{
  border:1px solid rgba(255,255,255,.2);
}
.closing-actions .closing-cta::before{
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(115deg,rgba(255,255,255,.13),transparent 42%);
  content:"";
}
.closing-actions .closing-cta::after{
  position:absolute;
  top:0;
  left:0;
  width:4px;
  height:100%;
  background:#d6bd87;
  content:"";
}
.closing-cta--request{
  background:#3f5d77;
}
.closing-cta--reservation{
  background:#8d2340;
}
.closing-actions .closing-cta__en{
  align-self:stretch;
  display:flex;
  align-items:center;
  margin-right:22px;
  border-right:1px solid rgba(255,255,255,.3);
  color:#ead9b6;
  font:500 10px/1 var(--display);
  letter-spacing:.2em;
}
.closing-cta__body{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
}
.closing-actions .closing-cta__body small{
  color:rgba(255,255,255,.8);
  font-size:11px;
  font-weight:400;
  line-height:1.4;
  letter-spacing:.05em;
}
.closing-actions .closing-cta__body strong{
  color:#fff;
  font:500 clamp(20px,1.7vw,25px)/1.25 var(--serif);
  letter-spacing:.12em;
}
.closing-actions .closing-cta__arrow{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:50%;
  color:#fff;
  font-size:17px;
  transition:transform .3s ease,background-color .3s ease,color .3s ease;
}
.closing-actions .closing-cta:hover,
.closing-actions .closing-cta:focus-visible{
  transform:translateY(-3px);
  filter:saturate(1.08);
  box-shadow:0 20px 42px rgba(21,23,26,.22);
}
.closing-actions .closing-cta:hover .closing-cta__arrow,
.closing-actions .closing-cta:focus-visible .closing-cta__arrow{
  transform:translate(2px,-2px);
  background:#fff;
  color:#171717;
}
.closing-actions .closing-cta:focus-visible{
  outline:3px solid rgba(184,154,94,.65);
  outline-offset:4px;
}

@media(max-width:769px){
  .closing::before{
    display:none;
  }
  .closing-actions{
    gap:12px;
  }
  .closing-actions .closing-cta{
    grid-template-columns:78px minmax(0,1fr) 36px;
    min-height:104px;
    padding:18px 16px 18px 20px;
  }
  .closing-actions .closing-cta__en{
    margin-right:16px;
    font-size:9px;
    letter-spacing:.14em;
  }
  .closing-actions .closing-cta__body small{
    font-size:10px;
  }
  .closing-actions .closing-cta__body strong{
    font-size:21px;
  }
  .closing-actions .closing-cta__arrow{
    width:34px;
    height:34px;
    font-size:15px;
  }
}

@media(max-width:370px){
  .closing-actions .closing-cta{
    grid-template-columns:minmax(0,1fr) 34px;
  }
  .closing-actions .closing-cta__en{
    display:none;
  }
}

@media(prefers-reduced-motion:reduce){
  .closing-actions .closing-cta,
  .closing-actions .closing-cta__arrow{
    transition:none;
  }
}

@media(min-width:770px){
  .sp-contact-bar{display:none!important}
}

/* QUALITY section / always-visible property outline */
@media (min-width:851px){
  #plan.quality{
    min-height:clamp(740px,55vw,820px);
    align-items:stretch;
  }
  #plan .quality-photo{
    min-height:0;
  }
  #plan .quality-copy{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:0;
    padding:clamp(58px,7vh,78px) 6vw;
  }
  #plan .quality-copy>.section-no{
    top:clamp(58px,7vh,78px);
  }
  #plan .specs{
    margin-top:clamp(36px,4.5vh,52px);
  }
}

.legal .legal-outline{
  margin-top:25px;
  padding-top:20px;
  border-top:1px solid #bbb;
}
.legal .legal-outline h2{
  margin:0 0 16px;
  color:#333;
  font:500 12px/1.8 var(--sans);
  letter-spacing:.04em;
}
.legal .legal-outline__body p{
  margin:0 0 10px;
}
.legal .legal-outline__body p:last-child{
  margin-bottom:0;
}

/* =========================================================
   LOCATION / surrounding facilities photo cards
   Required images:
   assets/access-maraui.jpg
   assets/access-matsumoto-hospital.jpg
   assets/access-kakogawa-cityhall.jpg
   assets/access-nikke-parktown.jpg
   ========================================================= */
#location .location-access .access-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(12px,1.5vw,22px);
  border:0;
}
#location .access-card{
  min-width:0;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(17,17,17,.18);
  background:#f7f5ef;
  box-shadow:0 10px 30px rgba(22,20,15,.06);
  transition:transform .35s ease,box-shadow .35s ease;
}
#location .access-card__photo{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  background-color:#d8d4cc;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
#location .access-card--maruai .access-card__photo{
  background-image:linear-gradient(180deg,rgba(5,6,8,.03),rgba(5,6,8,.13)),url("assets/access-maraui.jpg");
}
#location .access-card--matsumoto .access-card__photo{
  background-image:linear-gradient(180deg,rgba(5,6,8,.03),rgba(5,6,8,.13)),url("assets/access-matsumoto-hospital.jpg");
}
#location .access-card--cityhall .access-card__photo{
  background-image:linear-gradient(180deg,rgba(5,6,8,.03),rgba(5,6,8,.13)),url("assets/access-kakogawa-cityhall.jpg");
}
#location .access-card--nikke .access-card__photo{
  background-image:linear-gradient(180deg,rgba(5,6,8,.03),rgba(5,6,8,.13)),url("assets/access-nikke-parktown.jpg");
}
#location .access-card__caption{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-height:96px;
  padding:18px 18px 17px;
}
#location .access-grid .access-card__name{
  min-width:0;
  margin:0;
  color:#171717;
  font:500 13px/1.65 var(--serif);
  letter-spacing:.04em;
}
#location .access-grid .access-card__time{
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  min-width:72px;
  margin:0;
  padding-left:12px;
  border-left:1px solid rgba(17,17,17,.16);
  color:#171717;
  line-height:1;
  white-space:nowrap;
}
#location .access-grid .access-card__time span{
  margin-right:3px;
  color:#77736b;
  font:500 9px/1 var(--sans);
  letter-spacing:.08em;
}
#location .access-grid .access-card__time strong{
  color:#9b7b3f;
  font:400 clamp(32px,3vw,42px)/1 var(--display);
}
#location .access-grid .access-card__time small{
  margin-left:2px;
  color:#4c4943;
  font:500 10px/1 var(--sans);
}
@media (hover:hover) and (pointer:fine){
  #location .access-card:hover{
    transform:translateY(-4px);
    box-shadow:0 16px 38px rgba(22,20,15,.12);
  }
}
@media(max-width:850px){
  #location .location-access .access-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
}
@media(max-width:540px){
  #location .location-access .access-grid{
    grid-template-columns:1fr;
  }
  #location .access-card__caption{
    min-height:88px;
    padding:16px 18px;
  }
  #location .access-grid .access-card__name{
    font-size:14px;
  }
}

/* CONCEPT heading: desktop only */
@media(min-width:851px){
  #concept .manifesto-title h2{
    font-size:clamp(36px,3.35vw,52px);
  }
}




/*-------------------------map pc--------------------------------*/

.map-section {
  padding: 5px auto 10px;
}

.map-inner {
  width: min(1200px, 92%) !important;
  margin: 0 auto;
}

.map-head {
  max-width: 760px;
  margin-bottom: 36px;
}

.map-label {
  font-family: 'Montserrat', 'Noto Sans JP', sans-serif;
  font-size: 18px;
  letter-spacing: 0.22em;
  color: #8a8178;
  margin-bottom: 14px;
}

.map-title {
  font-size: 32px !important;
  line-height: 1.5;
  font-weight: 700;
  color: #1f1f1f;
  margin-bottom: 14px;
}

.map-lead {
  font-size: 15px;
  line-height: 2;
  color: #555;
}

.map-frame {
  background: #fff;
  border: 1px solid rgba(17, 17, 17, 0.08);
  /*overflow: hidden;*/
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.04);
}

.map-frame iframe {
  width: 100%;
  height: 560px;
  display: block;
}

/*-------------------------map pc end--------------------------------*/

/*-------------------------map sp--------------------------------*/


@media screen and (max-width: 768px) {
  .map-section {
    padding: 15px 0 25px;
  }

  .map-title {
    font-size: 24px;
  }

  .map-lead {
    font-size: 14px;
  }

  .map-frame iframe {
    height: 360px;
  }
}

/*-------------------------map sp end--------------------------------*/

/* =========================================================
   FINAL RESPONSIVE SAFETY LAYER
   SP崩れ防止。既存PCデザインを維持したまま、幅・表示・固定UIを正規化。
   ========================================================= */
html{
  width:100%;
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body,
main,
section{
  max-width:100%;
}
img,
svg,
video,
canvas,
iframe{
  max-width:100%;
}
button,
a{
  -webkit-tap-highlight-color:transparent;
}
.performance-frame{
  display:block;
  width:100%;
  height:clamp(720px,78vh,920px);
  min-height:0;
  margin:0;
  border:0;
  overflow:auto;
  background:#fff;
}
.map-section{
  width:100%;
  padding:5px 0 10px;
}
.map-frame{
  overflow:hidden;
}
.map-frame iframe{
  display:block;
  width:100%;
  height:560px;
  border:0;
}

@media(max-width:769px){
  .pcInline{
    display:none!important;
  }
  .spInline{
    display:block!important;
  }

  body{
    min-width:0;
    padding-top:55px;
    padding-bottom:calc(50px + env(safe-area-inset-bottom));
    overflow-x:hidden;
  }
  main{
    width:100%;
    overflow:hidden;
  }

  #gHead{
    height:55px;
    min-height:55px;
  }
  #gHead .farst_class{
    height:55px;
    padding:5px 72px 4px 12px;
  }
  #gHead .tit{
    position:static;
    width:auto;
    height:auto;
    margin:0;
    padding:0;
    font-size:clamp(10px,3.15vw,12px);
    line-height:1.3;
  }
  #gHead .gh-menu{
    position:absolute;
  }
  #gNav{
    top:55px;
    width:min(86vw,360px);
    min-width:0;
    height:calc(100dvh - 55px);
    padding-bottom:calc(50px + env(safe-area-inset-bottom));
    overflow-y:auto;
    visibility:hidden;
    opacity:0;
    transform:translateX(100%);
    background:#050608;
    transition:transform .3s ease,opacity .3s ease,visibility .3s ease;
    overscroll-behavior:contain;
  }
  #gNav.is-open{
    height:calc(100dvh - 55px);
    visibility:visible;
    opacity:1;
    transform:translateX(0);
  }
  #gNav li{
    padding:0;
    background:transparent;
  }
  #gNav a{
    padding:15px 20px;
  }

  .hero{
    min-height:calc(100svh - 55px);
  }
  .hero-copy{
    width:100%;
    margin-top:0;
    padding:0 clamp(18px,6vw,28px);
  }
  .eyebrow{
    font-size:9px;
    line-height:1.8;
    letter-spacing:.22em;
  }
  .hero h1{
    margin:20px 0;
    font-size:clamp(27px,8vw,36px);
    line-height:1.55;
    letter-spacing:.03em;
  }
  .hero-name{
    overflow-wrap:anywhere;
    letter-spacing:.14em;
  }
  .hero-notice{
    right:110px;
    bottom:22px;
    left:18px;
    gap:9px;
  }
  .hero-notice span{
    flex:0 0 auto;
  }
  .sound{
    right:16px;
    bottom:22px;
    padding:8px 0;
    font-size:8px;
    letter-spacing:.08em;
  }

  .manifesto{
    min-height:0;
    padding:54px 24px;
  }
  .manifesto h2,
  .quality h2,
  .closing h2{
    font-size:clamp(29px,8.5vw,42px);
    line-height:1.55;
    letter-spacing:.04em;
  }
  .manifesto-body{
    font-size:13px;
    line-height:2.15;
  }
  .manifesto-body .en{
    font-size:15px;
    overflow-wrap:anywhere;
  }

  #location .location-photo{
    min-height:clamp(300px,72vw,480px);
  }
  #location .location-panel{
    padding:22px 24px 58px;
  }
  #location .location-panel>.section-no{
    top:74px;
    right:24px;
  }
  #location .location-panel h2{
    margin:34px 0 28px;
    font-size:clamp(88px,28vw,130px);
  }
  #location .location-panel h3{
    font-size:clamp(18px,5vw,23px);
    line-height:1.6;
  }
  #location .location-access{
    padding:0 18px 0px;
  }
  #location .location-access .access-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  #location .access-card__caption{
    grid-template-columns:1fr;
    align-content:start;
    gap:10px;
    min-height:128px;
    padding:14px;
  }
  #location .access-grid .access-card__name{
    font-size:12px;
    line-height:1.55;
  }
  #location .access-grid .access-card__time{
    justify-content:flex-start;
    min-width:0;
    padding:9px 0 0;
    border-top:1px solid rgba(17,17,17,.16);
    border-left:0;
  }
  #location .access-grid .access-card__time strong{
    font-size:36px;
  }

  .map-section{
    padding:8px 0 36px;
  }
  .map-inner{
    width:calc(100% - 36px)!important;
  }
  .map-head{
    margin-bottom:18px;
  }
  .map-title{
    margin:0;
    font-size:24px!important;
    line-height:1.5;
  }
  .map-frame iframe{
    height:clamp(320px,92vw,400px);
  }

  #plan.quality{
    min-height:0;
  }
  #plan .quality-photo{
    min-height:clamp(340px,82vw,540px);
  }
  #plan .quality-copy{
    min-width:0;
    padding:52px 24px;
  }
  #plan .quality-copy>.section-no{
    top:84px;
    right:24px;
  }
  #plan .specs{
    margin-top:52px;
  }
  #plan .specs>div{
    grid-template-columns:minmax(0,1fr) 54px 46px;
    column-gap:6px;
  }
  #plan .specs span{
    overflow-wrap:anywhere;
    font-size:8px;
    letter-spacing:.1em;
  }
  #plan .specs strong{
    font-size:38px;
  }
  #plan .specs small{
    font-size:10px;
    letter-spacing:.05em;
  }

  .performance-frame{
    height:clamp(620px,76vh,760px);
    min-height:0;
  }
  .closing{
    gap:44px;
    padding:82px 24px;
  }
  .closing-actions a{
    grid-template-columns:84px minmax(0,1fr) auto;
    gap:8px;
    font-size:16px;
  }
  .legal{
    padding:28px 24px 68px;
    overflow-wrap:anywhere;
  }
  #footer{
    overflow:hidden;
  }
}

@media(max-width:420px){
  #location .location-access .access-grid{
    grid-template-columns:1fr;
  }
  #location .access-card__caption{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    min-height:88px;
  }
  #location .access-grid .access-card__time{
    justify-content:flex-end;
    min-width:68px;
    padding:0 0 0 10px;
    border-top:0;
    border-left:1px solid rgba(17,17,17,.16);
  }
  .hero-notice{
    right:18px;
    bottom:60px;
  }
  .sound{
    bottom:22px;
  }
}

/* =========================================================
   TOP SLIDES / RESPONSIVE IMAGE SWITCHING

   Desktop images:
   - assets/hero-station.png
   - assets/hero-community.png
   - assets/hero-residence.png

   Mobile images:
   - assets/hero-station-sp.webp
   - assets/hero-community-sp.webp
   - assets/hero-residence-sp.webp

   The second URL in each mobile background is a safe fallback.
   If a mobile image is missing, the existing desktop image is shown.
   ========================================================= */
.film-1{
  background-image:url("assets/hero-station.png");
  background-position:center center;
}
.film-2{
  background-image:url("assets/hero-community.png");
  background-position:center center;
}
.film-3{
  background-image:url("assets/hero-residence.png");
  background-position:center center;
}

@media(max-width:769px){
  .film-1{
    background-image:
      url("assets/hero-station-sp.png"),
      url("assets/hero-station.png");
    background-position:center center,center center;
  }
  .film-2{
    background-image:
      url("assets/hero-community-sp.png"),
      url("assets/hero-community.png");
    background-position:center center,center center;
  }
  .film-3{
    background-image:
      url("assets/hero-residence-sp.png"),
      url("assets/hero-residence.png");
    background-position:center center,center center;
  }
  .film{
    background-repeat:no-repeat,no-repeat;
    background-size:cover,cover;
  }
}

/* =========================================================
   HERO SLIDES / dark-to-light cinematic reveal
   ========================================================= */
.film{
  will-change:opacity,transform,filter;
  animation-timing-function:ease-in-out;
}
@keyframes film{
  0%{
    opacity:0;
    filter:brightness(.48);
    transform:scale(1);
  }
  8%{
    opacity:1;
    filter:brightness(.58);
  }
  27%{
    opacity:1;
    filter:brightness(1);
  }
  35%{
    opacity:0;
    filter:brightness(1);
    transform:scale(1.12);
  }
  100%{
    opacity:0;
    filter:brightness(1);
    transform:scale(1.12);
  }
}

/* =========================================================
   OFFICIAL HOMENEW FOOTER
   https://www.showa-jutaku.co.jp/homenew/ の実測値
   ========================================================= */
#footer{
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Helvetica Neue",YuGothic,"ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN",Arial,メイリオ,Meiryo,sans-serif;
  font-size:16px;
  font-weight:400;
  line-height:1;
  letter-spacing:.1em;
}
#footer .f_address{
  font-size:14px;
  font-weight:400;
  line-height:1;
  letter-spacing:normal;
}
#footer .f_address dt,
#footer .f_address dd{
  font-family:inherit;
  font-size:14px;
  font-weight:400;
  line-height:24px;
  letter-spacing:normal;
}
#footer .f_gnavi>li>a{
  font-family:inherit;
  font-size:13px;
  font-weight:500;
  line-height:1;
  letter-spacing:normal;
}
#footer .f_gnavi_c a{
  font-family:inherit;
  font-size:12px;
  font-weight:500;
  line-height:1.3;
  letter-spacing:normal;
}
#footer .tellNumber{
  font-family:Oswald,sans-serif;
  font-size:43px;
  font-weight:400;
  line-height:1;
  letter-spacing:.05em;
}
#footer .tellNumberText,
#footer .copywrite{
  font-family:inherit;
  font-size:12px;
  font-weight:400;
  line-height:1;
  letter-spacing:.05em;
}

@media(min-width:770px){
  #footer .f_address dd{
    white-space:nowrap;
  }
}

@media(prefers-reduced-motion:reduce){
  .film{
    filter:brightness(1);
  }
}

/* =========================================================
   TYPOGRAPHY / improved readability for key information
   ========================================================= */
#gHead .tit{
  font-size:17px;
  line-height:1.5;
}

#concept .label{
  font-size:11px;
}
#concept .manifesto-title h2{
  font-size:clamp(38px,3.55vw,56px);
}
#concept .manifesto-body{
  font-size:16px;
  font-weight:400;
  line-height:2.3;
}
#concept .manifesto-body .en{
  font-size:19px;
  line-height:1.7;
}

#plan .specs span{
  font-size:17px;
  line-height:1.45;
}
#plan .specs>div{
  grid-template-columns:minmax(0,1fr) 82px 96px;
}
#plan .specs strong{
  font-size:62px;
  transform:translateX(-8px);
}
#plan .specs small{
  font-size:18px;
  line-height:1.4;
  white-space:nowrap;
}

.closing-copy>p:last-child{
  font-size:15px;
  font-weight:400;
  line-height:1.8;
}

.legal{
  font-size:12px;
  font-weight:400;
  line-height:2;
}
.legal .legal-outline h2{
  font-size:15px;
  line-height:1.7;
}
.legal .legal-outline__body p{
  margin-bottom:14px;
}

@media(max-width:769px){
  #gHead .tit{
    font-size:12px;
    line-height:1.35;
  }

  #concept .label{
    font-size:10px;
  }
  #concept .manifesto-title h2{
    font-size:clamp(30px,8.8vw,42px);
  }
  #concept .manifesto-body{
    font-size:14px;
    line-height:2.15;
  }
  #concept .manifesto-body .en{
    font-size:16px;
    line-height:1.65;
  }

  #plan .specs>div{
    grid-template-columns:minmax(0,1fr) 52px 78px;
  }
  #plan .specs span{
    font-size:14.5px;
    line-height:1.4;
  }
  #plan .specs strong{
    font-size:42px;
  }
  #plan .specs small{
    font-size:16px;
  }

  .closing-copy>p:last-child{
    font-size:14px;
    line-height:1.75;
  }

  .legal{
    font-size:11.5px;
    line-height:1.95;
  }
  .legal .legal-outline h2{
    font-size:14px;
  }
}

/* =========================================================
   HERO NOTICE / SECTION LABELS / CLOSING PROPERTY NAME
   ========================================================= */
.hero-notice{
  width:40vw;
  max-width:720px;
  min-width:460px;
  min-height:96px;
  padding:20px 24px;
  gap:22px;
  border:1px solid rgba(214,189,135,.58);
  background:transparent;
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
.hero-notice span{
  flex:0 0 auto;
  padding:8px 11px;
  font-size:13px;
  font-weight:500;
  line-height:1.2;
  letter-spacing:.1em;
}
.hero-notice p{
  font-size:17px;
  font-weight:400;
  line-height:1.75;
  letter-spacing:.06em;
}

.label,
#concept .label{
  font-size:12px;
  font-weight:500;
  line-height:1.5;
  letter-spacing:.34em;
}

.closing-copy>p:last-child{
  margin-top:22px;
  font-size:18px;
  font-weight:500;
  line-height:1.8;
  letter-spacing:.07em;
}

@media(max-width:769px){
  .hero-notice{
    right:18px;
    bottom:68px;
    left:18px;
    width:auto;
    max-width:none;
    min-width:0;
    min-height:0;
    padding:15px 16px;
    gap:13px;
  }
  .hero-notice span{
    padding:7px 8px;
    font-size:11px;
  }
  .hero-notice p{
    font-size:14px;
    line-height:1.65;
    letter-spacing:.03em;
  }

  .label,
  #concept .label{
    font-size:10.5px;
    line-height:1.55;
    letter-spacing:.25em;
  }

  .closing-copy>p:last-child{
    margin-top:18px;
    font-size:16px;
    line-height:1.75;
    letter-spacing:.04em;
  }
}

@media(max-width:390px){
  .hero-notice{
    padding:13px 14px;
    gap:10px;
  }
  .hero-notice p{
    font-size:13px;
  }
}

/* =========================================================
   ACCESS WALK DATA / larger and easier to read
   ========================================================= */
#location .access-grid .access-card__walk{
  min-width:104px;
  gap:5px;
}
#location .access-grid .access-card__time{
  min-width:96px;
  padding-left:14px;
}
#location .access-grid .access-card__time span{
  margin-right:4px;
  font-size:11px;
  line-height:1;
  letter-spacing:.06em;
}
#location .access-grid .access-card__time strong{
  font-size:clamp(38px,3.25vw,48px);
}
#location .access-grid .access-card__time small{
  margin-left:3px;
  font-size:12px;
  line-height:1;
}
#location .access-grid .access-card__distance{
  margin-top:4px;
  font-size:11px;
  font-weight:400;
  line-height:1.35;
}

/* =========================================================
   CLOSING CTA / readable copy and contained English labels
   ========================================================= */
.closing-actions .closing-cta{
  grid-template-columns:clamp(92px,7vw,112px) minmax(0,1fr) 42px;
  column-gap:12px;
}
.closing-actions .closing-cta__en{
  min-width:0;
  margin-right:0;
  padding-right:18px;
  font-size:10px;
  line-height:1.2;
  letter-spacing:.12em;
  white-space:nowrap;
}
.closing-actions .closing-cta__body small{
  font-size:13px;
  line-height:1.45;
  letter-spacing:0;
  white-space:nowrap;
}
.closing-actions .closing-cta__body strong{
  font-size:clamp(23px,1.9vw,28px);
  line-height:1.25;
}

@media(min-width:851px) and (max-width:1100px){
  .closing{
    grid-template-columns:minmax(0,1fr);
    gap:44px;
  }
}

@media(max-width:769px){
  #location .access-grid .access-card__walk{
    min-width:0;
    gap:5px;
  }
  #location .access-grid .access-card__walk .access-card__time{
    min-width:88px;
  }
  #location .access-grid .access-card__time span{
    font-size:10px;
  }
  #location .access-grid .access-card__time strong{
    font-size:40px;
  }
  #location .access-grid .access-card__time small{
    font-size:11px;
  }
  #location .access-grid .access-card__distance{
    font-size:10.5px;
  }

  .closing-actions .closing-cta{
    grid-template-columns:82px minmax(0,1fr) 34px;
    column-gap:8px;
  }
  .closing-actions .closing-cta__en{
    margin-right:0;
    padding-right:12px;
    font-size:9.5px;
    letter-spacing:.08em;
  }
  .closing-actions .closing-cta__body small{
    font-size:12px;
    letter-spacing:0;
    white-space:nowrap;
  }
  .closing-actions .closing-cta__body strong{
    font-size:23px;
  }
}

@media(max-width:420px){
  #location .access-grid .access-card__walk{
    min-width:96px;
  }
  #location .access-grid .access-card__walk .access-card__time{
    min-width:96px;
    padding-left:12px;
  }
}

@media(max-width:370px){
  .closing-actions .closing-cta{
    grid-template-columns:minmax(0,1fr) 34px;
  }
  .closing-actions .closing-cta__en{
    display:none;
  }
}

/* =========================================================
   ACCESS CARDS / final readability adjustment
   ========================================================= */
#location .access-card__caption{
  gap:10px;
}
#location .access-grid .access-card__name{
  font-size:15px;
  font-weight:500;
  line-height:1.65;
}
#location .access-grid .access-card__walk{
  min-width:116px;
}
#location .access-grid .access-card__time{
  min-width:108px;
}
#location .access-grid .access-card__time span{
  font-size:14px;
}
#location .access-grid .access-card__time strong{
  font-size:clamp(50px,3.8vw,56px);
}
#location .access-grid .access-card__time small{
  font-size:15px;
}
#location .access-grid .access-card__distance{
  font-size:12px;
  line-height:1.4;
}

/* The large hero notice keeps its size and contrast without an outer frame. */
.hero-notice{
  border:0;
}

@media(max-width:769px){
  #location .access-grid .access-card__name{
    font-size:14px;
  }
  #location .access-grid .access-card__walk{
    min-width:0;
  }
  #location .access-grid .access-card__walk .access-card__time{
    min-width:98px;
  }
  #location .access-grid .access-card__time span{
    font-size:11px;
  }
  #location .access-grid .access-card__time strong{
    font-size:44px;
  }
  #location .access-grid .access-card__time small{
    font-size:12px;
  }
  #location .access-grid .access-card__distance{
    font-size:11.5px;
  }
}

@media(max-width:420px){
  #location .access-grid .access-card__walk{
    min-width:108px;
  }
  #location .access-grid .access-card__walk .access-card__time{
    min-width:108px;
  }
}

/* =========================================================
   ACCESS CARDS / desktop 55:45 columns and mobile rebalance
   ========================================================= */
@media(min-width:851px){
  #location .access-card__caption{
    grid-template-columns:minmax(0,55fr) minmax(0,45fr);
    gap:0;
    padding-right:12px;
    padding-left:12px;
  }
  #location .access-grid .access-card__name{
    padding-right:4px;
    overflow:hidden;
    white-space:nowrap;
  }
  #location .access-grid .access-card__walk{
    width:auto;
    min-width:0;
  }
  #location .access-grid .access-card__time{
    width:100%;
    min-width:0;
    padding-left:10px;
  }
  #location .access-grid .access-card__distance{
    width:100%;
    min-width:0;
    white-space:nowrap;
  }
}

@media(min-width:851px) and (max-width:1100px){
  #location .location-access .access-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:769px){
  #location .access-grid .access-card__name{
    font-size:15px;
  }
  #location .access-grid .access-card__time span{
    font-size:14px;
  }
  #location .access-grid .access-card__time strong{
    font-size:54px;
  }
  #location .access-grid .access-card__time small{
    font-size:15px;
  }
  #location .access-grid .access-card__distance{
    font-size:12.5px;
    line-height:1.4;
  }
}

@media(max-width:420px){
  #location .access-card__caption{
    grid-template-columns:minmax(0,1fr) 128px;
    gap:8px;
  }
  #location .access-grid .access-card__name{
    font-size:15px;
    white-space:nowrap;
  }
  #location .access-grid .access-card__walk{
    width:128px;
    min-width:128px;
  }
  #location .access-grid .access-card__walk .access-card__time{
    width:100%;
    min-width:128px;
    padding-left:14px;
  }
  #location .access-grid .access-card__distance{
    width:128px;
    min-width:128px;
    white-space:nowrap;
  }
}

/* =========================================================
   HERO NOTICE LABEL / 14pt minimum
   14pt = approximately 18.67px, so use 19px.
   ========================================================= */
.hero-notice span {
  flex: 0 0 auto;
  padding: 9px 12px;
  font-size: 19px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: .08em;
  white-space: nowrap;
}

@media (max-width: 769px) {
  .hero-notice span {
    padding: 8px 10px;
    font-size: 19px;
    line-height: 1.2;
    letter-spacing: .06em;
  }
}


/* =========================================================
   HERO NOTICE / disclaimer text
   ========================================================= */
.hero-notice__note{
  display:inline-block;
  margin-top:4px;
  font-size:11px;
  font-weight:400;
  line-height:1.55;
  letter-spacing:.02em;
  opacity:.86;
}

@media (max-width:769px){
  .hero-notice__note{
    margin-top:3px;
    font-size:10px;
    line-height:1.5;
  }
}
