@charset "UTF-8";
/* 英字：TT Commons（SHIRO公式ECで使用中のWebフォントを参照） */
@font-face{font-family:"TT Commons";src:url("https://shiro-shiro.jp/ec/css/font/TT-Commons-Light.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"TT Commons";src:url("https://shiro-shiro.jp/ec/css/font/TT-Commons-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"TT Commons";src:url("https://shiro-shiro.jp/ec/css/font/TT-Commons-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"TT Commons";src:url("https://shiro-shiro.jp/ec/css/font/TT-Commons-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
/* みんなのおうち LP | /minna-no-ouchi/ */
/* ===== Tokens（ラフ 1700px アートボード基準） ===== */
:root{
  --navy:#043249;
  --teal:#8cb0b3;
  --paper:#f9f7f3;
  --card:#f3f4f6;
  --white:#fff;
  /* 1px（デザイン上）= 画面幅に応じて 0.75〜1px にスケール */
  --s:clamp(0.75px, calc(100vw / 1700), 1px);
  --wrap:calc(1370 * var(--s));
  --jp:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --en:"TT Commons","Noto Sans JP",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--navy);font-family:var(--jp);font-weight:700;
     -webkit-font-smoothing:antialiased;font-feature-settings:"palt";}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.wrap{width:min(var(--wrap), calc(100% - 40px));margin-inline:auto}
.en{font-family:var(--en);font-weight:500}

/* ===== Header ===== */
.site-header{position:absolute;inset:0 0 auto 0;z-index:10;display:flex;justify-content:space-between;align-items:center;
             padding:calc(33 * var(--s)) calc(165 * var(--s)) 0 calc(168 * var(--s))}
.logo{color:#fff;text-decoration:none;font-size:max(18px, calc(26 * var(--s)));letter-spacing:.16em;font-weight:500}
.btn-head{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--navy);
          text-decoration:none;border-radius:999px;width:calc(193 * var(--s));min-width:136px;height:calc(64 * var(--s));min-height:44px;
          font-size:max(13px, calc(17 * var(--s)));letter-spacing:.08em;transition:opacity .2s}
.btn-head:hover{opacity:.8}

/* ===== Hero ===== */
.hero{position:relative}
.hero__img{display:block;width:100%;height:auto;aspect-ratio:1700/1180}
.hero__copy{position:absolute;left:0;right:0;top:calc(383 / 1180 * 100%);text-align:center;color:#fff}
.hero__catch{margin:0;font-size:calc(62 * var(--s));line-height:1.55;letter-spacing:.2em;font-weight:700}
.hero__catch span{display:block}
.hero__sub{margin:calc(22 * var(--s)) 0 0;font-size:calc(28 * var(--s));letter-spacing:.2em;font-weight:500}
.intro{position:relative;z-index:2;margin-top:calc(-150 * 100vw / 1700);text-align:center;
       font-size:max(14px, calc(22 * var(--s)));line-height:2.14;letter-spacing:.08em;font-weight:500}
.intro p{margin:0}

/* ===== Section heading ===== */
.sec{padding-top:calc(120 * var(--s))}
.sec-title{margin:0;text-align:center;font-weight:700;letter-spacing:.12em}
.sec-title--omoi{font-size:calc(44 * var(--s))}
.sec-title--omoi .num{font-family:var(--en);font-size:calc(72 * var(--s));line-height:1;margin:0 .04em;vertical-align:-.08em}
.sec-title--en{display:flex;justify-content:center;align-items:baseline;gap:calc(26 * var(--s))}
.sec-title--en .en{font-size:calc(52 * var(--s));letter-spacing:.1em}
.sec-title--en .ja{font-size:calc(31 * var(--s));letter-spacing:.12em}

/* ===== 3つの想い ===== */
.omoi__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(43 * var(--s));margin-top:calc(16 * var(--s))}
.omoi__item{display:flex;flex-direction:column}
.omoi__ill{width:100%;aspect-ratio:460/370;object-fit:contain}
.omoi__card{margin-top:calc(26 * var(--s));flex:1;border-radius:calc(40 * var(--s));overflow:hidden;background:var(--card)}
.omoi__head{color:var(--navy);text-align:center;padding:calc(44 * var(--s)) 12px 0}
.omoi__head h3{margin:0;font-size:calc(40 * var(--s));letter-spacing:.1em;line-height:1.3}
.omoi__head p{margin:calc(10 * var(--s)) 0 0;font-size:max(12px, calc(17 * var(--s)));letter-spacing:.08em;font-weight:500}
.omoi__body{margin:0;padding:calc(30 * var(--s)) calc(46 * var(--s)) calc(50 * var(--s));
            font-size:max(13px, calc(17 * var(--s)));line-height:1.85;letter-spacing:.02em;font-weight:500;text-align:justify}

/* ===== MAP 施設案内 ===== */
.floormap{margin:calc(36 * var(--s)) auto 0;width:min(calc(1348 * var(--s)), calc(100% - 40px));
          background:var(--paper);border-radius:calc(50 * var(--s));padding:calc(45 * var(--s)) calc(110 * var(--s))}
.floormap img{width:100%}
.facility{margin:calc(50 * var(--s)) auto 0;width:min(calc(1348 * var(--s)), calc(100% - 20px));position:relative}
.facility__track{display:flex;gap:calc(30 * var(--s));overflow-x:auto;scroll-snap-type:x mandatory;
                 scrollbar-width:none;padding-bottom:4px;
                 -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 150px),transparent);
                         mask-image:linear-gradient(90deg,#000 calc(100% - 150px),transparent)}
.facility__track.is-end{-webkit-mask-image:none;mask-image:none}
.facility__track::-webkit-scrollbar{display:none}
.fcard{flex:0 0 calc(363 * var(--s));min-width:250px;scroll-snap-align:start;background:var(--teal);color:#fff;
       border-radius:calc(50 * var(--s));overflow:hidden;min-height:calc(556 * var(--s))}
.fcard img{width:100%;aspect-ratio:363/296;object-fit:cover}
.fcard__body{padding:calc(36 * var(--s)) calc(28 * var(--s)) calc(44 * var(--s));text-align:center}
.fcard h3{margin:0;font-size:max(18px, calc(28 * var(--s)));letter-spacing:.16em}
.fcard p{margin:calc(22 * var(--s)) 0 0;font-size:max(12px, calc(16.5 * var(--s)));line-height:1.72;letter-spacing:.08em;font-weight:500}

/* ===== ACCESS ===== */
.access__row{display:grid;grid-template-columns:calc(913 * var(--s)) 1fr;align-items:center;gap:calc(40 * var(--s));
             width:min(calc(1348 * var(--s)), calc(100% - 40px));margin:calc(50 * var(--s)) auto 0}
.access__map{border-radius:calc(40 * var(--s));overflow:hidden;aspect-ratio:913/517;background:#ccc}
.access__map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.35)}
.access__info{text-align:center;font-weight:500;font-size:max(14px, calc(20 * var(--s)));line-height:1.95;letter-spacing:.02em}
.access__info dt{font-weight:700;margin-bottom:calc(8 * var(--s))}
.access__info dd{margin:0}

/* ===== Message ===== */
.message{position:relative;padding-top:calc(150 * var(--s));text-align:center;
         font-size:max(14px, calc(20.5 * var(--s)));line-height:2.14;letter-spacing:.08em;font-weight:500}
.message p{margin:0 0 calc(44 * var(--s))}
.message p:last-child{margin-bottom:0}
/* ラフ外の補助素材（Links/sakoju_image-01〜03）。不要ならこのブロックごと削除可 */
.message__fig{position:absolute;pointer-events:none;width:calc(190 * var(--s))}
.message__fig--1{left:calc(70 * var(--s));top:calc(260 * var(--s))}
.message__fig--2{right:calc(60 * var(--s));top:calc(620 * var(--s));width:calc(210 * var(--s))}
.message__fig--3{left:calc(110 * var(--s));top:calc(980 * var(--s));width:calc(160 * var(--s))}

/* ===== CTA ===== */
.cta{padding:calc(140 * var(--s)) 0 calc(130 * var(--s));text-align:center}
.btn-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--navy);color:#fff;text-decoration:none;
         width:calc(378 * var(--s));min-width:240px;height:calc(127 * var(--s));min-height:64px;border-radius:999px;
         font-size:max(20px, calc(38 * var(--s)));letter-spacing:.12em;transition:opacity .2s}
.btn-cta:hover{opacity:.85}

/* ===== Footer（ラフ上はプレースホルダ） ===== */
.site-footer{background:#e7e8e6;color:#1a2231;font-weight:500}
.site-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:32px;
     width:min(calc(1370 * var(--s)), calc(100% - 40px));margin-inline:auto;padding:calc(84 * var(--s)) 0 calc(80 * var(--s))}
.footer-logo{display:inline-flex;flex-direction:column;align-items:center;gap:6px;color:inherit;text-decoration:none}
.footer-logo__ja{font-size:max(26px, calc(36 * var(--s)));font-weight:700;letter-spacing:.2em;line-height:1.2}
.footer-logo__en{font-family:var(--en);font-size:max(12px, calc(16 * var(--s)));letter-spacing:.32em;line-height:1}
.footer-side{display:flex;align-items:center;gap:calc(36 * var(--s))}
.footer-sns{display:block;width:56px;height:56px;color:#a8bcad;transition:opacity .2s}
.footer-sns:hover{opacity:.7}
.footer-sns svg{display:block;width:100%;height:100%}
.footer-meta{display:flex;flex-direction:column;gap:18px;font-size:13px;letter-spacing:.04em}
.footer-meta a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.footer-meta a:hover{text-decoration:none}
.footer-meta small{font-size:12.5px;font-family:var(--en),var(--jp)}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid #f2a33a;outline-offset:3px}

/* ===== Responsive ===== */
/* PC：施設カード4枚を横並びで全表示（スクロール・フェードなし） */
@media (min-width: 768px){
  .facility__track{display:grid;grid-template-columns:repeat(4,1fr);overflow:visible;scroll-snap-type:none;
                   -webkit-mask-image:none;mask-image:none}
  .fcard{min-width:0}
}
@media (max-width: 1100px){ .message__fig{display:none} }
@media (max-width: 767px){
  :root{--s:1px}
  .site-header{padding:16px 16px 0}
  .logo{font-size:16px}
  .btn-head{min-width:0;width:auto;height:38px;min-height:0;padding:0 16px;font-size:12px}
  .hero__img{aspect-ratio:auto;height:118vw}
  .hero__copy{top:27vw}
  .hero__catch{font-size:clamp(21px,6.2vw,30px);letter-spacing:.12em}
  .hero__catch span{display:block}
  .hero__sub{margin-top:10px;font-size:13px;letter-spacing:.12em}
  .intro{margin-top:24px;padding:0 20px;font-size:14px;line-height:2;text-align:left;letter-spacing:.04em}
  .intro p{display:inline}
  .sec{padding-top:72px}
  .sec-title--omoi{font-size:22px}
  .sec-title--omoi .num{font-size:36px}
  .sec-title--en .en{font-size:30px}
  .sec-title--en .ja{font-size:16px}
  .omoi__grid{grid-template-columns:1fr;gap:48px;margin-top:16px}
  .omoi__ill{max-width:340px;margin:0 auto}
  .omoi__card{border-radius:24px;margin-top:16px}
  .omoi__head{padding:24px 12px 0}
  .omoi__head h3{font-size:20px}
  .omoi__head p{font-size:12.5px;margin-top:6px}
  .omoi__body{padding:20px 22px 26px;font-size:14px}
  .floormap{margin-top:20px;border-radius:20px;padding:16px}
  .facility{margin-top:28px;width:100%;padding-left:20px}
  .fcard{flex-basis:72vw;min-width:0;border-radius:24px;min-height:0}
  .fcard__body{padding:20px 16px 26px}
  .fcard h3{font-size:18px}
  .fcard p{font-size:13px;margin-top:12px}
  .access__row{grid-template-columns:1fr;gap:24px;margin-top:28px}
  .access__map{border-radius:20px;aspect-ratio:4/3}
  .access__info{font-size:14px}
  .message{padding:72px 20px 0;font-size:14px;line-height:2.1;text-align:left;letter-spacing:.04em}
  .message br{display:none}
  .message p{margin-bottom:28px}
  .cta{padding:64px 0 72px}
  .btn-cta{width:260px;height:72px;font-size:20px}
  .site-footer__inner{flex-direction:column;gap:28px;padding:44px 0 calc(40px + env(safe-area-inset-bottom))}
  .footer-side{gap:24px}
  .footer-sns{width:44px;height:44px}
  .footer-meta{gap:12px}
}

/* ===== Modal（フロアマップ／施設カード拡大） ===== */
.is-zoomable{cursor:zoom-in}
.fcard.is-zoomable{cursor:pointer;transition:transform .25s, box-shadow .25s}
.fcard.is-zoomable:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(4,50,73,.14)}
.zoom-hint{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;font-weight:500;color:var(--navy);opacity:.7}
.lb{border:0;padding:0;margin:auto;background:transparent;max-width:min(1200px, 94vw);width:100%;max-height:92vh;overflow:visible;color:var(--navy)}
.lb::backdrop{background:rgba(4,50,73,.82)}
.lb[open]{animation:lbIn .25s ease}
@keyframes lbIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.lb__inner{position:relative;background:#fff;border-radius:24px;overflow:hidden;max-height:92vh;display:flex;flex-direction:column}
.lb__img{width:100%;max-height:72vh;object-fit:contain;background:var(--paper);display:block}
.lb__body{padding:22px 28px 26px;text-align:center;overflow:auto}
.lb__body[hidden]{display:none}
.lb__title{margin:0;font-size:22px;letter-spacing:.14em}
.lb__text{margin:10px auto 0;max-width:40em;font-size:15px;line-height:1.85;font-weight:500;letter-spacing:.06em}
.lb__count{margin-top:12px;font-family:var(--en);font-size:13px;letter-spacing:.1em;opacity:.6}
.lb__btn{position:absolute;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;
         background:#fff;color:var(--navy);box-shadow:0 2px 10px rgba(0,0,0,.18);font-size:22px;line-height:1}
.lb__btn:hover{background:var(--paper)}
.lb__close{top:12px;right:12px;z-index:2}
.lb__prev,.lb__next{top:calc(36vh - 24px)}
.lb__prev{left:12px}.lb__next{right:12px}
.lb__prev[hidden],.lb__next[hidden],.lb__count[hidden]{display:none}
body.is-lb-open{overflow:hidden}
@media (max-width: 767px){
  .lb{max-width:100vw;max-height:100vh}
  .lb__inner{border-radius:16px}
  .lb__img{max-height:60vh}
  .lb__body{padding:16px 18px 20px}
  .lb__title{font-size:18px}
  .lb__text{font-size:13.5px}
  .lb__btn{width:40px;height:40px;font-size:18px}
  .lb__prev,.lb__next{top:calc(30vh - 20px)}
}



/* ===== 追従ヘッダー ===== */
html{scroll-padding-top:84px}
.gnav{position:fixed;inset:0 0 auto 0;z-index:60;background:rgba(255,255,255,.94);
      -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(4,50,73,.08), 0 6px 18px rgba(4,50,73,.06);
      transform:translateY(-105%);transition:transform .4s ease;visibility:hidden}
.gnav.is-show{transform:none;visibility:visible}
.gnav__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px;
      width:min(calc(1370 * var(--s)), calc(100% - 40px));margin-inline:auto}
.gnav__logo{color:var(--navy);text-decoration:none;font-size:19px;font-weight:700;letter-spacing:.16em;white-space:nowrap}
.gnav__nav{display:flex;align-items:center;gap:28px}
.gnav__list{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.gnav__list a{position:relative;color:var(--navy);text-decoration:none;font-size:14px;font-weight:500;letter-spacing:.08em;padding:6px 0;white-space:nowrap}
.gnav__list a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--navy);
      transform:scaleX(0);transition:transform .25s ease}
.gnav__list a:hover::after,.gnav__list a.is-current::after{transform:scaleX(1)}
.gnav__cta{display:inline-flex;align-items:center;height:42px;padding:0 22px;border-radius:999px;background:var(--navy);color:#fff;
      text-decoration:none;font-size:14px;letter-spacing:.1em;white-space:nowrap;transition:opacity .2s}
.gnav__cta:hover{opacity:.85}
.br-sp{display:none}
.gnav__toggle{display:none}
.gnav__cta-sp{display:none}
body.is-lb-open .gnav{visibility:hidden}
@media (max-width: 960px){
  html{scroll-padding-top:68px}
  .gnav__inner{height:58px;width:calc(100% - 32px)}
  .gnav__logo{font-size:16px}
  .gnav__inner{gap:10px}
  .gnav__logo{margin-right:auto}
  .gnav__cta-sp{display:inline-flex;align-items:center;height:36px;padding:0 14px;border-radius:999px;background:var(--navy);color:#fff;
      text-decoration:none;font-size:12.5px;letter-spacing:.06em;white-space:nowrap}
  .gnav__toggle{display:grid;place-content:center;gap:5px;width:44px;height:44px;margin-right:-8px;border:0;background:transparent;cursor:pointer}
  .gnav__toggle span{display:block;width:22px;height:2px;border-radius:2px;background:var(--navy);transition:transform .3s, opacity .3s}
  .gnav__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .gnav__toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .gnav__toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .gnav__nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:16px;padding:8px 20px 24px;
      background:#fff;box-shadow:0 12px 20px rgba(4,50,73,.12);display:none}
  .gnav.is-open .gnav__nav{display:flex}
  .gnav__list{flex-direction:column;gap:0}
  .gnav__list a{display:block;padding:15px 4px;border-bottom:1px solid rgba(4,50,73,.1);font-size:15px}
  .gnav__list a::after{display:none}
  .gnav__list a.is-current{font-weight:700}
  .gnav__cta{justify-content:center;height:52px;font-size:16px}
}
@media (prefers-reduced-motion: reduce){ .gnav{transition:none} }
/* ===== ご入居について ===== */
.info__lead{margin:calc(28 * var(--s)) auto 0;width:min(calc(900 * var(--s)), calc(100% - 40px));text-align:center;
     font-size:max(14px, calc(19 * var(--s)));line-height:1.9;font-weight:500;letter-spacing:.06em}
.info__grid{display:grid;grid-template-columns:1fr 1fr;gap:calc(30 * var(--s));
     width:min(calc(1348 * var(--s)), calc(100% - 40px));margin:calc(50 * var(--s)) auto 0}
.info__box{background:var(--card);border-radius:calc(40 * var(--s));padding:calc(44 * var(--s)) calc(56 * var(--s)) calc(48 * var(--s))}
.info__box--wide{width:min(calc(1348 * var(--s)), calc(100% - 40px));margin:calc(30 * var(--s)) auto 0}
.info__box--plain{background:transparent;border:2px solid var(--card)}
.info__h{margin:0 0 calc(22 * var(--s));font-size:max(18px, calc(28 * var(--s)));letter-spacing:.12em;display:flex;align-items:baseline;gap:.8em;flex-wrap:wrap}
.info__h-sub{font-family:var(--en),var(--jp);font-size:.62em;letter-spacing:.06em;font-weight:500}
.info__dl{margin:0}
.info__dl > div{display:grid;grid-template-columns:9.5em 1fr;gap:1em;padding:.85em 0;border-bottom:1px solid rgba(4,50,73,.15);
     font-size:max(14px, calc(17 * var(--s)));line-height:1.7}
.info__dl dt{font-weight:700}
.info__dl dd{margin:0;font-weight:500}
.info__dl dd small,.fee__table small{display:block;font-size:.82em;opacity:.8;margin-top:.2em}
.info__dl sup{font-size:.6em;margin-left:.15em}
.fee{display:grid;grid-template-columns:1.4fr 1fr;gap:calc(48 * var(--s))}
.fee__label{margin:0 0 .6em;display:inline-block;background:var(--navy);color:#fff;border-radius:999px;padding:.35em 1.1em;
     font-size:max(12px, calc(15 * var(--s)));letter-spacing:.1em}
.fee__table{width:100%;border-collapse:collapse;font-size:max(14px, calc(17 * var(--s)));line-height:1.6}
.fee__table th,.fee__table td{padding:.75em 0;border-bottom:1px solid rgba(4,50,73,.15);text-align:left;vertical-align:top}
.fee__table th{font-weight:700;padding-right:1em}
.fee__table td{font-family:var(--en),var(--jp);font-weight:500;text-align:right;white-space:nowrap;letter-spacing:.02em}
.fee__total th,.fee__total td{background:#fff;font-size:1.08em;padding-left:.8em;padding-right:.8em;border-bottom:0}
.fee__total td{font-weight:700}
.meal{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(20 * var(--s));margin:0}
.meal > div{background:#fff;border-radius:16px;padding:1em 1.1em}
.meal dt{font-size:max(11px, calc(13 * var(--s)));opacity:.75;font-weight:500}
.meal dd{margin:.3em 0 0;font-size:max(14px, calc(18 * var(--s)));font-weight:700}
.diet{list-style:none;padding:0;margin:calc(20 * var(--s)) 0 0;display:grid;grid-template-columns:repeat(5,1fr);
     border-radius:16px;overflow:hidden;background:var(--teal);gap:1px}
.diet li{background:#4f7e84;color:#fff;text-align:center;padding:1em .5em;display:flex;flex-direction:column;justify-content:space-between;gap:.5em;
     font-size:max(12px, calc(15 * var(--s)))}
.diet small{display:block;font-size:.8em}
.diet b{font-size:1.5em;font-weight:500;line-height:1}
.info__note{margin:1em 0 0;font-size:max(12px, calc(14 * var(--s)));opacity:.8;font-weight:500}
.info__text{margin:0;font-size:max(14px, calc(17 * var(--s)));line-height:1.9;font-weight:500}
.info__foot{width:min(calc(1348 * var(--s)), calc(100% - 40px));margin:calc(24 * var(--s)) auto 0;
     font-size:max(11px, calc(13 * var(--s)));line-height:1.8;opacity:.75;font-weight:500}
@media (max-width: 767px){
  .info__lead{font-size:14px;text-align:left;margin-top:20px}
  .info__grid{grid-template-columns:1fr;gap:16px;margin-top:24px}
  .info__box{border-radius:20px;padding:22px 20px 24px}
  .info__box--wide{margin-top:16px}
  .info__h{font-size:18px;margin-bottom:12px}
  .info__dl > div{grid-template-columns:7.5em 1fr;font-size:14px}
  .fee{grid-template-columns:1fr;gap:20px}
  .fee__table{font-size:14px}
  .fee__table tr{display:block;padding:.7em 0;border-bottom:1px solid rgba(4,50,73,.15)}
  .fee__table th,.fee__table td{display:block;border:0;padding:0;text-align:left}
  .fee__table td{margin-top:.2em;white-space:normal}
  .fee__total{background:#fff;border-radius:10px;padding:.7em .8em!important;border:0!important;margin-top:.4em}
  .fee__total th,.fee__total td{padding:0}
  .meal{grid-template-columns:1fr 1fr;gap:8px}
  .diet{grid-template-columns:repeat(5,1fr)}
  .diet li{font-size:11px;padding:.8em .2em;letter-spacing:0}
  .diet small{font-size:.75em}
  .info .sec-title--en{flex-direction:column;align-items:center;gap:4px}
  .info .sec-title--en .en{font-size:26px}
  .info__foot{font-size:11px}
}
/* ===== 演出（JS有効時のみ。動きを減らす設定では無効） ===== */
/* メインビジュアル：色の塊が集まる */
.hero__svg{overflow:hidden}
/* 背景の色面：ゆっくり広がる → 人物：グループ単位で周囲から集まる */
.hero__svg .hg--bg{transform-box:view-box;transform-origin:50% 45%}
html.js:not(.no-motion) .hero__svg .hg--bg{opacity:0;transform:scale(1.08)}
html.js:not(.no-motion) .hero__svg .hg--p{opacity:0;transform:translate(var(--dx),var(--dy))}
html.js.is-loaded:not(.no-motion) .hero__svg .hg--bg{opacity:1;transform:none;transition:opacity 1.5s ease, transform 2.4s cubic-bezier(.2,.7,.2,1)}
html.js.is-loaded:not(.no-motion) .hero__svg .hg--p{opacity:1;transform:none;
     transition:transform 2s cubic-bezier(.25,1.2,.4,1) var(--d), opacity .5s ease-out var(--d)}
html.js:not(.no-motion) .hero__copy > *{opacity:0;transform:translateY(14px)}
html.js.is-loaded:not(.no-motion) .hero__copy > *{opacity:1;transform:none;transition:opacity 1.4s ease 3.4s, transform 1.4s ease 3.4s}
html.js.is-loaded:not(.no-motion) .hero__copy > .hero__sub{transition-delay:3.9s}
/* スクロールで浮かび上がる */
html.js:not(.no-motion) [data-reveal]{opacity:0;transform:translateY(22px);
     transition:opacity .9s ease var(--rd,0s), transform .9s cubic-bezier(.2,.75,.2,1) var(--rd,0s)}
html.js:not(.no-motion) [data-reveal].is-in{opacity:1;transform:none}
html.js:not(.no-motion) .omoi__item:nth-child(1) .omoi__card{--rd:.25s}
html.js:not(.no-motion) .omoi__item:nth-child(2) .omoi__card{--rd:.4s}
html.js:not(.no-motion) .omoi__item:nth-child(3) .omoi__card{--rd:.55s}
.message .line{display:block}
html.js:not(.no-motion) .message .line{transform:translateY(12px);transition-duration:1.2s}
html.js:not(.no-motion) [data-reveal="fig"]{transform:translateY(30px);transition-duration:1.4s;--rd:.3s}
/* フロアマップ：施設名ホットスポット */
.floormap__stage{position:relative}
.floormap__img{display:block;width:100%;border-radius:8px}
.floormap__img.is-zoomable{cursor:zoom-in}
.hotspot{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;
         width:max(28px, calc(46 * var(--s)));height:max(28px, calc(46 * var(--s)));padding:0;border:0;border-radius:50%;
         background:#86abaf;color:#fff;font:500 max(15px, calc(26 * var(--s)))/1 var(--en);cursor:pointer;
         box-shadow:0 2px 8px rgba(4,50,73,.18);transition:transform .2s ease, background .2s}
.hotspot::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #86abaf;animation:hsPulse 2.4s ease-out infinite;pointer-events:none}
.hotspot:hover,.hotspot:focus-visible{background:var(--navy);transform:translate(-50%,-50%) scale(1.08)}
@keyframes hsPulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.8);opacity:0}}
.floormap__hint{margin:calc(18 * var(--s)) 0 0;text-align:center;font-size:max(12px, calc(15 * var(--s)));font-weight:500;opacity:.75}
@media (max-width: 767px){
  .floormap__hint{font-size:11.5px;letter-spacing:0}
}
@media (prefers-reduced-motion: reduce){ .hotspot::after{animation:none;opacity:0} }
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
@media (prefers-reduced-motion: reduce){.lb[open]{animation:none}.fcard.is-zoomable{transition:none}}

/* スマホのみ改行 */
@media (max-width: 767px){ .br-sp{display:inline} }

/* ===== 2026-10-27 キャプチャ反映 ===== */
@media (max-width: 767px){
  .hotspot{width:22px;height:22px;font-size:12px;box-shadow:0 1px 4px rgba(4,50,73,.2)}
  .hotspot::after{border-width:1.5px}
}
.omoi__num,.fcard__num{font-family:var(--en);font-weight:500;margin-right:.1em}
.info__box--price{background:var(--paper)}
.message__title{margin:0 0 calc(44 * var(--s));font-size:max(19px, calc(30 * var(--s)));font-weight:700;letter-spacing:.08em;line-height:1.6}
@media (max-width: 767px){ .message__title{font-size:18px;text-align:center;margin-bottom:24px} }

/* ===== 2026-10-28 修正反映 ===== */
/* ロゴ（SVG） */
.logo{display:inline-flex;line-height:0}
.logo img{display:block;width:max(130px, calc(200 * var(--s)));height:auto}
.footer-logo__img{display:block;width:max(190px, calc(250 * var(--s)));height:auto}
@media (max-width: 767px){ .logo img{width:118px} .footer-logo__img{width:200px} }
/* 文字間（ラフ基準で広め） */
.hero__catch{letter-spacing:.3em;padding-left:.3em}
.hero__sub{letter-spacing:.3em;padding-left:.3em}
.sec-title{letter-spacing:.22em}
.sec-title--en .en{letter-spacing:.1em;font-size:calc(62 * var(--s))}  /* 元デザイン実測：約62px・字間0.1em */
.sec-title--en .ja{letter-spacing:.24em}
.omoi__head h3{letter-spacing:.16em}
.fcard h3{letter-spacing:.2em}
.message__title{letter-spacing:.18em}
.info__h{letter-spacing:.18em}
@media (max-width: 767px){
  .hero__catch{font-size:clamp(19px,5.5vw,28px);letter-spacing:.18em;padding-left:.18em}
  .hero__sub{letter-spacing:.2em;padding-left:.2em}
  .sec-title{letter-spacing:.16em}
  .message__title{letter-spacing:.1em}
}
/* 居室の間取り */
.rooms{width:min(calc(1348 * var(--s)), calc(100% - 40px));margin:calc(30 * var(--s)) auto 0;background:var(--paper);
       border-radius:calc(50 * var(--s));padding:calc(44 * var(--s)) calc(80 * var(--s)) calc(50 * var(--s))}
.rooms__title{margin:0 0 calc(28 * var(--s));text-align:center;font-size:max(18px, calc(26 * var(--s)));letter-spacing:.2em}
.rooms__grid{display:grid;grid-template-columns:1fr 1fr;gap:calc(40 * var(--s));align-items:start}
.rooms__item{margin:0;display:flex;flex-direction:column;align-items:center}
.rooms__item img{display:block;width:auto;max-width:100%;height:max(200px, calc(420 * var(--s)));object-fit:contain;background:#fff;border-radius:16px;padding:12px;box-sizing:border-box}
.rooms__item figcaption{margin-top:14px;display:flex;align-items:baseline;gap:.8em}
.rooms__type{font-family:var(--en);font-weight:500;letter-spacing:.14em;font-size:max(14px, calc(18 * var(--s)))}
.rooms__size{font-weight:700;letter-spacing:.08em;font-size:max(16px, calc(22 * var(--s)))}
@media (max-width: 767px){
  .rooms{margin-top:16px;border-radius:20px;padding:22px 16px 24px}
  .rooms__grid{gap:12px}
  .rooms__item img{border-radius:10px;padding:6px;height:200px}
  .rooms__item figcaption{flex-direction:column;align-items:center;gap:2px}
  .rooms__size{font-size:15px}
}

/* 追従ヘッダーのロゴ（SVG） */
.gnav__logo{display:inline-flex;line-height:0}
.gnav__logo img{display:block;width:150px;height:auto}
@media (max-width: 960px){ .gnav__logo img{width:124px} }

/* 英数字のサイズ感（元デザイン比較で調整 2026-10-28） */
.sec-title--omoi{letter-spacing:.18em}
.sec-title--omoi .num{font-size:calc(100 * var(--s));font-weight:500;vertical-align:-.12em}
.omoi__head h3{font-size:calc(34 * var(--s));letter-spacing:.1em}
.omoi__num,.fcard__num{font-size:1.25em;line-height:1;margin-right:0;letter-spacing:.12em;vertical-align:-.04em}
@media (max-width: 767px){
  .sec-title--omoi .num{font-size:44px}
  .omoi__head h3{font-size:20px}
}

/* 居室の間取り：拡大表示 */
.rooms__item.is-zoomable{cursor:zoom-in}
.rooms__item.is-zoomable img{transition:transform .25s ease, box-shadow .25s ease}
.rooms__item.is-zoomable:hover img{transform:translateY(-3px);box-shadow:0 8px 20px rgba(4,50,73,.12)}
.lb__img[src*="room-type"]{background:#fff;padding:24px;box-sizing:border-box}

/* ===== 入居お問い合わせフォーム（モーダル） ===== */
.fm{border:0;padding:0;margin:auto;width:min(760px, 94vw);max-height:92vh;background:transparent;overflow:visible;color:var(--navy)}
.fm::backdrop{background:rgba(4,50,73,.82)}
.fm[open]{animation:lbIn .25s ease}
.fm__inner{background:#fff;border-radius:24px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.fm__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px 14px 28px;border-bottom:1px solid rgba(4,50,73,.1)}
.fm__title{margin:0;font-size:20px;letter-spacing:.14em}
.fm__close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--paper);color:var(--navy);font-size:20px;cursor:pointer}
.fm__close:hover{background:#ecebe6}
.fm__body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 20px 20px;overscroll-behavior:contain}
.fm__loading{margin:40px 0;text-align:center;font-size:14px;font-weight:500;opacity:.7}
.fm__loading[hidden]{display:none}
.fm__alt{margin:16px 0 0;text-align:center;font-size:12.5px;font-weight:500;opacity:.8}
.fm__alt a{color:inherit}
.formrun-embed iframe{display:block;width:100%}
@media (max-width: 767px){
  .fm{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;margin:0}
  .fm__inner{border-radius:0;max-height:100dvh;height:100%}
  .fm__head{padding:12px 12px 10px 20px}
  .fm__title{font-size:17px}
  .fm__body{padding:4px 8px 24px;flex:1}
}
@media (prefers-reduced-motion: reduce){ .fm[open]{animation:none} }
.fm__open{display:inline-flex;align-items:center;justify-content:center;margin-top:16px;height:52px;padding:0 28px;border-radius:999px;background:var(--navy);color:#fff!important;text-decoration:none;font-size:15px;letter-spacing:.08em}
.fm__loading{line-height:1.9}

/* ===== Hero：ロゴ＋施設種別（2026-10-30 KV更新） ===== */
.hero__copy{top:47%;transform:translateY(-50%)}
.hero__logo{margin:0;line-height:0}
.hero__logo img{display:block;width:calc(560 * var(--s));height:auto;margin:0 auto}
.hero__sub{margin-top:calc(26 * var(--s));font-size:calc(26 * var(--s));letter-spacing:.3em;padding-left:.3em}
@media (max-width: 767px){
  .hero__copy{top:47%}
  .hero__logo img{width:54vw}
  .hero__sub{margin-top:2.6vw;font-size:clamp(11px,3.2vw,15px);letter-spacing:.2em;padding-left:.2em}
}
/* 最上部（KV上）では左上ロゴを出さない：KV中央のロゴと重複するため。追従ヘッダー(.gnav)のロゴは表示 */
.site-header .logo{visibility:hidden}
