/*
Theme Name: Rio Dental Clinic
Description: りお歯科クリニック専用オリジナルテーマ（クラシックテーマ / 高速化チューニング済）
Author: 
Version: 1.0.0
*/

/* ==========================================================================
   1. 基礎リセット & 共通変数
   ========================================================================== */
:root{--main-width:32.2314049587vw;--side-width:calc((100% - var(--main-width)) / 2);--nav-text-color:#333;--nav-border-color:rgba(0,0,0,0.08);--c-text-main:#222;--c-text-sub:#444;--c-gold:#d4af37;--c-bg-section:#fff;--c-bg-icon:#fffaf0;--color-gold-text:#c59b27;--color-pink-grad-start:#e02060;--color-pink-grad-end:#eb608f;--color-bg-button:#f2f0eb}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Shippori Mincho","Yu Mincho","YuMincho","Hiragino Mincho ProN","HGS Mincho E",serif;width:100%;min-height:100vh;background-color:#fff;overflow-x:hidden;color:var(--c-text-main);padding-bottom:0;line-height:1.8;font-feature-settings:"palt";text-size-adjust:100%;-webkit-text-size-adjust:100%}
html{font-size:1.3vw;scroll-behavior:smooth}html.is-large-text{font-size:1.6vw!important}
img{width:100%;height:auto;display:block}a{text-decoration:none;color:inherit;transition:opacity .4s ease}a:hover{opacity:.6}ul{list-style:none}
.icon-svg{width:1em;height:1em;fill:currentColor;vertical-align:-.125em}
.l-main img[src*="logo"],.clinic-features img[src*="logo"],.content-section img[src*="logo"]{display:none!important}.l-main footer .footer-logo img{display:block!important}
.new-content-wrapper,.p-h-arrival,.clinic-features,.p-h-brand,footer,.p-visual-banner{content-visibility:auto;contain-intrinsic-size:1px 1000px;contain:content}

/* ==========================================================================
   2. メインレイアウト & 背景
   ========================================================================== */
.l-right-bg{display:none}
@media screen and (min-width:1024px){.l-right-bg{position:fixed;top:0;right:0;width:var(--side-width);height:100vh;z-index:0;overflow:hidden;background:#f2f0eb;display:block;will-change:transform;content-visibility:auto}.l-right-bg::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:url('images/topbgright.webp') center left/cover no-repeat;transform:scale(1.1);animation:bgSlideRight 8s ease-in-out infinite alternate}}
@keyframes bgSlideRight{0%{transform:scale(1.1) translate3d(-3%,0,0)}100%{transform:scale(1.1) translate3d(3%,0,0)}}
.l-main{position:relative;z-index:50;width:var(--main-width);margin:0 auto;background-color:#fff;min-height:100vh;box-shadow:0 0 40px rgba(0,0,0,0.03);margin-top:-30px}
footer{padding:4vw;text-align:center;background:#f9f9f9;font-size:0.8rem;color:#555;position:relative;z-index:10}.footer-logo{width:300px;margin:0 auto 20px}

/* ==========================================================================
   3. グローバルナビゲーション（リンク・余白・アコーディオン最適化済）
   ========================================================================== */
.l-nav-container{position:fixed;top:0;left:0;width:var(--side-width);height:100vh;z-index:1000;padding:4vw 3vw;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;background:transparent;overscroll-behavior:contain}
@media screen and (min-width:1024px){.l-nav-container{background:linear-gradient(135deg,#fffcfd 0%,#fff 50%,#fff0f5 100%);background-size:200% 200%;animation:gradientBG 15s ease infinite}}
@keyframes gradientBG{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.l-nav-container::-webkit-scrollbar{display:none}.nav-logo{margin-bottom:3vw;text-align:center}.nav-logo img{width:80%;margin:0 auto}.g-nav{width:100%;margin-bottom:3vw}.g-nav__item{border-bottom:1px solid var(--nav-border-color);position:relative}

/* ナビメニュー行：ボタンの有無に関わらず左詰め・右押し出しを両立 */
.g-nav__header, .g-nav__label-link {
    display: flex !important;
    align-items: center;
    width: 100%;
    padding: 20px 0 !important;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}
.g-nav__label { display: flex; align-items: baseline; flex: 1; }
.g-nav__label-ja { font-size: 1rem; line-height: 1.2; font-family: "Shippori Mincho", "Yu Mincho", serif; letter-spacing: 0.15em; }
.g-nav__label-en { font-size: 0.45rem; color: #a59b85; font-family: "Shippori Mincho", "Yu Mincho", serif; font-style: normal; letter-spacing: 0.2em; text-transform: uppercase; margin-left: 10px; margin-right: 10px; }

/* アコーディオンボタン */
.accordion-btn{margin-left:auto; width:30px;height:30px;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#a59b85;transition:transform .4s ease;position:relative; flex-shrink: 0;}
.accordion-btn::before{content:"";position:absolute;width:8px;height:8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;top:50%;left:50%;margin-top:-6px;margin-left:-4px;transform:rotate(45deg);transition:transform .4s cubic-bezier(0.22,1,0.36,1)}
.accordion-btn::after{display:none}
.g-nav__item.is-open > .g-nav__header > .accordion-btn::before, .sub-menu__item.is-open > div > .accordion-btn::before {transform:rotate(-135deg); margin-top: -2px;}
.g-nav__item.is-open > .g-nav__header > .accordion-btn{color:#a59b85}

.sub-menu__accordion-trigger { position: relative; display: flex; align-items: center; justify-content: space-between; }
.sub-menu__link--accordion { display: block; border: none !important; padding-right: 1em !important; flex: 1; }
.sub-menu-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease-out}.sub-menu-wrapper>.sub-menu{overflow:hidden;min-height:0}.g-nav__item.is-open .sub-menu-wrapper{grid-template-rows:1fr}.sub-menu{padding-left:1em;background:rgba(255,255,255,0.4)}.sub-menu__item{position:relative}
.sub-menu__link{display:block;padding:0.8vw 0;font-size:0.9rem;color:#333;letter-spacing:0.1em;border-bottom:1px dashed rgba(0,0,0,0.05); transition:all 0.3s ease;}
.sub-menu__link:hover{color:var(--color-gold-text); transform:translateX(5px);}
.sub-sub-menu-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease-out}.sub-sub-menu-wrapper>.sub-menu{overflow:hidden;min-height:0;padding-left:1.5em;background:transparent}.sub-menu__item.is-open .sub-sub-menu-wrapper{grid-template-rows:1fr}
.sub-sub-menu__link{display:block;padding:0.6vw 0;font-size:0.85rem;color:#444; transition:all 0.3s ease;}
.sub-sub-menu__link:hover{color:var(--color-gold-text); transform:translateX(5px);}
.nav-sns{display:flex;gap:1.5vw;justify-content:center;font-size:1.4rem;color:#333;margin-top:2vw}

/* ==========================================================================
   4. メインコンテンツ各種パーツ
   ========================================================================== */
.l-kv{width:100%;position:relative; margin-bottom:0;overflow:hidden;height:auto;min-height:400px}.l-kv__bg-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0}.l-kv__person-img{position:relative;width:100%;height:auto;display:block;z-index:2}.l-kv__text-area{position:relative;z-index:1;width:100%;text-align:center;background:linear-gradient(to top,#fff 40%,rgba(255,255,255,0) 100%);margin-top:-5vw;padding:5vw 2vw 4vw}.l-kv__main{font-size:2.2vw;font-weight:normal;letter-spacing:0.2em;line-height:2.0;margin-bottom:1.0vw;color:#333}.l-kv__sub{font-size:1.1vw;font-weight:normal;letter-spacing:0.15em;opacity:1;color:#333}html.is-large-text .l-kv__main{font-size:2.3vw}html.is-large-text .l-kv__sub{font-size:1.3vw}
.l-section{padding:0}.new-content-wrapper{color:var(--c-text-main);text-align:center;letter-spacing:0.1em;line-height:1.8;padding:5vw 0 2vw;background-color:#fff;position:relative;z-index:20}.section-inner{max-width:90%;margin:0 auto;padding:0 2vw} .section-inner{margin-top:30px;}.content-section{margin-bottom:5vw}.content-section:last-child{margin-bottom:0;padding-bottom:2vw}
.pink-banner{background:linear-gradient(to right,var(--color-pink-grad-start),var(--color-pink-grad-end));color:#fff;padding:0.8em 0;margin-bottom:4vw;font-size:1.1rem;letter-spacing:0.15em;text-align:center;width:100%; font-weight: normal;}
.sp-margin-adjust { margin-top: 3vw; margin-bottom: 3vw; }

.about-section { padding: 8vw 0; margin-top: 6vw; margin-bottom: 6vw; position: relative; overflow: hidden; background: url('images/about_bg.webp') center/cover no-repeat;}
.about-section::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to right, rgba(224, 32, 96, 0.5), rgba(235, 96, 143, 0.5)); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); z-index: 1;}
.about-section .section-inner { position: relative; z-index: 2;}

.large-main-heading{font-size:clamp(1.2rem, 2.0vw, 1.5rem);font-weight:normal;margin-top:0;margin-bottom:1.5vw;line-height:1.4;letter-spacing:0.05em}
.section-title-divider{display:flex;align-items:center;justify-content:center;color:var(--color-gold-text);font-size:0.85rem;margin-top:-0.8vw;margin-bottom:3vw;font-family:serif;font-style:normal;letter-spacing:0.15em;text-transform:uppercase;}.section-title-divider::before,.section-title-divider::after{content:"";height:1px;background-color:#d9d9d9;flex-grow:1;max-width:15%}.section-title-divider::before{margin-right:1.5em}.section-title-divider::after{margin-left:1.5em}
.gold-sub-heading{color:var(--color-gold-text);font-size:1.3rem;margin-bottom:0.5em;font-weight:normal}

.contact-divider { color: #fff !important; }
.contact-divider::before, .contact-divider::after { background-color: rgba(255, 255, 255, 0.4) !important; }
.content-text{display:inline-block;text-align:justify;margin-bottom:3vw;font-size:1rem;max-width:800px;line-height:2.2}.highlight-gold{color:var(--color-gold-text);font-weight:normal;}.note-text{color:var(--color-gold-text);margin-bottom:3vw;line-height:1.6;font-size:0.95rem;word-break:normal;overflow-wrap:break-word}
.gold-button{display:inline-flex;align-items:center;justify-content:center;gap:1em;border:1px solid var(--c-gold);background:linear-gradient(to bottom,#fff,var(--color-bg-button));border-radius:50px;padding:1.0em 3em;color:var(--color-gold-text);text-decoration:none;font-size:1.1rem;transition:all .3s ease;white-space:nowrap;max-width:100%;box-sizing:border-box;font-weight:normal;}.gold-button:hover{background:var(--color-bg-button);opacity:.8}.search-button{padding-right:3em}.search-icon{font-size:1.4rem;color:var(--c-gold)}

/* 装飾バナー */
.p-visual-banner{width:100%;height:350px;position:relative;overflow:hidden;margin-bottom:3vw;box-shadow:0 10px 25px rgba(0,0,0,0.05);clip-path:polygon(0 0,100% 10%,100% 100%,0 90%)}.p-visual-banner__bg{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;transform:scale(1.1);animation:bgSlideHorizontal 20s ease-in-out infinite alternate;will-change:transform}.p-visual-banner__bg--nayami{background-image:url('images/topnayami.webp')}.p-visual-banner__bg--setsubi{background-image:url('images/setsubi.webp')}.p-visual-banner__bg--gaiyou{background-image:url('images/gaiyou.webp')}.p-visual-banner__bg--doctor{background-image:url('images/inchoimg.webp')}
@keyframes bgSlideHorizontal{0%{transform:scale(1.1) translate3d(-3%,0,0)}100%{transform:scale(1.1) translate3d(3%,0,0)}}
.p-visual-banner--gold-line { margin-top: 4vw; }
.p-visual-banner--gold-line::before, .p-visual-banner--gold-line::after { content: ""; position: absolute; left: 0; width: 100%; background: linear-gradient(135deg, #f6e6b4 0%, #e3c574 100%); z-index: 5; pointer-events: none;}
.p-visual-banner--gold-line::before { top: 0; height: 100%; clip-path: polygon(0 0, 100% 10%, 100% calc(10% + 6px), 0 6px); }
.p-visual-banner--gold-line::after { top: 0; height: 100%; clip-path: polygon(0 calc(90% - 6px), 100% calc(100% - 6px), 100% 100%, 0 90%); }
.p-visual-banner--pink-line::before, .p-visual-banner--pink-line::after { content: ""; position: absolute; left: 0; width: 100%; background: linear-gradient(to right, var(--color-pink-grad-start), var(--color-pink-grad-end)); z-index: 5; pointer-events: none;}
.p-visual-banner--pink-line::before { top: 0; height: 100%; clip-path: polygon(0 0, 100% 10%, 100% calc(10% + 6px), 0 6px); }
.p-visual-banner--pink-line::after { top: 0; height: 100%; clip-path: polygon(0 calc(90% - 6px), 100% calc(100% - 6px), 100% 100%, 0 90%); }

/* 2カラムメニュー等 */
.p-h-arrival{padding:10px 6% 4vw}
.p-menu-list{display:grid;grid-template-columns:repeat(2, 1fr);gap:1.5vw;width:100%;}
.p-menu-item{background:#fff;border:1px solid #e5dfd3;border-radius:8px;padding:1.5vw;transition:all .3s ease;box-shadow:0 1px 3px rgba(0,0,0,0.02);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;z-index:1;backface-visibility:hidden;transform:translateZ(0)}
.p-menu-item:hover{border-color:var(--c-gold);box-shadow:0 4px 10px rgba(212,175,55,0.15);transform:translateY(-2px);z-index:100}
.p-menu-item__icon{width:100%;max-width:80px;height:auto;aspect-ratio:1 / 1;margin-bottom:1vw;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.p-menu-item__icon img{width:100%;height:100%;object-fit:contain;transition:transform .6s}
.p-menu-item__titles{width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}
.p-menu-item__title{font-size:1.4vw;color:var(--c-text-main);font-weight:normal;margin-bottom:0.4em;line-height:1.4;white-space:normal;word-break:normal;overflow:visible;letter-spacing:0.02em}
.p-menu-item__sub{display:block;font-size:1.0vw;color:var(--c-gold);font-family:"Shippori Mincho","Yu Mincho",serif;letter-spacing:0.02em;white-space:normal;line-height:1.3;font-weight:normal;}

/* 医院情報テーブル */
.clinic-info-table{width:100%;max-width:600px;margin:1vw auto 3vw;border-collapse:collapse;font-size:0.95rem;text-align:left;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.03)}
.clinic-info-table th,.clinic-info-table td{padding:1.2em 1em;border-bottom:1px solid #eee; font-weight:normal;}
.clinic-info-table th{width:35%;color:var(--color-gold-text);vertical-align:middle;background-color:#fafaf8;border-bottom:1px solid #e5dfd3;border-right:1px solid #eee;word-break:keep-all !important;}
.clinic-info-table td{color:var(--c-text-main);line-height:1.6;font-feature-settings:"palt"}
.clinic-info-table tr:first-child th,.clinic-info-table tr:first-child td{border-top:1px solid #e5dfd3}

.clinic-benefits-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1vw; width: 100%; margin: 3vw auto 0; padding: 0 1vw; box-sizing: border-box; }
.benefit-card { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; padding: 0.8em 0.5em; background: #fff; border: 1px solid #e5dfd3; border-radius: 8px; transition: all .3s ease; box-shadow: 0 1px 3px rgba(0,0,0,0.02); box-sizing: border-box; overflow: hidden; }
.benefit-card:hover { border-color: var(--c-gold); box-shadow: 0 4px 10px rgba(212,175,55,0.15); transform: translateY(-2px); z-index: 100; position: relative; }
.benefit-icon { width: 1.5em; height: 1.5em; color: var(--c-gold); margin-right: 0.4em; flex-shrink: 0; display: flex; align-items: center; justify-content: center; margin-bottom: 0; }
.benefit-icon svg { width: 100%; height: 100%; fill: currentColor; }
.benefit-title { font-size: clamp(0.6rem, 1vw, 0.9rem); color: var(--c-text-main); font-weight: normal; white-space: nowrap; letter-spacing: 0.02em; text-align: left; line-height: 1.4; margin: 0; padding: 0; flex: 1; min-width: 0; }

.values-grid { display: grid; grid-template-columns: 1fr; gap: 2vw; max-width: 800px; margin: 0 auto; width: 100%; }
.value-card { background: #fafaf8; border: 1px solid #e5dfd3; border-radius: 8px; padding: 2vw 3vw; box-shadow: 0 1px 3px rgba(0,0,0,0.02); display: flex; flex-direction: row; align-items: flex-start; transition: all .3s ease; min-width: 0; box-sizing: border-box; text-align: left; }
.value-card:hover { border-color: var(--c-gold); box-shadow: 0 4px 10px rgba(212,175,55,0.15); transform: translateY(-2px); }
.value-num { font-size: 2.5rem; font-family: 'Shippori Mincho', serif; color: var(--color-gold-text); line-height: 1; margin-right: 2vw; margin-bottom: 0; flex-shrink: 0; }
.value-text-wrap { display: flex; flex-direction: column; align-items: flex-start; width: 100%; min-width: 0; }
.value-title { font-size: clamp(1rem, 1.2vw, 1.15rem); color: var(--c-text-main); margin-bottom: 0.5em; font-weight: normal; border-bottom: none; padding-bottom: 0; width: 100%; text-align: left; line-height: 1.4; word-break: normal; overflow-wrap: break-word; }
.value-desc { font-size: clamp(0.85rem, 0.9vw, 0.9rem); line-height: 1.8; color: var(--c-text-sub); text-align: left; margin: 0; word-break: normal; overflow-wrap: break-word; white-space: normal; }

/* ▼ 余白と幅の修正箇所 ▼ */
.results-stats-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; max-width: 800px; padding: 0 4vw; margin: 0 auto 4vw; width: 100%; box-sizing: border-box; }
.results-stat-box { background: #fff; border: 1px solid #e5dfd3; border-radius: 8px; padding: 1.5vw 0.5vw; display: flex; flex-direction: column; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,0.02); min-width: 0; box-sizing: border-box; }
.results-stat-label { font-size: clamp(0.65rem, 0.9vw, 0.85rem); color: var(--c-text-main); margin-bottom: 0.5em; text-align: center; line-height: 1.4; font-weight: normal; word-break: normal; overflow-wrap: break-word; }
.results-stat-value { font-size: clamp(1.1rem, 1.6vw, 1.6rem); color: var(--c-gold); font-family: "Shippori Mincho", serif; font-weight: normal; line-height: 1.2; text-align: center; white-space: nowrap; }

.results-cases-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1vw; max-width: 100%; margin: 0 auto; width: 100%; }
.results-case-btn { display: flex; align-items: center; justify-content: flex-start; background: #fff; border: 1px solid #e5dfd3; border-radius: 8px; padding: 1vw; text-decoration: none; color: var(--c-text-main); font-size: clamp(0.7rem, 0.9vw, 0.9rem); box-shadow: 0 1px 3px rgba(0,0,0,0.02); transition: all .3s ease; min-width: 0; line-height: 1.3; box-sizing: border-box; word-break: normal; overflow-wrap: break-word; }
.results-case-btn:hover { border-color: var(--c-gold); box-shadow: 0 4px 10px rgba(212,175,55,0.15); transform: translateY(-2px); color: var(--color-gold-text); }
.results-case-icon { color: var(--c-gold); width: 1.4em; height: 1.4em; margin-right: 0.6em; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.results-case-icon svg { width: 100%; height: 100%; fill: currentColor; }

.contact-section { padding: 8vw 0; }
.doctor-container { display: flex; flex-wrap: nowrap; align-items: flex-start; justify-content: space-between; gap: 4%; width: 100%; max-width: 850px; margin: 0 auto 5vw; padding: 0 4vw; }
.doctor-text-area { flex: 1; text-align: left; min-width: 0; }
.doctor-photo-area { width: 40%; max-width: 320px; flex-shrink: 0; text-align: right; }
.doctor-photo-area img { width: 100%; height: auto; box-shadow: 0 10px 25px rgba(0,0,0,0.05); display: block; border-radius: 4px; margin-left: auto; }

.p-h-brand{padding:4vw 0 0;text-align:center;background:#fafaf8}.p-h-brand__inner{padding:0 6% 8vw}.p-h-map{width:100%;aspect-ratio:16/9;min-height:400px;position:relative;overflow:hidden;background:#eee;display:block}.p-h-map iframe{width:100%;height:100%;border:0;pointer-events:auto}
.access-sns{display:flex;gap:20px;justify-content:center;font-size:1.5rem;color:var(--c-gold);margin-top:0.5em;margin-bottom:3vw;}

.clinic-features{margin-top:4vw;width:100%}.feature-item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-bottom:0;padding-bottom:2vw;width:100%;gap:0}.feature-img{flex:0 0 50%;width:50%;position:relative;z-index:1;margin:0;height:auto}.feature-img img{width:100%;height:auto;display:block;mix-blend-mode:multiply}.feature-img--private{clip-path:polygon(0 0,100% 5%,100% 100%,0 95%)}.feature-content{flex:0 0 50%;width:50%;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center}.feature-item.item-private .feature-content{padding-left:0;padding-right:2%;align-items:flex-start;text-align:left}.feature-item.item-private .feature-title{border-bottom:1px solid #e5dfd3;width:100%;padding-bottom:0.6em;margin-bottom:1.0em}.feature-item.item-private .feature-title,.feature-item.item-private .feature-sub,.feature-item.item-private .feature-desc{padding-left:20px;padding-right:0}.feature-item.item-auto .feature-content{padding-right:0;padding-left:2%;align-items:flex-start;text-align:left}.feature-item.item-auto .feature-title{border-bottom:1px solid #e5dfd3;width:100%;padding-bottom:0.6em;margin-bottom:1.0em}.feature-item.item-auto .feature-title,.feature-item.item-auto .feature-sub,.feature-item.item-auto .feature-desc{padding-right:20px;text-align:left}.feature-text-inner{max-width:550px;width:100%}.feature-sub{display:block;font-size:0.9rem;color:var(--c-gold);margin-bottom:0.8em;letter-spacing:0.1em;white-space:nowrap}.feature-title{font-size:1.3rem;font-weight:normal;color:var(--c-text-main)}.feature-desc{font-size:0.85rem;line-height:2.2;color:var(--c-text-sub)}
.clinic-features-lead{text-align:center;margin:3vw 0 2vw;font-size:1rem;line-height:1.8}.clinic-features-buttons{display:flex;justify-content:center;gap:2vw;flex-wrap:nowrap;width:100%;max-width:600px;margin:0 auto}

/* フッター */
.footer-info-design{max-width:800px;margin:0 auto;text-align:center;padding-bottom:1vw}.footer-logo-block{margin-bottom:2rem;display:flex;flex-direction:column;align-items:center}.footer-logo-img{width:350px;max-width:80%;margin-bottom:0.5rem}.footer-corp-name{font-size:0.9rem;letter-spacing:0.1em;color:#555;margin-bottom:0.3em;display:block}.footer-clinic-name{font-size:1.6rem;font-weight:normal;letter-spacing:0.1em;color:var(--c-text-main);margin-top:0.2em;display:block;white-space:nowrap;word-break:keep-all}.footer-address-block{font-size:1.0rem;line-height:1.8;margin-bottom:2rem;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:2rem 0;display:inline-block;width:100%}.footer-tel-block{display:flex;flex-direction:column;align-items:center;gap:1.5em;font-family:"Shippori Mincho","Yu Mincho",serif;color:var(--color-gold-text);text-align:center}.tel-rows-wrapper{display:flex;flex-direction:column;align-items:center;margin:0 auto}.footer-tel-row{display:flex;align-items:center;justify-content:center;gap:0.8em;width:auto;text-align:left;font-size:1.6rem}.tel-icon{font-size:1.4rem;display:flex;justify-content:center;align-items:center;padding-top:0}.tel-note-block{display:flex;flex-direction:column;align-items:flex-start}.tel-number{line-height:1.2;white-space:nowrap}.tel-note{font-size:0.8rem;color:#555;margin-top:0.2em;display:block}

/* 文字サイズ切り替え等 */
.font-toggle-container{position:fixed;bottom:20px;right:20px;z-index:20000;background:rgba(255,255,255,0.95);border:1px solid var(--c-gold);border-radius:50px;box-shadow:0 4px 10px rgba(0,0,0,0.1);display:flex;overflow:hidden;transition:bottom .4s ease}
.font-btn{-webkit-appearance:none;appearance:none;padding:10px 15px;font-family:"Shippori Mincho","Yu Mincho",serif;font-size:0.9rem;cursor:pointer;border:none;background-color:transparent;color:#222 !important;transition:all .3s; font-weight:normal;}
.font-btn.is-active{background:linear-gradient(135deg, #f6e6b4 0%, #e3c574 100%);color:#222 !important;box-shadow:inset 0 1px 2px rgba(255,255,255,0.6)}
.font-btn:not(:last-child){border-right:1px solid #eee}

.sp-br{display:none}
.sp-sticky-footer{display:none}
.l-sp-header{display:none}.hamburger-btn{display:none}
.l-kv__person-wrap { position: relative; z-index: 2; margin-top: 80px; }
.first-visit-section { margin-top: -3.5vw; margin-bottom: 5vw; padding: 0; position: relative; z-index: 10;}
.first-visit-section__inner .access-sub-buttons { display: flex; flex-wrap: nowrap !important; gap: 3%; }
.first-visit-section__inner .access-sub-buttons .square-button { white-space: nowrap !important; word-break: keep-all; }
.first-visit-section__inner .access-sub-buttons .square-button--pink,
.first-visit-section__inner .access-sub-buttons .square-button--gold { flex: 1 1 0% !important; width: 100%; }

@media screen and (min-width: 1024px) {
    body::before { content: ""; position: fixed; top: 0; left: 0; width: 100%; height: 10px; background: linear-gradient(to right, var(--color-pink-grad-start), var(--color-pink-grad-end)); z-index: 99999; }
    .nav-sns .icon-svg { fill: url(#nav-gold-grad); }
    .l-kv__text-area { margin-top: 2vw !important; padding-top: 2vw !important; }
}

/* ==========================================================================
   5. レスポンシブ (タブレット・スマホ)
   ========================================================================== */
@media screen and (min-width:768px) and (max-width:1023px){
    html{font-size:2.4vw}html.is-large-text{font-size:2.9vw!important}.l-right-bg{display:none}.l-bg-left{width:40vw}.l-nav-container{position:fixed;top:0;left:0;width:40vw;height:auto;min-height:100vh;padding:4vw 2vw;z-index:100;overflow-y:auto;border-right:1px solid #eee}.l-nav-container *{position:relative;z-index:1}.l-main{width:60vw;margin-left:40vw;margin-top:0;padding-top:0!important;box-shadow:none}.l-kv{display:block;height:auto;min-height:60vh;position:relative}.l-kv__text-area{position:relative;z-index:1;margin-top:-20vw;padding:20vw 4vw 10vw;background:linear-gradient(to top,#fff 40%,rgba(255,255,255,0) 100%);bottom:auto;left:auto;width:100%;text-align:center}.l-kv__main{font-size:3.5vw;margin-bottom:0.5em}.l-kv__sub{font-size:2.0vw}html.is-large-text .l-kv__main{font-size:4.0vw}html.is-large-text .l-kv__sub{font-size:2.3vw}.tel-number,.footer-tel-main{white-space:nowrap}
    .access-sub-buttons .square-button{padding:0.8em 1em;width:48%;min-width:0}
    .p-menu-item__icon{width:100%;max-width:70px;}
    .p-menu-item__title{font-size:1.6vw;letter-spacing:0;}
    .p-menu-item__sub{font-size:1.1vw;letter-spacing:0;}
    .g-nav__label-en { font-size: 0.55vw; }
    .g-nav__label-ja { font-size: 1.4vw; }
}

@media screen and (max-width:767px){
    .g-nav__label-en { font-size: 0.40rem; margin-top: 0.1em; }
    .g-nav__label-ja { font-size: 1.1rem; }
    .sp-margin-adjust { margin-top: 15vw !important; margin-bottom: 12vw !important; }
    .p-visual-banner--gold-line { margin-top: 15vw !important; }
    .contact-section { padding: 15vw 0 !important; }
    .about-section { padding: 15vw 0 !important; margin-top: 15vw !important; margin-bottom: 12vw !important; }
    .large-main-heading { font-size: clamp(1.5rem, 5.5vw, 1.8rem) !important; }
    .section-title-divider { font-size: 0.75rem !important; margin-top: -1.5vw !important; margin-bottom: 6vw !important; letter-spacing: 0.15em !important; }

    html{font-size:4.25vw}html.is-large-text{font-size:5.0vw!important}.l-bg-left,.l-right-bg{display:none!important}.l-main{width:100%;padding-top:0;box-shadow:none;z-index:10;margin-top:0;margin-left:0}.l-kv{display:block;height:auto;position:relative;padding-top:15vw;min-height:auto}
    .l-kv__person-wrap { margin-top: 0 !important; }
    .l-kv__text-area{position:relative;z-index:1;background:linear-gradient(to top,#fff 40%,rgba(255,255,255,0) 100%);margin-top:-32vw;padding:28vw 5vw 0;bottom:auto;left:auto;width:100%}
    .l-kv__main{font-size:7vw;line-height:1.5;margin-bottom:2vw}.l-kv__sub{font-size:4.5vw; margin-bottom: 0;}
    .first-visit-section { margin-top: 5vw !important; margin-bottom: 10vw !important;}
    
    .first-visit-section__inner .access-sub-buttons .square-button { font-size: clamp(0.95rem, 3.5vw, 1.05rem) !important; padding: 1.5em 0.5em !important; }
    .access-sub-buttons .square-button{font-size:clamp(0.95rem, 3.5vw, 1.05rem) !important;padding:1em 0.5em !important;white-space:normal;flex:1 1 45%;min-width:0;}

    .l-nav-container{position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;background:#fff;padding:80px 30px 40px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease,visibility .5s;z-index:9990}.l-nav-container::before{display:none}.l-nav-container.is-active{opacity:1;visibility:visible;transform:translateY(0)}.g-nav__link,.g-nav__label,.g-nav__header{padding:0.6em 0}.access-buttons-area{gap:4vw}.access-google-btn-wrap .gold-button{font-size:0.9rem;padding:0.8em 2em;width:70vw;max-width:260px}
    
    .l-sp-header{display:flex;justify-content:center;align-items:flex-start;position:absolute;top:0;left:0;width:100%;height:auto;padding-top:10px;background:transparent;box-shadow:none;z-index:9999;pointer-events:none;padding-right:70px;box-sizing:border-box}.sp-header__logo img{width:65vw;max-width:380px;height:auto;pointer-events:auto}html.is-large-text .l-kv__main{font-size:8.0vw}html.is-large-text .l-kv__sub{font-size:5.2vw}.hamburger-btn{display:block;position:fixed;top:20px;right:20px;width:50px;height:50px;background:transparent;border:none;cursor:pointer;padding:0;pointer-events:auto;z-index:10000}.hamburger-lines{position:relative;width:28px;height:20px;margin:auto}.hamburger-lines span{position:absolute;width:100%;height:2px;background-color:#333;left:0;transition:all .4s cubic-bezier(0.645,0.045,0.355,1)}.hamburger-lines span:nth-child(1){top:0}.hamburger-lines span:nth-child(2){top:50%;transform:translateY(-50%)}.hamburger-lines span:nth-child(3){bottom:0}.hamburger-btn.is-active .hamburger-lines span:nth-child(1){top:50%;transform:translateY(-50%) rotate(45deg)}.hamburger-btn.is-active .hamburger-lines span:nth-child(2){opacity:0;transform:translateY(-50%) scale(0)}.hamburger-btn.is-active .hamburger-lines span:nth-child(3){bottom:50%;transform:translateY(50%) rotate(-45deg)}
    
    html.is-large-text .footer-clinic-name{font-size:1.3rem}.footer-tel-row{gap:1.0em;justify-content:center}.font-btn{padding:8px 12px;font-size:0.8rem}body{padding-bottom:70px}
    .sp-sticky-footer{display:flex;position:fixed;bottom:0;left:0;width:100%;height:60px;z-index:10000;background:#fff;box-shadow:0 -2px 10px rgba(0,0,0,0.1);transform:translateY(100%);transition:transform .4s ease}
    .sp-sticky-footer.is-visible{transform:translateY(0)}
    html.is-large-text .footer-btn{font-size:0.75rem!important;padding:0 5px}body.has-sticky-footer .font-toggle-container{bottom:80px}.footer-btn{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;font-size:0.9rem;line-height:1.2;color:#fff;text-decoration:none; font-weight:normal;}.btn-first{background:linear-gradient(to right,var(--color-pink-grad-start),var(--color-pink-grad-end))}
    .btn-reserve{background:linear-gradient(135deg, #f6e6b4 0%, #e3c574 100%);color:var(--c-text-main);border-top:none;box-shadow:inset 0 1px 2px rgba(255,255,255,0.6);}
    
    .sp-br{display:block}
    .p-menu-list{grid-template-columns:repeat(2, 1fr);gap:2vw;}
    .p-menu-item{padding:4vw 2vw; min-height:36vw;}
    .p-menu-item__icon{width:100%; max-width:60px; margin-bottom:2vw;}
    .p-menu-item__title{font-size:1.0rem;line-height:1.3;letter-spacing:0;}
    .p-menu-item__sub{font-size:0.85rem;letter-spacing:0;margin-top:0.2em;}
    .l-nav-container .nav-logo{display:none}
    .p-h-arrival { padding-bottom: 8vw; }

    .clinic-info-table th,.clinic-info-table td{padding:1em 0.8em;font-size:0.9rem;word-break:normal;}
    .clinic-info-table th { width: 40% !important; word-break: keep-all !important; }
    
    .clinic-benefits-grid { gap: 2vw; padding: 0 2vw; }
    .benefit-card { padding: 2.5vw 2vw; flex-direction: row !important; justify-content: flex-start !important; }
    .benefit-icon { margin-right: 1.5vw !important; width: 20px; height: 20px; margin-bottom: 0 !important; }
    .benefit-title { font-size: clamp(0.65rem, 2.5vw, 0.9rem); white-space: nowrap !important; }

    .values-grid { grid-template-columns: 1fr; gap: 3vw; padding: 0 2vw; }
    .value-card { padding: 4vw; flex-direction: row; align-items: flex-start; text-align: left; }
    .value-num { font-size: 2.2rem; margin-right: 4vw; margin-bottom: 0; line-height: 1; }
    .value-text-wrap { align-items: flex-start; }
    .value-title { font-size: 1.05rem; margin-bottom: 0.4em; border-bottom: none; padding-bottom: 0; text-align: left; }
    .value-desc { font-size: 0.85rem; }

    /* ▼ 余白と幅の修正箇所（SP） ▼ */
    .results-stats-grid { gap: 2vw; padding: 0 6%; margin-bottom: 6vw; }
    .results-stat-box { padding: 3vw 1vw; }
    .results-stat-label { font-size: clamp(0.6rem, 2.3vw, 0.8rem); margin-bottom: 0.3em; letter-spacing: -0.05em; }
    .results-stat-value { font-size: clamp(1.1rem, 4vw, 1.5rem); }
    .results-cases-grid { gap: 2vw; }
    .results-case-btn { padding: 1.2em 0.8em; font-size: clamp(0.7rem, 2.8vw, 0.9rem); justify-content: flex-start; }
    .results-case-icon { margin-right: 0.4em; width: 1.2em; height: 1.2em; }

    .doctor-container { flex-direction: column-reverse; gap: 8vw; margin-bottom: 12vw; }
    .doctor-text-area, .doctor-photo-area { width: 100%; text-align: center; max-width: none; }
    .doctor-photo-area img { margin: 0 auto; max-width: 280px; }
    .doctor-text-area p, .doctor-text-area table { text-align: left; }
}

.u-hidden-svg { position: absolute; width: 0; height: 0; }
.u-text-center { text-align: center !important; }
.sp-header__logo img { min-height: auto; }

/* ==========================================================================
   6. 下層ページ専用コンポーネント等
   ========================================================================== */
.first-visit-section__inner { width: 100%; padding: 0 2%; max-width: 800px; margin: 0 auto; }
.first-visit-section__title-img { width: 100%; height: auto; margin: 0 auto 5vw; display: block; }

.square-button--pink { flex: 1 1 auto; white-space: normal; padding: 1.2em 5px; height: auto; font-size: clamp(0.95rem, 3.5vw, 1.1rem) !important; background: linear-gradient(to right, var(--color-pink-grad-start), var(--color-pink-grad-end)); color: #fff; border: none; }
.square-button--gold { flex: 1 1 auto; white-space: normal; padding: 1.2em 5px; height: auto; font-size: clamp(0.95rem, 3.5vw, 1.1rem) !important; background: linear-gradient(135deg, #f6e6b4 0%, #e3c574 100%); color: var(--c-text-main); border: none; }
.square-button--pink-full { background: linear-gradient(to right, var(--color-pink-grad-start), var(--color-pink-grad-end)); color: #fff; border: none; padding: 1.2em 3.5em; display: inline-flex; align-items: center; justify-content: center; }

.problems-section__sub-text { font-size: 0.9rem; color: var(--c-text-sub); text-align: center; margin-top: -1.5vw; margin-bottom: 2vw; letter-spacing: 0.05em; }

.about-section__inner { margin-top: 0; text-align: center; }
.about-section__heading { color: #fff !important; line-height: 1.6 !important; }
.about-section__text-wrap { text-align: left; max-width: 750px; margin: 0 auto 5vw; color: #fff; }
.about-section__text { margin-bottom: 1.5em; line-height: 2.0; font-size: clamp(0.85rem, 2.5vw, 1rem); }
.about-section__btn-wrap { text-align: center; }
.square-button--white-pink { background: #fff; color: var(--color-pink-grad-start); border: none; padding: 1.2em 4em; display: inline-flex; align-items: center; justify-content: center; }

.content-text--center-mb3 { text-align: center; margin-bottom: 3vw; }
.content-text--center-mb0 { text-align: center; margin-bottom: 0; }
.results-section__btn-wrap { margin-top: 5vw; text-align: center; }

.first-visit-steps { text-align: left; width: 100%; max-width: 600px; margin: 0 auto; display: flex; flex-direction: column; gap: 1.5em; }
.first-visit-step-item { display: flex; align-items: flex-start; background: #fafaf8; padding: 1.5em; border-radius: 8px; border: 1px solid #e5dfd3; box-shadow: 0 1px 3px rgba(0,0,0,0.02); }
.first-visit-step-item__num { font-size: 1.8rem; font-weight: normal; color: var(--c-gold); margin-right: 0.8em; line-height: 1; font-family: 'Shippori Mincho', serif; }
.first-visit-step-item__content { min-width: 0; flex: 1; }
.first-visit-step-item__title { font-size: 1.05rem; color: var(--c-text-main); font-weight: normal; margin-bottom: 0.4em; }
.first-visit-step-item__desc { font-size: 0.85rem; line-height: 1.6; color: var(--c-text-sub); margin: 0; }
.first-visit-steps__btn-wrap { margin-top: 3vw; text-align: center; }

.doctor-info__title { font-size: 1.1rem; color: var(--c-text-main); font-weight: normal; margin-bottom: 1.5em; border: none; padding: 0; }
.doctor-info__text { font-size: clamp(0.85rem, 2.5vw, 0.95rem); line-height: 2.0; color: var(--c-text-main); margin-bottom: 2.5em; word-break: normal; white-space: normal; }
.doctor-info__table { width: 100%; text-align: left; font-size: clamp(0.75rem, 2.5vw, 0.85rem); line-height: 1.8; border-collapse: collapse; margin-bottom: 3em; }
.doctor-info__table td { border-bottom: 1px solid #eee; padding: 0.6em 0; font-weight: normal; }
.doctor-info__btn-wrap { text-align: center; }
.square-button--gold-full { background: linear-gradient(135deg, #f6e6b4 0%, #e3c574 100%); color: var(--c-text-main); border: none; padding: 0.8em 3em; display: inline-block; border-radius: 0; }

.footer-address-block__status-wrap { margin-top: 0.5em; margin-bottom: 2em; }
.footer-address-block__badge { display: inline-block; border: 1px solid #ccc; padding: 0 1em; font-size: 0.9rem; }
.clinic-tour-link-area { text-align: center; border-top: 1px dashed #ddd; padding-top: 2em; margin-top: 1em; }
.clinic-info-table__time-row { display: flex; margin-bottom: 0.8em; }
.clinic-info-table__time-row:last-child { margin-bottom: 0; }
.clinic-info-table__time-label { font-weight: normal; width: 4em; flex-shrink: 0; }

/* コンタクトセクション専用ボタン設定 */
.contact-section__btns {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 2.5vw auto 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 8% !important;
    gap: 15px !important;
}
.contact-section__btns .square-button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 420px !important;
    flex: none !important;
    padding: 1.2em 1em !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

.square-button--contact-white { background: #fff !important; color: var(--color-pink-grad-start) !important; border: none !important; line-height: 1.3 !important; }
.square-button--contact-outline { background: transparent !important; color: #fff !important; border: 1px solid #fff !important; line-height: 1.3 !important; }
.square-button__contact-icon { font-size: 1.2rem !important; margin-right: 0.5em !important; flex-shrink: 0 !important; }
.square-button__contact-text { display: inline-block !important; text-align: left !important; white-space: nowrap !important; flex-shrink: 0 !important; }

.contact-section--pink-bg { background: linear-gradient(to right, var(--color-pink-grad-start), var(--color-pink-grad-end)) !important; margin-bottom: 0; }
.contact-section__inner { margin-top: 0; text-align: center; }
.contact-section__heading { color: #fff !important; font-size: clamp(1.1rem, 2vw, 1.4rem) !important; }
.contact-section__text-wrap { display: inline-block; text-align: left; max-width: 650px; margin-bottom: 4vw; }
.contact-section__text { color: #fff !important; margin-bottom: 0 !important; line-height: 1.8 !important; text-align: left !important; }

@media screen and (min-width: 1024px) {
    .contact-section__btns { flex-direction: column !important; align-items: center !important; }
    .contact-section__btns .square-button { max-width: 420px !important; width: 100% !important; margin: 0 auto !important; }
}

.footer-links-wrap { padding: 4vw 2vw; text-align: center; background: #fff; }
.footer-links { display: flex; justify-content: center; gap: 15px; flex-wrap: wrap; font-size: 0.8rem; color: #777; }
.footer-links a { text-decoration: underline; }

.sub-visual-banner { width: 100%; height: 35vh; min-height: 250px; max-height: 400px; position: relative; overflow: hidden; margin-bottom: 5vw; }
.sub-visual-banner__bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; }

.p-sub-content { padding-bottom: 8vw; }
.sub-section-inner { max-width: 800px; margin: 0 auto; padding: 0 4vw; }
.sub-lead-text { font-size: clamp(0.95rem, 2.0vw, 1.1rem); line-height: 2.4; letter-spacing: 0.1em; text-align: center; margin: clamp(4vw, 6vw, 8vw) auto; color: var(--c-text-main); }

.sub-h3 { position: relative; font-size: clamp(1.2rem, 2.5vw, 1.4rem); color: var(--c-text-main); border-bottom: 1px solid #e5dfd3; padding-left: 0.8em; padding-bottom: 0.6em; margin-top: clamp(4em, 8vw, 5em); margin-bottom: clamp(1.5em, 4vw, 2em); font-weight: normal; letter-spacing: 0.1em; }
.sub-h3::before { content: ""; position: absolute; left: 0; top: 0.2em; bottom: 0.6em; width: 2px; background: var(--c-gold); }

.sub-h4 { position: relative !important; font-size: clamp(1.3rem, 2.2vw, 1.25rem) !important; margin-top: clamp(2.5em, 5vw, 3.5em) !important; margin-bottom: 1.5em !important; font-weight: normal !important; color: var(--c-text-main) !important; letter-spacing: 0.1em !important; display: block !important; text-align: center !important; padding-bottom: 0.8em !important; }
.sub-h4::before { display: none !important; }
.sub-h4::after { content: "" !important; position: absolute !important; bottom: 0 !important; left: 50% !important; transform: translateX(-50%) !important; width: 45px !important; height: 1px !important; background: var(--c-gold) !important; }

.sub-text { font-size: clamp(0.9rem, 1.8vw, 0.95rem); line-height: 2.2; letter-spacing: 0.05em; margin-bottom: 2em; color: var(--c-text-sub); }
.sub-text--mb0 { margin-bottom: 0 !important; }
.sub-note { font-size: clamp(0.75rem, 1.5vw, 0.85rem); color: #888; line-height: 1.8; padding-left: 1.2em; text-indent: -1.2em; margin-bottom: 1.5em; }

.sub-step { margin-bottom: 4em; padding-left: 0; position: relative; }
.sub-step-item { display: flex; align-items: flex-start; margin-bottom: clamp(2em, 4vw, 3em); position: relative; }
.sub-step-item::before { content: ""; position: absolute; left: calc(1.5rem - 0.5px); top: 3rem; bottom: -4em; width: 1px; background: #e5dfd3; z-index: 1; }
.sub-step-item:last-child::before, .sub-step-item:last-of-type::before { display: none !important; }
.sub-step-num { width: 3rem; height: 3rem; background: #fff; border: 1px solid var(--c-gold); color: var(--c-gold); border-radius: 50%; display: flex; justify-content: center; align-items: center; font-family: 'Shippori Mincho', serif; font-size: 1.2rem; margin-right: clamp(1.5em, 3vw, 2em); flex-shrink: 0; position: relative; z-index: 2; }
.sub-step-content { padding-top: 0.3rem; text-align: left;}
.sub-step-title { font-size: clamp(1.05rem, 2vw, 1.15rem); color: var(--c-text-main); margin-bottom: 0.8em; font-weight: normal; letter-spacing: 0.05em; }

.sub-table-wrap { margin-bottom: 3em; padding-bottom: 1em; }
.sub-table { width: 100%; border-collapse: collapse; letter-spacing: 0.05em; border-top: 1px solid #e5dfd3; }
.sub-table, .sub-table tbody, .sub-table tr, .sub-table th, .sub-table td { display: block; width: 100%; box-sizing: border-box; }
.sub-table tr { border-bottom: 1px solid #e5dfd3; }
.sub-table th { padding: 1.5em 1em 0.2em; font-weight: normal; color: var(--color-gold-text); font-size: clamp(1.1rem, 2vw, 1.25rem); text-align: left; line-height: 1.4; }
.sub-table td { padding: 0 1em 1.5em; text-align: right; color: var(--c-text-main); font-size: clamp(0.95rem, 1.8vw, 1.0rem); }
.sub-table-price { font-family: "Shippori Mincho", serif; font-size: clamp(1.1rem, 2vw, 1.25rem); color: var(--c-text-main); margin-right: 0.2em; }
.sub-table-tax { font-size: 0.75rem; color: #999; font-family: sans-serif; }
.sub-table-note { font-size: 0.85rem; color: #888; font-family: sans-serif; display: block; margin-top: 0.6em; line-height: 1.6; }

.sub-search-box { margin-bottom: 3em; position: relative; max-width: 400px; margin-left: auto; margin-right: auto; }
.sub-select { appearance: none; -webkit-appearance: none; width: 100%; padding: 1em 3em 1em 1.5em; font-size: 1rem; color: var(--c-text-main); background-color: #fff; border: 1px solid var(--c-gold); border-radius: 50px; font-family: inherit; cursor: pointer; outline: none; box-shadow: 0 2px 5px rgba(212,175,55,0.1); transition: all 0.3s ease; }
.sub-select:focus { box-shadow: 0 4px 10px rgba(212,175,55,0.2); }
.sub-search-box::after { content: ""; position: absolute; top: 50%; right: 1.5em; transform: translateY(-60%) rotate(45deg); width: 8px; height: 8px; border-right: 2px solid var(--c-gold); border-bottom: 2px solid var(--c-gold); pointer-events: none; }

.btn-pink-g { background: linear-gradient(to right, var(--color-pink-grad-start), var(--color-pink-grad-end)) !important; color: #fff !important; border: none !important; }
.btn-gold-g { background: linear-gradient(135deg, #f6e6b4 0%, #e3c574 100%) !important; color: var(--c-text-main) !important; border: none !important; }
.btn-w-pink { background: #fff !important; color: var(--color-pink-grad-start) !important; border: 1px solid var(--color-pink-grad-start) !important; box-shadow: none !important; }
.btn-w-gold { background: #fff !important; color: var(--color-gold-text) !important; border: 1px solid var(--c-gold) !important; box-shadow: none !important; }

/* 汎用・下層用ボタンのサイズ設定 */
.sub-page-buttons-wrap { max-width: 650px; }
.sub-page-buttons-wrap--mb15 { margin-bottom: 1.5em; }
.sub-page-buttons-wrap--mb20 { margin-bottom: 2em; }
.sub-page-buttons-wrap--mb40 { margin-bottom: 4em; }

.sub-square-button { font-size: clamp(0.95rem, 3.5vw, 1.1rem); padding: 1.2em 5px; height: auto; }

.sub-btn-flex-wrap { display: flex; gap: 4vw; justify-content: center; flex-wrap: wrap; margin-bottom: 3em; }
.sub-round-button { width: auto !important; min-width: 200px !important; }

/* サイト共通の四角ボタンの基本設定 */
.square-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border: 1px solid var(--c-gold);
    background: #fff;
    padding: 0.8em 0.5em;
    color: var(--color-gold-text);
    text-decoration: none;
    transition: all .3s ease;
    border-radius: 0;
    box-sizing: border-box;
}
.access-sub-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: 100%;
    max-width: 700px;
    padding: 20px 10px;
    margin: 0 auto;
    box-sizing: border-box;
}
.access-sub-buttons .square-button {
    font-size: clamp(0.95rem, 2.5vw, 1.1rem);
    padding: 1.2em 1em;
    white-space: normal;
    flex: 1 1 45%;
    min-width: 120px;
    max-width: 100%;
    word-break: break-word;
}

.sub-p-h-arrival { padding: 0 !important; margin-bottom: 2em; }
.p-menu-list--1col { grid-template-columns: 1fr !important; }

.progress-wrap { position: fixed; bottom: 140px; right: 20px; height: 45px; width: 45px; cursor: pointer; display: block; border-radius: 50px; background-color: #ffffff; box-shadow: inset 0 0 0 1px rgba(212, 175, 55, 0.3); z-index: 9999; opacity: 0; visibility: hidden; transform: translateY(20px); transition: all 400ms linear; }
@media screen and (min-width: 768px) { .progress-wrap { right: 45px; } }
.progress-wrap.active-progress { opacity: 1; visibility: visible; transform: translateY(0); }
.progress-wrap svg.progress-circle path { fill: none; stroke: #d4af37; stroke-width: 2; box-sizing: border-box; transition: all 400ms linear; }
.progress-wrap .arrow-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 1; transition: transform 0.3s ease; }
.progress-wrap:hover .arrow-icon { transform: translate(-50%, -65%); }

/* ==========================================================================
   7. ページごとの余白調整 ＆ 管理バー対策（最新統合版）
   ========================================================================== */
body:not(.home):not(.front-page) .p-sub-content,
body:not(.home):not(.front-page) .content-section:first-of-type,
body:not(.home):not(.front-page) .new-content-wrapper:first-of-type {
    padding-top: clamp(80px, 10vw, 120px) !important;
}

.sub-visual-banner + .p-sub-content,
.sub-visual-banner + .content-section,
.sub-visual-banner + .new-content-wrapper,
.l-kv + .content-section,
.l-kv + .new-content-wrapper {
    padding-top: 4vw !important;
}

@media screen and (max-width: 767px) {
    body:not(.home):not(.front-page) .p-sub-content,
    body:not(.home):not(.front-page) .content-section:first-of-type,
    body:not(.home):not(.front-page) .new-content-wrapper:first-of-type {
        padding-top: clamp(120px, 28vw, 160px) !important; 
    }
    .sub-visual-banner + .p-sub-content,
    .sub-visual-banner + .content-section,
    .sub-visual-banner + .new-content-wrapper,
    .l-kv + .content-section,
    .l-kv + .new-content-wrapper {
        padding-top: 6vw !important;
    }
}

/* --- WordPress管理画面のバー（黒い帯）表示時のレイアウト崩れ対策 --- */
#wpadminbar {
    z-index: 999999 !important;
}
body.admin-bar .l-nav-container,
body.admin-bar .l-right-bg {
    top: 32px !important;
    height: calc(100vh - 32px) !important;
}
body.admin-bar::before {
    top: 32px !important;
}
@media screen and (max-width: 782px) {
    body.admin-bar .l-nav-container,
    body.admin-bar .l-right-bg {
        top: 46px !important;
        height: calc(100vh - 46px) !important;
    }
    body.admin-bar::before,
    body.admin-bar .l-sp-header {
        top: 46px !important;
    }
    body.admin-bar .hamburger-btn {
        top: 66px !important;
    }
}

/* ==========================================================================
   汎用共通パーツ（AddQuicktag用）
   ========================================================================== */
.u-marker-gold { background: linear-gradient(transparent 65%, #f6e6b4 35%); font-weight: bold; color: var(--c-text-main, #333); padding: 0 2px; }
.u-text-right { text-align: right !important; display: block; }
.u-font-mincho { font-family: "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif !important; letter-spacing: 0.1em; }

.p-single-img { max-width: 100%; margin: 2.5em auto; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.04); border: 1px solid #e5dfd3; }
.p-single-img img { width: 100%; height: auto; display: block; transition: transform 0.6s ease; }
.p-single-img:hover img { transform: scale(1.03); }

/* フチなし左右いっぱい画像パーツ */
.p-full-img { margin-left: -4vw !important; margin-right: -4vw !important; margin-top: 2.5em !important; margin-bottom: 2.5em !important; overflow: hidden !important; }
.p-full-img img { width: 100% !important; height: auto !important; display: block !important; }

/* ==========================================================================
   10. LP専用共通パーツ ＆ レイアウト崩れ防止（全ページ対応版）
   ========================================================================== */
.values-grid { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
.value-card { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; word-break: break-word !important; overflow-wrap: anywhere !important; }
.value-text-wrap { flex: 1 1 0% !important; min-width: 0 !important; max-width: 100% !important; display: block !important; }

.lp-mb-2em { margin-bottom: 2em !important; }
.lp-mb-3em { margin-bottom: 3em !important; }
.lp-mb-4em { margin-bottom: 4em !important; }
.lp-incho-name { font-size: 1.1rem; }
.lp-accent-text { font-weight: bold; color: #d43076; letter-spacing: 0.1em; }

.lp-malocclusion-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-bottom: 2em; }
.lp-malocclusion-item { background: #fff; border: 1px solid #e5dfd3; border-radius: 8px; padding: 15px 10px; text-align: center; box-shadow: 0 4px 15px rgba(0,0,0,0.02); }
.lp-malocclusion-img { width: 100%; height: auto; margin-bottom: 10px; }
.lp-malocclusion-name { font-size: clamp(0.75rem, 2.5vw, 0.95rem); color: #333; font-weight: bold; margin: 0; letter-spacing: 0.05em; }
.lp-malocclusion-kana { font-size: 0.8em; font-weight: normal; display: block; }

.lp-stat-card { text-align: center; }
.lp-stat-card .value-text-wrap { align-items: center !important; width: 100%; }
.lp-stat-label { font-size: 0.9rem; color: #666; margin-bottom: 0.5em; letter-spacing: 0.1em; }
.lp-stat-value { font-size: clamp(1.5rem, 4vw, 2rem); color: #d4af37; font-family: "Shippori Mincho", serif; line-height: 1.2; }

.lp-notice-box { border: 1px dashed #ccc; background: #fafaf8; padding: 2em; border-radius: 8px; margin-bottom: 4em; }
.lp-notice-title { display: block; font-weight: bold; color: #333; margin-bottom: 0.5em; }

.lp-alert-box { border: 1px solid #e02060; background: #fffcfd; padding: 2em; border-radius: 8px; margin-bottom: 4em; }
.lp-alert-title { color: #e02060; text-align: center; margin-top: 0; margin-bottom: 1em; font-size: 1.1rem; letter-spacing: 0.1em; }
.lp-alert-list { color: #e02060; font-weight: bold; padding-left: 0; list-style: none; text-align: center; margin-bottom: 0; }
.lp-alert-list li { margin-bottom: 0.8em; }
.lp-alert-list li:last-child { margin-bottom: 0; }

.lp-price-box { background: #fafaf8; border: 1px solid #e5dfd3; border-radius: 8px; padding: 3em 2em; text-align: center; box-shadow: 0 4px 20px rgba(0,0,0,0.02); margin-bottom: 3em; }
.lp-price-label { font-size: 1rem; color: #c59b27; margin-bottom: 0.8em; letter-spacing: 0.1em; }
.lp-price-total { font-size: clamp(2.5rem, 5vw, 3.5rem); font-family: 'Shippori Mincho', serif; color: #333; line-height: 1; margin-bottom: 0.5em; }
.lp-price-total span { font-size: 1.2rem; }
.lp-price-divider { width: 60%; height: 1px; background: #e5dfd3; margin: 1.5em auto; }
.lp-price-detail { font-size: 0.95rem; color: #555; margin: 0; letter-spacing: 0.05em; line-height: 1.6; }
.lp-price-detail strong { color: #d43076; font-weight: normal; }
.lp-price-detail span { font-size: 0.8rem; }

.lp-caution-box { background: #f9f9f9; border: 1px solid #eee; border-radius: 8px; padding: 2em; margin-bottom: 4em; }
.lp-caution-title { color: #333; display: block; margin-bottom: 1em; font-size: 0.95rem; letter-spacing: 0.1em; font-weight: bold; }
.lp-caution-list { padding-left: 1.2em; font-size: 0.85rem; line-height: 2.0; color: #666; margin: 0; list-style-type: disc; }
.lp-caution-note { font-size: 0.9em; display: inline-block; margin-top: 0.2em; color: #888; }

.lp-table-mb { margin-bottom: 3em !important; }
.lp-table-highlight { color: #e02060 !important; font-size: 1.1rem !important; font-weight: bold !important; }
.lp-table-center th, .lp-table-center td { text-align: center !important; }

.lp-cta-gradient { background: linear-gradient(to right, #e02060, #eb608f); color: #fff; text-align: center; padding: 4em 1em; border-radius: 8px; margin-bottom: 4em; box-shadow: 0 10px 25px rgba(224,32,96,0.2); }
.lp-cta-gradient-label { display: inline-block; border-bottom: 1px solid rgba(255,255,255,0.5); padding-bottom: 5px; margin-bottom: 15px; font-size: 1.1rem; letter-spacing: 0.1em; }
.lp-cta-gradient-price { font-family: 'Shippori Mincho', serif; font-size: clamp(2.2rem, 5vw, 3rem); line-height: 1.2; margin-bottom: 15px; }
.lp-cta-gradient-price span { font-size: 1.2rem; }
.lp-cta-gradient-desc { margin: 0; font-size: 0.95rem; line-height: 1.8; color: #fff; }

/* ==========================================================================
   11. 固定ページ本文の可読性・デザインバランス改善
   ========================================================================== */
.p-sub-content, 
.content-section,
.p-sub-content p, 
.content-section p,
.sub-text {
    line-height: 2.2 !important;
    letter-spacing: 0.08em !important;
    font-feature-settings: normal !important;
}

.p-sub-content p, 
.content-section p {
    margin-bottom: 1.8em; 
}

/* トップページ等の白文字エリアを強制保護（黒文字化を防ぐ） */
.about-section p, 
.about-section .content-text,
.about-section .large-main-heading,
.about-section .about-section__text,
.contact-section--pink-bg p,
.contact-section--pink-bg .content-text,
.contact-section--pink-bg .contact-section__text,
.contact-section--pink-bg .contact-section__heading {
    color: #fff !important;
}

/* ==========================================================================
   12. Q&A（よくある質問）パーツ
   ========================================================================== */
.lp-qa-item {
    background: #ffffff;
    border: 1px solid #e5dfd3;
    border-radius: 8px;
    padding: clamp(1.5em, 4vw, 2.5em);
    margin-bottom: 1.5em;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.lp-qa-item:hover {
    box-shadow: 0 8px 25px rgba(212,175,55,0.1);
    transform: translateY(-2px);
    border-color: var(--c-gold);
}

.lp-qa-item p,
.lp-qa-item h4 {
    margin-bottom: 0 !important;
}

.lp-qa-q {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1.5em !important;
    padding-bottom: 1.5em;
    border-bottom: 1px dashed #e5dfd3;
}
.lp-qa-icon-q {
    font-family: 'Shippori Mincho', serif;
    font-size: clamp(1.6rem, 4vw, 2rem);
    line-height: 1;
    color: var(--color-pink-grad-start); 
    margin-right: 0.6em;
    font-weight: normal;
    flex-shrink: 0;
}
.lp-qa-q-text {
    font-size: clamp(1.0rem, 2.5vw, 1.1rem) !important;
    color: var(--c-text-main) !important;
    font-weight: normal !important;
    margin: 0 !important;
    line-height: 1.6 !important;
    padding-top: 0.2em !important; 
    letter-spacing: 0.05em !important;
}

.lp-qa-a {
    display: flex;
    align-items: flex-start;
    margin-bottom: 0 !important;
}
.lp-qa-icon-a {
    font-family: 'Shippori Mincho', serif;
    font-size: clamp(1.6rem, 4vw, 2rem);
    line-height: 1;
    color: var(--color-gold-text); 
    margin-right: 0.6em;
    font-weight: normal;
    flex-shrink: 0;
}
.lp-qa-a-text {
    font-size: clamp(0.9rem, 2.2vw, 0.95rem) !important;
    color: var(--c-text-sub) !important;
    margin: 0 !important;
    line-height: 2.0 !important;
    padding-top: 0.2em !important;
    letter-spacing: 0.05em !important;
}

/* ==========================================================================
   13. 余白・自動改行（wpautop）の型崩れ強制ブロック安全装置
   ========================================================================== */
p:empty, 
p > br:only-child,
.p-sub-content p:empty,
.content-section p:empty {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    line-height: 0 !important;
}

.sub-h4 + .clinic-info-table,
.sub-h4 + .sub-table-wrap,
.sub-h4 + p + .clinic-info-table,
.sub-h4 + p + .sub-table-wrap,
.sub-h4 + p,
.sub-h4 + br {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* ==========================================================================
   14. 医療費控除などの複雑なデータテーブル（横スクロール対応・アニメーション付き）
   ========================================================================== */
.lp-scroll-hint {
    display: none;
    align-items: center;
    justify-content: flex-end;
    margin-bottom: 0.8em;
}
@media screen and (max-width: 767px) {
    .lp-scroll-hint { display: flex; }
}
.lp-scroll-hint-text {
    font-size: 0.8rem;
    color: #888;
    letter-spacing: 0.05em;
    margin-right: 10px;
}
.lp-scroll-hint-arrow {
    display: inline-block;
    width: 35px;
    height: 1px;
    background-color: var(--c-gold);
    position: relative;
    animation: swipeArrowAnim 1.5s infinite ease-in-out;
}
.lp-scroll-hint-arrow::after {
    content: "";
    position: absolute;
    right: 0;
    top: -4px;
    width: 8px;
    height: 8px;
    border-top: 1px solid var(--c-gold);
    border-right: 1px solid var(--c-gold);
    transform: rotate(45deg);
}
@keyframes swipeArrowAnim {
    0% { transform: translateX(0); opacity: 0.2; }
    50% { opacity: 1; }
    100% { transform: translateX(12px); opacity: 0; }
}

.lp-table-scroll-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch; 
    margin-bottom: 3em;
    box-shadow: inset -15px 0 15px -15px rgba(0,0,0,0.1); 
}
.lp-complex-table {
    width: 100%;
    min-width: 650px; 
    border-collapse: collapse;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.02);
    border: 1px solid #e5dfd3;
}
.lp-complex-table th, 
.lp-complex-table td {
    padding: 1.2em 0.8em;
    border: 1px solid #e5dfd3;
    text-align: center;
    vertical-align: middle;
    font-size: clamp(0.85rem, 1.8vw, 0.95rem);
}
.lp-complex-table th {
    background-color: #fafaf8;
    color: var(--color-gold-text);
    font-weight: normal;


    white-space: nowrap; 
}
.lp-complex-table td {
    color: var(--c-text-main);
    line-height: 1.6;
}
.lp-complex-table .th-highlight {
    background-color: #fff0f5; 
    color: var(--color-pink-grad-start);
}
.lp-complex-table .td-highlight {
    background-color: #fffafc;
}
.lp-complex-table .lp-price-accent {
    color: #d43076; 
    font-size: 1.1em;
    font-weight: bold;
    font-family: 'Shippori Mincho', serif; 
}

/* ==========================================================================
   15. お知らせ・治療実績 一覧ページ（リストデザインの最適化）
   ========================================================================== */
.sub-cases-list { width: 100% !important; max-width: 100% !important; margin: 0 auto !important; padding: 0 !important; }
.sub-cases-item { display: flex !important; flex-direction: column !important; align-items: flex-start !important; text-align: left !important; padding: 1.8em 0 !important; border-bottom: 1px dashed #e5dfd3 !important; text-decoration: none !important; color: var(--c-text-main) !important; line-height: 1.6 !important; transition: all 0.3s ease !important; position: relative !important; }
.sub-cases-item:last-child { border-bottom: none !important; }
.sub-cases-item:hover { background-color: #fffafc !important; padding-left: 10px !important; border-radius: 4px !important; }
.sub-cases-item__meta { display: flex !important; align-items: center !important; flex-wrap: wrap !important; gap: 12px !important; margin-bottom: 0.8em !important; justify-content: flex-start !important; }
.sub-cases-item__date { font-size: 0.9rem !important; color: #888 !important; font-family: 'Shippori Mincho', serif !important; letter-spacing: 0.05em !important; margin: 0 !important; }
.sub-cases-item__cat { font-size: 0.75rem !important; color: var(--color-gold-text) !important; background-color: #fafaf8 !important; border: 1px solid var(--c-gold) !important; padding: 0.3em 1.2em !important; border-radius: 50px !important; letter-spacing: 0.1em !important; line-height: 1 !important; margin: 0 !important; }
.sub-cases-item__title { font-size: clamp(1.0rem, 2.5vw, 1.15rem) !important; font-weight: normal !important; color: var(--c-text-main) !important; margin: 0 !important; padding-right: 2em !important; position: relative !important; letter-spacing: 0.05em !important; line-height: 1.8 !important; width: 100% !important; }
.sub-cases-item__title::after { content: "" !important; position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) rotate(-45deg) !important; width: 8px !important; height: 8px !important; border-right: 1px solid var(--c-gold) !important; border-bottom: 1px solid var(--c-gold) !important; transition: transform 0.3s ease !important; }
.sub-cases-item:hover .sub-cases-item__title::after { transform: translateY(-50%) rotate(-45deg) translate(3px, 3px) !important; }

/* ==========================================================================
   16. スタッフ紹介ページ（プロフィール）の上質デザイン修正
   ========================================================================== */
.sub-staff-info { text-align: center !important; }
.sub-staff-cat { display: inline-block !important; font-size: 0.65rem !important; background: transparent !important; color: var(--c-text-sub) !important; padding: 0 0 0.5em 0 !important; border-radius: 0 !important; border-bottom: 1px solid #d9d9d9 !important; margin-bottom: 2em !important; letter-spacing: 0.25em !important; text-transform: uppercase !important; box-shadow: none !important; }
.sub-staff-job { font-size: 0.85rem !important; color: #a67c00 !important; display: block !important; margin-bottom: 0.5em !important; letter-spacing: 0.1em !important; }
.sub-staff-name { font-size: clamp(1.4rem, 4vw, 1.8rem) !important; font-weight: normal !important; font-family: 'Shippori Mincho', serif !important; color: var(--c-text-main) !important; letter-spacing: 0.15em !important; margin-bottom: 1.5em !important; padding-bottom: 1.0em !important; position: relative !important; }
.sub-staff-name::after { content: "" !important; position: absolute !important; bottom: 0 !important; left: 50% !important; transform: translateX(-50%) !important; width: 40px !important; height: 1px !important; background: var(--c-gold) !important; }
.sub-staff-msg { text-align: left !important; }

/* ==========================================================================
   17. トップページ 丸型特徴バッジ（変形・文字被り防止）
   ========================================================================== */
.top-features-circles { display: flex; justify-content: center; align-items: center; gap: 2%; width: 100%; max-width: 800px; margin: 30px auto; padding: 0 20px; box-sizing: border-box; }
.top-features-circle { flex: 1 1 0; aspect-ratio: 1 / 1; background-color: #fff; border: 1px solid rgba(212, 175, 55, 0.4); border-radius: 50%; display: flex; align-items: center; justify-content: center; text-align: center; box-shadow: none; padding: 10px; box-sizing: border-box; overflow: hidden; }
.top-features-circle span { font-family: 'Shippori Mincho', serif; font-size: clamp(0.75rem, 1.6vw, 1.05rem); color: var(--c-text-main); line-height: 1.4; letter-spacing: 0.05em; white-space: nowrap; }
@media screen and (max-width: 767px) {
    .top-features-circles { gap: 3vw; margin: 20px auto 30px; }
    .top-features-circle { padding: 5px; }
    .top-features-circle span { font-size: clamp(0.65rem, 3vw, 0.85rem); }
}

/* ==========================================================================
   18. 治療実績（6項目）とボタンのレイアウト最適化
   ========================================================================== */
.results-cases-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 15px !important; max-width: 500px !important; margin: 30px auto 50px !important; width: 100% !important; box-sizing: border-box !important; }
/* アイコンをCSS(::before)で付与する形に変更。インラインSVGは不要になります */
.results-case-btn { display: flex !important; align-items: center !important; justify-content: flex-start !important; background: #fff !important; border: 1px solid #e5dfd3 !important; border-radius: 8px !important; padding: 15px 25px !important; text-decoration: none !important; color: var(--c-text-main) !important; font-size: 1.05rem !important; box-shadow: 0 1px 3px rgba(0,0,0,0.02) !important; transition: all .3s ease !important; line-height: 1.4 !important; box-sizing: border-box !important; white-space: normal !important; word-break: keep-all !important; overflow-wrap: anywhere !important; }
.results-case-btn::before { content: ""; display: inline-block !important; width: 22px !important; height: 22px !important; margin-right: 15px !important; flex-shrink: 0 !important; background-color: rgba(212, 175, 55, 0.6) !important; -webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M12%202C6.48%202%202%206.48%202%2012s4.48%2010%2010%2010%2010-4.48%2010-10S17.52%202%2012%202zm-2%2015l-5-5%201.41-1.41L10%2014.17l7.59-7.59L19%208l-9%209z%27%2F%3E%3C%2Fsvg%3E") no-repeat center / contain !important; mask: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M12%202C6.48%202%202%206.48%202%2012s4.48%2010%2010%2010%2010-4.48%2010-10S17.52%202%2012%202zm-2%2015l-5-5%201.41-1.41L10%2014.17l7.59-7.59L19%208l-9%209z%27%2F%3E%3C%2Fsvg%3E") no-repeat center / contain !important; transition: background-color .3s ease !important; }
.results-case-btn:hover { border-color: var(--c-gold) !important; transform: translateY(-2px) !important; color: var(--color-gold-text) !important; }
.results-case-btn:hover::before { background-color: var(--color-gold-text) !important; }
/* 古いインラインHTML版のアイコンクラスは非表示にして影響を排除 */
.results-case-icon { display: none !important; }
.results-cases-grid + .u-text-center { margin-bottom: 60px !important; }
.results-cases-grid + .u-text-center + .results-stats-grid { margin-top: 0 !important; }
html.is-large-text .results-case-btn { font-size: 1.25rem !important; }
@media screen and (max-width: 767px) {
    .results-cases-grid { max-width: 90% !important; margin: 20px auto 40px !important; }
    .results-case-btn { padding: 12px 15px !important; font-size: 0.95rem !important; }
    .results-case-btn::before { width: 20px !important; height: 20px !important; margin-right: 10px !important; }
    html.is-large-text .results-case-btn { font-size: 1.1rem !important; }
}

/* ==========================================================================
   19. LPページのロゴ被り防止 ＆ 全ボタンの影強制削除
   ========================================================================== */
@media screen and (max-width: 767px) {
    .sub-visual-banner { margin-top: 80px !important; }
}
.square-button, .square-button--pink, .square-button--gold, .square-button--pink-full, .square-button--white-pink, .square-button--gold-full, .square-button--contact-white, .square-button--contact-outline, .btn-pink-g, .btn-gold-g, .btn-w-pink, .btn-w-gold, .sub-round-button { box-shadow: none !important; }
.square-button { padding: 1em 1.5em !important; }

/* ==========================================================================
   20. 新規追加：横スクロール対応 実績テーブル
   ========================================================================== */
/* ▼ 余白とシンプルデザインへの修正箇所 ▼ */
.p-history-table-wrapper {
    position: relative;
    width: 100%;
    max-width: 800px;
    margin: 4vw auto;
    padding: 0 4vw;
    box-sizing: border-box;
}
.p-history-scroll-hint {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-bottom: 0.8em;
}
.p-history-scroll-hint-text {
    font-size: 0.85rem;
    color: #888;
    letter-spacing: 0.05em;
    margin-right: 10px;
}
.p-history-scroll-hint-arrow {
    display: inline-block;
    width: 40px;
    height: 1px;
    background-color: #999;
    position: relative;
    animation: swipeArrowAnim 1.5s infinite ease-in-out;
}
.p-history-scroll-hint-arrow::after {
    content: "";
    position: absolute;
    right: 0;
    top: -4px;
    width: 8px;
    height: 8px;
    border-top: 1px solid #999;
    border-right: 1px solid #999;
    transform: rotate(45deg);
}
.p-history-table-container {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    background: #fff;
}
.p-history-table-container::-webkit-scrollbar {
    height: 6px;
}
.p-history-table-container::-webkit-scrollbar-track {
    background: #f9f9f9;
}
.p-history-table-container::-webkit-scrollbar-thumb {
    background: #d9d9d9;
}
.p-history-table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    text-align: center;
    table-layout: fixed;
}
.p-history-table th,
.p-history-table td {
    padding: 1.2em 1.5em;
    border: 1px solid #e5dfd3;
    white-space: nowrap;
    font-size: 0.95rem;
    color: var(--c-text-main);
    background: #fff;
    font-weight: normal;
}
.p-history-table th {
    background-color: #fafaf8;
    color: var(--color-gold-text);
}
.p-history-table th:first-child {
    position: sticky;
    left: 0;
    background-color: #fafaf8;
    z-index: 2;
}
.p-history-table td:first-child {
    position: sticky;
    left: 0;
    background-color: #fff;
    z-index: 2;
}
@media screen and (max-width: 767px) {
    .p-history-table-wrapper {
        padding: 0 6%;
        margin: 8vw auto;
    }
    .p-history-table th,
    .p-history-table td {
        padding: 1em 1.2em;
        font-size: 0.85rem;
    }
}

/* ==========================================================================
   治療実績 詳細ページ用画像ブロック (余白・サイズ調整版)
   ========================================================================== */
.case-detail-block {
    width: 100%;
    /* 上の余白を多めに（大タイトルとの間隔確保）、下は標準に */
    margin-top: 6vw;
    margin-bottom: 4vw;
}

.case-images-stack {
    display: flex;
    flex-direction: column;
    gap: 6vw; 
    width: 100%;
}

.case-img-wrap {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
}

.case-img-wrap img {
    width: 100%;
    height: auto;
    display: block;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.case-label-elegant {
    display: flex;
    align-items: baseline;
    gap: 0.8em;
    /* 画像との下の余白を少なくして一体感を出す (12px → 4px) */
    margin-bottom: 4px; 
    padding-left: 2px;
}

.case-label-elegant .label-ja {
    font-family: "Shippori Mincho", "Yu Mincho", serif;
    /* 文字をワンサイズ小さく (1rem → 0.9rem ベース) */
    font-size: clamp(0.9rem, 2vw, 1rem); 
    color: var(--c-text-main);
    letter-spacing: 0.15em;
    line-height: 1;
}

.case-label-elegant .label-en {
    font-family: "Shippori Mincho", "Yu Mincho", serif;
    /* 英語も日本語のサイズに合わせて縮小 */
    font-size: 0.55rem;
    color: var(--color-gold-text);
    letter-spacing: 0.25em;
    text-transform: uppercase;
    line-height: 1;
}

/* =========================================================
   LP専用 追加CSS（インラインスタイル完全撤廃版）
   ========================================================= */

/* アイキャッチ画像のトリミング強制解除 */
.sub-visual-banner { height: auto !important; min-height: 0 !important; max-height: none !important; aspect-ratio: 2 / 3 !important; }
.sub-visual-banner__bg { background-size: cover !important; background-repeat: no-repeat !important; background-position: center top !important; }
@media screen and (min-width: 1024px) { .sub-visual-banner { border-top: 40px solid transparent !important; box-sizing: content-box !important; } }

/* 余白・文字装飾 */
.lp-mb-2em { margin-bottom: 2em !important; }
.lp-mb-3em { margin-bottom: 3em !important; }
.lp-mb-4em { margin-bottom: 4em !important; }
.lp-incho-name { font-size: 1.1rem; }
.lp-accent-text { font-weight: bold; color: #d43076; letter-spacing: 0.1em; }

/* 不正咬合 2カラム3段グリッド */
.lp-malocclusion-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-bottom: 2em; }
.lp-malocclusion-item { background: #fff; border: 1px solid #e5dfd3; border-radius: 8px; padding: 15px 10px; text-align: center; box-shadow: 0 4px 15px rgba(0,0,0,0.02); }
.lp-malocclusion-img { width: 100%; height: auto; margin-bottom: 10px; }
.lp-malocclusion-name { font-size: clamp(0.75rem, 2.5vw, 0.95rem); color: #333; font-weight: bold; margin: 0; letter-spacing: 0.05em; }
.lp-malocclusion-kana { font-size: 0.8em; font-weight: normal; display: block; }

/* 1カラムカード内のテキスト中央寄せ */
.lp-stat-card { text-align: center; }
.lp-stat-card .value-text-wrap { align-items: center !important; width: 100%; }
.lp-stat-label { font-size: 0.9rem; color: #666; margin-bottom: 0.5em; letter-spacing: 0.1em; }
.lp-stat-value { font-size: clamp(1.5rem, 4vw, 2rem); color: #d4af37; font-family: "Shippori Mincho", serif; line-height: 1.2; }

/* 各種デザインボックス */
.lp-notice-box { border: 1px dashed #ccc; background: #fafaf8; padding: 2em; border-radius: 8px; }
.lp-notice-title { display: block; font-weight: bold; color: #333; margin-bottom: 0.5em; }

.lp-alert-box { border: 1px solid #e02060; background: #fffcfd; padding: 2em; border-radius: 8px; }
.lp-alert-title { color: #e02060; text-align: center; margin-top: 0; margin-bottom: 1em; font-size: 1.1rem; letter-spacing: 0.1em; }
.lp-alert-list { color: #e02060; font-weight: bold; padding-left: 0; list-style: none; text-align: center; margin-bottom: 0; }
.lp-alert-list li { margin-bottom: 0.8em; }
.lp-alert-list li:last-child { margin-bottom: 0; }

.lp-price-box { background: #fafaf8; border: 1px solid #e5dfd3; border-radius: 8px; padding: 3em 2em; text-align: center; box-shadow: 0 4px 20px rgba(0,0,0,0.02); }
.lp-price-label { font-size: 1rem; color: #c59b27; margin-bottom: 0.8em; letter-spacing: 0.1em; }
.lp-price-total { font-size: clamp(2.5rem, 5vw, 3.5rem); font-family: 'Shippori Mincho', serif; color: #333; line-height: 1; margin-bottom: 0.5em; }
.lp-price-total span { font-size: 1.2rem; }
.lp-price-divider { width: 60%; height: 1px; background: #e5dfd3; margin: 1.5em auto; }
.lp-price-detail { font-size: 0.95rem; color: #555; margin: 0; letter-spacing: 0.05em; line-height: 1.6; }
.lp-price-detail strong { color: #d43076; font-weight: normal; }
.lp-price-detail span { font-size: 0.8rem; }

.lp-caution-box { background: #f9f9f9; border: 1px solid #eee; border-radius: 8px; padding: 2em; }
.lp-caution-title { color: #333; display: block; margin-bottom: 1em; font-size: 0.95rem; letter-spacing: 0.1em; font-weight: bold; }
.lp-caution-list { padding-left: 1.2em; font-size: 0.85rem; line-height: 2.0; color: #666; margin: 0; list-style-type: disc; }
.lp-caution-note { font-size: 0.9em; display: inline-block; margin-top: 0.2em; color: #888; }

/* テーブル調整 */
.lp-table-mb { margin-bottom: 3em !important; }
.lp-table-highlight { color: #e02060 !important; font-size: 1.1rem !important; font-weight: bold !important; }
.lp-table-center th, .lp-table-center td { text-align: center !important; }

/* 背景画像なし・絶対崩れないグラデーションCTAエリア */
.lp-cta-gradient { background: linear-gradient(to right, #e02060, #eb608f); color: #fff; text-align: center; padding: 4em 1em; border-radius: 8px; margin-bottom: 4em; box-shadow: 0 10px 25px rgba(224,32,96,0.2); }
.lp-cta-gradient-label { display: inline-block; border-bottom: 1px solid rgba(255,255,255,0.5); padding-bottom: 5px; margin-bottom: 15px; font-size: 1.1rem; letter-spacing: 0.1em; }
.lp-cta-gradient-price { font-family: 'Shippori Mincho', serif; font-size: clamp(2.2rem, 5vw, 3rem); line-height: 1.2; margin-bottom: 15px; }
.lp-cta-gradient-price span { font-size: 1.2rem; }
.lp-cta-gradient-desc { margin: 0; font-size: 0.95rem; line-height: 1.8; color: #fff; }

.value-card-top{margin:0 70px;}

.post-main-content h4 {
    position: relative;
    font-size: 1.1rem;
    font-weight: bold;
    color: #333;
    padding-left: 1em;
    margin-top: 2em;
    margin-bottom: 1em;
}
.post-main-content h4::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%) rotate(45deg); /* rotateを消せば正方形になります */
    width: 8px;
    height: 8px;
    background-color: #d4af37; /* テーマのゴールド */
}
/* ブログ内の画像を半分のサイズにするクラス */
.post-main-content img.img-half {
    max-width: 70%;
    height: auto;
    display: block;
    margin: 1.5em auto; /* 上下に余白をつけて中央寄せ */
}

/* ==========================================================================
   個別記事：前後の記事ナビゲーション（シンプル＆長文タイトル対応）
   ========================================================================== */
.post-navigation {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 4em;
    padding-top: 2.5em;
    border-top: 1px solid #e5e5e5;
    gap: 2em;
}

.post-navigation__prev,
.post-navigation__next {
    flex: 1;
    min-width: 0; /* フレックスアイテムの収縮エラーを防ぐおまじない */
}

.post-navigation__next {
    text-align: right;
}

.post-navigation__link {
    display: inline-block;
    max-width: 100%;
    text-decoration: none;
    color: #333;
    transition: opacity 0.3s ease;
}

.post-navigation__link:hover {
    opacity: 0.7;
}

.post-navigation__arrow {
    display: block;
    font-size: 0.85rem;
    color: #888;
    margin-bottom: 0.4em;
    letter-spacing: 0.05em;
}

.post-navigation__title {
    display: block;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #222;
    /* タイトルが長くなりすぎた場合に最大2行で省略（三点リーダー）表示にする設定 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* スマホ表示時の微調整 */
@media screen and (max-width: 768px) {
    .post-navigation {
        margin-top: 3em;
        padding-top: 2em;
        gap: 1em;
    }
    .post-navigation__title {
        font-size: 0.9rem;
    }
}

/* ==========================================================================
   一覧ページのページネーション（ページ送り）共通デザイン
   ========================================================================== */
.u-text-center ul.page-numbers {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 8px;
}

.u-text-center ul.page-numbers li {
    margin: 0;
}

.u-text-center ul.page-numbers a,
.u-text-center ul.page-numbers span.page-numbers {
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 40px;
    height: 40px;
    padding: 0 6px;
    background: #fff;
    border: 1px solid #e5e5e5;
    color: #333;
    text-decoration: none;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

/* 現在のページのスタイル */
.u-text-center ul.page-numbers span.current {
    background: #222;
    border-color: #222;
    color: #fff;
}

/* ホバー時のスタイル（サイトのトーンに合わせた上品なゴールド・ベージュ系） */
.u-text-center ul.page-numbers a:hover {
    background: #fdfbf7;
    border-color: #d4af37;
    color: #d4af37;
}

/* ==========================================================================
   新規追加：スクロール連動フェードアップ（高速化対応）
   ========================================================================== */
.js-fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 2.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

.js-fade-up.is-active {
    opacity: 1;
    transform: translateY(0);
}
/* =========================================================
   1カラム専用：高級サロン風エディトリアル（サイト調和版）
========================================================= */

:root {
  --ve-text-main: #333333;  /* サイト標準のテキストカラーに統一 */
  --ve-accent: #a89068;     /* サイト内の他見出しに馴染む上品なゴールドブラウン */
}

/* --- 干渉防止リセット --- */
.val-editorial,
.val-editorial * {
  box-sizing: border-box !important;
}

.val-editorial {
  width: 100% !important;
  padding: 40px 15px 60px !important;
  color: var(--ve-text-main) !important;
  font-family: inherit !important; /* サイト全体の標準フォントを継承 */
  line-height: 1.8;
  background-color: transparent !important;
}

/* --- ヘッダー（見出し） --- */
.val-editorial__header {
  text-align: center;
  margin: 0 0 35px 0 !important;
  padding: 0 !important;
}

.val-editorial__sub {
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  color: var(--ve-accent) !important;
  margin: 0 0 6px 0 !important;
  padding: 0 !important;
  text-transform: uppercase;
  font-weight: normal !important;
  font-family: inherit !important;
}

.val-editorial__title {
  font-size: 20px !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.5 !important;
  color: var(--ve-text-main) !important;
  font-family: inherit !important;
}

/* --- リスト全体（常に1カラム・縦積み） --- */
.val-editorial__list {
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 45px !important;
}

/* --- 各アイテム --- */
.val-editorial__item {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* --- 写真・バッジエリア --- */
.val-editorial__visual {
  position: relative;
  width: 100% !important;
  padding-top: 10px;
  padding-left: 10px;
  margin: 0 !important;
}

.val-editorial__img {
  width: 100% !important;
  overflow: hidden;
  background-color: #f5f5f5;
  aspect-ratio: 16 / 10;
  margin: 0 !important;
  border: none !important;
}

.val-editorial__img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* --- 円形バッジ（オーバーレイ） --- */
.val-editorial__badge {
  position: absolute;
  top: 0;
  left: 0;
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
  background-color: #ffffff !important;
  border: 1px solid #e0dad0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 2;
  box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.06) !important;
}

.val-editorial__badge-label {
  font-size: 8px !important;
  letter-spacing: 0.1em !important;
  color: var(--ve-accent) !important;
  line-height: 1 !important;
  margin: 0 0 2px 0 !important;
  padding: 0 !important;
  font-family: inherit !important;
}

.val-editorial__badge-num {
  font-size: 19px !important;
  font-weight: 400 !important;
  color: var(--ve-accent) !important;
  line-height: 1 !important;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important; /* 数字だけ美しく見せる */
  margin: 0 !important;
  padding: 0 !important;
}

/* --- テキストエリア --- */
.val-editorial__content {
  width: 100% !important;
  padding: 0 2px !important;
  margin: 0 !important;
}

.val-editorial__item-title {
  font-size: 17px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  line-height: 1.5 !important;
  color: var(--ve-text-main) !important;
  font-family: inherit !important;
}

.val-editorial__item-desc {
  font-size: 14px !important;
  line-height: 1.9 !important;
  letter-spacing: 0.04em !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #444444 !important;
  font-family: inherit !important;
  font-feature-settings: "palt";
}

.implant-parallax-banner {
  position: relative;
  width: 100%;
  height: 200px; /* 帯状にして上品に見せる */
  background-image: url('http://arcras.xsrv.jp/riowp/wp-content/uploads/2026/08/implant_topimg.webp');
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* パララックス指定（スマホ環境では scroll に切り替える等調整） */
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* =========================================================
   インプラント実績：「初めての方へ」完全準拠仕様
   （右肩下がり + 上下均等4pxゴールドライン + 上下動）
========================================================= */

:root {
  --strip-angle: 4.5deg;       /* 右肩下がりの傾斜角 */
  --strip-gold: #d8b76a;       /* サイト調和の明るいイエローゴールド */
  --strip-line-width: 4px;     /* 上下均等のゴールドラインの太さ */
}

/* --- 干渉防止リセット --- */
.implant-visual-strip,
.implant-visual-strip * {
  box-sizing: border-box !important;
}

/* --- 外枠（右肩下がり・上下両方に均等のゴールドライン） --- */
.implant-visual-strip {
  position: relative !important;
  width: 100% !important;
  height: 220px !important;    /* 「初めての方へ」に合わせた最適な高さ */
  margin: 25px 0 35px 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  /* 右肩下がり（時計回り）に傾ける */
  transform: skewY(var(--strip-angle)) !important;
  /* 上下両方に同じ4pxのソリッドなゴールドラインを指定 */
  border-top: var(--strip-line-width) solid var(--strip-gold) !important;
  border-bottom: var(--strip-line-width) solid var(--strip-gold) !important;
  border-left: none !important;
  border-right: none !important;
  border-image: none !important;
  background-color: #f5f5f5 !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05) !important;
}

/* --- マスク（写真を水平状態に戻す） --- */
.implant-visual-strip__mask {
  position: absolute !important;
  top: -20% !important;
  left: 0 !important;
  width: 100% !important;
  height: 140% !important;
  overflow: hidden !important;
  /* 傾斜の逆方向（反時計回り）に戻して写真を水平に保つ */
  transform: skewY(calc(var(--strip-angle) * -1)) !important;
}

/* --- 背景画像 ＋ 上下アニメーション --- */
.implant-visual-strip__bg {
  position: absolute !important;
  top: -10% !important;
  left: 0 !important;
  width: 100% !important;
  height: 120% !important;
  background-image: url('http://arcras.xsrv.jp/riowp/wp-content/uploads/2026/08/implant_topimg.webp') !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  z-index: 1 !important;
  /* 12秒かけてスムーズに上下往復 */
  animation: stripPanUpDown 12s ease-in-out infinite;
}

/* --- 上下移動のキーフレーム --- */
@keyframes stripPanUpDown {
  0% {
    transform: scale(1.18) translateY(-4%);
  }
  50% {
    transform: scale(1.18) translateY(4%);
  }
  100% {
    transform: scale(1.18) translateY(-4%);
  }
}

/* =========================================================
   PC・タブレット表示時（768px以上）
========================================================= */
@media (min-width: 768px) {
  .implant-visual-strip {
    height: 280px !important;
    margin: 35px 0 45px 0 !important;
  }
}

/* =========================================================
   安心して通える環境：斜め平行四辺形スライダー（白三角余白なし版）
========================================================= */

:root {
  --env-slider-speed: 28s;       /* 1周する時間（秒数） */
  --env-slider-gap: 3px;         /* 写真同士の斜めラインの隙間（0pxで完全密着） */
  --env-skew-deg: -12deg;        /* 斜めの傾斜角（マイナスを取ると反対向きに傾きます） */
}

/* 干渉防止リセット */
.env-slider,
.env-slider * {
  box-sizing: border-box !important;
}

/* --- 外枠 --- */
.env-slider {
  position: relative !important;
  width: 100% !important;
  margin: 30px 0 40px 0 !important;
  padding: 10px 0 !important;
  overflow: hidden !important;
  background-color: transparent !important;
}

/* --- スクロールコンテナ --- */
.env-slider__container {
  display: flex !important;
  width: max-content !important;
  gap: var(--env-slider-gap) !important;
  animation: envSlideFlow var(--env-slider-speed) linear infinite !important;
}

/* --- ホバー時にスクロールをゆっくり停止（任意） --- */
.env-slider:hover .env-slider__container {
  animation-play-state: paused !important;
}

/* --- 写真リストのトラック --- */
.env-slider__track {
  display: flex !important;
  gap: var(--env-slider-gap) !important;
  flex-shrink: 0 !important;
}

/* --- 各スライドアイテム（ここで枠そのものを斜めに傾ける！） --- */
.env-slider__item {
  position: relative !important;
  width: 230px !important;       /* スマホ表示での写真幅 */
  height: 150px !important;      /* スマホ表示での写真高さ */
  overflow: hidden !important;
  flex-shrink: 0 !important;
  /* 枠自体を平行四辺形に傾けるため白い三角形の空白が出ない */
  transform: skewX(var(--env-skew-deg)) !important;
  background-color: #eee !important;
  box-shadow: none !important;
}

/* --- 画像の設定（中の写真を水平に戻して綺麗に表示） --- */
.env-slider__item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  /* 傾けた枠の逆向きに補正しつつ、端が見切れないよう少し拡大 */
  transform: skewX(calc(var(--env-skew-deg) * -1)) scale(1.22) !important;
  transition: transform 0.6s ease !important;
}

/* ホバー時に写真が上品にズーム */
.env-slider__item:hover img {
  transform: skewX(calc(var(--env-skew-deg) * -1)) scale(1.3) !important;
}

/* --- 横流しアニメーション --- */
@keyframes envSlideFlow {
  0% {
    transform: translateX(0%);
  }
  100% {
    /* トラック1つ分 + 隙間1つ分を移動させてシームレスにループ */
    transform: translateX(calc(-50% - (var(--env-slider-gap) / 2)));
  }
}

/* =========================================================
   PC・タブレット表示時（768px以上）
========================================================= */
@media (min-width: 768px) {
  .env-slider {
    margin: 40px 0 50px 0 !important;
  }

  .env-slider__item {
    width: 320px !important;     /* PC：幅を広く */
    height: 190px !important;    /* PC：高さ */
  }
}

/* =========================================================
   1カラム専用：高級サロン風エディトリアル（サイト調和版）
========================================================= */

:root {
  --ve-text-main: #333333;
  --ve-accent: #a89068;
  --id-gold: #d8b76a;
  --id-gold-light: #e8d3a7;
  --id-text-main: #333333;
  --id-text-sub: #777777;
  --id-serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  --strip-angle: 4.5deg;
  --strip-line-width: 4px;
  --env-slider-speed: 28s;
  --env-slider-gap: 3px;
  --env-skew-deg: -12deg;
}

/* --- 干渉防止リセット --- */
.val-editorial,
.val-editorial *,
.stats-1col-section,
.stats-1col-section *,
.implant-visual-strip,
.implant-visual-strip *,
.implant-data-section,
.implant-data-section *,
.env-slider,
.env-slider * {
  box-sizing: border-box !important;
}

/* =========================================================
   1. 大切にしている3つのこと（エディトリアルカード）
========================================================= */
.val-editorial {
  width: 100% !important;
  padding: 40px 15px 60px !important;
  color: var(--ve-text-main) !important;
  font-family: inherit !important;
  line-height: 1.8;
  background-color: transparent !important;
}

.val-editorial__header {
  text-align: center;
  margin: 0 0 35px 0 !important;
  padding: 0 !important;
}

.val-editorial__sub {
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  color: var(--ve-accent) !important;
  margin: 0 0 6px 0 !important;
  padding: 0 !important;
  text-transform: uppercase;
  font-weight: normal !important;
  font-family: inherit !important;
}

.val-editorial__title {
  font-size: 20px !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.5 !important;
  color: var(--ve-text-main) !important;
  font-family: inherit !important;
}

.val-editorial__list {
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 45px !important;
}

.val-editorial__item {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.val-editorial__visual {
  position: relative;
  width: 100% !important;
  padding-top: 10px;
  padding-left: 10px;
  margin: 0 !important;
}

.val-editorial__img {
  width: 100% !important;
  overflow: hidden;
  background-color: #f5f5f5;
  aspect-ratio: 16 / 10;
  margin: 0 !important;
  border: none !important;
}

.val-editorial__img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.val-editorial__badge {
  position: absolute;
  top: 0;
  left: 0;
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
  background-color: #ffffff !important;
  border: 1px solid #e0dad0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 2;
  box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.06) !important;
}

.val-editorial__badge-label {
  font-size: 8px !important;
  letter-spacing: 0.1em !important;
  color: var(--ve-accent) !important;
  line-height: 1 !important;
  margin: 0 0 2px 0 !important;
  padding: 0 !important;
  font-family: inherit !important;
}

.val-editorial__badge-num {
  font-size: 19px !important;
  font-weight: 400 !important;
  color: var(--ve-accent) !important;
  line-height: 1 !important;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important;
  margin: 0 !important;
  padding: 0 !important;
}

.val-editorial__content {
  width: 100% !important;
  padding: 0 2px !important;
  margin: 0 !important;
}

.val-editorial__item-title {
  font-size: 17px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  line-height: 1.5 !important;
  color: var(--ve-text-main) !important;
  font-family: inherit !important;
}

.val-editorial__item-desc {
  font-size: 14px !important;
  line-height: 1.9 !important;
  letter-spacing: 0.04em !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #444444 !important;
  font-family: inherit !important;
  font-feature-settings: "palt";
}

/* =========================================================
   2. 安心して通える環境：斜め平行四辺形スライダー
========================================================= */
.env-slider {
  position: relative !important;
  width: 100% !important;
  margin: 30px 0 40px 0 !important;
  padding: 10px 0 !important;
  overflow: hidden !important;
  background-color: transparent !important;
}

.env-slider__container {
  display: flex !important;
  width: max-content !important;
  gap: var(--env-slider-gap) !important;
  animation: envSlideFlow var(--env-slider-speed) linear infinite !important;
}

.env-slider:hover .env-slider__container {
  animation-play-state: paused !important;
}

.env-slider__track {
  display: flex !important;
  gap: var(--env-slider-gap) !important;
  flex-shrink: 0 !important;
}

.env-slider__item {
  position: relative !important;
  width: 230px !important;
  height: 150px !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
  transform: skewX(var(--env-skew-deg)) !important;
  background-color: #eee !important;
  box-shadow: none !important;
}

.env-slider__item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  transform: skewX(calc(var(--env-skew-deg) * -1)) scale(1.22) !important;
  transition: transform 0.6s ease !important;
}

.env-slider__item:hover img {
  transform: skewX(calc(var(--env-skew-deg) * -1)) scale(1.3) !important;
}

@keyframes envSlideFlow {
  0% { transform: translateX(0%); }
  100% { transform: translateX(calc(-50% - (var(--env-slider-gap) / 2))); }
}

/* =========================================================
   3. 1カラム共通 実績カウンター（患者数・診療年数・インプラント累計）
========================================================= */
.stats-1col-section {
  width: 100% !important;
  margin: 20px 0 40px 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 40px !important;
}

.stats-1col-item {
  text-align: center !important;
  margin: 0 auto !important;
  padding: 20px 10px !important;
  max-width: 400px !important;
  width: 100% !important;
}

.stats-1col-item__sub {
  font-size: 10px !important;
  letter-spacing: 0.3em !important;
  color: var(--id-gold) !important;
  margin: 0 0 10px 0 !important;
  font-family: var(--id-serif) !important;
}

.stats-1col-item__border {
  width: 40px !important;
  height: 1px !important;
  background: var(--id-gold) !important;
  margin: 0 auto 15px !important;
}

.stats-1col-item__label {
  font-size: 13px !important;
  letter-spacing: 0.15em !important;
  color: var(--id-text-sub) !important;
  margin: 0 0 10px 0 !important;
}

.stats-1col-item__num-wrap {
  display: flex !important;
  align-items: baseline !important;
  justify-content: center !important;
  gap: 4px !important;
  margin: 0 0 15px 0 !important;
}

.stats-1col-item__num {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important;
  font-size: 52px !important;
  font-weight: 300 !important;
  color: var(--id-gold) !important;
  line-height: 1 !important;
  letter-spacing: 0.02em !important;
}

.stats-1col-item__unit {
  font-size: 15px !important;
  color: var(--id-text-main) !important;
  letter-spacing: 0.1em !important;
}

.stats-1col-item__border-bottom {
  width: 40px !important;
  height: 1px !important;
  background: var(--id-gold) !important;
  margin: 0 auto !important;
}

/* =========================================================
   4. インプラント実績：パララックス画像帯（右肩下がり＋均等4pxライン）
========================================================= */
.implant-visual-strip {
  position: relative !important;
  width: 100% !important;
  height: 220px !important;
  margin: 25px 0 35px 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transform: skewY(var(--strip-angle)) !important;
  border-top: var(--strip-line-width) solid var(--id-gold) !important;
  border-bottom: var(--strip-line-width) solid var(--id-gold) !important;
  border-left: none !important;
  border-right: none !important;
  background-color: #f5f5f5 !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05) !important;
}

.implant-visual-strip__mask {
  position: absolute !important;
  top: -20% !important;
  left: 0 !important;
  width: 100% !important;
  height: 140% !important;
  overflow: hidden !important;
  transform: skewY(calc(var(--strip-angle) * -1)) !important;
}

.implant-visual-strip__bg {
  position: absolute !important;
  top: -10% !important;
  left: 0 !important;
  width: 100% !important;
  height: 120% !important;
  background-image: url('http://arcras.xsrv.jp/riowp/wp-content/uploads/2026/08/implant_topimg.webp') !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  z-index: 1 !important;
  animation: stripPanUpDown 12s ease-in-out infinite;
}

@keyframes stripPanUpDown {
  0% { transform: scale(1.18) translateY(-4%); }
  50% { transform: scale(1.18) translateY(4%); }
  100% { transform: scale(1.18) translateY(-4%); }
}

/* =========================================================
   5. インプラント実績セクション ＋ スクロール案内（先端切れ解消構造）
========================================================= */
.implant-data-section {
  width: 100% !important;
  margin: 20px 0 40px 0 !important;
  padding: 0 !important;
}

.implant-table-guide {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  margin: 0 0 14px 0 !important;
  padding: 10px 30px 10px 0 !important;
  overflow: visible !important;
}

.implant-table-guide__text {
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  color: var(--id-text-sub) !important;
  font-family: var(--id-serif) !important;
  line-height: 1 !important;
}

.implant-table-guide__arrow {
  position: relative !important;
  display: inline-block !important;
  width: 45px !important;
  height: 12px !important;
  overflow: visible !important;
  animation: scrollArrowMoveSafe 2.2s ease-in-out infinite !important;
}

.implant-table-guide__arrow::before {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 0 !important;
  width: 100% !important;
  height: 1px !important;
  background-color: var(--id-gold) !important;
  transform: translateY(-50%) !important;
}

.implant-table-guide__arrow::after {
  content: "" !important;
  position: absolute !important;
  right: 1px !important;
  top: 50% !important;
  width: 6px !important;
  height: 6px !important;
  border-top: 1px solid var(--id-gold) !important;
  border-right: 1px solid var(--id-gold) !important;
  transform: translateY(-50%) rotate(45deg) !important;
  transform-origin: center !important;
}

@keyframes scrollArrowMoveSafe {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}

/* =========================================================
   6. 横スクロールテーブル（左端列「年度」横書き1行固定）
========================================================= */
.implant-table-wrap {
  width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  margin: 0 0 40px 0 !important;
  padding-bottom: 12px !important;
}

.implant-table-wrap::-webkit-scrollbar {
  height: 4px !important;
}
.implant-table-wrap::-webkit-scrollbar-track {
  background: #f1f1f1 !important;
}
.implant-table-wrap::-webkit-scrollbar-thumb {
  background: var(--id-gold-light) !important;
  border-radius: 2px !important;
}

.implant-table {
  width: max-content !important;
  min-width: 100% !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  background: transparent !important;
  border: none !important;
}

.implant-table thead tr {
  border-top: 1px solid var(--id-gold) !important;
  border-bottom: 1px solid #e0e0e0 !important;
}
.implant-table tbody tr {
  border-bottom: 1px solid #eeeeee !important;
}
.implant-table tbody tr:last-child {
  border-bottom: 1px solid var(--id-gold) !important;
}

.implant-table th,
.implant-table td {
  padding: 16px 14px !important;
  text-align: center !important;
  border: none !important;
  background: transparent !important;
  font-size: 14px !important;
  color: var(--id-text-main) !important;
  white-space: nowrap !important;
}

/* 「年度」など漢字が縦書きに改行されるのを完全に防止 */
.implant-table th {
  text-align: left !important;
  font-family: var(--id-serif) !important;
  color: var(--id-gold) !important;
  letter-spacing: 0.08em !important;
  min-width: 115px !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  vertical-align: middle !important;
}

.implant-table thead td {
  font-family: var(--id-serif) !important;
  font-size: 15px !important;
  color: #555555 !important;
}

.implant-table tbody td {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important;
  font-size: 16px !important;
}

/* =========================================================
   7. PC・タブレット表示時のレスポンシブ
========================================================= */
@media (min-width: 768px) {
  .implant-visual-strip {
    height: 280px !important;
    margin: 35px 0 45px 0 !important;
  }
  .env-slider {
    margin: 40px 0 50px 0 !important;
  }
  .env-slider__item {
    width: 320px !important;
    height: 190px !important;
  }
}

/* =========================================================
   【最終デザイン】高級メッシュグラデーション（境界線なし・iOSバグ対応）
========================================================= */

/* --- 1. 親要素の余白最適化 --- */
.val-aurora-wrapper {
  position: relative !important;
  background-color: #ffffff !important;
  z-index: 1 !important;
  /* 上下に適切なパディングを設け、先ほどの不自然な空白を消し去ります */
  padding: 4vw 0 6vw 0 !important;
  margin: 0 !important;
}

/* 内部要素（文字やカード）を最前面に保護 */
.val-aurora-wrapper > .section-inner,
.val-aurora-wrapper > .val-widget-container {
  position: relative !important;
  z-index: 10 !important;
}

/* --- 2. 背景：純白ベースに光を重ねる --- */
.val-bg-aurora {
  position: absolute !important;
  top: 0 !important; bottom: 0 !important;
  left: 0 !important; right: 0 !important;
  overflow: hidden !important;
  z-index: 0 !important;
  pointer-events: none !important;
  background-color: #ffffff !important;
}

/* --- 3. 境界線のない光の粒子（メッシュグラデーション） --- */
.val-bg-aurora::before,
.val-bg-aurora::after {
  content: "" !important;
  position: absolute !important;
  /* 画面幅の2倍の巨大な円を作り、境界線を完全になくす */
  width: 200% !important;
  height: 200% !important;
  top: -50% !important;
  left: -50% !important;
  pointer-events: none !important;
}

/* 左上からじんわり明滅する光 */
.val-bg-aurora::before {
  /* 色が黒ずむiOSバグを防ぐため、透明部分を rgba(255,255,255,0) の白透かしで完全指定 */
  background: radial-gradient(circle at 35% 35%, rgba(224, 32, 96, 0.04) 0%, rgba(255, 255, 255, 0) 50%) !important;
  animation: meshPulse1 12s ease-in-out infinite alternate !important;
}

/* 右下からじんわり明滅する光 */
.val-bg-aurora::after {
  background: radial-gradient(circle at 65% 65%, rgba(235, 96, 143, 0.06) 0%, rgba(255, 255, 255, 0) 50%) !important;
  animation: meshPulse2 15s ease-in-out infinite alternate !important;
}

/* --- 4. 上品な明滅・浮遊アニメーション --- */
@keyframes meshPulse1 {
  0% { transform: scale(1) translate(0%, 0%); opacity: 0.6; }
  100% { transform: scale(1.1) translate(3%, 3%); opacity: 1; }
}
@keyframes meshPulse2 {
  0% { transform: scale(1) translate(0%, 0%); opacity: 0.6; }
  100% { transform: scale(1.15) translate(-3%, -3%); opacity: 1; }
}

/* 不要になった古いクラスは完全非表示 */
.val-bg-aurora__blob { display: none !important; }