/* =========================================================
   Lumière Hair Salon - main.css
   ベースカラー：
     #fff / #fdf8f7 / #f7f2ef    背景
     #d68ba2 / #c97f94            ダスティピンク
     #b8a08b / #7b6559            ベージュ/ブラウン
     #c9a96b                      ゴールドアクセント
========================================================= */

:root{
  --c-bg:#fff;
  --c-bg-soft:#fdf8f7;
  --c-bg-deep:#f7f2ef;
  --c-pink:#d68ba2;
  --c-pink-deep:#c97f94;
  --c-beige:#b8a08b;
  --c-brown:#7b6559;
  --c-gold:#c9a96b;
  --c-text:#444;
  --c-title:#222;
  --c-line:#e8ddd5;
  --font-jp:"Noto Serif JP","Hiragino Mincho ProN",serif;
  --font-sans:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  --font-en:"Cormorant Garamond",serif;
  --radius:18px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--c-text);
  line-height:1.8;
  background:linear-gradient(to bottom,#fff 0%,#fdf8f7 50%,#f7f2ef 100%);
  -webkit-text-size-adjust:100%;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;color:var(--c-title);font-weight:700;line-height:1.4}
p{margin:0}

/* =========================================================
   Header
========================================================= */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(8px);
  -webkit-backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid rgba(184,160,139,.15);
}
.site-header__inner{
  max-width:1280px;
  margin:0 auto;
  padding:14px 24px;
  display:flex;
  align-items:center;
  gap:32px;
}
.brand{display:flex;align-items:center;gap:10px}
.brand__mark{
  font-family:var(--font-en);
  font-size:26px;
  color:var(--c-beige);
  border:1.5px solid rgba(184,160,139,.75);
  width:50px;height:50px;
  border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  letter-spacing:0;
  outline:1.5px solid rgba(184,160,139,.38);
  outline-offset:4px;
  background:#fff;
}
.brand__name{
  font-family:var(--font-en);
  font-size:22px;
  font-weight:500;
  color:var(--c-brown);
  display:block;line-height:1.2;
  white-space:nowrap;
}
.brand__name span{font-style:italic}
.brand__name small{
  display:block;
  font-family:var(--font-sans);
  font-size:10px;
  letter-spacing:.25em;
  color:var(--c-beige);
  margin-top:2px;
}
.brand--dark .brand__name{color:#fff}
.brand--dark .brand__mark{color:#fff;border-color:#fff}
.brand--dark .brand__name small{color:rgba(255,255,255,.7)}
.site-footer .brand__mark{color:var(--c-beige);border-color:rgba(184,160,139,.75);background:#fff}
.site-footer .brand__name{color:var(--c-brown)}
.site-footer .brand__name small{color:var(--c-beige)}
/* Custom Logo */
.custom-logo-link{display:block;line-height:1}
.site-header__logo .custom-logo{width:110px;height:auto;display:block}
.site-footer__brand .custom-logo-link{display:block}
.site-footer__brand .custom-logo{width:120px;height:auto;display:block}

.site-nav{flex:1}
.site-nav__list{display:flex;gap:30px;font-size:15px}
.site-nav__list a{color:var(--c-brown);transition:color .2s}
.site-nav__list a:hover{color:var(--c-pink-deep)}

.site-header__cta{display:flex;gap:10px;align-items:center}
.hbtn{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:84px;height:48px;padding:0 18px;
  border-radius:8px;font-size:13px;font-weight:500;line-height:1.2;
  border:1px solid transparent;
}
.hbtn i{font-size:14px;margin-bottom:2px}
.hbtn--reserve{background:transparent;color:var(--c-pink);border-color:var(--c-pink)}
.hbtn--reserve:hover{background:rgba(214,139,162,.08)}
.hbtn--tel{background:var(--c-beige);color:#fff}
.hbtn--tel:hover{background:var(--c-brown)}
.site-header__toggle{display:none;background:none;border:0;cursor:pointer;width:36px;height:36px;flex-direction:column;justify-content:center;gap:5px;padding:0}
.site-header__toggle span{display:block;width:22px;height:1.5px;background:var(--c-brown);margin:0 auto}

/* =========================================================
   Buttons
========================================================= */
.btn-main,.btn-sub,.btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;
  gap:8px;
  padding:0 32px;height:54px;
  font-weight:500;letter-spacing:.05em;
  border-radius:999px;
  transition:transform .2s,box-shadow .2s,background .2s;
  text-align:center;
}
.btn-main{
  background:var(--c-pink);color:#fff;
  box-shadow:0 8px 22px rgba(214,139,162,.32);
  flex-direction:column;line-height:1.2;
}
.btn-main small{font-size:11px;letter-spacing:.08em;opacity:.9}
.btn-main span{font-size:16px}
.btn-main:hover{background:var(--c-pink-deep);transform:translateY(-2px)}
.btn-main--lg{height:64px;padding:0 40px;min-width:240px}

.btn-sub{
  background:#fff;color:var(--c-brown);
  border:1px solid var(--c-line);
}
.btn-sub:hover{background:var(--c-bg-soft)}
.btn-sub--lg{height:64px;padding:0 24px;white-space:nowrap}

.btn-ghost{
  background:transparent;color:var(--c-brown);
  border:1px solid var(--c-line);
  height:50px;font-size:14px;padding:0 36px;
}
.btn-ghost:hover{background:#fff}

/* =========================================================
   Section title
========================================================= */
.sec-title{
  text-align:center;
  margin:0 auto 50px;
  font-family:var(--font-jp);
}
.sec-title small{
  display:block;
  font-family:var(--font-en);
  font-size:14px;
  letter-spacing:.3em;
  color:var(--c-gold);
  margin-bottom:8px;
  font-weight:500;
}
.sec-title span{
  font-size:30px;
  color:var(--c-title);
  font-weight:500;
}

/* =========================================================
   Hero
========================================================= */
.hero{position:relative;padding:0;overflow:hidden}
.hero__inner{position:relative;overflow:hidden;height:max(680px,calc(100vh - 80px));}
.hero__sub{
  font-family:var(--font-jp);
  font-size:27px;
  color:var(--c-title);
  letter-spacing:.04em;
  margin-bottom:6px;
  font-weight:500;
}
.hero__title{
  font-family:var(--font-jp);
  font-size:44px;
  color:var(--c-pink-deep);
  letter-spacing:.02em;
  line-height:1.45;
  margin-bottom:24px;
  font-weight:600;
}
.hero__text{font-size:15px;line-height:2;color:var(--c-brown);margin-bottom:36px}
.hero__btns{display:flex;gap:16px;align-items:center}
.hero__image{position:absolute;inset:0;z-index:1;overflow:visible;background:transparent;padding-top:50px}
.hero__image img{width:100%;height:100%;object-fit:contain;object-position:45% bottom;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 15%,#000 55%,transparent 90%),linear-gradient(to bottom,transparent 0%,#000 8%,#000 92%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0%,#000 15%,#000 55%,transparent 90%),linear-gradient(to bottom,transparent 0%,#000 8%,#000 92%,transparent 100%);mask-composite:intersect}
.hero__rating{
  position:absolute;right:18%;bottom:5%;z-index:20;
  width:150px;height:150px;border-radius:50%;
  background:rgba(255,255,255,.97);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  box-shadow:0 4px 20px rgba(0,0,0,.10);
}
.hero__rating-label{font-size:11px;color:var(--c-brown);letter-spacing:.15em}
.hero__rating-value{
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:46px;font-weight:600;
  color:var(--c-gold);line-height:1;margin:2px 0;
}
.hero__rating-stars{color:var(--c-gold);font-size:13px;letter-spacing:.08em}
.hero__rating-note{position:absolute;right:18%;bottom:calc(10% - 60px);width:136px;text-align:center;font-size:11px;color:#000;white-space:nowrap;z-index:20}

/* hero: page-load animations */
@keyframes hero-copy-in{
  from{opacity:0;transform:translateX(-28px)}
  to{opacity:1;transform:none}
}
@keyframes hero-img-in{
  from{opacity:0;transform:scale(1.04)}
  to{opacity:1;transform:none}
}
@keyframes hero-badge-pop{
  from{opacity:0;transform:scale(.55)}
  to{opacity:1;transform:none}
}
.hero__copy{position:relative;z-index:2;width:clamp(40px,7vh,80px) 0px);height:100%;padding:clamp(40px,7vh,80px) 0px clamp(30px,5vh,60px) clamp(40px,70.5vw,130px);display:flex;flex-direction:column;justify-content:center;animation:hero-copy-in .9s cubic-bezier(.25,.46,.45,.94) .1s both}
.hero__image{animation:hero-img-in 1.15s cubic-bezier(.25,.46,.45,.94) both}
.hero__rating{animation:hero-badge-pop .75s cubic-bezier(.34,1.56,.64,1) .7s both}

/* hero: left gradient fade DISABLED - mask handles fade */
.hero__image::before{display:none}

/* hero: right-edge background-blend overlay */
.hero__image::after{
  content:'';
  position:absolute;top:0;right:0;bottom:0;
  width:55%;
  background:linear-gradient(to right,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 30%,rgba(253,248,247,.5) 60%,rgba(253,248,247,.9) 85%,#fdf8f7 100%);
  z-index:2;pointer-events:none;
}

/* =========================================================
   Strengths
========================================================= */
.strengths{padding:80px 5%}
.strengths__inner{max-width:1180px;margin:0 auto}
.strengths__grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:36px;
}
.strength{text-align:center}
.strength__icon{
  width:70px;height:70px;margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--c-line);border-radius:50%;
  color:var(--c-beige);font-size:26px;
  background:#fff;
}
.strength__title{
  font-family:var(--font-jp);font-size:18px;color:var(--c-title);
  margin-bottom:12px;font-weight:600;
}
.strength__text{font-size:13.5px;line-height:1.9;color:var(--c-brown)}

/* =========================================================
   Stats
========================================================= */
.stats{padding:0 5% 80px}
.stats__inner{
  max-width:1180px;margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  background:linear-gradient(135deg,#b8a08b 0%,#a48971 100%);
  border-radius:18px;padding:30px 20px;
  color:#fff;
}
.stat{
  display:flex;align-items:center;justify-content:center;gap:14px;
  padding:8px 14px;border-right:1px solid rgba(255,255,255,.2);
}
.stat:last-child{border-right:none}
.stat__icon{
  width:52px;height:52px;border-radius:50%;
  background:rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;font-size:22px;
}
.stat__body{text-align:left}
.stat__label{font-size:11px;letter-spacing:.1em;opacity:.92;margin-bottom:2px}
.stat__value{
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:26px;font-weight:600;line-height:1.2;
}
.stat__value small{font-family:var(--font-sans);font-size:13px;font-weight:400;margin-left:2px}
.stat__note{font-size:9px;color:rgba(255,255,255,.6);margin-top:3px;letter-spacing:0;line-height:1.3}

/* =========================================================
   Menus
========================================================= */
.menus{padding:60px 5% 80px}
.menus__inner{max-width:1180px;margin:0 auto}
.menus__grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
}
.menu-card{
  background:#fff;border-radius:14px;overflow:hidden;
  box-shadow:0 4px 18px rgba(184,160,139,.08);
  transition:transform .25s,box-shadow .25s;
}
.menu-card:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(184,160,139,.16)}
.menu-card__thumb{aspect-ratio:1/1;overflow:hidden;background:#f0e8e0}
.menu-card__thumb img{width:100%;height:100%;object-fit:cover}
.menu-card__body{padding:20px 18px 22px;text-align:center}
.menu-card__title{
  font-family:var(--font-jp);font-size:18px;color:var(--c-title);
  margin-bottom:8px;font-weight:600;
}
.menu-card__text{font-size:12.5px;line-height:1.8;color:var(--c-brown);min-height:64px}
.menu-card__price{
  font-family:"Helvetica Neue",Arial,sans-serif;font-size:24px;color:var(--c-pink-deep);
  font-weight:600;margin-top:10px;
}
.menu-card__price small{font-family:var(--font-sans);font-size:13px;color:var(--c-brown);font-weight:400}
.menus__more{text-align:center;margin-top:40px}

/* =========================================================
   Flow
========================================================= */
.flow{padding:80px 5%}
.flow__inner{max-width:1180px;margin:0 auto}
.flow__layout{
  display:grid;grid-template-columns:1.05fr 1fr;gap:50px;align-items:stretch;
}
.flow__list{display:flex;flex-direction:column;gap:18px}
.flow__item{
  position:relative;display:flex;align-items:center;gap:18px;
  padding:18px 22px;border-radius:18px;background:#fff;
  box-shadow:0 4px 14px rgba(184,160,139,.07);
}
.flow__num{
  width:38px;height:38px;flex-shrink:0;border-radius:50%;
  background:var(--c-beige);color:#fff;
  font-family:var(--font-en);font-weight:600;font-size:18px;
  display:flex;align-items:center;justify-content:center;
}
.flow__icon{
  width:46px;height:46px;border-radius:50%;
  background:var(--c-bg-soft);color:var(--c-beige);
  display:flex;align-items:center;justify-content:center;font-size:18px;
  flex-shrink:0;
}
.flow__title{font-family:var(--font-jp);font-size:16px;color:var(--c-title);margin-bottom:4px;font-weight:600}
.flow__text{font-size:12.5px;line-height:1.7;color:var(--c-brown)}
.flow__image{position:relative;border-radius:20px;overflow:hidden;background:#eee;min-height:0}
.flow__image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* =========================================================
   Voices
========================================================= */
.voices{padding:60px 5% 80px}
.voices__inner{max-width:1180px;margin:0 auto}
.voices__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.voice{
  background:#fff;border-radius:14px;padding:24px 22px;
  box-shadow:0 4px 14px rgba(184,160,139,.07);
}
.voice__head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.voice__avatar{
  width:54px;height:54px;border-radius:50%;overflow:hidden;flex-shrink:0;background:#eee;
}
.voice__avatar img{width:100%;height:100%;object-fit:cover}
.voice__title{font-family:var(--font-jp);font-size:15px;color:var(--c-pink-deep);font-weight:600}
.voice__text{font-size:13px;line-height:1.9;color:var(--c-brown);margin-bottom:14px}
.voice__name{font-size:12px;color:#999;display:flex;justify-content:space-between;align-items:center}
.voice__stars{color:var(--c-gold);letter-spacing:.05em}
.voices__note{text-align:right;font-size:11px;color:#999;margin-top:16px}

/* =========================================================
   CTA banner
========================================================= */
.cta-banner{padding:60px 5% 100px}
.cta-banner__inner{
  max-width:1180px;margin:0 auto;
  display:grid;grid-template-columns:.7fr 1fr .9fr;gap:30px;align-items:center;
  background:linear-gradient(135deg,#fdf2ee 0%,#f7e8e0 100%);
  border-radius:20px;padding:36px 36px;
  position:relative;overflow:hidden;
}
.cta-banner__copy{text-align:center;padding-right:10px;border-right:1px solid rgba(184,160,139,.2)}
.cta-banner__badge{
  display:inline-block;font-size:12px;letter-spacing:.1em;
  color:#fff;background:var(--c-brown);padding:4px 14px;border-radius:999px;
  margin-bottom:10px;
}
.cta-banner__off{
  font-family:"Helvetica Neue",Arial,sans-serif;font-weight:600;color:var(--c-brown);
  font-size:24px;display:flex;align-items:baseline;justify-content:center;gap:4px;
}
.cta-banner__off strong{font-size:64px;color:var(--c-pink-deep);line-height:1}
.cta-banner__off span{font-size:24px}
.cta-banner__msg{text-align:center}
.cta-banner__title{font-family:var(--font-jp);font-size:18px;color:var(--c-title);margin-bottom:18px}
.cta-banner__image{aspect-ratio:5/3;border-radius:14px;overflow:hidden;background:#eee}
.cta-banner__image img{width:100%;height:100%;object-fit:cover}

/* =========================================================
   Footer
========================================================= */
.site-footer{
  background:#fff;padding:60px 5% 30px;
  border-top:1px solid var(--c-line);
}
.site-footer__inner{
  max-width:1180px;margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.3fr 1.4fr 1fr 1fr;
  gap:30px;align-items:center;
}
.site-footer__brand .brand{flex-direction:column;align-items:flex-start;gap:0}
.site-footer__brand .brand__name{flex-direction:column;color:var(--c-brown)}
.addr{font-size:12px;line-height:1.9;color:var(--c-brown)}
.ftel{font-family:"Helvetica Neue",Arial,sans-serif;font-size:26px;color:var(--c-brown);font-weight:600}
.ftel i{color:var(--c-pink);font-size:18px;margin-right:6px}
.fhours,.fclose{font-size:12px;color:var(--c-brown);margin-top:6px}
.fhours span,.fclose span{font-weight:600;margin-right:8px;color:var(--c-title)}
.site-footer__menu{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--c-brown)}
.site-footer__cta{display:flex;flex-direction:column;gap:10px}
.site-footer__cta .btn-main,.site-footer__cta .btn-sub{height:44px;font-size:14px;padding:0 22px;flex-direction:row}
.site-footer__sns{
  grid-column:1 / -1;display:flex;justify-content:flex-end;gap:14px;
  border-top:1px solid var(--c-line);padding-top:20px;margin-top:14px;
}
.site-footer__sns a{
  width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--c-line);color:var(--c-brown);font-size:14px;
  transition:background .2s,color .2s;
}
.site-footer__sns a:hover{background:var(--c-pink);color:#fff;border-color:var(--c-pink)}

.site-footer__bottom{
  max-width:1180px;margin:30px auto 0;padding-top:18px;
  display:flex;justify-content:space-between;align-items:center;
  font-size:11px;color:#999;border-top:1px solid var(--c-line);
}
.site-footer__bottom ul{display:flex;gap:18px}

/* =========================================================
   予約フォームページ
========================================================= */
.reserve-page{padding:80px 5% 100px}
.reserve-page__inner{max-width:760px;margin:0 auto}
.reserve-page__head{text-align:center;margin-bottom:48px}
.reserve-page__title{font-family:var(--font-en);font-size:36px;color:var(--c-brown);margin:8px 0 16px}
.reserve-page__lead{font-size:15px;color:var(--c-brown-light);line-height:1.9}

/* フォーム */
.reserve-form{background:#fff;border:1px solid var(--c-line);border-radius:16px;padding:48px 52px}
.reserve-form__group{margin-bottom:28px}
.reserve-form__row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.reserve-form__label{display:block;font-size:14px;font-weight:500;color:var(--c-brown);margin-bottom:8px}
.badge-required{display:inline-block;background:var(--c-pink);color:#fff;font-size:11px;padding:2px 7px;border-radius:3px;margin-left:6px;vertical-align:middle}
.badge-optional{display:inline-block;background:var(--c-beige);color:#fff;font-size:11px;padding:2px 7px;border-radius:3px;margin-left:6px;vertical-align:middle}
.reserve-form__input,
.reserve-form__select,
.reserve-form__textarea{
  width:100%;padding:12px 16px;
  border:1.5px solid var(--c-line);border-radius:8px;
  font-size:15px;font-family:var(--font-jp);color:var(--c-brown);
  background:#faf9f7;
  transition:border-color .2s,box-shadow .2s;
  outline:none;
  -webkit-appearance:none;appearance:none;
}
.reserve-form__input:focus,
.reserve-form__select:focus,
.reserve-form__textarea:focus{
  border-color:var(--c-pink);
  box-shadow:0 0 0 3px rgba(224,173,177,.18);
  background:#fff;
}
.reserve-form__input::placeholder,
.reserve-form__textarea::placeholder{color:rgba(138,105,86,.4)}
.reserve-form__select-wrap{position:relative}
.reserve-form__select-wrap::after{
  content:'\f078';font-family:'Font Awesome 6 Free';font-weight:900;
  position:absolute;right:16px;top:50%;transform:translateY(-50%);
  color:var(--c-beige);font-size:12px;pointer-events:none;
}
.reserve-form__textarea{resize:vertical;min-height:130px}

/* プライバシー同意 */
.reserve-form__privacy{margin-bottom:28px}
.reserve-form__check{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:var(--c-brown-light)}
.reserve-form__check input[type=checkbox]{width:18px;height:18px;accent-color:var(--c-pink);cursor:pointer;flex-shrink:0}
.reserve-form__check a{color:var(--c-pink-deep);text-decoration:underline}

/* 送信ボタン */
.reserve-form__submit{text-align:center}
.reserve-form__btn{width:100%;max-width:360px;position:relative}
.reserve-form__btn-loading{display:none}
.reserve-form__btn.is-loading .reserve-form__btn-text{display:none}
.reserve-form__btn.is-loading .reserve-form__btn-loading{display:block}
.reserve-form__btn.is-loading{opacity:.7;cursor:not-allowed}

/* 結果メッセージ */
.reserve-form__result{margin-top:24px;text-align:center}
.reserve-result{padding:16px 24px;border-radius:8px;font-size:15px;display:inline-block}
.reserve-result--success{background:#edf7f0;color:#2a7a47;border:1px solid #b4e3c9}
.reserve-result--success i{color:#2a7a47;margin-right:8px}
.reserve-result--error{background:#fdf0f0;color:#c0392b;border:1px solid #f5c6c6}
.reserve-result--error i{color:#c0392b;margin-right:8px}

/* 注意書き */
.reserve-note{margin-top:52px;padding:28px 36px;background:var(--c-cream);border-radius:12px}
.reserve-note__title{font-size:16px;font-weight:600;color:var(--c-brown);margin-bottom:14px}
.reserve-note__title i{color:var(--c-pink);margin-right:8px}
.reserve-note__list{list-style:none;padding:0;margin:0;font-size:14px;color:var(--c-brown-light);line-height:1.9}
.reserve-note__list li{padding-left:1em;text-indent:-1em}
.reserve-note__list li::before{content:'・'}
.reserve-note__list a{color:var(--c-pink-deep)}

/* 1024px → 761px: fixed image size — does NOT shrink with viewport */
@media (max-width:1024px) and (min-width:761px){
  .hero__image img{
    width:1024px;
    height:100%;
    max-width:none;
    object-fit:cover;
    object-position:45% bottom;
    position:absolute;
    bottom:0;
    right:0;
  }
  .hero__image::after{width:35%}
}

@media(max-width:760px){
  .reserve-page{padding:48px 5% 80px}
  .reserve-form{padding:28px 20px}
  .reserve-form__row{grid-template-columns:1fr}
  .reserve-note{padding:20px 18px}
}

/* =========================================================
   SP Fixed CTA
========================================================= */
.sp-fixed-cta{
  position:fixed;left:0;right:0;bottom:0;
  display:none;grid-template-columns:repeat(3,1fr);
  z-index:60;
  background:rgba(255,255,255,.96);
  border-top:1px solid var(--c-line);
  box-shadow:0 -4px 20px rgba(0,0,0,.06);
}
.sp-cta{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:8px 0;font-size:11px;color:#fff;
}
.sp-cta i{font-size:18px;margin-bottom:2px}
.sp-cta--web{background:var(--c-pink)}
.sp-cta--tel{background:var(--c-beige)}
.sp-cta--line{background:#06c755}

/* =========================================================
   Blog
========================================================= */
.page-head{padding:60px 5% 30px;text-align:center}
.page-head__title{
  font-family:var(--font-jp);font-size:34px;color:var(--c-title);
  margin-bottom:10px;
}
.page-head__sub{color:var(--c-brown);font-size:13px;letter-spacing:.1em}
.page-body{padding:50px 0 80px}
.page-body__inner{max-width:800px;margin:0 auto;padding:0 5%}
.page-body__inner h2{font-family:var(--font-jp);font-size:22px;color:var(--c-brown);border-bottom:2px solid var(--c-line);padding-bottom:10px;margin:40px 0 16px}
.page-body__inner h3{font-family:var(--font-jp);font-size:17px;color:var(--c-pink-deep);margin:28px 0 10px}
.page-body__inner p{line-height:2;margin-bottom:16px;font-size:15px}
.page-body__inner table{width:100%;border-collapse:collapse;font-size:14px;margin:20px 0}
.page-body__inner table th{background:var(--c-bg-deep);color:var(--c-brown);padding:12px 16px;text-align:left;border:1px solid var(--c-line);width:30%;font-weight:700;font-family:var(--font-jp)}
.page-body__inner table td{padding:12px 16px;border:1px solid var(--c-line);line-height:1.8}
.page-body__inner ul{padding-left:1.5em;margin-bottom:16px}
.page-body__inner ul li{line-height:2;font-size:15px}
.blog-list{padding:30px 5% 80px}
.blog-list__inner{max-width:1180px;margin:0 auto}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.post-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 14px rgba(184,160,139,.07)}
.post-card__thumb{aspect-ratio:16/10;background:#eee;display:block;overflow:hidden}
.post-card__thumb img{width:100%;height:100%;object-fit:cover}
.post-card__body{padding:18px 18px 22px}
.post-card__meta{font-size:12px;color:#999;margin-bottom:6px}
.post-card__title{font-family:var(--font-jp);font-size:16px;margin-bottom:8px;line-height:1.5}
.post-card__title a:hover{color:var(--c-pink-deep)}
.post-card__excerpt{font-size:13px;color:var(--c-brown);line-height:1.8}
.pager{display:flex;justify-content:center;margin-top:40px}
.pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--c-line);color:var(--c-brown);margin:0 4px;font-size:13px}
.pager .page-numbers.current{background:var(--c-pink);color:#fff;border-color:var(--c-pink)}

.single-page{padding:30px 5% 80px}
.single{max-width:780px;margin:0 auto;background:#fff;border-radius:18px;padding:40px 40px 50px;box-shadow:0 4px 14px rgba(184,160,139,.07)}
.breadcrumb{font-size:12px;color:#999;margin-bottom:18px}
.breadcrumb a:hover{color:var(--c-pink-deep)}
.single__meta{font-size:12px;color:#999;margin-bottom:10px}
.single__title{font-family:var(--font-jp);font-size:28px;color:var(--c-title);line-height:1.5;margin-bottom:22px}
.single__thumb{margin-bottom:30px;border-radius:14px;overflow:hidden}
.single__body{font-size:15px;line-height:2}
.single__body h2{font-family:var(--font-jp);font-size:22px;margin:40px 0 16px;padding-left:14px;border-left:4px solid var(--c-pink)}
.single__body h3{font-family:var(--font-jp);font-size:18px;margin:30px 0 12px;color:var(--c-pink-deep)}
.single__body p{margin-bottom:18px}
.single__body img{border-radius:10px;margin:20px 0}
.single__cta{
  background:linear-gradient(135deg,#fdf2ee 0%,#f7e8e0 100%);
  border-radius:14px;padding:28px;text-align:center;margin-top:40px;
}
.single__cta p{margin-bottom:16px;color:var(--c-brown)}

.related{padding:0 5% 60px}
.related__inner{max-width:1180px;margin:0 auto}
.related__title{font-family:var(--font-jp);font-size:24px;text-align:center;margin-bottom:30px;color:var(--c-title)}

/* =========================================================
   Stylist
========================================================= */
.stylist{padding:80px 0;background:var(--c-bg)}
.stylist__inner{max-width:1280px;margin:0 auto;padding:0 5%}
.stylist__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin-top:48px}
.stylist-card{text-align:center}
.stylist-card__photo{width:180px;height:180px;border-radius:50%;overflow:hidden;margin:0 auto 20px;border:3px solid var(--c-line);box-shadow:0 4px 18px rgba(184,160,139,.18)}
.stylist-card__photo img{width:100%;height:100%;object-fit:cover}
.stylist-card__name{font-family:var(--font-en);font-size:21px;color:var(--c-brown);letter-spacing:.04em}
.stylist-card__name-jp{font-family:var(--font-jp);font-size:13px;color:var(--c-beige);margin-top:2px;letter-spacing:.1em}
.stylist-card__role{display:inline-block;font-size:11px;color:var(--c-gold);letter-spacing:.18em;border:1px solid var(--c-gold);padding:2px 14px;border-radius:999px;margin-top:8px;text-transform:uppercase}
.stylist-card__text{font-size:14px;color:var(--c-text);margin-top:14px;line-height:1.9;text-align:left}
.stylist-card__skills{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px}
.stylist-card__skill{font-size:11px;padding:3px 12px;background:var(--c-bg-soft);border:1px solid var(--c-line);border-radius:999px;color:var(--c-beige)}

/* =========================================================
   Salon Info
========================================================= */
.salon-info{padding:80px 0;background:var(--c-bg-soft)}
.salon-info__inner{max-width:1080px;margin:0 auto;padding:0 5%}
.salon-info__grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.salon-info__table{margin-top:10px}
.salon-info__row{display:flex;border-bottom:1px solid var(--c-line);padding:14px 0;font-size:14px;gap:16px}
.salon-info__row:first-child{border-top:1px solid var(--c-line)}
.salon-info__label{color:var(--c-brown);font-weight:700;font-family:var(--font-jp);width:90px;flex-shrink:0}
.salon-info__val{color:var(--c-text);line-height:1.8}
.salon-info__map{border-radius:16px;overflow:hidden;background:var(--c-bg-deep);height:280px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--c-beige)}
.salon-info__map i{font-size:36px;color:var(--c-pink)}
.salon-info__map p{font-size:13px;letter-spacing:.05em}
.salon-info__note{font-size:12px;color:#aaa;margin-top:12px}

/* =========================================================
   FAQ
========================================================= */
.faq{padding:80px 0;background:var(--c-bg)}
.faq__inner{max-width:800px;margin:0 auto;padding:0 5%}
.faq__list{margin-top:48px}
.faq-item{border-bottom:1px solid var(--c-line)}
.faq-item__q{display:flex;align-items:flex-start;gap:16px;padding:22px 0;cursor:pointer;font-size:15px;color:var(--c-brown);font-family:var(--font-jp);font-weight:700;position:relative}
.faq-item__q-mark{font-family:var(--font-en);font-size:22px;color:var(--c-pink);font-weight:600;flex-shrink:0;line-height:1.3;margin-top:-2px}
.faq-item__q-text{flex:1}
.faq-item__q-icon{font-size:12px;color:var(--c-beige);margin-top:4px;transition:transform .25s;flex-shrink:0}
.faq-item.is-open .faq-item__q-icon{transform:rotate(180deg)}
.faq-item__a{display:none;padding:0 0 22px 38px;font-size:14px;color:var(--c-text);line-height:2;gap:12px}
.faq-item__a-mark{font-family:var(--font-en);font-size:22px;color:var(--c-gold);font-weight:600;flex-shrink:0;margin-top:-2px}
.faq-item.is-open .faq-item__a{display:flex}

/* =========================================================
   Hair Catalog page
========================================================= */
.catalog-filter{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:32px 0 40px}
.catalog-filter__btn{font-size:13px;padding:7px 22px;border:1px solid var(--c-beige);border-radius:999px;color:var(--c-beige);background:#fff;cursor:pointer;transition:all .2s;font-family:var(--font-sans)}
.catalog-filter__btn.is-active,.catalog-filter__btn:hover{background:var(--c-pink);border-color:var(--c-pink);color:#fff}
.catalog-grid{max-width:1180px;margin:0 auto;padding:0 5%;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding-bottom:80px}
.catalog-card{border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 4px 14px rgba(184,160,139,.08);transition:transform .3s,box-shadow .3s}
.catalog-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(184,160,139,.18)}
.catalog-card__img{aspect-ratio:3/4;background:var(--c-bg-deep);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--c-beige)}
.catalog-card__img i{font-size:48px;opacity:.4}
.catalog-card__img img{width:100%;height:100%;object-fit:cover}
.catalog-card__body{padding:16px 18px 20px}
.catalog-card__tag{font-size:11px;color:var(--c-pink-deep);letter-spacing:.08em;margin-bottom:4px}
.catalog-card__title{font-family:var(--font-jp);font-size:15px;color:var(--c-title);margin-bottom:6px}
.catalog-card__detail{font-size:12px;color:#999;line-height:1.7}

/* =========================================================
   Fade up animation
========================================================= */
.fade-up{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}
.fade-up.is-visible{opacity:1;transform:none}

/* =========================================================
   Responsive
========================================================= */
@media(max-width:1024px){
  .site-nav{display:none}
  .site-header__toggle{display:flex;margin-left:auto}
  .hero__inner{grid-template-columns:1fr;gap:36px}
  .hero__title{font-size:36px}
  .strengths__grid,.menus__grid{grid-template-columns:repeat(2,1fr)}
  .stats__inner{grid-template-columns:repeat(2,1fr);padding:24px 12px;gap:12px 0}
  .stat{border-right:none;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:14px}
  .stat:nth-last-child(-n+2){border-bottom:none;padding-bottom:0}
  .flow__layout{grid-template-columns:1fr;gap:30px}
  .flow__image{aspect-ratio:4/5;min-height:auto}
  .voices__grid{grid-template-columns:1fr;gap:18px}
  .cta-banner__inner{grid-template-columns:1fr;gap:24px;padding:30px 24px}
  .cta-banner__copy{border-right:0;border-bottom:1px solid rgba(184,160,139,.2);padding:0 0 18px}
  .post-grid{grid-template-columns:repeat(2,1fr)}
  .site-footer__inner{grid-template-columns:1fr 1fr;text-align:left}
  .site-footer__sns{justify-content:center}
  .stylist__grid{grid-template-columns:repeat(2,1fr);gap:32px}
  .salon-info__grid{grid-template-columns:1fr;gap:32px}
  .catalog-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:760px){
  .site-header__inner{padding:10px 14px;gap:8px}
  .brand__name{font-size:18px}
  .hbtn{min-width:60px;height:44px;font-size:11px;padding:0 10px}
  .hbtn span{font-size:11px}
  .hero{padding:0 0 40px;height:auto}
  .hero__inner{display:flex;flex-direction:column;height:auto;min-height:auto;overflow:visible}
  .hero__image{position:relative;inset:auto;overflow:visible;width:100%;aspect-ratio:4/3;border-radius:0 0 24px 24px;order:-1;padding-top:0}
  .hero__image img{object-fit:cover;object-position:center center;-webkit-mask-image:linear-gradient(to bottom,#000 60%,transparent 100%);mask-image:linear-gradient(to bottom,#000 60%,transparent 100%)}
  .hero__image::before{display:none}
  .hero__image::after{top:auto;bottom:0;height:50%;background:linear-gradient(to top,rgba(255,255,255,1) 0%,rgba(255,255,255,.6) 40%,rgba(255,255,255,0) 100%)}
  .hero__copy{width:100%;height:auto;padding:0 5% 0;margin-top:-200px;position:relative;z-index:2}
  .hero__sub{font-size:22px}
  .hero__title{font-size:28px;line-height:1.5}
  .hero__text{font-size:14px}
  .hero__btns{flex-direction:column;align-items:stretch}
  .btn-main--lg,.btn-sub--lg{width:100%}
  .hero__rating{width:120px;height:120px;left:4%;top:10%}
  .hero__rating-value{font-size:34px}
  .hero__rating-note{right:4%;bottom:calc(4% - 26px);width:96px;font-size:10px}
  .hero__rating-note{font-size:10px;left:4%;top:26%;margin-top:5px}
  .sec-title span{font-size:22px}
  .sec-title{margin-bottom:30px}
  .strengths,.menus,.flow,.voices,.cta-banner{padding-top:50px;padding-bottom:50px}
  .strengths__grid,.menus__grid{grid-template-columns:1fr;gap:24px}
  .stats__inner{grid-template-columns:1fr;padding:20px}
  .stat{justify-content:flex-start;border-bottom:1px solid rgba(255,255,255,.2);padding:10px 0}
  .stat:last-child{border-bottom:none}
  .menu-card__text{min-height:auto}
  .cta-banner__off strong{font-size:48px}
  .post-grid{grid-template-columns:1fr}
  .site-footer__inner{grid-template-columns:1fr;text-align:center}
  .brand{justify-content:center}
  .site-footer__sns{justify-content:center}
  .site-footer__menu{align-items:center}
  .site-footer__bottom{flex-direction:column;gap:8px;text-align:center}
  .single{padding:28px 20px 36px}
  .single__title{font-size:22px}
  .sp-fixed-cta{display:grid}
  body{padding-bottom:64px}
  .stylist__grid{grid-template-columns:1fr;gap:28px}
  .faq,.salon-info,.stylist{padding-top:50px;padding-bottom:50px}
  .catalog-grid{grid-template-columns:1fr}
  .page-body__inner table{display:block;overflow-x:auto}
  .page-body__inner table th{width:auto}
}

/* hamburger nav open */
@media(max-width:1024px){
  .site-nav.is-open{display:block;position:fixed;top:64px;left:0;right:0;background:#fff;padding:0 0 16px;z-index:999;box-shadow:0 8px 24px rgba(0,0,0,.1)}
  .site-nav.is-open .site-nav__list{flex-direction:column;gap:0;padding:0 20px}
  .site-nav.is-open .site-nav__list li{border-bottom:1px solid var(--c-line)}
  .site-nav.is-open .site-nav__list a{display:block;padding:15px 0;font-size:15px}
  .site-header__toggle.is-active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .site-header__toggle.is-active span:nth-child(2){opacity:0}
  .site-header__toggle.is-active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  .site-header__toggle span{transition:transform .25s,opacity .25s}
}
