/* =======================================
    1. Global Styles
    ======================================= */
.implant__body {
    /* 日本語フォントを優先し、既存サイトの行間・字間に合わせる */
    font-family: 'Noto Sans JP', "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
    color: #333;
    line-height: 1.8;
    letter-spacing: 0.05em;
}
/* =======================================
    2. Navigation & Utility (Menu, Overlay)
    ======================================= */
/* ハンバーガーメニュー用トランジション */
#mobile-menu {
    transition: transform 0.3s ease-in-out;
}
.menu-open #mobile-menu {
    transform: translateX(0);
}
.is-menu-closed #mobile-menu {
    transform: translateX(100%);
}

/* ボタンホバーエフェクト（再利用しやすいように整理） */
.c-btnHover {
    transition: all 0.3s ease;
}
.c-btnHover:hover {
    opacity: 0.8;
    transform: translateY(-2px);
}
/* マーカー風の下線 */
.c-markerHighlight {
    background: linear-gradient(transparent 60%, #e0f7fa 60%);
    display: inline;
}
/* =======================================
    3. Section Title Styles
    ======================================= */
/* 元のCSS設定をTailwindクラスを優先して使用するため、カスタムCSSは削除または最小化。
    ここでは元のCSSのclass名を残しておきますが、HTML側ではTailwindを使用。
*/
.section-title {
    position: relative;
    display: inline-block;
    margin-bottom: 40px;
    color: #00adc3;
}
/* ... その他、Section Title関連のカスタムスタイルはHTML側のTailwindクラスに統合 ... */

/* =======================================
    Tailwind CDNなしで同じ見た目にするための
    “このHTMLで使っているクラスのみ”を定義した軽量ユーティリティCSS
   ======================================= */
:root{
    --theme-main:#00adc3;
    --theme-dark:#333333;
    --theme-accent:#f09300;
    --bg-gray:#f9f9f9;
}
/* Reset-ish */
*,*::before,*::after{box-sizing:border-box;}
/* .implant__body *,.implant__body *::before,.implant__body *::after{box-sizing:border-box;} */
/* html{scroll-behavior:smooth;}
body{margin:0;background:#fff;} */
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
.u-group{position:relative;}
/* Layout */
.u-fixed{position:fixed;}
.u-absolute{position:absolute;}
.u-relative{position:relative;}
.u-inset-0{top:0;right:0;bottom:0;left:0;}
.inset-y-0{top:0;bottom:0;}
.u-top-0{top:0;}
.u-left-0{left:0;}
.u-right-0{right:0;}
.u-bottom-0{bottom:0;}
.u-bottom-1 {bottom: 0.25rem;}
.u-z-0{z-index:0;}
.u-z-1{z-index:1;}
.u-z-n1{z-index:-1;}
/* .u-z-10{z-index:10;} */
.u-z-40{z-index:40;}
.u-overflow-hidden{overflow:hidden;}
.u-hidden{display:none;}
.u-block{display:block;}
.inline{display:inline;}
.u-inline-block{display:inline-block;}
.u-w-full{width:100%;}
.u-h-full{height:100%;}
.u-h-64{height:16rem;}
.u-h-24{height:24rem;}
.u-w-1-3{width:33.333333%;}
.u-w-12{width:3rem;}
.u-h-1{height:.25rem;}
.u-h-2 {height:.5rem;}
.u-h-3 {height:.75rem;}
.u-w-32{width:8rem;}
.u-h-32{height:8rem;}
.u-w-16{width:4rem;}
.u-h-16{height:4rem;}
.u-max-w-7xl{max-width:80rem;}
.u-max-w-4xl{max-width:56rem;}
.u-max-w-3xl{max-width:48rem;}
.max-w-2xl{max-width:42rem;}
.max-w-xl{max-width:36rem;}
.max-w-l{max-width:32rem;}
.u-mx-2 {margin-left: 0.5rem;margin-right: 0.5rem;}
.u-mx-auto{margin-left:auto;margin-right:auto;}
.u-mt-1{margin-top:.25rem;}
.u-mt-2{margin-top:.5rem;}
.u-mt-3{margin-top:.75rem;}
.u-mt-4{margin-top:1rem;}
.mt-5{margin-top:1.25rem;}
.u-mt-8{margin-top:2rem;}
.u-mt-10{margin-top:2.5rem;}
.u-mt-12{margin-top:3rem;}
.u-mb-2{margin-bottom:.5rem;}
.u-mb-4{margin-bottom:1rem;}
.u-mb-6{margin-bottom:1.5rem;}
.u-mb-12{margin-bottom:3rem;}
.u-mb-16{margin-bottom:4rem;}
.u-mb-20{margin-bottom:5rem;}
.u-mb-24{margin-bottom:6rem;}
.u-mb-32{margin-bottom:8rem;}
.u-ml-2 {margin-left: 0.5rem;}
.u-mr-1 {margin-right: 0.25rem;}
.u-mr-2 {margin-right: 0.5rem;}
.u-mr-3 {margin-right: 0.75rem;}
.u-p-3{padding:.75rem;}
.u-p-6{padding:1.5rem;}
.u-p-8{padding:2rem;}
.u-px-1{padding-left:.25rem;padding-right:.25rem;}
.u-px-3 {padding-left: 0.75rem;padding-right: 0.75rem;}
.u-px-4{padding-left:1rem;padding-right:1rem;}
.u-px-8{padding-left:2rem;padding-right:2rem;}
.u-px-10{padding-left:2.5rem;padding-right:2.5rem;}
.u-py-1{padding-top:.25rem;padding-bottom:.25rem;}
.u-py-20{padding-top:5rem;padding-bottom:5rem;}
.u-py-4{padding-top:1rem;padding-bottom:1rem;}
.u-py-5{padding-top:1.25rem;padding-bottom:1.25rem;}
.u-py-16 {padding-top: 4rem;padding-bottom: 4rem;}
.u-pt-10{padding-top:2.5rem;}
.u-pt-16{padding-top:4rem;}
.u-pb-8 {padding-bottom: 2rem;}
.u-pl-3{padding-left:.75rem;}
.u-pl-8{padding-left:2rem;}
.u-gap-4{gap:1rem;}
.u-gap-6{gap:1.5rem;}
.u-gap-10{gap:2.5rem;}
.u-space-y-6> :not([hidden])~:not([hidden]){margin-top:1.5rem;}
.u-flex{display:flex;}
.u-inline-flex{display:inline-flex;}
.u-flex-col{flex-direction:column;}
.u-flex-1{flex:1 1 0%;}
.u-items-center{align-items:center;}
.u-items-start{align-items:flex-start;}
.u-justify-center{justify-content:center;}
.justify-start{justify-content:flex-start;}
.u-text-center{text-align:center;}
.text-left{text-align:left;}
.u-text-justify{text-align:justify;}
.u-flex-shrink-0{flex-shrink:0;}
.u-origin-bottom{transform-origin:bottom;}
.u-transform{transform:translateZ(0);}
.u-skew-x-12{transform:skewX(12deg);}
.translate-x-full{transform:translateX(100%);}
.u-rounded{border-radius:.25rem;}
.u-rounded-lg{border-radius:.5rem;}
.u-rounded-xl{border-radius:.75rem;}
.u-rounded-2xl{border-radius:1rem;}
.u-rounded-3xl{border-radius:1.5rem;}
.u-rounded-full{border-radius:9999px;}
.u-rounded-br-full{border-bottom-right-radius:9999px;}
.u-rounded-tl-full{border-top-left-radius:9999px;}
.u-object-fit-cover {object-fit: cover;}
/* Grid */
.u-grid{display:grid;}
/* Typography */
.u-font-sans{font-family:'Noto Sans JP', sans-serif;}
.font-serif{font-family:'Noto Serif JP', serif;}
.u-font-bold{font-weight:700;}
.u-text-xs{font-size:.75rem;line-height:1rem;}
.u-text-sm{font-size:.875rem;line-height:1.25rem;}
.u-text-base{font-size:1rem;line-height:1.5rem;}
.u-text-lg{font-size:1.125rem;line-height:1.75rem;}
.u-text-xl{font-size:1.25rem;line-height:1.75rem;}
.u-text-2xl{font-size:1.5rem;line-height:2rem;}
.u-text-3xl{font-size:1.875rem;line-height:2.25rem;}
.text-4xl{font-size:2.25rem;line-height:2.5rem;}
.text-5xl{font-size:3rem;line-height:1;}
.u-leading-none{line-height:1;}
.u-leading-tight{line-height:1.25;}
.u-leading-relaxed{line-height:1.625;}
.u-tracking-tight{letter-spacing:-.025em;}
.u-tracking-widest{letter-spacing:.1em;}
.u-uppercase{text-transform:uppercase;}
.u-text-white{color:#fff;}
.u-text-gray-800{color:#1f2937;}
.u-text-gray-700{color:#374151;}
.u-text-gray-600{color:#4b5563;}
.u-text-gray-500{color:#6b7280;}
.u-text-gray-400{color:#9ca3af;}
.u-text-gray-300{color:#d1d5db;}
.u-text-theme-main{color:var(--theme-main);}
.u-text-theme-accent{color:var(--theme-accent);}
/* Background */
.u-bg-white{background:#fff;}
.u-bg-gray-50{background:#f9fafb;}
.u-bg-gray-100{background:#f3f4f6;}
.u-bg-gray-100{background:#f3f4f6;}
.u-bg-bg-gray{background:var(--bg-gray);}
.u-bg-theme-main{background:var(--theme-main);}
.u-bg-theme-accent{background:var(--theme-accent);}
.u-bg-theme-main-5{background:rgba(0,173,195,0.05);}
.u-bg-00adc3-20{background:rgba(0,173,195,0.20);}
.u-bg-cyan-50{background:#ecfeff;}
.u-bg-blue-50{background:#eff6ff;}
.u-bg-orange-50{background:#fff7ed;}
.u-bg-e0f7fa{background:#e0f7fa;}
.u-bg-pattern-cubes{background-image:url('https://www.transparenttextures.com/patterns/cubes.png');}
/* Opacity helpers (このHTMLで必要な組み合わせのみ) */
.u-bg-black.u-bg-opacity-50{background:rgba(0,0,0,0.5);}
.u-text-white.u-text-opacity-90{color:rgba(255,255,255,0.9);}
.u-opacity-10{opacity:.10;}
.u-opacity-80{opacity:.80;}
.u-opacity-5{opacity:.05;}
/* Borders */
.u-border{border-width:1px;border-style:solid;border-color:#e5e7eb;}
.u-border-2{border-width:2px;border-style:solid;}
.u-border-l-4{border-left-width:4px;border-left-style:solid;}
.u-border-b-2{border-bottom-width:2px;border-bottom-style:solid;}
.u-border-gray-100{border-color:#f3f4f6;}
.u-border-gray-200{border-color:#e5e7eb;}
.u-border-gray-300{border-color:#d1d5db;}
.u-border-blue-100{border-color:#dbeafe;}
.u-border-white{border-color:#fff;}
.u-border-transparent{border-color:transparent;}
.u-border-theme-main{border-color:var(--theme-main);}
.u-border-theme-main-50{border-color:rgba(0,173,195,0.5);}
.u-border-theme-accent{border-color:var(--theme-accent);}
/* Shadows */
.u-shadow-sm{box-shadow:0 1px 2px rgba(0,0,0,.06);}
.u-shadow-md{box-shadow:0 4px 6px rgba(0,0,0,.10);}
.u-shadow-lg{box-shadow:0 10px 15px rgba(0,0,0,.10);}
.u-shadow-xl{box-shadow:0 20px 25px rgba(0,0,0,.12);}
/* Transitions */
.u-transition{transition:all .2s ease;}
.u-transition-all{transition:all .2s ease;}
.u-transition-transform{transition:transform .2s ease;}
.u-duration-200{transition-duration:.2s;}
.u-duration-300{transition-duration:.3s;}
/* Hover / Group hover */
.u-hover-underline:hover{text-decoration:underline;}
.u-hover-shadow-lg:hover{box-shadow:0 10px 15px rgba(0,0,0,.12);}
.u-hover-bg-gray-100:hover{background:#f3f4f6;}
.u-hover-bg-theme-main:hover{background:var(--theme-main);}
.u-hover-text-white:hover{color:#fff;}
.u-hover-bg-orange-500:hover{background:#f97316;}
.u-hover-scale-105:hover{transform:scale(1.05);}
.u-hover--translate-y-1:hover{transform:translateY(-.25rem);}
.u-group:hover .u-group-hover-translate-x-1{transform:translateX(.25rem);}
.u-group:hover .u-group-hover\:scale-105{transform:scale(1.05);}
.u-group:hover .u-group-hover\:text-theme-main{color:var(--theme-main);}
/* Misc */
.u-w-max{width:max-content;}
/* .u-z-n10{z-index:-10;} */
.u-border-l-4.u-border-theme-main{border-left-color:var(--theme-main);}
.u-border-l-4.u-border-gray-300{border-left-color:#d1d5db;}
/* Responsive: sm (>=640), md (>=768), lg (>=1024), xl (>=1280) */
@media (min-width:640px){
    .u-sm-pb-16{padding-bottom:4rem;}
    .u-sm-mt-12{margin-top:3rem;}
    .u-sm-mt-5{margin-top:1.25rem;}
    .u-sm-text-center{text-align:center;}
    .u-sm-text-4xl{font-size:2.25rem;line-height:2.5rem;}
    .u-sm-mx-auto{margin-left:auto;margin-right:auto;}
    .u-sm-max-w-xl{max-width:36rem;}
    .u-sm-flex{display:flex;}
    .u-sm-justify-center{justify-content:center;}
    .u-sm-mt-0{margin-top:0;}
    .u-sm-ml-3{margin-left:.75rem;}
    .u-sm-px-6{padding-left:1.5rem;padding-right:1.5rem;}
}
@media (min-width:768px){
    .u-md-pt-24{padding-top:6rem;}
    .u-md-pt-20{padding-top:5rem;}
    .u-md-pb-20{padding-bottom:5rem;}
    .u-md-mt-16{margin-top:4rem;}
    .u-md-text-center {text-align:center;}
    .u-md-text-3xl{font-size:1.875rem;line-height:2.25rem;}
    .u-md-text-4xl{font-size:2.25rem;line-height:2.5rem;}
    .u-md-text-5xl{font-size:3rem;line-height:1;}
    .u-md-text-base{font-size:1rem;line-height:1.5rem;}
    .u-md-text-lg{font-size:1.125rem;line-height:1.75rem;}
    .u-md-text-xl{font-size:1.25rem;line-height:1.75rem;}
    .u-md-inline{display:inline;}
    .u-md-hidden{display:none;}
    .u-md-flex-row{flex-direction:row;}
    .u-md-w-auto{width:auto;}
    .u-md-p-16{padding:4rem;}
    .u-md-scale-105{transform:scale(1.05);}
    .u-md-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
    .u-md-block{display:block;}
}
@media (min-width:1024px){
    .u-lg-block{display:block;}
    .u-lg-bg-transparent{background:transparent;}
    .u-lg-max-w-2xl{max-width:42rem;}
    .u-lg-w-full{width:100%;}
    .u-lg-pb-28{padding-bottom:7rem;}
    .lg\:pt-20{padding-top:5rem;}
    .u-lg-mt-20{margin-top:5rem;}
    .u-lg-text-left{text-align:left;}
    .u-lg-flex{display:flex;}
    .u-lg-justify-start{justify-content:flex-start;}
    .u-lg-px-8{padding-left:2rem;padding-right:2rem;}
    .u-lg-absolute{position:absolute;}
    .u-lg-inset-y-0{top:0;bottom:0;}
    .u-lg-right-0{right:0;}
    .u-lg-w-1-3{width:33.333333%;}
    .u-lg-w-1-4{width:40%;}
    .u-lg-h-full{height:100%;}
    .u-lg-object-fit-contain {object-fit: contain;}
}
@media (min-width:1280px){
    .u-xl-pb-32{padding-bottom:8rem;}
    .u-xl-mt-28{margin-top:7rem;}
}

.m-adjust {
    margin-top: -100px;
    padding-top: 100px;
}
@media screen and (max-width: 640px) {
    .m-adjust {
        margin-top: -60px;
        padding-top: 60px;
    }
}