@charset "utf-8";
/* =========================================================
   LAPiS LAzuLi. Group  —  base stylesheet
   Design canvas: 1440 x (full page)
   ========================================================= */

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body,h1,h2,h3,h4,p,figure,ul,ol,dl,dd,blockquote{margin:0;}
ul,ol{padding:0;list-style:none;}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;}

/* ---------- tokens ---------- */
:root{
  --bg:#f0ece8;
  --bg-warm:#e7dcd0;
  --dark:#161616;
  --ink:#1b1917;
  --ink-2:#4b4740;
  --ink-3:#8b857b;
  --ink-4:#9c958a;
  --line:rgba(27,25,23,.12);
  --line-soft:rgba(27,25,23,.08);
  --gut:75px;
  --gut-h:65px;
  --maxw:1290px;

  --jp:"Hiragino Mincho ProN","Shippori Mincho","Noto Serif JP","Yu Mincho",YuMincho,"HGS明朝E",serif;
  --en:"Cormorant Garamond","Hiragino Mincho ProN","Times New Roman",serif;
  --sans:"Jost","Futura","Avenir Next","Hiragino Sans","Noto Sans JP",sans-serif;
}

body{
  font-family:var(--jp);
  background:var(--bg);
  color:var(--ink);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* ---------- helpers ---------- */
.container{width:min(var(--maxw),calc(100% - var(--gut)*2));margin-inline:auto;}
.en{font-family:var(--en);}
.u-sp{display:none !important;}

.eyebrow{
  font-family:var(--en);
  font-size:15.4px;
  line-height:1;
  letter-spacing:.20em;
  word-spacing:-.05em;
  color:var(--ink-3);
  text-transform:uppercase;
  font-weight:400;
}
/* Heading scale: H1 ~48 / H2 ~28 / H3 ~20 */
.sec-title{
  font-size:28px;
  line-height:1.25;
  letter-spacing:.08em;
  font-weight:400;
  color:var(--ink);
}
.watermark{
  position:absolute;
  writing-mode:vertical-rl;
  font-family:var(--en);
  font-weight:400;
  letter-spacing:.10em;
  color:rgba(27,20,12,.10);
  line-height:1;
  pointer-events:none;
  user-select:none;
  white-space:nowrap;
}

/* arrow link ---------------------------------------------- */
.arrow-link{
  display:inline-flex;align-items:center;gap:18px;
  font-size:18.3px;letter-spacing:.04em;color:var(--ink-2);line-height:1;
}
.arrow-link .bar{position:relative;display:block;width:33px;height:1px;background:currentColor;transition:width .35s ease;}
.arrow-link .bar::after{content:"";position:absolute;right:0;top:-2.5px;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);}
.arrow-link:hover .bar{width:48px;}

/* reservation button --------------------------------------- */
.btn-res{
  display:inline-flex;align-items:center;justify-content:center;gap:16px;
  width:174px;height:36px;
  border:1px solid rgba(255,255,255,.72);
  font-family:var(--en);font-size:12px;letter-spacing:.14em;
  color:#fff;white-space:nowrap;
  transition:background-color .3s ease,color .3s ease;
}
.btn-res .bar{position:relative;display:block;width:16px;height:1px;background:currentColor;}
.btn-res .bar::after{content:"";position:absolute;right:0;top:-2.5px;width:5px;height:5px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);}
.btn-res:hover{background:#fff;color:#161616;}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:absolute;top:0;left:0;width:100%;z-index:80;
  padding:0 var(--gut-h);
}
.site-header.is-fixed{
  position:fixed;background:rgba(18,16,15,.92);
  backdrop-filter:blur(8px);
  animation:hdrDown .45s ease both;
}
@keyframes hdrDown{from{transform:translateY(-100%);}to{transform:translateY(0);}}

.header-main{display:flex;align-items:center;height:93px;}

.logo{display:block;color:#fff;text-align:center;line-height:1;margin-top:20px;}
.logo__name{font-family:var(--en);font-size:34.5px;letter-spacing:.012em;font-weight:400;display:block;}
.logo__sub{font-family:var(--sans);font-size:17px;letter-spacing:.10em;font-weight:400;display:block;margin-top:3px;padding-right:13px;}

.gnav{margin-left:auto;}
.gnav__list{display:flex;align-items:center;gap:26px;}
.gnav__list a{
  position:relative;display:block;
  font-family:var(--en);font-size:14.5px;line-height:1;letter-spacing:.09em;
  color:#fff;text-transform:uppercase;padding:7px 0;white-space:nowrap;
}
.gnav__list a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .35s ease;
}
.gnav__list a:hover::after,.gnav__list a.is-current::after{transform:scaleX(1);transform-origin:left;}

.header-cta{margin-left:26px;}


/* hamburger */
.hamburger{display:none;position:relative;width:34px;height:22px;margin-left:auto;z-index:80;}
.hamburger span{position:absolute;left:0;width:100%;height:1px;background:#fff;transition:transform .4s ease,opacity .3s ease;}
.hamburger span:nth-child(1){top:0;}
.hamburger span:nth-child(2){top:50%;}
.hamburger span:nth-child(3){bottom:0;}
body.is-menu .hamburger span:nth-child(1){transform:translateY(10.5px) rotate(28deg);}
body.is-menu .hamburger span:nth-child(2){opacity:0;}
body.is-menu .hamburger span:nth-child(3){transform:translateY(-10.5px) rotate(-28deg);}

/* drawer */
.drawer{
  position:fixed;inset:0;z-index:70;background:#141210;
  padding:110px 32px 48px;overflow-y:auto;
  opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s ease;
}
body.is-menu .drawer{opacity:1;visibility:visible;}
body.is-menu{overflow:hidden;}
body.is-menu .site-header{position:fixed;top:0;background:none;}
.drawer__list{border-top:1px solid rgba(255,255,255,.12);}
.drawer__list li{border-bottom:1px solid rgba(255,255,255,.12);}
.drawer__list a{display:flex;align-items:baseline;gap:14px;padding:17px 4px;color:#fff;}
.drawer__list .ja{font-size:15px;letter-spacing:.06em;}
.drawer__list .en{font-family:var(--en);font-size:11px;letter-spacing:.16em;color:rgba(255,255,255,.5);text-transform:uppercase;}
.drawer__cta{margin-top:34px;}
.drawer__cta .btn-res{width:100%;height:56px;font-size:13px;}
.drawer__sns{display:flex;gap:24px;justify-content:center;margin-top:34px;}
.drawer__sns a{color:rgba(255,255,255,.75);}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;height:714px;overflow:hidden;background:#0d0b0a;}
.hero__media{
  position:absolute;inset:0;opacity:0;z-index:1;
  transition:opacity 1.6s cubic-bezier(.45,0,.2,1);
  will-change:opacity;
}
.hero__media.is-active{opacity:1;z-index:2;}
.hero__media img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  transform:scale(1.09);
  transition:transform 4.9s cubic-bezier(.25,.46,.45,.94);
  will-change:transform;
}
.hero__media.is-active img{transform:scale(1);}
.hero__media::after{content:"";position:absolute;inset:0;z-index:3;background:linear-gradient(90deg,rgba(0,0,0,.56) 0%,rgba(0,0,0,.30) 42%,rgba(0,0,0,0) 72%);}
.hero__inner{position:relative;z-index:10;height:100%;}
.hero__copy{position:absolute;left:3px;top:150px;color:#fff;max-width:620px;}
.hero__eyebrow{
  font-family:var(--en);font-size:14px;line-height:1;letter-spacing:.20em;
  color:rgba(255,255,255,.92);text-transform:uppercase;
}
.hero__title{
  margin-top:17px;
  font-size:46px;line-height:1.5;letter-spacing:.03em;font-weight:400;
  text-shadow:0 2px 18px rgba(0,0,0,.5);
}
.hero__lead{
  margin-top:20px;
  font-size:14px;line-height:1.85;letter-spacing:.06em;
  color:rgba(255,255,255,.9);
  text-shadow:0 2px 14px rgba(0,0,0,.55);
}
.hero__lead p+p{margin-top:12px;}
.hero__cta{margin-top:38px;width:210px;height:52px;font-size:13px;letter-spacing:.16em;border-color:rgba(255,255,255,.85);}
.hero__cta .bar{width:20px;}
.hero__scroll{position:absolute;left:23px;top:644px;width:2px;height:50px;background:rgba(255,255,255,.22);overflow:hidden;}
.hero__scroll::after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(255,255,255,.62);animation:scrollBar 2.6s cubic-bezier(.77,0,.18,1) infinite;}
@keyframes scrollBar{0%{transform:translateY(-100%);}45%,100%{transform:translateY(100%);}}

.hero__counter{
  position:absolute;right:0;bottom:34px;z-index:4;
  display:flex;align-items:center;gap:14px;
}
.hero__num{font-family:var(--en);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-size:19px;letter-spacing:.14em;color:rgba(255,255,255,.9);line-height:1;}
.hero__bars{display:flex;gap:8px;}
.hero__bars span{
  position:relative;display:block;width:30px;height:1px;
  background:rgba(255,255,255,.3);overflow:hidden;
}
.hero__bars span::after{
  content:"";position:absolute;inset:0;background:#fff;
  transform:scaleX(0);transform-origin:left;
}
.hero__bars span.is-done::after{transform:scaleX(1);transition:none;}
.hero__bars span.is-on::after{animation:heroBarFill 4.5s linear forwards;}
@keyframes heroBarFill{from{transform:scaleX(0);}to{transform:scaleX(1);}}

@media (prefers-reduced-motion: reduce){
  .hero__media{transition-duration:2.2s;}
  .hero__media img{transition:none;transform:scale(1.02);}
  .hero__bars span.is-on::after{animation:none;transform:scaleX(1);}
}

/* =========================================================
   ABOUT
   ========================================================= */
.about{position:relative;overflow:hidden;}
.about__media{position:absolute;right:0;top:0;bottom:0;width:56.39%;}
.about__media img{width:100%;height:100%;object-fit:cover;}
.about__inner{position:relative;padding:96px 0;}
.about__body{position:relative;margin-left:11.2%;max-width:400px;}
.about .watermark{left:-10px;top:44px;font-size:86px;letter-spacing:.072em;}
.about__title{margin-top:26px;}
.about__text{margin-top:24px;font-size:19px;line-height:1.75;letter-spacing:.05em;color:var(--ink-2);}
.about__text p+p{margin-top:20px;}

/* =========================================================
   SALON
   ========================================================= */
.salon{padding:75px 0 0;height:625px;}
.salon__head{display:flex;align-items:flex-end;justify-content:space-between;}
.salon__head>.arrow-link{margin-bottom:10px;gap:16px;}
.salon__head>.arrow-link .bar{width:31px;}
.salon__title{margin-top:16px;}
.salon__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:23px;}
.salon-card__media{position:relative;aspect-ratio:414/217;overflow:hidden;background:#241d17;}
.salon-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.salon-card:hover .salon-card__media img{transform:scale(1.05);}
.salon-card__name{margin-top:23px;font-size:27px;line-height:1;letter-spacing:.05em;font-weight:400;}
.salon-card__en{margin-top:9px;font-family:var(--en);font-size:19px;line-height:1;letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase;}
.salon-card__meta{display:flex;align-items:center;flex-wrap:wrap;gap:0 11px;margin-top:22px;font-size:17px;line-height:1;letter-spacing:.04em;color:var(--ink-3);}
.salon-card__meta .sep{color:rgba(139,133,123,.6);}
.salon-card__meta .pin{display:inline-flex;align-items:center;gap:6px;}
.salon-card__meta .pin svg{width:12px;height:12px;flex:0 0 auto;}
.salon-card__link{margin-top:39px;font-size:18.9px;gap:18px;}
.salon-card__link .bar{width:33px;}

/* =========================================================
   THERAPISTS
   ========================================================= */
.therapists{
  position:relative;height:647px;overflow:hidden;
  background:var(--bg-warm) url("../img/therapist-bg.jpg") center/cover no-repeat;
}
.therapists__inner{position:relative;height:100%;}
.therapists .watermark{left:-17px;top:47px;font-size:64.5px;letter-spacing:.108em;color:rgba(78,55,34,.10);}
.therapists__body{position:absolute;left:9.5%;top:220px;}
.therapists__title{margin-top:17px;}
.therapists__text{margin-top:23px;font-size:19px;line-height:1.72;letter-spacing:.05em;color:var(--ink-2);}
.therapists__more{margin-top:35px;gap:16px;}
.therapists__more .txt{position:relative;padding-bottom:5px;font-family:var(--en);font-size:16.5px;letter-spacing:.14em;}
.therapists__more .txt::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;}
.therapists__more .bar{width:34px;}

.therapists__list{
  position:absolute;right:0;top:191px;width:65.1%;
  display:grid;grid-template-columns:repeat(4,1fr);gap:18px;
}
.th-card__media{aspect-ratio:197/249;overflow:hidden;background:#e5ddd4;}
.th-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.th-card:hover .th-card__media img{transform:scale(1.05);}
.th-card__name{margin-top:19px;font-family:var(--en);font-size:19px;line-height:1;letter-spacing:.09em;text-transform:uppercase;}
.th-card__role{margin-top:6px;font-size:15.4px;line-height:1.35;letter-spacing:.03em;color:var(--ink-3);}

/* =========================================================
   NEWS
   ========================================================= */
.news{position:relative;height:372px;overflow:hidden;}
.news__inner{position:relative;height:100%;}
.news__photo{position:absolute;right:0;top:108px;width:22.78%;height:204px;overflow:hidden;}
.news__photo img{width:100%;height:100%;object-fit:cover;}
.news__body{position:absolute;left:-6px;top:119px;}
.news__title{margin-top:21px;}
.news__more{margin-top:49px;gap:29px;font-size:19.6px;}
.news__more .bar{width:36px;}
.news__list{position:absolute;left:417px;top:102px;width:596px;}
.news__list li{border-bottom:1px solid var(--line-soft);}
.news__list a{display:flex;align-items:baseline;gap:0;padding:13px 0 13px;}
.news__list time{flex:0 0 121px;font-family:var(--en);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-size:19px;letter-spacing:.01em;color:var(--ink-4);line-height:1;position:relative;top:-4px;}
.news__list .t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16.6px;line-height:1.3;letter-spacing:.04em;color:var(--ink-2);transition:color .3s ease;}
.news__list a:hover .t{color:var(--ink);}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{background:var(--dark);color:#fff;}
.footer-main{display:grid;grid-template-columns:442px 474px 1fr auto;align-items:start;min-height:208px;height:auto;padding:36px 0;}
.footer-logo{text-align:center;color:#fff;margin:3px 0 0 8px;justify-self:start;}
.footer-logo .logo__name{font-size:31.5px;}
.footer-logo .logo__sub{font-size:18px;margin-top:4px;font-style:italic;font-family:var(--en);letter-spacing:.06em;}
.footer-nav{display:grid;grid-template-columns:237px 1fr;margin-top:2px;}
.footer-nav ul{width:auto;}
.footer-nav li{line-height:1;}
.footer-nav li+li{margin-top:9px;}
.footer-nav a{display:block;font-family:var(--en);font-size:14.1px;line-height:1;letter-spacing:.11em;color:rgba(255,255,255,.72);text-transform:uppercase;transition:color .3s ease;}
.footer-nav a:hover{color:#fff;}
.footer-sns{display:flex;gap:26px;margin-left:33px;padding-top:6px;}
.footer-sns a{color:rgba(255,255,255,.75);transition:color .3s ease;}
.footer-sns a:hover{color:#fff;}
.footer-sns svg{width:18px;height:18px;}
.footer-cta{padding-top:2px;justify-self:end;margin-right:5px;}
.footer-cta .btn-res{width:186px;height:36px;border-color:rgba(255,255,255,.55);}

.footer-bottom{border-top:1px solid rgba(255,255,255,.09);}
.footer-bottom__inner{display:flex;align-items:center;justify-content:space-between;min-height:56px;height:auto;padding:16px 0;}
.copyright{font-family:var(--en);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;margin-left:5px;font-size:14.1px;letter-spacing:.05em;color:rgba(255,255,255,.55);line-height:1;}
.pagetop{display:inline-flex;align-items:center;gap:11px;margin-right:10px;font-family:var(--en);font-size:14px;letter-spacing:.13em;color:rgba(255,255,255,.72);line-height:1;transition:color .3s ease;}
.pagetop:hover{color:#fff;}
.pagetop .up{position:relative;display:block;width:1px;height:14px;background:currentColor;}
.pagetop .up::after{content:"";position:absolute;left:-2.5px;top:0;width:6px;height:6px;border-top:1px solid currentColor;border-left:1px solid currentColor;transform:rotate(45deg);}

/* =========================================================
   FIXED BOTTOM CTA
   ========================================================= */
.fixed-cta{
  position:fixed;left:0;bottom:0;width:100%;z-index:90;
  display:flex;justify-content:center;
  background:rgba(18,16,15,.93);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-top:1px solid rgba(255,255,255,.14);
}
.fixed-cta__btn{
  display:flex;align-items:center;justify-content:center;gap:12px;
  height:60px;padding:0 46px;color:#fff;
  font-size:15px;letter-spacing:.09em;line-height:1;white-space:nowrap;
  transition:background-color .3s ease,color .3s ease;
}
.fixed-cta__btn svg{width:18px;height:18px;flex:0 0 auto;}
.fixed-cta__btn--book{background:#8a6a4a;}
.fixed-cta__btn--book:hover{background:#9c7a56;}
.fixed-cta__btn--tel{border-left:1px solid rgba(255,255,255,.16);}
.fixed-cta__btn--tel:hover{background:rgba(255,255,255,.08);}
.fixed-cta__btn--tagged{flex-direction:column;justify-content:center;gap:4px;height:auto;min-height:60px;padding-top:9px;padding-bottom:9px;}
.fixed-cta__tag{font-size:10px;letter-spacing:.05em;line-height:1;color:rgba(255,255,255,.62);}
.fixed-cta__btn-row{display:flex;align-items:center;gap:10px;}
.site-footer{padding-bottom:60px;}

/* =========================================================
   Sub pages
   ========================================================= */
.page-hero{position:relative;height:368px;background:#171412;overflow:hidden;display:flex;align-items:flex-end;}
.page-hero::before{content:"";position:absolute;inset:0;background:url("../img/hero.jpg") center/cover no-repeat;opacity:.5;}
.page-hero__inner{position:relative;padding-bottom:58px;color:#fff;}
.page-hero .eyebrow{color:rgba(255,255,255,.7);font-size:14px;letter-spacing:.22em;}
.page-hero h1{margin-top:18px;font-size:48px;line-height:1.28;letter-spacing:.06em;font-weight:400;}

.breadcrumb{padding:20px 0;font-size:13px;color:var(--ink-3);letter-spacing:.04em;}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:10px;}
.breadcrumb li+li::before{content:"/";margin-right:10px;color:rgba(139,133,123,.6);}

.section{padding:88px 0;}
.section--warm{background:#eae3da;}
.section__head{margin-bottom:44px;}
.section__head .sec-title{margin-top:18px;font-size:28px;}
.lead-text{font-size:17px;line-height:2.05;letter-spacing:.05em;color:var(--ink-2);max-width:900px;}

.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}

.card{background:#fbf9f7;padding:34px 32px;border:1px solid var(--line-soft);}
.card h3{font-size:20px;font-weight:400;letter-spacing:.05em;margin-bottom:14px;line-height:1.4;}
.card p{font-size:15px;line-height:1.95;color:var(--ink-2);}

.def-table{width:100%;border-collapse:collapse;border-top:1px solid var(--line);}
.def-table th,.def-table td{border-bottom:1px solid var(--line);padding:22px 8px;text-align:left;font-size:16px;line-height:1.85;vertical-align:top;letter-spacing:.04em;}
.def-table th{width:236px;font-weight:400;color:var(--ink);}
.def-table td{color:var(--ink-2);}

/* ranking */
.rank-list{border-top:1px solid var(--line);}
.rank-item{display:grid;grid-template-columns:96px 132px 1fr auto;gap:30px;align-items:center;border-bottom:1px solid var(--line);padding:26px 0;}
.rank-no{font-family:var(--en);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-size:40px;line-height:1;letter-spacing:.02em;color:var(--ink-3);}
.rank-item:nth-child(-n+3) .rank-no{color:#a6843f;}
.rank-thumb{aspect-ratio:197/249;overflow:hidden;background:#e5ddd4;}
.rank-thumb img{width:100%;height:100%;object-fit:cover;}
.rank-name{font-family:var(--en);font-size:24px;letter-spacing:.09em;line-height:1;}
.rank-shop{margin-top:12px;font-size:14px;color:var(--ink-3);letter-spacing:.04em;}
.rank-score{font-family:var(--en);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-size:15px;letter-spacing:.09em;color:var(--ink-2);white-space:nowrap;}
.rank-thumb{display:block;}
.rank-name a{color:inherit;transition:opacity .3s ease;}
.rank-name a:hover{opacity:.6;}
.rank-cond{display:flex;flex-wrap:wrap;gap:16px 36px;align-items:center;margin-top:34px;}
.rank-cond__item{display:flex;align-items:center;gap:14px;}
.rank-cond__item[hidden]{display:none;}
.rank-cond__label{font-size:13px;letter-spacing:.12em;color:var(--ink-3);white-space:nowrap;}
.rank-select{
  appearance:none;-webkit-appearance:none;font:inherit;font-size:15px;letter-spacing:.04em;color:var(--ink);
  background:#fbf9f7;border:1px solid var(--line);border-radius:0;padding:12px 46px 12px 16px;cursor:pointer;min-width:200px;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);
  background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;
}
.rank-select:focus{outline:1px solid #8a6a4a;outline-offset:-1px;}

/* media list */
.media-list{border-top:1px solid var(--line);}
.media-list li{border-bottom:1px solid var(--line);}
.media-list a,.media-list .row{display:flex;gap:28px;align-items:baseline;padding:24px 4px;}
.media-list time{font-family:var(--en);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-size:13px;letter-spacing:.07em;color:var(--ink-4);flex:0 0 96px;}
.media-list .tag{flex:0 0 118px;font-size:12px;letter-spacing:.09em;color:var(--ink-3);border:1px solid var(--line);text-align:center;padding:4px 0;line-height:1.4;}
.media-list .t{font-size:16px;line-height:1.6;color:var(--ink-2);letter-spacing:.04em;}
.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 44px;}
.media-card__media{position:relative;aspect-ratio:16/9;overflow:hidden;background:#e9e2da;}
.media-card__media iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.media-card__media img{width:100%;height:100%;object-fit:contain;}
.media-card__meta{display:flex;align-items:center;gap:16px;margin-top:20px;}
.media-card__meta time{font-family:var(--en);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-size:13px;letter-spacing:.07em;color:var(--ink-4);}
.media-card__meta .tag{font-size:11.5px;letter-spacing:.09em;color:var(--ink-3);border:1px solid var(--line);padding:4px 12px;line-height:1.4;}
.media-card__title{margin-top:14px;font-family:var(--jp);font-size:17px;font-weight:500;line-height:1.7;letter-spacing:.04em;color:var(--ink);}
.media-card__text{margin-top:10px;font-size:14px;line-height:1.9;letter-spacing:.03em;color:var(--ink-3);}
.page-hero h1.news-detail__title{font-size:30px;line-height:1.6;letter-spacing:.04em;max-width:900px;}
.news-embed{position:relative;aspect-ratio:16/9;margin-top:36px;background:#e9e2da;}
.news-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.news-figure{margin-top:36px;}
.news-figure img{display:block;width:100%;max-width:640px;height:auto;margin:0 auto;}

/* form */
.form{max-width:900px;}
.form__row{display:grid;grid-template-columns:236px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--line);align-items:start;}
.form__row:first-child{border-top:1px solid var(--line);}
.form__label{font-size:16px;letter-spacing:.05em;padding-top:12px;}
.form__label .req{display:inline-block;margin-left:10px;font-size:11px;letter-spacing:.08em;color:#fff;background:#8a6a4a;padding:3px 8px;vertical-align:2px;}
.form input[type=text],.form input[type=email],.form input[type=tel],.form select,.form textarea{
  width:100%;font:inherit;font-size:16px;color:var(--ink);
  background:#fbf9f7;border:1px solid var(--line);padding:13px 15px;border-radius:0;
}
.form select{
  appearance:none;-webkit-appearance:none;padding-right:44px;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);
  background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;
}
.form textarea{min-height:190px;resize:vertical;line-height:1.85;}
.form input:focus,.form select:focus,.form textarea:focus{outline:1px solid #8a6a4a;outline-offset:-1px;}
.form__note{font-size:14px;color:var(--ink-3);margin-top:10px;line-height:1.8;}
.form__submit{margin-top:48px;text-align:center;}
.btn-dark{
  display:inline-flex;align-items:center;justify-content:center;gap:16px;
  min-width:320px;height:64px;background:var(--dark);color:#fff;
  font-family:var(--en);font-size:14px;letter-spacing:.16em;
  transition:opacity .3s ease;
}
.btn-dark:hover{opacity:.82;}
.btn-dark .bar{position:relative;display:block;width:22px;height:1px;background:currentColor;}
.btn-dark .bar::after{content:"";position:absolute;right:0;top:-2.5px;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);}

/* job list */
.job{border:1px solid var(--line);padding:38px 36px;background:#fbf9f7;}
.job+.job{margin-top:26px;}
.job__head{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.job__title{font-size:23px;font-weight:400;letter-spacing:.05em;}
.job__tag{font-size:12px;letter-spacing:.08em;color:#fff;background:#8a6a4a;padding:4px 12px;line-height:1.5;}
.job dl{display:grid;grid-template-columns:150px 1fr;gap:12px 22px;margin-top:24px;font-size:15px;line-height:1.85;}
.job dt{color:var(--ink-3);letter-spacing:.05em;}
.job dd{color:var(--ink-2);}

/* misc */
.note-list li{position:relative;padding-left:20px;font-size:15px;line-height:2;color:var(--ink-2);}
.note-list li::before{content:"";position:absolute;left:4px;top:15px;width:5px;height:5px;background:var(--ink-4);border-radius:50%;}
.steps{counter-reset:s;display:grid;gap:22px;}
.step{position:relative;padding-left:76px;}
.step::before{counter-increment:s;content:"0" counter(s);position:absolute;left:0;top:-4px;font-family:var(--en);font-size:30px;color:var(--ink-4);line-height:1;}
.step h3{font-size:18px;font-weight:400;letter-spacing:.05em;margin-bottom:8px;line-height:1.45;}
.step p{font-size:15px;line-height:1.95;color:var(--ink-2);}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1366px){
  :root{--gut:48px;--gut-h:44px;}
}
@media (max-width:1180px){
  .watermark{opacity:.5;}
  .gnav,.header-cta{display:none;}
  .hamburger{display:block;}
  .header-main{height:74px;}
  .logo__name{font-size:26px;}
  .logo__sub{font-size:13px;margin-top:6px;}

  .hero{height:auto;min-height:640px;display:flex;align-items:center;padding:132px 0 118px;}
  .hero__inner{height:auto;padding-bottom:72px;}
  .hero__copy{position:static;max-width:none;}
  .hero__title{font-size:40px;}
  .hero__lead{font-size:15px;}
  .hero__scroll{top:auto;bottom:8px;height:46px;}
  .hero__counter{bottom:18px;}

  .about{height:auto;padding:70px 0 0;display:flex;flex-direction:column;}
  .about__media{position:relative;inset:auto;order:2;width:100%;height:300px;margin-top:54px;}
  .about__inner{order:1;height:auto;}
  .about__body{position:static;}
  .about .watermark{left:0;top:60px;font-size:64px;}

  .salon{height:auto;padding:70px 0 80px;}
  .salon__grid{gap:20px;}
  .salon-card__name{font-size:23px;}
  .sec-title{font-size:26px;}

  .therapists{height:auto;padding:70px 0 80px;}
  .therapists__inner{height:auto;}
  .therapists__body{position:static;}
  .therapists .watermark{left:-14px;top:40px;font-size:78px;}
  .therapists__list{position:static;width:auto;margin-top:48px;}

  .news{height:auto;padding:70px 0 80px;}
  .news__inner{height:auto;display:grid;grid-template-columns:300px 1fr;gap:40px;}
  .news__body{position:static;}
  .news__list{position:static;width:auto;}
  .news__list .t{white-space:normal;}
  .news__photo{display:none;}

  .footer-main{grid-template-columns:1fr auto;height:auto;gap:38px 20px;padding:72px 0 56px;}
  .footer-logo{grid-area:1/1;margin:0;}
  .footer-cta{grid-area:1/2;justify-self:end;margin:0;padding:0;}
  .footer-nav{grid-area:2/1/3/3;grid-template-columns:repeat(2,minmax(0,200px));margin-top:0;}
  .footer-sns{grid-area:3/1/4/3;margin:0;padding:0;}
}
@media (max-width:860px){
  :root{--gut:28px;--gut-h:24px;}
  .fixed-cta__btn{flex:1 1 50%;padding:0 10px;height:62px;font-size:13px;gap:8px;letter-spacing:.04em;}
  .fixed-cta__btn--tagged{height:auto;min-height:62px;padding-top:8px;padding-bottom:8px;}
  .fixed-cta__btn svg{width:16px;height:16px;}
  .site-footer{padding-bottom:62px;}
  .salon__grid{grid-template-columns:1fr 1fr;gap:18px 16px;}
  .therapists__list{grid-template-columns:1fr 1fr;gap:16px 14px;}
  .cols-2,.cols-3{grid-template-columns:1fr;gap:30px;}
  .news__inner{grid-template-columns:1fr;gap:30px;}
  .rank-item{grid-template-columns:56px 92px 1fr;gap:18px;}
  .rank-score{grid-column:2 / -1;}
  .def-table th,.def-table td{display:block;width:auto;padding:14px 4px;}
  .def-table th{border-bottom:0;padding-bottom:0;color:var(--ink-3);font-size:14px;}
  .form__row{grid-template-columns:1fr;gap:10px;}
  .form__label{padding-top:0;}
  .media-list a,.media-list .row{flex-wrap:wrap;gap:10px 18px;}
  .media-list .t{flex:1 1 100%;}
  .media-grid{grid-template-columns:minmax(0,1fr);gap:52px;}
  .media-card__title{font-size:16px;}
}
@media (max-width:640px){
  .fixed-cta__btn{font-size:12px;gap:6px;letter-spacing:.02em;}
  .u-sp{display:block !important;}
  .u-pc{display:none !important;}

  .hero{min-height:0;padding:112px 0 104px;}
  .hero__eyebrow{font-size:11px;letter-spacing:.16em;}
  .hero__title{margin-top:18px;font-size:30px;line-height:1.6;}
  .hero__lead{margin-top:18px;font-size:12.8px;line-height:1.95;}
  .hero__lead p+p{margin-top:11px;}
  .hero__cta{margin-top:28px;width:184px;height:46px;font-size:12px;}
  .hero__scroll{left:0;bottom:6px;height:40px;}
  .hero__counter{bottom:14px;gap:8px;}
  .hero__bars span{width:34px;}
  .hero__num{font-size:12px;}

  .eyebrow{font-size:12px;letter-spacing:.18em;}
  .sec-title{font-size:22px;line-height:1.35;}
  .arrow-link{font-size:14px;gap:12px;}
  .arrow-link .bar{width:26px;}

  .about{padding:56px 0 0;}
  .about__text{margin-top:26px;font-size:14.5px;line-height:1.95;}
  .about__title{margin-top:18px;}
  .about__media{height:230px;margin-top:38px;}
  .about .watermark{top:44px;font-size:48px;}

  .salon{padding:56px 0 64px;}
  .salon__head{display:block;}
  .salon__title{margin-top:16px;}
  .salon__head .arrow-link{margin-top:20px;}
  .salon__grid{grid-template-columns:1fr;gap:38px;margin-top:30px;}
  .salon-card__name{margin-top:18px;font-size:20px;}
  .salon-card__en{margin-top:9px;font-size:12px;}
  .salon-card__meta{margin-top:16px;font-size:12px;}
  .salon-card__link{margin-top:20px;font-size:14px;}

  .therapists{padding:56px 0 64px;}
  .therapists__title{margin-top:16px;}
  .therapists__text{margin-top:24px;font-size:14.5px;}
  .therapists__more{margin-top:30px;}
  .therapists__list{margin-top:36px;gap:24px 14px;}
  .th-card__name{margin-top:14px;font-size:16px;}
  .th-card__role{margin-top:7px;font-size:12px;}
  .therapists .watermark{top:30px;font-size:56px;}

  .news{padding:56px 0 64px;}
  .news__title{margin-top:16px;}
  .news__more{margin-top:22px;}
  .news__list{margin-top:6px;}
  .news__list a{flex-direction:column;gap:7px;padding:15px 0;}
  .news__list time{flex:0 0 auto;font-size:15px;top:0;}
  .news__list .t{font-size:14.5px;}

  .footer-main{grid-template-columns:1fr;gap:30px;padding:60px 0 48px;}
  .footer-logo{text-align:left;grid-area:auto;}
  .footer-logo .logo__name{font-size:25px;}
  .footer-logo .logo__sub{padding-right:0;}
  .footer-nav{grid-area:auto;grid-template-columns:repeat(2,minmax(0,1fr));}
  .footer-sns{grid-area:auto;}
  .footer-cta{grid-area:auto;justify-self:stretch;}
  .footer-cta .btn-res{width:100%;height:52px;}
  .footer-bottom__inner{height:auto;padding:14px 0;flex-direction:column;gap:12px;align-items:flex-start;}
  .copyright{font-size:11px;}

  .page-hero{height:270px;}
  .page-hero__inner{padding-bottom:36px;}
  .page-hero h1{font-size:30px;margin-top:12px;line-height:1.35;}
  .page-hero h1.news-detail__title{font-size:19px;line-height:1.6;}
  .section{padding:56px 0;}
  .section__head{margin-bottom:30px;}
  .section__head .sec-title{font-size:22px;margin-top:12px;}
  .lead-text{font-size:14.5px;line-height:1.95;}
  .card{padding:24px 20px;}
  .card h3{font-size:18px;}
  .job{padding:26px 22px;}
  .job dl{grid-template-columns:1fr;gap:4px 0;}
  .job dt{margin-top:12px;}
  .btn-dark{min-width:100%;height:58px;}
  .step{padding-left:56px;}
  .step::before{font-size:24px;}
  .rank-item{grid-template-columns:44px 74px 1fr;gap:14px;padding:18px 0;}
  .rank-no{font-size:26px;}
  .rank-name{font-size:18px;}
  .rank-shop{font-size:12px;margin-top:7px;}
  .rank-cond{gap:12px;margin-top:26px;}
  .rank-cond__item{width:100%;}
  .rank-cond__label{width:3.5em;}
  .rank-select{flex:1;min-width:0;font-size:14px;}
}

/* =========================================================
   SHOP LIST / THERAPIST LIST / SHOP DETAIL
   ========================================================= */
.filter-bar{
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  margin-bottom:40px;padding-bottom:26px;border-bottom:1px solid var(--line);
}
.filter-chip{
  font-family:var(--jp);font-size:14px;letter-spacing:.06em;line-height:1;
  padding:11px 20px;border:1px solid var(--line);color:var(--ink-2);
  background:transparent;transition:background-color .3s ease,color .3s ease,border-color .3s ease;
}
.filter-chip:hover{border-color:var(--ink-3);}
.filter-chip.is-active{background:var(--dark);border-color:var(--dark);color:#fff;}
.filter-count{margin-left:auto;font-family:var(--en);font-size:14px;letter-spacing:.08em;color:var(--ink-3);}
.filter-count b{font-weight:400;color:var(--ink);font-size:19px;}

/* category tabs (salon / therapist list) */
.cat-tabs{display:flex;border-bottom:1px solid var(--line);}
.cat-tab{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;
  padding:22px 10px;background:transparent;border:none;border-bottom:2px solid transparent;
  cursor:pointer;opacity:.5;transition:opacity .3s ease,border-color .3s ease;
}
.cat-tab:hover{opacity:.85;}
.cat-tab.is-active{opacity:1;border-color:var(--dark);}
.cat-tab__en{font-family:var(--en);font-size:11px;letter-spacing:.2em;color:var(--ink-3);}
.cat-tab__ja{font-size:16px;letter-spacing:.03em;color:var(--ink);}
.cat-tab__count{font-family:var(--en);font-size:11px;letter-spacing:.06em;color:var(--ink-3);}
.cat-panel[hidden]{display:none;}

/* shop grid */
.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:52px 26px;}
.shop-card{display:flex;flex-direction:column;}
.shop-card[hidden]{display:none;}
.shop-card__media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#241d17;}
.shop-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.shop-card:hover .shop-card__media img{transform:scale(1.05);}
.shop-card__badge{
  position:absolute;left:0;top:0;z-index:2;
  background:rgba(18,16,15,.82);color:#fff;
  font-size:12px;letter-spacing:.1em;line-height:1;padding:9px 14px;
}
.shop-card__cat{margin-top:20px;font-size:12px;letter-spacing:.06em;line-height:1.5;color:var(--ink-3);}
.shop-card__name{margin-top:9px;font-size:22px;font-weight:400;letter-spacing:.04em;line-height:1.4;}
.shop-card__access{
  display:flex;align-items:flex-start;gap:7px;margin-top:14px;
  font-size:13.5px;line-height:1.6;letter-spacing:.03em;color:var(--ink-2);
}
.shop-card__access svg{width:14px;height:14px;flex:0 0 auto;margin-top:3px;}
.shop-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;}
.shop-card__tags li{
  font-size:11.5px;letter-spacing:.05em;line-height:1.5;color:var(--ink-3);
  border:1px solid var(--line);padding:4px 10px;
}
.shop-card__foot{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin-top:auto;padding-top:20px;
}
.shop-card__tel{
  font-family:var(--en);font-variant-numeric:lining-nums;font-size:16px;
  letter-spacing:.06em;color:var(--ink);white-space:nowrap;
}
.shop-card__tel:hover{color:#8a6a4a;}
.shop-card__more{font-size:14px;gap:12px;}
.shop-card__more .bar{width:24px;}

/* therapist grid */
.th-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:40px 20px;}
.th-grid .th-card[hidden]{display:none;}
.th-grid .th-card__media{aspect-ratio:4/5;}
.th-grid .th-card__name{margin-top:16px;font-size:17px;}
.th-grid .th-card__shop{margin-top:8px;font-size:12px;line-height:1.55;letter-spacing:.02em;color:var(--ink-3);}
.th-grid .th-card__area{
  display:inline-block;margin-top:9px;font-size:11px;letter-spacing:.08em;line-height:1;
  color:var(--ink-3);border:1px solid var(--line);padding:4px 8px;
}
.th-grid .th-card__areas{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px;}
.th-grid .th-card__areas .th-card__area{margin-top:0;}

/* shop detail */
.shop-hero{position:relative;height:460px;overflow:hidden;background:#171412;display:flex;align-items:flex-end;}
.shop-hero__media{
  position:absolute;inset:0;opacity:0;z-index:1;
  transition:opacity 1.1s cubic-bezier(.45,0,.2,1);
}
.shop-hero__media.is-active{opacity:1;z-index:2;}
.shop-hero__media img{width:100%;height:100%;object-fit:cover;}
.shop-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.3) 45%,rgba(0,0,0,.15) 100%);}
.shop-hero__inner{position:relative;z-index:4;padding-bottom:52px;color:#fff;}
.shop-hero__cat{font-size:13px;letter-spacing:.08em;color:rgba(255,255,255,.75);line-height:1.6;}
.shop-hero__name{margin-top:14px;font-size:38px;font-weight:400;letter-spacing:.05em;line-height:1.35;}
.shop-hero__meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:20px;font-size:14px;letter-spacing:.04em;color:rgba(255,255,255,.88);}
.shop-hero__meta span{display:inline-flex;align-items:center;gap:8px;}
.shop-hero__meta svg{width:15px;height:15px;}
.shop-hero__bars{position:absolute;right:max(20px,calc((100% - min(1120px,100% - 40px)) / 2));bottom:28px;z-index:5;display:flex;gap:8px;padding-right:0;}
.shop-hero__bars span{position:relative;display:block;width:28px;height:1px;background:rgba(255,255,255,.3);overflow:hidden;}
.shop-hero__bars span::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left;}
.shop-hero__bars span.is-done::after{transform:scaleX(1);transition:none;}
.shop-hero__bars span.is-on::after{animation:shopHeroBarFill 3s linear forwards;}
@keyframes shopHeroBarFill{from{transform:scaleX(0);}to{transform:scaleX(1);}}
@media (prefers-reduced-motion:reduce){
  .shop-hero__media{transition-duration:1.6s;}
  .shop-hero__bars span.is-on::after{animation:none;transform:scaleX(1);}
}

/* reservation tag (shop name label above WEB予約 buttons) */
.reserve-tag{
  display:inline-block;font-size:11px;letter-spacing:.06em;line-height:1;
  color:var(--ink-3);border:1px solid var(--line);padding:5px 9px;background:#fff;
}
.reserve-tag--on-dark{color:rgba(255,255,255,.82);border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.08);}
.reserve-group{display:inline-flex;flex-direction:column;align-items:flex-start;gap:8px;}
.hero__cta-group{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:38px;}
.hero__cta-group .hero__cta{margin-top:0;}

.shop-cta{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-top:40px;}
.btn-line{
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  min-width:260px;height:62px;padding:0 28px;
  border:1px solid var(--ink);color:var(--ink);
  font-size:15px;letter-spacing:.08em;transition:background-color .3s ease,color .3s ease;
}
.btn-line:hover{background:var(--ink);color:#fff;}
.btn-line svg{width:17px;height:17px;}
.btn-line--fill{background:#8a6a4a;border-color:#8a6a4a;color:#fff;}
.btn-line--fill:hover{background:#9c7a56;border-color:#9c7a56;color:#fff;}
.btn-line__tel{font-family:var(--en);font-variant-numeric:lining-nums;font-size:22px;letter-spacing:.06em;}

.map-embed{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--line);background:#e5ddd4;}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

.menu-card{border:1px solid var(--line);padding:34px 32px;background:#fbf9f7;}
.menu-card h3{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;font-size:20px;font-weight:400;letter-spacing:.05em;line-height:1.4;}
.menu-card h3 .en{font-family:var(--en);font-size:12px;letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase;}
.menu-card p{margin-top:14px;font-size:14.5px;line-height:1.95;color:var(--ink-2);}

@media (max-width:1180px){
  .shop-grid{grid-template-columns:repeat(2,1fr);gap:44px 22px;}
  .th-grid{grid-template-columns:repeat(4,1fr);gap:34px 18px;}
  .shop-hero{height:380px;}
  .shop-hero__name{font-size:30px;}
}
@media (max-width:860px){
  .th-grid{grid-template-columns:repeat(3,1fr);}
  .filter-count{flex:1 1 100%;margin-left:0;order:-1;}
}
@media (max-width:640px){
  .shop-grid{grid-template-columns:1fr;gap:40px;}
  .th-grid{grid-template-columns:repeat(2,1fr);gap:28px 14px;}
  .filter-bar{gap:8px;margin-bottom:30px;}
  .filter-chip{font-size:12.5px;padding:9px 14px;}
  .cat-tab{padding:16px 6px;gap:5px;}
  .cat-tab__ja{font-size:13.5px;}
  .cat-tab__en{font-size:10px;}
  .shop-card__name{font-size:19px;}
  .shop-hero{height:440px;}
  .shop-hero__inner{padding-bottom:28px;}
  .shop-hero__name{font-size:24px;}
  .shop-hero__meta{font-size:12.5px;gap:8px 16px;}
  .hero__cta-group{margin-top:22px;gap:8px;}
  .reserve-tag{font-size:10px;padding:4px 8px;}
  .btn-line{min-width:100%;height:58px;}
  .btn-line__tel{font-size:19px;}
  .menu-card{padding:24px 20px;}
  .th-grid .th-card__name{font-size:15px;}
  .th-grid .th-card__shop{font-size:11px;}
}

/* =========================================================
   THERAPIST PROFILE
   ========================================================= */
.th-profile{display:grid;grid-template-columns:400px 1fr;gap:64px;align-items:start;}
.th-profile__media{position:relative;aspect-ratio:4/5;overflow:hidden;background:#e5ddd4;}
.th-profile__media img{width:100%;height:100%;object-fit:cover;}
.th-profile__role{
  display:inline-block;font-size:12px;letter-spacing:.09em;line-height:1;
  color:#fff;background:#8a6a4a;padding:8px 14px;
}
.th-profile__name{display:flex;align-items:baseline;gap:18px;margin-top:20px;}
.th-profile__name h1{font-family:var(--en);font-size:46px;font-weight:400;letter-spacing:.08em;line-height:1;}
.th-profile__kana{font-size:15px;letter-spacing:.14em;color:var(--ink-3);}
.th-profile__catch{
  margin-top:26px;padding-left:20px;border-left:2px solid #8a6a4a;
  font-size:22px;line-height:1.7;letter-spacing:.04em;color:var(--ink);
}
.th-profile__intro{margin-top:30px;font-size:16px;line-height:2.05;letter-spacing:.04em;color:var(--ink-2);}
.th-profile__source{margin-top:16px;font-size:12.5px;letter-spacing:.04em;color:var(--ink-4);}
.th-spec{width:100%;border-collapse:collapse;margin-top:38px;border-top:1px solid var(--line);}
.th-spec th,.th-spec td{border-bottom:1px solid var(--line);padding:16px 6px;text-align:left;font-size:15px;line-height:1.7;vertical-align:top;letter-spacing:.04em;}
.th-spec th{width:130px;font-weight:400;color:var(--ink-3);}
.th-spec td{color:var(--ink-2);}
.th-spec a{border-bottom:1px solid var(--line);}
.th-spec a:hover{color:#8a6a4a;border-color:#8a6a4a;}
.th-profile__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}

.skill-tags{display:flex;flex-wrap:wrap;gap:10px;}
.skill-tags li{
  font-size:14.5px;letter-spacing:.05em;line-height:1;color:var(--ink-2);
  border:1px solid var(--line);padding:13px 20px;background:#fbf9f7;
}

/* hobby gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:38px;}
.gallery figure{margin:0;}
.gallery__ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:#ece5dd;}
.gallery__ph img{width:100%;height:100%;object-fit:cover;}
.gallery__ph--empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px dashed rgba(27,25,23,.18);background:#f4efe9;}
.gallery__ph--empty svg{width:30px;height:30px;color:var(--ink-4);}
.gallery__ph--empty span{font-family:var(--en);font-size:11px;letter-spacing:.18em;color:var(--ink-4);}
.gallery figcaption{margin-top:14px;font-size:14.5px;line-height:1.75;letter-spacing:.03em;color:var(--ink-2);}

@media (max-width:1180px){
  .th-profile{grid-template-columns:320px 1fr;gap:44px;}
  .th-profile__name h1{font-size:38px;}
  .th-profile__catch{font-size:19px;}
}
@media (max-width:860px){
  .th-profile{grid-template-columns:260px 1fr;gap:32px;}
  .gallery{gap:20px;}
}
@media (max-width:640px){
  .th-profile{grid-template-columns:1fr;gap:28px;}
  .th-profile__media{max-width:280px;}
  .th-profile__name{gap:12px;margin-top:16px;}
  .th-profile__name h1{font-size:32px;}
  .th-profile__catch{margin-top:20px;padding-left:14px;font-size:17px;}
  .th-profile__intro{margin-top:22px;font-size:14.5px;line-height:1.95;}
  .th-spec{margin-top:28px;}
  .th-spec th,.th-spec td{display:block;width:auto;padding:12px 4px;}
  .th-spec th{border-bottom:0;padding-bottom:0;font-size:13px;}
  .skill-tags li{font-size:13px;padding:11px 15px;}
  .gallery{grid-template-columns:1fr 1fr;gap:16px;margin-top:26px;}
  .gallery figcaption{margin-top:10px;font-size:12.5px;}
}

/* =========================================================
   SCROLL MOTION
   ========================================================= */
.has-motion .js-reveal{
  opacity:0;
  transform:translate3d(0,32px,0);
  transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--reveal-delay,0ms);
}
.has-motion .js-reveal.is-in{opacity:1;transform:none;}
.has-motion .about__media,
.has-motion .news__photo{overflow:hidden;}
.has-motion .js-parallax{
  transform:translate3d(0,var(--py,0px),0) scale(1.08);
  will-change:transform;
}
.has-motion .page-hero::before{
  transform:translate3d(0,var(--py,0px),0) scale(1.12);
  will-change:transform;
}
.has-motion .watermark{
  transform:translate3d(0,var(--wy,0px),0);
  will-change:transform;
}
@media (prefers-reduced-motion:reduce){
  .has-motion .js-reveal{opacity:1;transform:none;transition:none;}
  .has-motion .js-parallax,
  .has-motion .page-hero::before,
  .has-motion .watermark{transform:none;}
}

/* =========================================================
   COLUMN
   ========================================================= */
.column-list{margin-top:8px;}
.column-card{border-bottom:1px solid var(--line);}
.column-card a{display:grid;grid-template-columns:132px 1fr;gap:8px 36px;padding:32px 4px;}
.column-card time{font-family:var(--en);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-size:13px;letter-spacing:.08em;color:var(--ink-4);line-height:1.6;}
.column-card__cat{justify-self:start;font-size:12px;letter-spacing:.08em;color:var(--ink-3);border:1px solid var(--line);padding:4px 10px;line-height:1.4;}
.column-card__title{grid-column:2;font-size:22px;font-weight:400;letter-spacing:.04em;line-height:1.55;}
.column-card__excerpt{grid-column:2;margin-top:10px;font-size:15px;line-height:1.9;letter-spacing:.04em;color:var(--ink-2);}
.column-card__more{grid-column:2;margin-top:16px;font-family:var(--en);font-size:13px;letter-spacing:.12em;color:var(--ink-3);}
.column-card a:hover .column-card__title{color:#8a6a4a;}
.column-article{max-width:740px;}
.column-meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin-bottom:32px;}
.column-meta time{font-family:var(--en);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-size:14px;letter-spacing:.08em;color:var(--ink-4);}
.column-meta .tag{font-size:12px;letter-spacing:.08em;color:var(--ink-3);border:1px solid var(--line);padding:5px 12px;line-height:1.4;}
.column-body p{font-size:16.5px;line-height:2.15;letter-spacing:.04em;color:var(--ink-2);}
.column-body p+p{margin-top:1.35em;}
.column-body h2{margin:52px 0 16px;font-size:26px;font-weight:400;letter-spacing:.06em;line-height:1.45;color:var(--ink);}
.column-body h3{margin:32px 0 12px;font-size:19px;font-weight:400;letter-spacing:.05em;line-height:1.5;color:var(--ink);}
.column-body ul{margin:14px 0 0 1.2em;}
.column-body li{margin-top:8px;font-size:16px;line-height:1.9;letter-spacing:.04em;color:var(--ink-2);list-style:disc;}
.column-body a{border-bottom:1px solid rgba(138,106,74,.45);}
/* column footer: unwrapped */
.column-related{display:grid;gap:0;margin-top:18px;border-top:1px solid var(--line);}
.column-related a{display:block;padding:18px 0;border-bottom:1px solid var(--line);font-size:16px;letter-spacing:.04em;line-height:1.6;}
.column-related a:hover{color:#8a6a4a;}
.column-related time{display:block;margin-bottom:6px;font-family:var(--en);font-size:12px;letter-spacing:.08em;color:var(--ink-4);}
@media (max-width:640px){
  .column-card a{grid-template-columns:1fr;gap:10px;padding:24px 0;}
  .column-card__title,.column-card__excerpt,.column-card__more{grid-column:1;}
  .column-card__title{font-size:18px;}
  .column-body p,.column-body li{font-size:15px;line-height:2;}
  .column-body h2{margin-top:40px;font-size:21px;}
  .column-body h3{font-size:17px;}
}

/* ---------- rich text (admin editor output) ---------- */
.rich>*:first-child{margin-top:0;}.rich>*:last-child{margin-bottom:0;}
.rich p{margin:0 0 1.2em;}
.rich h2{margin:1.8em 0 .6em;font-size:1.5em;font-weight:400;letter-spacing:.06em;line-height:1.45;color:var(--ink);}
.rich h3{margin:1.5em 0 .5em;font-size:1.2em;font-weight:400;letter-spacing:.05em;line-height:1.5;color:var(--ink);}
.rich h4{margin:1.3em 0 .4em;font-size:1.05em;font-weight:500;letter-spacing:.05em;color:var(--ink);}
.rich ul,.rich ol,.column-body ol{margin:0 0 1.2em 1.4em;padding:0;}
.rich ul li,.column-body ul li{list-style:disc;}
.rich ol li,.column-body ol li{list-style:decimal;margin-top:8px;font-size:16px;line-height:1.9;letter-spacing:.04em;color:var(--ink-2);}
.rich li{margin-top:.4em;}.rich li p{margin:0;}
.rich a{border-bottom:1px solid rgba(138,106,74,.45);}
.rich blockquote,.column-body blockquote{margin:1.6em 0;padding:.2em 0 .2em 1.3em;border-left:2px solid #8a6a4a;color:var(--ink-3);}
.rich blockquote p,.column-body blockquote p{margin:0;}
.rich img,.column-body img{max-width:100%;height:auto;display:block;margin:1.6em auto;}
.rich hr,.column-body hr{border:0;border-top:1px solid var(--line);margin:2.2em 0;}
.rich table,.column-body table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:.95em;}
.rich th,.rich td,.column-body th,.column-body td{border:1px solid var(--line);padding:.7em 1em;text-align:left;vertical-align:top;line-height:1.8;}
.rich th,.column-body th{background:rgba(27,25,23,.04);font-weight:500;}
.rich td p,.rich th p,.column-body td p,.column-body th p{margin:0;font-size:inherit;}
.rich u,.column-body u{text-underline-offset:4px;}
.rich[style*="center"],.rich.is-center{text-align:center;}

/* ---------- member link (header / drawer) ---------- */
.member-link{display:inline-flex;align-items:center;gap:8px;color:#fff;margin-right:20px;font-family:var(--en);font-size:14px;letter-spacing:.09em;vertical-align:middle;transition:opacity .2s;}
.member-link:hover{opacity:.7;}
.member-link svg{width:24px;height:24px;}
.member-link span{display:none;}
.header-cta{display:flex;align-items:center;}
@media (min-width:1680px){.member-link span{display:inline;}}

.rank-item--store .rank-thumb{aspect-ratio:4/3}.rank-item--store .rank-thumb img{object-fit:cover}@media(max-width:760px){.js-rank-tabs .cat-tab__ja{font-size:11px}.js-rank-tabs .cat-tab__en{font-size:8px;letter-spacing:.08em}}
