@charset "UTF-8";

/*
Theme Name:EIKODO
*/

:root{--font_serif: "Noto Serif JP", serif; --color_main: #009BB3;}
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', sans-serif; color: #1a1a1a; background: #fff; }

.font-serif{font-family: var(--font_serif);}

.sp,
.br-tab,
.br-sp{display: none;}

/* Nav */
.nav { display: flex; justify-content: space-between; align-items: center; padding: 1rem 2rem; border-bottom: 0.5px solid #e0e0e0; background: #fff; }
.nav-logo { font-size: 16px; font-weight: 500; letter-spacing: 0.06em; }
.btn-primary { display: inline-block; background: var(--color_main); color: #fff; font-size: 17px; font-weight: bold; padding: 11px 24px; border-radius: 12px; border: none; cursor: pointer; text-decoration: none; }
.btn-primary:hover { background: #333; }
.btn-outline { display: inline-block; background: transparent; color: #666; font-size: 17px; font-weight: 500; padding: 0.75em 3em; border-radius: 17px; border: 0.5px solid #999; cursor: pointer; text-decoration: none; }
.btn-outline:hover { background: #f5f5f5; }

/* Service Nav */
.service-nav {display: flex; justify-content: center; gap: 8px; padding: 1rem 2rem; border-bottom: 0.5px solid #e0e0e0; overflow-x: auto; background: #fff; }
.snav-btn { flex-shrink: 0; font-size: 13px; padding: 6px 16px; border-radius: 99px; border: 0.5px solid #999; background: transparent; cursor: pointer; color: #1a1a1a; text-decoration: none; }
.snav-btn:hover { background: #f5f5f5; }

/* Area Banner */
.area-banner { background: #f5f5f5; border-bottom: 0.5px solid #e0e0e0; padding: 1.25rem 2rem; text-align: center; }
.area-banner .sub { font-size: 13px; color: #666; margin-bottom: 8px; }
.area-tags { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 8px; }
.area-tag { font-size: 13px; font-weight: 500; padding: 4px 14px; border-radius: 99px; border: 0.5px solid #999; color: #1a1a1a; background: #fff; }
.area-catch { font-size: 15px; font-weight: 500; color: #1a1a1a; }

/* Hero */
.hero { padding: 4.5rem 2rem 3.5rem; text-align: center; }
.hero-badge { display: inline-block; font-size: 28px; font-weight: bold; margin-bottom: 1.5rem; }
.hero h1 { font-size: 2.4rem; font-weight: 500; line-height: 1.25; margin-bottom: 1rem; }
.hero p { font-size: 19px; font-weight: bold; max-width: 460px; margin: 0 auto 2rem; line-height: 1.7; }

/* Divider */
.divider { border: none; border-top: 0.5px solid #e0e0e0; }

/* Section */
.section { padding: 4rem 2rem; max-width: 1012px; margin: 0 auto; }
.section-label { font-size: 11px; letter-spacing: 0.1em; color: #666; text-transform: uppercase; margin-bottom: 0.5rem; }
.section h2 { font-size: 22px; font-weight: 500; margin-bottom: 0.75rem; }
.section-lead { font-size: 18px; font-family: var(--font_serif); color: #4d4d4d; line-height: 1.7; letter-spacing: 0.05em; margin-bottom: 2rem; max-width: 560px; }
.section-tag { display: inline-block; font-size: 12px; padding: 3px 12px; border-radius: 99px; margin-bottom: 1rem; background: #f5f5f5; color: #666; border: 0.5px solid #e0e0e0; }
.section h2.section-headline{margin-bottom: 5em; font-size: 24px; font-weight: bold; text-align: center; letter-spacing: 0.3em;}
.section h2.section-headline .en{display: block; font-family: var(--font_serif); color: var(--color_main); font-size: 2.916em; letter-spacing: 0.4em;}
.section-box{display: flex; justify-content: space-between;}
.section-main{margin-bottom: 0.25em; font-family: var(--font_serif); font-size: 45.39px; letter-spacing: 0.1em;}
.section-img{padding-left: 10px;}

/* Worries */
.worries { display: flex; flex-direction: column; margin-bottom: 2.5rem; border: 0.5px solid var(--color_main); border-radius: 12px; overflow: hidden; }
.worry-item { display: flex; gap: 1rem; padding: 1rem 1.25rem 0.5rem; border-bottom: 0.5px solid var(--color_main); background: #fff; }
.worry-item:last-child { border-bottom: none; }
.worry-icon{width: 74px;}
.worry-text { font-size: 18px; line-height: 1.6;}
.worry-text strong {font-size: 1.327em; font-weight: 500; color: var(--color_main); display: block; }
.worry-text strong img{width: 24px; margin-right: 5px; position: relative; top: 3.5px;}
.worry-text-sub{padding-left: 1.6em;}

/* Reasons */
.reasons-label { font-size: 11px; letter-spacing: 0.1em; color: #666; text-transform: uppercase; margin-bottom: 1rem; }
.reasons { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin-bottom: 2.5rem; }
.reason-card {text-align: center; background: rgba(0, 155, 179, 0.6); border-radius: 17px; padding: 1.25rem;}
.reason-num { margin-bottom: 6px; }
.reason-num.badge{position: relative;}
.reason-num .badge-img{position: absolute; top: -30px; left: 0;}
.reason-card h3 { font-size: 21px; letter-spacing: 0.05em; font-weight: bold; color: #fff; margin-bottom: 5px; }
.reason-card h4 { font-size: 14px; font-weight: 500; margin-bottom: 5px; }
.reason-card p { font-size: 15px; line-height: 1.4; }
.reason-card-img{display: block; margin: 15px auto 0;}

/* Service Detail */
.service-detail { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 17px; overflow: hidden; margin-bottom: 2rem; }
.detail-card { background: #fff; }
.detail-card h4 { font-size: 14px; font-weight: 500; margin-bottom: 6px; }
.detail-card p { font-size: 13px; color: #666; line-height: 1.6; }
.detail-card img{width: 100%;}

/* Price Table */
.price-table-label { font-size: 11px; letter-spacing: 0.1em; color: #666; text-transform: uppercase; margin-bottom: 1rem; }
.price-table-wrap { margin-bottom: 1.25rem; overflow: hidden; }
.price-table { width: 100%; border-collapse: collapse; font-size: 20px; table-layout: fixed; }
.price-table thead tr { background: #c8c8c8; }
.price-table thead th { padding: 10px 16px; border-right: 2px solid #fff; text-align: left; font-weight: 500; font-size: 1.175em; color: #fff; text-align: center;}
.price-table thead th.eikodo-col { background-color: var(--color_main); font-size: 1.322em;}
.price-table thead th.other-price{background-color: #9e9c9c; font-size: 1.322em;}
.price-table thead tr th:last-child{border-right: none;}
.price-table tbody tr { border-bottom: 2px solid #fff; }
.price-table tbody tr:last-child { border-bottom: none; }
.price-table tbody td { background-color: #ececec; padding: 12px 16px; border-right: 2px solid #fff; vertical-align: middle; text-align: center; font-weight: bold;}
.price-table tbody td.item-name { color: #1a1a1a; }
.price-table tbody td.eikodo-price,
.price-table tbody td.other-price{font-size: 1.4585em; font-family: var(--font_serif);}
.price-table tbody td.eikodo-price .font-mini,
.price-table tbody td.other-price .font-mini{font-family: initial; font-size: 0.6em;}
.price-table tbody td.eikodo-price { background-color: rgba(0, 155, 179, 0.2); color: var(--color_main); }
.price-table tbody td.eikodo-price .att{display: block;}
.price-table tbody td.eikodo-price .font-mini br{display: none;}
.price-table tbody td.other-price { background-color: #ddd; }
.price-table tbody tr td:last-child{border-right: none;}
.price-table tfoot td { padding: 12px 16px; font-size: 13px; color: #666; border-top: 0.5px solid #e0e0e0; background: #f5f5f5; }

/* Coupon */
.coupon-block{margin-bottom: 2em;}
.coupon-headline{margin: 1em 0 ; text-align: center; color: var(--color_main); font-weight: 600; font-size: 23px;}
.coupon-text {display: block; font-size: 1.739em;}
.coupon-img img{width: 100%;}
.flow-btn-wrap { margin-bottom: 2.5rem; }

/* Kaitori */
.kaitori-block {margin: 1rem 0}
.kaitori-eyebrow { font-size: 11px; letter-spacing: 0.1em; color: #666; text-transform: uppercase; margin-bottom: 0.75rem; }
.kaitori-headline { font-size: 18px; font-weight: 500; line-height: 1.4; margin-bottom: 0.5rem; }
.kaitori-sub { font-size: 14px; color: #666; line-height: 1.7; margin-bottom: 1.5rem; }
.kaitori-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 1.5rem; }
.kaitori-pill { font-size: 13px; font-weight: bold; padding: 5px 14px; border-radius: 99px; border: 0.5px solid #999; color: #1a1a1a; background: #fff; }
.kaitori-free { display: inline-flex; align-items: center; gap: 8px; font-size: 30px; font-weight: 500; color: #fff; background: var(--color_main); border-radius: 17px; padding: 0.25em 1em 0.35em; }
.kaitori-free-badge { font-size: 0.633em; background: #fff; color: var(--color_main); border-radius: 99px; padding: 2px 10px 5px; }
.kaitori-free-sub{font-size: 0.366em; display: block; }

/* CTA Block */
.cta-block {padding: 1rem 0 3rem;}
.cta-block h3 { font-size: 23px; font-weight: 500; text-align: center; color: var(--color_main); }
.cta-lead { font-size: 40px; font-weight: 500; text-align: center; color: var(--color_main); margin-bottom: 1.75rem; line-height: 1.375; }
.cta-lead .font-red{color: #ff0000;}
.cta-lead .font-mini{font-size: 0.76em;}
.cta-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.cta-phone-card { display: flex; align-items: center; gap: 10px; background-image: linear-gradient(-90deg, #fbc600, #e8750a); border-radius: 17px; padding: 1.35rem 1rem; font-weight: bold;}
.cta-phone-icon{width: 34px; padding-top: 5px;}
.cta-phone-text{width: calc(100% - 39px);}
.cta-phone-card .store-name { font-size: 15px; color: #fff; }
.cta-phone-card .phone-num { font-size: 28px; line-height: 1;}
.cta-phone-card a { color: #fff; text-decoration: none; }
.cta-line-card { background-image: linear-gradient(-90deg, #a5c800, #06b155); border-radius: 17px; padding: 1.35rem 1rem; display: flex; align-items: center; gap: 10px; cursor: pointer; text-decoration: none; font-weight: bold;}
.line-icon {width: 66px;}
.line-label {font-size: 15x; color: #fff;}
.line-cta {color: #fff; font-size: 20.5px;letter-spacing: 0.05em;line-height: 1;}

/* BeforeAfter */
.before-after{margin: 2rem 0 4rem; display: flex; flex-direction: column; gap: 20px;}

/* Shop Info */
#shopinfo h2{margin-bottom: 1.5em;}
.shopinfo-main{font-size: 32px; color: var(--color_main); font-family: var(--font_serif); font-weight: bold; text-align: center; letter-spacing: 0.2em; line-height: 1.9375; margin-bottom: 1.5em;}
.shopinfo-sub{font-size: 29px; font-weight: bold; text-align: center; letter-spacing: 0.1em; line-height: 1.897; margin: 1.5em 0;}
.staff{display: flex; flex-wrap: wrap; gap: 24px;}
.staff-card{width: 219px; text-align: center; font-weight: bold; font-size: 22px; letter-spacing: 0.1em; line-height: 1.3;}
.shopinfo-message{margin: 2rem 0;}

/* Flow */
.flow-wrap { padding: 4rem 2rem;}
.flow-inner {background-color: rgba(0, 155, 179, 0.2); padding: 4rem 3rem 4rem 4rem; border-radius: 17px;}
#flow h2{margin-bottom: 1.5em;}
.flow-steps { display: flex; flex-direction: column; }
.flow-step { display: flex; gap: 1.25rem; padding: 1.25rem 0; border-bottom: 0.5px solid #e0e0e0; }
.flow-step:last-child { border-bottom: none; }
.step-num { font-size: 28.8px; color: #fff; font-weight: bold; line-height: 1; width: 178px; height: 178px; display: flex; justify-content: center; align-items: center; flex-direction: column; background-color: var(--color_main); border-radius: 50%; position: relative;}
.step-num .num{display: block; font-size: 1.81em;}
.step-num::before{content: ""; background: url('./img/img77.svg') no-repeat; width: 37px; height: 218px; position: absolute; bottom: -238px;}
.flow-step:last-child .step-num::before{display: none;}
.step-body{width: calc(100% - 178px);}
.step-body h3 { font-size: 51px; font-weight: 500; color: var(--color_main); }
.step-body p { font-size: 34px; line-height: 1.6; }
.step-body p img{margin-top: 1rem;}


/* Voice */
#voice h2{margin-bottom: 1.5em;}
.voice-card{width: 100%; background-color: rgba(0, 155, 179, 0.2); padding: 2rem; margin-bottom: 2rem;}
.voice-main{display: flex; align-items: center; gap: 2%; border-bottom: 1px solid var(--color_main); padding-bottom: 0.75em; margin-bottom: 0.75em; font-size: 23px; font-weight: 500; line-height: 1.135;}
.voice-title{font-size: 1.609em; font-weight: 600; color: var(--color_main);}
.voice-info{display: block; margin-top: 0.25em;}
.voice-message{font-size: 33px; line-height: 1.455;}
.voice-wrap .voice-card:nth-child(2n){background-color: rgba(0, 155, 179, 0.35);}
.voice-wrap .voice-card:last-child{margin-bottom: 0;}


/* FAQ */
.faq-wrap {margin: 0 auto;}
.faq-wrap h2{font-size: 39px; color: var(--color_main); border-bottom: 1px solid var(--color_main); padding-bottom: 2.5rem; margin-bottom: 0;}
.faq-item {font-size: 25px; font-weight: 500; border-bottom: 1px solid var(--color_main); padding: 2.5rem 0;}
.faq-q {font-size: 1.1064em; font-weight: bold; color: var(--color_main); margin-bottom: 6px;}



/* Store */
.store-section {padding: 4rem 2rem;}
#access h2{margin-bottom: 2.5em;}
.access-sub{text-align: center; font-size: 23px; letter-spacing: 0.01em; font-weight: 600; color: var(--color_main);}
.access-main{text-align: center; font-size: 40px; letter-spacing: 0.01em; font-weight: 600; color: var(--color_main);}
.access-button{width: 100%; max-width: 314px; margin: 2rem auto;}
.store-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 2rem;}
.store-card { border: 1px solid var(--color_main); border-radius: 17px; overflow: hidden; background: #fff; padding: 1rem 3rem;}
.store-card-header {margin-bottom: 1.25rem;}
.store-card-header h3 { font-size: 34px; font-weight: 600; color: var(--color_main); margin-bottom: 6px; }
.store-meta { font-size: 25px; line-height: 1.44; font-weight: 600; margin-bottom: 2px; }
.store-meta a { color: #1a1a1a; text-decoration: none;}
.store-map {width: 100%; object-fit: cover; aspect-ratio: 375 / 294;  border: none; display: block; }
.store-card-footer { padding: 1rem 1.25rem 1rem 0; border-top: 0.5px solid #e0e0e0; }
.store-link { font-size: 13px; padding: 6px 14px; border-radius: 99px; border: 0.5px solid #999; background: transparent; color: #1a1a1a; text-decoration: none; }
.store-link:hover { background: #f5f5f5; }



/* Final CTA */
.final-cta { padding: 2rem; text-align: center;}
.final-cta-sub {font-size: 23px; font-weight: 600; color: var(--color_main);}
.final-cta-main{font-size: 40px; font-weight: 600; color: var(--color_main);}
.final-cta-btns { display: flex;  gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 2rem;}
.final-cta-btns a{width: 323px; display: flex; justify-content: center; align-items: center; gap: 5px; padding: 1.25rem; font-size: 26px;}
.final-cta-btns a.tel{background-image: linear-gradient(-90deg, #fbc600, #e8750a); border-radius: 17px;}
.final-cta-btns a.tel img{width: 32px;}
.final-cta-btns a.line{background-image: linear-gradient(-90deg, #a5c800, #06b155); border-radius: 17px;}
.final-cta-btns a.line img{width: 66px;}

/* Footer */
.footer { padding: 4rem 2rem 8rem; text-align: center; font-size: 15px; color: #666; }

/* Float Banner */
.sp-float-banner{display: none;}

@media (max-width: 1014px) {
  img{max-width: 100%;}
}

@media (max-width: 896px) {
  .br-pc{display: none;}
  .br-tab{display: inline;}

  .section-main{font-size: 36px;}
  .section-lead{font-size: 16px;}

  .reason-card h3{font-size: 18px;}
  .reason-card p{font-size: 13px;}

  .reason-num .badge-img{width: 30%;}
}
@media (max-width: 823px) {
  .reason-num .badge-img{width: 25%;}
}

@media (max-width: 600px) {
  .hero h1 { font-size: 1.8rem; }
  .nav { padding: 0.75rem 1rem; }
  .section { padding: 3rem 1rem; }
  .store-grid { grid-template-columns: 1fr; }
  .cta-actions { grid-template-columns: 1fr; }
  .reasons { grid-template-columns: 1fr; }
  
  .service-detail { grid-template-columns: 1fr 1fr; }

  .footer{margin-bottom: 21.333vw;}

  .sp-float-banner{width: 100%; display: flex; gap: 2%; justify-content: center; background: #fff; padding: 2%; border-top: 1px solid #ccc; position: fixed; bottom: 0; left: 0; z-index: 1;}
  .sp-float-banner .cta-phone-card,
  .sp-float-banner .cta-line-card{width: 31%; padding: 0.5em; gap: 2%; flex-direction: column; border-radius: 1.867vw; padding: 0.3em 0.65em 0.5em;}
  .sp-float-banner .cta-phone-icon{width: 13%; line-height: 1;}
  .sp-float-banner .cta-phone-text{width: 100%;}
  .sp-float-banner .cta-phone-card .store-name{margin: 0.533vw 0; font-size: 2.4vw;}
  .sp-float-banner .cta-phone-card .phone-num{font-size: 3.2vw; letter-spacing: -0.133vw;}
  .sp-float-banner .line-icon{width: 16%; margin: 0.5em 0 0;}
  .sp-float-banner .cta-line-card div:last-of-type{width: 100%;}
  .sp-float-banner .cta-line-card .line-label{margin-bottom: 0.8vw; font-size: 2.4vw;}
  .sp-float-banner .cta-line-card .line-cta{font-size: 2.933vw; letter-spacing: -0.133vw;}
}

@media (max-width: 480px) {
  h2{word-break: break-all; }
  .pc{display: none;}
  .sp{display: block;}
  .br-sp{display: inline;}

  .btn-primary,
  .btn-outline{font-size: 14px;}
  .flow-btn-wrap{text-align: center;}

  .service-nav{justify-content: flex-start;}

  .hero p{font-size: 16px;}

  .section{padding-bottom: 1rem;}
  .section h2.section-headline{margin-bottom: 3em; font-size: 18px;}
  .section h2.section-headline .en{font-size: 2.1em;}
  .section-box{flex-direction: column-reverse;}
  .section-img{padding: 0 0 10px;}
  .section-img img{width: 100%; object-fit: cover; aspect-ratio: 1 / 0.6;}
  .section-label{width: 70%; margin-bottom: 0;}
  .section-main{font-size: 28px;}

  .worry-item{flex-direction: column; align-items: center; gap: 0.25rem; padding-bottom: 1rem;}
  .worry-text{font-size: 16px;}
  .worry-text-sub{padding-left: 0;}

  .reason-card h3{font-size: 24px;}
  .reason-card p{font-size: 15px;}
  .reasons > img{margin: 0 auto;}

  .price-table{font-size: 13px;}
  .price-table thead th,
  .price-table tbody td{padding: 10px;}
	.price-table tbody td.eikodo-price .font-mini br{display: inline;}
  
  .coupon-headline{font-size: 17px;}

  .cta-block h3{font-size: 18px;}
  .cta-lead{font-size: 28px;}
  .cta-phone-card{padding: 1rem 1.5rem;}
  .cta-phone-icon{width: 23px;}
  .cta-phone-card .store-name{font-size: 13px;}
  .cta-phone-card .phone-num{font-size: 23px;}
  .cta-line-card{padding: 1rem 1.5rem; font-size: 13px;}
  .line-icon{width: 28px;}

  .reason-num .badge-img{left: -30px;}

  .before-after{gap: 40px;}

  .shopinfo-main{font-size: 18px;}
  .shopinfo-sub{font-size: 16px;}
  .shopinfo-sub .br-tab{display: none;}
  .staff{gap: 20px 4%;}
  .staff-card{width: 48%; font-size: 16px;}

  #flow{padding-top: 0;}
  .flow-inner{padding: 2rem 1rem;}
  .flow-step{padding: 0.5rem 0;}
  .step-num{width: 54px; height: 54px; font-size: 10px;}
  .step-num::before{width: 26px; height: 168px; bottom: -188px;}
  .step-body{width: calc(100% - 54px);}
  .step-body h3{font-size: 21px;}
  .step-body p{font-size: 16px;}
  .step-body p img{width: 100%; object-fit: cover; aspect-ratio: 1 / 0.6;}

  .voice-main{flex-direction: column; gap: 10px; font-size: 13px;}
  .voice-text p{line-height: 1.3;}
  .voice-title br{display: none;}
  .voice-message{font-size: 16px;}

  .faq-wrap h2{padding-bottom: 1rem; font-size: 24px;}
  .faq-item{padding: 1.5rem 0; font-size: 16px;}

  .access-sub{font-size: 18px;}
  .access-main{font-size: 28px;}
  .store-card{padding: 2rem;}
  .store-card-header h3{font-size: 24px;}
  .store-meta{font-size: 15px;}
  .store-card-footer{margin-top: 1rem;  text-align: center;}

  .final-cta-sub{font-size: 18px;}
  .final-cta-main{font-size: 28px;}
  .final-cta-btns a{width: 100%; font-size: 24px;}
  .final-cta-btns a.tel img{width: 7%;}
  .final-cta-btns a.line img{width: 10%;}

  .footer{padding: 2rem; font-size: 11px;}
}