
:root {
  --cr: #ffffff;
  --ca: #ddbd73;
  --cal: #e9d4a0;
  --cd: #2c2f35;
  --cm: #5c6350;
  --cb: #dcdccb;
  --fr: 'Hiragino UD Maru Gothic StdN','ヒラギノUD丸ゴ StdN','Zen Maru Gothic','Hiragino Maru Gothic ProN','Noto Sans CJK JP','Noto Sans JP',sans-serif;
  --fe: 'Proxima Soft','Quicksand','Nunito',sans-serif;
  --nh: 56px;
}

html.fonts-loading .hcta-btn,
html.fonts-loading .hc-main,
html.fonts-loading .hc-sub {
  visibility:hidden;
}
html.fonts-loaded .hcta-btn,
html.fonts-loaded .hc-sub {
  visibility:visible;
  animation:fadeInVert .5s ease both;
}
html.fonts-loaded .hc-main { visibility:visible; }
@keyframes fadeInVert {
  from { opacity:0; }
  to   { opacity:1; }
}

html.fonts-loaded .hc-line {
  animation:fadeInVert .7s ease both;
}
html.fonts-loaded .hc-line:nth-child(1) { animation-delay:0s; }
html.fonts-loaded .hc-line:nth-child(2) { animation-delay:.22s; }
html.fonts-loaded .hc-line:nth-child(3) { animation-delay:.44s; }

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:15px; scroll-behavior:smooth; overflow-x:hidden; }
body {
  font-family:var(--fr);
  background:#33392c;
  color:var(--cd);
  overflow-x:hidden;
  cursor:none;
}

@supports (overflow-x:clip) {
  html { overflow-x:clip; }
  body { overflow-x:clip; }
}
img,video,iframe { max-width:100%; display:block; }

body { word-break:keep-all; overflow-wrap:break-word; }

.brsp { display:none; }
@media(max-width:640px){ .brsp { display:block; content:""; } }

.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

#cd {
  width:14px; height:14px;
  background:var(--ca);
  border:1.5px solid var(--ca);
  border-radius:6px;
  position:fixed; top:0; left:0; pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%);
  transition:width .4s ease, height .4s ease, background .4s ease, border-radius .4s ease, border-color .4s ease;
}
#cd.h {
  width:40px; height:40px;
  background:transparent;
  border-radius:10px;
}

#cd.h-inv { border-color:#fff; }

#cr { display:none; }
@media(max-width:767px){ body{cursor:auto;} #cd,#cr{display:none;} }

#pbg {
  position:fixed; inset:0; z-index:0; overflow:hidden;
}
.ps {
  position:absolute; inset:0;
  background-size:cover; background-position:center center;
  background-repeat:no-repeat;
  opacity:0;
  transition:opacity 1.6s ease-in-out;
  filter:brightness(.48) saturate(0.9);
  will-change:opacity;
}
.ps.on { opacity:1; }

#p0 { background-color:#5b4632; background-image:url('../images/suwa_lake.jpg?v=20260903'); }
#p1 { background-color:#4a3c2c; background-image:url('../images/service_nari.jpg?v=20260903'); }
#p2 { background-color:#3f4538; background-image:url('../images/service_nari.jpg?v=20260903'); }
#p3 { background-color:#574838; background-image:url('../images/service_hito.jpg?v=20260903'); }
#p4 { background-color:#403428; background-image:url('../images/suwa_lake.jpg?v=20260903'); }
#p5 { background-color:#3a3f30; background-image:url('../images/ito_wide_01.jpg?v=20260903'); }
#p6 { background-color:#463c2e; background-image:url('../images/nari_02_bg.jpg?v=20260903'); }

#layer { position:relative; z-index:10; }

.fi {
  opacity:0;
  transform:translateY(22px);
  transition:opacity .75s ease, transform .75s ease;
}
.fi.in  { opacity:1; transform:translateY(0); }
.fi.d1  { transition-delay:.10s; }
.fi.d2  { transition-delay:.20s; }
.fi.d3  { transition-delay:.30s; }

#nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  height:var(--nh);
  transition:background .4s, backdrop-filter .4s, box-shadow .4s;
}
#nav.t  { background:transparent; }
#nav.s  {
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 14px rgba(51,57,44,.09);
}
#nav.t .nl,#nav.t .logo           { color:var(--cd); }
#nav.t .logo em                    { color:var(--ca); }
#nav.t .lb                         { border-color:var(--cm); color:var(--cm); }
#nav.s .nl,#nav.s .logo           { color:var(--cd); }
#nav.s .logo em                    { color:var(--ca); }
#nav.s .lb                         { border-color:var(--cm); color:var(--cm); }

.ni { max-width:none; margin:0; height:100%; padding:0 clamp(1.2rem,4vw,3.5rem); display:flex; align-items:center; justify-content:space-between; }
.logo { font-family:var(--fr); font-weight:700; font-size:1.35rem; letter-spacing:.08em; text-decoration:none; white-space:nowrap; margin-right:clamp(1.2rem,3vw,2.5rem); }
.logo em { font-style:normal; font-family:var(--fe); font-size:.85rem; font-weight:400; margin-left:.4em; opacity:.75; }
.nl  { font-family:var(--fe); font-size:.9rem; letter-spacing:.07em; text-decoration:none; white-space:nowrap; transition:color .2s; cursor:none; }
.nl:hover { color:var(--ca)!important; }
.nl-service-wrap { display:inline-flex; align-items:center; gap:.4rem; }
.nl-sub { font-size:.72rem; letter-spacing:.02em; white-space:nowrap; }
.nl-sub a { color:var(--cm); text-decoration:none; transition:color .2s; }
.nl-sub a:hover { color:var(--ca)!important; }
.nl-sub-sep { color:var(--cb); margin:0 .1rem; }
@media(max-width:1350px){ .nl-sub{display:none;} }
.npc { display:flex; align-items:center; gap:clamp(1rem,2.2vw,2rem); }
@media(max-width:1199px){ .npc{display:none;} }

.lb { font-family:var(--fe); font-size:.66rem; letter-spacing:.1em; padding:3px 10px; border-radius:99px; border:1px solid; background:transparent; cursor:none; transition:background .2s,color .2s,border-color .2s; }

@media (hover:hover) and (pointer:fine) {
  .lb:hover { background:var(--ca); border-color:var(--ca); color:#fff; }

  .lb.nl:hover { color:var(--cd)!important; }
}

.hbg { width:38px; height:38px; display:flex; flex-direction:column; justify-content:center; align-items:flex-end; gap:5px; cursor:none; background:none; border:none; flex-shrink:0; }
.hbg span { display:block; height:1.5px; background:currentColor; transition:all .3s; transform-origin:right center; }
.hbg span:nth-child(1) { width:22px; }
.hbg span:nth-child(2) { width:16px; }
.hbg span:nth-child(3) { width:22px; }
.hbg.o span:nth-child(1) { transform:translateY(6.5px) rotate(-45deg); width:22px; }
.hbg.o span:nth-child(2) { opacity:0; }
.hbg.o span:nth-child(3) { transform:translateY(-6.5px) rotate(45deg); width:22px; }
.nsp { display:none; align-items:center; gap:.5rem; }
@media(max-width:1199px){ .nsp{display:flex;} }

#mo {
  position:fixed; inset:0; z-index:300;
  background:rgba(22,26,18,.97);
  display:flex; flex-direction:column; justify-content:safe center; align-items:center;
  overflow-y:auto;
  padding:4.5rem 1rem 2rem;
  opacity:0; pointer-events:none;
  transition:opacity .45s ease;
}
#mo.o { opacity:1; pointer-events:all; }

.ml {
  display:block;
  font-family:var(--fr); font-weight:500;
  font-size:clamp(1.05rem, min(4vw, 4.2vh), 1.9rem);
  color:var(--cr); text-decoration:none;
  letter-spacing:.05em;

  margin:.45em 0;
  opacity:0; transform:translateY(12px);
  transition:color .2s, opacity .4s, transform .4s;
}
#mo.o .ml { opacity:1; transform:translateY(0); }
.ml:hover { color:var(--cal); }
.ml-en { display:block; font-family:var(--fe); font-size:.42em; opacity:.4; margin-bottom:.4em; letter-spacing:.18em; font-weight:500; }

.ml-sub {
  font-family:var(--fe);
  font-size:clamp(.78rem, min(2.4vw, 2.6vh), .9rem);
  color:rgba(255,255,255,.55);
  margin:-.3em 0 .5em;
  opacity:0; transform:translateY(12px);
  transition:opacity .4s, transform .4s;
}
#mo.o .ml-sub { opacity:1; transform:translateY(0); }
.ml-sub a { color:inherit; text-decoration:none; transition:color .2s; }
.ml-sub a:hover { color:var(--cal); }
.ml-sub-sep { margin:0 .3em; opacity:.5; }

.mx {
  position:fixed; top:1rem; right:1rem;
  z-index:301;
  background:rgba(255,255,255,.08);
  border:none; border-radius:50%;
  width:40px; height:40px;
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.75);
  cursor:none; padding:8px;
  transition:color .2s, background .2s;
}
@media (hover:hover) and (pointer:fine) {
  .mx:hover { color:var(--cr); background:rgba(255,255,255,.16); }
}

.mx-fallback { font-size:1.6rem; line-height:1; font-weight:300; }

.btn { display:inline-flex; align-items:center; gap:.4rem; padding:.62rem 1.35rem; border-radius:99px; font-family:var(--fr); font-size:.86rem; font-weight:700; letter-spacing:.06em; text-decoration:none; cursor:none; white-space:nowrap; border:none; }

/* ナリトヒトの3つの場所セクション限定でCTAを大きくする（他セクションのbtnには影響させない） */
.svc-panel .btn,
.svc-panel .svc-info-pill {
  font-size:1rem;
  padding:.78rem 1.6rem;
}
.svc-panel .svc-info-pill i,
.svc-panel .btn i { width:14px; height:14px; }

.svc-info-pill {
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  padding:.62rem 1.35rem; border-radius:99px;
  font-family:var(--fr); font-size:.86rem; font-weight:500; letter-spacing:.06em;
  color:var(--ca); background:rgba(197,168,102,.08);
  white-space:nowrap;
  margin-bottom:.85rem;
}
.svc-info-pill i { width:12px; height:12px; flex-shrink:0; }

.ito-btns .btn i { flex-shrink:0; }
@media(max-width:480px){
  .svc-panel .ito-btns .btn {
    font-size:clamp(.62rem, 3vw, .86rem);
    padding:.62rem clamp(.6rem, 3vw, 1.35rem);
    gap:.3rem;
  }
}

.btn-beige {
  background:var(--ca);
  color:#fff;
  box-shadow:0 6px 18px rgba(197,168,102,.28);
  transition:background .2s;
}
.btn-dark {
  background:transparent;
  border:1.5px solid rgba(255,255,255,.4);
  color:rgba(255,255,255,.88);
  transition:background .2s, border-color .2s, color .2s;
}

@media (hover:hover) and (pointer:fine) {
  .btn-beige:hover { background:var(--cd); }
  .btn-dark:hover { background:var(--ca); border-color:var(--ca); color:#fff; }
  /* お知らせ・genkei一覧ページの「トップページに戻る」ボタン限定：
     背景は黄色のまま、ホバーで文字色だけ濃色に変える */
  .sub-main .btn-beige:hover { background:var(--ca); color:var(--cd); }
}

.sg { background:rgba(255,255,255,.91); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }

.sd { background:rgba(54,57,63,.6); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }

/* お知らせセクション限定：元のグレーがかった見え方が競合サイトと似ていたため、
   #ddbd73系の暖色（淡いイエロー）に変更。他の.sgセクション（About/メンバー/
   アクセス）には影響させない。よくあるご質問も同じ色に統一 */
#news.sg, #faq.sg { background:rgba(247,238,220,.95); }
#works.sd { background:rgba(247,238,220,.88); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }

.si { max-width:1080px; margin:0 auto; padding:clamp(3rem,7vw,5.5rem) clamp(1.1rem,5vw,2.5rem); }

.access-section {
  position:relative;
  overflow-x:clip;
  background:rgba(255,255,255,.97);
}
.access-section::before {
  content:'';
  position:absolute;
  top:0; left:50%;
  transform:translateX(-50%);
  width:min(92%, 1080px);
  height:1px;
  background:linear-gradient(to right, transparent, var(--cb) 12%, var(--cb) 88%, transparent);
  pointer-events:none;
}
.access-section .si { position:relative; z-index:1; }

.slb { font-family:var(--fe); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; opacity:.45; margin-bottom:.85rem; }
#nl, #ns { margin-bottom:1.2rem; }
.stt { font-family:var(--fr); font-weight:700; line-height:1.25; letter-spacing:.02em; }
.sdv { width:28px; height:2px; background:var(--ca); border-radius:2px; margin:.85rem 0 1.4rem; }

#hero {
  min-height:100svh;
  position:relative;
  background:#ffffff;
  display:grid;
  grid-template-columns:1fr minmax(380px,52vw) 1fr;
  align-items:center;
  padding:var(--nh) clamp(1.2rem,4vw,3.5rem) 2rem;
  overflow:hidden;
  gap:1.5rem;
}

.hero-left {
  display:flex; flex-direction:column; gap:1.6rem;
  padding-top:2.5rem;
  z-index:5;
  min-width:0;
}
.hero-logo-mark { width:min(85%, 230px); height:auto; margin-bottom:.4rem; }
.hero-nav { display:flex; flex-direction:column; gap:.55rem; }
.hero-nav a {
  font-family:var(--fr); font-size:.95rem; font-weight:500;
  color:var(--cd); text-decoration:none; letter-spacing:.04em;
  display:flex; align-items:center; gap:.4rem; cursor:none;
  transition:color .2s, gap .2s; width:fit-content;
}
.hero-nav a::before { content:'›'; color:var(--ca); font-size:1rem; line-height:1; }
.hero-nav a:hover { color:var(--ca); gap:.6rem; }
@media(max-width:1023px){ .hero-left { display:none; } }

.hero-photos {
  position:relative;
  width:100%;
  aspect-ratio:1/1;
  max-height:82vh;
  justify-self:center;
}
.hero-photo-main {
  position:absolute;
  inset:0;
  border-radius:32px;
  overflow:hidden;
  box-shadow:0 18px 50px rgba(51,57,44,.18);
}
.hpm-slide {
  position:absolute; inset:0;
  opacity:0;
  transition:opacity 1.6s ease-in-out;
  overflow:hidden;
  background:#8a7860;
}
.hpm-slide img {
  width:100%; height:100%; object-fit:cover; display:block;
  transform:scale(1.04);
  transition:transform 8s ease-out;
}
.hpm-slide.on { opacity:1; }
.hpm-slide.on img { transform:scale(1); }

.hero-logo-sp { display:none; }

.hero-cta {
  position:absolute;
  top:calc(var(--nh) + 1.4rem);
  right:clamp(1.2rem,4vw,3.5rem);
  display:flex; flex-direction:column; align-items:flex-end;
  gap:.9rem; z-index:5;
}
.hcta-btn {
  writing-mode:vertical-rl;
  text-orientation:upright;
  background:var(--ca);
  color:#fff;
  border-radius:99px;
  width:52px;
  min-height:clamp(70px, 16vh, 150px);
  display: flex;
  text-align:center;
  font-family:var(--fr);
  font-size:.92rem;
  font-weight:700;
  letter-spacing:.12em;
  padding:1rem 0;
  text-decoration:none;
  cursor:none;
  transition:background .2s;
  box-shadow:0 6px 18px rgba(197,168,102,.28);
  align-content: center;
  justify-content: center;
  align-items: center;
}
.hcta-btn span[data-lang="ja"] { display:inline-block; }
.hcta-btn span[data-lang="en"] { display:none; text-orientation:mixed; }
body.le .hcta-btn span[data-lang="ja"] { display:none; }
body.le .hcta-btn span[data-lang="en"] { display:inline-block; }
.hcta-sub { background:var(--cr); color:var(--cd); border:1.5px solid var(--cd); box-shadow:0 6px 18px rgba(51,57,44,.15); min-height:clamp(95px, 23vh, 210px); }
@media (hover:hover) and (pointer:fine) {
  .hcta-btn:hover { background:var(--cd); }
  .hcta-sub:hover { background:var(--cd); color:var(--cr); }
}

.hero-copy {
  position:absolute;
  right:clamp(1.2rem,4vw,3.5rem);
  bottom:clamp(1.5rem,4vh,3rem);
  display:flex; gap:1.1rem;
  z-index:4;
}
.hc-main {
  writing-mode:vertical-rl;
  font-family:var(--fr); font-weight:700;
  font-size:clamp(1.1rem, min(3.4vw, 2.7vh), 2.3rem);
  color:var(--cd); line-height:1.7;
  letter-spacing:.08em;
}
.hc-line {
  display:block;
  margin:0 .1rem;
}
.hc-sub {
  writing-mode:vertical-rl;
  font-size:.78rem; color:var(--cm);
  line-height:1.9; letter-spacing:.06em;
  border-left:1px solid var(--cb);
  padding-left:.9rem;
}
@media(max-width:1023px){
  #hero {
    display:flex;
    flex-direction:column;
    align-items:center;
    grid-template-columns:1fr;
    min-height:100svh;
    height:auto;
    padding-top:calc(var(--nh) + 1rem);
    padding-bottom:1.5rem;
  }
  .hero-photos {
    position:relative;
    width:100%;
    height:0;
    padding-top:100%;
    aspect-ratio:1/1;
    flex:none;
    max-height:none;
    margin:1.2rem 0 1.5rem;
  }
  .hero-photo-main {
    clip-path: polygon(160px 0, calc(100% - 32px) 0, calc(100% - 23.72px) 1.09px, calc(100% - 16.00px) 4.29px, calc(100% - 9.37px) 9.37px, calc(100% - 4.29px) 16.00px, calc(100% - 1.09px) 23.72px, 100% 32px, 100% calc(100% - 32px), calc(100% - 1.09px) calc(100% - 23.72px), calc(100% - 4.29px) calc(100% - 16.00px), calc(100% - 9.37px) calc(100% - 9.37px), calc(100% - 16.00px) calc(100% - 4.29px), calc(100% - 23.72px) calc(100% - 1.09px), calc(100% - 32px) 100%, 32px 100%, 23.72px calc(100% - 1.09px), 16.00px calc(100% - 4.29px), 9.37px calc(100% - 9.37px), 4.29px calc(100% - 16.00px), 1.09px calc(100% - 23.72px), 0 calc(100% - 32px), 0 160px, 144.00px 160.00px, 148.14px 159.45px, 152.00px 157.86px, 155.31px 155.31px, 157.86px 152.00px, 159.45px 148.14px, 160.00px 144.00px, 160px 0);
  }

  .hero-logo-sp {
    display:block;
    position:absolute;
    top:15px; left:15px;
    width:130px;
    z-index:5;
  }

  .hero-cta {
    position:static;
    display:flex;
    flex-direction:row;
    justify-content:center;
    width:100%;
    max-width:420px;
    gap:.6rem;
    order:2;
    z-index:6;
  }
  .hcta-btn {
    writing-mode:horizontal-tb;
    width:auto;
    flex:1;
    min-height:0;
    padding:.6rem .8rem;
    font-size:.82rem;
    letter-spacing:.08em;
  }
  .hcta-sub { min-height:0; }

  .hero-copy {
    position:static;
    display:flex;
    justify-content:center;
    width:100%;
    max-width:420px;
    order:1;
    margin-bottom:1.1rem;
  }
}
@media(max-width:767px){
  .hc-main {
    writing-mode:horizontal-tb;
    font-size:1.35rem;
    line-height:1.55;
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:0;
  }
  .hc-line { margin:0; padding:0; }
  .hc-sub { display:none; }

  .hero-cta {
    flex-direction:row;
  }
}
@media(max-width:480px){
  .hero-photo-main { clip-path: polygon(135px 0, calc(100% - 26px) 0, calc(100% - 19.27px) 0.89px, calc(100% - 13.00px) 3.48px, calc(100% - 7.62px) 7.62px, calc(100% - 3.48px) 13.00px, calc(100% - 0.89px) 19.27px, 100% 26px, 100% calc(100% - 26px), calc(100% - 0.89px) calc(100% - 19.27px), calc(100% - 3.48px) calc(100% - 13.00px), calc(100% - 7.62px) calc(100% - 7.62px), calc(100% - 13.00px) calc(100% - 3.48px), calc(100% - 19.27px) calc(100% - 0.89px), calc(100% - 26px) 100%, 26px 100%, 19.27px calc(100% - 0.89px), 13.00px calc(100% - 3.48px), 7.62px calc(100% - 7.62px), 3.48px calc(100% - 13.00px), 0.89px calc(100% - 19.27px), 0 calc(100% - 26px), 0 135px, 122.00px 135.00px, 125.36px 134.56px, 128.50px 133.26px, 131.19px 131.19px, 133.26px 128.50px, 134.56px 125.36px, 135.00px 122.00px, 135px 0); }
  .hero-logo-sp { width:105px; top:12px; left:12px; }
  .hcta-btn { padding:.55rem .6rem; font-size:.78rem; }
}

.sch { position:absolute; bottom:1.2rem; left:50%; transform:translateX(-50%); writing-mode:vertical-rl; font-family:var(--fe); font-size:.58rem; color:var(--cm); letter-spacing:.22em; display:flex; align-items:center; gap:.38rem; z-index:5; }
.scl { width:1px; height:36px; background:linear-gradient(to bottom,transparent,var(--cm)); animation:scla 2.4s ease-in-out infinite; }
@keyframes scla { 0%,100%{opacity:.35;transform:scaleY(1);} 50%{opacity:1;transform:scaleY(.6) translateY(12px);} }
@media(max-width:1023px){ .sch { display:none; } }

.ni2 { padding:.95rem 0; border-bottom:1px solid var(--cb); transition:padding-left .2s; }
.ni2:hover { padding-left:.35rem; }
.ni2-link { display:flex; align-items:center; gap:.8rem; text-decoration:none; cursor:pointer; }
.ni2-thumb {
  flex-shrink:0; width:56px; height:56px; border-radius:10px; overflow:hidden;
  background:var(--cb); display:flex; align-items:center; justify-content:center;
}
.ni2-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.ni2-thumb-fallback { font-family:var(--fr); font-weight:700; font-size:1.1rem; color:var(--cm); }
.ni2-body { flex:1; min-width:0; }
.ntg { font-size:.6rem; padding:2px 8px; border-radius:99px; }
.ti { background:#e8f4e8; color:#3a7a3a; }
.te { background:#fde8d8; color:#b85020; }
.tc { background:#f0e8d0; color:#8a6020; }
.tr { background:#e8e0f0; color:#5a3a8a; }

.work-cat.wp { background:#e0e8f5; color:#30508a; }
.work-cat.wd { background:#fde8d8; color:#b85020; }
.work-cat.wt { background:#e8f4e8; color:#3a7a3a; }
.work-cat.wc { background:#f5ead0; color:#8a5a20; }
.work-cat.we { background:#fde0e0; color:#b83030; }
.work-cat.wo { background:#ece8f0; color:#6a5a8a; }

.ev-slider {
  position:relative;
  display:flex; align-items:flex-start; gap:.6rem;
  margin-bottom:1.6rem;
}

#ev-slider {
  width:100vw;
  max-width:1320px;
  margin-left:50%;
  transform:translateX(-50%);
  padding:0 clamp(1.2rem,4vw,3rem);
}
.ev-slider-track {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:var(--ev-card-width, min(340px, 82vw));
  align-items:start;
  justify-content:center;
  gap:1.4rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:.3rem .1rem 1rem;
  flex:1;
  min-width:0;
  -ms-overflow-style:none;
  scrollbar-width:none;
}
.ev-slider-track::-webkit-scrollbar { display:none; }

.works-header { margin-bottom:2.2rem; text-align:center; }
.works-header-inner {
  max-width:640px;
  margin:0 auto;
}
.works-header-logo {
  width:48px;
  margin:1.3rem auto 0;
  display:block;
}
.ev-empty {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:200px;
  max-width:520px;
  margin:0 auto 1.6rem;
  padding:2rem 1.5rem;
  border:1.5px dashed rgba(255,255,255,.22);
  border-radius:20px;
}

.ev-nav {
  flex-shrink:0;
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.85);
  display:flex; align-items:center; justify-content:center;
  cursor:none;
  transition:background .2s, border-color .2s;

  margin-top:calc(.3rem + min(340px, 400px) * .5 - 22px);
}
.ev-nav i { width:18px; height:18px; }
@media (hover:hover) and (pointer:fine) {
  .ev-nav:hover { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.6); }
}
@media (max-width:640px){

  .ev-nav {
    display:flex;
    position:absolute;
    top:0;
    z-index:5;
    width:36px; height:36px;
    background:rgba(35,32,28,.55);
    border-color:rgba(255,255,255,.5);
    backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);

    margin-top:calc(.3rem + min(340px, 82vw) * .5 - 18px);
  }
  .ev-nav i { width:16px; height:16px; }
  .ev-nav-prev { left:.5rem; }
  .ev-nav-next { right:.5rem; }
}

.ev-card {
  scroll-snap-align:start;
  min-width:0;
  display:block;
  text-decoration:none;
  cursor:none;
}
.ev-card-media {
  position:relative;
  height:0;
  padding-top:100%;
  aspect-ratio:1/1;
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,.08);
  margin-bottom:.9rem;
}
.ev-card-media img {
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover; object-position:center top; display:block;
  transition:transform .4s ease;
}
@media (hover:hover) and (pointer:fine) {
  .ev-card:hover .ev-card-media img { transform:scale(1.05); }
}
.ev-card-badge {
  position:absolute; top:.9rem; right:.9rem;
  background:var(--cr);
  color:var(--cd);
  font-family:var(--fr);
  font-size:.68rem;
  font-weight:700;
  line-height:1.5;
  padding:.5rem .55rem;
  border-radius:6px;
  writing-mode:vertical-rl;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
}
.ev-card-title {
  margin-bottom:.35rem;
  font-family:var(--fr);
  font-weight:700;
  font-size:1.02rem;
  color:var(--cr);
  line-height:1.5;
  overflow-wrap:break-word;
  word-break:break-word;
}
.ev-card-desc {
  margin-bottom:.4rem;
  font-size:.82rem; line-height:1.65; color:rgba(255,255,255,.6);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}
.ev-card-meta {
  margin-bottom:.7rem;
  display:flex; align-items:center; gap:.6rem;
  font-size:.78rem;
  color:rgba(255,255,255,.6);
}
.ev-card-meta > * { min-width:0; overflow-wrap:break-word; word-break:break-word; }
.ev-card-meta time { font-family:var(--fe); }
.ev-card-more {
  display:inline-flex; align-items:center; gap:.3rem;
  font-family:var(--fe);
  font-size:.72rem;
  letter-spacing:.1em;
  color:var(--cal);
  transition:gap .2s;
}
@media (hover:hover) and (pointer:fine) {
  .ev-card:hover .ev-card-more { gap:.5rem; }
}

.staff-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, 300px);
  justify-content:center;
  gap:.9rem 1.8rem;
}
.staff-card { width:100%; }

@media(min-width:1180px){
  #staff-list.staff-grid {
    gap:.9rem 4rem;
    width:100vw;
    max-width:1680px;

    margin-left:50%;
    transform:translateX(-50%);
    padding:0 clamp(1.2rem,4vw,3rem);
  }
}
@media(max-width:640px){
  .staff-grid { grid-template-columns:repeat(2, 1fr); max-width:460px; margin:0 auto; gap:.8rem 1rem; }
}

.staff-card {
  display:block;
  background:none; border:none; padding:0;
  text-align:left; cursor:pointer;
  font-family:inherit;
  width:100%;
}
.staff-photo {
  position:relative;
  width:100%;
  height:0;
  padding-top:66.67%;
  aspect-ratio:3/2;
  border-radius:10px;
  overflow:hidden;
  background:var(--cb);
  margin-bottom:.7rem;
}
.staff-photo img {
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transition:transform .4s ease;
}
@media (hover:hover) and (pointer:fine) {
  .staff-card:hover .staff-photo img { transform:scale(1.04); }
}
.staff-info { text-align:left; }
.staff-name {
  font-family:var(--fr); font-weight:700; font-size:.95rem;
  color:var(--cd); margin-bottom:.25rem; line-height:1.4;
  overflow-wrap:break-word;
  word-break:break-word;
}
.staff-role {
  font-size:.72rem; line-height:1.5; color:var(--cm);

  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:calc(1.5em * 2);
}

.staff-modal {
  position:fixed; inset:0; z-index:500;
  opacity:0; pointer-events:none;
  transition:opacity .3s ease;
}
.staff-modal.open { opacity:1; pointer-events:auto; }
.staff-modal-backdrop {
  position:absolute; inset:0;
  background:rgba(20,24,16,.72);
}
.staff-modal-box {
  position:relative;
  max-width:920px;
  width:calc(100% - 2rem);
  max-height:calc(100svh - 3rem);
  margin:1.5rem auto;
  background:var(--cr);
  border-radius:20px;
  overflow:hidden auto;
  display:flex;
  flex-direction:column;
  transform:translateY(16px) scale(.98);
  transition:transform .3s ease;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
}
.staff-modal.open .staff-modal-box { transform:translateY(0) scale(1); }

@media(max-width:767px){
  .staff-modal-box {
    position:absolute;
    top:50%; left:50%;
    margin:0;
    transform:translate(-50%,calc(-50% + 16px)) scale(.98);
  }
  .staff-modal.open .staff-modal-box { transform:translate(-50%,-50%) scale(1); }
}
@media(min-width:768px){
  .staff-modal-box {
    flex-direction:row;
    margin:auto;
    top:50%; left:50%;
    position:absolute;
    min-height:400px;
    transform:translate(-50%,calc(-50% + 16px)) scale(.98);
  }
  .staff-modal.open .staff-modal-box { transform:translate(-50%,-50%) scale(1); }
}
.staff-modal-close {
  position:absolute; top:.9rem; right:.9rem; z-index:2;
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,.85);
  border:none; display:flex; align-items:center; justify-content:center;
  color:var(--cd); cursor:pointer;
}
.staff-modal-close i { width:18px; height:18px; }
.staff-modal-photo {
  flex-shrink:0;
  width:100%;
  aspect-ratio:4/3;
}
@media(min-width:768px){
  .staff-modal-photo { width:44%; aspect-ratio:auto; height:auto; }
}
.staff-modal-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.staff-modal-body {
  padding:1.8rem clamp(1.3rem,4vw,2.4rem);
  overflow-y:auto;
  min-width:0;
}
.staff-modal-role {
  font-family:var(--fe); font-size:.72rem; letter-spacing:.12em;
  color:var(--ca); text-transform:uppercase; margin-bottom:.5rem;
}
.staff-modal-name {
  font-family:var(--fr); font-weight:700; font-size:1.5rem;
  color:var(--cd); margin-bottom:1.2rem;
  overflow-wrap:break-word;
  word-break:break-word;
}
.staff-modal-bio {
  font-size:.92rem; line-height:2; color:var(--cm);
  overflow-wrap:break-word;
  word-break:break-word;
}

#works-list {
  display:grid;
  grid-template-columns:repeat(auto-fit, 240px);
  justify-content:center;
  gap:2.8rem 1.8rem;

  width:100vw;
  max-width:1680px;
  margin-left:50%;
  transform:translateX(-50%);
  padding:0 clamp(1.2rem,4vw,3rem);
}
@media(min-width:1180px){
  #works-list { gap:2.8rem 4rem; }
}

.works-slider { position:relative; }

.wk-nav {
  display:none;
  cursor:pointer;
}
.wk-nav i { width:16px; height:16px; }

@media(max-width:640px){

  #works-list {
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    gap:0;
    width:100%;
    max-width:100%;
    margin-left:0;
    transform:none;
    padding:0;
    -ms-overflow-style:none;
    scrollbar-width:none;
  }
  #works-list::-webkit-scrollbar { display:none; }
  #works-list .work-card {
    flex:0 0 100%;
    scroll-snap-align:start;
  }

  .wk-nav {
    display:flex;
    position:absolute;
    top:0;
    z-index:5;
    width:36px; height:36px;
    border-radius:50%;
    align-items:center; justify-content:center;
    background:rgba(35,32,28,.55);
    border:1px solid rgba(255,255,255,.5);
    color:rgba(255,255,255,.9);
    backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);

    margin-top:calc(var(--wk-card-width, 82vw) * .625 - 18px);
  }
  .wk-nav-prev { left:.3rem; }
  .wk-nav-next { right:.3rem; }
}

.work-card {
  display:block; text-decoration:none;
  border-radius:12px;
  overflow:hidden;
  transition:transform .25s ease;

  width:100%;
  min-height:350px;
}
@media (hover:hover) and (pointer:fine) {
  .work-card:hover { transform:translateY(-4px); }
}
.work-thumb {
  position:relative;
  height:0;
  padding-top:125%;
  aspect-ratio:4/5;
  background:rgba(255,255,255,.08);
  overflow:hidden;
  border-radius:12px;
  margin-bottom:.8rem;
}
.work-thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; display:block; transition:transform .35s ease; }
@media(max-width:640px){
  .work-thumb { margin-bottom:8px; }
}
@media (hover:hover) and (pointer:fine) {
  .work-card:hover .work-thumb img { transform:scale(1.05); }
}
.work-thumb-fallback {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--fr); font-weight:700; font-size:2.4rem;
  color:rgba(255,255,255,.25);
}
.work-info { padding:0 .1rem; }
.work-title {
  font-family:var(--fr); font-weight:700; font-size:.98rem;
  color:var(--cr); margin-bottom:.35rem; line-height:1.5;
  overflow-wrap:break-word;
  word-break:break-word;
}
.work-desc {
  font-size:.82rem; line-height:1.65; color:rgba(255,255,255,.6);
  margin-bottom:.5rem;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}
.work-cat {
  display:inline-block;
  font-family:var(--fe); font-size:.62rem; letter-spacing:.06em;
  padding:2px 8px; border-radius:99px;
  background:rgba(255,255,255,.12); color:rgba(255,255,255,.7);
}

/* デザインと企画genkei 一覧ページ・トップページ両方（白背景）用の配色上書き */
body.sub-page .work-thumb, #works .work-thumb { background:var(--cb); }
body.sub-page .work-thumb-fallback, #works .work-thumb-fallback { color:var(--cm); }
body.sub-page .work-title, #works .work-title { color:var(--cd); }
body.sub-page .work-desc, #works .work-desc { color:var(--cm); }
body.sub-page .work-cat:not(.wp):not(.wd):not(.wt):not(.wc):not(.we):not(.wo),
#works .work-cat:not(.wp):not(.wd):not(.wt):not(.wc):not(.we):not(.wo) { background:rgba(44,47,53,.06); color:var(--cm); }

.works-full-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, 300px);
  justify-content:center;
  gap:.9rem 1.6rem;
  margin-bottom:2.4rem;
}

.pagination {
  display:flex; align-items:center; justify-content:center;
  gap:.5rem;
}
.pg-num, .pg-arrow {
  font-family:var(--fe);
  font-size:.85rem;
  width:36px; height:36px;
  border-radius:50%;
  border:1.5px solid var(--cb);
  background:transparent;
  color:var(--cm);
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all .2s;
}
.pg-num.active { background:var(--ca); border-color:var(--ca); color:#fff; }
.pg-arrow i { width:15px; height:15px; }
.pg-arrow:disabled { opacity:.3; cursor:default; }
@media (hover:hover) and (pointer:fine) {
  .pg-num:not(.active):hover { border-color:var(--ca); color:var(--ca); }
  .pg-arrow:not(:disabled):hover { border-color:var(--ca); color:var(--ca); }
}

.faq-item { border:1px solid var(--cb); border-radius:12px; overflow:hidden; min-width:0; }
.faq-q {
  width:100%; display:flex; align-items:center; justify-content:space-between;
  padding:1rem 1.2rem; background:none; border:none; cursor:pointer;
  font-size:1rem; font-weight:500; color:var(--cd); text-align:left;
  font-family:var(--fr);
  gap:.8rem;
}
.faq-q-text { min-width:0; overflow-wrap:break-word; word-break:break-word; }
.faq-icon { width:16px; height:16px; flex-shrink:0; transition:transform .25s; color:var(--ca); }
.faq-item.open .faq-icon { transform:rotate(180deg); }
.faq-a {
  max-height:0; overflow:hidden; transition:max-height .3s ease, padding .3s ease;
  padding:0 1.2rem;
}
.faq-item.open .faq-a { max-height:2000px; padding:0 1.2rem 1.1rem; }
.faq-a p { font-size:.92rem; line-height:1.8; color:var(--cm); overflow-wrap:break-word; word-break:break-word; }
.faq-a p a { color:var(--ca); text-decoration:underline; }

.kc { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); border-radius:16px; padding:1.25rem 1.1rem; position:relative; overflow:hidden; }
.kcb { font-family:var(--fr); font-weight:700; font-size:3.5rem; color:rgba(255,255,255,.055); position:absolute; top:-.2em; left:-.05em; line-height:1; pointer-events:none; user-select:none; }

.about-section {
  background:var(--cr);
  position:relative;
  overflow-x:clip;
  padding-top:clamp(2.5rem,6vw,4rem);
  padding-bottom:clamp(2.5rem,6vw,4rem);
}

.about-wrap {
  position:relative;
}

.about-slider {
  position:relative;
  width:100vw;
  margin-left:50%;
  transform:translateX(-50%);
  overflow:hidden;

  padding:32px 0;

  -webkit-mask-image:linear-gradient(to right, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%);
  mask-image:linear-gradient(to right, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%);
}
.about-slider-track {
  display:flex;
  align-items:center;

  gap:clamp(calc(.9rem + 15px), calc(2vw + 15px), calc(1.4rem + 15px));
  width:max-content;

  animation:about-slide 77s linear infinite;
}

@media(prefers-reduced-motion:reduce){
  .about-slider-track { animation:none; }
}
.as-item {
  flex:0 0 auto;
  position:relative;

  width:clamp(240px,19vw,360px);
  height:0;
  padding-top:calc(clamp(240px,19vw,360px) * 4 / 3);
  aspect-ratio:3/4;
  border-radius:16px;
  overflow:hidden;

  background:var(--cb);
}
.as-item img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }

.as-item:nth-child(12n+2) { transform:translateY(26px); }
.as-item:nth-child(12n+3) { transform:translateY(-18px); }
.as-item:nth-child(12n+4) { transform:translateY(14px); }
.as-item:nth-child(12n+5) { transform:translateY(-24px); }
.as-item:nth-child(12n+6) { transform:translateY(10px); }
.as-item:nth-child(12n+7) { transform:translateY(-14px); }
.as-item:nth-child(12n+8) { transform:translateY(20px); }
.as-item:nth-child(12n+9) { transform:translateY(-10px); }
.as-item:nth-child(12n+10) { transform:translateY(16px); }
.as-item:nth-child(12n+11) { transform:translateY(-20px); }
.as-item:nth-child(12n+0) { transform:translateY(-8px); }
@keyframes about-slide {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

.about-content {
  position:relative;
  z-index:1;
  max-width:900px;
  margin:0 auto;
  min-width:0;
}
.about-copy {max-width:780px;margin: 0 auto 2.0rem;text-align:center;}
.about-label { margin-bottom:1rem; }
.about-heading-line { line-height:1.9; margin-bottom:1.8rem; }
.about-highlight {
  display:inline-block;
  background:transparent;
  color:var(--cd);
  font-family:var(--fr);
  font-weight:700;
  font-size:clamp(1.3rem,3.4vw,2rem);
  padding:.1em .05em;
  line-height:1.4;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;

  clip-path: inset(0 100% 0 0);
  transition: clip-path 1.1s cubic-bezier(.16,.84,.44,1) .2s;
}
.about-copy.in .about-highlight {
  clip-path: inset(0 0 0 0);
}

.about-logo-mark {
  display:block;
  width:100%;
  max-width:220px;
  height:auto;
  margin:0 auto 1.8rem;
}
@media(min-width:768px){
  .about-logo-mark { max-width:250px; }
}

.about-text {
  font-size:1.12rem; line-height:2.1; color:var(--cm);
  display:flex; flex-direction:column; gap:.8rem;
  text-align:center;
}
.about-text strong { color:var(--ca); }

.about-keywords {
  display:flex;
  justify-content:center;
  max-width:860px;
  margin:0 auto;
  margin-bottom:clamp(2.2rem,5vw,3.2rem);
}
.about-keywords .kc-floorplan { width:100%; max-width:580px; margin:0 auto; }

@media(max-width:640px){
  .about-keywords { margin-bottom:1.8rem; }
}

.kc-light {
  background:var(--cr);
  border:1px solid var(--cb);
  border-radius:16px;
  padding:1.25rem 1.1rem;
  position:relative;
  overflow:hidden;
  box-shadow:0 4px 16px rgba(51,57,44,.05);
}
.kc-floorplan {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0;
  overflow:hidden;
}
.kc-floorplan-img {
  width:100%; height:auto; display:block; border-radius:10px;
}
.kcb-light {
  font-family:var(--fr); font-weight:700; font-size:3.5rem;
  color:rgba(197,168,102,.07);
  position:absolute; top:-.2em; left:-.05em; line-height:1;
  pointer-events:none; user-select:none;
}

.svc-section {
  position:relative;
  background:rgba(255,255,255,.91);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  padding:clamp(3rem,7vw,5rem) 0 0;
}
.svc-head { padding:0 clamp(1.1rem,5vw,2.5rem) clamp(2rem,5vw,3rem); max-width:1080px; margin:0 auto; }

.svc-wrap {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:0;
}

.svc-sticky {
  position:sticky;
  top:0;
  height:100svh;
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.svc-img-layer {
  position:absolute; inset:0;
  opacity:0;
  transition:opacity 1s ease-in-out;
}
.svc-img-layer.on { opacity:1; }
.svc-img-layer img { width:100%; height:100%; object-fit:cover; display:block; }
.svc-img-layer::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.28), transparent 40%);
}

.svc-img-num {
  position:absolute; left:1.6rem; bottom:1.6rem; z-index:2;
  display:flex; align-items:center; gap:.6rem;
  font-family:var(--fe); font-size:.8rem; color:#fff; letter-spacing:.1em;
}
.svc-img-num i { width:26px; height:1px; background:rgba(255,255,255,.5); display:block; }
.svc-img-num span:first-child { font-size:1.05rem; font-weight:600; }

.svc-scroll {
  display:flex; flex-direction:column;
  max-width:620px;
  width:100%;
  margin:0 auto;
  min-width:0;
}
.svc-panel {
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  padding:3rem clamp(1.3rem,5vw,3rem);
  opacity:.25;
  transition:opacity .4s ease;
  min-width:0;
  max-width:100%;
}
.svc-panel.active { opacity:1; }

.svc-badge { width:46%; min-width:150px; max-width:240px; height:auto; margin-bottom:1rem; }

.svc-tag { font-family:var(--fe); font-size:.72rem; color:var(--ca); letter-spacing:.18em; margin-bottom:.5rem; }
.svc-h   { font-size:clamp(1.2rem,2.8vw,1.6rem); color:var(--cd); margin-bottom:.4rem; overflow-wrap:break-word; }
.svc-desc {
  font-size:1rem; line-height:1.9; color:var(--cm);
  display:flex; flex-direction:column; gap:.8rem;
  min-width:0;
}
.svc-desc p {overflow-wrap:break-word;word-break:break-word;margin-bottom: 20px;}

.svc-detail { margin-bottom:1rem; }
.svc-detail-label {
  font-family:var(--fe); font-size:1.05rem; font-weight:700;
  letter-spacing:.1em; color:var(--ca); text-transform:uppercase;
  margin-bottom:.4rem;
}
.svc-detail-text { font-size:.94rem; line-height:1.8; color:var(--cm); }
.svc-detail-list { display:flex; flex-direction:column; gap:.35rem; list-style:none; padding-left:0; }
.svc-detail-list li { font-size:.94rem; line-height:1.7; color:var(--cm); }

.svc-panel-img { display:none; }

@media(max-width:900px){
  .svc-wrap { grid-template-columns:1fr; }

  .svc-sticky { display:none; }
  .svc-panel {
    min-height:auto;
    padding:0 clamp(1.1rem,5vw,2rem) 2.6rem;
    opacity:1;
    overflow:hidden;
  }
  .svc-panel-img {
    display:block;
    position:relative;

    width:calc(100% + 2 * clamp(1.1rem,5vw,2rem));
    height:0;
    padding-top:75%;
    margin-left:calc(-1 * clamp(1.1rem,5vw,2rem));
    margin-right:calc(-1 * clamp(1.1rem,5vw,2rem));
    aspect-ratio:4/3;
    overflow:hidden;
    margin-bottom:1.1rem;
  }
  .svc-panel-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }

  .svc-media { position:relative; text-align:center; }
  .svc-media .svc-badge {
    position:static;
    margin:0 auto 1.4rem;
    display:block;
    width:38%;
    min-width:120px;
    max-width:170px;
    filter:drop-shadow(0 4px 14px rgba(51,57,44,.16));
  }

  .svc-panel .sdv { margin-bottom:1rem; }

  .svc-desc { margin-bottom:0 !important; }
  .svc-panel ul {}

  .svc-desc ~ div {
    text-align:center;
  }
  .svc-panel .btn,
  .svc-info-pill {
    padding:1rem 1.9rem;
    font-size:.92rem;
  }

  .svc-cta-row {
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    row-gap:.6rem;
    column-gap:.6rem;
  }
  .svc-cta-row .btn,
  .svc-cta-row .svc-info-pill {
    padding:.62rem 1.05rem;
    font-size:.8rem;
  }
  .svc-cta-row .svc-info-pill { margin-bottom:0; }

  .svc-panel:first-of-type { padding-top:1rem; }
}

.ac { background:rgba(51,57,44,.06); border:1px solid var(--cb); border-radius:12px; padding:1rem .95rem; }
.ac > div > div { min-width:0; }
.ac p { overflow-wrap:break-word; word-break:break-word; }

.contact-form {
  max-width:520px;
  margin:0 auto 1.6rem;
  text-align:left;
}
.cf-row { margin-bottom:1.15rem; }
.cf-row label {
  display:block;
  font-family:var(--fe);
  font-size:.78rem;
  letter-spacing:.04em;
  color:rgba(255,255,255,.72);
  margin-bottom:.45rem;
}
.cf-req { color:var(--cal); margin-left:.15em; }
.cf-row input,
.cf-row select,
.cf-row textarea {
  width:100%;
  font-family:var(--fr);
  font-size:.95rem;
  color:var(--cr);
  background:rgba(255,255,255,.07);
  border:1.5px solid rgba(255,255,255,.22);
  border-radius:10px;
  padding:.68rem .85rem;
  transition:border-color .2s, background .2s;
  cursor:auto;
}
.cf-row textarea { resize:vertical; min-height:110px; line-height:1.7; }
.cf-row select {
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23ddbd73'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 10.94l3.71-3.71a.75.75 0 111.06 1.06l-4.24 4.24a.75.75 0 01-1.06 0L5.21 8.29a.75.75 0 01.02-1.08z' clip-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .85rem center;
  background-size:16px;
  padding-right:2.4rem;
  cursor:pointer;
}
.cf-row select option { color:#1a1d15; }
.cf-row input:focus,
.cf-row select:focus,
.cf-row textarea:focus {
  outline:none;
  border-color:var(--ca);
  background:rgba(255,255,255,.1);
}
.cf-row.cf-invalid input,
.cf-row.cf-invalid textarea { border-color:#d97757; }
.cf-error {
  display:none;
  background:rgba(217,119,87,.12);
  border:1px solid rgba(217,119,87,.4);
  border-radius:10px;
  padding:.75rem 1rem;
  margin-bottom:1.15rem;
  color:#f3d7c9;
  font-size:.86rem;
  line-height:1.7;
}
.cf-error.show { display:block; }
.cf-error p { margin:0; }
.cf-note {
  font-size:.78rem;
  line-height:1.7;
  color:rgba(255,255,255,.45);
  margin-bottom:1.3rem;
}

#fb-wrap {
  position:fixed; bottom:1.4rem; right:1.2rem; z-index:90;
  display:flex; flex-direction:row; align-items:center; gap:.7rem;
  opacity:0; transform:translateY(12px);
  transition:opacity .5s, transform .5s;
  pointer-events:none;
}
#fb-wrap.on { opacity:1; transform:translateY(0); pointer-events:auto; }

#fb-wrap.on.bob .fbi-reserve { animation:bob 3.2s ease-in-out infinite; }
@keyframes bob { 0%,100%{translate:0 0;} 50%{translate:0 -4px;} }
.fbi {
  text-decoration:none; cursor:none;
  border-radius:99px;
  padding:1.15rem 1.4rem;
  min-height:68px;
  box-sizing:border-box;
  display:flex; align-items:center; justify-content:center; gap:.6rem;
  white-space:nowrap;
  transition:transform .2s, box-shadow .2s;
  min-width:220px;
  border:1px solid rgba(255,255,255,.16);
}
.fbi-logo {
  width:26px; height:auto; flex-shrink:0;
  filter:brightness(0) invert(1);
  opacity:.92;
}
.fbi-text { display:flex; flex-direction:column; align-items:center; min-width:0; }
.fbi-title {
  font-family:var(--fr); font-weight:700; font-size:1rem;
  color:#fff; letter-spacing:.04em; line-height:1.2;
  text-align:center;
}
.fbi-reserve {
  background:var(--cd);
  box-shadow:0 6px 20px rgba(0,0,0,.28);
}
.fbi-event {
  background:var(--cd);
  box-shadow:0 6px 20px rgba(0,0,0,.28);
}
@media (hover:hover) and (pointer:fine) {
  .fbi-reserve:hover, .fbi-event:hover { transform:scale(1.03); box-shadow:0 9px 26px rgba(0,0,0,.36); }
}
@media(max-width:640px){
  #fb-wrap{
    bottom:0; right:0; left:0;
    justify-content:center;
    gap:.6vw;
    padding:.7rem 5vw;
    background:linear-gradient(to top, rgba(20,22,17,.55), transparent);
  }
  .fbi{
    min-width:0;
    flex:1 1 0;
    justify-content:center;
    padding:1.3rem .6rem;
    gap:.5rem;
  }
  .fbi-logo{ width:22px; }
  .fbi-title{ font-size:.88rem; }
}

#ft { background:var(--cd); }
@media(max-width:640px){
  #ft.has-fb-wrap { padding-bottom:calc(89px + env(safe-area-inset-bottom, 0px)) !important; }
}
#ft a { text-decoration:none; transition:color .2s; }
#ft a:hover { color:var(--cal); }

[data-lang="en"] { display:none; }
body.le [data-lang="ja"] { display:none; }
body.le [data-lang="en"] { display:revert; }

:target { scroll-margin-top:calc(var(--nh) + 6px); }

@media(max-width:767px){

  .g2 { display:flex!important; flex-direction:column!important; gap:1.5rem!important; }

  .g3, .about-keywords { display:flex!important; flex-direction:column!important; gap:.85rem!important; }

  .gf { display:flex!important; flex-direction:column!important; gap:1.5rem!important; }

  .or2 { order:2!important; }
  .or1 { order:1!important; }

  .access-map { min-height:260px; }
  .access-map iframe { height:260px!important; }
}

@media(max-width:640px){
  .about-text,
  .svc-desc,
  .work-desc,
  .ev-card-desc,
  .faq-a p,
  .staff-modal-bio,
  .hero-addr,
  .hero-contact p {
    font-size:14px;
  }
  .about-text     { line-height:1.9; text-align:left; gap:0; }
  .svc-desc       { line-height:1.75; }
  .work-desc      { line-height:1.55; }
  .ev-card-desc   { line-height:1.55; }
  .faq-a p        { line-height:1.65; }
  .staff-modal-bio{ line-height:1.8; }
  .hero-addr      { line-height:1.7; }
  .hero-contact p { line-height:1.5; }
}

.cs-slider {
  position:relative;
  width:100%;

  height:clamp(420px,68vw,760px);
  overflow:hidden;
  background:#232016;
}

.cs-slide {
  position:absolute; inset:0;
  transform:translateY(100%);
  z-index:1;
}
.cs-slide.on {
  transform:translateY(0);
  transition:transform 1.15s cubic-bezier(.4,0,.2,1);
}
.cs-slide img { width:100%; height:100%; object-fit:cover; display:block; }
.cs-slide::after {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.32), transparent 45%);
}

.cs-bar-group {
  position:absolute;
  left:1.5rem;
  top:50%;
  transform:translateY(-50%);
  height:40%;
  width:3px;
  z-index:999;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.cs-bar-seg {
  flex:1;
  width:100%;
  min-height:0;
  border-radius:2px;
  overflow:hidden;
  background:rgba(255,255,255,.32);
}
.cs-bar-seg-fill {
  width:100%; height:0%;
  background:var(--ca);
}
.cs-bar-seg-fill.playing {
  animation-name:cs-bar-grow;
  animation-timing-function:linear;
  animation-fill-mode:forwards;
}
@keyframes cs-bar-grow {
  from { height:0%; }
  to   { height:100%; }
}
@media(max-width:640px){
  .cs-bar-group { left:1rem; }
}

.cs-index {
  position:absolute; right:1.6rem; bottom:1.6rem; z-index:999;
  display:flex; align-items:center; gap:.6rem;
  font-family:var(--fe); font-size:.8rem; color:#fff; letter-spacing:.1em;
}
.cs-index i { width:26px; height:1px; background:rgba(255,255,255,.5); display:block; }
.cs-index span:first-child { font-size:1.05rem; font-weight:600; }

@media(max-width:640px){
  .cs-slider { height:clamp(320px,82vw,520px); }
  .cs-index { right:1rem; bottom:1rem; }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
