/*
Theme Name: 松木歯科
Description: 松木歯科
Version: 1.0
*/

/*--------------------------------------------------------------------------------
 *
 *
 * リセット
 *
 *
--------------------------------------------------------------------------------*/
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, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin:0; padding:0; border:0; font:inherit; font-size:100%; vertical-align:baseline; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display:block; }
html, body { width:100%; height:100%; line-height:1; }
ol, ul { list-style:none; }
blockquote, q {quotes:none; }
blockquote:before, blockquote:after, q:before, q:after { content:''; content:none; }
table { border-collapse:collapse; border-spacing:0; }
* { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; -o-box-sizing:border-box; -ms-box-sizing:border-box; box-sizing:border-box; }

/*--------------------------------------------------------------------------------
 *
 *
 *
 *
 * 基本設定
 *
 *
 *
 *
--------------------------------------------------------------------------------*/
html { overflow:auto; }
body { font-family:'Noto Sans Japanese',"メイリオ" , Meiryo , "ヒラギノ角ゴPro W3" , "Hiragino Kaku Gothic Pro" , "ＭＳ Ｐゴシック" , sans-serif; font-size:100%; line-height:1.75; font-weight:normal; position:relative; font-size:16px; color:#333 }
@media screen and (max-width:1000px){ body { width:1000px; } }
@media screen and (max-width:768px){ body { width:100%; background:none; font-size:14px; } }
a:link,
a:visited { color:#000; text-decoration:none; transition:.3s ease; }
a:hover,
a:active { color:#333; text-decoration:none; transition:.3s ease; }
img { max-width:100%; height:auto; vertical-align:top; backface-visibility:hidden; }
a:link img,
a:visited img {opacity:1.0; transition:.3s ease; }
a:hover img,
a:active img {opacity: 0.6; transition: .3s ease; }
video::-webkit-media-controls-enclosure { overflow:hidden; }
video::-webkit-media-controls-panel { width: calc(100% + 30px); }

/* ------------------------------小見出し属性------------------------------　*/
h1 , h2 ,h3 ,h4 ,h5 { margin:0; padding:0; line-height:1.4; font-weight:bold; }
h1 { font-size:32px; }
h2 { font-size:28px; }
h3 { font-size:20px; }
h4 { font-size:18px; }
h5 { font-size:16px; }

@media screen and (max-width:768px){
  h1 { font-size:20px; }
  h2 { font-size:20px; }
  h3 { font-size:18px; }
  h4 { font-size:18px; }
  h5 { font-size:16px; }
}
p { font-size:20px; margin-top:2em; padding:0; line-height:2; display:block; }
p:first-child { margin:0; }
@media screen and (max-width:768px){
  p { font-size:16px; }
}
ul { margin:0; padding:0; }
li { margin:0; padding:0; }
img { max-width:100%; height:auto; display:block; }
small { font-size:10px; }
b { font-weight:bold; }
ol { list-style-type:decimal; }
ol.kakko { list-style-type:none;counter-increment: cnt; }
ol.kakko li::before {content: "(" counter(cnt) ") ";}
ol.maru { list-style-type:circle; }
ol li > ol {padding-left: 30px}
ol li > ol li > ol {padding-left: 30px}

.pc { display:block; }
.sp { display:none; }
@media screen and (max-width:768px){
  .pc { display:none; }
  .sp { display:block; }
}
.center { text-align:center; display:block; margin:0 auto; }
.red { color:#f94139; }
.white { color:#fff; }
.orenge { color:#f6691a; }
.bold { font-weight:bold; }
strong { font-weight:bold; }
.mincho { font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;}
.italic { font-style:italic; }
.underline { text-decoration:underline; }
.big { font-size:30px; line-height:1; }
@media screen and (max-width:768px){
   .big { font-size:24px; }
}

ul.two_col { display:flex; justify-content:center;/*中央に配置*/ flex-wrap:wrap;/*折り返す*/ }
ul.two_col li { width:48%; max-width:360px; margin-top:30px; }
ul.two_col li:nth-of-type(odd) { margin-right:2%; }
ul.two_col li:nth-of-type(even) { margin-left:2%; }
@media screen and (max-width:768px) {
   ul.two_col li { width:100%; }
   ul.two_col li:nth-of-type(odd) { margin-right:0%; }
   ul.two_col li:nth-of-type(even) { margin-left:0%; }
}
ul.three_col { display:flex; justify-content:center;/*中央に配置*/ flex-wrap:wrap;/*折り返す*/ }
ul.three_col li { width:31%; margin-top:30px; padding:0; }
ul.three_col li:nth-child(3n+2) { margin-left:1%; margin-right:1%; }
@media screen and (max-width:768px) {
   ul.three_col li { width:48%; padding:0; }
   ul.three_col li:nth-child(3n+2) { margin-left:0%; margin-right:0%; }
   ul.three_col li:nth-child(even) { margin-left:4%; }
   ul.three_col li h3 { font-size:16px!important; }
}

dl.two_col { display:flex; justify-content:center;/*中央に配置*/ flex-wrap:wrap;/*折り返す*/ margin:30px 0 0 0; }
dl.two_col dt { width:35%; position:relative; }
dl.two_col dt img { margin:0 auto; border-radius:20px }
dl.two_col dd { width:calc(100% - 35%); padding-left:30px; }
dl.two_col:nth-of-type(even) { flex-direction:row-reverse; }
dl.two_col:nth-of-type(even) dd { padding-left:0;padding-right:30px; }
@media screen and (max-width:768px) {
   dl.two_col:nth-of-type(even) dd { padding-right:0; }
   dl.two_col dt { width:100%; }
   dl.two_col dd { width:100%; padding-left:0; margin-top:30px }
}

dl.two_col02 { display:flex; justify-content:center;/*中央に配置*/ flex-wrap:wrap;/*折り返す*/ flex-direction:row-reverse; margin:30px 0 0 0; }
dl.two_col02 dt { width:35%; position:relative; }
dl.two_col02 dt img { margin:0 auto; border-radius:20px }
dl.two_col02 dd { width:calc(100% - 35%); padding-right:30px; }
dl.two_col02 dd p { margin-top:30px }
dl.two_col02 dd p:first-child { margin-top:0 }
@media screen and (max-width:768px) {
   dl.two_col02:nth-of-type(even) dd { padding-right:0; }
   dl.two_col02 dt { width:100%; }
   dl.two_col02 dd { width:100%; padding-right:0; margin-top:30px }
}





dl.table { display:flex; justify-content:center;/*中央に配置*/ flex-wrap:wrap;/*折り返す*/ margin-top:30px; }
dl.table dt { width:20%; font-weight:bold; }
dl.table dd { width:calc(100% - 20%); padding-left:30px; }
dl.table dt,
dl.table dd { padding-bottom:20px; padding-top:20px; }
dl.table dt { border-bottom:1px solid #000; }
dl.table dd { border-bottom:1px solid #ccc; }
dl.table p { margin-top:0; }
@media screen and (max-width:768px) {
   dl.table { width:100%; max-width:360px; margin:30px auto 0 auto;}
   dl.table dt { width:100%; border-bottom:none; padding-bottom:0; }
   dl.table dd { width:100%; padding-left:0; padding-top:0; }
}





a.button { display:block; width:100%; margin:30px auto 0 auto; padding:30px 20px; font-size:16px; text-align:center; color:#fff; background:#000; border-radius:5px; animation:bounce 2s ease-in-out forwards; animation-iteration-count:infinite; position:relative; }
a.button:hover { background:#000; color:#fff; }
@media screen and (max-width:768px) {
   a.button { width:100%; margin:15px auto 0 auto; }
}

a.button_blue { display:block; width:100%; margin:15px auto 0 auto; padding:10px 10px; font-size:16px; text-align:center; color:#fff; background:#027bff; border-radius:5px; animation:bounce 2s ease-in-out forwards; animation-iteration-count:infinite; position:relative; }
a.button_blue:hover { background:#027bff; color:#fff; }
@media screen and (max-width:768px) {
   a.button_blue { width:100%; margin:10px auto 0 auto; }
}

a.button_green { display:block; width:100%; margin:15px auto 0 auto; padding:10px 10px; font-size:16px; text-align:center; color:#fff; background:#03c100; border-radius:5px; animation:bounce 2s ease-in-out forwards; animation-iteration-count:infinite; position:relative; }
a.button_green:hover { background:#03c100; color:#fff; }
@media screen and (max-width:768px) {
   a.button_green { width:100%; margin:10px auto 0 auto; }
}



/*--------------------------------------------------------------------------------
 *
 * グローバルナビ
 *
--------------------------------------------------------------------------------*/
.site-header { height:65px; display:flex; align-items:center; position:fixed; width:100%; z-index:100; background:rgba(255,255,255,0); transition:background-color 0.4s ease, box-shadow 0.4s ease, backdrop-filter 0.4s ease; }
.site-header.is-scrolled,
.site-header:has(.header-nav-area.is-open) { background:rgba(255,255,255,0.92); box-shadow:0 2px 12px rgba(0,0,0,0.06); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.header-logo { display:flex; align-items:center; gap:10px; padding-left:20px; flex-shrink:0; }
.header-logo a { display:block; flex-shrink:0; }
.header-logo img { width:260px; display:block; }
.site-title { margin:0; font-size:11px; font-weight:normal; line-height:1.2; color:#3c375a; white-space:nowrap; }
@media (max-width: 768px) {
  .header-logo { display:flex; align-items:center; gap:10px; flex-shrink:0; padding-left:0; padding-top:12px; }
  .header-logo a { display:block; line-height:1; }
  .header-logo img { width:150px; height:auto; display:block; }
  .site-title {font-size:10px; line-height:1; position:absolute; top:12px; left:18px }
}
.header-nav-area { flex:1; display:flex; justify-content:flex-end; padding:0 16px; }
.global-nav { display:flex; flex-direction:column; align-items:flex-end; gap:0;
font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif;font-feature-settings:"palt"; letter-spacing:0.03em; line-height:1.8; font-weight:400; }
.main-menu,
.sub-menu { display:flex; align-items:center; margin:0; padding:0; list-style:none; }
.main-menu { gap:17px; line-height:1; }
.sub-menu { gap:12px; line-height:1; margin-top:6px; }
.main-menu a { font-size:13px; font-weight:bold; line-height:1; color:#333; }
.sub-menu a { font-size:10px; font-weight:normal; line-height:1; color:#333; }
.sub-menu li { display:flex; align-items:center; gap:6px; }
.sub-menu li::before { content:""; display:block; width:0; height:0; border-left:5px solid #ccc; border-top:3px solid transparent; border-bottom:3px solid transparent; }
.main-menu a:hover,
.sub-menu a:hover { opacity:0.7; }
.header-button { width:116px; height:40px; display:flex; align-items:center; justify-content:center; background:transparent; color:#3c375a; font-size:13px; font-weight:normal; line-height:1; white-space:nowrap; border:1px solid #3c375a; margin-right:10px }
.header-button:hover { opacity:0.85; }


/*--------------------------------------------------------------------------------
 *
 * FV
 *
--------------------------------------------------------------------------------*/

.first-view { position:relative; width:100%; height:530px; overflow:hidden; display:flex; justify-content:center; align-items:center; background:url(img/fv_bg.png) no-repeat 50% 0; }
.first-view-inner { position:relative; z-index:10; width:1000px; height:auto; }
@media (max-width: 768px) {
  .first-view { align-items:start; width:100%; height:auto; margin:0; padding:0; background:none; }
  .first-view-inner picture { display:block; }
  .first-view-inner img { width:100%; height:auto; object-fit:cover; object-position:center center; display:block; }
}



/*--------------------------------------------------------------------------------
 *
 * section
 *
--------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
 * all
--------------------------------------------------------------------------------*/
main#lp {  }
main#lp .inner { max-width:1080px; width:calc(100% - 40px); margin:0 auto; }
main#lp h2 { font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-feature-settings:"palt"; letter-spacing:0.03em; line-height:1.2; font-weight:400; font-size:40px; text-align:center; margin:0; }
main#lp h2 span.marker { background: linear-gradient( transparent 68%, #eee8e3 68%, #eee8e3 92%, transparent 92%); /* 複数行になった場合にも対応 */-webkit-box-decoration-break: clone;box-decoration-break: clone; }
main#lp p.pre { text-align:center; font-size:26px; margin-top:0; }
main#lp p.pre_pre { text-align:center; font-size:18px; margin-top:26px; }
main#lp .opening p.big { margin-top:30px; line-height:1.4; }
main#lp section { padding:60px 0 }
@media screen and (max-width:768px) {
  main#lp h2 { letter-spacing:0; line-height:1.2; font-size:40px;  }
  main#lp p.pre { font-size:20px; line-height:1.7; }
  main#lp p.pre_pre { font-size:16px; margin-top:20px; }
  main#lp .opening p.big { margin-top:30px; }
  main#lp section { padding:30px 0 }
}

/*--------------------------------------------------------------------------------
 * opening
--------------------------------------------------------------------------------*/
main#lp .opening { padding-bottom:0; background:url(img/opening_bg.jpg) no-repeat 50% 150px; }
main#lp .opening h2 { font-size:50px }
.opening ul.two_col { width:100%; display:flex; justify-content:center;/*中央に配置*/ flex-wrap:wrap;/*折り返す*/ margin-top:30px }
.opening ul.two_col li { width:49%; max-width:100%; margin-top:1%; padding:30px; background:#e6f5f5; text-align:center; font-size:20px; }
.opening ul.two_col li:nth-of-type(odd) { margin-right:0.5%; }
.opening ul.two_col li:nth-of-type(even) { margin-left:0.5%; }
.opening ul.two_col li:nth-of-type(even) { margin-left:0.5%; }
@media screen and (max-width:768px) {
    main#lp .opening { padding-bottom:0; background:none; }
    main#lp .opening h2 { font-size:40px }
   .opening ul.two_col li { width:100%; margin-top:3%; padding:15px; font-size:16px; }
   .opening ul.two_col li:nth-of-type(odd) { margin-right:0%; }
   .opening ul.two_col li:nth-of-type(even) { margin-left:0%; }
}

/*--------------------------------------------------------------------------------
 * worry
--------------------------------------------------------------------------------*/
main#lp .worry { padding-top:200px }
main#lp .worry h2 { font-size:100px; color:#449c9d; }
main#lp .worry h2 span.small { font-size:60px }
main#lp .worry h2 span.marker { background: linear-gradient( transparent 68%, #fff 68%, #fff 92%, transparent 92%); /* 複数行になった場合にも対応 */-webkit-box-decoration-break: clone;box-decoration-break: clone; }
@media screen and (max-width:768px) {
  main#lp .worry { padding-top:140px }
  main#lp .worry h2 { font-size:70px; }
  main#lp .worry h2 span.small { font-size:40px }
}

.worry li { background:#fff }

.problem-list { margin:0; padding:0; list-style:none; background-color:#edf9fa; margin-top:30px }
.problem-list li { position:relative; display:flex; align-items:center; min-height:175px; padding:32px 300px 32px 220px; overflow:hidden; background-color:#fff; border-radius:20px; }
/* 項目間の水色部分 */
.problem-list li:not(:last-child) { margin-bottom:24px; }
/* 左側のくしゃくしゃアイコン */
.problem-list li::before { content:""; position:absolute; top:50%; left: 30px; width:160px; height:160px; transform:translateY(-50%); background-image:url(img/kusyagusya.svg); background-repeat:no-repeat; background-position:center; background-size:contain; }
/* 右側の薄い歯科医師写真 */
.problem-list li:nth-child(1)::before { background-image:url(img/problem_icon01.png); }
.problem-list li:nth-child(2)::before { background-image:url(img/problem_icon02.png); }
.problem-list li:nth-child(3)::before { background-image:url(img/problem_icon03.png); }
.problem-list li::after { content:""; position:absolute; top:0; right:0; width:330px; height:100%; background-image:url(img/ishi.png); background-repeat:no-repeat; background-position:center; background-size:cover; opacity:0.4;
/* 写真の左側を徐々に透明にする */
  -webkit-mask-image: linear-gradient( to right, transparent 0%, rgba(0, 0, 0, 0.4) 25%, #000 60%, #000 100% );
  mask-image:linear-gradient( to right, transparent 0%, rgba(0, 0, 0, 0.4) 25%, #000 60%, #000 100%);
  pointer-events:none; }
.problem-list li:nth-child(2)::after { background-image:url(img/ishi02.png); }
.problem-list li:nth-child(3)::after { background-image:url(img/ishi03.png); }
.problem-list__text { position:relative; z-index:1; font-size: 20px; font-weight: 400; line-height: 1.9; letter-spacing: 0.01em; color: #111; }
/* 最後の強調文 */
.problem-list__text strong { display:block; font-size:22px; font-weight:700; line-height:1.7;}
@media screen and (max-width: 768px) {
  .problem-list li { display:block; min-height:auto; padding:180px 20px 28px; }
  .problem-list li:not(:last-child) { margin-bottom:12px; }
  .problem-list li::before { top:22px; left:0%; right:0%; margin:0 auto; display:block; width:160px; height:160px; transform:none; }
  .problem-list li::after { width:55%; opacity:0.07; }
  .problem-list__text { font-size:15px; line-height:1.8; }
  .problem-list__text strong { margin-top:2px; font-size:17px; line-height:1.65; }
}

.box { --accent-color:#3f9fa1; --border-color:#c7e5e6; --line-color:#e3e3e3; width:100%; margin:30px auto 0 auto; padding:30px; background:#fff; box-sizing:border-box; }
.box h3 { position:relative; display:block; margin:0 0 20px; padding:0 0 0 56px; color:#3f9fa1; font-size:26px; font-weight:400; line-height:1.5; letter-spacing:.01em;  }
.box h3 strong { font-weight:700; }
.box h3::before { content:""; position:absolute; top:50%; left:8px; width:32px; height:32px; border:3px solid var(--accent-color); border-radius:50%; box-sizing:border-box; transform:translateY(-50%); }
.box h3::after { content:""; position:absolute; top:50%; left:17px; width:20px; height:10px; border-left:3px solid var(--accent-color); border-bottom:3px solid var(--accent-color); box-sizing:border-box; transform:translateY(-70%) rotate(-45deg); }
.box ul { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); column-gap:20px; row-gap:0; margin:0; padding:0; list-style:none; }
.box ul li { position:relative; display:flex; align-items:center;padding:18px 10px 18px 54px; border-bottom:1px solid #e6e6e6; box-sizing:border-box; color:#111; font-size:16px; font-weight:400; line-height:1.6; }
.box ul li:nth-child(1) { grid-column:1; grid-row:1; }
.box ul li:nth-child(2) { grid-column:1; grid-row:2; }
.box ul li:nth-child(3) { grid-column:1; grid-row:3; }
.box ul li:nth-child(4) { grid-column:2; grid-row:1; }
.box ul li:nth-child(5) { grid-column:2; grid-row:2; }
.box ul li:nth-child(6) { grid-column:3; grid-row:1; }
.box ul li:nth-child(7) { grid-column:3; grid-row:2; }
.box ul li::before { content:""; position:absolute; top:50%; left:8px; width:32px; height:32px; border:2px solid var(--accent-color); border-radius:50%; box-sizing:border-box; transform:translateY(-50%); }
.box ul li::after { content:""; position:absolute; top:50%; left:17px; width:20px; height:10px; border-left:2px solid var(--accent-color); border-bottom:2px solid var(--accent-color); box-sizing:border-box; transform:translateY(-70%) rotate(-45deg); }

@media screen and (max-width:768px) {
  .box { width:100%; padding:32px 20px 24px; }
  .box h3 { align-items:flex-start; gap:12px; margin-bottom:22px; font-size:22px; line-height:1.55; }
  .box h3::before { width:28px; height:28px; margin-top:4px; background-position:8px 6px; background-size:20px 15px; }
  .box ul { display:block; }
  .box ul li { min-height:70px; padding:14px 0 14px 44px; font-size:16px; }
  .box ul li:nth-child(n) { grid-column:auto; grid-row:auto; }
  .box ul li::before { left:2px; width:28px; height:28px; }
  .box ul li::after { left:10px; width:18px; height:9px; }
}

/*--------------------------------------------------------------------------------
 * switch
--------------------------------------------------------------------------------*/
main#lp .switch { padding-bottom:0; }
.switch h2 img { width:860px; margin:0 auto; }
@media screen and (max-width:768px) {
  main#lp .switch { padding-bottom:20px; }
}



/*--------------------------------------------------------------------------------
 * reason
--------------------------------------------------------------------------------*/
main#lp .reason { padding-top:0; counter-reset:feature-number;}
.reason .switch_box { background:#fff; position:relative; margin-top:-50px; border-radius:20px; padding-top:60px; }
@media screen and (max-width:768px) {
  .reason .switch_box { width:98%; margin:-25px auto 0 auto; border-radius:10px; padding:5px 15px 0 15px; }
}

/* リボン */
main#lp .ribbon { text-align:center; margin-bottom:30px; font-size:16px }
main#lp .ribbon span { background:#0050ac; color:#fff; padding:20px 40px; border-radius:10px }
@media screen and (max-width:768px) {
  main#lp .ribbon { text-align:center; margin-bottom:20px; font-size:14px; line-height:1 }
  main#lp .ribbon span { padding:20px; border-radius:5px; padding:10px 20px;}
}
main#lp .reason h2 { font-size:100px; color:#0050ac; }
main#lp .reason h2 span.small { font-size:40px; color:#333333; }
main#lp .reason h2 span.marker { background: linear-gradient( transparent 68%, #f5eee9 68%, #f5eee9 92%, transparent 92%); /* 複数行になった場合にも対応 */-webkit-box-decoration-break: clone;box-decoration-break: clone; }
@media screen and (max-width:768px) {
  main#lp .reason h2 { font-size:80px; }
  main#lp .reason h2 span.small { font-size:40px; }
}


.reason dl.two_col { margin-top:60px; }
.reason dl.two_col dt img { border-radius:10px; }
.reason dl.two_col dd h3 { font-size:30px; font-weight:normal; position:relative; padding-left:82px; }
.reason dl.two_col dd h3 span { font-weight:bold; color:#0050ac; }
.reason dl.two_col dd h3:before { content:"01" }
/* 01、02、03 */
.reason dl.two_col dd h3::before { counter-increment:feature-number; content:counter(feature-number, decimal-leading-zero); position:absolute; top:30px; left:16px; color:#f15a24; font-size:30px; font-weight:400; line-height:1; letter-spacing:0.02em; }
.reason dl.two_col dd p { margin-top:20px; }
@media screen and (max-width:768px) {
  .reason dl.two_col dd h3 { font-size:22px; padding-left:50px; }
  .reason dl.two_col dd h3::before { top:22px; left:10px; font-size:20px; }

  .reason dl.two_col dd { margin-top:20px }

}

.doctor-profile { position:relative; display:grid; grid-template-columns:35% 65%; align-items:end; width:100%; margin:80px auto 0; background:#f4ede8; border-radius:20px; box-sizing:border-box; }
.doctor-profile_photo { position:relative; align-self:stretch; }
.doctor-profile_photo img { position:absolute; left:5%; bottom:0; width:95%; max-width:560px; height:auto; max-height:680px; object-fit:contain; object-position:left bottom; }
.doctor-profile_content { padding:40px 80px 60px 20px; box-sizing:border-box; }
.doctor-profile_position { margin:0 0 25px; color:#111; font-size:21px; font-weight:400; line-height:1.6; }
.doctor-profile_name { display:flex; align-items:baseline; gap:38px; margin-bottom:10px; }
.doctor-profile_name h3 { margin:0; color:#0058b4; font-size:52px; font-weight:700; line-height:1.3; letter-spacing:.04em; }
.doctor-profile_name p { margin:0; color:#0058b4; font-size:20px; font-weight:700; line-height:1.4; }
.doctor-profile_text { margin:0; color:#111; font-size:16px; font-weight:400; line-height:2; }
.doctor-profile_history { margin:0; padding:0; }
.doctor-profile_history div { display:grid; grid-template-columns:140px 1fr; align-items:center; }
.doctor-profile_history dt { margin:0; padding:18px; color:#0058b4; font-size:14px; font-weight:700; line-height:1.5; border-bottom:2px solid #0058b4; box-sizing:border-box; }
.doctor-profile_history dd { margin:0; padding:18px; color:#111; font-size:14px; font-weight:400; line-height:1.5; border-bottom:2px solid rgba(255,255,255,.95); box-sizing:border-box; }

@media screen and (max-width:1000px) {
  .doctor-profile { grid-template-columns:38% 62%; min-height:540px; }
  .doctor-profile_photo { min-height:540px; }
  .doctor-profile_content { padding:45px 35px 45px 10px; }
  .doctor-profile_name { display:block; margin-bottom:20px; }
  .doctor-profile_name h3 { font-size:40px; }
  .doctor-profile_name p { margin-top:5px; font-size:20px; }
  .doctor-profile_text { font-size:17px; line-height:1.9; }
  .doctor-profile_history div { grid-template-columns:130px 1fr; }
  .doctor-profile_history dt { padding:16px 10px; font-size:18px; text-align:center; }
  .doctor-profile_history dd { padding:16px 0 16px 20px; font-size:16px; }
}

@media screen and (max-width:768px) {
  .doctor-profile { display:flex; flex-direction:column; min-height:0; margin-top:30px; border-radius:14px; overflow:hidden; }
  .doctor-profile_photo { width:100%; min-height:0; padding-top:20px; text-align:center; }
  .doctor-profile_photo img { position:relative; left:auto; bottom:auto;width:85%; max-height:none; margin:0 auto; }
  .doctor-profile_content { order:1; width:100%; padding:32px 22px 0; }
  .doctor-profile_position { margin-bottom:14px; font-size:15px; }
  .doctor-profile_name { display:block; margin-bottom:18px; }
  .doctor-profile_name h3 { font-size:34px; }
  .doctor-profile_name p { margin-top:3px; font-size:17px; }
  .doctor-profile_text { margin-bottom:25px; font-size:15px; line-height:1.9; }
  .doctor-profile_history div { display:block; }
  .doctor-profile_history dt { padding:12px 5px; font-size:17px; text-align:left; }
  .doctor-profile_history dd { padding:12px 5px 20px; font-size:14px; line-height:1.7; border-bottom:0; }
}


/*--------------------------------------------------------------------------------
 * 先に決めつけません
--------------------------------------------------------------------------------*/
.kimenai { background:#f7f7f7 }
main#lp .kimenai h2 { font-size:100px; color:#0050ac; margin-top:-30px }
main#lp .kimenai h2 span.small { font-size:60px }
main#lp .kimenai h2 span.marker { background: linear-gradient( transparent 68%, #fff 68%, #fff 92%, transparent 92%); /* 複数行になった場合にも対応 */-webkit-box-decoration-break: clone;box-decoration-break: clone; }
.kimenai .kimenai_box { background:#fff; margin-top:30px; padding:30px 160px; border-radius:20px; }
@media screen and (max-width:768px) {
  main#lp .kimenai h2 { font-size:70px; margin-top:-10px }
  main#lp .kimenai h2 span.small { font-size:30px }
  .kimenai .kimenai_box { margin-top:30px; padding:30px 15px; border-radius:10px; }
}
/*--------------------------------------------------------------------------------
 * 一度、見せてください。
--------------------------------------------------------------------------------*/
main#lp .misete h2 { font-size:60px; color:#0050ac; }
main#lp .misete h2 span.small { font-size:60px }
main#lp .misete h2 span.marker { background: linear-gradient( transparent 68%, #f5eee9 68%, #f5eee9 92%, transparent 92%); /* 複数行になった場合にも対応 */-webkit-box-decoration-break: clone;box-decoration-break: clone; }
@media screen and (max-width:768px) {
  main#lp .misete h2 { font-size:40px; color:#0050ac; }
}

/*--------------------------------------------------------------------------------
 * 当院からのお約束です。
--------------------------------------------------------------------------------*/
main#lp .yakusoku { background:url(img/yakusoku_bg.png) no-repeat 100% 0%, linear-gradient(to right, #f7f0e3 0%, #fffdfb 50%, #f7f0e3 100%); }

/* リボン */
main#lp .yakusoku .ribbon span { background:#917a65; color:#fff;  }
main#lp .yakusoku h2 { font-size:60px; color:#8c6e55; }
main#lp .yakusoku h2 span.small { font-size:40px }
main#lp .yakusoku h2 span.marker { background: linear-gradient( transparent 68%, #fff 68%, #fff 92%, transparent 92%); /* 複数行になった場合にも対応 */-webkit-box-decoration-break: clone;box-decoration-break: clone; }

.promise-list { display:flex; flex-direction:column; gap:16px; margin:40px 0 32px; padding:0; list-style:none; }
.promise-list li { display:flex; align-items:center; gap:32px; padding:28px 36px; border:1px solid #d9cfc3; border-radius:4px; background:#fff; box-sizing:border-box; }
.promise-list li img { flex-shrink:0; width:72px; height:auto; }
.promise-list__text { flex:1; }
.promise-list__text h3 { margin:0 0 8px; color:#9a8060; font-size:20px; font-weight:500; line-height:1.4; }
.promise-list__text p { margin:0; color:#555; font-size:15px; line-height:1.8; }

@media (max-width: 768px) {
  .promise-list li { flex-direction:column; align-items:flex-start; gap:16px; padding:20px; }
  .promise-list li img { margin:0 auto; }
  .promise-list li h3 { font-size:17px; }
  .promise-list li p { font-size:14px; }
}

/*--------------------------------------------------------------------------------
 * 不調を抱えていた方々の声
--------------------------------------------------------------------------------*/
main#lp .voice h2 { font-size:60px; color:#0050ac; }
@media (max-width: 768px) {
  main#lp .voice h2 { font-size:40px; }
}
/*--------------------------------------------------------------------------------
 * 「話を聞いてもらうこと」
--------------------------------------------------------------------------------*/
main#lp .cta { background:#f1f3f5; }
main#lp .cta h2 { font-size:60px; color:#0050ac; }
main#lp .cta h2 span.marker { background: linear-gradient( transparent 68%, #fff 68%, #fff 92%, transparent 92%); /* 複数行になった場合にも対応 */-webkit-box-decoration-break: clone;box-decoration-break: clone; }
@media screen and (max-width:768px) {
  main#lp .cta h2 { font-size:50px; }
}
.cta_box { background:#fff; position:relative; margin:30px 0 30px 0; padding:30px 15px; border-radius:20px }
.cta_box img.hito01 { width:250px; position:absolute; left:50px; bottom:0 }
.cta_box img.hito02 { width:200px; position:absolute; right:50px; bottom:0 }
.cta_box a { width:400px; display:block; margin:10px auto; text-align:center; padding:20px; font-size:20px; font-weight:bold; border-radius:100vh; }
.cta_box a.tel { background:#0050ad; color:#fff; }
.cta_box a.web { background:#ffffff; color:#0050ad; border:1px solid #0050ad; }
.cta_box p.center { font-size:14px }
@media screen and (max-width:768px) {
  .cta_box { margin:100px 0 20px 0 }
  .cta_box a { width:100%; }
  .cta_box img.hito01 { width:120px; top:-90px; left:50px; bottom:0 }
  .cta_box img.hito02 { width:90px; top:-85px; right:50px; bottom:0 }
}



/*--------------------------------------------------------------------------------
 * よくある質問
--------------------------------------------------------------------------------*/
main#lp .faq h2 { font-size:60px; color:#0050ac; }

.faq-item { margin:0 0 16px; padding:24px 32px; border:1px solid #d0d0d0; border-radius:4px; background:#fff; }
.faq-item dt,
.faq-item dd { display:flex; align-items:baseline; gap:16px; margin:0; padding:0; }
.faq-item dd { margin-top:10px; }
.faq-item dt::before { content:"Q"; flex-shrink:0; color:#3a7bd5; font-size:20px; font-weight:700; line-height:1; }
.faq-item dd::before { content:"A"; flex-shrink:0; color:#3a7bd5; font-size:20px; font-weight:700; line-height:1; }
.faq-item dt { color:#111; font-size:18px; font-weight:600; line-height:1.5; }
.faq-item dd p { margin:0; color:#333; font-size:15px; line-height:1.8; }

@media (max-width: 768px) {
  .faq-item { padding:20px; }
  .faq-item dt { font-size:16px; }
  .faq-item dd p { font-size:14px; }
}

/*--------------------------------------------------------------------------------
 * 蒲田駅から歩いて5分です。
--------------------------------------------------------------------------------*/
main#lp .access h2 { font-size:60px; color:#0050ac; }
@media screen and (max-width:768px) {
  main#lp .access h2 { font-size:40px; }
}

.clinic-info { display:flex; gap:40px; margin-top:40px; align-items:flex-start; }

/* 左：基本情報テーブル */
.clinic-info__table { flex:1; border-collapse:collapse; font-size:15px; }
.clinic-info__table tr { border-bottom:1px solid #d0d0d0; }
.clinic-info__table th { width:80px; padding:14px 16px; background:#f1f3f5; color:#0050ac; font-weight:600; font-size:13px; white-space:nowrap; vertical-align:top; border-top:1px solid #0050ac }
.clinic-info__table td { padding:14px 16px; color:#333; line-height:1.7; border-top:1px solid #d0d0d0; }

/* 右：診療時間 */
.clinic-info__hours { flex:1; }
.hours-table { width:100%; border-collapse:collapse; font-size:14px; text-align:center; }
.hours-table thead tr { border-bottom:none; border-top:1px solid #d0d0d0;}
.hours-table th { padding:8px 6px; color:#0050ac; font-weight:600; font-size:13px; border-bottom:1px solid #d0d0d0; }
.hours-table th:first-child { text-align:left; }
.hours-table td { padding:12px 6px; border-bottom:1px solid #e8e8e8; color:#f66818; font-size:16px; }
.hours-table__label { text-align:left; color:#333; font-size:13px; white-space:nowrap; }
.hours-table__label span { display:inline-block; margin-right:6px; color:#0050ac; font-weight:600; }
.hours-table td:nth-child(3),
.hours-table td:nth-child(4),
.hours-table td:nth-child(7),
.hours-table td:nth-child(8) { color:#555; }
.hours-table__note { margin-top:8px; text-align:right; font-size:13px; color:#555; }

@media (max-width: 768px) {
  .clinic-info { flex-direction:column; gap:24px; }
  .clinic-info__table { font-size:14px; }
  .hours-table { font-size:13px; }
}

.map-wrap { position:relative; width:100%; padding-top:45%; margin-top:40px; }
.map-wrap iframe { position:absolute; top:0; left:0; width:100%; height:100%; border:0; }







.section-lead { max-width:720px; margin:0 auto 38px; font-size:16px; line-height:2; }

.opening-section { background:url(images/opening_bg.png) no-repeat 50% 0; background-size:cover; padding:80px 0; text-align:center; }
.opening-section .section-label { color:#c8a96c; }
.opening-section h2 { margin:0 0 0px; font-size:36px; color:#ffffff; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-feature-settings:"palt"; letter-spacing:0.03em; line-height:1.8; font-weight:400; }
.opening-section .section-lead { color:#cfd2e4; margin:10px 0 30px 0; }
.opening-section ul { display:flex; gap:24px; margin:0; padding:0; list-style:none; text-align:center; }
.opening-section li { flex:1; position:relative; padding:24px; border-radius:0; background:transparent; }
.opening-section li::before { content:""; position:absolute; inset:0; z-index:0;
  background:
    linear-gradient(#c8a96c,#c8a96c) top 14px left 14px / 26px 1px no-repeat,
    linear-gradient(#c8a96c,#c8a96c) top 14px left 14px / 1px 26px no-repeat,
    linear-gradient(#c8a96c,#c8a96c) top 14px right 14px / 26px 1px no-repeat,
    linear-gradient(#c8a96c,#c8a96c) top 14px right 14px / 1px 26px no-repeat,
    linear-gradient(#c8a96c,#c8a96c) bottom 14px left 14px / 26px 1px no-repeat,
    linear-gradient(#c8a96c,#c8a96c) bottom 14px left 14px / 1px 26px no-repeat,
    linear-gradient(#c8a96c,#c8a96c) bottom 14px right 14px / 26px 1px no-repeat,
    linear-gradient(#c8a96c,#c8a96c) bottom 14px right 14px / 1px 26px no-repeat,
    url(images/opening_li_bg.png) center/cover no-repeat,
    #f1e8d2;
  filter:url(#washi-torn);
}
.opening-section li > * { position:relative; z-index:1; }
.opening-section li img { width:120px; height:auto; display:block; margin:0 auto; border-radius:0; }
.opening-section li h3 { position:relative; margin:0 0 4px; padding-bottom:24px; font-size:22px; color:#1a2342; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-feature-settings:"palt"; letter-spacing:0.06em; line-height:1.5; font-weight:500; }
.opening-section li h3::after  { content:""; position:absolute; left:50%; bottom:8px; transform:translateX(-50%); width:90px; height:1px; background:#c8a96c; }
.opening-section li h3::before { content:""; position:absolute; left:50%; bottom:5px; width:7px; height:7px; background:#c8a96c; transform:translateX(-50%) rotate(45deg); z-index:1; }
.opening-section li p { margin:0; font-size:14px; line-height:1.95; color:#1a2342; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-feature-settings:"palt"; }
.opening-section .opening-tags { display:block; margin-top:22px; padding-top:16px; font-size:11px; letter-spacing:0.08em; color:#5a527a; border-top:1px solid rgba(200,169,108,0.4); }

@media (max-width: 768px) {
  /* Opening：スマホでは2列グリッド */
  .opening-section ul { display:grid; grid-template-columns:repeat(2, 1fr); gap:14px; width:100%; margin:0; padding:0; list-style:none; }
  .opening-section li { margin:0; padding:20px 14px; }
  .opening-section li img { width:90px; height:auto; display:block; margin:0 auto; }
  .opening-section li h3 { margin:0 0 4px; padding-bottom:20px; font-size:16px; line-height:1.5; }
  .opening-section li h3::after { width:60px; bottom:6px; }
  .opening-section li h3::before { width:6px; height:6px; bottom:3px; }
  .opening-section li p { margin:0; font-size:12px; line-height:1.9; }
}

/* ===== メンバー（我らの布陣）セクション ===== */

.member-section .section-label { margin:0 0 14px; }
.member-section h2 { margin:0 0 20px; font-size:36px; line-height:1.5; }
.member-section .section-lead { margin:0 0 40px; font-size:16px; line-height:2; }
.member-section { padding:80px 0; background:url(images/member_bg.png); text-align:center; }
.member-section .section-inner { max-width:1080px; margin:0 auto; padding:0; }
.member-section .section-label { color:#c8a96c; }
.member-section h2 { font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-feature-settings:"palt"; font-size:36px; margin:0 0 ; font-weight:400; letter-spacing:0.05em; }
.member-list { display:flex; flex-direction:column; gap:24px; margin:0; padding:0; list-style:none; text-align:left; }
.member-card { display:grid; grid-template-columns:180px 1fr; gap:32px; padding:24px; background:#ffffff; border-radius:6px; box-shadow:0 4px 24px rgba(0,0,0,0.05); }
.member-card-photo { width:160px; height:160px;  margin:0 auto; }
.member-card-photo img { width:160px; height:160px; border-radius:100% }
.member-card-info { display:flex; flex-direction:column; }
.member-card-name { margin:0 0 0; padding-bottom:14px; border-bottom:1px solid #e5e7ee; line-height:1.4; }
.member-card-name-jp { font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-size:22px; font-weight:500; color:#1a2342; letter-spacing:0.06em; margin-right:16px; }
.member-card-name-en { font-family:Georgia,"Times New Roman",serif; font-size:14px; color:#7a8094; letter-spacing:0.04em; }
.member-card-fields { display:grid; grid-template-columns:90px 1fr; column-gap:0px; row-gap:0; margin:0; }
.member-card-fields dt,
.member-card-fields dd { margin:0; padding:10px 0; border-bottom:1px solid #e5e7ee; font-size:14px; line-height:1.7; }
.member-card-fields dt { color:#1a2342; font-weight:bold; }
.member-card-fields dd { color:#3a3f55; }
.member-card-link { align-self:flex-end; margin-top:14px; font-size:13px; color:#3c5d99; text-decoration:none; letter-spacing:0.05em; }
.member-card-link span { font-size:10px; margin-left:4px; }
.member-card-link:hover { opacity:0.7; }
@media (max-width: 768px) {
  .member-section { padding:60px 0; }
  .member-section h2 { font-size:24px; margin:0 0 32px; }
  .member-card { grid-template-columns:1fr; gap:20px; padding:20px; }
  .member-card-photo img { }
  .member-card-name { text-align:center; }
  .member-card-name-jp { font-size:18px; display:block; margin-bottom:4px; margin-right:0; }
  .member-card-name-en { font-size:12px; }
  .member-card-fields { grid-template-columns:80px 1fr; column-gap:16px; }
  .member-card-fields dt,
  .member-card-fields dd { padding:10px 0; font-size:13px; }
}

.body-section { position:relative; padding:120px 0 100px; background:#f1e8d2 url(images/bg.png) center/cover fixed; overflow:hidden; }
.body-section .section-inner { display:flex; align-items:flex-start; justify-content:center; gap:90px; position:relative; z-index:2; }
.body-vertical { flex-shrink:0; display:flex; flex-direction:column; align-items:center; padding-top:10px; }
.body-vertical-text { writing-mode:vertical-rl; margin:0; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-feature-settings:"palt"; font-size:34px; color:#1a2342; letter-spacing:0.18em; line-height:1.95; font-weight:500; }
.body-vertical-line { display:block; width:1px; height:60px; background:#c8a96c; margin-top:30px; }
.body-seal { display:inline-block; writing-mode:vertical-rl; margin-top:16px; padding:10px 7px; width:100px }
.body-content { flex:0 1 480px; padding-top:０; }
.body-content p { margin:0 0 28px; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-feature-settings:"palt"; font-size:16px; color:#000; line-height:2; letter-spacing:0.06em; }
.body-content p:last-child { margin-bottom:0; }
.body-watermark { position:absolute; left:0; right:0; bottom:60px; margin:0; text-align:center; font-family:Georgia,"Times New Roman",serif; font-size:60px; color:rgba(200,169,108,0.28); line-height:1.25; letter-spacing:0.02em; font-style:italic; font-weight:400; pointer-events:none; z-index:1; }
@media (max-width: 768px) {
  .body-seal { margin-bottom:20px; }
  .body-section .section-inner { display:block; }
  .body-section .section-inner > img { width:100%; height:260px; margin-bottom:28px; }
  .body-section .section-inner > div > p { font-size:15px; line-height:1.9; }
  .body-section .section-inner > div > p.body-vertical-text { font-size:24px; }

}

.service-section { padding:80px 0; background:#ffffff; }
.service-section .section-inner { max-width:1080px; margin:0 auto; padding:0 20px; }
.service-section .section-label { margin:0 0 14px; }
.service-section h2 { margin:0 0 20px; font-size:36px; line-height:1.5; }
.service-section .section-lead { margin:0 0 40px; font-size:16px; line-height:2; }
.service-section dl { display:grid; grid-template-columns:240px 1fr; margin:0; border-top:1px solid #dddddd; border-left:1px solid #dddddd; overflow:hidden; }
.service-section dt,
.service-section dd { margin:0; padding:16px 18px; border-right:1px solid #dddddd; border-bottom:1px solid #dddddd; }
.service-section dt { font-weight:bold; background:#fff; color:#c8a96c; }
.service-section dd { background:#fff; line-height:2; }






footer { padding:5px 10px; text-align:center; }
footer p { margin:0; }
footer small { font-size:12px; }
footer .logo { width:120px; margin:0 auto 30px auto; }
footer address { font-size:12px; text-style:normal; color:#333; letter-spacing:2px; }

.works-section { padding:80px 0; background:#f7f7f7; text-align:center; }
.works-section h2 { margin:0 0 20px; font-size:36px; line-height:1.5; }
.works-section .section-lead { max-width:780px; margin:0 auto 40px; font-size:16px; line-height:2; }
.works-section ul { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; margin:0; padding:0; list-style:none; text-align:left; }
.works-section li { background:#ffffff; border-radius:20px; overflow:hidden; }
.works-section li img { width:100%; height:220px; object-fit:cover; display:block; }
.works-section li h3 { margin:24px 24px 12px; font-size:20px; line-height:1.5; }
.works-section li p { margin:0 24px 28px; font-size:15px; line-height:1.9; }
.flow-section { padding:80px 0; background:#ffffff; text-align:center; }
.flow-section h2 { margin:0 0 20px; font-size:36px; line-height:1.5; }
.flow-section .section-lead { max-width:780px; margin:0 auto 40px; font-size:16px; line-height:2; }
.flow-section ol { display:grid; grid-template-columns:repeat(5, 1fr); gap:18px; margin:0; padding:0; list-style:none; counter-reset:flow-number; text-align:left; }
.flow-section li { position:relative; padding:32px 24px 28px; background:#f7f7f7; border-radius:20px; counter-increment:flow-number; }
.flow-section li::before { content:counter(flow-number, decimal-leading-zero); display:block; margin:0 0 20px; font-size:32px; font-weight:bold; line-height:1; color:#cccccc; }
.flow-section li h3 { margin:0 0 14px; font-size:18px; line-height:1.5; }
.flow-section li p { margin:0; font-size:14px; line-height:1.9; }
.price-section { padding:80px 0; background:#f7f7f7; text-align:center; }
.price-section h2 { margin:0 0 20px; font-size:36px; line-height:1.5; }
.price-section .section-lead { max-width:780px; margin:0 auto 40px; font-size:16px; line-height:2; }
.price-section ul { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; margin:0 0 24px; padding:0; list-style:none; text-align:left; }
.price-section li { padding:36px 28px; background:#ffffff; border-radius:20px; }
.price-section li h3 { margin:0 0 24px; font-size:18px; line-height:1.5; text-align:center; }
.price-section .price { margin:0 0 10px; text-align:center; line-height:1.2; }
.price-section .price strong { font-size:30px; line-height:1; }
.price-section .price span { font-size:14px; font-weight:bold; }
.price-section li small { display:block; text-align:center; font-size:12px; line-height:1.8; color:#666666; }
.price-section li p { margin:0 0 18px; font-size:15px; line-height:1.9; }
.price-section li p:last-child { margin-bottom:0; }
.price-section .section-inner > p:last-child { margin:0; }
.price-section .section-inner > p:last-child small { font-size:12px; line-height:1.8; color:#666666; }


.cta-section { padding:80px 0; background:url(images/cta_bg.png) no-repeat 50% 100%; color:#ffffff; text-align:center; }
.cta-section .section-label { color:#c8a96c; }
.cta-section h2 { margin:0 0 20px; font-size:36px; line-height:1.5; }
.cta-section .section-lead { max-width:780px; margin:0 auto 36px; font-size:16px; line-height:2; color:#cfd2e4; }
.cta-section a { display:inline-block; width:100%; padding:18px 36px; color:#222222; font-size:16px; font-weight:normal; text-decoration:none;
font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-feature-settings:"palt"; letter-spacing:0.06em;
color:#fff; border:1px solid #fff }
.cta-section a:hover { opacity:0.8; }
.cta-section small { display:block; margin:20px 0 0; font-size:12px; line-height:1.8; color:#cccccc; }

/* ===== 第13章：レスポンシブ対応 修正版 ===== */
@media (max-width: 768px) {
  .section-inner { width:calc(100% - 32px); max-width:none; margin:0 auto; }
  .opening-section,
  .service-section,
  .works-section,
  .flow-section,
  .price-section,
  .cta-section,
  .body-section { padding-top:48px; padding-bottom:48px; }
  .opening-section h2,
  .service-section h2,
  .works-section h2,
  .flow-section h2,
  .price-section h2,
  .cta-section h2,
  .body-section h2 { font-size:28px; line-height:1.5; }
  .section-lead { margin-bottom:32px; font-size:15px; line-height:1.9; }
  /* Header */
  .site-header { height:auto; padding:14px 0; }
  .site-header .section-inner { display:block; }
  .site-title img { max-height:36px; }
  .site-nav ul { display:flex; justify-content:center; flex-wrap:wrap; gap:10px 16px; margin:0; padding:0; }
  .site-nav a { font-size:11px; }

  /* Service */
  .service-section .section-inner { padding-left:0; padding-right:0; }
  .service-section dl { display:block; width:100%; }
  .service-section dt,
  .service-section dd { width:100%; margin:0; padding:18px 20px; border-right:1px solid #dddddd; }
  /* Works */
  .works-section ul { display:grid; grid-template-columns:1fr; gap:20px; width:100%; margin:0; padding:0; }
  .works-section li img { height:220px; }
  /* Flow */
  .flow-section ol { display:grid; grid-template-columns:1fr; gap:20px; width:100%; margin:0; padding:0; }
  .flow-section li { padding:28px 24px; }
  /* Price */
  .price-section ul { display:grid; grid-template-columns:1fr; gap:20px; width:100%; margin:0 0 24px; padding:0; }
  .price-section li { padding:32px 24px; }

}
/* ========================================
   第14章：スマホ用ハンバーガーメニュー
   ======================================== */
/* PCではハンバーガーボタンを非表示 */
.menu-toggle { display:none; }
/* PC用：header-nav-areaの中でナビとボタンを横並びにする */
.header-nav-area { display:flex; align-items:center; margin-left:auto; padding:0; }
.header-nav-area .global-nav { margin-right:30px; }
.header-nav-area .header-button { display:flex; justify-content:center; align-items:center; }
/* スマホ表示 */
@media (max-width: 768px) {
  .site-header { z-index:1000; display:flex; align-items:center; justify-content:space-between; height:65px; padding:0 16px; box-sizing:border-box; }
  .menu-toggle { display:flex; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:0; border:none; border-radius:8px; background:transparent; cursor:pointer; flex-shrink:0; }
  .menu-toggle span { display:block; width:22px; height:2px; margin:0 auto; background:#333333; transition:transform 0.3s cubic-bezier(0.4,0,0.2,1), opacity 0.2s ease; }
  .menu-toggle.is-open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .menu-toggle.is-open span:nth-child(2) { opacity:0; }
  .menu-toggle.is-open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .header-nav-area { display:none; position:absolute; top:65px; left:0; width:100%; padding:0 16px 20px; box-sizing:border-box; background:#f7f7f7; z-index:1001; box-shadow:0 8px 20px rgba(0, 0, 0, 0.08); }
  .header-nav-area.is-open { display:block; }
  .header-nav-area .global-nav { margin-right:0; }
  .main-menu,
  .sub-menu { display:block; width:100%; margin:0; padding:0; }
  .main-menu li,
  .sub-menu li { display:block; border-bottom:1px solid #e3e3e3; }
  .main-menu a,
  .sub-menu a { display:block; padding:22px 0; font-size:13px; font-weight:500; line-height:1.5; text-align:center; }
  .sub-menu { margin-top:0; }
  .sub-menu li { gap:0; }
  .sub-menu li::before { display:none; }
  .header-nav-area .header-button { width:100%; max-width:none; height:56px; margin-top:20px; font-size:14px; }
}
/* 固定ページ */
.page-main { padding-top:60px; padding-bottom:60px; }
.page-content { max-width:800px; margin:0 auto; }
.page-title { margin-bottom:32px; font-size:32px; line-height:1.5; text-align:center; }
.page-body { font-size:16px; line-height:1.9; }
.page-body h2 { margin-top:48px; margin-bottom:20px; padding-bottom:12px; font-size:24px; line-height:1.5; border-bottom:1px solid #ddd; }
.page-body h3 { margin-top:36px; margin-bottom:16px; font-size:20px; line-height:1.5; }
.page-body p { margin-bottom:20px; }
.page-body ul,
.page-body ol { margin-bottom:24px; }
.page-body li { margin-bottom:8px; }
.page-body table { width:100%; margin-top:24px; margin-bottom:24px; border-collapse:collapse; }
.page-body th,
.page-body td { padding:14px 16px; border:1px solid #ddd; text-align:left; vertical-align:top; }
.page-body th { width:30%; background:#F7F7F7; font-weight:700; }


/*--------------------------------------------------------------------------------
 *
 * 問い合わせフォーム
 *
--------------------------------------------------------------------------------*/
dl.form{ width:100%; margin:30px auto 0 auto; }
dl.form dt,dl.form dd { padding:30px 0; }
dl.form dt { clear:left; float:left; width:33%; font-size:14px; border-top:1px solid #ccc; }
dl.form dt:first-child { border-top:0; }
dl.form dd { margin-left:33%; border-top:1px solid #ccc; }
dl.form dt:first-child,
dl.form dt:first-child + dd { border-top:0; }

@media screen and (max-width:768px){
   dl.form{ width:100%; }
   dl.form dt,dl.form dd { padding:0; }
   dl.form dt { clear:both; float:none; width:100%; font-size:14px; border-top:1px solid #ccc; padding:20px 0 10px 0; }
   dl.form dd { margin-left:0%; border-top:none; padding-bottom:20px; }
}

/* ------------------------------プレースホルダーの色・サイズ指定------------------------------　*/
input::-webkit-input-placeholder { color:#999999; font-size:14px; }
input:-moz-placeholder { color:#999999; font-size:14px; }
textarea::-webkit-input-placeholder { color:#999999; font-size:14px; }
textarea:-moz-placeholder { color:#999999; font-size:14px; }

/* ------------------------------コンタクトフォーム７------------------------------　*/
div.wpcf7 { display:block; width:100%; margin:0 auto!important; box-shadow:none; background:transparent; }
div.wpcf7 p { padding:0; margin:0; line-height:2; }
div.wpcf7 input, .wpcf7 textarea , .wpcf7 select { width:100%; border:1px solid #dce5eb; padding:20px; font-size:16px; border-radius:2px; background:#f1f5f7; }
div.wpcf7 textarea { height:215px; }
div.wpcf7 select { height:60px; padding:15px; }
.wpcf7 input:focus, .wpcf7 textarea:focus { border:1px solid #009de1; }
.wpcf7-captchac { border:1px solid #ccc; }
span.wpcf7-list-item { margin:0!important; }

@media screen and (max-width:768px){
   div.wpcf7 { width:100%; }
   div.wpcf7 p { margin:0; }
   div.wpcf7 input, .wpcf7 textarea , .wpcf7 select { padding:10px; }
}

/* ------------------------------エラー個所をわかりやすく表示------------------------------　*/
.wpcf7 .wpcf7-not-valid { background:#ffb6c1; }
.wpcf7 span.wpcf7-not-valid-tip { font-size:80%; }
.wpcf7 .wpcf7-response-output {margin:10px 0 0; padding:8px 35px 8px 14px; text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);
    -webkit-border-radius: 4px; -moz-border-radius:4px; border-radius:4px; }
.wpcf7 .wpcf7-validation-errors { color:#B94A48; background-color:#F2DEDE; border:1px solid #EED3D7;}
.wpcf7 .wpcf7-mail-sent-ok { color:#3A87AD; background-color:#D9EDF7; border:1px solid #BCE8F1;}
/* 必須赤色表示 */
.wpcf7 .required { color: #000000;}
/* 任意緑色表示 */
.wpcf7 .any{ color: #080;}
select { background:#ffffff; border:1px solid #cccccc; border-radius:3px; color:#0C2245; font-size:14px; height:40px; line-height:30px; text-align:left; text-indent:5px; vertical-align:middle; width:100%; }
.hissu{ background:#cd4a38; color:#ffffff; margin:0 0 0 5px; padding:3px 7px; font-weight:bold; border-radius:3px; font-size:10px; }
.nini{ background:#777777; color:#ffffff; margin:0 0 0 5px; padding:3px 7px; font-weight:bold; border-radius:3px; font-size:10px; }

/* ------------------------------送信ボタン------------------------------　*/
div.wpcf7 input[type="submit"] {  }
div.wpcf7 input.wpcf7-submit { -webkit-appearance:none; margin:0 auto; background:none; display:block; font-size:16px; width:100%; height:100px; margin:0 auto; border:2px solid #fff!important; border-radius:5px; color:#fff; background:linear-gradient(-135deg , #b9872d, #70471a); }
div.wpcf7 input.wpcf7-submit:hover { opacity:0.8; transition:.3s ease; }

/* ------------------------------チェックボックスのデザイン------------------------------　*/
input[type=checkbox] { display:none; }
.wpcf7-list-item  { padding:10px 0; }
.wpcf7-list-item-label { position:relative; padding:0 20px 0 45px; top:0px; }
.wpcf7-list-item-label:hover:after { border-color:#dce5eb; }
.wpcf7-list-item-label:after,  .wpcf7-list-item-label:before { position:absolute; content:""; display:block; top:50%; }
.wpcf7-list-item-label:after { left:0px; margin-top:-20px; width:36px; height:36px; border:1px solid #dce5eb; border-radius:3px; background:#f1f5f7; z-index:997; }
.wpcf7-list-item-label:before { left:15px; margin-top:-9px; width:5px; height:9px; border-right:3px solid #c1272d; border-bottom:3px solid #c1272d; transform:rotate(45deg); opacity:0; z-index:998; }
input[type=checkbox]:checked + .wpcf7-list-item-label:before { opacity:1; }

input[type=radio] { display:none; }
input[type=radio] + .wpcf7-list-item-label:after { border-radius:100%!important }
input[type=radio] + .wpcf7-list-item-label:before { border:none; width:10px; height:10px; border-radius:5px; background:#102942; left:14px; margin-top:-6px; }
input[type=radio]:checked + .wpcf7-list-item-label:before { opacity:1; }

@media screen and (max-width:768px){
   .wpcf7-list-item  { padding:10px 0; }
}


/* ===== ブログ一覧 ===== */
/* 非フロントページのヘッダーは常に白半透明（FVがないので透明だと見えない） */
body:not(.home):not(.front-page) .site-header { background:rgba(255,255,255,0.92); box-shadow:0 2px 12px rgba(0,0,0,0.06); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.blog-main { padding-top:65px; }
.blog-hero { padding:50px 0 50px; color:#ffffff; text-align:center; background:#1a2342 url(images/opening_bg.png) no-repeat 50% 0; background-size:cover; }
.blog-hero .section-label { color:#c8a96c; margin-bottom:14px; }
.blog-title { margin:0 0 16px; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-size:36px; font-weight:400; color:#ffffff; letter-spacing:0.06em; }
.blog-lead { margin:0; color:#cfd2e4; font-size:14px; line-height:1.8; }
.blog-list-section { padding:70px 0 90px; position:relative; background:#f1e8d2 url(images/bg.png) center / cover fixed; overflow:hidden; }
.blog-list { display:grid; grid-template-columns:repeat(6, 1fr); gap:32px; margin:0; padding:0; list-style:none; }
.blog-list > li { grid-column:span 2; } /* デフォルト：1/3幅（3列） */
/* 記事数が 2, 5, 8, 11...（=3n+2）の時、最初の2枚を1/2幅に拡張して「2列 + 3列」レイアウト */
.blog-list:has(> :nth-child(3n+2):last-child) > :nth-child(-n+2) { grid-column:span 3; }
.blog-card { background:#ffffff; box-shadow:0 4px 20px rgba(26,35,66,0.08); overflow:hidden; transition:transform 0.3s ease, box-shadow 0.3s ease; }
.blog-card:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(26,35,66,0.12); }
.blog-card-link { display:block; color:inherit; text-decoration:none; }
.blog-card-thumb { aspect-ratio:16/9; overflow:hidden; background:#1a2342; position:relative; }
.blog-card-thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease; }
.blog-card-link:hover .blog-card-thumb img { transform:scale(1.04); }
.blog-card-thumb-placeholder { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(200,169,108,0.4); font-family:"Noto Serif JP",serif; font-size:18px; letter-spacing:0.2em; color:#fff }
.blog-card-info { padding:24px 26px 28px; }
.blog-card-meta { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.blog-card-date { font-family:Georgia,serif; font-size:12px; color:#999; letter-spacing:0.08em; }
.blog-card-cat { padding:3px 10px; background:#c8a96c; color:#ffffff; font-size:10px; font-weight:bold; letter-spacing:0.1em; }
.blog-card-title { margin:0 0 12px; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-size:18px; font-weight:500; color:#1a2342; line-height:1.6; letter-spacing:0.03em; }
.blog-card-excerpt { margin:0; font-size:13px; line-height:1.9; color:#555555; }
.blog-pagination { display:flex; justify-content:center; margin-top:56px; }
.blog-pagination .nav-links { display:flex; gap:8px; }
.blog-pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 14px; background:#ffffff; color:#1a2342; font-family:Georgia,serif; font-size:14px; text-decoration:none; transition:opacity 0.2s ease; }
.blog-pagination .page-numbers.current { background:#1a2342; color:#ffffff; }
.blog-pagination .page-numbers:not(.current):hover { opacity:0.6; }
.blog-empty { text-align:center; padding:80px 0; color:#999; }
@media (max-width: 768px) {
  .blog-hero { padding:60px 0 36px; }
  .blog-title { font-size:24px; }
  .blog-list-section { padding:48px 0 64px; }
  .blog-list { grid-template-columns:1fr; gap:22px; }
  .blog-list > li,
  .blog-list:has(> :nth-child(3n+2):last-child) > :nth-child(-n+2) { grid-column:auto; }
  .blog-card-info { padding:20px 22px 24px; }
  .blog-card-title { font-size:16px; }
}

/* ===== ブログ記事ページ（single） ===== */
.single-main { background:#f5f1e8; padding-top:65px; position:relative; background:#f1e8d2 url(images/bg.png) center / cover fixed; overflow:hidden; }
.single-hero { padding:70px 0 70px; background:#1a2342; color:#ffffff; text-align:center; background:#1a2342 url(images/opening_bg.png) no-repeat 50% 0; background-size:cover; }
.single-meta { display:flex; justify-content:center; align-items:center; gap:12px; margin-bottom:20px; }
.single-date { font-family:Georgia,serif; font-size:13px; color:#cfd2e4; letter-spacing:0.08em; }
.single-cat { padding:3px 10px; background:#c8a96c; color:#ffffff; font-size:11px; font-weight:bold; letter-spacing:0.1em; }
.single-title { max-width:900px; margin:0 auto; padding:0 20px; font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-size:30px; font-weight:500; color:#ffffff; line-height:1.6; letter-spacing:0.05em; }
.single-thumb { max-width:820px; width:calc(100% - 40px); margin:-40px auto 0; padding:0; }
.single-thumb img { width:100%; height:auto; display:block; box-shadow:0 8px 30px rgba(26,35,66,0.15); }
.single-body { padding:60px 0 60px; }
.single-body .section-inner { max-width:820px; padding:60px 56px; background:#ffffff; box-shadow:0 4px 16px rgba(26,35,66,0.06); }
.single-body { font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif; font-size:16px; line-height:2; color:#333333; }
.single-body h2 { margin:48px 0 20px; padding-bottom:14px; font-size:24px; color:#1a2342; border-bottom:1px solid #c8a96c; font-weight:500; letter-spacing:0.03em; }
.single-body h3 { margin:40px 0 16px; font-size:20px; color:#1a2342; font-weight:500; }
.single-body h4 { margin:32px 0 14px; font-size:17px; color:#1a2342; font-weight:bold; }
.single-body p { margin:0 0 22px; }
.single-body a { color:#c8a96c; text-decoration:underline; }
.single-body a:hover { opacity:0.7; }
.single-body ul,
.single-body ol { margin:0 0 24px; padding-left:1.6em; }
.single-body li { margin-bottom:8px; }
.single-body img { max-width:100%; height:auto; margin:24px 0; display:block; }
.single-body blockquote { margin:24px 0; padding:20px 28px; background:#ffffff; border-left:4px solid #c8a96c; color:#555555; font-style:normal; }
.single-body blockquote p:last-child { margin-bottom:0; }
.single-body code { padding:2px 8px; background:#ffffff; border-radius:3px; font-family:Menlo,Consolas,monospace; font-size:13px; color:#c8a96c; }
.single-body pre { margin:24px 0; padding:20px; background:#1a2342; color:#f5f1e8; border-radius:4px; overflow-x:auto; }
.single-body pre code { background:transparent; color:inherit; padding:0; }
.single-body hr { margin:48px 0; border:0; border-top:1px solid #c8a96c; opacity:0.4; }
.single-footer { padding:0 0 80px; background:transparent; }
.single-footer .section-inner { max-width:820px; }
.single-nav { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:40px; }
.single-nav-prev,
.single-nav-next { display:flex; flex-direction:column; padding:24px 22px; background:#ffffff; box-shadow:0 4px 16px rgba(26,35,66,0.06); transition:transform 0.3s ease, box-shadow 0.3s ease; }
.single-nav-prev { text-align:left; align-items:flex-start; }
.single-nav-next { align-items:flex-end; }
.single-nav-prev:hover,
.single-nav-next:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(26,35,66,0.1); }
.single-nav-prev:empty,
.single-nav-next:empty { background:transparent; box-shadow:none; }
.single-nav-next { text-align:right; }
.single-nav-label { font-family:Georgia,serif; font-size:11px; color:#c8a96c; letter-spacing:0.1em; margin-bottom:8px; }
.single-nav-title a { font-family:"Noto Serif JP",serif; font-size:14px; color:#1a2342; line-height:1.6; text-decoration:none; }
.single-back { display:block; max-width:240px; margin:0 auto; padding:14px 24px; text-align:center; background:#1a2342; color:#ffffff; font-size:13px; letter-spacing:0.08em; text-decoration:none; transition:opacity 0.2s ease; }
.single-back:hover { opacity:0.8; }

@media (max-width: 768px) {
  .single-hero { padding:60px 0 50px; }
  .single-title { font-size:20px; }
  .single-thumb { margin-top:-24px; }
  .single-body { padding:40px 0 40px; font-size:15px; }
  .single-body .section-inner { padding:36px 24px; }
  .single-body h2 { font-size:20px; margin:36px 0 16px; }
  .single-body h3 { font-size:17px; margin:30px 0 12px; }
  .single-nav { grid-template-columns:1fr; gap:12px; margin-bottom:32px; }
  .single-nav-next { text-align:left; }
  .single-footer { padding:0 0 60px; }
}


/*--------------------------------------------------------------------------------
 * contact / access（ご予約ページ）※追記のみ・既存ルールは変更しない
 * このページは main#lp を使わないため、幅・見出し・pを個別に定義する
--------------------------------------------------------------------------------*/

/* ===== 共通：innerの横幅・中央寄せ（main#lp .inner の代替）===== */
.contact .inner,
.access .inner { max-width:1080px; width:calc(100% - 40px); margin:0 auto; }

/* ===== contactセクション ===== */
.contact { padding:80px 0 40px; } /* 固定ヘッダー65px分を上に確保 */
@media screen and (max-width:768px){ .contact { padding:30px 0 10px; } }

/* h2：強調・センター（ベースは濃紺、キーワードのspanを青+マーカーで強調）*/
.contact h2 {
  font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif;
  font-feature-settings:"palt"; letter-spacing:0.03em;
  font-size:40px; font-weight:400; line-height:1.5; text-align:center;
  color:#1a2342; margin:0;
}
.contact h2 span { color:#0050ac; font-weight:700; position:relative; z-index:0; }
.contact h2 span::after {
  content:""; position:absolute; left:-2px; right:-2px; bottom:6px; height:8px;
  background:#eee8e3; z-index:-1; /* 既存 h2 span.marker と同じベージュで統一 */
}
@media screen and (max-width:768px){ .contact h2 { font-size:24px; } }

/* p：デフォルトは左寄せ（base p の 20px/margin-top:2em を上書き）*/
.contact p { font-size:18px; line-height:1.9; text-align:left; color:#333; margin-top:10px; }
.contact p:first-child { margin-top:0; }

/* p.lead：h2直下の中央寄せリード（既存の p.contact もそのまま効くよう併記）*/
.contact p.lead,
.contact p.contact { font-size:16px; line-height:1.8; text-align:center; color:#666;  }

/* p.tc：任意の段落を中央寄せにしたい時に付ける汎用クラス */
.contact p.tc { text-align:center; }

@media screen and (max-width:768px){
  .contact p,
  .contact p.lead,
  .contact p.contact { font-size:14px; }
}

/* 予約フォームの枠 */
#booking_form { margin-top:40px; }
#booking_form .form { background:#fff; border:1px solid #dce5eb; border-radius:12px; padding:20px; }
@media screen and (max-width:768px){ #booking_form .form { padding:15px 14px; } }

/* 電話予約ブロック */
.tel_bottom { margin-top:48px; text-align:center; }
.tel_bottom > p { font-size:16px; line-height:1.8; color:#333; margin:0 0 12px; text-align:center; }
.tel_bottom ul { display:flex; justify-content:center; margin:0; padding:0; list-style:none; }
.tel_bottom a.tel { display:inline-block; min-width:340px; padding:18px 28px; font-size:24px; font-weight:bold; letter-spacing:.04em; color:#fff; background:#0050ad; border-radius:100vh; }
.tel_bottom a.tel:hover { color:#fff; opacity:.85; }
@media screen and (max-width:768px){
  .tel_bottom { margin-top:32px; }
  .tel_bottom a.tel { min-width:0; width:100%; padding:16px 20px; font-size:20px; }
}

/* ===== accessセクション（main#lp を失う分を個別補完）===== */
.access { padding:60px 0; }
@media screen and (max-width:768px){ .access { padding:30px 0; } }

.access p.pre { text-align:center; font-size:26px; margin-top:0; line-height:1.7; color:#333; }
.access h2 {
  font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif;
  font-feature-settings:"palt"; letter-spacing:0.03em;
  font-size:60px; font-weight:400; line-height:1.2; text-align:center; color:#0050ac; margin:0;
}
.access h2 span.marker {
  background:linear-gradient(transparent 68%, #f5eee9 68%, #f5eee9 92%, transparent 92%);
  -webkit-box-decoration-break:clone; box-decoration-break:clone;
}
@media screen and (max-width:768px){
  .access p.pre { font-size:20px; }
  .access h2 { font-size:40px; }
}


/*--------------------------------------------------------------------------------
 * thanks（お問合せ完了ページ）※追記のみ・既存ルールは変更しない
 * main#lp を使わないため、幅・見出し・pを個別に定義する
--------------------------------------------------------------------------------*/

/* innerの横幅・中央寄せ（main#lp .inner の代替）*/
.thanks .inner { max-width:1080px; width:calc(100% - 40px); margin:0 auto; }

/* セクション余白（固定ヘッダー65px分を上に確保）*/
.thanks { padding:80px 0 40px; text-align:center; }
@media screen and (max-width:768px){ .thanks { padding:70px 0 30px; } }

/* h2：強調・センター（contactと同じ配色・マーカー）*/
.thanks h2 {
  font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho",serif;
  font-feature-settings:"palt"; letter-spacing:0.03em;
  font-size:40px; font-weight:400; line-height:1.5; text-align:center;
  color:#1a2342; margin:0;
}
.thanks h2 span { color:#0050ac; font-weight:700; position:relative; z-index:0; }
.thanks h2 span::after {
  content:""; position:absolute; left:-2px; right:-2px; bottom:6px; height:8px;
  background:#eee8e3; z-index:-1;
}
@media screen and (max-width:768px){ .thanks h2 { font-size:24px; } }

/* p.lead：お礼本文（中央寄せ・段落ごとに間隔）*/
.thanks p.lead { font-size:16px; line-height:2; text-align:center; color:#333; margin-top:32px; }
.thanks p.lead:first-of-type { margin-top:40px; }
@media screen and (max-width:768px){
  .thanks p.lead { font-size:14px; margin-top:24px; }
  .thanks p.lead:first-of-type { margin-top:28px; }
}

/* 電話ブロック */
.thanks .tel_bottom { margin-top:56px; text-align:center; }
.thanks .tel_bottom h3 {
  font-size:20px; font-weight:700; color:#1a2342; line-height:1.5; margin:0 0 16px;
}
.thanks .tel_bottom ul { display:flex; justify-content:center; margin:0; padding:0; list-style:none; }
.thanks .tel_bottom a.tel {
  display:inline-block; min-width:340px; padding:18px 28px;
  font-size:24px; font-weight:bold; letter-spacing:.04em;
  color:#fff; background:#0050ad; border-radius:100vh;
}
.thanks .tel_bottom a.tel:hover { color:#fff; opacity:.85; }
@media screen and (max-width:768px){
  .thanks .tel_bottom { margin-top:40px; }
  .thanks .tel_bottom h3 { font-size:17px; }
  .thanks .tel_bottom a.tel { min-width:0; width:100%; padding:16px 20px; font-size:20px; }
}