/* =========================================================
   コスモトランク 共通スタイル
   配色トークン / フォント / 共通ヘッダー・フッター / 各ページ部品
   ========================================================= */
:root{
  --ink:#182430;
  --steel:#47555F;
  --bg:#F2F3F1;
  --accent:#E4650F;
  --accent-text:#B84E0B; /* 小さい文字用(コントラスト4.5:1確保) */
  --line:#C9CFCC;
  --white:#FFFFFF;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Zen Kaku Gothic New',sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.8;
  font-size:15px;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
.num{font-family:'Barlow Condensed',sans-serif}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ===== top bar ===== */
.topbar{
  background:var(--ink);
  color:#fff;
  font-size:12px;
  padding:6px 20px;
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  letter-spacing:.06em;
}
.topbar .num{font-size:15px;font-weight:600;letter-spacing:.04em}
.topbar a{display:flex;align-items:center;gap:6px;white-space:nowrap}
.tag24{
  font-size:10px;font-weight:700;letter-spacing:.12em;line-height:1;
  border:1px solid var(--accent);color:#fff;background:var(--accent-text);
  padding:3px 6px;margin-left:4px;
}
.tag24.big{font-size:12px;padding:5px 9px;margin:0 6px 0 0;vertical-align:middle}

/* ===== header ===== */
header{
  background:var(--white);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:100;
}
.header-in{
  max-width:1160px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 20px;
}
.logo{display:flex;align-items:center;gap:12px}
.logo .mark{height:40px;width:auto;flex-shrink:0;margin-right:2px}
.logo .name,.logo .sub{align-self:center}
.logo .name{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:30px;line-height:1;letter-spacing:.04em;white-space:nowrap}
.logo .sub{font-size:12px;font-weight:700;color:var(--steel);letter-spacing:.12em;white-space:nowrap}
nav.gnav ul{display:flex;gap:26px;font-size:13px;font-weight:700;letter-spacing:.05em;align-items:center}
nav.gnav a{padding:4px 0;border-bottom:2px solid transparent;transition:border-color .2s;display:inline-block}
nav.gnav a:hover,nav.gnav a[aria-current="page"]{border-color:var(--accent)}
.nav-cta{
  background:var(--accent-text);color:#fff!important;
  padding:9px 18px!important;font-weight:700;border-bottom:none!important;
}
.nav-cta:hover{background:var(--accent)}
.menu-btn{display:none;background:none;border:none;cursor:pointer;padding:6px;color:var(--ink)}
.menu-btn svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.menu-btn .ic-close{display:none}
.menu-btn[aria-expanded="true"] .ic-open{display:none}
.menu-btn[aria-expanded="true"] .ic-close{display:block}

/* ===== hero (top) ===== */
.hero{
  position:relative;
  background:var(--ink);
  color:#fff;
  overflow:hidden;
}
.hero-img{position:absolute;inset:0}
.hero-img img{width:100%;height:100%;object-fit:cover;opacity:.42}
/* トップのヒーローは写真を活かし、文字の背後だけ暗くする */
.hero .hero-img img{opacity:1;object-position:22% 48%;transform:scale(1.25);transform-origin:22% 48%}
.hero .hero-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(24,36,48,.78) 0%,rgba(24,36,48,.55) 42%,rgba(24,36,48,.12) 75%,rgba(24,36,48,0) 100%);
}
.hero-in{
  position:relative;
  max-width:1160px;margin:0 auto;
  padding:110px 20px 90px;
}
.hero-copy{max-width:600px}
.hero-eyebrow{
  display:inline-block;
  border:1px solid rgba(255,255,255,.5);
  padding:4px 14px;
  font-size:11px;letter-spacing:.22em;
  margin-bottom:26px;
}
.hero h1{
  font-size:clamp(30px,5vw,54px);
  font-weight:900;
  line-height:1.4;
  letter-spacing:.06em;
  margin-bottom:22px;
}
.hero h1 .or{color:var(--accent)}
.hero p{
  max-width:560px;
  font-size:14px;color:rgba(255,255,255,.92);
  text-shadow:0 1px 2px rgba(24,36,48,.4);
  margin-bottom:36px;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-note{margin-top:16px;font-size:13px;color:rgba(255,255,255,.9);letter-spacing:.04em;text-shadow:0 1px 2px rgba(24,36,48,.4)}
.hero-note strong{color:#fff;border-bottom:2px solid var(--accent);padding-bottom:1px}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 30px;
  font-weight:700;font-size:14px;letter-spacing:.06em;
  transition:opacity .2s;
  border:1px solid transparent;
}
.btn:hover{opacity:.88}
.btn-accent{background:var(--accent-text);color:#fff}
.btn-accent:hover{background:var(--accent);opacity:1}
.btn-ghost{border-color:rgba(255,255,255,.6);color:#fff}
.btn-outline{border-color:var(--ink);color:var(--ink);background:#fff}
.btn svg{width:17px;height:17px;flex-shrink:0}
.hero-strip{
  position:relative;
  border-top:1px solid rgba(255,255,255,.18);
  background:rgba(24,36,48,.6);
}
.hero-strip-in{
  max-width:1160px;margin:0 auto;
  display:grid;grid-template-columns:repeat(3,1fr);
  padding:0 20px;
}
.strip-item{
  padding:16px 18px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-left:1px solid rgba(255,255,255,.18);
  color:#fff;transition:background .2s;
}
.strip-item:first-child{border-left:none}
.strip-item:hover{background:rgba(255,255,255,.08)}
.strip-name{font-weight:700;font-size:15px;letter-spacing:.06em;line-height:1.3}
.strip-name small{display:block;font-size:11px;font-weight:400;color:rgba(255,255,255,.7);letter-spacing:.06em;margin-top:2px}
.strip-avail{
  font-size:12px;font-weight:700;letter-spacing:.08em;white-space:nowrap;
  border:1px solid var(--accent);color:#fff;background:var(--accent-text);
  padding:5px 10px;
}
.strip-item.is-full .strip-avail{border-color:rgba(255,255,255,.4);background:transparent;color:rgba(255,255,255,.8)}

/* ===== page hero (下層) ===== */
.page-hero{
  background:var(--ink);color:#fff;
  position:relative;overflow:hidden;
}
.page-hero .hero-img img{opacity:.32}
.page-hero-in{
  position:relative;
  max-width:1160px;margin:0 auto;
  padding:64px 20px 56px;
}
.page-hero .hero-eyebrow{margin-bottom:18px}
.page-hero h1{
  font-size:clamp(26px,4vw,42px);
  font-weight:900;line-height:1.4;letter-spacing:.06em;
  margin-bottom:12px;
}
.page-hero p{max-width:640px;font-size:14px;color:rgba(255,255,255,.85)}

/* ===== breadcrumb ===== */
.breadcrumb{
  background:var(--white);border-bottom:1px solid var(--line);
}
.breadcrumb ol{
  max-width:1160px;margin:0 auto;padding:10px 20px;
  display:flex;flex-wrap:wrap;gap:6px;
  font-size:12px;color:var(--steel);letter-spacing:.04em;
}
.breadcrumb li+li::before{content:"/";margin-right:6px;color:var(--line)}
.breadcrumb a:hover{color:var(--accent-text)}
.breadcrumb [aria-current]{color:var(--ink)}

/* ===== section base ===== */
section{padding:84px 20px}
.section-in{max-width:1160px;margin:0 auto}
.sec-head{margin-bottom:46px}
.sec-eyebrow{
  font-size:11px;letter-spacing:.24em;color:var(--accent-text);
  font-weight:700;margin-bottom:10px;
}
.sec-title{
  font-size:clamp(24px,3.4vw,34px);
  font-weight:900;letter-spacing:.06em;line-height:1.5;
}
.sec-lead{margin-top:14px;color:var(--steel);font-size:14px;max-width:640px}
.sec-white{background:var(--white)}
.sec-compact{padding:60px 20px}

/* ===== mock notice ===== */
.mock-note{
  border:1px dashed var(--accent);
  color:var(--accent-text);
  font-size:12px;letter-spacing:.04em;
  padding:8px 14px;
  display:inline-block;
  margin-top:14px;
}

/* ===== spots ===== */
.spots{background:var(--white)}
.spot-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.spot{
  border:1px solid var(--line);
  background:var(--bg);
  transition:box-shadow .25s,transform .25s;
  display:flex;flex-direction:column;
}
.spot:hover{box-shadow:0 10px 28px rgba(24,36,48,.14);transform:translateY(-3px)}
.spot-img{position:relative;aspect-ratio:16/9;overflow:hidden}
.spot-img img{width:100%;height:100%;object-fit:cover}
.spot-code{
  position:absolute;top:0;left:0;
  background:var(--ink);color:#fff;
  font-family:'Barlow Condensed',sans-serif;
  font-size:14px;font-weight:600;letter-spacing:.18em;
  padding:6px 14px;
}
.spot-body{padding:20px 20px 24px;flex:1;display:flex;flex-direction:column}
.spot-body h3{font-size:19px;font-weight:900;letter-spacing:.05em;margin-bottom:6px}
.spot-body .addr{
  font-size:12px;color:var(--steel);margin-bottom:14px;
  display:flex;align-items:center;gap:6px;
}
.spot-body .addr svg{width:13px;height:13px;flex-shrink:0}
.spot-meta{
  display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;
}
.tag{
  font-size:11px;letter-spacing:.05em;
  border:1px solid var(--line);
  background:#fff;
  padding:3px 10px;color:var(--steel);
}
.spot-foot{
  display:flex;justify-content:space-between;align-items:flex-end;
  border-top:1px solid var(--line);padding-top:16px;margin-top:auto;
}
.spot-price{font-size:11px;color:var(--steel);line-height:1.4}
.spot-price .num{font-size:24px;font-weight:700;color:var(--ink);letter-spacing:.02em}
.spot-price .num small{font-size:12px;font-weight:600}
.spot-link{
  font-size:13px;font-weight:700;color:var(--accent-text);
  display:flex;align-items:center;gap:5px;
}
.spot-link svg{width:14px;height:14px;transition:transform .2s}
.spot:hover .spot-link svg{transform:translateX(3px)}

/* ===== use cases ===== */
.uses{background:var(--ink);color:#fff}
.uses .sec-title{color:#fff}
.uses .sec-eyebrow{color:var(--accent)}
.uses .sec-lead{color:rgba(255,255,255,.75)}
.use-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.16)}
.use{
  background:var(--ink);
  padding:34px 26px;
}
.use svg{width:34px;height:34px;stroke:var(--accent);margin-bottom:18px}
.use h3{font-size:15px;font-weight:700;letter-spacing:.06em;margin-bottom:8px}
.use p{font-size:12.5px;color:rgba(255,255,255,.72);line-height:1.9}

/* ===== price ===== */
.price{background:var(--white)}
.price-table-wrap{overflow-x:auto;border:1px solid var(--line)}
table{width:100%;border-collapse:collapse;min-width:640px;background:#fff}
th,td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line);font-size:13.5px;vertical-align:middle}
thead th{
  background:var(--ink);color:#fff;
  font-size:12px;letter-spacing:.1em;font-weight:700;
}
tbody th{font-weight:700;background:var(--bg)}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:none}
td .num{font-size:19px;font-weight:700;letter-spacing:.02em}
td .num small{font-size:11px;font-weight:600;color:var(--steel)}
.size-cell{display:flex;align-items:center;gap:14px}
td.dim{white-space:nowrap;line-height:1.4}
td.dim .num{font-size:17px;font-weight:600;letter-spacing:.02em}
td.dim .num small{font-size:11px;font-weight:500;color:var(--steel);margin-left:1px}
td.dim>small{font-size:11px;color:var(--steel)}
.size-box{flex-shrink:0;border:1.5px solid var(--steel)}
.price-note{margin-top:14px;font-size:12px;color:var(--steel)}
.table-narrow{min-width:0}

/* ===== flow ===== */
.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.step{
  position:relative;
  border-left:1px solid var(--line);
  padding:6px 26px 0;
}
.step:first-child{border-left:none;padding-left:0}
.step-no{
  font-family:'Barlow Condensed',sans-serif;
  font-size:38px;font-weight:600;color:var(--accent);
  line-height:1;margin-bottom:14px;
}
.step h3{font-size:15px;font-weight:700;letter-spacing:.05em;margin-bottom:8px}
.step p{font-size:12.5px;color:var(--steel);line-height:1.9}

/* ===== cta ===== */
.cta{
  position:relative;
  background:var(--ink);
  color:#fff;text-align:center;
  overflow:hidden;
}
.cta .hero-img img{opacity:.22;object-position:50% 45%}
.cta .section-in{position:relative}
.cta h2{font-size:clamp(22px,3vw,30px);font-weight:900;letter-spacing:.08em;margin-bottom:12px}
.cta p{font-size:13.5px;color:rgba(255,255,255,.8);margin-bottom:34px}
.cta-tel{
  font-family:'Barlow Condensed',sans-serif;
  font-size:clamp(34px,6vw,52px);font-weight:700;letter-spacing:.04em;
  display:inline-flex;align-items:center;gap:14px;
  margin-bottom:6px;
}
.cta-tel svg{width:32px;height:32px;stroke:var(--accent)}
.cta-hours{font-size:13px;color:rgba(255,255,255,.85);letter-spacing:.06em;margin-bottom:34px}
.cta-hours strong{color:#fff;border-bottom:2px solid var(--accent);padding-bottom:1px;margin-right:4px}
.cta .hero-actions{justify-content:center}

/* ===== footer ===== */
footer{background:var(--ink);color:rgba(255,255,255,.7);font-size:12.5px}
.foot-in{
  max-width:1160px;margin:0 auto;
  padding:56px 20px 30px;
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;
}
.foot-in h2{color:#fff;font-size:14px;font-weight:700;letter-spacing:.08em;margin-bottom:16px}
.foot-in li{margin-bottom:9px}
.foot-in a:hover{color:#fff}
.foot-logo{display:flex;align-items:baseline;gap:10px;color:#fff;margin-bottom:12px}
.foot-logo .name{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:26px;line-height:1;letter-spacing:.04em}
.foot-logo .sub{font-size:12px;font-weight:700;letter-spacing:.12em;color:rgba(255,255,255,.85)}
.foot-tel{margin-top:14px;font-size:12px}
.foot-tel .num{font-size:20px;font-weight:600;color:#fff;letter-spacing:.04em;display:block}
.copyright{
  border-top:1px solid rgba(255,255,255,.14);
  text-align:center;padding:20px;
  font-size:11px;color:rgba(255,255,255,.6);letter-spacing:.08em;
}

/* ===== 拠点詳細: 概要 ===== */
.spot-summary{
  display:grid;grid-template-columns:1.2fr 1fr;gap:44px;align-items:start;
}
.spot-summary .lead{font-size:15px;line-height:2}
.spot-summary .lead+p{margin-top:14px;font-size:14px;color:var(--steel)}
.info-list{border-top:1px solid var(--line)}
.info-list div{
  display:grid;grid-template-columns:110px 1fr;gap:14px;
  padding:14px 0;border-bottom:1px solid var(--line);font-size:13.5px;
}
.info-list dt{font-weight:700;color:var(--steel);font-size:12px;letter-spacing:.08em;padding-top:2px}
.info-list dd a{color:var(--accent-text);font-weight:700}
.info-list dd .tel{font-family:'Barlow Condensed',sans-serif;font-size:22px;font-weight:700;letter-spacing:.03em;color:var(--ink)}

/* ===== 拠点詳細: 空室状況 ===== */
.availability{
  border:1px solid var(--line);background:#fff;
  padding:26px 28px;
  display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center;
}
.avail-badge{
  font-size:12px;letter-spacing:.2em;font-weight:700;color:#fff;
  background:var(--accent-text);padding:10px 16px;white-space:nowrap;
}
.avail-badge.is-full{background:var(--steel)}
.availability .updated{font-size:11px;color:var(--steel);letter-spacing:.08em;margin-bottom:6px}
.availability p{font-size:14px}
.avail-table{margin-top:20px}
.avail-table table{min-width:0}
.avail-table td,.avail-table th{padding:12px 14px;font-size:13px}
.avail-ok{color:var(--accent-text);font-weight:700}
.avail-ng{color:var(--steel)}

/* ===== 拠点詳細: ギャラリー ===== */
.gallery{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;
}
.gallery figure{margin:0;position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--line)}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery figcaption{
  position:absolute;left:0;bottom:0;
  background:rgba(24,36,48,.8);color:#fff;
  font-size:11px;letter-spacing:.06em;padding:4px 10px;
}
.gallery .wide{grid-column:span 2;grid-row:span 2}
.gallery.cols-3{grid-template-columns:repeat(3,1fr)}
.gallery-note{margin-top:12px;font-size:12px;color:var(--steel)}

/* ===== 拠点詳細: アクセス・地図 ===== */
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.map-embed{position:relative;aspect-ratio:4/3;background:var(--line);border:1px solid var(--line)}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.access-list{border-top:1px solid var(--line)}
.access-list li{
  padding:14px 0;border-bottom:1px solid var(--line);
  display:flex;gap:14px;font-size:13.5px;
}
.access-list svg{width:20px;height:20px;stroke:var(--accent);fill:none;stroke-width:1.8;flex-shrink:0;margin-top:3px}
.access-list strong{display:block;font-size:13px;letter-spacing:.05em;margin-bottom:2px}
.access-list span{color:var(--steel);font-size:13px}

/* ===== 他拠点リンク ===== */
.other-spots{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.other-spot{
  border:1px solid var(--line);background:#fff;padding:20px 22px;
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  transition:border-color .2s;
}
.other-spot:hover{border-color:var(--accent)}
.other-spot .code{font-family:'Barlow Condensed',sans-serif;font-size:12px;letter-spacing:.18em;color:var(--steel)}
.other-spot h3{font-size:16px;font-weight:900;letter-spacing:.05em}
.other-spot p{font-size:12px;color:var(--steel)}
.other-spot svg{width:18px;height:18px;stroke:var(--accent);fill:none;stroke-width:2;flex-shrink:0}

/* ===== 特徴リスト(3列) ===== */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.feature{background:#fff;padding:30px 26px}
.feature svg{width:30px;height:30px;stroke:var(--accent);fill:none;stroke-width:1.6;margin-bottom:14px}
.feature h3{font-size:15px;font-weight:700;letter-spacing:.05em;margin-bottom:8px}
.feature p{font-size:13px;color:var(--steel);line-height:1.9}

.unit-spot-title{font-size:18px;font-weight:900;letter-spacing:.05em;margin:36px 0 14px;display:flex;align-items:baseline;gap:10px}
.unit-spot-title:first-of-type{margin-top:0}
.unit-spot-title a{color:var(--ink)}
.unit-spot-title a:hover{color:var(--accent-text)}
.unit-spot-title small{font-size:12px;color:var(--steel);font-weight:400;letter-spacing:.06em}
td.u-spot{font-size:13px;white-space:nowrap}
.unit-table .u-name .num{font-size:22px;font-weight:700;letter-spacing:.04em}

/* ===== 料金ページ: 初期費用 ===== */
.fee-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.fee{border:1px solid var(--line);background:#fff;padding:24px}
.fee .label{font-size:12px;letter-spacing:.1em;color:var(--steel);font-weight:700;margin-bottom:8px}
.fee .num{font-size:30px;font-weight:700;letter-spacing:.02em}
.fee .num small{font-size:13px;font-weight:600;color:var(--steel)}
.fee p{font-size:12.5px;color:var(--steel);margin-top:8px}

.pay-flow{
  margin-top:18px;border:1px solid var(--line);border-left:3px solid var(--accent);
  background:#fff;padding:22px 24px;
}
.pay-flow h3{font-size:15px;font-weight:700;letter-spacing:.06em;margin-bottom:12px}
.pay-flow ol{counter-reset:pay}
.pay-flow li{
  counter-increment:pay;position:relative;
  padding:10px 0 10px 44px;font-size:14px;line-height:1.9;
  display:grid;grid-template-columns:110px 1fr;gap:4px 16px;
}
.pay-flow li+li{border-top:1px solid var(--line)}
.pay-flow li::before{
  content:counter(pay,decimal-leading-zero);
  position:absolute;left:0;top:10px;
  font-family:'Barlow Condensed',sans-serif;font-size:22px;font-weight:600;color:var(--accent);line-height:1.2;
}
.pay-flow strong{font-size:14px;letter-spacing:.05em}
.pay-flow span .num{font-size:18px;font-weight:700;letter-spacing:.02em;margin:0 4px}

/* ===== FAQ ===== */
.faq{max-width:820px}
.faq details{border-bottom:1px solid var(--line);background:#fff}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;
  padding:20px 52px 20px 22px;
  font-weight:700;font-size:15px;letter-spacing:.03em;
  position:relative;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{
  content:"Q";font-family:'Barlow Condensed',sans-serif;
  color:var(--accent);font-size:18px;font-weight:700;margin-right:14px;
}
.faq summary::after{
  content:"";position:absolute;right:22px;top:50%;
  width:10px;height:10px;
  border-right:2px solid var(--steel);border-bottom:2px solid var(--steel);
  transform:translateY(-70%) rotate(45deg);transition:transform .2s;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq .answer{padding:0 22px 22px 48px;font-size:14px;color:var(--steel);line-height:1.9}

/* ===== 会社概要 ===== */
.company-table{max-width:820px}
.company-table table{min-width:0}
.company-table th{width:180px;white-space:nowrap}

/* ===== お問い合わせ ===== */
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.contact-card{border:1px solid var(--line);background:#fff;padding:32px 30px;display:flex;flex-direction:column}
.contact-card .label{font-size:11px;letter-spacing:.2em;color:var(--accent-text);font-weight:700;margin-bottom:12px}
.contact-card h2{font-size:20px;font-weight:900;letter-spacing:.05em;margin-bottom:10px}
.contact-card p{font-size:13.5px;color:var(--steel);margin-bottom:22px}
.contact-card h2{margin-bottom:6px}
.contact-card .tel{
  font-family:'Barlow Condensed',sans-serif;
  font-size:40px;font-weight:700;letter-spacing:.03em;line-height:1.1;
  display:inline-flex;align-items:center;gap:10px;margin-bottom:6px;
}
.contact-card .tel svg{width:28px;height:28px;stroke:var(--accent);fill:none;stroke-width:2}
.contact-card .hours{font-size:12px;color:var(--steel);letter-spacing:.06em;margin-bottom:0}
.contact-card .btn{margin-top:auto;align-self:flex-start}
.contact-main{border:1px solid var(--line);background:#fff;padding:34px 30px;margin-bottom:24px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 36px}
.contact-main .tel{
  font-family:'Barlow Condensed',sans-serif;
  font-size:clamp(40px,6vw,56px);font-weight:700;letter-spacing:.03em;line-height:1.1;
  display:inline-flex;align-items:center;gap:12px;
}
.contact-main .tel svg{width:32px;height:32px;stroke:var(--accent);fill:none;stroke-width:2}
.contact-main .hours{font-size:13px;color:var(--steel);letter-spacing:.04em;width:100%;margin:0;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.contact-main .btn{margin-top:10px}
.contact-list li{font-size:13.5px;padding:6px 0 6px 18px;position:relative;color:var(--steel)}
.contact-list li::before{content:"";position:absolute;left:0;top:15px;width:8px;height:2px;background:var(--accent)}
.contact-tips{max-width:820px;border:1px solid var(--line);background:#fff;padding:26px 28px}
.contact-tips h2{font-size:15px;font-weight:700;letter-spacing:.06em;margin-bottom:12px}
.contact-tips li{font-size:13.5px;padding:6px 0 6px 18px;position:relative;color:var(--steel)}
.contact-tips li::before{content:"";position:absolute;left:0;top:15px;width:8px;height:2px;background:var(--accent)}

/* ===== 本文プロース ===== */
.prose{max-width:820px}
.prose h3{font-size:17px;font-weight:700;letter-spacing:.05em;margin:34px 0 10px;padding-left:14px;border-left:3px solid var(--accent)}
.prose p{font-size:14px;color:var(--steel);margin-bottom:12px}
.prose ul li{font-size:14px;color:var(--steel);padding:4px 0 4px 18px;position:relative}
.prose ul li::before{content:"";position:absolute;left:0;top:15px;width:8px;height:2px;background:var(--accent)}

/* ===== mobile ===== */
@media(max-width:860px){
  .menu-btn{display:block}
  nav.gnav{
    display:none;
    position:absolute;left:0;right:0;top:100%;
    background:var(--white);border-bottom:1px solid var(--line);
    box-shadow:0 12px 24px rgba(24,36,48,.12);
  }
  nav.gnav.is-open{display:block}
  nav.gnav ul{flex-direction:column;gap:0;align-items:stretch;padding:8px 0 16px}
  nav.gnav li{border-top:1px solid var(--line)}
  nav.gnav li:first-child{border-top:none}
  nav.gnav a{display:block;padding:14px 20px;font-size:14px;border-bottom:none}
  nav.gnav a:hover,nav.gnav a[aria-current="page"]{border-bottom:none;color:var(--accent)}
  nav.gnav li.cta-item{border-top:none;padding:10px 20px 0}
  nav.gnav .nav-cta{text-align:center;padding:13px 18px!important}
  body.menu-open{overflow:hidden}

  .hero-in{padding:70px 20px 60px}
  .hero .hero-img::after{background:linear-gradient(180deg,rgba(24,36,48,.7) 0%,rgba(24,36,48,.5) 55%,rgba(24,36,48,.15) 100%)}
  .hero .hero-img img{object-position:50% 35%;transform:none}
  .page-hero-in{padding:44px 20px 40px}
  section{padding:60px 20px}
  .spot-grid{grid-template-columns:1fr}
  .use-grid{grid-template-columns:repeat(2,1fr)}
  .flow-grid{grid-template-columns:1fr;gap:30px}
  .step{border-left:none;padding:0}
  .foot-in{grid-template-columns:1fr;gap:32px}
  .hero-strip-in{grid-template-columns:1fr;padding:0}
  .strip-item{border-left:none;border-top:1px solid rgba(255,255,255,.18);padding:12px 20px}
  .strip-item:first-child{border-top:none}
  .topbar{font-size:11px;padding:6px 12px}
  .topbar>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .logo{gap:8px}
  .logo .mark{height:32px}
  .logo .name{font-size:26px}
  .logo .sub{font-size:11px;letter-spacing:.08em}

  .spot-summary{grid-template-columns:1fr;gap:30px}
  .availability{grid-template-columns:1fr;gap:14px;padding:20px}
  .avail-badge{justify-self:start}
  .gallery,.gallery.cols-3{grid-template-columns:repeat(2,1fr)}
  .gallery figure:nth-child(even):last-child{grid-column:span 2}  /* 2列で余る最後の1枚は横いっぱい */
  .gallery .wide{grid-column:span 2;grid-row:span 1}
  .access-grid{grid-template-columns:1fr;gap:28px}
  .other-spots{grid-template-columns:1fr}
  .feature-grid{grid-template-columns:1fr}
  .fee-grid{grid-template-columns:1fr}
  .pay-flow li{grid-template-columns:1fr;padding-left:36px}
  .contact-grid{grid-template-columns:1fr}
  .contact-card .tel{font-size:34px}
  .company-table th{width:110px;white-space:normal}
  /* 区画一覧: スマホは1区画1カード */
  .unit-table{border:none;overflow:visible}
  .unit-table table{min-width:0;background:transparent;display:block}
  .unit-table thead{display:none}
  .unit-table tbody{display:block}
  .unit-table tr{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:"name avail" "size price" "dim price";
    align-items:center;column-gap:14px;row-gap:2px;
    background:#fff;border:1px solid var(--line);
    padding:14px 16px;margin-bottom:10px;
  }
  .unit-table tr.is-used{background:var(--bg)}
  .unit-table th,.unit-table td{display:block;border:none;padding:0;background:transparent;font-size:13px}
  .unit-table .u-name{grid-area:name;font-size:15px;font-weight:700;letter-spacing:.04em;margin-bottom:6px}
  .unit-table .u-name .num{font-size:24px}
  .unit-table .u-spot{grid-area:spot;font-size:12px;color:var(--steel);margin-top:-4px;margin-bottom:6px}
  .unit-table tr:has(.u-spot){grid-template-areas:"name avail" "spot avail" "size price" "dim price"}
  .unit-table .u-avail{grid-area:avail;margin-bottom:6px;text-align:right;white-space:nowrap}
  .unit-table .u-size{grid-area:size}
  .unit-table .u-dim{grid-area:dim;white-space:normal}
  .unit-table .u-dim br{display:none}
  .unit-table .u-dim>small{margin-left:6px}
  .unit-table .u-price{grid-area:price;text-align:right;align-self:center}
  .unit-table .u-price .num{font-size:22px}
  .info-list div{grid-template-columns:90px 1fr}
}
@media(max-width:480px){
  .use-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *{transition:none!important;scroll-behavior:auto!important}
}
