/*
Theme Name: Personal Gym LAP
Theme URI: https://abey.co.jp/lp/
Author: LAP
Description: パーソナルジムLAPのランディングページおよび法務ページ用テーマ
Version: 1.0.1
Text Domain: lap
*/

:root{--brown:#633e2b;--text:#4a4744;--gold:#cda963;--pink:#a65e72;--cream:#faf6f0;--green:#00b900;--serif:"Noto Serif JP",serif;--sans:"Noto Sans JP",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);font-family:var(--serif);line-height:1.8;background:#fff}img{display:block;width:100%}a{color:inherit;text-decoration:none}.hero{max-width:100%;overflow:hidden}.hero__desktop{display:none}.hero__mobile{min-height:860px;padding:285px 12px 38px;background:url(assets/mobile-hero.png) center top/cover no-repeat;text-align:center}.hero__copy{padding:8px 5px 4px;background:#ffffff8c;color:var(--brown)}.eyebrow{display:flex;align-items:center;justify-content:center;gap:8px;margin:0;font-size:13px}.eyebrow span{width:22px;border-top:1px solid}.hero h1{margin:0;font-size:25px;line-height:1.55}.hero h1 strong{display:block;font-size:39px;letter-spacing:.08em;border-bottom:6px solid var(--gold)}.hero__copy>p:last-of-type{font-size:13px;line-height:2}.price-pill{display:inline-block;padding:2px 42px;border:1px solid #81583a;border-radius:30px;background:var(--gold);color:#fff}.hero__benefits{display:flex;justify-content:center;gap:10px;padding:12px 0 4px;margin:0;list-style:none}.hero__benefits li{display:flex;flex-direction:column;justify-content:center;width:31%;aspect-ratio:1;border:1px solid #81583a;border-radius:50%;background:#faf6f0}.hero__benefits i{color:var(--gold);font-style:normal}.hero__benefits small{font-size:10px}.hero__benefits b{font-size:14px;border-top:1px solid var(--gold)}.hero__benefits em{font-size:10px;font-style:normal}.campaign{position:relative;width:min(350px,100%);margin:20px auto 14px;padding:28px 15px 6px;border:1px solid #a58661;border-radius:6px;background:#fff;text-align:center}.campaign>span{position:absolute;top:-14px;left:12%;width:76%;padding:2px;background:#cf0028;color:#fff;font-weight:700}.campaign small{display:block;font-size:13px;line-height:1.5}.campaign strong{display:block;color:#b7152a;font-size:56px;line-height:1}.campaign strong em{font-size:20px;font-style:normal}.line-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:min(378px,100%);min-height:56px;margin:0 auto;padding:12px 14px;border-radius:38px;background:var(--green);box-shadow:0 4px 8px #81583a40;color:#fff;font-family:var(--sans);font-size:17px;font-weight:700}.line-btn>b{font-size:22px}.line-mark{display:grid;place-items:center;width:38px;height:26px;border-radius:50%;background:#fff;color:var(--green);font-size:10px}.section{padding:76px max(15px,calc((100% - 402px)/2));text-align:center}.section h2{margin:4px 0 28px;color:var(--text);font-size:24px;line-height:1.55}.section-kicker{margin:0;color:var(--pink);font-size:13px;letter-spacing:.12em}.section--cream{background:var(--cream)}.section--dark{padding-block:80px;background:#4a4744;color:#fff}.section--dark h2{color:#fff}.intro{background:linear-gradient(#faf6f0e6,#faf6f0e6),url(assets/section-concerns.png) center/cover}.intro h2{font-size:29px;color:var(--brown)}.check-list{width:min(350px,100%);margin:25px auto;padding:20px 24px;list-style:none;background:#fff;border:1px solid #eadac8;text-align:left}.check-list li::before{content:"✓";margin-right:10px;color:var(--pink);font-weight:700}.intro__lead{margin-top:45px;color:var(--pink);font-size:20px;font-weight:700}.promise p:last-child{max-width:600px;margin:auto}.reasons h2 span{color:var(--pink);font-size:33px}.reason{width:min(372px,100%);margin:0 auto 35px;background:var(--cream);text-align:left;box-shadow:0 6px 22px #7e604a18}.reason img{height:230px;object-fit:cover}.reason>div{position:relative;padding:20px}.reason>div>b{position:absolute;right:15px;top:-38px;color:#fff;font-size:40px}.reason h3{margin:0;color:var(--brown);font-size:20px}.reason p{margin-bottom:0;font-size:14px}.reasons .line-btn,.trainer .line-btn{margin-top:36px}.pricing>p:not(.section-kicker):not(.note){font-size:14px}.plans{display:grid;gap:16px;margin:32px auto;max-width:650px}.plans article{padding:22px 16px;border:1px solid #d3afba;background:#fff}.plans h3{margin:0;font-size:15px}.plans strong{display:block;color:var(--pink);font-size:38px}.plans small{font-size:16px}.plans p{margin:0;font-size:12px}.note{font-size:11px}.trainer img{width:min(372px,100%);height:270px;margin:auto;object-fit:cover}.trainer h3{color:var(--pink)}.trainer>p:last-of-type{max-width:600px;margin:0 auto}.voice-grid{display:grid;gap:22px}.voice-grid article{padding:12px;background:#fff;border:1px solid #ecdde1;text-align:left}.voice-grid img{height:210px;object-fit:cover}.voice-grid h3{font-size:17px;color:var(--pink)}.voice-grid p{font-size:13px}.flow ol{max-width:600px;margin:auto;padding:0;list-style:none}.flow li{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid #e0c9a1;text-align:left}.flow li>b{color:var(--pink);font-size:28px}.flow h3,.flow p{margin:0}.flow p{font-size:13px}.faq-list{max-width:700px;margin:auto}.faq details{margin:10px 0;border:1px solid var(--gold);border-radius:8px;background:#fff;text-align:left}.faq summary{position:relative;padding:16px 48px 16px 18px;cursor:pointer;list-style:none}.faq summary::after{content:"＋";position:absolute;right:18px}.faq details[open] summary::after{content:"−"}.faq details p{margin:0;padding:0 18px 18px;font-size:14px}.access{background:linear-gradient(#faf6f0d9,#faf6f0d9),url(assets/access-bg.png) center/cover}.access dl{max-width:650px;margin:0 auto 25px;text-align:left}.access dl>div{display:grid;grid-template-columns:75px 1fr;padding:10px 0;border-bottom:1px solid var(--gold)}.access dt{color:var(--pink);font-weight:700}.access dd{margin:0;font-size:13px}.access img{max-width:650px;height:240px;margin:auto;border-radius:8px;object-fit:cover}.final-cta{background:url(assets/footer-cta.png) center/cover;min-height:650px;text-align:left}.final-cta>div{max-width:600px;margin:auto}.final-cta h2{color:#191919}.final-cta h2 small{display:block;font-size:15px}.final-cta .campaign{text-align:center}.final-cta p{font-size:14px}footer{padding:48px max(40px,calc((100% - 900px)/2));background:#4a4744;color:#fff}footer h2{font-size:20px}footer nav{display:flex;flex-direction:column;margin:38px 0 70px;font-family:var(--sans);font-size:14px}footer small{font-family:var(--sans);font-size:11px}.fade{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}.fade.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.fade{opacity:1;transform:none;transition:none}}
@media(min-width:700px){.section{padding-inline:max(40px,calc((100% - 900px)/2))}.reasons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.reasons>.section-kicker,.reasons>h2,.reasons>.line-btn{grid-column:1/-1}.reason{width:100%;margin:0}.plans{grid-template-columns:repeat(2,1fr)}.voice-grid{grid-template-columns:repeat(2,1fr)}}
.hero__mobile{display:block;width:100%;height:auto;min-height:0;padding:0;background:none}
.hero{position:relative}
.hero .hero__cta{position:absolute;left:2.99%;top:89.55%;z-index:2;width:94.03%;height:6.32%;min-height:0;margin:0;padding:0 3%;border-radius:999px;font-size:5.2vw;box-shadow:0 5px 12px rgba(76,55,37,.22)}
.hero .hero__cta .line-mark,.hero .hero__cta .line-btn__arrow{width:6.5%;height:auto;aspect-ratio:1;flex-basis:auto}
.intro.section{container-type:inline-size;position:relative;width:min(100%,402px);aspect-ratio:402/598;margin:0 auto;padding:0;background:url(assets/section-concerns.png) center/cover no-repeat;text-align:center;overflow:hidden}
.intro__inner{position:absolute;inset:25.58% 2.74% 4.52%;display:flex;flex-direction:column;align-items:center;justify-content:space-between}
.intro__main{display:flex;flex-direction:column;align-items:center;gap:5.97cqw;width:85.07%}
.intro.section .intro__main h2{margin:0;color:var(--text);font-size:4.48cqw;font-weight:700;line-height:1.56;white-space:nowrap}
.intro.section .intro__main h2 strong{display:block;color:#c596a3;font-size:7.46cqw;line-height:1.3}
.intro__list{display:flex;flex-direction:column;gap:1cqw;width:max-content;max-width:100%;margin:0;padding:0;list-style:none;text-align:left;font-family:Inter,var(--sans);font-size:2.99cqw;line-height:6.72cqw;letter-spacing:-.02em}
.intro__list li{position:relative;padding-left:6.97cqw;white-space:nowrap}
.intro__list li::before{content:"";position:absolute;left:0;top:1.36cqw;width:5.97cqw;height:5.97cqw;background:url(assets/check-pink.svg) center/61.8% 44.1% no-repeat}
.intro__message{margin:0;color:#171717;font-size:4.98cqw;font-weight:400;line-height:1.67;letter-spacing:-.005em}
.intro__message strong{font-weight:700}
.support.section{container-type:inline-size;width:min(100%,402px);margin:0 auto;padding:19.9cqw 3.73cqw;background:var(--cream);text-align:center}
.support__inner{display:flex;flex-direction:column;gap:7.96cqw}
.support.section h2{margin:0;color:var(--text);font-size:4.98cqw;font-weight:700;line-height:1.4;letter-spacing:-.022em;white-space:nowrap}
.support__comparison{display:flex;flex-direction:column;align-items:center;gap:4.98cqw}
.support__card{position:relative;width:100%;padding-bottom:20.15cqw;text-align:left}
.support__card>img{width:100%;aspect-ratio:372/221;border-radius:1.99cqw;object-fit:cover}
.support__card--before>img{object-position:center 38%}
.support__card--after>img{object-position:center 43%}
.support__card p{position:absolute;bottom:0;z-index:1;width:93.82%;margin:0;padding:2.49cqw;background:rgba(0,0,0,.6);color:#fff;font-family:var(--sans);font-size:3.73cqw;font-weight:400;line-height:1.8;letter-spacing:-.016em}
.support__card--before p{left:0}
.support__card--after p{right:0;background:rgba(226,195,180,.78);color:var(--text)}
.support__arrow{width:14.68cqw;height:14.68cqw;object-fit:contain}
.support__closing{position:relative;display:flex;flex-direction:column;align-items:center;gap:2.99cqw}
.support__closing::after{content:none}
.support__closing p{position:relative;z-index:1;margin:0;color:var(--text);font-size:5.97cqw;font-weight:500;line-height:1.83}
.support__closing strong{padding:0 .5cqw;font-size:8.96cqw;font-weight:500;background:linear-gradient(to bottom,transparent 72%,rgba(226,180,189,.55) 72%,rgba(226,180,189,.55) 91%,transparent 91%)}
.support__closing span{font-size:3.98cqw;font-weight:500;line-height:1.75}
.companionship.section{container-type:inline-size;width:min(100%,402px);margin:0 auto;padding:19.9cqw 1.74cqw;background:#4a4744;color:var(--cream);text-align:center}
.companionship__inner{display:flex;flex-direction:column;align-items:center;gap:15.92cqw}
.companionship.section h2{margin:0;color:var(--cream);font-size:4.98cqw;font-weight:700;line-height:1.4}
.companionship__list{display:flex;flex-direction:column;gap:17.91cqw;width:92.54%}
.companionship__item{display:flex;flex-direction:column;gap:7.96cqw;text-align:left}
.companionship__copy{position:relative;display:flex;flex-direction:column;gap:3.98cqw}
.companionship__copy span{position:absolute;left:0;top:-7.46cqw;color:rgba(239,227,214,.11);font-family:Georgia,serif;font-size:19.9cqw;line-height:.65}
.companionship__copy h3{position:relative;margin:0;padding-bottom:3.98cqw;border-bottom:1px solid var(--gold);color:var(--gold);font-size:4.73cqw;font-weight:700;line-height:1.47;white-space:nowrap}
.companionship__copy p{position:relative;margin:0;color:var(--cream);font-family:var(--sans);font-size:3.98cqw;line-height:1.5}
.companionship__item>img{width:100%;aspect-ratio:372/229;border-radius:1.99cqw;object-fit:cover}
.companionship__photo{position:relative;width:100%;aspect-ratio:372/229;border-radius:1.99cqw;overflow:hidden}
.companionship__photo img{position:absolute;left:50%;top:0;width:auto;height:122%;max-width:none;object-fit:cover;transform:translateX(-50%)}
.companionship__item:nth-child(1)>img{object-position:center 62%}
.companionship__item:nth-child(2)>img{object-position:50% 50%}
.companionship__item:nth-child(3)>img{object-position:center 38%}
.companionship .line-btn{width:94.03%;margin-top:0}
.line-mark{display:block;flex:0 0 auto;width:27px;height:27px;border-radius:0;background:transparent;object-fit:contain}
.line-btn__label{white-space:nowrap}
.line-btn__arrow{display:block;flex:0 0 auto;width:27px;height:27px;margin-left:0;object-fit:contain}
.line-btn{transition:transform .25s ease,background-color .25s ease,box-shadow .25s ease,filter .25s ease}
.line-btn .line-mark,.line-btn .line-btn__arrow{transition:transform .25s ease}
@media(hover:hover){
  .line-btn:hover{transform:translateY(-3px) scale(1.015);background:#00aF00;box-shadow:0 9px 18px rgba(76,55,37,.28);filter:saturate(1.08)}
  .line-btn:hover .line-mark{transform:scale(1.08)}
  .line-btn:hover .line-btn__arrow{transform:translateX(4px)}
}
.line-btn:active{transform:translateY(0) scale(.99);box-shadow:0 3px 6px rgba(76,55,37,.22)}
.line-btn:focus-visible{outline:3px solid rgba(0,185,0,.32);outline-offset:4px}
@media(prefers-reduced-motion:reduce){.line-btn,.line-btn .line-mark,.line-btn .line-btn__arrow{transition:none}.line-btn:hover,.line-btn:active{transform:none}}
.pricing.section{container-type:inline-size;width:min(100%,402px);margin:0 auto;padding:19.9cqw 3.73cqw;background:var(--cream);color:var(--text)}
.pricing__inner{display:flex;flex-direction:column;align-items:center;gap:11.94cqw}
.pricing.section h2{margin:0;font-size:4.98cqw;font-weight:700;line-height:1.4;white-space:nowrap}
.pricing__plans{display:flex;flex-direction:column;gap:5.97cqw;width:100%}
.pricing-card{display:flex;flex-direction:column;align-items:center;width:100%;padding:9.95cqw;border:1px solid var(--gold);border-radius:1.99cqw;background:#fff}
.pricing-card h3{width:100%;margin:0;padding-bottom:5.97cqw;border-bottom:1px solid var(--gold);font-size:5.72cqw;font-weight:500;line-height:1.22;text-align:center;white-space:nowrap}
.pricing-card__body{display:flex;flex-direction:column;gap:5.97cqw;width:100%;padding-top:5.97cqw}
.pricing-card__price{display:grid;grid-template-columns:1fr auto;align-items:end;justify-content:center;text-align:center}
.pricing-card__price strong{color:var(--pink);font-size:11.94cqw;font-weight:700;line-height:.92;letter-spacing:.06em}
.pricing-card__price>span:not(:first-child),.pricing-card__price>em{padding-bottom:.45cqw;font-size:4.48cqw;font-style:normal;line-height:1.4}
.pricing-card__price small{grid-column:1/-1;margin-top:2.99cqw;font-size:3.48cqw;font-weight:500;line-height:1.3;letter-spacing:.05em}
.pricing-card__price--monthly{grid-template-columns:auto 1fr auto;column-gap:1.99cqw}
.pricing-card__price--monthly>span:first-child,.pricing-card__details dt{padding:0 4.48cqw;border-radius:7.46cqw;background:#c596a3;font-size:3.48cqw;line-height:1.99}
.pricing-card__details{display:flex;justify-content:flex-start;gap:5.97cqw;width:67.91cqw;margin:0 auto}
.pricing-card__details>div{display:flex;align-items:center;gap:2.49cqw;white-space:nowrap}
.pricing-card__details dd{margin:0;font-size:3.98cqw;line-height:1}
.pricing-card__details dd strong{font-size:6.97cqw;font-weight:500;line-height:1}
.trainer.section{container-type:inline-size;width:min(100%,402px);margin:0 auto;padding:19.9cqw 2.24cqw;background:var(--cream);text-align:left}
.trainer__inner{display:flex;flex-direction:column;align-items:center;gap:11.94cqw;width:100%}
.trainer__content{display:flex;flex-direction:column;align-items:center;gap:11.94cqw;width:92.54%}
.trainer.section h2{margin:0;color:var(--text);font-size:4.98cqw;font-weight:700;line-height:1.17;text-align:center}
.trainer__profile{display:flex;flex-direction:column;gap:2.99cqw;width:100%}
.trainer__photo{position:relative;width:100%;aspect-ratio:372/234;border-radius:1.99cqw;overflow:hidden}
.trainer.section .trainer__photo img{position:absolute;left:-6.15%;top:-21.16%;width:112.39%;height:134%;max-width:none;object-fit:cover}
.trainer__message{margin:0;font-size:4.48cqw;font-weight:600;line-height:1.85;white-space:nowrap}
.trainer__details{display:flex;flex-direction:column;gap:1cqw;width:100%;margin:0;font-size:3.98cqw;line-height:1.69;letter-spacing:-.015em}
.trainer__details>div{padding:2.49cqw 0;border-bottom:1px solid var(--gold)}
.trainer__details dt{font-weight:700}
.trainer__details dd{margin:0;font-weight:500}
.trainer.section .line-btn{width:100%;margin:0}
.trainer.section .line-btn .line-mark,.trainer.section .line-btn .line-btn__arrow{display:block;flex:0 0 27px;width:27px;min-width:27px;max-width:27px;height:27px;margin:0;border-radius:0;background:transparent;object-fit:contain}
.voices.section{container-type:inline-size;width:min(100%,402px);margin:0 auto;padding:19.9cqw 3.73cqw;background:var(--cream);text-align:left}
.voices__inner{display:flex;flex-direction:column;align-items:center;gap:11.94cqw;width:100%}
.voices.section h2{margin:0;color:var(--text);font-size:4.98cqw;font-weight:700;line-height:1.4;text-align:center}
.voices.section .voice-grid{display:flex;flex-direction:column;gap:9.95cqw;width:100%}
.voices.section .voice-card{display:flex;flex-direction:column;gap:1.99cqw;width:100%;padding:4.98cqw 9.95cqw;border:1px solid var(--gold);border-radius:1.99cqw;background:#fff;text-align:left}
.voices.section .voice-card img{width:100%;height:50.5cqw;border-radius:1.99cqw;object-fit:cover}
.voices.section .voice-card:nth-child(3) img{object-position:center top}
.voices.section .voice-card h3{width:100%;margin:0;color:var(--text);font-size:3.98cqw;font-weight:700;line-height:2.5}
.voices.section .voice-card p{width:100%;margin:0;color:var(--text);font-size:3.98cqw;font-weight:500;line-height:2.125}
.voices.section .voice-card strong{color:var(--pink);font-weight:700}
.flow.section{container-type:inline-size;width:min(100%,402px);margin:0 auto;padding:19.9cqw 3.73cqw;background:var(--cream);text-align:left}
.flow__inner{display:flex;flex-direction:column;align-items:center;gap:11.94cqw;width:100%}
.flow.section h2{margin:0;color:#171717;font-size:4.98cqw;font-weight:700;line-height:1.4;text-align:center}
.flow.section .flow__steps{display:flex;flex-direction:column;gap:4.98cqw;width:100%;margin:0;padding:0;list-style:none}
.flow.section .flow-step{position:relative;display:flex;align-items:center;gap:0;width:100%;min-height:16.42cqw;margin-top:9.2cqw;padding:2.49cqw 2.24cqw 2.49cqw 24.38cqw;border:1px solid var(--gold);border-radius:1.99cqw;background:#fff}
.flow-step__badge{position:absolute;left:2.24cqw;top:-9.2cqw;width:17.66cqw;height:21.39cqw}
.flow-step__badge img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.flow-step__badge span{position:absolute;inset:3.23cqw 2.24cqw auto;z-index:1;color:var(--text);font-size:4.98cqw;font-weight:700;line-height:1.2;text-align:center}
.flow-step__badge strong{font-weight:700;letter-spacing:.1em}
.flow.section .flow-step>p{margin:0;font-size:3.98cqw;font-weight:500;line-height:1.69}
.flow.section .flow-step--first{display:grid;grid-template-columns:24.38cqw 1fr;min-height:109.95cqw;padding:3.73cqw 2.24cqw 2.24cqw}
.flow-step--first>p{grid-column:2;padding-top:1.49cqw;white-space:nowrap}
.flow.section .flow-step__screen{grid-column:1/-1;width:100%;height:84.33cqw;margin-top:2.99cqw;border-radius:1.99cqw;background:#fff;object-fit:contain}
.faq.section{container-type:inline-size;width:min(100%,402px);margin:0 auto;padding:19.9cqw 3.73cqw;background:var(--cream);text-align:left}
.faq.section h2{margin:0 0 8.96cqw;color:var(--text);font-size:4.98cqw;font-weight:700;line-height:1.4;text-align:center}
.faq.section .faq-list{display:flex;flex-direction:column;gap:2.99cqw;width:100%;margin:0}
.faq.section details{width:100%;margin:0;border:1px solid var(--gold);border-radius:1.99cqw;background:#fff}
.faq.section summary{display:flex;align-items:center;min-height:14.43cqw;padding:2.24cqw 9.95cqw 2.24cqw 4.48cqw;color:var(--text);font-size:3.98cqw;font-weight:500;line-height:1.75;list-style:none}
.faq.section details:first-child summary{min-height:20.65cqw}
.faq.section summary::-webkit-details-marker{display:none}
.faq.section summary::after{content:"";right:4.48cqw;width:5.97cqw;height:5.97cqw;background:url(assets/faq-plus.svg) center/58.33% 58.33% no-repeat}
.faq.section details[open] summary::after{content:"−";display:grid;place-items:center;background:none;font-family:var(--sans);font-size:5.97cqw;line-height:1}
.faq.section details p{margin:0;padding:0 4.48cqw 4.48cqw;color:var(--text);font-size:3.48cqw;line-height:1.8}
.access.section{container-type:inline-size;width:min(100%,402px);margin:0 auto;padding:19.9cqw 3.73cqw;background:linear-gradient(rgba(250,246,240,.85),rgba(250,246,240,.85)),url(assets/access-photo.png) center/cover no-repeat;text-align:left}
.access__inner{display:flex;flex-direction:column;align-items:center;gap:11.94cqw;width:100%}
.access.section h2{margin:0;color:var(--text);font-size:4.98cqw;font-weight:700;line-height:1.4;text-align:center}
.access__content{display:flex;flex-direction:column;gap:4.98cqw;width:100%}
.access.section .access__details{display:flex;flex-direction:column;width:100%;margin:0}
.access.section .access__details>div{display:grid;grid-template-columns:21.14cqw 1fr;align-items:start;width:100%;padding:2.49cqw 0;border-bottom:1px solid var(--gold)}
.access.section .access__details dt{color:var(--pink);font-size:3.73cqw;font-weight:700;line-height:1.3}
.access.section .access__details dd{margin:0;color:var(--text);font-size:3.73cqw;font-weight:500;line-height:1.3;white-space:nowrap}
.access.section .access__details dd span{display:block;font-size:3.98cqw}
.access__map{position:relative;width:100%;height:59.7cqw;border-radius:1.99cqw;overflow:hidden}
.access.section .access__map img{position:absolute;left:-33.5%;top:-8.33%;width:167%;height:117.03%;max-width:none;border-radius:0;object-fit:cover}
.access__map iframe{display:block;width:100%;height:100%;border:0;pointer-events:none}
.access__map-link{position:absolute;inset:0;z-index:1;display:flex;align-items:flex-end;justify-content:center;padding:2.49cqw;color:#fff;text-decoration:none}
.access__map-link span{padding:1.49cqw 3.48cqw;border-radius:999px;background:rgba(63,59,56,.88);font-family:var(--sans);font-size:2.99cqw;font-weight:700;line-height:1.4;box-shadow:0 2px 8px rgba(0,0,0,.18);transition:background-color .2s,transform .2s}
.access__map-link:hover span{background:var(--pink);transform:translateY(-2px)}
.access__map-link:focus-visible{outline:3px solid var(--pink);outline-offset:-3px}
.final-cta.section{container-type:inline-size;position:relative;width:min(100%,402px);min-height:153.73cqw;margin:0 auto;padding:19.9cqw 2.99cqw;background:none;color:#000;text-align:left;overflow:hidden}
.final-cta__bg{position:absolute;inset:0;overflow:hidden}
.final-cta__bg img{position:absolute;left:-163.67%;top:-41.49%;width:289.48%;height:141.4%;max-width:none;object-fit:fill;image-rendering:-webkit-optimize-contrast}
.final-cta__inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:15.67cqw;width:100%}
.final-cta__copy{display:flex;flex-direction:column;gap:1.99cqw;width:85.07%}
.final-cta.section h2{margin:0;color:#000;font-size:5.97cqw;font-weight:700;line-height:1.38}
.final-cta.section h2 small{display:block;font-size:3.98cqw;line-height:2.06}
.final-cta.section h2 small strong{font-size:4.98cqw}
.final-cta.section .final-cta__copy>p{margin:0;color:#000;font-size:3.48cqw;font-weight:500;line-height:2;white-space:nowrap}
.final-cta__action{display:flex;flex-direction:column;align-items:center;gap:6.97cqw;width:100%}
.final-campaign{position:relative;width:96.56%;height:29.65cqw;padding-top:4.98cqw}
.final-campaign__card{display:flex;align-items:center;justify-content:center;gap:1.82cqw;width:92.05%;height:24.7cqw;margin-left:4.24%;padding:1.82cqw 8.17cqw;border:1px solid #a58661;border-radius:1.45cqw;background:#fff}
.final-campaign__laurel{position:relative;flex:0 0 auto;width:9.62cqw;height:21.57cqw;overflow:hidden}
.final-campaign__laurel img{position:absolute;left:-106.85%;top:-49.1%;width:435.48%;height:242.81%;max-width:none}
.final-campaign__laurel--left{transform:scaleX(-1)}
.final-campaign__copy{position:relative;flex:0 0 47.51cqw;width:47.51cqw;height:21.57cqw;white-space:nowrap;transform:none}
.final-campaign__copy small{position:absolute;left:0;top:0;width:100%;color:var(--text);font-size:3.48cqw;font-weight:700;line-height:6.97cqw;text-align:right}
.final-campaign__copy b{position:absolute;left:0;top:6.97cqw;width:100%;color:var(--text);font-size:4.98cqw;line-height:7.96cqw;text-align:center}
.final-campaign__copy strong{position:absolute;left:0;top:7.46cqw;color:#b7152a;font-size:15.76cqw;font-weight:700;line-height:12.94cqw;letter-spacing:.04em}
.final-campaign__copy strong em{font-size:5.81cqw;font-style:normal;letter-spacing:0}
.final-campaign__ribbon{position:absolute;left:0;top:0;width:43.28cqw;height:7.91cqw;overflow:hidden}
.final-campaign__ribbon img{position:absolute;left:-10.31%;top:-228.22%;width:121.08%;height:828.22%;max-width:none}
.final-campaign__ribbon span{position:absolute;left:12.44cqw;top:1.24cqw;color:#fff;font-size:2.75cqw;font-weight:700;white-space:nowrap}
.final-cta.section .line-btn{width:100%;margin:0}
.site-footer{container-type:inline-size;width:min(100%,402px);margin:0 auto;padding:11.94cqw 9.95cqw;background:#4a4744;color:#fff}
.site-footer__inner{display:flex;flex-direction:column;align-items:flex-start;gap:19.9cqw;width:100%}
.site-footer__menu{display:flex;flex-direction:column;gap:11.94cqw;width:44.78cqw}
.site-footer h2{margin:0;font-size:4.98cqw;font-weight:700;line-height:1.4}
.site-footer nav{display:flex;flex-direction:column;gap:1cqw;margin:0;font-family:var(--sans);font-size:3.73cqw;font-weight:400;line-height:1.8}
.site-footer small{font-family:Inter,var(--sans);font-size:3.23cqw;font-weight:400;line-height:1.8;letter-spacing:-.006em;white-space:nowrap}
.privacy-page{background:var(--cream);font-family:var(--sans);line-height:1.9}
.legal-header{display:flex;align-items:center;justify-content:space-between;width:min(100%,960px);margin:0 auto;padding:24px clamp(20px,5vw,48px);border-bottom:1px solid rgba(205,169,99,.45);background:rgba(250,246,240,.96)}
.legal-header__brand{color:var(--text);font-family:var(--serif);font-size:18px;font-weight:700}
.legal-header__back{padding:7px 16px;border:1px solid var(--gold);border-radius:999px;color:var(--text);font-size:13px;transition:background-color .2s,color .2s}
.legal-header__back:hover{background:var(--text);color:#fff}
.legal-main{padding:clamp(48px,8vw,88px) 18px}
.legal-document{width:min(100%,860px);margin:0 auto;padding:clamp(28px,6vw,64px);border:1px solid rgba(205,169,99,.5);border-radius:12px;background:#fff;box-shadow:0 12px 36px rgba(99,62,43,.08);color:#3f3b38;font-size:15px}
.legal-document__title{margin-bottom:48px;padding-bottom:28px;border-bottom:1px solid var(--gold);text-align:center}
.legal-document__title p{margin:0;color:var(--pink);font-family:var(--serif);font-size:12px;letter-spacing:.16em}
.legal-document__title h1{margin:5px 0 0;color:var(--text);font-family:var(--serif);font-size:clamp(26px,5vw,38px);line-height:1.4}
.legal-document section{margin-top:42px}
.legal-document h2{margin:0 0 12px;padding-left:14px;border-left:4px solid var(--pink);color:var(--text);font-family:var(--serif);font-size:19px;line-height:1.55}
.legal-document p{margin:0}
.legal-document ul,.legal-document ol{margin:12px 0 0;padding-left:1.5em}
.legal-document li+li{margin-top:6px}
.legal-document ol{list-style:none;counter-reset:legal-item;padding-left:0}
.legal-document ol>li{counter-increment:legal-item;padding-left:2.2em;position:relative}
.legal-document ol>li::before{content:"(" counter(legal-item) ")";position:absolute;left:0}
.legal-document address{margin-top:18px;padding:18px 22px;border-radius:8px;background:var(--cream);font-style:normal}
.legal-document address dl{margin:0}
.legal-document address dl>div{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:7px 0;border-bottom:1px solid rgba(205,169,99,.35)}
.legal-document address dl>div:last-child{border-bottom:0}
.legal-document address dt{font-weight:700}
.legal-document address dd{margin:0;overflow-wrap:anywhere}
.legal-document address a{text-decoration:underline;text-underline-offset:3px}
.legal-document__dates{margin-top:46px;padding-top:22px;border-top:1px solid var(--gold);text-align:right;font-size:13px}
.commerce-document{width:min(100%,920px)}
.commerce-list{margin:0}
.commerce-list>div{display:grid;grid-template-columns:210px minmax(0,1fr);border-bottom:1px solid rgba(205,169,99,.38)}
.commerce-list>div:first-child{border-top:1px solid rgba(205,169,99,.38)}
.commerce-list dt,.commerce-list dd{padding:22px 20px}
.commerce-list dt{background:rgba(236,207,212,.28);color:var(--text);font-family:var(--serif);font-weight:700}
.commerce-list dd{margin:0;overflow-wrap:anywhere}
.commerce-list dd a{color:var(--pink);text-decoration:underline;text-underline-offset:3px}
.commerce-list dd p{margin:0}
.commerce-list dd p+p{margin-top:10px}
.commerce-list dd ul{margin:0;padding:0;list-style:none}
.commerce-list dd li+li{margin-top:4px}
.commerce-note{font-size:.92em;color:#69615c}
.terms-document{width:min(100%,900px)}
.terms-document section>ol{margin-top:0}
.terms-document section>ol>li+li{margin-top:10px}
.terms-document section ul{margin:12px 0 0;padding:14px 18px 14px 2.4em;border-radius:8px;background:var(--cream);list-style:disc}
.terms-document section ul li+li{margin-top:6px}
.terms-document section a{color:var(--pink);text-decoration:underline;text-underline-offset:3px}
.terms-document__company{margin-top:12px!important;font-weight:700}
.privacy-page .site-footer{width:min(100%,960px)}
@media(max-width:600px){.legal-document{font-size:14px}.legal-document section{margin-top:34px}.legal-document h2{font-size:17px}.legal-document address dl>div{grid-template-columns:1fr;gap:0}.legal-document__dates{text-align:left}.privacy-page .site-footer{width:100%}}
@media(max-width:600px){.commerce-list>div{grid-template-columns:1fr}.commerce-list dt{padding:14px 16px}.commerce-list dd{padding:16px 16px 22px}}
@media(min-width:1024px){
  .hero__mobile{display:none}
  .hero__desktop{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center}
  .hero .hero__cta{left:25.9%;top:83.5%;width:48.2%;height:12.35%;padding:0 5%;font-size:2.35vw}
  .hero .hero__cta .line-mark,.hero .hero__cta .line-btn__arrow{width:6.7%;height:auto}

  /* ファーストビュー以降はスマホ版の1カラム構成を約1.34倍で表示 */
  .section{padding:104px max(32px,calc((100% - 540px)/2));font-size:18px}
  .section h2{font-size:32px}
  .section-kicker{font-size:16px}
  .intro.section{width:540px;padding:0}
  .support.section{width:540px;padding:107.5px 20px}
  .companionship.section{width:540px;padding:107.5px 9.4px}
  .pricing.section{width:540px;padding:107.5px 20.1px}
  .trainer.section{width:540px;padding:107.5px 12.1px}
  .voices.section{width:540px;padding:107.5px 20.1px}
  .flow.section{width:540px;padding:107.5px 20.1px}
  .faq.section{width:540px;padding:107.5px 20.1px}
  .access.section{width:540px;padding:107.5px 20.1px}
  .final-cta.section{width:540px;min-height:830px;padding:107.5px 16.1px}
  .final-cta__bg img{left:-151.4%;top:-30.72%;width:268.15%;height:130.72%}
  .site-footer{width:540px;padding:64.5px 53.7px}
  .privacy-page .site-footer{width:min(100%,960px);padding:64px 54px}
  .privacy-page .site-footer__inner{gap:80px}
  .privacy-page .site-footer__menu{gap:48px;width:240px}
  .privacy-page .site-footer h2{font-size:27px}
  .privacy-page .site-footer nav{font-size:18px}
  .privacy-page .site-footer small{font-size:15px}

  .reasons{display:grid;grid-template-columns:1fr;gap:0;max-width:none;margin:0}
  .reasons>.section-kicker,.reasons>h2,.reasons>.line-btn{grid-column:auto}
  .reasons h2 span{font-size:44px}
  .reason,.reason:nth-of-type(5){grid-column:auto;width:100%;margin:0 auto 47px}
  .reason img{height:310px}
  .reason>div{padding:27px}
  .reason>div>b{top:-50px;font-size:54px}
  .reason h3{font-size:27px}
  .reason p{font-size:18px}

  .plans{grid-template-columns:1fr;max-width:540px;gap:21px}
  .plans article{padding:29px 21px}
  .plans h3{font-size:20px}
  .plans strong{font-size:51px}
  .plans p,.pricing>p:not(.section-kicker):not(.note){font-size:17px}
  .note{font-size:14px}

  .trainer img{width:100%;height:365px}
  .trainer>p:last-of-type{max-width:540px}
  .voice-grid{grid-template-columns:1fr;gap:30px}
  .voice-grid article{padding:16px}
  .voice-grid img{height:285px}
  .voice-grid h3{font-size:23px}
  .voice-grid p{font-size:17px}

  .flow ol,.faq-list,.access dl,.access img{max-width:540px}
  .flow li{gap:27px;padding:27px 0}
  .flow li>b{font-size:38px}
  .flow h3{font-size:22px}
  .flow p,.faq details p,.access dd{font-size:17px}
  .faq summary{padding:21px 58px 21px 24px;font-size:18px}
  .access dl>div{grid-template-columns:100px 1fr;padding:14px 0}
  .access img{height:320px}

  .final-cta{min-height:870px}
  .final-cta>div{max-width:540px}
  .final-cta h2 small{font-size:20px}
  .final-cta p{font-size:18px}
  .campaign{max-width:470px;padding-top:38px}
  .campaign small{font-size:17px}
  .campaign strong{font-size:75px}
  .campaign strong em{font-size:27px}
  .line-btn{width:100%;min-height:75px;font-size:23px}
  footer{padding:64px max(40px,calc((100% - 540px)/2))}
  footer h2{font-size:27px}
  footer nav{font-size:18px}
}
