:root{
  --bg:#ffffff; --surface:#f3f0e9; --surface-2:#e8e3d9; --line:#d3ccbe;
  --text:#14161a; --text-muted:#4a4843; --accent:#b23a2e; --accent-quiet:#4b5d50;
  --font-head:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --font-body:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --header-h:84px;
  color-scheme:light;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{margin:0; background:var(--bg); color:var(--text); font-family:var(--font-body); line-height:1.9; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
a{color:inherit;}
img{max-width:100%; height:auto; display:block;}
.wrap{max-width:1040px; margin:0 auto; padding:0 28px;}
@media (max-width:600px){ .wrap{padding:0 18px;} }
.rule{border:none; border-top:1px solid var(--line); margin:0;}
[id]{scroll-margin-top:calc(var(--header-h) + 16px);}

/* HEADER */
header.site{position:sticky; top:0; z-index:50; background:rgba(255,255,255,0.92); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
.navrow{display:flex; align-items:center; justify-content:space-between; padding:14px 28px; max-width:1200px; margin:0 auto; gap:20px; min-height:var(--header-h);}
.brand{font-family:var(--font-head); font-weight:600; font-size:1.1rem; letter-spacing:.04em; text-decoration:none; flex:none; display:flex; align-items:center; gap:10px;}
.brand img{height:56px; width:auto;}
.brand span{color:var(--accent);}
nav.links{display:flex; gap:18px; font-size:.8rem; flex-wrap:nowrap;}
nav.links a{text-decoration:none; color:var(--text-muted); transition:color .2s; white-space:nowrap; position:relative;}
nav.links a:hover, nav.links a[aria-current="page"]{color:var(--text);}
nav.links a[aria-current="page"]::after{content:""; position:absolute; left:0; right:0; bottom:-4px; height:1px; background:var(--accent);}
.nav-right{display:flex; align-items:center; gap:12px; flex:none;}
.navcta{font-size:.8rem; font-weight:700; background:var(--accent); border:1px solid var(--accent); color:#fff; padding:8px 16px; text-decoration:none; white-space:nowrap;}
.navcta:hover{background:#9a3126; border-color:#9a3126;}
.menu-btn{display:none; width:40px; height:40px; background:none; border:1px solid var(--line); color:var(--text); cursor:pointer; padding:0; position:relative;}
.menu-btn span{position:absolute; left:11px; right:11px; height:1px; background:currentColor; transition:transform .25s, opacity .25s;}
.menu-btn span:nth-child(1){top:14px;}
.menu-btn span:nth-child(2){top:19.5px;}
.menu-btn span:nth-child(3){top:25px;}
.nav-open .menu-btn span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
.nav-open .menu-btn span:nth-child(2){opacity:0;}
.nav-open .menu-btn span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}

@media (max-width:1100px){
  .menu-btn{display:block;}
  nav.links{display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0; background:var(--bg); border-bottom:1px solid var(--line); padding:8px 28px 20px; font-size:.95rem; max-height:calc(100vh - var(--header-h)); overflow-y:auto;}
  .nav-open nav.links{display:flex;}
  nav.links a{padding:14px 0; border-bottom:1px solid var(--line);}
  nav.links a:last-child{border-bottom:none;}
  nav.links a[aria-current="page"]{color:var(--accent);}
  nav.links a[aria-current="page"]::after{display:none;}
}
@media (max-width:600px){
  .navrow{padding:12px 18px; gap:12px;}
  .brand img{height:44px;}
  nav.links{padding:8px 18px 20px;}
  .navcta{padding:8px 12px;}
}

/* HERO (top page) */
.hero{padding:88px 0 76px;}
.hero .wrap{display:grid; grid-template-columns:1.3fr 0.9fr; gap:56px; align-items:center;}
@media (max-width:860px){ .hero{padding:56px 0 60px;} .hero .wrap{grid-template-columns:1fr; gap:44px;} }
.eyebrow{font-size:.84rem; font-weight:700; letter-spacing:.14em; color:var(--text-muted); margin:0 0 22px; display:flex; align-items:center; gap:10px; letter-spacing:.06em;}
.eyebrow::before{content:""; width:30px; height:3px; background:var(--accent); display:inline-block; flex:none;}
.hero h1{font-family:var(--font-head); font-weight:800; font-size:clamp(1.6rem, 3.3vw, 2.5rem); line-height:1.55; margin:0 0 28px;}
@media (max-width:860px){ .hero h1{font-size:clamp(1.25rem, 5.4vw, 2.3rem);} }
.hero h1 span{display:block; opacity:0; transform:translateY(14px); animation:rise .7s ease forwards; white-space:nowrap;}
.hero h1 span:nth-child(1){animation-delay:.05s;}
.hero h1 span:nth-child(2){animation-delay:.14s;}
.hero h1 span:nth-child(3){animation-delay:.23s;}
.hero h1 span:nth-child(4){animation-delay:.32s;}
.hero h1 span:nth-child(5){animation-delay:.41s;}
@keyframes rise{ to{opacity:1; transform:translateY(0);} }
@media (prefers-reduced-motion: reduce){ .hero h1 span{animation:none; opacity:1; transform:none;} html{scroll-behavior:auto;} }
.hero .lead{color:var(--text-muted); font-size:1.06rem; max-width:33em; margin:0 0 20px;}
.hero .lead:last-of-type{margin-bottom:32px;}
.hero .lead strong{color:var(--text); font-weight:700; background:linear-gradient(transparent 62%, rgba(178,58,46,.22) 62%); padding:0 1px;}
.cta-row{display:flex; gap:14px; flex-wrap:wrap;}
.btn{display:inline-block; text-decoration:none; font-size:.93rem; font-weight:700; padding:13px 26px; background:var(--accent); border:1px solid var(--accent); color:#fff; transition:background .2s, opacity .2s; text-align:center;}
.btn:hover{background:#9a3126;}
.btn.primary, .btn.ghost{background:var(--accent); border-color:var(--accent); color:#fff;}
.btn.primary:hover, .btn.ghost:hover{background:#9a3126;}
@media (max-width:480px){ .cta-row .btn{flex:1 1 100%;} }
.not-for{margin-top:36px; padding-top:26px; border-top:1px solid var(--line); color:var(--text-muted); font-size:.94rem;}
.not-for b{color:var(--text); font-weight:700; display:block; margin-bottom:6px; font-family:var(--font-head);}
.not-for p{margin:0 0 10px;}
.not-for p:last-child{margin:0;}
.hero-figure{display:flex; justify-content:center;}
.hero-portrait{position:relative; width:100%; max-width:340px; aspect-ratio:3/4; overflow:hidden; border:1px solid var(--line); margin:0;}
.hero-portrait img{width:100%; height:100%; object-fit:cover; filter:grayscale(100%) contrast(1.05);}
.hero-portrait::after{content:""; position:absolute; inset:0; background:linear-gradient(160deg, rgba(178,58,46,.22), rgba(27,29,27,.10) 55%, rgba(27,29,27,.45)); mix-blend-mode:multiply; pointer-events:none;}
.hero-portrait .cap{position:absolute; z-index:1; left:0; right:0; bottom:0; padding:16px 18px; font-family:var(--font-head); font-size:.85rem; color:#f4efe6; background:linear-gradient(0deg, rgba(15,16,14,.85), transparent);}

/* STATS BAND (実績の数字) */
.stats{border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:66px 0 68px;}
.stat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:38px;}
@media (max-width:760px){ .stat-grid{grid-template-columns:1fr; gap:30px;} }
.stat{padding:0;}
.stat .n{margin:0; line-height:1; display:flex; align-items:baseline; gap:9px;}
.stat .v{font-family:var(--font-head); font-weight:800; font-size:clamp(2.7rem,6vw,3.7rem); letter-spacing:-.02em;
  display:inline-block; transform:skewX(-8deg); transform-origin:bottom left;}
.stat .u{font-size:1rem; font-weight:700; color:var(--accent);}
.stat .k{font-weight:700; font-size:1rem; margin:16px 0 6px;}
.stat .d{color:var(--text-muted); font-size:.92rem; margin:0;}
@media (max-width:600px){ .stats{padding:54px 0 56px;} }

/* SUB PAGE HEADER */
.page-head{padding:64px 0 52px; border-bottom:1px solid var(--line);}
.breadcrumb{font-size:.78rem; color:var(--text-muted); margin:0 0 28px;}
.breadcrumb a{text-decoration:none;}
.breadcrumb a:hover{color:var(--text);}
.breadcrumb .sep{margin:0 8px; opacity:.6;}
.page-head h1{font-family:var(--font-head); font-weight:800; font-size:clamp(1.5rem, 4vw, 2.2rem); line-height:1.5; margin:0 0 16px;}
.page-head .page-lead{color:var(--text-muted); font-size:1.05rem; max-width:36em; margin:0;}
@media (max-width:600px){ .page-head{padding:44px 0 38px;} }

/* SECTIONS */
section{padding:88px 0;}
@media (max-width:600px){ section{padding:62px 0;} }
.section-head{display:grid; grid-template-columns:auto 1fr; align-items:center; gap:14px 16px; margin-bottom:44px;}
.section-head .num{grid-row:1; font-family:var(--font-body); font-weight:700; color:var(--accent); font-size:.76rem; letter-spacing:.2em;}
.section-head .hline{grid-row:1; height:2px; min-width:24px; background:
  linear-gradient(var(--accent),var(--accent)) 0 0/34px 2px no-repeat,
  linear-gradient(var(--line),var(--line)) 0 0/100% 1px no-repeat;}
.section-head h2{grid-column:1 / -1; grid-row:2; font-family:var(--font-head); font-weight:800; font-size:1.78rem; margin:0; line-height:1.4; letter-spacing:.01em;}
@media (max-width:600px){ .section-head{margin-bottom:34px; gap:12px;} .section-head h2{font-size:1.44rem;} }
.section-sub{color:var(--text-muted); font-size:.94rem; margin:-24px 0 34px;}

/* line-break helpers: shown only on small screens */
.br-sm{display:none;}
@media (max-width:600px){ .br-sm{display:inline;} }

/* TOP: page index cards */
.index-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:0 44px; counter-reset:idx; border-top:1px solid var(--line);}
@media (max-width:700px){ .index-grid{grid-template-columns:1fr;} }
.index-card{padding:24px 0 26px; border-bottom:1px solid var(--line); text-decoration:none;
  display:grid; grid-template-columns:auto 1fr; column-gap:22px; row-gap:5px; align-items:start; transition:background .2s;}
.index-card::before{content:counter(idx,decimal-leading-zero); counter-increment:idx; grid-column:1; grid-row:1 / -1;
  font-family:var(--font-head); font-weight:800; font-size:1.55rem; line-height:1.1; color:var(--accent);
  display:inline-block; transform:skewX(-8deg);}
.index-card:hover .ja{color:var(--accent);}
.index-card .en{grid-column:2; color:var(--accent); font-size:.72rem; font-weight:700; letter-spacing:.16em;}
.index-card .ja{grid-column:2; font-family:var(--font-head); font-size:1.24rem; font-weight:800; line-height:1.45;}
.index-card .ja::after{content:"→"; color:var(--accent); font-family:var(--font-body); font-size:.9rem; margin-left:10px;
  display:inline-block; transition:transform .2s;}
.index-card:hover .ja::after{transform:translateX(5px);}
.index-card .desc{grid-column:2; color:var(--text-muted); font-size:.93rem; line-height:1.8; margin-top:3px;}
@media (max-width:600px){ .index-card{column-gap:16px;} .index-card .ja{font-size:1.12rem;} }

.more-link{display:inline-block; margin-top:24px; color:var(--accent); text-decoration:none; font-size:.95rem; font-weight:700;}
.more-link:hover{text-decoration:underline;}

/* MISSION / CONCEPT */
.mission-block{margin-bottom:52px;}
.mission-block:last-child{margin-bottom:0;}
.mission-block h3{font-family:var(--font-head); font-size:1.24rem; margin:0 0 16px; color:var(--accent);}
.mission-block p{color:var(--text-muted); max-width:38em; margin:0 0 16px; font-size:1.02rem;}
.mission-block .quote{color:var(--text); font-weight:700; font-size:1.05rem; margin:0 0 18px; font-family:var(--font-head);}
.pain-list{list-style:none; padding:0; margin:0 0 18px; color:var(--text-muted); font-size:1rem;}
.pain-list li{padding:6px 0 6px 24px; position:relative;}
.pain-list li::before{content:"—"; position:absolute; left:0; color:var(--accent-quiet);}

/* SERVICE */
.service-row{display:grid; grid-template-columns:230px 1fr; gap:40px; padding:46px 0; border-top:1px solid var(--line);}
.service-row:first-child{border-top:none; padding-top:0;}
.service-row:last-of-type{border-bottom:1px solid var(--line);}
@media (max-width:700px){ .service-row{grid-template-columns:1fr; gap:18px; padding:34px 0;} .service-row h3{position:static;} }
.service-row h3{font-family:var(--font-head); font-size:1.24rem; margin:0; color:var(--text); line-height:1.55; position:sticky; top:calc(var(--header-h) + 20px);}
.service-row .body p{margin:0 0 16px; color:var(--text-muted); font-size:1rem; max-width:38em;}
.service-row .body p:last-child{margin-bottom:0;}
.flow{display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; margin:4px 0 18px; font-size:.92rem;}
.flow span{border:1px solid var(--line); padding:6px 12px; color:var(--text);}
.flow i{font-style:normal; color:var(--accent);}

.service-index{display:grid; grid-template-columns:repeat(3,1fr); gap:0 32px; margin-bottom:54px; border-top:1px solid var(--line);}
@media (max-width:760px){ .service-index{grid-template-columns:repeat(2,1fr);} }
@media (max-width:460px){ .service-index{grid-template-columns:1fr;} }
.service-index a{text-decoration:none; padding:14px 2px; border-bottom:1px solid var(--line); display:flex; align-items:baseline; gap:12px;}
.service-index a:hover .t{color:var(--accent);}
.service-index .sn{font-family:var(--font-head); font-weight:800; font-size:1rem; color:var(--accent); display:inline-block; transform:skewX(-8deg);}
.service-index .t{font-size:.95rem; font-weight:700;}
.service-row h3 .sn{display:block; font-family:var(--font-head); font-weight:800; font-size:1.7rem; color:var(--accent);
  line-height:1; margin-bottom:12px; transform:skewX(-8deg); transform-origin:bottom left;}
@media (max-width:700px){ .service-row h3 .sn{font-size:1.35rem; margin-bottom:8px;} }

/* STAFF */
.staff-card{display:grid; grid-template-columns:200px 1fr; gap:40px; align-items:start;}
@media (max-width:760px){ .staff-card{grid-template-columns:1fr; gap:28px;} }
.staff-photo{width:100%; max-width:200px; aspect-ratio:1; object-fit:cover; border:1px solid var(--line); background:var(--surface);}
.staff-block p, .staff-block li{color:var(--text-muted); font-size:.98rem; margin:0 0 7px;}
.staff-block .staff-name{font-family:var(--font-head); font-size:1.3rem; margin:0 0 4px; color:var(--text);}
.staff-block .staff-en{color:var(--text-muted); font-size:.85rem; margin:0 0 20px;}
.staff-block .staff-lead{font-size:1.02rem; margin:0 0 18px; max-width:40em;}
.staff-block .staff-sub{font-family:var(--font-head); font-size:1.02rem; color:var(--accent); margin:40px 0 14px; font-weight:600;}
.staff-block ul{margin:0; padding:0; list-style:none;}
.career li{display:grid; grid-template-columns:96px 1fr; gap:12px; padding:6px 0; border-top:1px solid var(--line); margin:0;}
.career li:last-child{border-bottom:1px solid var(--line);}
.career .yr{color:var(--accent); font-family:var(--font-head);}
@media (max-width:480px){ .career li{grid-template-columns:1fr; gap:0;} }
.cred-tags{display:flex; flex-wrap:wrap; gap:8px; margin:0;}
.cred-tags span{border:1px solid var(--line); padding:7px 13px; font-size:.86rem; color:var(--text-muted); line-height:1.6;}
.support-grid{display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:18px;}
@media (max-width:700px){ .support-grid{grid-template-columns:1fr;} }
.support-grid h4{font-size:.95rem; color:var(--text); margin:0 0 10px; font-weight:700;}
.support-grid li{padding-left:16px; position:relative;}
.support-grid li::before{content:"・"; position:absolute; left:0; color:var(--accent-quiet);}
.pub-list li{padding:10px 0; border-top:1px solid var(--line); margin:0;}
.pub-list li:last-child{border-bottom:1px solid var(--line);}
.pub-list b{color:var(--text); font-weight:700; margin-right:8px;}

/* FACILITY */
.facility-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.facility-grid > .facility-cell:last-child:nth-child(odd){grid-column:1 / -1;}
@media (max-width:700px){ .facility-grid{grid-template-columns:1fr;} }
.facility-cell{background:var(--bg); display:flex; flex-direction:column;}
.facility-cell img{width:100%; height:240px; object-fit:cover; background:var(--surface);}
.facility-grid > .facility-cell:last-child:nth-child(odd) img{height:320px;}
.facility-cell .fc-text{padding:24px 26px 30px;}
.facility-cell h3{font-family:var(--font-head); font-size:1.1rem; margin:0 0 10px;}
.facility-cell p{color:var(--text-muted); font-size:.96rem; margin:0 0 9px;}
.facility-cell p:last-child{margin:0;}
@media (max-width:700px){
  .facility-cell img, .facility-grid > .facility-cell:last-child:nth-child(odd) img{height:220px;}
  .facility-cell .fc-text{padding:20px 20px 26px;}
}

/* PRICING */
.hours-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:56px;}
@media (max-width:700px){ .hours-grid{grid-template-columns:repeat(2,1fr);} }
.hours-cell{background:var(--bg); padding:20px 12px; text-align:center;}
.hours-cell .d{font-family:var(--font-head); color:var(--accent); font-size:.95rem; margin-bottom:6px;}
.hours-cell .t{color:var(--text-muted); font-size:.92rem;}
.price-table{width:100%; border-collapse:collapse; font-size:.97rem;}
.price-table th, .price-table td{text-align:left; padding:12px 10px; border-top:1px solid var(--line);}
.price-table tr:last-child td{border-bottom:1px solid var(--line);}
.price-table th{color:var(--text-muted); font-weight:500; font-size:.8rem;}
.price-table td.amount, .price-table th.amount{text-align:right;}
.price-table td.amount{color:var(--accent); font-family:var(--font-head); font-weight:700; white-space:nowrap;}
.price-table td.time{white-space:nowrap; color:var(--text-muted);}
@media (max-width:480px){ .price-table{font-size:.85rem;} .price-table th, .price-table td{padding:11px 6px;} }
.price-group{margin-bottom:56px;}
.first-visit{background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--accent); padding:30px 34px 32px;}
@media (max-width:600px){ .first-visit{padding:24px 20px 26px;} }
.fv-label{color:var(--accent); font-weight:700; font-size:.8rem; letter-spacing:.14em; margin:0 0 6px;}
.first-visit h3, .pc-box h3{margin-top:0;}
.plan{border-top:1px solid var(--line); padding:20px 0;}
.price-group .plan:last-of-type{border-bottom:1px solid var(--line);}
.first-visit .plan:last-of-type{border-bottom:none; padding-bottom:0;}
.plan-name{font-weight:700; font-size:1.04rem; margin:0 0 12px;}
.plan-name .sub{font-weight:400; color:var(--text-muted); font-size:.86rem; margin-left:8px;}
.plan-opts{list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0;}
.plan-opts li{display:flex; align-items:baseline; gap:12px; border:1px solid var(--line); background:var(--bg); padding:10px 18px;}
.plan-opts .t{font-size:.9rem; color:var(--text-muted); white-space:nowrap;}
.plan-opts .p{font-family:var(--font-head); font-weight:800; font-size:1.12rem; color:var(--accent); white-space:nowrap;}
.plan-note{color:var(--text-muted); font-size:.9rem; margin:14px 0 0;}
.pc-box{border:1px solid var(--line); border-left:3px solid var(--accent); padding:28px 32px 30px; margin-bottom:56px;}
@media (max-width:600px){ .pc-box{padding:24px 20px 26px;} }
.pc-box p{color:var(--text-muted); font-size:.95rem; margin:0 0 18px;}
.pc-box .plan-opts{margin-bottom:0;}
.pc-box .plan-note{margin-top:16px; font-size:.9rem;}
.first-visit > .plan-opts{margin-top:16px;}
.pc-box .more-link{margin-top:18px;}
.price-group h3{font-family:var(--font-head); font-size:1.16rem; margin:0 0 14px;}
.price-note{color:var(--text-muted); font-size:.88rem; margin:12px 0 0; padding:0; list-style:none;}
.price-note li{margin:0 0 2px;}
.policy-box{background:var(--surface); border:1px solid var(--line); padding:28px 32px; font-size:.94rem; color:var(--text-muted);}
.policy-box p{margin:0 0 10px;}
.policy-box p:last-child{margin:0;}
.policy-box b{color:var(--text);}
@media (max-width:600px){ .policy-box{padding:22px 20px;} }

/* MENU LIST */
.menu-list{border-top:1px solid var(--line);}
.menu-item{display:grid; grid-template-columns:1fr auto; gap:6px 24px; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--line);}
.menu-item .name{font-weight:700; font-size:1rem;}
.menu-item .price{font-family:var(--font-head); font-weight:700; color:var(--accent); font-size:.98rem; text-align:right; white-space:nowrap;}
.menu-item .detail{grid-column:1 / -1; color:var(--text-muted); font-size:.94rem; line-height:1.9;}
@media (max-width:600px){
  .menu-item{grid-template-columns:1fr; row-gap:6px;}
  .menu-item .price{text-align:left;}
}

/* TESTIMONIALS */
.testi{display:grid; grid-template-columns:150px 1fr; gap:32px; padding:34px 0; border-top:1px solid var(--line); align-items:start;}
.testi.no-photo{grid-template-columns:1fr;}
.testi:last-child{border-bottom:1px solid var(--line);}
.testi img{width:150px; aspect-ratio:3/4; height:auto; object-fit:cover; border:1px solid var(--line); background:var(--surface);}
.testi .sport{margin:0 0 8px; color:var(--accent); font-weight:700; font-size:1rem; letter-spacing:.04em;}
.testi h3{margin:0 0 3px; font-size:1.14rem; font-family:var(--font-head);}
.testi .role{color:var(--text-muted); font-size:.85rem; margin:0 0 14px;}
.testi p{color:var(--text-muted); font-size:.98rem; margin:0 0 12px; max-width:40em;}
.testi p:last-child{margin-bottom:0;}
@media (max-width:520px){
  .testi{grid-template-columns:1fr; gap:18px; padding:28px 0;}
  .testi img{width:180px;}
}

/* NEWS */
.news-list{border-top:1px solid var(--line);}
.news-item{display:grid; grid-template-columns:110px 1fr; gap:18px; padding:18px 0; border-bottom:1px solid var(--line);}
.news-item .date{color:var(--accent); font-size:.85rem; font-family:var(--font-head);}
.news-item .desc{color:var(--text-muted); font-size:.98rem;}
@media (max-width:480px){ .news-item{grid-template-columns:1fr; gap:2px;} }
.small-note{color:var(--text-muted); font-size:.88rem; margin-top:16px;}

/* NOTE */
.note-box{background:var(--surface); border:1px solid var(--line); padding:40px; display:grid; grid-template-columns:1fr auto; gap:28px; align-items:center;}
@media (max-width:700px){ .note-box{grid-template-columns:1fr; padding:28px 22px;} }
.note-box h3{font-family:var(--font-head); font-size:1.28rem; margin:0 0 10px;}
.note-box p{color:var(--text-muted); margin:0; font-size:.97rem; max-width:34em;}

.note-cards:empty{display:none;}
.note-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:26px; margin-bottom:34px;}
@media (max-width:860px){ .note-cards{grid-template-columns:repeat(2,1fr); gap:22px;} }
@media (max-width:460px){ .note-cards{grid-template-columns:1fr; gap:24px;} }
.note-card{display:flex; flex-direction:column; gap:10px; text-decoration:none; color:inherit;}
.note-card .thumb{display:block; aspect-ratio:16/9; overflow:hidden; border:1px solid var(--line); background:var(--surface);}
.note-card img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease;}
.note-card:hover img{transform:scale(1.04);}
.note-card .date{color:var(--accent); font-size:.78rem; font-family:var(--font-head); letter-spacing:.04em;}
.note-card .title{font-size:.97rem; line-height:1.7; transition:color .2s;}
.note-card:hover .title{color:var(--accent);}

/* CONTACT / ACCESS */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:760px){ .contact-grid{grid-template-columns:1fr;} }
.contact-cell{background:var(--bg); padding:34px 32px; display:flex; flex-direction:column; align-items:flex-start;}
@media (max-width:600px){ .contact-cell{padding:26px 20px;} }
.contact-cell h3{font-family:var(--font-head); font-size:1.14rem; margin:0 0 12px;}
.contact-cell p{color:var(--text-muted); font-size:.96rem; margin:0 0 18px;}
.contact-cell .cta-row{margin-top:auto;}
.contact-cell .price-table{margin-bottom:18px;}
.access-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px;}
@media (max-width:760px){ .access-grid{grid-template-columns:1fr; gap:32px;} }
.access-grid address{font-style:normal; color:var(--text-muted); font-size:1rem;}
.access-grid .addr-name{color:var(--text); font-weight:700; margin-bottom:10px; display:block;}
.access-grid .map-link{color:var(--accent); text-decoration:none; display:inline-block; margin-top:14px;}
.access-grid .map-link:hover{text-decoration:underline;}
.access-grid ul{padding:0; margin:0; list-style:none; color:var(--text-muted); font-size:.98rem;}
.access-grid li{padding:9px 0; border-top:1px solid var(--line);}
.access-grid li:last-child{border-bottom:1px solid var(--line);}
.map-embed{margin-top:36px; border:1px solid var(--line); line-height:0;}
.map-embed iframe{display:block; width:100%; height:400px; border:0;}
@media (max-width:600px){ .map-embed iframe{height:300px;} }

/* PAGE PAGER + CTA BAND */
.pager{display:flex; justify-content:space-between; gap:16px; padding:28px 0; border-top:1px solid var(--line);}
.pager a{text-decoration:none; color:var(--text-muted); font-size:.92rem; display:flex; flex-direction:column; gap:2px; transition:color .2s;}
.pager a:hover{color:var(--text);}
.pager a small{font-size:.72rem; letter-spacing:.08em; color:var(--accent);}
.pager .next{text-align:right; margin-left:auto;}
.cta-band{background:var(--surface); border-top:3px solid var(--accent); padding:56px 0;}
.cta-band .wrap{display:grid; grid-template-columns:1fr auto; gap:28px; align-items:center;}
@media (max-width:760px){ .cta-band .wrap{grid-template-columns:1fr;} }
.cta-band h2{font-family:var(--font-head); font-weight:800; font-size:1.25rem; margin:0 0 8px;}
.cta-band p{color:var(--text-muted); font-size:.96rem; margin:0;}

/* FOOTER */
footer{border-top:1px solid var(--line); padding:48px 0; color:var(--text-muted); font-size:.9rem;}
.foot-row{display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px 24px; align-items:center;}
.foot-links{display:flex; flex-wrap:wrap; gap:8px 18px;}
.foot-links a{text-decoration:none; color:var(--text-muted);}
.foot-links a:hover{color:var(--text);}
.foot-nav{display:flex; flex-wrap:wrap; gap:6px 18px; margin-bottom:24px; padding-bottom:24px; border-bottom:1px solid var(--line);}
.foot-nav a{text-decoration:none; color:var(--text-muted); font-size:.88rem;}
.foot-nav a:hover{color:var(--text);}

/* ===== 日本語の改行を整える =====
   1文字だけ・「。」だけが最終行に残るのを防ぎ、文節の切れ目で折り返す */
body{
  line-break:strict;          /* 行頭に句読点や小さい「ゃゅょ」が来ないようにする */
  overflow-wrap:break-word;
}
p, li, dd, dt, address, td, th, figcaption, blockquote,
.lead, .desc, .detail, .page-lead, .plan-note, .section-sub, .small-note{
  text-wrap:pretty;           /* 最終行に1文字だけ残さない */
  word-break:auto-phrase;     /* 日本語を文節の区切りで折り返す */
}
h1, h2, h3, h4,
.plan-name, .index-card .ja, .service-index .t, .stat .k, .testi .sport{
  text-wrap:balance;          /* 見出しは各行の長さを揃えて折り返す */
  word-break:auto-phrase;
}

/* FAQ（開閉式） */
.faq{border-top:1px solid var(--line);}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{list-style:none; cursor:pointer; padding:20px 44px 20px 0; position:relative;
  font-weight:700; font-size:1.02rem; line-height:1.6; transition:color .2s;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--accent);}
.faq summary::after{content:""; position:absolute; right:8px; top:50%; width:13px; height:13px;
  border-right:2px solid var(--accent); border-bottom:2px solid var(--accent);
  transform:translateY(-70%) rotate(45deg); transition:transform .2s;}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg);}
.faq details[open] summary{color:var(--accent);}
.faq p{margin:0 0 22px; color:var(--text-muted); font-size:.97rem; max-width:40em;}
@media (max-width:600px){ .faq summary{padding:18px 38px 18px 0; font-size:.97rem;} }

/* 測定レポートのサンプル */
.report-sample{margin:26px 0 0;}
.report-sample figcaption{color:var(--text-muted); font-size:.9rem; margin-bottom:16px; line-height:1.7;}
.report-sample .tag{display:inline-block; background:var(--accent); color:#fff; font-size:.72rem;
  font-weight:700; letter-spacing:.1em; padding:3px 9px; margin-right:10px; vertical-align:2px;}
.report-sample .shots{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start;}
.report-sample .shots img{width:100%; height:auto; border:1px solid var(--line);}
@media (max-width:860px){
  /* スマホでは横に並べて指でスワイプ（縦に3枚積まない） */
  .report-sample .shots{grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:78%;
    overflow-x:auto; gap:14px; margin:0 -18px; padding:0 18px 10px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;}
  .report-sample .shots > a{scroll-snap-align:start;}
  .report-sample .shots::-webkit-scrollbar{height:3px;}
  .report-sample .shots::-webkit-scrollbar-thumb{background:var(--line);}
}
.report-sample .shots a{display:block; line-height:0; transition:opacity .2s;}
.report-sample .shots a:hover{opacity:.85;}

/* ===== スマホでの縦の長さを詰める ===== */
@media (max-width:700px){
  /* 目次は「番号＋項目名」だけにして、説明文は省く（一覧として選びやすくする） */
  .index-card .desc{display:none;}
  .index-card{padding:16px 0 17px; row-gap:2px; align-items:center;}
  .index-card::before{font-size:1.25rem;}
  .index-card .en{font-size:.66rem;}
  .index-card .ja{font-size:1.02rem;}
  /* 実績の数字を詰める */
  .stats{padding:44px 0 46px;}
  .stat-grid{gap:22px;}
  .stat .k{margin:8px 0 4px;}
  .stat .d{font-size:.88rem;}
  /* セクションの間隔 */
  section{padding:48px 0;}
  .section-head{margin-bottom:26px;}
  .hero{padding:40px 0 46px;}
  .hero .wrap{gap:32px;}
  .cta-band{padding:44px 0;}
  footer{padding:36px 0;}
}

/* noteの最新記事は、スマホでは横に並べて指でスワイプ（縦に4つ積まない） */
@media (max-width:700px){
  .note-cards{grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:64%;
    overflow-x:auto; gap:14px; margin:0 -18px 26px; padding:0 18px 10px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;}
  .note-cards::-webkit-scrollbar{height:3px;}
  .note-cards::-webkit-scrollbar-thumb{background:var(--line);}
  .note-card{scroll-snap-align:start;}
  .note-card .title{font-size:.9rem;}
  .note-box{padding:24px 20px;}
  .note-box h3{font-size:1.12rem;}
}
/* スマホではヒーロー写真を横長に切って高さを抑える */
@media (max-width:700px){
  .hero-portrait{max-width:100%; aspect-ratio:4/3;}
  .hero-portrait img{object-position:center 62%;}
}
