@charset "utf-8";
:root{
  --brand-main:#8B1E3F;
  --brand-dark:#6F1631;
  --brand-sub:#B03A5B;
  --brand-lavender:#F3F0FA;
  --brand-lavender2:#EEF2FC;
  --brand-pale:#FBF9FD;
  --box-gray:#F5F6F8;
  --box-gray-border:#E3E5E8;
  --note-gray:#F8F9FA;
  --brand-border:#D9D6E8;
  --text-main:#333333;
  --text-sub:#666666;
  --white:#ffffff;
}html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
font,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td{
  font-family:inherit;
  font-size:16px;
  font-style:inherit;
  font-weight:inherit;
  margin:0;
  outline:0;
  padding:0;
  vertical-align:baseline;
}article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section{display:block;}ol,
ul{list-style:none;}table{border-collapse:separate;border-spacing:0;}caption,
th,
td{font-weight:normal;text-align:left;}blockquote:before,
blockquote:after,
q:before,
q:after{content:"";}blockquote,
q{quotes:"" "";}a img{border:0;}figure{margin:0;}:focus{outline:0;}body{
  color:var(--text-main);
  font:16px verdana,"HG創英丸ｺﾞｼｯｸL","Hiragino Maru Gothic ProN","メイリオ","Meiryo","ＭＳ Ｐゴシック","MS PGothic",sans-serif;
  line-height:1.65;
  background:#666666;
  -webkit-text-size-adjust:none;
}a{color:#000;text-decoration:none;}a:hover{color:var(--brand-sub);}strong{font-weight:700;}#wrapper,
#header,
#footer{
  margin:0 auto;
  padding:0 1%;
  width:98%;
  position:relative;
  background:#fff;
  box-shadow:1px 2px 3px #ccc;
  box-sizing:border-box;
}#main{overflow:hidden;}#main p{margin-bottom:1em;}#main img{max-width:100%;height:auto;}.c-block{clear:both;margin:0 0 56px;overflow:visible;}.c-s-block::after,
.c-block::after{content:"";display:block;clear:both;}.heading2,
.auto-style15,
h2.heading{
  display:block;
  clear:both;
  box-sizing:border-box;
  margin:68px 0 30px !important;
  padding:18px 16px !important;
  color:#7A2640 !important;
  background:linear-gradient(90deg, #ffffff 0%, #F3F0FA 50%, #ffffff 100%) !important;
  border-top:1px solid #7A2640 !important;
  border-bottom:3px solid #7A2640 !important;
  border-left:0 !important;
  border-right:0 !important;
  border-radius:0 !important;
  text-align:center !important;
  font-size:2.05em !important;
  font-weight:700 !important;
  line-height:1.45 !important;
  letter-spacing:.03em !important;
  box-shadow:none !important;
}.heading02,
h3.heading{
  display:block;
  clear:both;
  box-sizing:border-box;
  margin:46px 0 22px !important;
  padding:12px 16px !important;
  color:var(--text-main) !important;
  background:var(--brand-lavender2) !important;
  border-left:7px solid var(--brand-main) !important;
  border-bottom:1px solid var(--brand-border) !important;
  border-top:0 !important;
  border-right:0 !important;
  border-radius:0 !important;
  text-align:left !important;
  font-size:1.28em !important;
  font-weight:700 !important;
  line-height:1.55 !important;
  position:relative;
  box-shadow:none !important;
}.heading02:before,
.heading02:after{content:"" !important;display:none !important;}#main > h2:first-child,
#main > .heading2:first-child,
#main > .auto-style15:first-child{margin-top:18px !important;}.eyebrow-label{
  display:inline-block !important;
  margin:0 0 12px !important;
  padding:4px 12px !important;
  color:var(--brand-main) !important;
  background:#fff !important;
  border:1px solid var(--brand-border) !important;
  border-radius:999px !important;
  font-size:.9rem !important;
  font-weight:700 !important;
  line-height:1.5 !important;
}.list02{margin:0 0 1em;word-break:break-all;}.list02 li{position:relative;margin-bottom:.55em;padding-left:1.25em;}.list02 li:before{content:"■";position:absolute;left:0;top:.1em;color:var(--brand-main);font-size:.75em;}.newStyle9{
  display:block;
  box-sizing:border-box;
  margin:24px 0 34px !important;
  padding:22px 26px !important;
  color:var(--text-main) !important;
  background:var(--box-gray) !important;
  border:1px solid var(--box-gray-border) !important;
  border-left:5px solid var(--brand-main) !important;
  border-radius:4px !important;
  line-height:1.9 !important;
}.newStyle9 p:last-child{margin-bottom:0 !important;}table.table{border-collapse:collapse;width:100%;margin:12px auto 20px;}table.table th,
table.table td{padding:10px;border:1px solid var(--brand-dark);}table.table th{width:34%;text-align:left;font-weight:700;letter-spacing:1px;white-space:nowrap;color:#fff;background:var(--brand-main);}table.table td{background:#fff;}.qa-q{background:#FBECEF !important;border-left:6px solid var(--brand-main);padding:12px 16px 12px 44px;margin-top:18px;font-weight:700;position:relative;}.qa-q:before{content:"Q";position:absolute;left:16px;color:var(--brand-main);font-weight:700;}.qa-a{padding:12px 16px 20px 44px;border-bottom:1px solid var(--brand-border);position:relative;}.qa-a:before{content:"A";position:absolute;left:16px;color:var(--brand-sub);font-weight:700;}.qa-q span,
.qa-a span{display:none;}#footer{clear:both;padding:20px 0;overflow:hidden;background:var(--brand-main);}#footer a{color:#fff;}#footer a:hover{color:#ddd;}@media only screen and (min-width:960px){#wrapper,
#header,
.inner,
#footer{width:940px;padding:0 10px;}#wrapper{padding-bottom:20px;}#footer{padding:20px 10px 10px;}
}@media only screen and (max-width:940px){*{box-sizing:border-box;}
}@media only screen and (max-width:768px){.heading2,
.auto-style15,
h2.heading{margin-top:46px !important;margin-bottom:24px !important;padding:15px 10px !important;font-size:1.45em !important;}.heading02,
h3.heading{margin-top:34px !important;margin-bottom:18px !important;padding:10px 12px !important;border-left-width:6px !important;font-size:1.12em !important;}table.table th,
table.table td,
.c-table2 th,
.c-table2 td{display:block;width:100%;white-space:normal;}
}kakomi,
kakomi3,
refer{display:block;border-radius:5px;border:1px solid var(--brand-border);padding:10px;background:#fff;line-height:1.8;}html,
body{
  overflow-x:hidden;
}@media only screen and (min-width:960px){body{
    padding-top:0 !important;
  }
}@media only screen and (max-width:959px){body{
    padding-top:46px !important;
  }
}.page-hero{
  clear:both;
  margin:18px 0 46px !important;
  padding:24px 24px 28px !important;
  background:#fff !important;
  border:1px solid var(--brand-border) !important;
  border-top:5px solid var(--brand-main) !important;
  border-radius:6px !important;
}.page-hero .heading2{
  margin-top:0 !important;
  margin-bottom:18px !important;
}.treatment-flow{
  counter-reset:flow;
  margin:24px 0 34px;
}.two-column{
  display:grid;
  grid-template-columns:minmax(0,1fr) 38%;
  gap:28px;
  align-items:start;
  margin:24px 0 36px;
}.two-column-image{
  background:#fff;
  border:1px solid var(--brand-border);
  border-radius:6px;
  padding:12px;
  box-sizing:border-box;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
}.two-column-image img{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  margin:0 auto;
}.two-column-image figcaption{
  margin-top:10px;
  font-size:.92rem;
  line-height:1.75;
  color:var(--text-sub);
}@media only screen and (max-width:768px){.page-hero{
    padding:18px 16px 22px !important;
    margin-bottom:34px !important;
  }.two-column{
    grid-template-columns:1fr;
  }
}.header,
.header *{
  box-sizing:border-box;
}.header{
  display:flex;
  flex-direction:column;
  width:100%;
  margin:0;
  padding:0;
  background:#8B1E3F;
  box-shadow:0 3px 12px rgba(0,0,0,.12);
  position:relative;
  z-index:1000;
}.main{
  order:1;
  width:100%;
  background:#8B1E3F;
  border-bottom:1px solid rgba(255,255,255,.22);
}.main-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
  width:100%;
  max-width:none;
  min-height:74px;
  height:74px;
  margin:0;
  padding:0 22px 0 0;
}.header-logo{
  flex:0 1 auto;
  min-width:0;
  height:74px;
  display:flex;
  justify-content:flex-start;
  align-items:stretch;
  overflow:hidden;
}.header-logo a{
  display:block;
  height:74px;
  line-height:0;
}.header-logo img{
  display:block;
  width:auto;
  height:74px;
  max-width:none;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  object-fit:contain;
}.header-actions{
  display:flex;
  flex:0 0 auto;
  justify-content:flex-end;
  align-items:center;
  gap:15px;
  margin-left:auto;
}.header-tel{
  text-align:right;
  line-height:1.15;
}.tel-label{
  display:block;
  margin-bottom:2px;
  color:rgba(255,255,255,.82);
  font-size:.70rem;
  font-weight:600;
}.header-tel a{
  color:#8B1E3F !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.48rem;
  font-weight:700;
  letter-spacing:.03em;
  white-space:nowrap;
  text-decoration:none !important;
}.reserve{
  display:flex;
  min-width:142px;
  min-height:38px;
  padding:6px 13px;
  justify-content:center;
  align-items:center;
  color:#8B1E3F !important;
  background:#ffffff;
  border:1px solid #ffffff;
  border-radius:2px;
  font-size:.82rem;
  font-weight:700;
  line-height:1.25;
  text-align:center;
  text-decoration:none !important;
  transition:.2s ease;
}.reserve:hover{
  color:#8B1E3F !important;
  background:#ffffff;
}.topbar{
  order:2;
  width:100%;
  background:#ffffff;
}.nav{
  width:940px;
  max-width:100%;
  margin:0 auto;
  padding:0;
  background:#ffffff;
}.menu-toggle{
  display:none;
}.nav-panel{
  display:block;
  width:100%;
}.nav ul{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  width:100%;
  margin:0;
  padding:0;
  list-style:none;
}.nav li{
  margin:0;
  padding:0;
  list-style:none;
  border-left:1px solid #e5d6db;
}.nav li:last-child{
  border-right:1px solid #e5d6db;
}.nav li a{
  display:flex;
  min-height:34px;
  padding:3px 7px;
  justify-content:center;
  align-items:center;
  gap:6px;
  color:#8B1E3F !important;
  background:#ffffff;
  border:0;
  font-size:.78rem;
  font-weight:700;
  line-height:1.05;
  text-align:center;
  text-decoration:none !important;
}.nav li a span{
  font-family:Georgia,"Times New Roman",serif;
  font-size:.56rem;
  font-weight:400;
  opacity:.75;
}.nav li.is-active a,
.nav li a:hover{
  background:#f7f3f4;
}.header nav,
.header ul,
.header li,
.header a,
.header div{
  float:none !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
}.header + #wrapper{
  clear:both;
}@media only screen and (max-width:940px){.main-inner{
    width:100%;
    max-width:none;
    min-height:68px;
    padding:6px 14px 6px 0;
  }.header-logo{
    flex:1 1 auto;
  }.header-logo img{
    max-width:290px;
    max-height:60px;
  }.header-tel a{
    font-size:1.24rem;
  }.reserve{
    min-width:120px;
    min-height:36px;
    padding:5px 9px;
    font-size:.76rem;
  }.nav{
    width:100%;
  }.menu-toggle{
    display:block;
    width:100%;
    height:36px;
    padding:0 11px;
    color:#8B1E3F !important;
    background:#ffffff;
    font-size:.76rem;
    font-weight:700;
    line-height:36px;
    text-align:left;
    text-decoration:none !important;
  }.menu-toggle span:before{
    content:"☰ ";
  }.menu-toggle.is-open span:before{
    content:"× ";
  }.nav-panel{
    display:none;
    width:100%;
  }.nav-panel.is-open{
    display:block;
  }.nav ul{
    display:block;
    width:100%;
  }.nav li,
.nav li:last-child{
    width:100%;
    border:0;
    border-top:1px solid #e5d6db;
  }.nav li a{
    display:block;
    min-height:42px;
    padding:10px 14px;
    text-align:left;
  }.nav li a span{
    margin-left:7px;
  }
}@media only screen and (max-width:640px){.main-inner{
    flex-direction:column;
    align-items:stretch;
    gap:7px;
    min-height:auto;
    padding:7px 9px 9px 0;
  }.header-logo{
    width:100%;
    justify-content:flex-start;
    text-align:left;
  }.header-logo img{
    max-width:275px;
    max-height:56px;
    margin:0;
  }.header-actions{
    width:100%;
    justify-content:flex-end;
    padding-right:9px;
  }.header-tel{
    text-align:right;
  }
}@media only screen and (max-width:420px){.header-logo img{
    max-width:245px;
  }.header-tel a{
    font-size:1.12rem;
  }.reserve{
    min-width:108px;
    font-size:.70rem;
  }.menu-toggle{
    padding:0 7px;
    font-size:.70rem;
  }
}.main-inner{
  min-height:74px !important;
  height:74px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}.header-logo,
.header-logo a,
.header-logo img{
  height:74px !important;
}.header-logo{
  overflow:hidden !important;
  align-items:stretch !important;
}.header-logo img{
  width:auto !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:contain !important;
}@media only screen and (max-width:940px){.main-inner{
    min-height:66px !important;
    height:66px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
  }.header-logo,
.header-logo a,
.header-logo img{
    height:66px !important;
  }
}@media only screen and (max-width:640px){.main-inner{
    height:auto !important;
    min-height:0 !important;
    padding:0 9px 7px 0 !important;
  }.header-logo,
.header-logo a,
.header-logo img{
    height:58px !important;
  }.header-logo{
    width:100%;
    justify-content:flex-start !important;
  }
}:root{
  --header-bordeaux:#741733;
  --header-bordeaux-dark:#5E132C;
  --header-bordeaux-pale:#F8F2F4;
  --header-divider:#E6D9DD;
}html,
body{
  margin:0 !important;
  padding:0 !important;
  background:#ffffff !important;
}.header,
.header *{
  box-sizing:border-box;
}.header{
  display:flex;
  flex-direction:column;
  width:100%;
  margin:0 !important;
  padding:0;
  background:var(--header-bordeaux) !important;
  box-shadow:0 3px 12px rgba(0,0,0,.12);
  position:relative;
  z-index:1000;
  border-top:0 !important;
}.main{
  order:1;
  width:100%;
  height:74px;
  min-height:74px;
  margin:0;
  padding:0;
  overflow:hidden;
  background:var(--header-bordeaux) !important;
  border-bottom:1px solid rgba(255,255,255,.18) !important;
}.main-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  width:100%;
  max-width:none;
  height:74px !important;
  min-height:74px !important;
  margin:0;
  padding:0 22px 0 0 !important;
}.header-logo{
  flex:0 0 auto;
  display:flex !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  height:74px !important;
  min-width:0;
  overflow:hidden !important;
}.header-logo a{
  display:block !important;
  height:74px !important;
  line-height:0;
}.header-logo img{
  display:block !important;
  width:auto !important;
  height:74px !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0;
  object-fit:contain !important;
}.header-actions{
  display:flex;
  flex:0 0 auto;
  justify-content:flex-end;
  align-items:center;
  gap:15px;
  margin-left:auto;
}.header-tel{
  text-align:right;
  line-height:1.15;
}.tel-label{
  display:block;
  margin-bottom:2px;
  color:rgba(255,255,255,.82) !important;
  font-size:.70rem;
  font-weight:600;
}.header-tel a{
  color:#ffffff !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.48rem;
  font-weight:700;
  letter-spacing:.03em;
  white-space:nowrap;
  text-decoration:none !important;
  text-shadow:0 1px 2px rgba(0,0,0,.18);
}.reserve{
  display:flex;
  min-width:142px;
  min-height:38px;
  padding:6px 13px;
  justify-content:center;
  align-items:center;
  color:var(--header-bordeaux) !important;
  background:#ffffff !important;
  border:1px solid #ffffff !important;
  border-radius:2px;
  font-size:.82rem;
  font-weight:700;
  line-height:1.25;
  text-align:center;
  text-decoration:none !important;
  transition:.2s ease;
}.reserve:hover,
.reserve:focus{
  color:#ffffff !important;
  background:var(--header-bordeaux-dark) !important;
}.topbar{
  order:2;
  width:100%;
  background:#ffffff !important;
  border-top:1px solid var(--header-divider) !important;
  border-bottom:1px solid var(--header-divider) !important;
}.nav{
  width:940px;
  max-width:100%;
  margin:0 auto;
  padding:0;
  background:#ffffff !important;
}.menu-toggle{
  display:none;
}.nav-panel{
  display:block;
  width:100%;
}.nav ul{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  width:100%;
  margin:0;
  padding:0;
  list-style:none;
}.nav li{
  margin:0;
  padding:0;
  list-style:none;
  border-left:1px solid var(--header-divider) !important;
}.nav li:last-child{
  border-right:1px solid var(--header-divider) !important;
}.nav li a{
  display:flex;
  min-height:34px;
  padding:3px 7px;
  justify-content:center;
  align-items:center;
  gap:6px;
  color:var(--header-bordeaux) !important;
  background:#ffffff !important;
  border:0 !important;
  border-bottom:3px solid transparent !important;
  font-size:.78rem;
  font-weight:700;
  line-height:1.05;
  text-align:center;
  text-decoration:none !important;
  transition:.2s ease;
}.nav li a span{
  font-family:Georgia,"Times New Roman",serif;
  font-size:.56rem;
  font-weight:400;
  opacity:.75;
}.nav li.is-active a,
.nav li a:hover,
.nav li a:focus{
  color:var(--header-bordeaux) !important;
  background:#ffffff !important;
  border-bottom-color:var(--header-bordeaux) !important;
}.header nav,
.header ul,
.header li,
.header a,
.header div{
  float:none !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
}.header + #wrapper{
  clear:both;
  margin-top:0 !important;
  padding-top:0 !important;
}@media only screen and (max-width:940px){.main{
    height:66px !important;
    min-height:66px !important;
  }.main-inner{
    height:66px !important;
    min-height:66px !important;
    padding:0 14px 0 0 !important;
  }.header-logo,
.header-logo a,
.header-logo img{
    height:66px !important;
  }.header-tel a{
    font-size:1.24rem;
  }.reserve{
    min-width:120px;
    min-height:36px;
    padding:5px 9px;
    font-size:.76rem;
  }.nav{
    width:100%;
  }.menu-toggle{
    display:block;
    width:100%;
    height:36px;
    padding:0 11px;
    color:var(--header-bordeaux) !important;
    background:#ffffff !important;
    border-top:1px solid var(--header-divider) !important;
    border-bottom:1px solid var(--header-divider) !important;
    font-size:.76rem;
    font-weight:700;
    line-height:36px;
    text-align:left;
    text-decoration:none !important;
  }.menu-toggle span:before{
    content:"☰ ";
  }.menu-toggle.is-open span:before{
    content:"× ";
  }.nav-panel{
    display:none;
    width:100%;
  }.nav-panel.is-open{
    display:block;
  }.nav ul{
    display:block;
    width:100%;
  }.nav li,
.nav li:last-child{
    width:100%;
    border-left:0 !important;
    border-right:0 !important;
    border-top:1px solid var(--header-divider) !important;
  }.nav li a{
    display:block;
    min-height:42px;
    padding:10px 14px;
    text-align:left;
    border-bottom:0 !important;
    border-left:4px solid transparent !important;
  }.nav li.is-active a,
.nav li a:hover,
.nav li a:focus{
    background:var(--header-bordeaux-pale) !important;
    border-left-color:var(--header-bordeaux) !important;
  }
}@media only screen and (max-width:640px){.main{
    height:58px !important;
    min-height:58px !important;
    overflow:hidden !important;
  }.main-inner{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    height:58px !important;
    min-height:58px !important;
    padding:0 8px 0 0 !important;
    gap:8px;
  }.header-logo,
.header-logo a,
.header-logo img{
    height:58px !important;
  }.header-logo{
    flex:0 1 auto;
    width:auto !important;
    justify-content:flex-start !important;
  }.header-actions{
    display:flex !important;
    flex:1 1 auto;
    justify-content:flex-end !important;
    align-items:center !important;
    gap:7px;
    min-width:0;
  }.header-tel{
    text-align:right;
  }.tel-label{
    font-size:.58rem;
  }.header-tel a{
    font-size:1rem;
  }.reserve{
    min-width:96px;
    min-height:32px;
    padding:4px 7px;
    font-size:.66rem;
  }
}@media only screen and (max-width:420px){.tel-label{
    display:none;
  }.header-tel a{
    font-size:.92rem;
  }.reserve{
    min-width:88px;
    font-size:.62rem;
  }.menu-toggle{
    padding:0 7px;
    font-size:.70rem;
  }
}:root{
  --theme-bordeaux:#741733;
  --theme-bordeaux-dark:#5E132C;
  --theme-bordeaux-light:#A53A5C;
  --theme-pink-pale:#FBF3F6;
  --theme-lavender:#F4F1F8;
  --theme-gold:#B89B5E;
  --theme-text:#2E2E2E;
  --theme-muted:#6E6E6E;
  --theme-line:#E7D9DE;
  --theme-white:#FFFFFF;
}.header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  width:100% !important;
  z-index:99999 !important;
}.page-title{
  position:relative;
  margin:0 0 26px !important;
  padding:0 0 20px !important;
  color:var(--theme-bordeaux) !important;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif !important;
  font-size:clamp(2rem,4vw,3.15rem) !important;
  font-weight:700 !important;
  line-height:1.35 !important;
  letter-spacing:.08em !important;
  text-shadow:0 1px 0 rgba(255,255,255,.9);
}.page-title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:86px;
  height:4px;
  background:linear-gradient(90deg,var(--theme-bordeaux),var(--theme-gold));
}.eyebrow-label{
  letter-spacing:.14em !important;
  text-transform:uppercase;
  box-shadow:0 3px 10px rgba(116,23,51,.08);
}.visual-content .heading2,
.visual-content .auto-style15,
.visual-content h2.heading{
  position:relative;
  overflow:hidden;
  margin:72px 0 32px !important;
  padding:20px 24px 18px !important;
  color:var(--theme-bordeaux) !important;
  background:
    linear-gradient(90deg,#fff 0%,var(--theme-pink-pale) 52%,#fff 100%) !important;
  border:0 !important;
  border-left:8px solid var(--theme-bordeaux) !important;
  border-bottom:1px solid var(--theme-line) !important;
  text-align:left !important;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif !important;
  font-size:clamp(1.55rem,2.8vw,2.15rem) !important;
  font-weight:700 !important;
  line-height:1.45 !important;
  letter-spacing:.05em !important;
  box-shadow:0 7px 22px rgba(116,23,51,.06) !important;
}.visual-content .heading2::before,
.visual-content .auto-style15::before,
.visual-content h2.heading::before{
  content:"";
  position:absolute;
  top:-28px;
  right:-10px;
  width:130px;
  height:130px;
  border:1px solid rgba(116,23,51,.09);
  border-radius:50%;
}.visual-content .heading2::after,
.visual-content .auto-style15::after,
.visual-content h2.heading::after{
  content:"";
  position:absolute;
  left:24px;
  bottom:0;
  width:74px;
  height:3px;
  background:linear-gradient(90deg,var(--theme-bordeaux),var(--theme-gold));
}.visual-content .heading02,
.visual-content h3.heading{
  position:relative;
  margin:42px 0 20px !important;
  padding:13px 18px 13px 22px !important;
  color:var(--theme-text) !important;
  background:linear-gradient(90deg,var(--theme-lavender),#fff) !important;
  border:0 !important;
  border-left:5px solid var(--theme-bordeaux-light) !important;
  border-radius:0 6px 6px 0 !important;
  font-size:1.25rem !important;
  font-weight:700 !important;
  line-height:1.55 !important;
  letter-spacing:.025em !important;
  box-shadow:0 3px 12px rgba(0,0,0,.035) !important;
}.visual-content .heading02::after,
.visual-content h3.heading::after{
  content:"";
  position:absolute;
  left:22px;
  bottom:7px;
  width:42px;
  height:1px;
  background:var(--theme-gold);
}.hero-lead{
  position:relative;
  padding-left:18px;
  color:var(--theme-text);
  font-size:1.06rem !important;
  line-height:2 !important;
  border-left:3px solid rgba(116,23,51,.28);
}.visual-content p{
  color:var(--theme-text);
}.visual-content strong{
  color:var(--theme-bordeaux);
  font-weight:700;
}.content-card{
  position:relative;
  overflow:hidden;
  border:1px solid var(--theme-line) !important;
  border-top:0 !important;
  background:linear-gradient(180deg,#fff 0%,#fff 78%,#FCF8FA 100%) !important;
  box-shadow:0 8px 24px rgba(70,38,49,.07) !important;
  transition:transform .25s ease,box-shadow .25s ease !important;
}.content-card::before{
  content:"";
  display:block;
  height:5px;
  margin:-22px -20px 18px;
  background:linear-gradient(90deg,var(--theme-bordeaux),var(--theme-gold));
}.content-card:hover{
  transform:translateY(-5px);
  box-shadow:0 14px 30px rgba(116,23,51,.13) !important;
}.content-card h3{
  color:var(--theme-bordeaux) !important;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
  letter-spacing:.035em;
}.check-grid{
  background:linear-gradient(135deg,#fff,var(--theme-pink-pale)) !important;
  border:1px solid var(--theme-line) !important;
  box-shadow:0 8px 22px rgba(116,23,51,.05);
}.list02 li{
  padding-left:1.55em !important;
}.list02 li::before{
  content:"✓" !important;
  top:-.02em !important;
  color:var(--theme-bordeaux) !important;
  font-size:1em !important;
  font-weight:700;
}.newStyle9{
  position:relative;
  background:linear-gradient(90deg,#F8F8F8,#fff) !important;
  border:1px solid #E8E8E8 !important;
  border-left:6px solid var(--theme-bordeaux) !important;
  box-shadow:0 5px 18px rgba(0,0,0,.04);
}.newStyle9::before{
  content:"POINT";
  display:block;
  margin-bottom:8px;
  color:var(--theme-bordeaux);
  font-family:Georgia,"Times New Roman",serif;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.18em;
}.treatment-flow li{
  border:1px solid var(--theme-line) !important;
  box-shadow:0 6px 18px rgba(116,23,51,.05);
}.treatment-flow li::before{
  background:linear-gradient(135deg,var(--theme-bordeaux),var(--theme-bordeaux-light)) !important;
  box-shadow:0 4px 10px rgba(116,23,51,.25);
}table.table{
  overflow:hidden;
  border-radius:6px;
  box-shadow:0 7px 20px rgba(116,23,51,.07);
}table.table th{
  color:#fff !important;
  background:linear-gradient(135deg,var(--theme-bordeaux),var(--theme-bordeaux-dark)) !important;
  font-weight:700 !important;
  letter-spacing:.04em;
}table.table td{
  background:#fff !important;
  font-weight:600;
}.qa-q{
  margin-top:20px !important;
  padding:15px 18px 15px 54px !important;
  color:var(--theme-bordeaux) !important;
  background:linear-gradient(90deg,var(--theme-pink-pale),#fff) !important;
  border:1px solid var(--theme-line) !important;
  border-left:5px solid var(--theme-bordeaux) !important;
  border-radius:6px 6px 0 0;
  font-weight:700 !important;
}.qa-q::before{
  left:18px !important;
  top:13px !important;
  width:24px;
  height:24px;
  color:#fff !important;
  background:var(--theme-bordeaux);
  border-radius:50%;
  text-align:center;
  line-height:24px;
}.qa-a{
  margin:0 !important;
  padding:16px 18px 20px 54px !important;
  background:#fff;
  border:1px solid var(--theme-line) !important;
  border-top:0 !important;
  border-radius:0 0 6px 6px;
}.qa-a::before{
  left:18px !important;
  top:15px !important;
  color:var(--theme-gold) !important;
  font-size:1.15rem;
}.two-column-image,
.image-pair figure{
  border:1px solid var(--theme-line) !important;
  box-shadow:0 8px 24px rgba(116,23,51,.07) !important;
}.two-column-image figcaption,
.image-pair figcaption{
  color:var(--theme-muted);
  font-size:.88rem;
  letter-spacing:.02em;
}@media only screen and (max-width:768px){.visual-content .heading2,
.visual-content .auto-style15,
.visual-content h2.heading{
    margin-top:50px !important;
    padding:16px 14px 14px 18px !important;
    border-left-width:6px !important;
    font-size:1.42rem !important;
  }.visual-content .heading2::after,
.visual-content .auto-style15::after,
.visual-content h2.heading::after{
    left:18px;
  }.page-title{
    font-size:1.85rem !important;
  }.hero-lead{
    padding-left:12px;
    font-size:.98rem !important;
  }
}.main-inner{
  width:940px !important;
  max-width:calc(100% - 32px) !important;
  margin:0 auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
}.header-logo{
  margin-left:0 !important;
  flex:0 0 auto !important;
}.header-actions{
  margin-left:auto !important;
  margin-right:0 !important;
  flex:0 0 auto !important;
}.nav{
  width:940px !important;
  max-width:calc(100% - 32px) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}@media only screen and (max-width:940px){.main-inner{
    width:100% !important;
    max-width:none !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }.nav{
    width:100% !important;
    max-width:none !important;
  }
}@media only screen and (max-width:640px){.main-inner{
    width:100% !important;
    padding-left:6px !important;
    padding-right:6px !important;
  }.header-actions{
    margin-left:auto !important;
  }
}@media only screen and (max-width:640px){.main-inner{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    gap:6px !important;
    width:100% !important;
    height:58px !important;
    min-height:58px !important;
    padding:0 6px 0 0 !important;
  }.header-logo{
    min-width:0 !important;
    width:auto !important;
    overflow:hidden !important;
  }.header-logo,
.header-logo a,
.header-logo img{
    height:58px !important;
  }.header-logo img{
    max-width:100% !important;
    object-fit:contain !important;
    object-position:left center !important;
  }.header-actions{
    display:grid !important;
    grid-template-columns:auto auto !important;
    align-items:center !important;
    justify-content:end !important;
    gap:5px !important;
    width:auto !important;
    min-width:0 !important;
    margin-left:0 !important;
    padding:0 !important;
  }.header-tel{
    min-width:0 !important;
    text-align:right !important;
  }.tel-label{
    display:none !important;
  }.header-tel a{
    display:block !important;
    font-size:.88rem !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }.reserve{
    display:flex !important;
    min-width:104px !important;
    width:104px !important;
    min-height:32px !important;
    padding:4px 6px !important;
    justify-content:center !important;
    align-items:center !important;
    font-size:.64rem !important;
    line-height:1.2 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
    overflow:visible !important;
  }
}@media only screen and (max-width:420px){.main-inner{
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:4px !important;
    padding-right:4px !important;
  }.header-actions{
    gap:4px !important;
  }.header-tel a{
    font-size:.78rem !important;
  }.reserve{
    min-width:96px !important;
    width:96px !important;
    padding:4px 4px !important;
    font-size:.60rem !important;
  }
}.page-hero{
  position:relative;
  display:grid !important;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr) !important;
  gap:34px !important;
  align-items:center !important;
  overflow:hidden !important;
  margin:0 0 54px !important;
  padding:38px 34px 34px !important;
  background:
    radial-gradient(circle at 86% 24%, rgba(244,211,220,.55) 0 18%, transparent 19%),
    linear-gradient(120deg,#ffffff 0%,#fff9fb 52%,#f9eef2 100%) !important;
  border:1px solid #ead7de !important;
  border-top:5px solid #741733 !important;
  border-radius:8px !important;
  box-shadow:0 12px 32px rgba(116,23,51,.08) !important;
}.page-hero::after{
  content:"";
  position:absolute;
  right:-90px;
  bottom:-110px;
  width:250px;
  height:250px;
  border:1px solid rgba(116,23,51,.08);
  border-radius:50%;
  pointer-events:none;
}.page-hero .hero-text{
  position:relative;
  z-index:2;
  min-width:0;
}.hero-specialist{
  display:inline-block;
  margin:0 0 12px !important;
  color:#741733 !important;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
  font-size:1rem !important;
  font-weight:700 !important;
  letter-spacing:.09em;
}.page-hero .page-title{
  margin:0 0 18px !important;
  padding:0 0 16px !important;
}.hero-subtitle{
  margin:0 0 20px !important;
  color:#5e132c !important;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
  font-size:1.23rem !important;
  font-weight:700 !important;
  line-height:1.8 !important;
  letter-spacing:.04em;
}.page-hero .hero-lead{
  margin:0 0 24px !important;
  padding:14px 16px !important;
  color:#333 !important;
  background:rgba(255,255,255,.78);
  border-left:4px solid #741733;
  border-radius:0 5px 5px 0;
  font-size:1rem !important;
  line-height:1.95 !important;
  box-shadow:0 5px 14px rgba(116,23,51,.05);
}.feature-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:0 0 24px;
}.feature-card{
  position:relative;
  min-height:160px;
  padding:18px 13px 14px;
  text-align:center;
  background:#fff;
  border:1px solid #ead7de;
  border-top:4px solid #741733;
  border-radius:7px;
  box-shadow:0 7px 18px rgba(116,23,51,.08);
  transition:transform .22s ease,box-shadow .22s ease;
}.feature-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 25px rgba(116,23,51,.14);
}.feature-icon{
  display:flex;
  width:42px;
  height:42px;
  margin:0 auto 10px;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:linear-gradient(135deg,#741733,#a53a5c);
  border-radius:50%;
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-size:1.05rem;
  font-weight:700;
  box-shadow:0 5px 12px rgba(116,23,51,.2);
}.feature-card h2{
  margin:0 0 7px !important;
  padding:0 !important;
  color:#741733 !important;
  background:none !important;
  border:0 !important;
  font-size:.96rem !important;
  font-weight:700 !important;
  line-height:1.45 !important;
  text-align:center !important;
  box-shadow:none !important;
}.feature-card p{
  margin:0 !important;
  color:#666 !important;
  font-size:.78rem !important;
  line-height:1.6 !important;
  text-align:left;
}.hero-visual{
  position:relative;
  z-index:1;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center;
}.hero-visual img{
  display:block;
  width:100%;
  max-width:520px;
  height:auto;
  filter:drop-shadow(0 12px 22px rgba(116,23,51,.08));
}@media only screen and (max-width:940px){.page-hero{
    grid-template-columns:1fr !important;
    gap:24px !important;
    padding:28px 22px 26px !important;
  }.hero-visual{
    order:-1;
  }.hero-visual img{
    max-width:480px;
  }
}@media only screen and (max-width:640px){.page-hero{
    gap:18px !important;
    padding:20px 14px 22px !important;
  }.hero-specialist{
    font-size:.86rem !important;
  }.hero-subtitle{
    font-size:1.04rem !important;
    line-height:1.7 !important;
  }.page-hero .hero-lead{
    padding:12px !important;
    font-size:.9rem !important;
  }.feature-cards{
    grid-template-columns:1fr !important;
    gap:10px;
  }.feature-card{
    display:grid;
    grid-template-columns:48px 1fr;
    grid-template-rows:auto auto;
    column-gap:12px;
    min-height:0;
    padding:13px 14px;
    text-align:left;
  }.feature-icon{
    grid-row:1 / span 2;
    margin:auto 0;
  }.feature-card h2{
    margin:0 0 3px !important;
    text-align:left !important;
    align-self:end;
  }.feature-card p{
    align-self:start;
  }.hero-visual img{
    max-width:360px;
  }
}:root{
  --footer-bordeaux:#741733;
  --footer-bordeaux-dark:#571025;
  --footer-bordeaux-soft:#9B3657;
  --footer-gold:#B79A5C;
  --footer-pale:#FBF5F7;
  --footer-lavender:#F5F2F8;
  --footer-line:#E7DADF;
  --footer-text:#2E2E2E;
  --footer-muted:#6B6B6B;
}.main-inner{
  width:940px !important;
  max-width:calc(100% - 32px) !important;
  margin:0 auto !important;
}.visual-content .heading2{
  display:flex !important;
  align-items:center;
  gap:14px;
}.visual-content .heading2::before{
  position:static !important;
  display:inline-flex !important;
  width:38px !important;
  height:38px !important;
  flex:0 0 38px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(116,23,51,.18) !important;
  border-radius:50% !important;
  color:#fff;
  background:linear-gradient(135deg,var(--footer-bordeaux),var(--footer-bordeaux-soft));
  font-family:Georgia,"Times New Roman",serif;
  font-size:1rem;
  box-shadow:0 5px 12px rgba(116,23,51,.16);
}#worries .heading2::before{content:"01" !important;}#features .heading2::before{content:"02" !important;}#about .heading2::before{content:"03" !important;}#case-photo .heading2::before{content:"04" !important;}#flow .heading2::before{content:"05" !important;}#price .heading2::before{content:"06" !important;}#risk .heading2::before{content:"07" !important;}#faq .heading2::before{content:"08" !important;}#contact .heading2::before{content:"09" !important;}.visual-content .heading2::after{
  left:76px !important;
}.visual-content .heading02,
.visual-content h3.heading{
  background:
    linear-gradient(90deg,var(--footer-lavender),#fff 72%) !important;
  border-left:0 !important;
  border-top:1px solid var(--footer-line) !important;
  border-bottom:1px solid var(--footer-line) !important;
  box-shadow:inset 5px 0 0 var(--footer-bordeaux-soft),0 5px 14px rgba(0,0,0,.035) !important;
}.image-pair{
  position:relative;
}.case-figure{
  position:relative;
  overflow:hidden;
  border-radius:8px !important;
  transition:transform .22s ease,box-shadow .22s ease;
}.case-figure:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 30px rgba(116,23,51,.14) !important;
}.case-label{
  position:absolute;
  top:12px;
  left:12px;
  z-index:3;
  padding:5px 10px;
  color:#fff;
  background:rgba(116,23,51,.9);
  border-radius:999px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.12em;
}.case-after .case-label{
  background:rgba(183,154,92,.94);
}.qa-q::before{
  box-shadow:0 4px 10px rgba(116,23,51,.2);
}.qa-a::before{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
}@media only screen and (max-width:640px){.visual-content .heading2{
    gap:10px;
  }.visual-content .heading2::before{
    width:32px !important;
    height:32px !important;
    flex-basis:32px;
    font-size:.82rem;
  }.visual-content .heading2::after{
    left:60px !important;
  }
}.footer{
  width:100%;
  margin:0;
  padding:0 !important;
  background:#32101A !important;
  box-shadow:none !important;
}.footer-inner{
  display:grid;
  grid-template-columns:.9fr .95fr 1.35fr;
  gap:34px;
  width:940px;
  max-width:calc(100% - 32px);
  margin:0 auto;
  padding:38px 0 30px;
  color:#fff;
}.footer h2,
.footer h3{
  margin:0 0 14px;
  color:#fff;
  font-weight:700;
}.footer h2{
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
  font-size:1.2rem;
}.footer h3{
  padding-bottom:8px;
  border-bottom:1px solid rgba(255,255,255,.24);
  font-size:1rem;
}.footer p{
  margin:0 0 10px;
  color:rgba(255,255,255,.82);
  line-height:1.75;
}.footer-subtitle{
  color:#d8bc79 !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:.76rem;
  letter-spacing:.11em;
}.footer-home-link{
  display:inline-block;
  margin-top:8px;
  color:#fff !important;
  border-bottom:1px solid rgba(255,255,255,.5);
}.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  margin-top:14px;
}.footer-links a{
  color:#fff !important;
  font-size:.86rem;
  text-decoration:underline;
  text-underline-offset:3px;
}.footer-hours figure{
  margin:0;
  padding:10px;
  background:#fff;
  border-radius:5px;
}.footer-hours figcaption{
  margin-top:8px;
  color:#666;
  font-size:.72rem;
  line-height:1.55;
}.footer-bottom{
  padding:12px 16px;
  text-align:center;
  color:rgba(255,255,255,.6);
  background:#230A12;
  border-top:1px solid rgba(255,255,255,.1);
}.footer-mobile-contact{
  display:none;
}@media only screen and (max-width:768px){.footer-inner{
    grid-template-columns:1fr;
    gap:26px;
    padding:30px 0 90px;
  }.footer-hours{
    max-width:560px;
  }.footer-mobile-contact{
    position:fixed;
    left:0;
    bottom:0;
    z-index:100000;
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
    box-shadow:0 -3px 14px rgba(0,0,0,.2);
  }.footer-mobile-contact a{
    display:flex;
    min-height:54px;
    padding:8px;
    align-items:center;
    justify-content:center;
    color:#fff !important;
    background:#741733;
    border-right:1px solid rgba(255,255,255,.25);
    font-size:.78rem;
    font-weight:700;
    text-align:center;
  }.footer-mobile-contact a:last-child{
    background:#571025;
    border-right:0;
  }
}.contact-cta{
  margin-bottom:0 !important;
  padding-bottom:54px;
}.contact-cta-inner{
  width:820px;
  max-width:100%;
  margin:0 auto;
  padding:34px 28px 32px;
  text-align:center;
  background:
    radial-gradient(circle at 12% 18%,rgba(116,23,51,.05) 0 9%,transparent 10%),
    linear-gradient(135deg,#fff 0%,#fbf5f7 100%);
  border:1px solid #e7dadf;
  border-top:5px solid #741733;
  border-radius:8px;
  box-shadow:0 10px 28px rgba(116,23,51,.08);
}.contact-cta-kicker{
  margin:0 0 8px !important;
  color:#9b3657 !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:.74rem !important;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}.contact-cta-title{
  display:inline-block;
  margin:0 auto 18px !important;
  padding:0 0 14px !important;
  color:#741733 !important;
  background:none !important;
  border:0 !important;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
  font-size:1.75rem !important;
  font-weight:700 !important;
  line-height:1.5 !important;
  letter-spacing:.04em;
  text-align:center !important;
  box-shadow:none !important;
  position:relative;
}.contact-cta-title::after{
  content:"";
  display:block;
  width:84px;
  height:2px;
  margin:14px auto 0;
  background:linear-gradient(90deg,rgba(116,23,51,.15),#b79a5c,rgba(116,23,51,.15));
}.contact-cta-lead{
  width:680px;
  max-width:100%;
  margin:0 auto 26px !important;
  color:#444 !important;
  font-size:.98rem !important;
  line-height:1.95 !important;
  text-align:center;
}.contact-cta-buttons{
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:16px;
  flex-wrap:wrap;
}.contact-cta-primary,
.contact-cta-phone{
  display:flex;
  width:280px;
  min-height:62px;
  padding:10px 18px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-radius:4px;
  box-sizing:border-box;
  text-decoration:none !important;
  transition:transform .2s ease,box-shadow .2s ease;
}.contact-cta-primary{
  color:#fff !important;
  background:linear-gradient(135deg,#741733,#571025);
  border:1px solid #741733;
  box-shadow:0 7px 16px rgba(116,23,51,.18);
}.contact-cta-phone{
  color:#741733 !important;
  background:#fff;
  border:1px solid #741733;
}.contact-cta-primary:hover,
.contact-cta-phone:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(116,23,51,.2);
}.contact-cta-primary span,
.contact-cta-phone strong{
  display:block;
  font-size:1rem;
  font-weight:700;
}.contact-cta-phone strong{
  color:#741733 !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.2rem;
}.contact-cta-primary small,
.contact-cta-phone small{
  display:block;
  margin-top:5px;
  font-size:.68rem;
  font-weight:400;
  letter-spacing:.03em;
  opacity:.76;
}.contact-cta + .footer,
.contact-cta + #footer{
  margin-top:0 !important;
}@media only screen and (max-width:768px){.contact-cta{
    padding-bottom:36px;
  }.contact-cta-inner{
    padding:28px 18px 26px;
  }.contact-cta-title{
    font-size:1.42rem !important;
  }.contact-cta-buttons{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }.contact-cta-primary,
.contact-cta-phone{
    width:100%;
    max-width:420px;
    min-height:56px;
    margin:0 auto;
  }
}@media only screen and (max-width:480px){.contact-cta-inner{
    padding:24px 14px 22px;
  }.contact-cta-title{
    font-size:1.25rem !important;
  }.contact-cta-lead{
    font-size:.9rem !important;
    line-height:1.8 !important;
  }
}.clinic-hours-table-wrap{
  width:100%;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(116,23,51,.22);
  border-radius:6px;
}.clinic-hours-table{
  width:100%;
  margin:0;
  border-collapse:collapse;
  table-layout:fixed;
  color:#333;
  background:#fff;
}.clinic-hours-table caption{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}.clinic-hours-table th,
.clinic-hours-table td{
  padding:10px 5px;
  border-right:1px solid #eadde1;
  border-bottom:1px solid #eadde1;
  text-align:center;
  vertical-align:middle;
  font-size:.82rem;
}.clinic-hours-table tr:last-child th,
.clinic-hours-table tr:last-child td{
  border-bottom:0;
}.clinic-hours-table th:last-child,
.clinic-hours-table td:last-child{
  border-right:0;
}.clinic-hours-table thead th{
  color:#fff;
  background:#741733;
  font-weight:700;
}.clinic-hours-table thead th:first-child{
  width:27%;
}.clinic-hours-table tbody th{
  color:#741733;
  background:#fbf5f7;
  font-weight:700;
  line-height:1.35;
}.clinic-hours-table tbody th small{
  display:block;
  margin-top:3px;
  color:#666;
  font-size:.68rem;
  font-weight:400;
  white-space:nowrap;
}.clinic-hours-notes{
  margin:12px 0 0;
  padding:0;
  list-style:none;
}.clinic-hours-notes li{
  position:relative;
  margin:5px 0;
  padding-left:1.2em;
  color:rgba(255,255,255,.82);
  font-size:.76rem;
  line-height:1.65;
}.clinic-hours-notes li::before{
  content:"※";
  position:absolute;
  left:0;
  color:#d8bc79;
}.clinic-hours-notes strong{
  color:#fff !important;
}@media only screen and (max-width:480px){.clinic-hours-table th,
.clinic-hours-table td{
    padding:8px 2px;
    font-size:.72rem;
  }.clinic-hours-table thead th:first-child{
    width:31%;
  }.clinic-hours-table tbody th small{
    font-size:.58rem;
  }
}/* Page-specific layout */
.page #wrapper{
  max-width:940px;
  margin:0 auto;
}.page #main{
  padding-top:18px;
}.instagram{
  background:#fff !important;
  color:var(--brand-main) !important;
  border:1px solid var(--brand-main) !important;
}.page-hero{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(250px,.75fr);
  gap:34px;
  align-items:center;
  margin:18px 0 54px;
  padding:42px 42px 38px;
  background:linear-gradient(135deg,#fff 0%,#fff 54%,#fbf4f7 100%);
  border:1px solid var(--brand-border);
  border-top:5px solid var(--brand-main);
  border-radius:8px;
  box-shadow:0 10px 30px rgba(90,30,50,.08);
}.hero-specialist{
  margin:10px 0 4px;
  color:var(--brand-main);
  font-size:1.02rem;
  font-weight:700;
  letter-spacing:.04em;
}.page-title{
  margin:6px 0 8px;
  color:var(--brand-dark);
  font-size:3.15rem;
  line-height:1.15;
  letter-spacing:.04em;
}.hero-subtitle{
  margin:0 0 18px;
  color:#3e3e3e;
  font-size:1.35rem;
  font-weight:700;
  line-height:1.65;
}.hero-lead{
  margin:0;
  color:var(--text-main);
  font-size:1rem;
  line-height:2;
}.feature-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:26px 0 24px;
}.feature-card{
  padding:17px 14px;
  background:#fff;
  border:1px solid var(--brand-border);
  border-radius:7px;
  text-align:center;
}.feature-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  margin:0 auto 10px;
  border-radius:50%;
  background:var(--brand-pale);
  color:var(--brand-main);
  font-weight:700;
}.feature-card h2{
  margin:0 0 8px;
  color:var(--brand-dark);
  font-size:.98rem;
  line-height:1.45;
}.feature-card p{
  margin:0 !important;
  color:var(--text-sub);
  font-size:.84rem;
  line-height:1.65;
}.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}.button-primary,
.button-secondary{
  display:inline-flex;
  min-height:48px;
  align-items:center;
  justify-content:center;
  padding:0 28px;
  border-radius:6px;
  font-weight:700;
  text-decoration:none !important;
}.button-primary{
  background:var(--brand-main);
  color:#fff !important;
}.button-secondary{
  background:#fff;
  color:var(--brand-main) !important;
  border:1px solid var(--brand-main);
}.hero-visual{
  position:relative;
  min-height:300px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  overflow:hidden;
  border-radius:50% 50% 48% 52%;
  background:radial-gradient(circle at center,#fff 0%,#f8edf2 38%,#f1dfe7 72%,#ead4de 100%);
}.led-ring{
  position:absolute;
  border:1px solid rgba(124,31,67,.18);
  border-radius:50%;
}.led-ring-outer{width:205px;height:205px;}.led-ring-inner{width:260px;height:260px;}.led-core{
  position:relative;
  z-index:2;
  display:flex;
  width:108px;
  height:108px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#fff;
  color:var(--brand-main);
  font-size:1.6rem;
  font-weight:700;
  letter-spacing:.12em;
  box-shadow:0 8px 24px rgba(124,31,67,.13);
}.hero-visual p{
  position:relative;
  z-index:2;
  margin:18px 0 0 !important;
  color:var(--brand-dark);
  text-align:center;
  font-size:.85rem;
  line-height:1.55;
  letter-spacing:.08em;
}.check-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  padding:24px 28px 8px;
  background:#fff;
  border:1px solid var(--brand-border);
  border-radius:7px;
}.two-column{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);
  gap:30px;
  align-items:start;
}.note-box{
  padding:12px 14px;
  background:#f7f7f7;
  color:#666;
  font-size:.9rem;
  line-height:1.75;
}.info-box{
  padding:26px;
  background:var(--brand-pale);
  border-left:6px solid var(--brand-main);
  border-radius:6px;
}.info-kicker{
  margin:0 0 8px !important;
  color:var(--brand-main);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
}.info-box h3{
  margin:0 0 14px;
  color:var(--brand-dark);
  font-size:1.18rem;
  line-height:1.6;
}.info-box p:last-child{
  margin-bottom:0 !important;
  line-height:1.8;
}.section-lead{
  max-width:780px;
  margin:0 auto 24px !important;
  text-align:center;
  line-height:1.8;
}.case-comparison{
  display:grid;
  grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);
  gap:18px;
  align-items:center;
}.case-photo{
  position:relative;
  margin:0;
  padding:14px;
  background:#fff;
  border:1px solid var(--brand-border);
  border-radius:7px;
  box-shadow:0 4px 18px rgba(0,0,0,.06);
}.case-photo img{
  display:block;
  width:100%;
  height:auto;
  border-radius:3px;
}.case-label{
  position:absolute;
  top:24px;
  left:24px;
  z-index:2;
  padding:5px 11px;
  border-radius:999px;
  background:rgba(65,65,65,.82);
  color:#fff;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.08em;
}.after-label{
  background:rgba(124,31,67,.9);
}.case-photo figcaption{
  margin-top:10px;
  color:#555;
  text-align:center;
  font-weight:700;
}.case-arrow{
  color:var(--brand-main);
  text-align:center;
  font-size:2rem;
  font-weight:700;
}.result-box{
  margin-top:22px;
  padding:18px 20px;
  background:#f8f8f8;
  border-left:5px solid var(--brand-main);
  line-height:1.8;
}.result-box strong{
  color:var(--brand-dark);
}.card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}.content-card{
  position:relative;
  padding:26px 22px 22px;
  background:#fff;
  border:1px solid var(--brand-border);
  border-top:4px solid var(--brand-main);
  border-radius:6px;
}.card-number{
  display:block;
  margin-bottom:8px;
  color:#bd8fa3;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.1em;
}.content-card h3{
  margin:0 0 12px;
  color:var(--brand-dark);
  font-size:1.08rem;
  line-height:1.55;
}.content-card p{
  margin-bottom:0 !important;
  line-height:1.8;
}.treatment-flow{
  counter-reset:treatment-flow;
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}.treatment-flow li{
  counter-increment:treatment-flow;
  position:relative;
  padding:24px 18px 20px;
  background:#fff;
  border:1px solid var(--brand-border);
  border-radius:6px;
}.treatment-flow li:before{
  content:counter(treatment-flow);
  display:flex;
  width:34px;
  height:34px;
  align-items:center;
  justify-content:center;
  margin-bottom:12px;
  border-radius:50%;
  background:var(--brand-main);
  color:#fff;
  font-weight:700;
}.treatment-flow h3{
  margin:0 0 10px;
  color:var(--brand-dark);
  font-size:1rem;
}.treatment-flow p{
  margin:0 !important;
  color:#555;
  line-height:1.75;
}.treatment-table th{
  width:26%;
}.risk-box{
  line-height:1.9 !important;
}.contact-box{
  border-color:var(--brand-border);
}@media only screen and (max-width:900px){.page #wrapper{
    width:auto;
    padding:0 14px;
  }.page-hero{
    grid-template-columns:1fr;
    padding:30px 24px;
  }.hero-visual{
    min-height:250px;
    max-width:430px;
    width:100%;
    margin:0 auto;
  }.two-column{
    grid-template-columns:1fr;
  }.treatment-flow{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}@media only screen and (max-width:640px){.page #main{
    padding-top:8px;
  }.page-hero{
    margin-top:8px;
    padding:24px 18px;
    gap:24px;
  }.page-title{
    font-size:2.45rem;
  }.hero-subtitle{
    font-size:1.12rem;
  }.hero-lead br{
    display:none;
  }.feature-cards,
.check-grid,
.card-grid,
.treatment-flow{
    grid-template-columns:1fr;
  }.check-grid{
    gap:0;
    padding:18px 18px 6px;
  }.case-comparison{
    grid-template-columns:1fr;
  }.case-arrow{
    transform:rotate(90deg);
    line-height:1;
  }.button-primary,
.button-secondary{
    width:100%;
  }.treatment-table th,
.treatment-table td{
    display:block;
    width:100% !important;
  }.hero-visual{
    min-height:215px;
  }.footer-mobile-contact-compact{
    grid-template-columns:1fr 1fr !important;
  }
}.info-highlight{
  padding:24px 26px;
  background:#fff;
  border:1px solid var(--brand-border);
  border-left:6px solid var(--brand-main);
  border-radius:6px;
}.info-highlight h3{
  margin:0 0 10px;
  color:var(--brand-dark);
  font-size:1.2rem;
}.info-highlight p:last-child{margin-bottom:0 !important;line-height:1.85;}.price-table-wrap{
  max-width:760px;
  margin:0 auto;
  overflow:hidden;
  border:1px solid var(--brand-border);
  border-radius:8px;
  box-shadow:0 4px 16px rgba(0,0,0,.04);
}.price-table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
}.price-table th{
  padding:13px 16px;
  background:var(--brand-main);
  color:#fff;
  text-align:center;
  font-weight:700;
}.price-table td{
  padding:20px 18px;
  border-top:1px solid var(--brand-border);
  vertical-align:middle;
}.price-table td:first-child{width:68%;}.price-table td:last-child{text-align:center;}.price-table td strong:first-child{
  display:block;
  color:var(--brand-dark);
  font-size:1.08rem;
}.price-table td span{
  display:block;
  margin-top:4px;
  color:#666;
  font-size:.9rem;
}.price-highlight{background:var(--brand-pale);}.price-badge{
  display:inline-block !important;
  margin:0 0 7px !important;
  padding:3px 8px;
  border-radius:999px;
  background:var(--brand-main);
  color:#fff !important;
  font-size:.75rem !important;
  font-weight:700;
}.price-amount{
  display:block;
  color:var(--brand-main) !important;
  font-size:1.55rem !important;
  white-space:nowrap;
}.price-note{
  max-width:760px;
  margin:12px auto 0 !important;
  color:#666;
  font-size:.88rem;
  text-align:right;
}@media only screen and (max-width:640px){.price-table th,
.price-table td{
    display:table-cell !important;
    width:auto !important;
  }.price-table td{padding:16px 12px;}.price-table td:first-child{width:62% !important;}.price-amount{font-size:1.3rem !important;}.price-note{text-align:left;}
}/* 症例見出し */
.case-title{
  margin:30px 0 14px;
  padding:9px 14px;
  border-left:5px solid var(--brand-main);
  background:var(--brand-pale);
  color:var(--brand-dark);
  font-size:1.3rem;
  font-weight:700;
}.case-photo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
  background:#fff;
}


/* =========================================================
   Readability upgrade
   全ページ共通：少し大きめで読みやすい医療サイト向け
   ========================================================= */

html{
	font-size: 90% !important;
}

body{
  font-size:1rem;
  line-height:1.8;
}

#main,
.page,
.page p,
.page li,
.page td,
.page th{
  font-size:1rem;
  line-height:1.8;
}

.page p{
  margin-bottom:1.15em;
}

.page li{
  line-height:1.75;
}

/* 本文の1行が長くなりすぎないようにする */
.page .section-lead,
.page .hero-lead,
.page .result-box,
.page .risk-box,
.page .info-box,
.page .info-highlight,
.page .contact-box{
  line-height:1.85;
}

/* 見出し */
.page-title{
  font-size:2.9rem;
  line-height:1.25;
}

.hero-subtitle{
  font-size:1.35rem;
  line-height:1.55;
}

.hero-specialist,
.eyebrow-label{
  font-size:1rem;
}

.heading2,
h2.heading,
.auto-style15{
  font-size:1.7rem !important;
  line-height:1.45 !important;
}

.heading02,
h3.heading{
  font-size:1.3rem !important;
  line-height:1.55 !important;
}

h4{
  font-size:1.12rem;
  line-height:1.6;
}

/* カード */
.feature-card h2,
.feature-card h3,
.content-card h3{
  font-size:1.15rem;
  line-height:1.55;
}

.feature-card p,
.content-card p,
.treatment-flow p{
  font-size:.98rem;
  line-height:1.75;
}

.card-number,
.case-note,
.price-note{
  font-size:.9rem !important;
}

/* 症例 */
.case-title{
  font-size:1.35rem;
  line-height:1.5;
}

.case-photo figcaption{
  font-size:1rem;
  line-height:1.7;
}

.result-box{
  font-size:1rem;
}

/* 表 */
.treatment-table th,
.treatment-table td,
.price-table th,
.price-table td{
  font-size:1rem;
  line-height:1.7;
}

.price-amount{
  font-size:1.7rem !important;
}

/* ボタン・ヘッダー */
.header-tel,
.header-tel a,
.reserve,
.access,
.instagram{
  font-size:1rem;
}

.button-primary,
.button-secondary{
  font-size:1.05rem;
  line-height:1.4;
  padding-top:13px;
  padding-bottom:13px;
}

/* 注釈も小さくしすぎない */
small,
.note-box,
.price-note,
.case-note{
  font-size:.88rem;
  line-height:1.7;
}

/* PCでは本文幅を少し抑えて読みやすく */
@media only screen and (min-width:960px){
  .page{
    font-size:18px;
  }

  .page .hero-lead,
  .page .section-lead,
  .page .result-box,
  .page .risk-box{
    max-width:820px;
  }
}

/* スマホは最低16px以上を確保 */
@media only screen and (max-width:768px){
  html{
    font-size:17px;
  }

  body,
  #main,
  .page p,
  .page li,
  .page td,
  .page th{
    font-size:1rem;
  }

  .page-title{
    font-size:2.25rem;
  }

  .hero-subtitle{
    font-size:1.2rem;
  }

  .heading2,
  h2.heading,
  .auto-style15{
    font-size:1.5rem !important;
    line-height:1.45 !important;
  }

  .heading02,
  h3.heading{
    font-size:1.2rem !important;
  }

  .feature-card p,
  .content-card p,
  .treatment-flow p{
    font-size:1rem;
  }

  small,
  .note-box,
  .price-note,
  .case-note{
    font-size:.9rem;
  }
}

/* =========================================================
   Header action buttons
   ========================================================= */
.header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:nowrap;
  gap:8px;
  white-space:nowrap;
}

.header-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:8px 15px;
  border:1px solid transparent;
  border-radius:7px;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
  transition:opacity .2s ease, transform .2s ease;
}

.header-button:hover{
  opacity:.88;
  transform:translateY(-1px);
}

/* Instagram：ブランドらしいグラデーション */
.header-button.instagram{
  color:#fff;
  background:linear-gradient(135deg,#833ab4 0%,#c13584 35%,#e1306c 60%,#f77737 82%,#fcaf45 100%);
  border-color:transparent;
  gap:6px;
}

.instagram-icon{
  display:inline-flex;
  width:18px;
  height:18px;
  align-items:center;
  justify-content:center;
  border:2px solid currentColor;
  border-radius:5px;
  font-size:0;
  position:relative;
}
.instagram-icon::before{
  content:"";
  width:6px;
  height:6px;
  border:2px solid currentColor;
  border-radius:50%;
}
.instagram-icon::after{
  content:"";
  position:absolute;
  top:3px;
  right:3px;
  width:3px;
  height:3px;
  background:currentColor;
  border-radius:50%;
}

/* ネット予約：医院のボルドーを主CTAに */
.header-button.reserve{
  color:#fff;
  background:#65152F;
  border-color:#65152F;
}

/* アクセス：役割を区別した落ち着いたグレー */
.header-button.access{
  color:#5D1733;
  background:#BFA67A;
  border-color:#AD9366;
  gap:6px;
}



.header-button.access::before{
  content:"";
  width:12px;
  height:12px;
  box-sizing:border-box;
  border:2px solid currentColor;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  display:inline-block;
  position:relative;
  top:-1px;
}

@media only screen and (max-width:768px){
  .header-actions{
    gap:4px;
  }
  .header-button{
    min-height:36px;
    padding:6px 7px;
    border-radius:5px;
    font-size:.78rem;
  }
  .instagram-icon{
    width:15px;
    height:15px;
  }
}


/* Header button colors - final override */
.header-actions a.header-button.reserve,
.header-actions .header-button.reserve,
a.header-button.reserve{
  color:#FFFFFF !important;
  background:#65152F !important;
  background-image:none !important;
  border-color:#65152F !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

.header-actions a.header-button.access,
.header-actions .header-button.access,
a.header-button.access{
  color:#FFFFFF !important;
  background:#536779 !important;
  background-image:none !important;
  border-color:#536779 !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

.header-button.access::before{
  color:#FFFFFF !important;
}


/* =========================================================
   Header buttons - refined
   ========================================================= */

/* Instagram */
.header-actions a.header-button.instagram{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}
.header-actions a.header-button.instagram:hover{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  filter:brightness(.92);
}

/* ネット予約：濃いボルドー＋白文字＋白の細枠 */
.header-actions a.header-button.reserve{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  background:#65152F !important;
  background-image:none !important;
  border:1px solid rgba(255,255,255,.88) !important;
  box-shadow:0 2px 7px rgba(45,10,25,.16);
}

/* ホバーは文字を変えず、背景のボルドーだけ変化 */
.header-actions a.header-button.reserve:hover,
.header-actions a.header-button.reserve:focus{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  background:#7A1B3B !important;
  background-image:none !important;
  border-color:#FFFFFF !important;
}

/* アクセス：白背景＋かなり薄いグレー枠＋ボルドー文字 */
.header-actions a.header-button.access{
  color:#65152F !important;
  -webkit-text-fill-color:#65152F !important;
  background:#FFFFFF !important;
  background-image:none !important;
  border:1px solid #E8E8E8 !important;
  box-shadow:none !important;
}

/* ピンも文字と同じボルドー */
.header-actions a.header-button.access::before{
  color:#65152F !important;
}

/* アクセスのホバーも控えめ */
.header-actions a.header-button.access:hover,
.header-actions a.header-button.access:focus{
  color:#65152F !important;
  -webkit-text-fill-color:#65152F !important;
  background:#FAF7F8 !important;
  border-color:#DCDCDC !important;
}


/* =========================================================
   Instagram button - definitive style
   ========================================================= */
.header-actions a.header-button.instagram,
.header-actions a.instagram{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  background-color:#C13584 !important;
  background-image:linear-gradient(
    135deg,
    #833AB4 0%,
    #C13584 32%,
    #E1306C 55%,
    #F77737 78%,
    #FCAF45 100%
  ) !important;
  border:1px solid rgba(255,255,255,.28) !important;
  opacity:1 !important;
  filter:none !important;
}

.header-actions a.header-button.instagram .instagram-icon,
.header-actions a.instagram .instagram-icon{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  border-color:#FFFFFF !important;
}

/* hover: 色・文字は変更せず、全体を少し暗くするだけ */
.header-actions a.header-button.instagram:hover,
.header-actions a.header-button.instagram:focus,
.header-actions a.instagram:hover,
.header-actions a.instagram:focus{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  background-color:#C13584 !important;
  background-image:linear-gradient(
    135deg,
    #833AB4 0%,
    #C13584 32%,
    #E1306C 55%,
    #F77737 78%,
    #FCAF45 100%
  ) !important;
  opacity:1 !important;
  filter:brightness(.88) !important;
}





/* 施術の流れ */
.treatment-flow{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.treatment-flow li{
  display:flex;
  flex-direction:column;
  padding:20px 18px 18px;
}
.treatment-flow h3{
  margin:0 0 12px;
  min-height:2.8em;
  display:flex;
  align-items:center;
  color:#65152F;
  font-size:1.08rem;
  line-height:1.4;
}
.treatment-flow .flow-photo{
  width:100%;
  margin:0 0 14px;
  aspect-ratio:1.45 / 1;
  overflow:hidden;
  border:1px solid #eadfe3;
  border-radius:8px;
  background:#f8f5f6;
}
.treatment-flow .flow-photo img{
  display:block;
  width:100%;
  height:100%;
  margin:0;
  object-fit:cover;
  object-position:center;
}
.treatment-flow p{
  margin:0 !important;
  line-height:1.75;
}
@media only screen and (max-width:768px){
  .treatment-flow{grid-template-columns:1fr;}
  .treatment-flow h3{min-height:0;}
}






/* セクション丸番号：HTMLで01〜08を明示し、CSS自動採番は使用しない */
.visual-content .heading2::before,
.visual-content .auto-style15::before,
.visual-content h2.heading::before,
#worries .heading2::before,
#features .heading2::before,
#about .heading2::before,
#case-photo .heading2::before,
#before-after .heading2::before,
#flow .heading2::before,
#treatment-info .heading2::before,
#price .heading2::before,
#risk .heading2::before,
#faq .heading2::before,
#contact .heading2::before{
  content:none !important;
  display:none !important;
}

.section-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:2.35em;
  height:2.35em;
  margin-right:.55em;
  border-radius:50%;
  background:#65152F;
  color:#FFFFFF;
  -webkit-text-fill-color:#FFFFFF;
  font-size:.58em;
  font-weight:700;
  line-height:1;
  letter-spacing:.02em;
  vertical-align:middle;
}

/* 施術の流れの各3枠には別の自動番号を出さない */
.treatment-flow{
  counter-reset:none !important;
}
.treatment-flow li{
  counter-increment:none !important;
}
.treatment-flow li::before,
.treatment-flow li:before{
  content:none !important;
  display:none !important;
}


/* 婦人科形成：見出し番号はHTMLのsection-numberのみを使用 */
.page .heading2::before,
.page .auto-style15::before,
.page h2.heading::before{
  content:none !important;
  display:none !important;
}


/* 施術の流れ：写真内に説明文字を含めず、写真そのものを表示 */
.treatment-flow .flow-photo{
  aspect-ratio:auto !important;
}
.treatment-flow .flow-photo img{
  width:100% !important;
  height:auto !important;
  object-fit:contain !important;
}


/* Instagram button - compact */
.header-actions a.header-button.instagram,
.header-actions a.instagram{
  min-width:0 !important;
  min-height:24px !important;
  height:24px !important;
  padding:2px 7px !important;
  gap:4px !important;
  border-radius:5px !important;
  font-size:.62rem !important;
  font-weight:700 !important;
  line-height:1 !important;
}

.header-actions a.header-button.instagram .instagram-icon,
.header-actions a.instagram .instagram-icon{
  width:12px !important;
  height:12px !important;
  border-width:1.5px !important;
  border-radius:4px !important;
}

.header-actions a.header-button.instagram .instagram-icon::before,
.header-actions a.instagram .instagram-icon::before{
  width:4px !important;
  height:4px !important;
  border-width:1.5px !important;
}

.header-actions a.header-button.instagram .instagram-icon::after,
.header-actions a.instagram .instagram-icon::after{
  top:2px !important;
  right:2px !important;
  width:2px !important;
  height:2px !important;
}

@media only screen and (max-width:640px){
  .header-actions a.header-button.instagram,
  .header-actions a.instagram{
    min-height:22px !important;
    height:22px !important;
    padding:2px 6px !important;
    font-size:.58rem !important;
  }
}


/* Instagram：高さは維持し、横幅だけコンパクトに */
.header-actions a.header-button.instagram,
.header-actions a.instagram{
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  height:auto !important;
  min-height:38px !important;
  padding:7px 9px !important;
  gap:4px !important;
  border-radius:7px !important;
  font-size:.72rem !important;
  line-height:1 !important;
  flex:0 0 auto !important;
}

/* 横幅を抑えるためInstagram文字を小さめに */
.header-actions a.header-button.instagram span:last-child,
.header-actions a.instagram span:last-child{
  white-space:nowrap !important;
}

/* アイコンは視認性を残す */
.header-actions a.header-button.instagram .instagram-icon,
.header-actions a.instagram .instagram-icon{
  width:15px !important;
  height:15px !important;
}

@media only screen and (max-width:640px){
  .header-actions a.header-button.instagram,
  .header-actions a.instagram{
    height:auto !important;
    min-height:34px !important;
    padding:6px 7px !important;
    font-size:.66rem !important;
  }
}


/* Instagram：横幅を約1/4にしてアイコンボタン化 */
.header-actions a.header-button.instagram,
.header-actions a.instagram{
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:38px !important;
  min-height:38px !important;
  padding:0 !important;
  gap:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 42px !important;
}

/* "Instagram" 文字は非表示。リンクのaria-label/URLはそのまま */
.header-actions a.header-button.instagram span:last-child,
.header-actions a.instagram span:last-child{
  display:none !important;
}

.header-actions a.header-button.instagram .instagram-icon,
.header-actions a.instagram .instagram-icon{
  width:18px !important;
  height:18px !important;
  margin:0 !important;
}

@media only screen and (max-width:640px){
  .header-actions a.header-button.instagram,
  .header-actions a.instagram{
    width:38px !important;
    min-width:38px !important;
    max-width:38px !important;
    height:34px !important;
    min-height:34px !important;
    flex-basis:38px !important;
  }
}


/* Instagram：小型でも名称が分かる表示 */
.header-actions a.header-button.instagram,
.header-actions a.instagram{
  width:92px !important;
  min-width:92px !important;
  max-width:92px !important;
  height:38px !important;
  min-height:38px !important;
  padding:0 7px !important;
  gap:5px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 92px !important;
  font-size:.70rem !important;
  font-weight:700 !important;
  line-height:1 !important;
}

/* Instagram文字を表示 */
.header-actions a.header-button.instagram span:last-child,
.header-actions a.instagram span:last-child{
  display:inline !important;
  white-space:nowrap !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

/* アイコンも残して視覚的に識別しやすく */
.header-actions a.header-button.instagram .instagram-icon,
.header-actions a.instagram .instagram-icon{
  width:16px !important;
  height:16px !important;
  margin:0 !important;
  flex:0 0 16px !important;
}

@media only screen and (max-width:640px){
  .header-actions a.header-button.instagram,
  .header-actions a.instagram{
    width:84px !important;
    min-width:84px !important;
    max-width:84px !important;
    height:34px !important;
    min-height:34px !important;
    flex-basis:84px !important;
    padding:0 5px !important;
    font-size:.64rem !important;
  }
}


/* Instagram：横幅を抑え、縦方向に存在感を出す2段表示 */
.header-actions a.header-button.instagram,
.header-actions a.instagram{
  width:68px !important;
  min-width:68px !important;
  max-width:68px !important;
  height:52px !important;
  min-height:52px !important;
  padding:4px 5px !important;
  gap:4px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 68px !important;
  font-size:.72rem !important;
  line-height:1 !important;
}

.header-actions a.header-button.instagram .instagram-name,
.header-actions a.instagram .instagram-name{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  gap:1px !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  white-space:normal !important;
  font-weight:700 !important;
  line-height:.95 !important;
}

.header-actions a.header-button.instagram .instagram-name > span,
.header-actions a.instagram .instagram-name > span{
  display:block !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
}

.header-actions a.header-button.instagram .instagram-icon,
.header-actions a.instagram .instagram-icon{
  width:17px !important;
  height:17px !important;
  flex:0 0 17px !important;
  margin:0 !important;
}

@media only screen and (max-width:640px){
  .header-actions a.header-button.instagram,
  .header-actions a.instagram{
    width:62px !important;
    min-width:62px !important;
    max-width:62px !important;
    height:48px !important;
    min-height:48px !important;
    flex-basis:62px !important;
    padding:3px 4px !important;
    font-size:.67rem !important;
  }
}


/* top header buttons only */
.header .header-actions > a.header-button.reserve,
.header .header-actions > a.header-button.access,
.header .header-actions > a.header-button.instagram{
  box-sizing:border-box !important;
  display:inline-flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:4px !important;
  height:54px !important;
  min-height:54px !important;
  padding:5px 10px !important;
  border-radius:6px !important;
  font-weight:700 !important;
  line-height:1.1 !important;
  text-align:center !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}

/* ネット予約：濃いボルドー＋白文字＋白細枠＋カレンダー */
.header .header-actions > a.header-button.reserve{
  min-width:116px !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:#65152F !important;
  background-image:none !important;
  border:1px solid rgba(255,255,255,.92) !important;
}
.header .header-actions > a.header-button.reserve::before{
  content:"▣" !important;
  display:block !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-size:1.25rem !important;
  line-height:.85 !important;
  font-family:Arial,Helvetica,sans-serif !important;
}
.header .header-actions > a.header-button.reserve:hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:#781A38 !important;
}

/* アクセス：白背景＋薄い枠＋ボルドー文字＋位置ピン */
.header .header-actions > a.header-button.access{
  min-width:96px !important;
  color:#65152F !important;
  -webkit-text-fill-color:#65152F !important;
  background:#fff !important;
  background-image:none !important;
  border:1px solid #EEE9EB !important;
}
.header .header-actions > a.header-button.access::before{
  content:"●" !important;
  display:block !important;
  width:18px !important;
  height:22px !important;
  color:#65152F !important;
  -webkit-text-fill-color:#65152F !important;
  font-size:0 !important;
  background:#65152F !important;
  border-radius:50% 50% 50% 0 !important;
  transform:rotate(-45deg) !important;
  position:relative !important;
}
.header .header-actions > a.header-button.access::after{
  content:"" !important;
  position:absolute !important;
  width:6px !important;
  height:6px !important;
  background:#fff !important;
  border-radius:50% !important;
  transform:translateY(-11px) !important;
}
.header .header-actions > a.header-button.access{
  position:relative !important;
}
.header .header-actions > a.header-button.access:hover{
  color:#65152F !important;
  -webkit-text-fill-color:#65152F !important;
  background:#FAF7F8 !important;
}

/* Instagram：ボルドー背景・枠なし・アイコン上／文字下 */
.header .header-actions > a.header-button.instagram{
  width:78px !important;
  min-width:78px !important;
  max-width:78px !important;
  flex:0 0 78px !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:#65152F !important;
  background-image:none !important;
  border:0 !important;
}
.header .header-actions > a.header-button.instagram::before{
  content:"" !important;
  display:block !important;
  width:20px !important;
  height:20px !important;
  box-sizing:border-box !important;
  border:2px solid #fff !important;
  border-radius:6px !important;
  position:relative !important;
}
.header .header-actions > a.header-button.instagram::after{
  content:"" !important;
  position:absolute !important;
  width:6px !important;
  height:6px !important;
  box-sizing:border-box !important;
  border:2px solid #fff !important;
  border-radius:50% !important;
  transform:translateY(-10px) !important;
}
.header .header-actions > a.header-button.instagram{
  position:relative !important;
}
.header .header-actions > a.header-button.instagram .instagram-name{
  display:block !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-size:.60rem !important;
  font-weight:700 !important;
  line-height:1 !important;
}
.header .header-actions > a.header-button.instagram:hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:#741936 !important;
}

@media only screen and (max-width:640px){
  .header .header-actions > a.header-button.reserve,
  .header .header-actions > a.header-button.access,
  .header .header-actions > a.header-button.instagram{
    height:48px !important;
    min-height:48px !important;
    padding:4px 7px !important;
  }
  .header .header-actions > a.header-button.reserve{min-width:100px !important;}
  .header .header-actions > a.header-button.access{min-width:78px !important;}
  .header .header-actions > a.header-button.instagram{
    width:66px !important;
    min-width:66px !important;
    max-width:66px !important;
    flex-basis:66px !important;
  }
}
/* end top header buttons only */


/* Instagram button only: official-style gradient */
.header .header-actions > a.header-button.instagram{
  background:
    radial-gradient(circle at 30% 107%,
      #fdf497 0%,
      #fdf497 5%,
      #fd5949 45%,
      #d6249f 60%,
      #285AEB 90%) !important;
  background-color:#d6249f !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
.header .header-actions > a.header-button.instagram:hover{
  filter:brightness(.92) !important;
}


/* Instagram button */
.header .header-actions > a.header-button.instagram{
  background:#65152F !important;
  background-image:none !important;
  border:0 !important;
  color:#fff !important;
  -webkit-text-fill-color:initial !important;
}

/* Instagram文字だけにグラデーション */
.header .header-actions > a.header-button.instagram .instagram-name{
	display: block !important;
	background: linear-gradient( 90deg, #FCAF45 0%, #F77737 22%, #E1306C 48%, #C13584 72%, #833AB4 100% ) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
}

/* Instagramマークにも同じグラデーション */
.header .header-actions > a.header-button.instagram::before{
  content:"" !important;
  display:block !important;
  width:22px !important;
  height:22px !important;
  margin:0 auto 3px !important;
  background:linear-gradient(
    135deg,
    #833AB4 0%,
    #C13584 28%,
    #E1306C 52%,
    #F77737 76%,
    #FCAF45 100%
  ) !important;
  -webkit-mask:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h10a5 5 0 0 1 5 5v10a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5V7a5 5 0 0 1 5-5Zm0 2a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3H7Zm11 1.5a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5ZM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z'/%3E%3C/svg%3E")
    center / contain no-repeat !important;
  mask:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h10a5 5 0 0 1 5 5v10a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5V7a5 5 0 0 1 5-5Zm0 2a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3H7Zm11 1.5a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5ZM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z'/%3E%3C/svg%3E")
    center / contain no-repeat !important;
  border:0 !important;
  border-radius:0 !important;
  transform:none !important;
}

/* 既存の別アイコン用疑似要素があれば消す */
.header .header-actions > a.header-button.instagram::after{
  content:none !important;
  display:none !important;
}

/* ホバーはボタン背景だけ少し明るく */
.header .header-actions > a.header-button.instagram:hover{
  background:#741936 !important;
  background-image:none !important;
  filter:none !important;
}


/* Header: ネット予約・アクセスの文字サイズのみ微調整 */
.header .header-actions > a.header-button.reserve,
.header .header-actions > a.header-button.access{
  font-size:.76rem !important;
}

@media only screen and (max-width:940px){
  .header .header-actions > a.header-button.reserve,
  .header .header-actions > a.header-button.access{
    font-size:.72rem !important;
  }
}

@media only screen and (max-width:420px){
  .header .header-actions > a.header-button.reserve,
  .header .header-actions > a.header-button.access{
    font-size:.67rem !important;
  }
}
/* End: 対象2ボタン以外は変更なし */


/* === Header button fine adjustment v2: 指定3点のみ === */

/* 1) ネット予約・アクセスの文字をもう少し小さく */
.header .header-actions > a.header-button.reserve,
.header .header-actions > a.header-button.access{
  font-size:.68rem !important;
}
@media only screen and (max-width:940px){
  .header .header-actions > a.header-button.reserve,
  .header .header-actions > a.header-button.access{
    font-size:.65rem !important;
  }
}
@media only screen and (max-width:420px){
  .header .header-actions > a.header-button.reserve,
  .header .header-actions > a.header-button.access{
    font-size:.61rem !important;
  }
}

/* 2) ネット予約の四角いマークを削除 */
.header .header-actions > a.header-button.reserve::before{
  content:none !important;
  display:none !important;
}

/* 3) アクセスの位置ピンを整える */
.header .header-actions > a.header-button.access::before{
  content:"" !important;
  display:block !important;
  width:19px !important;
  height:19px !important;
  margin:0 auto 2px !important;
  background:#65152F !important;
  border:0 !important;
  border-radius:0 !important;
  transform:none !important;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E") center/contain no-repeat !important;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E") center/contain no-repeat !important;
}
.header .header-actions > a.header-button.access::after{
  content:none !important;
  display:none !important;
}

/* === End Header button fine adjustment v2 === */


/* ネット予約・アクセス：指定箇所のみ10%縮小 */
.header .header-actions > a.header-button.reserve{
  transform:scale(.90) !important;
  transform-origin:center !important;
}

.header .header-actions > a.header-button.access{
  height:90% !important;
  min-height:90% !important;
  font-size:90% !important;
}


/* 今回の変更：ネット予約・アクセスの左右幅のみ10%縮小 */
.header .header-actions > a.header-button.reserve,
.header .header-actions > a.header-button.access{
  width:90% !important;
  min-width:0 !important;
}


.header .header-actions > a.header-button.access{
  transform:scale(.9) !important;
  transform-origin:center center !important;
  font-size:90% !important;
}


/* ネット予約：文字サイズのみ10%拡大。他の寸法・ボタンは変更しない */
.header .header-actions > a.header-button.reserve{
	font-size: 90% !important;
}

/* Smartphone header: one row / 48px only */
@media only screen and (max-width:640px){
 body{padding-top:84px !important;}
 .header .main{height:48px !important;min-height:48px !important;overflow:visible !important;}
 .header .main-inner{display:flex !important;flex-direction:row !important;align-items:center !important;justify-content:space-between !important;gap:4px !important;width:100% !important;height:48px !important;min-height:48px !important;padding:0 5px !important;margin:0 !important;}
 .header .header-logo{flex:1 1 auto !important;min-width:0 !important;width:auto !important;height:48px !important;overflow:hidden !important;}
 .header .header-logo a,.header .header-logo img{display:block !important;width:auto !important;height:48px !important;max-height:48px !important;max-width:100% !important;object-fit:contain !important;object-position:left center !important;}
 .header .header-actions{display:flex !important;flex:0 0 auto !important;flex-direction:row !important;align-items:center !important;justify-content:flex-end !important;gap:3px !important;width:auto !important;height:48px !important;margin:0 !important;padding:0 !important;}
 .header .header-tel,.header .action-buttons{display:none !important;}
 .header .header-actions>a.header-button.reserve,.header .header-actions>a.header-button.access,.header .header-actions>a.header-button.instagram{flex:0 0 auto !important;width:auto !important;min-width:0 !important;max-width:none !important;height:38px !important;min-height:38px !important;margin:0 !important;transform:none !important;}
 .header .header-actions>a.header-button.reserve{padding-left:7px !important;padding-right:7px !important;}
 .header .header-actions>a.header-button.access{padding-left:6px !important;padding-right:6px !important;}
 .header .header-actions>a.header-button.instagram{width:54px !important;min-width:54px !important;max-width:54px !important;}
 .header .topbar{height:36px !important;}
}
@media only screen and (max-width:420px){
 .header .main-inner{gap:2px !important;padding-left:3px !important;padding-right:3px !important;}
 .header .header-actions{gap:2px !important;}
 .header .header-actions>a.header-button.reserve{padding-left:5px !important;padding-right:5px !important;}
 .header .header-actions>a.header-button.access{padding-left:4px !important;padding-right:4px !important;}
 .header .header-actions>a.header-button.instagram{width:49px !important;min-width:49px !important;max-width:49px !important;}
}

/* Smartphone header: show telephone in existing 48px single row. No other changes. */
@media only screen and (max-width:640px){
 .header .header-tel{display:block !important;flex:0 0 auto !important;margin:0 !important;padding:0 !important;text-align:right !important;line-height:1 !important;}
 .header .header-tel .tel-label{display:none !important;}
 .header .header-tel a{display:block !important;margin:0 !important;padding:0 !important;white-space:nowrap !important;font-size:.72rem !important;line-height:1 !important;}
}
@media only screen and (max-width:420px){
 .header .header-tel a{font-size:.64rem !important;}
}

/* Header telephone: button appearance only */
.header .header-tel a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:.28em !important;
  padding:5px 9px !important;
  color:#65152F !important;
  background:#ffffff !important;
  border:1px solid rgba(255,255,255,.92) !important;
  border-radius:5px !important;
  box-shadow:0 1px 3px rgba(0,0,0,.12) !important;
}
.header .header-tel a::before{
  content:"☎" !important;
  font-family:Arial,sans-serif !important;
  font-size:.88em !important;
  line-height:1 !important;
}
.header .header-tel a:hover{
  color:#65152F !important;
  background:#fdf9fa !important;
}
@media only screen and (max-width:640px){
  .header .header-tel a{
    display:inline-flex !important;
    padding:4px 6px !important;
    border-radius:4px !important;
  }
}


/* Smartphone header: simplify the four controls only */
@media only screen and (max-width:640px){

  /* 電話：ボタンをやめて「☎ + 白文字」に */
  .header .header-tel a{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:.22em !important;
    margin:0 !important;
    padding:0 2px !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    font-family:Arial,"Helvetica Neue",sans-serif !important;
    font-weight:700 !important;
  }
  .header .header-tel a::before{
    content:"☎" !important;
    color:#ffffff !important;
    font-size:.92em !important;
  }
  .header .header-tel a:hover{
    color:#ffffff !important;
    background:transparent !important;
  }

  /* アクセス：箱感をなくし、位置ピン＋白文字だけに */
  .header .header-actions > a.header-button.access{
    padding-left:3px !important;
    padding-right:3px !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }
  .header .header-actions > a.header-button.access::before{
    width:15px !important;
    height:15px !important;
    margin:0 auto 1px !important;
    background:#ffffff !important;
  }
  .header .header-actions > a.header-button.access:hover{
    color:#ffffff !important;
    background:transparent !important;
  }

  /* ネット予約・Instagramは現在のデザインを維持 */
}


/* Smartphone top header: bottom-bar style 4-way split */
@media only screen and (max-width:640px){

  /* 48px・1段は維持。操作部を連続した4分割バーにする */
  .header .header-actions{
    display:grid !important;
    grid-template-columns:repeat(4, minmax(0,1fr)) !important;
    gap:0 !important;
    flex:0 0 214px !important;
    width:214px !important;
    height:48px !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
    background:#741733 !important;
    box-shadow:none !important;
  }

  .header .header-tel,
  .header .header-actions > a.header-button.reserve,
  .header .header-actions > a.header-button.access,
  .header .header-actions > a.header-button.instagram{
    display:flex !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:48px !important;
    min-height:48px !important;
    margin:0 !important;
    padding:0 3px !important;
    align-items:center !important;
    justify-content:center !important;
    border:0 !important;
    border-right:1px solid rgba(255,255,255,.25) !important;
    border-radius:0 !important;
    box-shadow:none !important;
    transform:none !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    background:#741733 !important;
    font-family:inherit !important;
    font-size:.61rem !important;
    font-weight:700 !important;
    line-height:1.15 !important;
    text-align:center !important;
    white-space:nowrap !important;
  }

  /* 2組に見えるよう、後半2項目を一段濃く */
  .header .header-actions > a.header-button.access,
  .header .header-actions > a.header-button.instagram{
    background:#571025 !important;
  }

  .header .header-actions > a.header-button.instagram{
    border-right:0 !important;
  }

  /* 電話は番号ではなく「電話予約」と表示。リンク先 tel: はそのまま */
  .header .header-tel{
    position:relative !important;
    line-height:1 !important;
  }
  .header .header-tel .tel-label{
    display:none !important;
  }
  .header .header-tel a{
    display:flex !important;
    width:100% !important;
    height:48px !important;
    margin:0 !important;
    padding:0 !important;
    align-items:center !important;
    justify-content:center !important;
    color:transparent !important;
    -webkit-text-fill-color:transparent !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    font-size:0 !important;
    text-decoration:none !important;
  }
  .header .header-tel a::before{
    content:"☎" !important;
    display:inline-block !important;
    margin-right:2px !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    font-size:.66rem !important;
  }
  .header .header-tel a::after{
    content:"電話予約" !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    font-size:.61rem !important;
    font-weight:700 !important;
    white-space:nowrap !important;
  }

  /* 既存のアクセス/Instagramアイコンはこのバーでは小さく整える */
  .header .header-actions > a.header-button.access::before{
    width:12px !important;
    height:12px !important;
    margin:0 2px 0 0 !important;
    background:#ffffff !important;
  }

  .header .header-actions > a.header-button.instagram::before{
    width:12px !important;
    height:12px !important;
    margin:0 2px 0 0 !important;
    background:#ffffff !important;
  }

  .header .header-actions > a.header-button.instagram .instagram-name{
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    background:none !important;
    font-size:.58rem !important;
  }
}

@media only screen and (max-width:420px){
  .header .header-actions{
    flex-basis:202px !important;
    width:202px !important;
  }
  .header .header-tel,
  .header .header-actions > a.header-button.reserve,
  .header .header-actions > a.header-button.access,
  .header .header-actions > a.header-button.instagram{
    font-size:.57rem !important;
    padding-left:2px !important;
    padding-right:2px !important;
  }
  .header .header-tel a::after{
    font-size:.57rem !important;
  }
  .header .header-actions > a.header-button.instagram .instagram-name{
    font-size:.54rem !important;
  }
}


/* Header controls: bottom-bar style on PC and smartphone / telephone in two rows */
.header .header-actions{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:0 !important;
  flex:0 0 500px !important;
  width:500px !important;
  height:54px !important;
  padding:0 !important;
  margin-left:auto !important;
  overflow:hidden !important;
  background:#741733 !important;
}
.header .header-tel,
.header .header-actions > a.header-button.reserve,
.header .header-actions > a.header-button.access,
.header .header-actions > a.header-button.instagram{
  display:flex !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  height:54px !important;
  min-height:54px !important;
  margin:0 !important;
  padding:0 8px !important;
  align-items:center !important;
  justify-content:center !important;
  border:0 !important;
  border-right:1px solid rgba(255,255,255,.25) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transform:none !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:#741733 !important;
  font-family:inherit !important;
  font-size:.78rem !important;
  font-weight:700 !important;
  line-height:1.15 !important;
  text-align:center !important;
}
.header .header-actions > a.header-button.access,
.header .header-actions > a.header-button.instagram{
  background:#571025 !important;
}
.header .header-actions > a.header-button.instagram{
  border-right:0 !important;
}

/* Telephone: 2 rows = 電話予約 / number */
.header .header-tel{
  flex-direction:column !important;
  line-height:1.05 !important;
}
.header .header-tel .tel-label{
  display:block !important;
  margin:0 0 3px !important;
  color:#fff !important;
  font-size:.66rem !important;
  font-weight:700 !important;
  line-height:1 !important;
}
.header .header-tel .tel-label{
  font-size:0 !important;
}
.header .header-tel .tel-label::after{
  content:"☎ 電話予約" !important;
  font-size:.66rem !important;
}
.header .header-tel a{
  display:block !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  font-family:Arial,"Helvetica Neue",sans-serif !important;
  font-size:.78rem !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  white-space:nowrap !important;
}
.header .header-tel a::before,
.header .header-tel a::after{
  content:none !important;
}

/* PC icons/text */
.header .header-actions > a.header-button.access::before,
.header .header-actions > a.header-button.instagram::before{
  width:15px !important;
  height:15px !important;
  margin:0 4px 0 0 !important;
  background:#fff !important;
}
.header .header-actions > a.header-button.instagram .instagram-name{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:none !important;
  font-size:.74rem !important;
}

/* Smartphone: retain 48px single row */
@media only screen and (max-width:640px){
  .header .header-actions{
    flex:0 0 214px !important;
    width:214px !important;
    height:48px !important;
  }
  .header .header-tel,
  .header .header-actions > a.header-button.reserve,
  .header .header-actions > a.header-button.access,
  .header .header-actions > a.header-button.instagram{
    height:48px !important;
    min-height:48px !important;
    padding:0 3px !important;
    font-size:.61rem !important;
  }
  .header .header-tel .tel-label{
    margin-bottom:2px !important;
  }
  .header .header-tel .tel-label::after{
    font-size:.55rem !important;
  }
  .header .header-tel a{
    font-size:.56rem !important;
  }
  .header .header-actions > a.header-button.access::before,
  .header .header-actions > a.header-button.instagram::before{
    width:12px !important;
    height:12px !important;
    margin-right:2px !important;
  }
  .header .header-actions > a.header-button.instagram .instagram-name{
    font-size:.58rem !important;
  }
}
@media only screen and (max-width:420px){
  .header .header-actions{
    flex-basis:202px !important;
    width:202px !important;
  }
  .header .header-tel,
  .header .header-actions > a.header-button.reserve,
  .header .header-actions > a.header-button.access,
  .header .header-actions > a.header-button.instagram{
    padding-left:2px !important;
    padding-right:2px !important;
    font-size:.57rem !important;
  }
  .header .header-tel .tel-label::after{
    font-size:.52rem !important;
  }
  .header .header-tel a{
    font-size:.52rem !important;
  }
  .header .header-actions > a.header-button.instagram .instagram-name{
    font-size:.54rem !important;
  }
}


/* PC header alignment correction only */
@media only screen and (min-width:641px){
  .header .main-inner{align-items:center !important;}
  .header .header-actions{
    align-self:center !important;
    flex:0 0 460px !important;
    width:460px !important;
    height:54px !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
    margin-left:auto !important;
    padding:0 !important;
    grid-template-columns:1.28fr 1fr 1fr 1fr !important;
  }
  .header .header-tel,
  .header .header-actions > a.header-button.reserve,
  .header .header-actions > a.header-button.access,
  .header .header-actions > a.header-button.instagram{
    position:relative !important;
    top:auto !important; bottom:auto !important;
    left:auto !important; right:auto !important;
    height:54px !important;
    min-height:54px !important;
    margin:0 !important;
    transform:none !important;
    align-self:stretch !important;
  }
  .header .header-tel{
    justify-content:center !important;
    align-items:center !important;
  }
}
@media only screen and (min-width:641px) and (max-width:940px){
  .header .header-actions{
    flex-basis:410px !important;
    width:410px !important;
  }
}


/* PC only: restore Instagram and emphasize telephone number */
@media only screen and (min-width:641px){

  /* Instagramを4列目に確実に表示 */
  .header .header-actions > a.header-button.instagram{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    width:100% !important;
    min-width:0 !important;
    height:54px !important;
    align-items:center !important;
    justify-content:center !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    background:#571025 !important;
  }
  .header .header-actions > a.header-button.instagram .instagram-name{
    display:inline !important;
    visibility:visible !important;
    opacity:1 !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    background:none !important;
    font-size:.74rem !important;
  }

  /* 電話欄：1列目「電話予約 ☎06」／2列目「4950-0423」 */
  .header .header-tel{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:2px !important;
  }

  .header .header-tel .tel-label{
    display:block !important;
    margin:0 !important;
    font-size:0 !important;
    line-height:1 !important;
  }
  .header .header-tel .tel-label::after{
    content:"電話予約  ☎06" !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    font-family:inherit !important;
    font-size:.78rem !important;
    font-weight:700 !important;
    letter-spacing:.02em !important;
  }

  .header .header-tel a{
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    color:transparent !important;
    -webkit-text-fill-color:transparent !important;
    font-size:0 !important;
    line-height:1 !important;
  }
  .header .header-tel a::before{
    content:"4950-0423" !important;
    display:block !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    font-family:Arial,"Helvetica Neue",sans-serif !important;
    font-size:1.20rem !important;
    font-weight:800 !important;
    line-height:1 !important;
    letter-spacing:.025em !important;
    white-space:nowrap !important;
  }
  .header .header-tel a::after{
    content:none !important;
  }
}


/* PC only: exact 4-column header bar fix */
@media only screen and (min-width:641px){

  /* 空のaction-buttonsが5番目のグリッド要素になるのを防ぐ */
  .header .header-actions > .action-buttons{
    display:none !important;
  }

  .header .header-actions{
    display:grid !important;
    grid-template-columns:1.28fr 1fr 1fr 1fr !important;
    grid-template-rows:54px !important;
    grid-auto-flow:column !important;
    width:460px !important;
    height:54px !important;
    overflow:visible !important;
  }

  .header .header-tel{grid-column:1 !important; grid-row:1 !important;}
  .header .header-actions > a.header-button.reserve{grid-column:2 !important; grid-row:1 !important;}
  .header .header-actions > a.header-button.access{grid-column:3 !important; grid-row:1 !important;}
  .header .header-actions > a.header-button.instagram{
    display:flex !important;
    grid-column:4 !important;
    grid-row:1 !important;
    visibility:visible !important;
    opacity:1 !important;
    width:100% !important;
    height:54px !important;
  }

  .header .header-actions > a.header-button.instagram .instagram-name{
    display:inline !important;
    visibility:visible !important;
    opacity:1 !important;
  }
}


/* Instagram icon/text color only */
.header .header-actions > a.header-button.instagram::before{
  background:linear-gradient(45deg,#FEDA75,#FA7E1E,#D62976,#962FBF,#4F5BD5) !important;
}
.header .header-actions > a.header-button.instagram .instagram-name{
  background:linear-gradient(90deg,#FEDA75,#FA7E1E,#D62976,#962FBF,#4F5BD5) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  color:transparent !important;
  -webkit-text-fill-color:transparent !important;
}


/* Smartphone telephone: emphasize like PC / other controls unchanged */
@media only screen and (max-width:640px){
  .header .header-tel{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:1px !important;
  }

  .header .header-tel .tel-label{
    display:block !important;
    margin:0 !important;
    font-size:0 !important;
    line-height:1 !important;
  }
  .header .header-tel .tel-label::after{
    content:"電話予約  ☎06" !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    font-family:inherit !important;
    font-size:.58rem !important;
    font-weight:700 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
  }

  .header .header-tel a{
    display:block !important;
    width:auto !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    color:transparent !important;
    -webkit-text-fill-color:transparent !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    font-size:0 !important;
    line-height:1 !important;
  }
  .header .header-tel a::before{
    content:"4950-0423" !important;
    display:block !important;
    margin:0 !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    font-family:Arial,"Helvetica Neue",sans-serif !important;
    font-size:.88rem !important;
    font-weight:800 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
  }
  .header .header-tel a::after{
    content:none !important;
  }
}

@media only screen and (max-width:420px){
  .header .header-tel .tel-label::after{
    font-size:.54rem !important;
  }
  .header .header-tel a::before{
    font-size:.82rem !important;
  }
}


/* Smartphone only: widen telephone cell so the emphasized number stays inside */
@media only screen and (max-width:640px){
  .header .header-actions{
    grid-template-columns:1.45fr 1fr 1fr 1fr !important;
  }
}


/* Smartphone only: widen telephone cell a little more */
@media only screen and (max-width:640px){
  .header .header-actions{
    grid-template-columns:1.65fr 1fr 1fr 1fr !important;
  }
}

/* Net reservation: clearer hover feedback */
.header .header-actions > a.header-button.reserve{
  transition:background-color .18s ease, box-shadow .18s ease, filter .18s ease !important;
}
.header .header-actions > a.header-button.reserve:hover,
.header .header-actions > a.header-button.reserve:focus-visible{
  background:#a5284d !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.72) !important;
  filter:brightness(1.12) !important;
}


/* Telephone reservation: same hover feedback as Net reservation */
.header .header-tel{
  transition:background-color .18s ease, box-shadow .18s ease, filter .18s ease !important;
}
.header .header-tel:hover,
.header .header-tel:focus-within{
  background:#a5284d !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.72) !important;
  filter:brightness(1.12) !important;
}

/* Telephone number: keep current size, use normal font weight */
.header .header-tel a::before{
  font-weight:400 !important;
}


/* Telephone only: enlarge ☎06 slightly and add a thin right divider */
.header .header-tel{
  border-right:1px solid rgba(255,255,255,.38) !important;
}
.header .header-tel .tel-label::after{
  font-size:.86rem !important;
}

/* Smartphone: slightly enlarged while keeping the current 48px layout */
@media only screen and (max-width:640px){
  .header .header-tel .tel-label::after{
    font-size:.66rem !important;
  }
}
@media only screen and (max-width:420px){
  .header .header-tel .tel-label::after{
    font-size:.62rem !important;
  }
}


/* Telephone divider: force visible thin vertical line at the right edge */
.header .header-tel{
  position:relative !important;
  border-right:0 !important;
}
.header .header-tel::after{
  content:"" !important;
  position:absolute !important;
  top:7px !important;
  right:0 !important;
  bottom:7px !important;
  width:1px !important;
  background:rgba(255,255,255,.55) !important;
  pointer-events:none !important;
  z-index:5 !important;
}

/* Keep the divider visible on smartphone within the 48px header */
@media only screen and (max-width:640px){
  .header .header-tel::after{
    top:6px !important;
    bottom:6px !important;
  }
}


/* Telephone number: visible vertical bar immediately to the right of 4950-0423 */
.header .header-tel a{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.header .header-tel a::after{
  content:"|" !important;
  display:inline-block !important;
  margin-left:7px !important;
  color:rgba(255,255,255,.72) !important;
  -webkit-text-fill-color:rgba(255,255,255,.72) !important;
  font-family:Arial,"Helvetica Neue",sans-serif !important;
  font-size:1rem !important;
  font-weight:300 !important;
  line-height:1 !important;
}

/* Smartphone: keep the bar clearly visible beside the number */
@media only screen and (max-width:640px){
  .header .header-tel a::after{
    margin-left:4px !important;
    font-size:.82rem !important;
  }
}


/* Telephone: remove previously added right-side line/bar and use left border only */
.header .header-tel{
  border-right:0 !important;
  border-left:1px solid rgba(255,255,255,.55) !important;
}
.header .header-tel::after{
  content:none !important;
  display:none !important;
}
.header .header-tel a::after{
  content:none !important;
  display:none !important;
}


/* Telephone button: keep thin borders on both left and right edges */
.header .header-tel{
  border-left:1px solid rgba(255,255,255,.55) !important;
  border-right:1px solid rgba(255,255,255,.55) !important;
}


/* Telephone: keep hover on the button, but do not apply a separate hover effect to 4950-0423 */
.header .header-tel a,
.header .header-tel a:hover,
.header .header-tel a:focus,
.header .header-tel a:active{
  background:transparent !important;
  box-shadow:none !important;
  filter:none !important;
  text-decoration:none !important;
  transition:none !important;
}

/* The parent telephone button hover remains active */
.header .header-tel:hover,
.header .header-tel:focus-within{
  background:#a5284d !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.72) !important;
  filter:brightness(1.12) !important;
}


/* Instagram only: thin borders on both sides + clearer hover */
.header .header-actions > a.header-button.instagram{
  border-left:1px solid rgba(255,255,255,.55) !important;
  border-right:1px solid rgba(255,255,255,.55) !important;
  transition:background-color .18s ease, box-shadow .18s ease, filter .18s ease !important;
}

.header .header-actions > a.header-button.instagram:hover,
.header .header-actions > a.header-button.instagram:focus-visible{
  background:#7b1738 !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.78) !important;
  filter:brightness(1.22) !important;
}


/* KOライト：スマホ版のみ、各症例のBEFORE / AFTERを左右並び */
@media only screen and (max-width:640px){
  #before-after .case-comparison{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:6px !important;
    align-items:start !important;
  }

  #before-after .case-arrow{
    display:none !important;
  }

  #before-after .case-photo{
    min-width:0 !important;
    width:100% !important;
    margin:0 !important;
  }

  #before-after .case-photo img{
    display:block !important;
    width:100% !important;
    height:auto !important;
  }
}


/* Access button: same clear hover feedback as the other header buttons */
.header .header-actions > a.header-button.access{
  transition:background-color .18s ease, box-shadow .18s ease, filter .18s ease !important;
}
.header .header-actions > a.header-button.access:hover,
.header .header-actions > a.header-button.access:focus-visible{
  background:#a5284d !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.72) !important;
  filter:brightness(1.12) !important;
}


/* Instagram button only: improve visibility while preserving the 4-button design */
.header .header-actions > a.header-button.instagram{
  background:#6f1d46 !important;
  transition:background-color .18s ease, box-shadow .18s ease, filter .18s ease !important;
}

/* Keep the Instagram-like gradient vivid on the slightly lighter background */
.header .header-actions > a.header-button.instagram::before{
  background:linear-gradient(45deg,#FEDA75,#FA7E1E,#D62976,#962FBF,#4F5BD5) !important;
  filter:saturate(1.15) brightness(1.08) !important;
}
.header .header-actions > a.header-button.instagram .instagram-name{
  background:linear-gradient(90deg,#FEDA75,#FA7E1E,#D62976,#962FBF,#4F5BD5) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  color:transparent !important;
  -webkit-text-fill-color:transparent !important;
  filter:saturate(1.15) brightness(1.10) !important;
}

/* Clearer Instagram hover */
.header .header-actions > a.header-button.instagram:hover,
.header .header-actions > a.header-button.instagram:focus-visible{
  background:#8b285d !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.82) !important;
  filter:brightness(1.12) !important;
}


/* Instagram icon only: slightly larger */
.header .header-actions > a.header-button.instagram::before{
  width:17px !important;
  height:17px !important;
}

/* Smartphone: slightly larger while keeping the current header layout */
@media only screen and (max-width:640px){
  .header .header-actions > a.header-button.instagram::before{
    width:14px !important;
    height:14px !important;
  }
}


/* Instagram icon only: one step larger */
.header .header-actions > a.header-button.instagram::before{
  width:20px !important;
  height:20px !important;
}

@media only screen and (max-width:640px){
  .header .header-actions > a.header-button.instagram::before{
    width:17px !important;
    height:17px !important;
  }
}


/* =========================================================
   KOライト 冒頭ヒーロー：実際の施術写真を使ったビジュアル
   既存ページの他セクションには影響させない
   ========================================================= */
.page-hero{
  position:relative !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr) !important;
  gap:28px !important;
  align-items:stretch !important;
  overflow:hidden !important;
  padding:34px 34px 32px !important;
  background:
    radial-gradient(circle at 12% 14%, rgba(255,255,255,.98) 0 22%, rgba(255,255,255,.82) 42%, transparent 66%),
    linear-gradient(135deg,#fff 0%,#fff8fa 52%,#f4e8ed 100%) !important;
  border:1px solid #eadce1 !important;
  border-top:0 !important;
  border-radius:0 0 18px 18px !important;
  box-shadow:0 16px 38px rgba(91,25,49,.08) !important;
}

.page-hero::before{
  content:"" !important;
  position:absolute !important;
  left:-120px !important;
  bottom:-170px !important;
  width:430px !important;
  height:430px !important;
  border-radius:50% !important;
  border:1px solid rgba(139,30,63,.10) !important;
  pointer-events:none !important;
}

.page-hero .hero-text{
  position:relative !important;
  z-index:3 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  min-width:0 !important;
  padding:10px 0 4px !important;
}

.page-hero .eyebrow-label{
  align-self:flex-start !important;
  margin:0 0 16px !important;
  padding:5px 18px !important;
  color:#8B1E3F !important;
  background:rgba(255,255,255,.88) !important;
  border:1px solid rgba(176,58,91,.38) !important;
  border-radius:999px !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:.78rem !important;
  letter-spacing:.16em !important;
  box-shadow:none !important;
}

.page-hero .hero-specialist{
  margin:0 0 8px !important;
  color:#8B1E3F !important;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif !important;
  font-size:1.08rem !important;
  font-weight:700 !important;
  line-height:1.65 !important;
  letter-spacing:.04em !important;
}

.page-hero .page-title{
  margin:0 0 12px !important;
  padding:0 !important;
  color:#8B1E3F !important;
  font-size:clamp(3.3rem,6.2vw,5.8rem) !important;
  line-height:1.02 !important;
  letter-spacing:.02em !important;
}

.page-hero .page-title::after{
  display:none !important;
}

.page-hero .hero-subtitle{
  margin:0 0 22px !important;
  color:#8B1E3F !important;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif !important;
  font-size:1.16rem !important;
  font-weight:700 !important;
  line-height:1.65 !important;
  letter-spacing:.025em !important;
}

.page-hero .hero-lead{
  max-width:590px !important;
  margin:0 0 24px !important;
  color:#3b3b3b !important;
  font-size:.96rem !important;
  line-height:2 !important;
}

.page-hero .feature-cards{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:10px !important;
  margin:6px 0 24px !important;
}

.page-hero .feature-card{
  min-width:0 !important;
  padding:15px 12px 13px !important;
  background:rgba(255,255,255,.90) !important;
  border:1px solid #edd6de !important;
  border-radius:18px !important;
  text-align:center !important;
  box-shadow:0 7px 18px rgba(116,23,51,.045) !important;
}

.page-hero .feature-card .feature-icon{
  display:flex !important;
  width:38px !important;
  height:38px !important;
  margin:0 auto 8px !important;
  justify-content:center !important;
  align-items:center !important;
  color:#b03a5b !important;
  background:#fff !important;
  border:1px solid #e9bdca !important;
  border-radius:50% !important;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif !important;
  font-size:.92rem !important;
  font-weight:700 !important;
}

.page-hero .feature-card h2{
  margin:0 0 6px !important;
  color:#8B1E3F !important;
  font-size:.84rem !important;
  font-weight:700 !important;
  line-height:1.45 !important;
}

.page-hero .feature-card p{
  margin:0 !important;
  color:#555 !important;
  font-size:.70rem !important;
  line-height:1.65 !important;
}

.page-hero .hero-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  margin:0 !important;
}

.page-hero .hero-actions a{
  min-width:190px !important;
  min-height:50px !important;
  display:inline-flex !important;
  justify-content:center !important;
  align-items:center !important;
  border-radius:999px !important;
  font-weight:700 !important;
  letter-spacing:.03em !important;
  box-shadow:0 8px 18px rgba(116,23,51,.10) !important;
}

.page-hero .button-primary{
  color:#fff !important;
  background:linear-gradient(90deg,#7b1837,#b42b57) !important;
  border:1px solid #8B1E3F !important;
}

.page-hero .button-secondary{
  color:#8B1E3F !important;
  background:rgba(255,255,255,.94) !important;
  border:1px solid #e0c7d0 !important;
}

.page-hero .hero-visual-photo{
  position:relative !important;
  min-height:640px !important;
  overflow:hidden !important;
  border-radius:16px !important;
  background:#3d2d30 !important;
  box-shadow:0 18px 40px rgba(50,25,32,.18) !important;
}

.page-hero .hero-treatment-photo{
  position:absolute !important;
  inset:0 !important;
  margin:0 !important;
}

.page-hero .hero-treatment-photo::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:
    linear-gradient(90deg,rgba(47,30,35,.06) 0%,rgba(47,30,35,0) 54%),
    linear-gradient(0deg,rgba(58,21,32,.25) 0%,rgba(58,21,32,0) 34%) !important;
  pointer-events:none !important;
}

.page-hero .hero-treatment-photo img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}

.page-hero .hero-photo-badge{
  position:absolute !important;
  top:28px !important;
  right:26px !important;
  z-index:3 !important;
  display:flex !important;
  width:154px !important;
  height:154px !important;
  padding:22px 15px !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  color:#fff !important;
  background:rgba(139,30,63,.72) !important;
  border:1px solid rgba(255,255,255,.66) !important;
  border-radius:50% !important;
  text-align:center !important;
  backdrop-filter:blur(3px) !important;
  -webkit-backdrop-filter:blur(3px) !important;
  box-shadow:0 8px 24px rgba(51,17,29,.20), inset 0 0 0 5px rgba(255,255,255,.05) !important;
}

.page-hero .hero-photo-badge span,
.page-hero .hero-photo-badge strong{
  display:block !important;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif !important;
  font-weight:500 !important;
  line-height:1.45 !important;
  letter-spacing:.04em !important;
}

.page-hero .hero-photo-badge span{
  font-size:.84rem !important;
}

.page-hero .hero-photo-badge strong{
  font-size:1.13rem !important;
}

.page-hero .hero-photo-badge small{
  display:block !important;
  margin-top:8px !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:.51rem !important;
  line-height:1.45 !important;
  letter-spacing:.13em !important;
  opacity:.88 !important;
}

.page-hero .hero-photo-script{
  position:absolute !important;
  right:24px !important;
  bottom:26px !important;
  z-index:3 !important;
  color:rgba(255,255,255,.86) !important;
  font-family:"Segoe Script","Brush Script MT",cursive !important;
  font-size:2.15rem !important;
  font-style:italic !important;
  line-height:1.08 !important;
  text-align:right !important;
  text-shadow:0 2px 12px rgba(0,0,0,.20) !important;
  transform:rotate(-5deg) !important;
}

#recommended{
  margin-top:10px !important;
  padding:6px 32px 22px !important;
  background:
    linear-gradient(180deg,#fff 0%,#fffafd 100%) !important;
  border-radius:14px !important;
}

#recommended .heading2{
  margin-top:28px !important;
}

@media only screen and (max-width:940px){
  .page-hero{
    grid-template-columns:minmax(0,1fr) minmax(300px,.86fr) !important;
    gap:20px !important;
    padding:26px 24px 26px !important;
  }
  .page-hero .hero-visual-photo{
    min-height:600px !important;
  }
  .page-hero .feature-card p{
    font-size:.66rem !important;
  }
}

@media only screen and (max-width:768px){
  .page-hero{
    display:flex !important;
    flex-direction:column !important;
    gap:22px !important;
    padding:22px 16px 24px !important;
    border-radius:0 0 14px 14px !important;
  }

  .page-hero .hero-text{
    padding:4px 0 0 !important;
  }

  .page-hero .page-title{
    font-size:3.45rem !important;
  }

  .page-hero .hero-subtitle{
    margin-bottom:16px !important;
    font-size:1.02rem !important;
  }

  .page-hero .hero-lead{
    margin-bottom:18px !important;
    font-size:.90rem !important;
    line-height:1.85 !important;
  }

  .page-hero .feature-cards{
    gap:7px !important;
    margin-bottom:18px !important;
  }

  .page-hero .feature-card{
    padding:12px 7px 10px !important;
    border-radius:14px !important;
  }

  .page-hero .feature-card .feature-icon{
    width:32px !important;
    height:32px !important;
    margin-bottom:6px !important;
  }

  .page-hero .feature-card h2{
    font-size:.72rem !important;
  }

  .page-hero .feature-card p{
    font-size:.60rem !important;
    line-height:1.55 !important;
  }

  .page-hero .hero-actions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
  }

  .page-hero .hero-actions a{
    min-width:0 !important;
    min-height:46px !important;
    font-size:.86rem !important;
  }

  .page-hero .hero-visual-photo{
    order:2 !important;
    width:100% !important;
    min-height:0 !important;
    aspect-ratio:4 / 5 !important;
  }

  .page-hero .hero-photo-badge{
    top:18px !important;
    right:18px !important;
    width:126px !important;
    height:126px !important;
    padding:16px 12px !important;
  }

  .page-hero .hero-photo-badge span{
    font-size:.72rem !important;
  }

  .page-hero .hero-photo-badge strong{
    font-size:.94rem !important;
  }

  .page-hero .hero-photo-badge small{
    font-size:.43rem !important;
  }

  .page-hero .hero-photo-script{
    right:18px !important;
    bottom:20px !important;
    font-size:1.7rem !important;
  }

  #recommended{
    margin-top:0 !important;
    padding:4px 14px 16px !important;
  }
}

@media only screen and (max-width:420px){
  .page-hero .hero-specialist{
    font-size:.92rem !important;
  }

  .page-hero .page-title{
    font-size:3rem !important;
  }

  .page-hero .feature-card p{
    display:none !important;
  }

  .page-hero .feature-card{
    min-height:92px !important;
  }

  .page-hero .hero-visual-photo{
    aspect-ratio:3 / 4 !important;
  }
}


/* KOライト冒頭：円形コピーを「やさしい光」に見える淡い表現へ */
.page-hero .hero-photo-badge{
  color:#741733 !important;
  background:
    radial-gradient(circle at 34% 28%,
      rgba(255,255,255,.98) 0%,
      rgba(255,248,250,.96) 34%,
      rgba(248,224,232,.92) 70%,
      rgba(238,199,213,.88) 100%) !important;
  border:1px solid rgba(255,255,255,.94) !important;
  box-shadow:
    0 8px 28px rgba(116,23,51,.12),
    0 0 0 5px rgba(255,255,255,.20),
    inset 0 0 22px rgba(255,255,255,.62) !important;
  text-shadow:none !important;
}

.page-hero .hero-photo-badge span{
  color:#8B1E3F !important;
  font-weight:600 !important;
}

.page-hero .hero-photo-badge strong{
  color:#741733 !important;
  font-weight:700 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.92) !important;
}

.page-hero .hero-photo-badge small{
  color:#8B1E3F !important;
  opacity:.78 !important;
}


/* =========================================================
   Header navigation trial:
   move the former second-row navigation into a compact
   hamburger MENU at the far right of the first row.
   ========================================================= */

/* Second row is no longer used */
.header .topbar{
  display:none !important;
}

/* The first row becomes the positioning base for the dropdown */
.header .main{
  overflow:visible !important;
}
.header .main-inner{
  position:relative !important;
  overflow:visible !important;
}

/* Hamburger navigation sits at the far right of row 1 */
.header .header-hamburger-nav{
  position:relative !important;
  flex:0 0 58px !important;
  width:58px !important;
  max-width:58px !important;
  height:54px !important;
  margin:0 0 0 7px !important;
  padding:0 !important;
  background:transparent !important;
  z-index:100002 !important;
}

.header .header-menu-button{
  display:flex !important;
  width:58px !important;
  height:54px !important;
  min-height:54px !important;
  margin:0 !important;
  padding:6px 4px 5px !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  gap:4px !important;
  color:#ffffff !important;
  background:#571025 !important;
  border:0 !important;
  border-left:1px solid rgba(255,255,255,.42) !important;
  border-right:1px solid rgba(255,255,255,.42) !important;
  border-radius:0 !important;
  line-height:1 !important;
  text-decoration:none !important;
  box-shadow:none !important;
  transition:background-color .18s ease, box-shadow .18s ease, filter .18s ease !important;
}

.header .header-menu-button:hover,
.header .header-menu-button:focus-visible,
.header .header-menu-button.is-open{
  color:#ffffff !important;
  background:#8b285d !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.78) !important;
  filter:brightness(1.10) !important;
}

.header .header-menu-button span::before{
  content:none !important;
}

.header .hamburger-lines{
  display:flex !important;
  width:25px !important;
  height:18px !important;
  flex-direction:column !important;
  justify-content:space-between !important;
}

.header .hamburger-lines i{
  display:block !important;
  width:25px !important;
  height:2px !important;
  margin:0 !important;
  padding:0 !important;
  background:#ffffff !important;
  border-radius:2px !important;
  transform:none !important;
  transition:transform .18s ease, opacity .18s ease !important;
}

.header .hamburger-label{
  display:block !important;
  color:#ffffff !important;
  font-family:Arial,"Helvetica Neue",sans-serif !important;
  font-size:.54rem !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
}

/* X state */
.header .header-menu-button.is-open .hamburger-lines{
  position:relative !important;
}
.header .header-menu-button.is-open .hamburger-lines i:nth-child(1){
  transform:translateY(8px) rotate(45deg) !important;
}
.header .header-menu-button.is-open .hamburger-lines i:nth-child(2){
  opacity:0 !important;
}
.header .header-menu-button.is-open .hamburger-lines i:nth-child(3){
  transform:translateY(-8px) rotate(-45deg) !important;
}

/* Dropdown panel */
.header .header-hamburger-nav .nav-panel{
  display:none !important;
  position:absolute !important;
  top:54px !important;
  right:0 !important;
  width:320px !important;
  max-width:min(92vw,320px) !important;
  margin:0 !important;
  padding:8px 0 !important;
  background:#ffffff !important;
  border:1px solid #e5d6db !important;
  border-top:3px solid #741733 !important;
  border-radius:0 0 8px 8px !important;
  box-shadow:0 14px 32px rgba(35,18,24,.22) !important;
  z-index:100003 !important;
}

.header .header-hamburger-nav .nav-panel.is-open{
  display:block !important;
}

.header .header-hamburger-nav .nav-panel ul{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}

.header .header-hamburger-nav .nav-panel li,
.header .header-hamburger-nav .nav-panel li:last-child{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  border:0 !important;
  border-bottom:1px solid #eee3e7 !important;
}

.header .header-hamburger-nav .nav-panel li:last-child{
  border-bottom:0 !important;
}

.header .header-hamburger-nav .nav-panel li a{
  display:flex !important;
  min-height:50px !important;
  padding:12px 18px !important;
  justify-content:space-between !important;
  align-items:center !important;
  color:#4b3b40 !important;
  background:#ffffff !important;
  border:0 !important;
  border-left:4px solid transparent !important;
  font-size:.92rem !important;
  font-weight:700 !important;
  line-height:1.3 !important;
  text-align:left !important;
}

.header .header-hamburger-nav .nav-panel li a span{
  margin:0 0 0 12px !important;
  color:#8B1E3F !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:.65rem !important;
  font-weight:400 !important;
  opacity:.72 !important;
}

.header .header-hamburger-nav .nav-panel li.is-active a,
.header .header-hamburger-nav .nav-panel li a:hover,
.header .header-hamburger-nav .nav-panel li a:focus{
  color:#741733 !important;
  background:#fbf5f7 !important;
  border-left-color:#741733 !important;
}

/* With the old 2nd row removed, offset only by row 1 height */
body{
  padding-top:74px !important;
}

@media only screen and (max-width:940px){
  body{
    padding-top:66px !important;
  }

  .header .header-hamburger-nav{
    height:54px !important;
  }
}

@media only screen and (max-width:640px){
  body{
    padding-top:48px !important;
  }

  .header .main,
  .header .main-inner{
    height:48px !important;
    min-height:48px !important;
  }

  .header .header-hamburger-nav{
    flex:0 0 44px !important;
    width:44px !important;
    max-width:44px !important;
    height:48px !important;
    margin-left:2px !important;
  }

  .header .header-menu-button{
    width:44px !important;
    height:48px !important;
    min-height:48px !important;
    padding:5px 2px 4px !important;
    gap:3px !important;
  }

  .header .hamburger-lines,
  .header .hamburger-lines i{
    width:22px !important;
  }

  .header .hamburger-lines{
    height:16px !important;
  }

  .header .header-menu-button.is-open .hamburger-lines i:nth-child(1){
    transform:translateY(7px) rotate(45deg) !important;
  }
  .header .header-menu-button.is-open .hamburger-lines i:nth-child(3){
    transform:translateY(-7px) rotate(-45deg) !important;
  }

  .header .hamburger-label{
    font-size:.45rem !important;
  }

  .header .header-hamburger-nav .nav-panel{
    top:48px !important;
    right:-3px !important;
    width:min(88vw,310px) !important;
  }

  /* Keep the current first-row buttons; only make room for MENU */
  .header .header-actions{
    min-width:0 !important;
  }
}

@media only screen and (max-width:420px){
  .header .header-hamburger-nav{
    flex-basis:40px !important;
    width:40px !important;
    max-width:40px !important;
  }
  .header .header-menu-button{
    width:40px !important;
  }
  .header .hamburger-lines,
  .header .hamburger-lines i{
    width:20px !important;
  }
}


/* Hamburger MENU: remove left/right divider lines for a cleaner look */
.header .header-menu-button{
  border-left:0 !important;
  border-right:0 !important;
}
