@charset "utf-8";
/* =====================================================================
   hairsalon de Forever — サイト共通スタイル（新デザイン）。shared.css の後に読み込む
   デザイン: 上質ミニマル（白×ベージュ×ゴールド）
   ===================================================================== */
:root{
  --fv-bg:#FAF8F4; --fv-bg2:#F3EFE8; --fv-white:#FFFFFF;
  --fv-ink:#2B2A28; --fv-ink2:#5F5A52; --fv-mute:#8A857D;
  --fv-line:#E4DDD1; --fv-line2:#55514B; --fv-gold:#B89B6A;
  --fv-serif:"Cormorant Garamond","Times New Roman",Georgia,serif;
  --fv-mincho:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","MS PMincho",serif;
  --fv-sans:"Noto Sans JP","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
}
body{margin:0;background:var(--fv-bg);color:var(--fv-ink);font-family:var(--fv-sans);font-weight:300;line-height:1.8;-webkit-font-smoothing:antialiased;}
body *,body *::before,body *::after{box-sizing:border-box;}
body img{max-width:100%;height:auto;}
#top [class^="fv-"] img,#footer [class^="fv-"] img{display:block;}
body a{color:var(--fv-ink);text-decoration:none;transition:color .2s,background-color .2s,border-color .2s,opacity .2s;}
body a:hover{color:var(--fv-gold);}
body h1,body h2,body h3,body h4,body p,body ul{margin:0;padding:0;}
body ul{list-style:none;}
/* ---- 共通パーツ ---- */
#top .fv-serif{font-family:var(--fv-serif);}
#top .fv-mincho{font-family:var(--fv-mincho);font-weight:500;}
#top .fv-eyebrow,#footer .fv-eyebrow{font-family:var(--fv-serif);font-size:13px;letter-spacing:.35em;text-transform:uppercase;color:var(--fv-gold);font-weight:500;line-height:1.4;}
#top .fv-h3{font-family:var(--fv-mincho);font-size:36px;font-weight:500;letter-spacing:.08em;line-height:1.6;}
#top .fv-lead{font-size:14px;line-height:2;letter-spacing:.04em;color:var(--fv-ink2);}
#top .fv-sec{padding:128px 96px;}
#top .fv-sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;}
#top .fv-sec-head .fv-lead{max-width:420px;}
#top .fv-title{display:flex;flex-direction:column;gap:20px;}
#top .fv-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:56px;padding:0 32px;font-size:14px;letter-spacing:.14em;white-space:nowrap;}
#top .fv-btn svg{width:18px;height:18px;flex:none;}
#top .fv-btn-fill{background:var(--fv-ink);color:var(--fv-bg);}
#top .fv-btn-fill:hover{background:var(--fv-gold);color:#fff;}
#top .fv-btn-light{background:var(--fv-bg);color:var(--fv-ink);}
#top .fv-btn-light:hover{background:var(--fv-gold);color:#fff;}
#top .fv-btn-line{border:1px solid var(--fv-ink);color:var(--fv-ink);background:transparent;}
#top .fv-btn-line:hover{border-color:var(--fv-gold);color:var(--fv-gold);}
#top .fv-btn-sm{height:44px;padding:0 20px;font-size:12px;}
#top .fv-arrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.18em;white-space:nowrap;}
#top .fv-arrow svg{width:16px;height:16px;}
#top .fv-ico{width:16px;height:16px;flex:none;color:var(--fv-gold);}
/* ---- ヘッダー ---- */
#top .fv-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;height:96px;padding:0 48px;background:var(--fv-white);border-bottom:1px solid var(--fv-line);}
#top .fv-logo{display:flex;align-items:center;gap:18px;flex:none;}
#top .fv-logo img{width:200px;height:44px;}
#top .fv-logo span{font-size:10px;letter-spacing:.28em;color:var(--fv-mute);border-left:1px solid var(--fv-line);padding-left:18px;line-height:1.8;}
#top .fv-nav{display:flex;align-items:center;gap:28px;}
#top .fv-nav a{font-size:13px;letter-spacing:.1em;white-space:nowrap;}
#top .fv-reserve{display:flex;align-items:center;gap:8px;flex:none;}
#top .fv-reserve-label{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.16em;color:var(--fv-mute);margin-right:6px;white-space:nowrap;}
#top .fv-reserve-label svg{width:14px;height:14px;}
#top .fv-reserve-label .fv-lbl-short{display:none;}
#top .fv-reserve a{display:inline-flex;align-items:center;height:40px;padding:0 16px;background:var(--fv-ink);color:var(--fv-bg);font-size:12px;letter-spacing:.12em;white-space:nowrap;}
#top .fv-reserve a.fv-serif{font-size:15px;letter-spacing:.08em;}
#top .fv-reserve a:hover{background:var(--fv-gold);color:#fff;}
#top .fv-menu-btn{display:inline-flex;align-items:center;justify-content:center;position:relative;z-index:70;width:44px;height:44px;border:0;background:transparent;padding:0;cursor:pointer;color:var(--fv-ink);flex:none;}
#top .fv-menu-btn svg{width:26px;height:26px;}
#top .fv-menu-btn .fv-x{display:none;}
body.fv-nav-open #top .fv-menu-btn .fv-x{display:block;}
body.fv-nav-open #top .fv-menu-btn .fv-bars{display:none;}
/* ---- ヒーロー（vida 外観） ---- */
#top .fv-hero{position:relative;min-height:680px;overflow:hidden;background:#141312;display:flex;align-items:center;}
#top .fv-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;}
#top .fv-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,19,18,.88) 0%,rgba(20,19,18,.62) 42%,rgba(20,19,18,.08) 78%);}
#top .fv-hero-shade2{position:absolute;left:0;right:0;bottom:0;height:160px;background:linear-gradient(180deg,rgba(20,19,18,0) 0%,rgba(20,19,18,.45) 100%);}
#top .fv-hero-in{position:relative;display:flex;flex-direction:column;gap:32px;padding:96px;max-width:760px;}
#top .fv-hero .fv-catch{font-family:var(--fv-mincho);font-size:56px;font-weight:500;line-height:1.5;letter-spacing:.06em;color:var(--fv-bg);}
#top .fv-hero-in>p.fv-desc{font-size:15px;line-height:2.2;letter-spacing:.06em;color:rgba(250,248,244,.85);max-width:460px;}
#top .fv-hero-cta{display:flex;flex-direction:column;gap:18px;}
#top .fv-hero-cta .fv-label{font-size:11px;letter-spacing:.2em;color:rgba(250,248,244,.7);}
#top .fv-hero-btns{display:flex;flex-wrap:wrap;gap:12px;}
#top .fv-hero-btns .fv-btn{height:50px;padding:0 22px;font-size:13px;}
#top .fv-hero .fv-arrow{color:var(--fv-bg);}
#top .fv-hero .fv-arrow:hover{color:var(--fv-gold);}
/* ---- 営業情報の帯 ---- */
#top .fv-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--fv-white);border-bottom:1px solid var(--fv-line);}
#top .fv-info li{display:flex;align-items:center;gap:16px;padding:28px 48px;border-right:1px solid var(--fv-line);}
#top .fv-info li:last-child{border-right:0;}
#top .fv-info svg{width:22px;height:22px;flex:none;color:var(--fv-gold);}
#top .fv-info div{display:flex;flex-direction:column;gap:4px;}
#top .fv-info small{font-size:11px;letter-spacing:.2em;color:var(--fv-mute);}
#top .fv-info span{font-size:15px;letter-spacing:.08em;line-height:1.5;}
/* ---- コンセプト ---- */
#top .fv-concept{display:grid;grid-template-columns:520px 1fr;gap:96px;align-items:center;}
#top .fv-concept-img{width:520px;height:640px;object-fit:cover;}
#top .fv-concept-body{display:flex;flex-direction:column;gap:48px;}
#top .fv-reasons li{display:grid;grid-template-columns:72px 1fr;gap:24px;padding:28px 0;border-top:1px solid var(--fv-line);}
#top .fv-reasons li:first-child{border-top-color:var(--fv-ink);}
#top .fv-reasons li:last-child{border-bottom:1px solid var(--fv-line);}
#top .fv-reasons .n{font-family:var(--fv-serif);font-size:40px;line-height:1;color:var(--fv-gold);}
#top .fv-reasons h4{font-family:var(--fv-mincho);font-size:21px;font-weight:500;letter-spacing:.08em;margin-bottom:10px;}
/* ---- 店舗 ---- */
#top .fv-shops{background:var(--fv-bg2);padding:112px 96px 128px;display:flex;flex-direction:column;gap:64px;}
#top .fv-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;}
#top .fv-shop{background:var(--fv-white);display:flex;flex-direction:column;}
#top .fv-shop>img{width:100%;height:260px;object-fit:cover;}
#top .fv-shop-body{display:flex;flex-direction:column;gap:18px;padding:36px 36px 40px;}
#top .fv-shop h4{display:flex;align-items:baseline;gap:14px;}
#top .fv-shop h4 .en{font-family:var(--fv-serif);font-size:30px;font-weight:500;letter-spacing:.04em;line-height:1.2;}
#top .fv-shop h4 .ja{font-family:var(--fv-mincho);font-size:16px;font-weight:500;letter-spacing:.1em;}
#top .fv-shop p{font-size:13px;line-height:2;letter-spacing:.04em;color:var(--fv-ink2);}
#top .fv-hairline{height:1px;background:var(--fv-line);}
#top .fv-shop-meta{display:flex;flex-direction:column;gap:10px;font-size:13px;letter-spacing:.04em;}
#top .fv-shop-meta li{display:flex;gap:10px;align-items:flex-start;}
#top .fv-shop-meta .fv-ico{margin-top:3px;}
#top .fv-shop-meta small{display:block;font-size:12px;color:var(--fv-mute);}
#top .fv-shop-meta .tel{font-family:var(--fv-serif);font-size:20px;letter-spacing:.06em;line-height:1.2;}
#top .fv-shop-btns{display:flex;gap:12px;margin-top:8px;}
#top .fv-shop-btns .fv-btn{flex:1;}
/* ---- スタイリスト ---- */
#top .fv-staff-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;}
#top .fv-staff{display:flex;flex-direction:column;gap:18px;}
#top .fv-staff img{width:100%;height:300px;object-fit:cover;object-position:top;background:#EAE3D7;}
#top .fv-staff .role{font-size:11px;letter-spacing:.18em;color:var(--fv-mute);}
#top .fv-staff h4{font-family:var(--fv-mincho);font-size:20px;font-weight:500;letter-spacing:.1em;margin:6px 0;}
#top .fv-staff .en{font-family:var(--fv-serif);font-size:13px;letter-spacing:.16em;color:var(--fv-gold);}
#top .fv-staff p{font-size:13px;line-height:1.9;letter-spacing:.03em;color:var(--fv-ink2);}
/* ---- メニュー ---- */
#top .fv-menu{background:var(--fv-bg2);padding:112px 96px 128px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:96px;align-items:start;}
#top .fv-menu-intro{display:flex;flex-direction:column;gap:28px;}
#top .fv-menu-intro .fv-lead{max-width:440px;line-height:2.1;}
#top .fv-tags{display:flex;flex-wrap:wrap;gap:10px;}
#top .fv-tags li{font-size:11px;letter-spacing:.14em;padding:8px 14px;border:1px solid #CFC6B7;color:var(--fv-ink2);}
#top .fv-price{border-top:1px solid var(--fv-ink);}
#top .fv-price li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:22px 0;border-bottom:1px solid var(--fv-line);}
#top .fv-price .n{font-size:15px;letter-spacing:.08em;}
#top .fv-price .n small{color:var(--fv-mute);font-size:12px;margin-left:10px;}
#top .fv-price .p{font-family:var(--fv-serif);font-size:26px;font-weight:500;letter-spacing:.02em;white-space:nowrap;}
#top .fv-price-note{font-size:12px;letter-spacing:.04em;color:var(--fv-mute);padding-top:18px;line-height:1.9;}
/* ---- 掲載実績 ---- */
#top .fv-press{background:var(--fv-ink);color:var(--fv-bg);padding:112px 96px;display:grid;grid-template-columns:420px 1fr;gap:96px;align-items:center;}
#top .fv-press .fv-h3{color:var(--fv-bg);font-size:34px;}
#top .fv-press .fv-lead{color:#B7B1A7;line-height:2.1;}
#top .fv-press .fv-title{gap:24px;}
#top .fv-press .fv-arrow{color:var(--fv-bg);}
#top .fv-press .fv-arrow:hover{color:var(--fv-gold);}
#top .fv-covers{display:flex;align-items:flex-end;gap:20px;}
#top .fv-covers img{width:auto;box-shadow:0 12px 30px rgba(43,42,40,.25);}
/* ---- 採用 ---- */
#top .fv-recruit{position:relative;overflow:hidden;background:var(--fv-ink);}
#top .fv-recruit-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;}
#top .fv-recruit-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,19,18,.85) 0%,rgba(20,19,18,.45) 60%,rgba(20,19,18,.25) 100%);}
#top .fv-recruit-in{position:relative;padding:112px 96px;display:grid;grid-template-columns:1fr auto;gap:64px;align-items:center;}
#top .fv-recruit .fv-title{gap:18px;}
#top .fv-recruit .fv-h3{color:var(--fv-bg);font-size:32px;}
#top .fv-recruit .fv-lead{color:rgba(250,248,244,.85);max-width:640px;}
/* ---- フッター ---- */
#footer .fv-footer{background:var(--fv-ink);color:var(--fv-bg);padding:80px 96px 40px;display:flex;flex-direction:column;gap:56px;}
#footer .fv-footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:48px;}
#footer .fv-footer-brand{display:flex;flex-direction:column;gap:20px;}
#footer .fv-footer-logo{display:inline-flex;align-self:flex-start;background:var(--fv-white);padding:12px 18px;}
#footer .fv-footer-logo img{width:200px;height:44px;}
#footer .fv-footer-brand p{font-size:12px;letter-spacing:.08em;line-height:2;color:#B7B1A7;}
#footer .fv-footer-col{display:flex;flex-direction:column;gap:14px;}
#footer .fv-footer-col ul{display:flex;flex-direction:column;gap:10px;}
#footer .fv-footer-col a{font-size:13px;letter-spacing:.1em;color:var(--fv-mute);}
#footer .fv-footer-col a:hover{color:var(--fv-bg);}
#footer .fv-footer-tel li{display:flex;justify-content:space-between;gap:12px;font-size:13px;letter-spacing:.06em;align-items:baseline;}
#footer .fv-footer-tel .shop{color:#B7B1A7;}
#footer .fv-footer-tel .shop a{font-size:11px;color:var(--fv-gold);margin-left:6px;}
#footer .fv-footer-tel .tel{font-family:var(--fv-serif);font-size:18px;letter-spacing:.06em;color:var(--fv-bg);}
#footer .fv-footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:24px;border-top:1px solid var(--fv-line2);}
#footer .fv-footer-bottom small{font-size:11px;letter-spacing:.1em;color:var(--fv-mute);}
#footer .fv-footer-bottom ul{display:flex;gap:24px;}
#footer .fv-footer-bottom a{font-size:12px;letter-spacing:.1em;color:var(--fv-mute);}
#footer .fv-footer-bottom a:hover{color:var(--fv-bg);}

/* =====================================================================
   MTキット（shared.css / style.css）の打ち消し・置き換え
   ※ shared.css のメディアクエリと衝突するため、構造系は !important で固定
   ===================================================================== */
html{height:auto !important;overflow-x:clip !important;overflow-y:auto !important;}
body{font-size:100% !important;line-height:1.8 !important;text-align:left !important;background:var(--fv-bg) !important;border:0 !important;overflow-x:clip !important;overflow-y:visible !important;}
body>.wrap,body #top.wrap{max-width:none !important;width:auto !important;margin:0 !important;padding:0 !important;overflow:visible !important;background:none !important;font-size:1em !important;line-height:1.8 !important;text-align:left !important;}
body #main{display:block !important;float:none !important;width:auto !important;margin:0 !important;padding:0 !important;font-size:1em !important;line-height:1.8 !important;text-align:left !important;vertical-align:baseline !important;}
/* キットのヘッダー（h1／h2／説明文／ロゴ）：トップでは非表示（SEO用に残す）。下層では h1 をタイトル帯として表示（下記）。ロゴ・ナビは [編集]共通ヘッダー */
body #header{position:relative !important;float:none !important;width:auto !important;height:0 !important;min-height:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;}
body #gnav,body #global,body #side,body #pnav,body #up{display:none !important;}
body img{margin:0;}
body section,body article,body ul,body dl{margin:0;}
body p{padding:0;}
body h3,body h4{background:none;border:0;padding:0;margin:0;clear:none;font-weight:500;line-height:1.6;position:static;}
body h3::first-letter,body h4::first-letter{color:inherit;font-size:inherit;}
/* ---- お知らせ（【処理】更新履歴 の出力 article#news を新デザインに） ---- */
#top .fv-news{display:block;}
#top .fv-news #news{display:grid;grid-template-columns:360px 1fr;grid-template-areas:"title list" "link list";gap:0 96px;align-items:start;overflow:visible;margin:0;}
#top .fv-news #news>h3{grid-area:title;font-family:var(--fv-mincho);font-size:36px;font-weight:500;letter-spacing:.08em;line-height:1.6;margin:0 0 28px;padding:0;background:none;border:0;}
#top .fv-news #news>h3::before{content:"News";display:block;font-family:var(--fv-serif);font-size:13px;letter-spacing:.35em;text-transform:uppercase;color:var(--fv-gold);font-weight:500;line-height:1.4;margin-bottom:20px;}
#top .fv-news #news>h3::first-letter{color:inherit;font-size:inherit;}
#top .fv-news #news>div{grid-area:list;display:block;width:auto;margin:0;border-top:1px solid var(--fv-ink);}
#top .fv-news #news ul{display:block;width:auto;margin:0;padding:0;}
#top .fv-news #news li{display:grid;grid-template-columns:140px 1fr;gap:32px;padding:22px 0;border-bottom:1px solid var(--fv-line);align-items:baseline;background:none;overflow:visible;}
#top .fv-news #news li>time,#top .fv-news #news li>div{display:block;padding:0;background:none;width:auto;white-space:normal;}
#top .fv-news #news li>time{font-family:var(--fv-serif);font-size:16px;letter-spacing:.12em;color:var(--fv-mute);white-space:nowrap;}
#top .fv-news #news li p{font-size:15px;letter-spacing:.04em;line-height:1.8;padding:0;margin:0;}
#top .fv-news #news li p.more{font-size:12px;letter-spacing:.1em;padding-top:6px;}
#top .fv-news #news>a.link{grid-area:link;justify-self:start;float:none;margin:0;padding:0;background:none;display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.18em;color:var(--fv-ink);}
#top .fv-news #news>a.link::after{content:"\2192";font-family:var(--fv-serif);font-size:16px;line-height:1;}
#top .fv-news #news>a.link:hover{color:var(--fv-gold);}
/* ---- フッター（footer#footer 内の新マークアップ） ---- */
body #footer{border:0 !important;clear:none;width:auto !important;text-align:left !important;color:var(--fv-bg);}
body #footer a{color:inherit;}
body #footer img{float:none;}
@media (max-width:900px){
  #top .fv-news #news{grid-template-columns:1fr;grid-template-areas:"title" "list" "link";gap:32px 0;}
  #top .fv-news #news>h3{font-size:28px;margin-bottom:0;}
  #top .fv-news #news li{grid-template-columns:1fr;gap:6px;padding:18px 0;}
}

/* =====================================================================
   下層ページ（h1 タイトル帯・パンくず・本文）
   ===================================================================== */
body:not(#index) #header{height:auto !important;overflow:visible !important;background:var(--fv-bg2);padding:56px 96px 40px !important;border-bottom:1px solid var(--fv-line);}
body:not(#index) #header h1{position:static;display:block;width:auto;max-width:1100px;margin:0 auto;padding:0;border:0;background:none;text-indent:0;white-space:normal;overflow:visible;font-family:var(--fv-mincho);font-size:32px;font-weight:500;letter-spacing:.08em;line-height:1.5;color:var(--fv-ink);}
body:not(#index) #header h1::before{content:"hairsalon de Forever";display:block;font-family:var(--fv-serif);font-size:13px;letter-spacing:.35em;text-transform:uppercase;color:var(--fv-gold);font-weight:500;line-height:1.4;margin-bottom:14px;}
body #header>p,body #header h2{position:absolute !important;left:-9999px !important;top:0 !important;width:1px;height:1px;overflow:hidden;}
body:not(#index) #header{display:flex;flex-direction:column;}
body:not(#index) #header h1{align-self:stretch;width:100%;}
body #topicpath{order:-1;position:static !important;display:block !important;width:100%;max-width:1100px;margin:0 auto 28px;padding:0;text-align:left;align-self:stretch;}
body #topicpath ol{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;width:auto !important;max-width:none !important;margin:0 !important;padding:0 !important;font-size:13px;letter-spacing:.06em;line-height:1.6;color:var(--fv-ink2);white-space:normal;overflow:visible;}
body #topicpath li{display:inline-flex;align-items:center;}
body #topicpath li>a,body #topicpath li>span{background:none;padding:0;color:var(--fv-ink2);}
body #topicpath li>a{border-bottom:1px solid rgba(43,42,40,.25);padding-bottom:1px;}
body #topicpath li>a:hover{color:var(--fv-gold);border-color:var(--fv-gold);}
body #topicpath li:last-child>span,body #topicpath li:last-child>a{color:var(--fv-ink);font-weight:500;}
body #topicpath li+li::before{content:"\203A";margin:0 10px;color:var(--fv-gold);font-size:15px;line-height:1;}
body #topicpath img{vertical-align:middle;}
body:not(#index) #main{max-width:1148px !important;margin:0 auto !important;padding:56px 24px 112px !important;}
body:not(#index) #main article,body:not(#index) #main section{margin:0 0 56px;}
body:not(#index) #main h3{font-family:var(--fv-mincho);font-size:24px;font-weight:500;letter-spacing:.08em;line-height:1.5;position:relative;padding:0 0 14px;margin:0 0 28px;border-bottom:1px solid var(--fv-line);background:none;}
body:not(#index) #main h3::after{content:"";position:absolute;left:0;bottom:-1px;width:48px;height:1px;background:var(--fv-gold);}
body #main h3.nt{position:absolute;left:-9999px;}
body:not(#index) #main h3 a{color:inherit;}
body:not(#index) #main h4,body:not(#index) #main .h4{font-family:var(--fv-mincho);font-size:18px;font-weight:500;letter-spacing:.06em;line-height:1.5;border:0;border-left:3px solid var(--fv-gold);background:none;padding:2px 0 2px 14px;margin:36px 0 18px;}
body:not(#index) #main h5,body:not(#index) #main .h5{font-size:15px;font-weight:500;letter-spacing:.06em;border-left:2px solid var(--fv-line2);margin:24px 0 12px;padding:0 0 0 10px;}
body:not(#index) #main .content{font-size:15px;line-height:2;letter-spacing:.04em;}
body:not(#index) #main p{padding:0 0 1.5em;}
body:not(#index) #main .content a:not(.fv-btn):not(.btn):not([class|="btn"]){color:var(--fv-gold);text-decoration:underline;text-underline-offset:.2em;}
body:not(#index) #main .content a:not(.fv-btn):hover{color:var(--fv-ink);}
body:not(#index) #main img{margin:5px;}
body:not(#index) #main img.center,body:not(#index) #main .center img,body:not(#index) #main .no-in img{margin-left:auto;margin-right:auto;}
/* ---- 記事内の大きめ写真（右回り込み） ---- */
body:not(#index) #main img.fv-photo{float:right;width:46%;max-width:520px;height:auto;margin:6px 0 24px 36px;}
body:not(#index) #main .h4{clear:both;}
body #main .mark{background:linear-gradient(transparent 62%,rgba(184,155,106,.32) 62%);padding:0 2px;}
body:not(#index) #main article::after,body:not(#index) #main .content::after{content:"";display:block;clear:both;}
@media (max-width:700px){body:not(#index) #main img.fv-photo{float:none;width:100%;max-width:none;margin:0 0 20px;}}
/* ---- 店舗写真ギャラリー・動画（店舗詳細ページ） ---- */
body:not(#index) #main .fv-gallery{display:flex;flex-direction:column;gap:16px;margin:0 0 8px;}
body:not(#index) #main .fv-gallery a{display:block;overflow:hidden;background:var(--fv-bg2);}
body:not(#index) #main .fv-gallery img{display:block;width:100%;height:auto;margin:0;transition:transform .6s ease,opacity .3s;}
body:not(#index) #main .fv-gallery a:hover img{transform:scale(1.03);opacity:.92;}
body:not(#index) #main .fv-gallery-hero img{aspect-ratio:16/9;object-fit:cover;}
body:not(#index) #main .fv-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;}
body:not(#index) #main .fv-gallery-grid li{margin:0;padding:0;background:none;}
body:not(#index) #main .fv-gallery-grid img{aspect-ratio:3/2;object-fit:cover;}
body:not(#index) #main .fv-video{position:relative;width:100%;aspect-ratio:16/9;margin:0 0 24px;background:#000;}
body:not(#index) #main .fv-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
@media (max-width:560px){body:not(#index) #main .fv-gallery,body:not(#index) #main .fv-gallery-grid{gap:10px;}body:not(#index) #main .fv-gallery-grid{grid-template-columns:1fr;}}
/* ---- メディア掲載（雑誌カード・受賞リスト） ---- */
body:not(#index) #main .fv-media-year{border:0;padding:0;margin:32px 0 14px;font-family:var(--fv-serif);font-size:22px;font-weight:500;letter-spacing:.12em;color:var(--fv-gold);}
body:not(#index) #main .fv-media-year::after{content:"";display:block;height:1px;background:var(--fv-line);margin-top:8px;}
body:not(#index) #main .fv-media-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px 18px;margin:0 0 8px;padding:0;list-style:none;}
body:not(#index) #main .fv-media-grid li{margin:0;padding:0;background:none;display:flex;flex-direction:column;gap:12px;}
body:not(#index) #main .fv-media-thumb{display:flex;align-items:center;justify-content:center;aspect-ratio:3/4;background:var(--fv-white);border:1px solid var(--fv-line);padding:14px;overflow:hidden;}
body:not(#index) #main .fv-media-thumb img{width:100%;height:100%;max-width:100%;max-height:100%;margin:0;object-fit:contain;transition:transform .4s;}
body:not(#index) #main .fv-media-thumb:hover img{transform:scale(1.04);}
body:not(#index) #main .fv-media-body p{padding:0;line-height:1.6;}
body:not(#index) #main .fv-media-title{font-size:14px;font-weight:500;letter-spacing:.03em;}
body:not(#index) #main .content .fv-media-body a{color:var(--fv-ink) !important;text-decoration:none !important;}
body:not(#index) #main .content .fv-media-body a:hover{color:var(--fv-gold) !important;}
body:not(#index) #main .fv-media-staff{font-size:12px;color:var(--fv-ink2);margin-top:4px;}
body:not(#index) #main .fv-media-staff small{font-size:11px;color:var(--fv-mute);}
body:not(#index) #main .fv-media-list{margin:0 0 12px;padding:0;list-style:none;border-top:1px solid var(--fv-ink);}
body:not(#index) #main .fv-media-list li{display:flex;align-items:baseline;gap:20px;padding:14px 0;margin:0;border-bottom:1px solid var(--fv-line);background:none;font-size:15px;}
body:not(#index) #main .fv-media-list .y{font-family:var(--fv-serif);font-size:16px;letter-spacing:.1em;color:var(--fv-gold);flex:none;width:56px;}
body:not(#index) #main .content .fv-media-list a{color:var(--fv-ink) !important;text-decoration:none !important;}
body:not(#index) #main .content .fv-media-list a:hover{color:var(--fv-gold) !important;}
body:not(#index) #main .fv-media-list small{font-size:12px;color:var(--fv-mute);}
body:not(#index) #main .fv-media-note{font-size:13px;color:var(--fv-mute);}
body:not(#index) #main .fv-media-mini{clear:both;margin:6px 0 28px;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px 12px;}
body:not(#index) #main .fv-media-mini .fv-media-thumb,body:not(#index) #main .fv-media-mini li>a{display:flex;align-items:center;justify-content:center;aspect-ratio:3/4;background:var(--fv-white);border:1px solid var(--fv-line);padding:8px;overflow:hidden;}
body:not(#index) #main .fv-media-mini li>a img{width:100%;height:100%;max-width:100%;max-height:100%;margin:0;object-fit:contain;transition:transform .4s;}
body:not(#index) #main .fv-media-mini li>a:hover img{transform:scale(1.04);}
@media (max-width:900px){body:not(#index) #main .fv-media-mini{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media (max-width:560px){body:not(#index) #main .fv-media-mini{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px;}}
@media (max-width:900px){body:not(#index) #main .fv-media-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 14px;}}
@media (max-width:560px){body:not(#index) #main .fv-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;}body:not(#index) #main .fv-media-list li{flex-wrap:wrap;gap:6px 14px;}}
/* ---- 店舗ページの予約・お問合せCTA（旧 bnr_contact バナーの置き換え） ---- */
body:not(#index) #main .fv-cta{clear:both;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;background:var(--fv-ink);color:var(--fv-bg);padding:44px 32px 40px;margin:12px 0 40px;position:relative;}
body:not(#index) #main .fv-cta::before{content:"";position:absolute;inset:10px;border:1px solid rgba(184,155,106,.45);pointer-events:none;}
body:not(#index) #main .fv-cta p{padding:0;margin:0;line-height:1.6;}
body:not(#index) #main .fv-cta .fv-cta-label{font-family:var(--fv-serif);font-size:12px;letter-spacing:.35em;text-transform:uppercase;color:var(--fv-gold);}
body:not(#index) #main .fv-cta .fv-cta-label::before{content:"Reservation";display:block;font-size:13px;margin-bottom:6px;}
body:not(#index) #main .fv-cta .fv-cta-shop{font-family:var(--fv-mincho);font-size:16px;letter-spacing:.12em;color:var(--fv-bg);}
body:not(#index) #main .content .fv-cta a.fv-cta-tel{font-family:var(--fv-serif);font-size:44px;font-weight:500;letter-spacing:.06em;line-height:1.1;color:var(--fv-bg) !important;text-decoration:none !important;margin:6px 0 2px;}
body:not(#index) #main .content .fv-cta a.fv-cta-tel:hover{color:var(--fv-gold) !important;}
body:not(#index) #main .fv-cta .fv-cta-note{font-size:12px;letter-spacing:.06em;color:#B7B1A7;}
body:not(#index) #main .content .fv-cta a.fv-cta-btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 36px;margin-top:16px;background:var(--fv-gold);color:#fff !important;font-size:13px;letter-spacing:.14em;text-decoration:none !important;transition:background-color .2s;}
body:not(#index) #main .content .fv-cta a.fv-cta-btn:hover{background:#a8895a;}
@media (max-width:560px){body:not(#index) #main .fv-cta{padding:36px 20px 32px;}body:not(#index) #main .content .fv-cta a.fv-cta-tel{font-size:34px;}body:not(#index) #main .content .fv-cta a.fv-cta-btn{width:100%;}}
/* ---- 店舗一覧（記事内の店舗カード） ---- */
body:not(#index) #main .fv-shoplist{margin:8px 0 0;}
body:not(#index) #main .fv-shoplist .fv-shop{margin:0;border:1px solid var(--fv-line);}
body:not(#index) #main .fv-shoplist .fv-shop>a{display:block;}
body:not(#index) #main .fv-shoplist img{margin:0;width:100%;height:240px;object-fit:cover;display:block;}
body:not(#index) #main .fv-shoplist .h4{display:flex;align-items:baseline;gap:14px;border:0;padding:0;margin:0;clear:none;}
body:not(#index) #main .fv-shoplist .h4 .en{font-family:var(--fv-serif);font-size:30px;font-weight:500;letter-spacing:.04em;line-height:1.2;}
body:not(#index) #main .fv-shoplist .h4 .ja{font-family:var(--fv-mincho);font-size:16px;font-weight:500;letter-spacing:.1em;}
body:not(#index) #main .fv-shoplist p{padding:0;font-size:13px;line-height:2;color:var(--fv-ink2);}
body:not(#index) #main .fv-shoplist ul{margin:0;}
body:not(#index) #main .content .fv-shoplist ul.fv-shop-meta li a.tel{color:var(--fv-ink);text-decoration:none;}
body:not(#index) #main .content .fv-shoplist ul.fv-shop-meta li a.tel:hover{color:var(--fv-gold);}
body:not(#index) #main .fv-shoplist .fv-btn{text-decoration:none;}
body:not(#index) #main .fv-shoplist .fv-btn-fill{color:var(--fv-bg);}
body:not(#index) #main .fv-shoplist .fv-btn-fill:hover{color:#fff;}
@media (max-width:900px){body:not(#index) #main .fv-shoplist img{height:220px;}}
body:not(#index) #main table{margin:0 0 2em;border:0;}
body:not(#index) #main th,body:not(#index) #main td{border:1px solid var(--fv-line);padding:12px 14px;font-size:14px;line-height:1.8;}
body:not(#index) #main th{background:var(--fv-bg2);font-weight:500;}
body:not(#index) #main ul,body:not(#index) #main dl{margin:0 0 1.5em;}
body #main .link a,body #main a.link,body #main .list li{background:none;padding-left:1.3em;position:relative;}
body #main .link a::before,body #main a.link::before,body #main .list li::before{content:"\2192";position:absolute;left:0;top:0;color:var(--fv-gold);}
body #main .more a>span{background:none;width:auto;text-indent:0;white-space:normal;overflow:visible;float:none;}
body #main .more a{display:inline-flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.12em;color:var(--fv-ink);text-decoration:none;}
body #main .more a::after{content:"\2192";color:var(--fv-gold);}
body #main .pnav li{border:1px solid var(--fv-line);}
body #main .pnav li>span,body #main .pnav li a{background:var(--fv-white);color:var(--fv-ink);}
body #main .pnav li>span{background:var(--fv-ink);color:var(--fv-bg);}
body #main hr{border-color:var(--fv-line);}
body #main button,body #main [type="submit"],body #main [type="button"]{background:var(--fv-ink);color:var(--fv-bg);border:0;padding:12px 28px;font-size:14px;letter-spacing:.14em;}
body #main input[type="text"],body #main select,body #main textarea{border:1px solid var(--fv-line);background:var(--fv-white);}
body #main th,body #main input[type="text"]:focus,body #main select:focus,body #main textarea:focus{background:var(--fv-bg2);}
body #main [class^="styl"] dt,body #main .stylist .tel,body #main .data_staff .title,body #main #magazine .title{color:var(--fv-gold);}
body #main .data_staff article,body #main .data_staff{border-color:var(--fv-line);}
body #main .data_staff h3{background:none;}
body #main .data_staff ul{border-top-color:var(--fv-line);}
body #main .styledata dl{border-bottom-color:var(--fv-line);}
body #main .aside{border-color:var(--fv-line);}
body #main .linebox{border-color:var(--fv-line);}
body #main #shop li{margin:0 0 20px;}
/* ---- 記事一覧（What's New カテゴリ等の article#news） ---- */
body:not(#index) #main #news{display:block;overflow:visible;}
body:not(#index) #main #news>div,body:not(#index) #main #news ul{display:block;width:auto;margin:0;border-top:1px solid var(--fv-ink);}
body:not(#index) #main #news ul{border-top:0;}
body:not(#index) #main #news li{display:grid;grid-template-columns:140px 1fr;gap:32px;padding:18px 0;border-bottom:1px solid var(--fv-line);align-items:baseline;background:none;overflow:visible;}
body:not(#index) #main #news li>time,body:not(#index) #main #news li>div{display:block;padding:0;background:none;width:auto;white-space:normal;}
body:not(#index) #main #news li>time{font-family:var(--fv-serif);font-size:16px;letter-spacing:.12em;color:var(--fv-mute);white-space:nowrap;}
body:not(#index) #main #news li p{padding:0;}
body:not(#index) #main #news>a.link{float:none;display:inline-flex;margin:24px 0 0;}
/* ---- フッターのサイトマップ（【処理】カテゴリ一覧） ---- */
#footer .fv-footer-nav>ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 32px;margin:0;}
#footer .fv-footer-nav li{font-size:13px;letter-spacing:.08em;line-height:1.8;}
#footer .fv-footer-nav li a{color:var(--fv-mute);}
#footer .fv-footer-nav li a:hover{color:var(--fv-bg);}
#footer .fv-footer-nav li ul{margin:2px 0 6px 0;padding-left:14px;border-left:1px solid var(--fv-line2);}
#footer .fv-footer-nav li li{font-size:12px;}
@media (max-width:900px){
  body:not(#index) #header{padding:40px 24px 28px !important;}
  body:not(#index) #header h1{font-size:24px;}
  body:not(#index) #main{padding:40px 24px 80px !important;}
  body:not(#index) #main h3{font-size:20px;}
  body:not(#index) #main #news li{grid-template-columns:1fr;gap:4px;}
  #footer .fv-footer-nav>ul{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:560px){
  body:not(#index) #header{padding:32px 16px 24px !important;}
  body:not(#index) #main{padding:32px 16px 64px !important;}
  #footer .fv-footer-nav>ul{grid-template-columns:1fr;}
}
/* =====================================================================
   レスポンシブ
   ===================================================================== */
@media (max-width:1240px){
#top .fv-sec,#top .fv-shops,#top .fv-menu,#top .fv-press,#top .fv-recruit-in,#footer .fv-footer{padding-left:56px;padding-right:56px;}
#top .fv-hero-in{padding:80px 56px;}
#top .fv-concept{grid-template-columns:420px 1fr;gap:56px;}
#top .fv-concept-img{width:420px;height:560px;}
#top .fv-press{grid-template-columns:360px 1fr;gap:56px;}
#top .fv-staff-grid{gap:24px;}
#top .fv-shop-grid{gap:20px;}
#top .fv-shop-body{padding:28px 24px 32px;}
#top .fv-info li{padding:24px 28px;}
}
@media (max-width:1460px){
#top .fv-logo span{display:none;}
#top .fv-nav{gap:20px;}
#top .fv-nav a{font-size:12px;}
#top .fv-header{gap:20px;}
}
/* ===== 全メニュー・ドロワー（全画面幅共通） ===== */
body .fv-drawer-bg{position:fixed;inset:0;background:rgba(43,42,40,.35);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:59;}
body.fv-nav-open .fv-drawer-bg{opacity:1;visibility:visible;}
body .fv-drawer{position:fixed;top:0;right:0;bottom:0;width:min(400px,88vw);padding:92px 36px 40px;background:var(--fv-white);border-left:1px solid var(--fv-line);transform:translateX(100%);transition:transform .3s;z-index:60;overflow:auto;-webkit-overflow-scrolling:touch;font-family:var(--fv-sans);}
body.fv-nav-open .fv-drawer{transform:none;}
body.fv-nav-open #top .fv-header{z-index:61;}
body .fv-drawer p,body .fv-drawer ul,body .fv-drawer li{margin:0;padding:0;list-style:none;}
body .fv-drawer .fv-drawer-eyebrow{font-family:var(--fv-serif);font-size:12px;letter-spacing:.35em;text-transform:uppercase;color:var(--fv-gold);margin:28px 0 6px;}
body .fv-drawer .fv-drawer-eyebrow:first-child{margin-top:0;}
body .fv-drawer a{display:block;color:var(--fv-ink);text-decoration:none;border-bottom:1px solid var(--fv-line);transition:color .2s;}
body .fv-drawer a:hover{color:var(--fv-gold);}
body .fv-drawer .fv-drawer-main a{padding:14px 0;font-size:15px;letter-spacing:.1em;}
body .fv-drawer .fv-drawer-sub a{padding:10px 0 10px 14px;font-size:13px;letter-spacing:.06em;color:var(--fv-ink2);position:relative;}
body .fv-drawer .fv-drawer-sub a::before{content:"";position:absolute;left:0;top:50%;width:6px;height:1px;background:var(--fv-gold);}
body .fv-drawer .fv-drawer-cats a{padding:13px 0;font-size:15px;letter-spacing:.1em;}
body .fv-drawer .fv-drawer-cats ul{margin:0 0 6px 14px;}
body .fv-drawer .fv-drawer-cats ul a{padding:9px 0 9px 14px;font-size:13px;letter-spacing:.06em;color:var(--fv-ink2);position:relative;}
body .fv-drawer .fv-drawer-cats ul a::before{content:"";position:absolute;left:0;top:50%;width:6px;height:1px;background:var(--fv-gold);}
body .fv-drawer .fv-drawer-cats + .fv-drawer-cats{margin-top:0;}
body .fv-drawer .fv-drawer-reserve{display:grid;gap:8px;margin-top:8px;}
body .fv-drawer .fv-drawer-reserve a{border:1px solid var(--fv-ink);padding:11px 14px;font-size:13px;letter-spacing:.08em;text-align:center;}
body .fv-drawer .fv-drawer-reserve a:hover{background:var(--fv-ink);color:#fff;}
@media (max-width:560px){body .fv-drawer{padding:84px 22px 32px;}}
@media (max-width:360px){#top .fv-header .fv-logo img{width:96px;height:21px;}#top .fv-header .fv-reserve a{padding:0 5px;}#top header.fv-header{padding:0 12px;}}
@media (max-width:1240px){
  #top .fv-header{gap:12px;}
#top .fv-nav{display:none;}
#top .fv-reserve-label{margin-right:2px;}
#top .fv-logo span{display:none;}
}
@media (max-width:900px){
#top .fv-sec{padding:88px 24px;}
#top .fv-shops,#top .fv-menu,#top .fv-press{padding:88px 24px;}
#top .fv-recruit-in{padding:88px 24px;}
#footer .fv-footer{padding:64px 24px 32px;}
#top .fv-h3{font-size:28px;}
#top .fv-sec-head{flex-direction:column;align-items:flex-start;gap:20px;}
#top .fv-hero{min-height:0;}
#top .fv-hero-in{padding:80px 24px;max-width:none;}
#top .fv-hero .fv-catch{font-size:38px;}
#top .fv-hero-shade{background:linear-gradient(180deg,rgba(20,19,18,.55) 0%,rgba(20,19,18,.75) 100%);}
#top .fv-info{grid-template-columns:repeat(2,minmax(0,1fr));}
#top .fv-info li{padding:20px 24px;border-bottom:1px solid var(--fv-line);}
#top .fv-info li:nth-child(2n){border-right:0;}
#top .fv-concept{grid-template-columns:1fr;gap:40px;}
#top .fv-concept-img{width:100%;height:auto;aspect-ratio:4/3;}
#top .fv-shop-grid{grid-template-columns:1fr;}
#top .fv-shop>img{height:220px;}
#top .fv-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
#top .fv-staff img{height:auto;aspect-ratio:3/4;}
#top .fv-menu{grid-template-columns:1fr;gap:48px;}
#top .fv-press{grid-template-columns:1fr;gap:48px;}
#top .fv-covers{flex-wrap:wrap;gap:16px;}
#top .fv-covers img{height:150px !important;}
#top .fv-recruit-in{grid-template-columns:1fr;gap:32px;}
#footer .fv-footer-grid{grid-template-columns:1fr 1fr;gap:40px 32px;}
#footer .fv-footer-bottom{flex-direction:column;align-items:flex-start;gap:16px;}
}
@media (max-width:560px){
#top .fv-header{height:72px;padding:0 16px;}
#top .fv-logo img{width:112px;height:25px;}
#top .fv-header{gap:8px;}
#top .fv-menu-btn{width:36px;height:36px;}
#top .fv-menu-btn svg{width:24px;height:24px;}
#top .fv-reserve-label svg{display:none;}
#top .fv-reserve{gap:4px;}
#top .fv-reserve-label{gap:3px;letter-spacing:.08em;margin-right:0;}
#top .fv-reserve-label svg{width:13px;height:13px;}
#top .fv-reserve-label .fv-lbl-full{display:none;}
#top .fv-reserve-label .fv-lbl-short{display:inline;}
#top .fv-reserve a{height:34px;padding:0 7px;font-size:11px;}
#top .fv-reserve a.fv-serif{font-size:13px;}
#top .fv-sec,#top .fv-shops,#top .fv-menu,#top .fv-press,#top .fv-recruit-in{padding-left:16px;padding-right:16px;}
#footer .fv-footer{padding-left:16px;padding-right:16px;}
#top .fv-hero-in{padding:64px 16px;}
#top .fv-hero .fv-catch{font-size:32px;}
#top .fv-hero-btns .fv-btn{flex:1 1 100%;}
#top .fv-info{grid-template-columns:1fr;}
#top .fv-info li{border-right:0;}
#top .fv-reasons li{grid-template-columns:48px 1fr;gap:16px;}
#top .fv-reasons .n{font-size:30px;}
#top .fv-staff-grid{grid-template-columns:1fr 1fr;gap:16px;}
#top .fv-staff h4{font-size:17px;}
#top .fv-price .n{font-size:14px;}
#top .fv-price .n small{display:block;margin:2px 0 0;}
#top .fv-price .p{font-size:22px;}
#footer .fv-footer-grid{grid-template-columns:1fr;}
}

/* ===== page hero (recruit / product pages) ===== */
body:not(#index) #main .fv-phero{clear:both;position:relative;overflow:hidden;margin:0 0 36px;background:var(--fv-ink);}
body:not(#index) #main .fv-phero img{display:block;width:100%;height:auto;aspect-ratio:21/9;object-fit:cover;margin:0;}
body:not(#index) #main .fv-phero-in{position:absolute;left:0;right:0;bottom:0;padding:80px 40px 34px;background:linear-gradient(180deg,rgba(43,42,40,0) 0%,rgba(43,42,40,.72) 100%);color:#fff;}
body:not(#index) #main .fv-phero-in p{margin:0;padding:0;color:#fff;}
body:not(#index) #main .fv-phero-eyebrow{font-family:var(--fv-serif);font-size:13px;letter-spacing:.35em;text-transform:uppercase;color:var(--fv-gold) !important;font-weight:500;}
body:not(#index) #main .fv-phero-catch{font-family:var(--fv-mincho);font-size:30px;font-weight:500;letter-spacing:.08em;line-height:1.4;margin-top:8px !important;}
body:not(#index) #main .fv-phero-lead{font-size:14px;letter-spacing:.06em;line-height:1.9;margin-top:10px !important;opacity:.92;}
body:not(#index) #main .fv-phero.fv-phero-light .fv-phero-in{background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.86) 100%);}
body:not(#index) #main .fv-phero.fv-phero-light .fv-phero-in p{color:var(--fv-ink);}
body:not(#index) #main .fv-phero-brand{font-family:var(--fv-serif);font-size:44px;font-weight:500;letter-spacing:.12em;line-height:1.1;text-transform:uppercase;}
/* ===== product page components ===== */
body:not(#index) #main .fv-prod-lead{clear:both;text-align:center;max-width:760px;margin:0 auto 40px;}
body:not(#index) #main .fv-prod-lead .tt{font-family:var(--fv-mincho);font-size:22px;font-weight:500;letter-spacing:.1em;line-height:1.7;color:var(--fv-ink);margin:0 0 14px;padding:0;}
body:not(#index) #main .fv-prod-lead .tt::after{content:"";display:block;width:36px;height:1px;background:var(--fv-gold);margin:16px auto 0;}
body:not(#index) #main .fv-prod-lead p{font-size:14px;line-height:2;letter-spacing:.04em;color:var(--fv-ink2);margin:0;padding:0;}
body:not(#index) #main .fv-prod-lead .fv-brandlogo{font-family:var(--fv-serif);font-size:13px;letter-spacing:.35em;text-transform:uppercase;color:var(--fv-gold);margin-bottom:10px;}
body:not(#index) #main .fv-sec-title{clear:both;font-family:var(--fv-mincho);font-size:20px;font-weight:500;letter-spacing:.1em;line-height:1.5;color:var(--fv-ink);margin:44px 0 6px;padding:0 0 12px;border-bottom:1px solid var(--fv-line);position:relative;}
body:not(#index) #main .fv-sec-title::after{content:"";position:absolute;left:0;bottom:-1px;width:56px;height:1px;background:var(--fv-gold);}
body:not(#index) #main .fv-sec-title small{display:block;font-family:var(--fv-serif);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--fv-gold);margin-bottom:4px;}
body:not(#index) #main .fv-feat{clear:both;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;list-style:none;margin:18px 0 32px;padding:0;}
body:not(#index) #main .fv-feat li{background:var(--fv-bg2);padding:26px 24px 24px;margin:0;list-style:none;}
body:not(#index) #main .fv-feat .num{display:block;font-family:var(--fv-serif);font-size:26px;line-height:1;color:var(--fv-gold);margin-bottom:12px;}
body:not(#index) #main .fv-feat .hd{display:block;font-family:var(--fv-mincho);font-size:16px;font-weight:500;letter-spacing:.06em;line-height:1.6;color:var(--fv-ink);margin-bottom:8px;}
body:not(#index) #main .fv-feat p{font-size:13px;line-height:1.9;color:var(--fv-ink2);margin:0;padding:0;}
body:not(#index) #main .fv-feat img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;margin:-26px -24px 18px;width:calc(100% + 48px);max-width:none;background:#fff;}
body:not(#index) #main .fv-feat.fv-feat-2{grid-template-columns:repeat(2,1fr);}
body:not(#index) #main .fv-feat.fv-feat-4{grid-template-columns:repeat(4,1fr);}
body:not(#index) #main .fv-split{clear:both;display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;margin:18px 0 36px;}
body:not(#index) #main .fv-split img{display:block;width:100%;height:auto;margin:0;}
body:not(#index) #main .fv-split.fv-split-rev > *:first-child{order:2;}
body:not(#index) #main .fv-split .hd{display:block;font-family:var(--fv-mincho);font-size:19px;font-weight:500;letter-spacing:.08em;line-height:1.6;color:var(--fv-ink);margin:0 0 12px;}
body:not(#index) #main .fv-split p{font-size:14px;line-height:2;color:var(--fv-ink2);margin:0 0 10px;padding:0;}
body:not(#index) #main .fv-stats{clear:both;display:grid;grid-template-columns:1fr 1fr;gap:16px;list-style:none;margin:18px 0 36px;padding:0;}
body:not(#index) #main .fv-stats li{list-style:none;margin:0;text-align:center;padding:28px 20px 24px;border:1px solid var(--fv-line);background:#fff;}
body:not(#index) #main .fv-stats .val{display:block;font-family:var(--fv-serif);font-size:52px;line-height:1;color:var(--fv-gold);}
body:not(#index) #main .fv-stats .val small{font-size:22px;margin-left:2px;}
body:not(#index) #main .fv-stats .lab{display:block;font-family:var(--fv-mincho);font-size:15px;letter-spacing:.06em;color:var(--fv-ink);margin-top:10px;}
body:not(#index) #main .fv-stats .sub{display:block;font-size:11px;color:var(--fv-mute);margin-top:6px;}
body:not(#index) #main .fv-figure{clear:both;margin:18px 0 32px;padding:0;}
body:not(#index) #main .fv-figure img{display:block;width:100%;height:auto;margin:0;border:1px solid var(--fv-line);}
body:not(#index) #main .fv-figure .cap{font-size:11px;color:var(--fv-mute);text-align:right;margin:6px 0 0;padding:0;}
body:not(#index) #main .fv-steps{clear:both;counter-reset:fvstep;list-style:none;margin:18px 0 32px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px;}
body:not(#index) #main .fv-steps li{list-style:none;margin:0;display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center;padding:18px;border:1px solid var(--fv-line);background:#fff;}
body:not(#index) #main .fv-steps img{display:block;width:120px;height:120px;object-fit:cover;margin:0;}
body:not(#index) #main .fv-steps .hd{display:block;font-family:var(--fv-mincho);font-size:15px;font-weight:500;letter-spacing:.04em;color:var(--fv-ink);margin-bottom:6px;}
body:not(#index) #main .fv-steps .hd::before{counter-increment:fvstep;content:"STEP " counter(fvstep);display:block;font-family:var(--fv-serif);font-size:12px;letter-spacing:.3em;color:var(--fv-gold);margin-bottom:4px;}
body:not(#index) #main .fv-steps p{font-size:13px;line-height:1.8;color:var(--fv-ink2);margin:0;padding:0;}
body:not(#index) #main .fv-quote{clear:both;font-family:var(--fv-mincho);font-size:17px;line-height:2.1;letter-spacing:.08em;color:var(--fv-ink);text-align:center;padding:30px 24px;margin:18px 0 36px;background:var(--fv-bg2);}
body:not(#index) #main .fv-quote strong{font-weight:500;font-size:22px;display:block;margin-bottom:8px;}
body:not(#index) #main .fv-checks{clear:both;list-style:none;margin:14px 0 32px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;}
body:not(#index) #main .fv-checks li{list-style:none;margin:0;padding:10px 0 10px 28px;border-bottom:1px solid var(--fv-line);font-size:14px;color:var(--fv-ink);position:relative;}
body:not(#index) #main .fv-checks li::before{content:"";position:absolute;left:4px;top:16px;width:10px;height:6px;border-left:1.5px solid var(--fv-gold);border-bottom:1.5px solid var(--fv-gold);transform:rotate(-45deg);}
body:not(#index) #main .fv-note{clear:both;font-size:11px;line-height:1.7;color:var(--fv-mute);margin:0 0 24px;padding:0;}
body:not(#index) #main .fv-cta .fv-cta-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px;}
body:not(#index) #main .content .fv-cta .fv-cta-btns a.fv-cta-btn{margin-top:8px;min-width:200px;}
body:not(#index) #main .fv-cta.fv-cta-recruit .fv-cta-label::before{content:"Recruit";}
/* スタッフ写真: 白黒→ホバーでカラー */
#top .fv-staff img,body:not(#index) #main img.right[src*="hpb-staff-"]{filter:grayscale(1) contrast(1.04);transition:filter .45s ease;}
#top .fv-staff:hover img,body:not(#index) #main img.right[src*="hpb-staff-"]:hover{filter:none;}
body:not(#index) #main img.fv-voice-photo{width:220px;max-width:40%;height:auto;aspect-ratio:3/4;object-fit:cover;margin:0 24px 12px 0;}
/* What's New 記事: 画像回り込みの整理 */
body.p-70whatsnew #main .content img.right{float:right;width:300px;max-width:42%;height:auto;margin:0 0 28px 28px;}
body.p-70whatsnew #main .content img.left{float:left;width:300px;max-width:42%;height:auto;margin:0 28px 28px 0;}
body.p-70whatsnew #main .content p:has(> img:not(.right):not(.left)),body.p-70whatsnew #main .content p:has(> span > img),body.p-70whatsnew #main .content p:has(> a > img){clear:both;padding-top:24px !important;}
body.p-70whatsnew #main .content p > span > img,body.p-70whatsnew #main .content p > img:not(.right):not(.left),body.p-70whatsnew #main .content p > a > img{display:block;margin:16px auto 32px !important;max-width:100%;height:auto;}
body.p-70whatsnew #main .content::after{content:"";display:block;clear:both;}
body.p-70whatsnew #main .content > img:not(.right):not(.left),body.p-70whatsnew #main .content > a > img{clear:both;display:block;margin:16px auto 32px !important;max-width:100%;height:auto;}
@media (max-width:560px){body.p-70whatsnew #main .content img.right,body.p-70whatsnew #main .content img.left{width:150px;margin-bottom:10px;}}
body:not(#index) #main .fv-policy{clear:both;background:var(--fv-bg2);border:1px solid var(--fv-line);padding:22px 26px 18px;margin:0 0 32px;}
body:not(#index) #main .fv-policy p{margin:0;padding:0;}
body:not(#index) #main .fv-policy .fv-policy-title{font-family:var(--fv-mincho);font-size:17px;font-weight:500;letter-spacing:.1em;color:var(--fv-ink);padding-left:14px;border-left:3px solid var(--fv-gold);margin-bottom:12px;line-height:1.4;}
body:not(#index) #main .fv-policy-list{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;margin:0 0 12px;padding:0;font-size:15px;}
body:not(#index) #main .fv-policy-list dt{font-weight:500;color:var(--fv-ink);margin:0;padding:0;}
body:not(#index) #main .fv-policy-list dd{margin:0;padding:0;color:var(--fv-ink);}
body:not(#index) #main .fv-policy .fv-policy-note{font-size:12px;line-height:1.7;color:var(--fv-ink2);}
body:not(#index) #main img.right[src*="hpb-staff-"],body:not(#index) #main img.right[src*="staff-nophoto"]{width:240px;max-width:42%;height:auto;aspect-ratio:3/4;object-fit:cover;margin:0 0 16px 24px;}
@media (max-width:560px){body:not(#index) #main img.right[src*="hpb-staff-"],body:not(#index) #main img.right[src*="staff-nophoto"]{width:150px;margin:0 0 10px 14px;}}
body:not(#index) #main .fv-cta .fv-cta-lead{font-family:var(--fv-mincho);font-size:20px;letter-spacing:.1em;line-height:1.6;color:var(--fv-bg);}
body:not(#index) #main .content .fv-cta a.fv-cta-link{font-size:12px;color:#B7B1A7 !important;text-decoration:underline !important;margin-top:14px;}
@media (max-width:900px){
body:not(#index) #main .fv-feat,body:not(#index) #main .fv-feat.fv-feat-4{grid-template-columns:1fr 1fr;}
body:not(#index) #main .fv-steps{grid-template-columns:1fr;}
body:not(#index) #main .fv-phero-in{padding:60px 24px 24px;}
body:not(#index) #main .fv-phero-catch{font-size:24px;}
body:not(#index) #main .fv-phero-brand{font-size:34px;}
}
@media (max-width:600px){
body:not(#index) #main .fv-phero img{aspect-ratio:4/3;}
body:not(#index) #main .fv-phero-in{padding:50px 18px 20px;}
body:not(#index) #main .fv-phero-catch{font-size:20px;}
body:not(#index) #main .fv-phero-brand{font-size:28px;}
body:not(#index) #main .fv-phero-lead{font-size:12px;}
body:not(#index) #main .fv-phero-lead br{display:none;}
body:not(#index) #main .fv-prod-lead .tt{font-size:18px;}
body:not(#index) #main .fv-feat,body:not(#index) #main .fv-feat.fv-feat-2,body:not(#index) #main .fv-feat.fv-feat-4{grid-template-columns:1fr;}
body:not(#index) #main .fv-split{grid-template-columns:1fr;gap:18px;}
body:not(#index) #main .fv-split.fv-split-rev > *:first-child{order:0;}
body:not(#index) #main .fv-stats{grid-template-columns:1fr;}
body:not(#index) #main .fv-steps li{grid-template-columns:90px 1fr;}
body:not(#index) #main .fv-steps img{width:90px;height:90px;}
body:not(#index) #main .fv-checks{grid-template-columns:1fr;}
body:not(#index) #main .content .fv-cta .fv-cta-btns a.fv-cta-btn{width:100%;}
}

/* 店舗ページ：スタッフブログへのリンク */
body:not(#index) #main .content .fv-bloglink{clear:both;margin:40px 0 8px;text-align:center;}
body:not(#index) #main .content .fv-bloglink a{display:inline-flex;align-items:center;justify-content:center;min-width:260px;height:52px;padding:0 40px;border:1px solid var(--fv-ink);color:var(--fv-ink) !important;background:transparent;font-size:13px;letter-spacing:.14em;text-decoration:none !important;transition:color .2s,border-color .2s;}
body:not(#index) #main .content .fv-bloglink a:hover{border-color:var(--fv-gold);color:var(--fv-gold) !important;}
