@charset "UTF-8";

/* =========================================
   Reset & Base
========================================= */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:62.5%;-webkit-text-size-adjust:100%}
body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
  font-size:1.6rem;line-height:1.7;color:#222;
  background:
    repeating-linear-gradient(
      45deg,
      #FBF6EB 0 28px,
      #DAF2F2 28px 56px
    );
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  display:flex;flex-direction:column;
}
body > main{flex:1 0 auto}
body > .site-footer{flex-shrink:0}
img{max-width:100%;height:auto;vertical-align:bottom;display:block}
a{color:inherit;text-decoration:none;transition:opacity .2s}
a:hover{opacity:.7}
ul,ol{list-style:none}
button{background:none;border:none;cursor:pointer;font:inherit;color:inherit}

/* =========================================
   Variables
========================================= */
:root{
  --color-teal:#29b5b2;
  --color-teal-dark:#1b8683;
  --color-yellow:#FFD93D;
  --color-yellow-light:#FFE876;
  --color-orange:#FF9933;
  --color-pink:#FF6B9D;
  --color-text:#222;
  --color-text-light:#555;
  --color-bg-cream:#FFF8E7;
  --color-white:#fff;
  --container-max:1200px;
  --container-pad:20px;
}

/* =========================================
   Layout helpers
========================================= */
.container{
  max-width:var(--container-max);
  margin:0 auto;
  padding:0 var(--container-pad);
}

.section-title{
  font-size:6.4rem;font-weight:400;
  color:var(--color-teal);
  text-align:center;letter-spacing:-.01em;
  margin-bottom:24px;
  font-family:"Wendy One","Noto Sans JP",sans-serif;
}
.section-lead{
  font-size:3.2rem;font-weight:700;line-height:46px;
  color:var(--color-teal);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  text-align:center;margin:-33px 0 24px;
}
.section-desc{
  font-size:1.5rem;font-weight:500;line-height:1.6;
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  text-align:center;max-width:900px;margin:-17px auto 48px;
}

/* =========================================
   Header
========================================= */
.site-header{
  position:fixed;top:0;left:0;width:100%;height:80px;
  background:rgba(255,255,255,.95);
  z-index:1000;
}
.site-header__inner{
  display:flex;align-items:center;justify-content:space-between;
  height:100%;padding:0 40px;
}
.site-header__logo img{height:36px;width:auto}
.site-header__nav{display:flex;align-items:center;gap:50px}
.site-header__nav ul{display:flex;gap:40px}
.site-header__nav ul a{
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.6rem;font-weight:700;color:#000;
}
.site-header__cta{
  display:inline-flex;align-items:center;justify-content:center;
  width:145px;height:51px;
  background:var(--color-teal);color:#fff;
  border-radius:25px;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.6rem;font-weight:700;
}
.site-header__hamburger{display:none}

/* =========================================
   FV / Hero
========================================= */
.fv{
  position:relative;
  width:100%;
  aspect-ratio:1440/815;
  padding-top:80px;
  background:transparent;
}
.fv__circle{
  position:absolute;
  top:calc(80px + 37px);
  left:26.11%;
  width:47.5%;
  aspect-ratio:1/1;
  background:#fff;
  border-radius:50%;
  z-index:1;
}
.fv__bg{
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  z-index:2;
  text-align:center;
  overflow:hidden;
}
.fv__bg img{
  width:88.348%;
  height:auto;
  display:inline-block;
  margin-top:82px;
}
.fv__bg-sp{display:none;}
.fv__badge{display:none;}
.sp-br{display:none;}

/* Decorations (bunting garlands, Figma 1440x815 baseline) */
.fv__deco{
  position:absolute;
  pointer-events:none;
  z-index:2;
  height:auto;
}
.fv__deco--09{left:66.95%;top:calc(-11.07% - 30px);width:24.82%;transform:rotate(60deg)}
.fv__deco--10{left:68.06%;top:calc(1.21% - 30px);width:23.63%;transform:rotate(-10deg)}
.fv__deco--11{left:9.05%;top:calc(-13.68% - 30px);width:25.41%;transform:rotate(30deg)}
.fv__deco--12{left:8.29%;top:calc(0.05% - 30px);width:23.69%;transform:rotate(20deg)}

/* Flags */
.fv__flags{
  position:absolute;top:80px;left:0;width:100%;height:160px;
  z-index:3;pointer-events:none;
}
.fv__flag{
  position:absolute;width:5.09%;aspect-ratio:73.33/72.14;
}
.fv__flag img{width:100%;height:100%;object-fit:contain}
.fv__flag--japan1{left:33.68%;top:68px}
.fv__flag--denmark{left:38.96%;top:45px}
.fv__flag--litania{left:44.44%;top:18px}
.fv__flag--korea{left:50.00%;top:20px}
.fv__flag--france{left:55.83%;top:45px}
.fv__flag--japan2{left:61.67%;top:68px}

/* Catch copy */
.fv__catch{
  position:absolute;top:203px;left:50%;
  transform:translateX(-50%);
  width:30.497%;
  max-width:439.11px;
  z-index:4;
}
.fv__catch img{width:100%;height:auto;display:block}

/* Kid illustrations (Figma 1440x815 baseline) */
.fv__kid{
  position:absolute;
  pointer-events:none;
  z-index:5;
  height:auto;
}
.fv__kid--01{left:61.74%;top:74.78%;width:11.07%}
.fv__kid--02{left:68.93%;top:65.13%;width:7.73%}
.fv__kid--03{left:74.85%;top:61.60%;width:9.88%}
.fv__kid--04{left:65.70%;top:calc(23.57% - 30px);width:7.56%}
.fv__kid--05{left:23.65%;top:calc(23.53% - 30px);width:9.50%}
.fv__kid--06{left:calc(15.63% + 17px);top:55.46%;width:7.50%}
.fv__kid--07{left:calc(20.28% + 17px);top:59.75%;width:9.93%}
.fv__kid--08{left:calc(22.64% + 37px);top:71.04%;width:12.64%}

/* CTA ticket */
.fv__cta{
  position:fixed;
  right:2%;bottom:3%;
  width:17.567%;max-width:253px;
  display:block;
  z-index:100;
  transition:opacity .2s;
}
.fv__cta img{width:100%;height:auto;display:block}
.fv__cta:hover{opacity:.85}

/* =========================================
   Teal wrap (About + Features)
========================================= */
.teal-wrap{
  position:relative;
  background:#2BB7B3;
  margin-top:210px;
  padding:140px 40px 140px;
}
.teal-wrap::before{
  content:"";
  position:absolute;
  top:-174px;
  left:0;
  right:0;
  height:175px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 175' preserveAspectRatio='none'><path d='M0 175 C180 -58 820 -58 1000 175 Z' fill='%232BB7B3'/></svg>") no-repeat center/100% 100%;
  pointer-events:none;
}

/* =========================================
   About
========================================= */
.about{
  position:relative;
  max-width:1000px;
  margin:-201px auto 80px;
  padding:15px 40px 60px;
  background:#fff;
  border-radius:10px;
}
.about__features{
  display:grid;grid-template-columns:repeat(4,1fr);gap:32px;
  max-width:900px;margin:48px auto 0;
}
.about__features li{text-align:center}
.about__icon{
  display:block;width:172px;height:172px;
  margin:0 auto 24px;border-radius:50%;
  background:var(--color-white);overflow:hidden;
}
.about__icon img{width:100%;height:100%;object-fit:cover}
.about__icon--placeholder{background:#d9d9d9}
.about__label{font-size:1.8rem;font-weight:700;font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif}
.about__illust{position:absolute;pointer-events:none;user-select:none}
.about__illust--bunting{width:404px;height:auto;top:-243px;left:-183px}
.about__illust--girl1{width:98px;height:auto;top:-18px;right:59px}
.about__illust--girl2{width:103px;height:auto;top:12px;right:-37px}

/* =========================================
   Features
========================================= */
.features{
  position:relative;
  max-width:1000px;
  margin:0 auto;
  padding:15px 40px 60px;
  background:#fff;
  border-radius:10px;
}
.features__list{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  max-width:660px;margin:48px auto;
}
.features__list li{text-align:center}
.features__icon{
  display:flex;align-items:center;justify-content:center;
  width:120px;height:120px;margin:0 auto 16px;border-radius:50%;
  background:var(--color-white);
}
.features__icon img{width:120px;height:auto}
.features__label{
  display:flex;align-items:center;justify-content:center;
  width:149px;height:40px;margin:0 auto;
  border:1px solid #2BB7B3;border-radius:20px;
  color:var(--color-teal);
  font-size:1.7rem;font-weight:700;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
}
.features__images{
  position:relative;
  display:grid;grid-template-columns:repeat(3,1fr);gap:15px;
  margin-top:48px;
}
.features__arrow{
  position:absolute;top:50%;
  display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;
  background:#2BB7B3;
  transform:translate(-50%,-50%);
  z-index:2;
}
.features__arrow--1{left:calc((100% - 30px)/3 + 7.5px)}
.features__arrow--2{left:calc((100% - 30px)/3*2 + 22.5px)}
.features__photo{
  position:relative;aspect-ratio:290/194;
  border-radius:16px;overflow:hidden;
  background:#f5eecb;
}
.features__photo img{width:100%;height:100%;object-fit:cover;display:block}
.features__photo-label{
  position:absolute;left:0;right:0;bottom:0;
  display:flex;align-items:center;justify-content:center;
  height:40px;
  background:#2BB7B3;color:#fff;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:1.5rem;font-weight:700;
  text-align:center;
}

/* =========================================
   Movies
========================================= */
.movies{position:relative;padding:62px 0 120px;background-color:#FECB16;background-image:radial-gradient(circle,#FFE174 1.2px,transparent 1.44px),radial-gradient(circle,#FFE174 1.2px,transparent 1.44px);background-size:6.4px 6.4px,6.4px 6.4px;background-position:0 0,3.2px 3.2px}
.movies__illust{position:absolute;pointer-events:none;user-select:none}
.movies__illust--boy1{width:127px;height:auto;top:64px;left:calc(50% + 447px)}
.movies__illust--boy2{width:121px;height:auto;top:132px;left:calc(50% + 536px)}
.movies__illust--bunting{width:219px;height:auto;top:-29px;left:calc(50% + 501px)}
.movies .section-title,.movies .section-lead{color:#333}
.movies__list{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  max-width:1000px;margin:48px auto 0;
}
.movie-card{
  background:var(--color-white);border-radius:16px;
  padding:16px;
  display:flex;flex-direction:column;
}
.movie-card__btn{margin-top:auto !important}
.movie-card__thumb{
  position:relative;
  aspect-ratio:16/9;background:#ccc;border-radius:8px;
  overflow:hidden;margin-bottom:0;
}
.movie-card--coming-soon{display:flex;flex-direction:column;padding:24px}
.movie-card--coming-soon .movie-card__thumb{
  flex:1;aspect-ratio:auto;min-height:280px;
  background:#FFF8D6;
  border:2px dashed #F0B820;
  display:flex;align-items:center;justify-content:center;
  margin:0;
}
.movie-card--coming-soon .movie-card__head{display:none}
.movie-card__coming-soon-label{
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-weight:700;font-size:2.56rem;color:var(--color-teal);letter-spacing:normal;
}
.movie-card__duration{
  position:absolute;top:0;right:0;
  padding:6px 14px;
  background:var(--color-teal);color:#fff;
  font-size:1.4rem;font-weight:500;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  border-bottom-left-radius:8px;
}
.movie-card__thumb img{width:100%;height:100%;object-fit:cover}
.movie-card__head{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:4px;margin-bottom:3px;
}
.movie-card__title{flex:1;min-width:0}
.movie-card__title{
  font-size:2.0rem;font-weight:700;line-height:1.25;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;word-break:break-word;
}
.movie-card__flag{
  flex-shrink:0;display:block;width:60px;height:60px;
  border-radius:50%;overflow:hidden;background:#fff;
  transform:translateY(18px);
}
.movie-card__flag img{width:100%;height:100%;object-fit:cover}
.movie-card__flag--placeholder{background:#d9d9d9}
.movie-card__tag{
  display:inline-flex;align-self:flex-start;align-items:center;justify-content:center;
  width:auto;max-width:calc(100% - 80px);
  height:32px;padding:0 16px;margin-bottom:0;
  border:1px solid var(--color-teal);border-radius:16px;
  color:var(--color-teal);
  font-size:1.3rem;font-weight:700;line-height:1;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  white-space:nowrap;
}
.movie-card__country{font-size:1.6rem;font-weight:700;line-height:1.3;margin:12px 0 2px;font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;}
.movie-card__director{font-size:1.6rem;font-weight:700;line-height:1.3;margin-bottom:12px;font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;}
.movie-card__btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:fit-content;margin:0 auto;
  padding:10px 28px;
  background:var(--color-teal);color:#fff;
  border-radius:999px;
  font-size:1.4rem;font-weight:700;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  text-decoration:none;
  transition:opacity .2s;
}
.movie-card__btn:hover{opacity:.85}
.movie-card__btn-arrow{font-size:1.6rem;line-height:1;margin-left:4px}

/* =========================================
   Flow
========================================= */
.flow{position:relative;padding:120px 0 0}
.flow .container{background:#fff;border-radius:10px;padding:15px 40px 50px;max-width:1000px;position:relative;z-index:1}
.flow__illust{position:absolute;pointer-events:none;user-select:none;z-index:2}
.flow__illust--boy{width:135px;height:auto;top:188px;left:calc(50% - 634px)}
.flow__illust--girl{width:109px;height:auto;top:95px;left:calc(50% - 505px)}
.flow__illust--bunting{width:301px;height:auto;top:-8px;left:calc(50% - 751px)}
.flow__steps{
  display:grid;grid-template-columns:repeat(4,156px);gap:32px;justify-content:center;
  margin:48px 0;position:relative;
}
.flow__steps li{text-align:center;position:relative}
.flow__steps li:not(:last-child)::after{
  content:"";position:absolute;top:105px;right:-31px;
  width:30px;height:30px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' fill='none' stroke='%2329b5b2' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'><polyline points='8.87,3.52 22.95,15 8.87,26.47'/></svg>") no-repeat center/contain;
}
.flow__num{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;
  background:var(--color-teal);color:#fff;
  font-weight:700;font-size:1.6rem;line-height:1;
  position:absolute;top:-11px;left:50%;transform:translate(calc(-50% - 34px),0);z-index:2;
}
.flow__icon{
  display:flex;align-items:center;justify-content:center;
  width:124px;height:124px;border-radius:50%;
  background:var(--color-white);margin:0 auto 6px;
  overflow:hidden;
}
.flow__icon img{width:100%;height:100%;object-fit:cover}
.flow__box{
  width:145px;height:102px;margin:0 auto;
  border:1px solid var(--color-teal);border-radius:8px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:10px 8px;background:#fff;
}
.flow__steps h3{font-size:1.7rem;font-weight:700;margin-bottom:6px;color:var(--color-teal);font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif}
.flow__steps p{font-size:1.4rem;line-height:1.4;color:#222}
.flow__materials{
  background:var(--color-teal);border-radius:10px;padding:16px;
  display:flex;align-items:center;gap:24px;
  width:900px;height:151px;margin:0 auto;box-sizing:border-box;
}
.flow__materials-thumbs{display:flex;gap:8px;flex:0 0 auto}
.flow__materials-thumbs img{
  width:170px;height:120px;object-fit:cover;border-radius:8px;background:#ddd;
}
.flow__materials-text{flex:1;color:#fff}
.flow__materials-text h4{font-size:1.6rem;font-weight:700;margin-bottom:8px;color:#fff}
.flow__materials-text p{font-size:1.3rem;line-height:1.6;color:#fff}

/* =========================================
   Plan
========================================= */
.plan{position:relative;padding:60px 0 120px}
.plan .container{background:#fff;border-radius:10px;padding:25px 40px 50px;max-width:1000px;position:relative;z-index:1}
.plan__illust{position:absolute;pointer-events:none;user-select:none;z-index:2}
.plan__illust--girl1{width:115px;height:auto;top:34px;left:calc(50% + 386px)}
.plan__illust--girl2{width:127px;height:auto;top:10px;left:calc(50% + 491px)}
.plan__box{
  display:grid;grid-template-columns:1fr 1fr;
  background:var(--color-bg-cream);border-radius:12px;
  max-width:920px;margin:16px auto 0;overflow:hidden;
}
.plan__price{
  background:var(--color-teal);color:#fff;
  padding:36px 24px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
}
.plan__badge{
  display:block;width:263px;height:auto;
  margin:0 auto 12px;
}
.plan__amount{
  font-size:2rem;font-weight:700;color:#fff;
  display:flex;align-items:baseline;justify-content:center;gap:0;flex-wrap:nowrap;
}
.plan__amount-label{font-size:2.608rem;font-weight:500;line-height:62.4px;font-family:"Noto Sans JP",sans-serif;margin-right:12px}
.plan__amount strong{font-size:6.633rem;font-weight:700;color:#fff;line-height:62.4px;font-family:"Roboto Condensed","Noto Sans JP",sans-serif;letter-spacing:.01em}
.plan__amount-unit{font-size:2.608rem;font-weight:500;line-height:62.4px;font-family:"Noto Sans JP",sans-serif;margin-left:0}
.plan__amount-paren{margin-left:-4px}
.plan__period{font-size:1.7rem;color:#fff;margin-top:-1px}
.plan__benefits{padding:36px 40px;display:flex;flex-direction:column;justify-content:center;gap:9px}
.plan__benefits li{
  padding:0 0 0 40px;position:relative;font-size:1.8rem;font-weight:500;color:#222;
}
.plan__benefits li::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:22px;height:22px;border:2px solid var(--color-pink);border-radius:4px;background:#fff;
}
.plan__benefits li::after{
  content:"";position:absolute;left:5px;top:calc(50% - 2px);transform:translateY(-50%) rotate(-45deg);
  width:12px;height:6px;border-left:3px solid var(--color-pink);border-bottom:3px solid var(--color-pink);
}
.plan__cta{
  display:block;width:fit-content;margin:32px auto 0;
  background:var(--color-yellow);color:var(--color-teal-dark);
  padding:20px 48px;border-radius:40px;font-weight:700;font-size:1.8rem;
}
.plan__steps{
  background:var(--color-teal);border-radius:0 0 10px 10px;
  padding:42px 50px 50px;margin:39px -40px -50px;
}
.plan__steps-title{
  color:#fff;text-align:center;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:3rem;font-weight:500;line-height:48px;margin-bottom:8px;
}
.plan__steps-lead{
  color:#fff;text-align:center;
  font-family:"Noto Sans JP",sans-serif;font-weight:500;
  font-size:1.6rem;line-height:26px;margin-bottom:32px;
}
.plan__steps-list{
  display:grid;grid-template-columns:repeat(4,1fr);gap:21px;
}
.plan-step{
  background:var(--color-teal);
  border:1px solid #fff;border-radius:8px;
  overflow:hidden;
  display:flex;flex-direction:column;
}
.plan-step__head{
  background:#fff;color:var(--color-teal);
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-weight:500;font-size:1.8rem;line-height:27px;
  text-align:center;padding:4px 0;white-space:nowrap;
}
.plan-step__body{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:6px 12px 10px;
}
.plan-step__icon{
  flex:0 0 auto;width:51px;height:58px;
  display:flex;align-items:center;justify-content:center;
}
.plan-step__icon img{width:100%;height:100%;object-fit:contain}
.plan-step__desc{
  color:#fff;font-family:"Noto Sans JP",sans-serif;font-weight:500;
  font-size:1.5rem;line-height:22px;
}

/* =========================================
   FAQ
========================================= */
.faq{
  position:relative;
  padding:120px 0 90px;
  background:#fff;
  margin-top:175px;
}
.faq > .container{margin-top:-240px;position:relative;z-index:1}
.faq__illust{position:absolute;pointer-events:none;user-select:none;z-index:2}
.faq__illust--girl{width:168px;height:auto;top:-267px;left:calc(50% - 629px)}
.faq__illust--boy-purple{width:146px;height:auto;top:-268px;left:calc(50% - 517px)}
.faq__illust--boy-aqua{width:154px;height:auto;top:-134px;left:calc(50% + 371px)}
.faq__illust--bunting{width:327px;height:auto;top:-309px;left:calc(50% + 409px)}
.faq::before{
  content:"";
  position:absolute;
  top:-174px;
  left:0;
  right:0;
  height:175px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 175' preserveAspectRatio='none'><path d='M0 175 C180 -58 820 -58 1000 175 Z' fill='%23ffffff'/></svg>") no-repeat center/100% 100%;
  pointer-events:none;
}
.faq__list{max-width:1000px;margin:48px auto 0;display:grid;gap:16px}
.faq__item{background:#F5F6E6;border-radius:12px;overflow:hidden}
.faq__q{
  display:flex;align-items:center;width:100%;padding:28px 36px;
  text-align:left;font-size:1.8rem;font-weight:700;color:var(--color-teal);
}
.faq__qmark{
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--color-teal);margin-right:28px;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:4rem;font-weight:700;line-height:1;flex-shrink:0;
}
.faq__qtxt{flex:1;color:var(--color-teal)}
.faq__arrow{
  width:28px;height:28px;flex-shrink:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 9l6 6 6-6' stroke='%2329b5b2' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center/contain;
  transition:transform .3s;
}
.faq__item.is-open .faq__arrow{transform:rotate(180deg)}
.faq__a{display:none;padding:0 36px 28px 36px;font-size:1.5rem;line-height:1.8;color:#222;align-items:flex-start;gap:28px}
.faq__item.is-open .faq__a{display:flex}
.faq__amark{
  color:#EB6D80;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:2.8rem;font-weight:700;line-height:1;flex-shrink:0;
  transform:translate(6px,8px) scale(1.1);
}
.faq__a p{flex:1;padding-top:10px}

/* =========================================
   Company
========================================= */
.company{padding:0 0 120px;background:var(--color-white)}
.company__card{
  max-width:1000px;margin:0 auto;
  border:1px solid #b2b2b2;border-radius:10px;
  padding:40px 40px 56px 46px;
  display:flex;flex-direction:column;align-items:center;
}
.company__title{
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-weight:700;font-size:3.2rem;
  color:#48585e;letter-spacing:0.05em;
  margin:10px 0 40px;text-align:center;
}
.company__table{
  width:850px;max-width:100%;border-collapse:collapse;
}
.company__table th,.company__table td{
  border-bottom:1px solid #b2b2b2;
  text-align:left;vertical-align:middle;
  font-size:1.6rem;letter-spacing:0.03em;color:#000;
  padding:20px 0;line-height:1.875;
}
.company__table tr:first-child th,
.company__table tr:first-child td{border-top:1px solid #b2b2b2}
.company__table th{
  width:119px;padding-right:30px;
  font-family:"Noto Sans JP",sans-serif;font-weight:600;
  vertical-align:top;
}
.company__table td{font-weight:400}
.company__table a{color:inherit;text-decoration:none}
.company__table a:hover{opacity:.7}

/* =========================================
   Contact Strip
========================================= */
.contact-strip{
  padding:65px 0;
  background-color:#FECB16;
  background-image:radial-gradient(circle,#FFE174 1.2px,transparent 1.44px),radial-gradient(circle,#FFE174 1.2px,transparent 1.44px);
  background-size:6.72px 6.72px,6.72px 6.72px;
  background-position:0 0,3.36px 3.36px;
}
.contact-strip__inner{
  max-width:1261px;margin:0 auto;
  padding:0 40px;
  display:flex;align-items:center;justify-content:space-between;gap:40px;
}
.contact-strip__title{
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-weight:700;font-size:3.2rem;line-height:2;
  color:#000;letter-spacing:0.05em;margin:0;
}
.contact-strip__sub{
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-weight:700;font-size:1.6rem;line-height:2;
  color:#000;letter-spacing:0.05em;margin:0;
}
.contact-strip__btn{
  display:inline-flex;align-items:center;justify-content:space-between;
  background:#2bb7b3;color:#fff;
  width:278px;height:70px;
  padding:0 27px 0 26px;border-radius:35px;
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-weight:700;font-size:1.8rem;flex-shrink:0;
}
.contact-strip__arrow{
  width:11px;height:11px;display:inline-block;
  border-top:2.5px solid #fff;border-right:2.5px solid #fff;
  transform:rotate(45deg);
}

/* =========================================
   Modal (Movie Detail)
========================================= */
.modal{
  position:fixed;inset:0;z-index:1000;
  display:none;align-items:flex-start;justify-content:center;
  padding:60px 20px;overflow-y:auto;
}
.modal.is-open{display:flex}
.modal__overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.7);
  cursor:pointer;
}
.modal__panel{
  position:relative;z-index:1;
  width:100%;max-width:809px;
  background:#fff;border-radius:15px;
  padding:60px 54px 60px;
}
.modal__close{
  position:absolute;top:24px;right:24px;
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;cursor:pointer;
  transition:opacity .2s;
}
.modal__close:hover{opacity:.6}
.modal__body{display:flex;flex-direction:column;gap:32px}
.modal__head{display:flex;gap:18px;align-items:flex-start}
.modal__titlewrap{
  flex:1;
  padding:12px 0;
  border-top:1px solid var(--color-teal);
  border-bottom:1px solid var(--color-teal);
}
.modal__title{
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-weight:700;font-size:2.6rem;line-height:1.2;color:var(--color-teal);
  margin:0 0 8px;
}
.modal__meta{
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-weight:500;font-size:1.6rem;line-height:25px;
  margin:0;
}
.modal__director{
  width:194px;flex-shrink:0;
  display:flex;flex-direction:column;gap:3px;
}
.modal__director-photo{
  width:100%;height:104px;
  background:#c4c4c4;border-radius:10px;overflow:hidden;
}
.modal__director-photo img{width:100%;height:100%;object-fit:cover;display:block}
.modal__director-name{
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-weight:500;font-size:1.3rem;line-height:1.3;
  margin:0;text-align:center;
}
.modal__synopsis{
  font-family:"Noto Sans JP",sans-serif;
  font-size:1.5rem;line-height:26px;margin:0;
}
.modal__video{
  position:relative;width:100%;aspect-ratio:702/395;
  border:1px solid #dcdcdc;border-radius:10px;overflow:hidden;
  background:#000;
}
.modal__video img,.modal__video-el{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.modal__video-frame{position:absolute;inset:0;width:100%;height:100%}
.modal__video-iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.modal__video.is-playing .modal__play{display:none}
.modal__play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  background:transparent;border:none;cursor:pointer;padding:0;
  transition:transform .2s;
}
.modal__play:hover{transform:translate(-50%,-50%) scale(1.08)}
.modal__cols{
  display:grid;grid-template-columns:1fr 1fr;gap:40px;
}
.modal__col{display:flex;flex-direction:column;gap:10px}
.modal__label{
  display:flex;align-items:center;justify-content:center;
  height:30px;padding:0 15px;border-radius:15px;
  font-family:"Noto Sans JP",sans-serif;
  font-weight:500;font-size:1.5rem;line-height:1;
  text-align:center;
}
.modal__label--solid{
  background:var(--color-teal);color:#fff;
}
.modal__label--outline{
  border:1px solid var(--color-teal);color:var(--color-teal);font-size:1.6rem;
}
.modal__text{
  font-family:"Noto Sans JP",sans-serif;
  font-size:1.5rem;line-height:26px;margin:0;
}
.modal__dname{
  font-family:"Noto Sans JP",sans-serif;
  font-weight:500;font-size:2.2rem;color:var(--color-teal);
  text-align:center;margin:0 0 4px;
}
body.modal-open{overflow:hidden}
.modal__rightimg{
  width:100%;border-radius:10px;overflow:hidden;
  margin-bottom:14px;
}
.modal__rightimg:last-child{margin-bottom:0}
.modal__rightimg img{width:100%;height:auto;display:block}

/* =========================================
   Footer
========================================= */
.site-footer{background:#2bb7b3;color:#fff;padding:35px 100px 60px}
.site-footer__inner{
  max-width:1437px;margin:0 auto;
  display:grid;grid-template-columns:1fr auto;gap:80px;align-items:start;
}
.site-footer__left{padding-top:25px}
.site-footer__logo{width:494px;max-width:100%;margin:0 0 28px}
.site-footer__logo img{width:100%;height:auto;filter:brightness(0) invert(1)}
.site-footer__address{
  font-family:"Noto Sans JP",sans-serif;font-weight:500;
  font-size:2rem;line-height:36px;letter-spacing:0.03em;
  color:#fff;margin:0 0 80px;
}
.site-footer__copy{
  font-family:"Noto Sans JP",sans-serif;font-weight:500;
  font-size:1.2rem;letter-spacing:0.03em;color:#fff;margin:0;
}
.site-footer__right{
  display:flex;flex-direction:column;
  gap:30px;padding-top:25px;
}
.site-footer__nav{display:grid;grid-template-columns:205px auto;gap:0}
.site-footer__col{display:flex;flex-direction:column;gap:10px}
.site-footer__col li a{
  display:flex;align-items:center;gap:21px;
  font-family:"Noto Sans JP",sans-serif;font-weight:500;
  font-size:1.8rem;color:#fff;letter-spacing:0.03em;
  white-space:nowrap;
}
.site-footer__col li a:hover{opacity:.8}
.site-footer__arrow{
  display:inline-block;width:0;height:0;flex-shrink:0;
  border-top:5px solid transparent;border-bottom:5px solid transparent;
  border-left:8px solid #fff;
}
.site-footer__privacy{
  margin:0;text-align:right;
  font-family:"Noto Sans JP",sans-serif;font-weight:500;
  font-size:1.4rem;letter-spacing:0.03em;
  white-space:nowrap;
}
.site-footer__privacy a{color:#fff;text-decoration:none}
.site-footer__privacy a:hover{opacity:.8}

/* =========================================
   Responsive (SP)
========================================= */
@media screen and (max-width:768px){
  html,body{overflow-x:hidden}
  body{font-size:1.4rem}
  .container{padding:0 16px}
  .section-title{font-size:3.2rem}
  .section-lead{font-size:1.8rem}
  .section-desc{font-size:1.3rem;margin-bottom:32px;text-align:left}

  /* Header */
  .site-header{height:48.1px;background:#fff}
  .site-header__inner{padding:9.92px 15px}
  .site-header__logo img{height:24.26px}
  .site-header__nav{display:none}
  .site-header__hamburger{
    display:flex;flex-direction:column;justify-content:space-between;
    width:26.62px;height:12px;padding:0;border:0;background:transparent;cursor:pointer;
  }
  .site-header__hamburger span{
    display:block;width:100%;height:3px;background:#000;border-radius:9999px;
    transition:transform .3s,opacity .3s;
  }
  .site-header__nav.is-open{
    display:flex;flex-direction:column;align-items:center;
    position:fixed;top:48.1px;left:0;width:100%;
    background:#fff;padding:32px;gap:24px;
  }
  .site-header__nav.is-open ul{flex-direction:column;gap:24px;text-align:center;align-items:center;width:100%}

  /* FV */
  .fv{
    aspect-ratio:auto;
    height:auto;min-height:680px;
    padding:0;
    margin-top:48.1px; /* ヘッダー分だけFV全体を下げる */
    overflow:hidden;
    position:relative;
  }
  /* White circle */
  .fv__circle{
    top:80px;
    left:50%;
    transform:translateX(-50%);
    width:116vw;max-width:435px;
    aspect-ratio:1/1;
  }
  /* Main title image — swap PC composite for SP-only title */
  .fv__bg{display:none;}
  .fv__bg-sp{
    display:block;
    position:absolute;
    top:184px;left:50%;
    transform:translateX(-50%);
    width:92.435vw;max-width:346.75px;
    z-index:2;
    animation-name:fvFadeInUpCentered;
  }
  .fv__bg-sp img{width:100%;height:auto;display:block;}
  /* Title badges (SP) — position % based on title image */
  .fv__badge{
    display:block;
    position:absolute;
    z-index:3;
    pointer-events:none;
  }
  .fv__badge--left{
    left:-2%;
    top:calc(63% + 9px);
    width:24%;
    aspect-ratio:75.19/49.84;
    background-image:url('../images/fv-badge-left.svg');
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
  }
  .fv__badge--right{
    left:calc(75.29% + 5px);
    top:63.40%;
    width:24.47%;
    aspect-ratio:1;
    background:#fff;
    border:1px solid #000;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    transform:rotate(10deg) scale(0.85);
    font-family:"Noto Sans JP",sans-serif;
  }
  .fv__badge--right span{
    display:block;
    font-weight:700;
    font-size:clamp(11px,3.96vw,15.07px);
    line-height:1.23;
    color:#000;
    text-align:center;
    letter-spacing:-0.01em;
  }
  /* Flags */
  .fv__flags{
    position:absolute;
    top:61px;left:0;width:100%;height:73px;
  }
  .fv__flag{
    position:absolute;
    width:11.59vw;max-width:43.467px;
    aspect-ratio:43.467/42.761;
  }
  .fv__flag--japan1 { left:calc(50% - 130.9px); top:30px; }
  .fv__flag--denmark { left:calc(50% - 85.85px); top:16px; }
  .fv__flag--litania { left:calc(50% - 39.03px); top:0; }
  .fv__flag--korea   { left:calc(50% + 8.39px);  top:1.19px; }
  .fv__flag--france  { left:calc(50% + 58.17px); top:16px; }
  .fv__flag--japan2  { left:calc(50% + 107.96px); top:30px; }
  /* Catch (subtitle) */
  .fv__catch{
    top:121px;left:50%;
    transform:translateX(-50%);
    width:69.44%;max-width:260.4px;
  }
  /* Kids — Figma SP版 node 406:83 / 408:84 / 408:85 準拠 */
  .fv__kid--02, .fv__kid--03, .fv__kid--04, .fv__kid--05, .fv__kid--06 {
    display:none;
  }
  .fv__kid--07{ left:4px;       top:399.78px; width:117.083px; height:auto; }
  .fv__kid--08{ left:59.19px;   top:396px;    width:148.987px; height:auto; }
  .fv__kid--01{ left:226px;     top:391px;    width:125.917px; height:auto; }
  /* Bunting — Figma SP版（node 406:79〜82）準拠 */
  .fv__deco--11{ left:-15.27px;  top:-100.6px;  width:182.959px;  right:auto; transform:rotate(30deg); }
  .fv__deco--12{ left:-14.67px;  top:-53.71px;  width:170.7px;    right:auto; transform:rotate(19.98deg); }
  .fv__deco--09{ left:auto; right:-21.21px; top:-87.19px; width:178.709px;  transform:rotate(60deg); }
  .fv__deco--10{ left:auto; right:-20px;    top:-36.9px;  width:170.1px;    transform:rotate(170deg) scaleY(-1) scaleX(-1); }
  /* CTA — fixed at bottom */
  .fv__cta{
    position:fixed;
    right:auto;left:50%;
    transform:translateX(-50%);
    bottom:8px;
    width:92%;max-width:346px;
    animation-name:fvFadeInUpCentered, fvCtaFloat;
  }

  /* Teal wrap / About / Features */
  .teal-wrap{
    padding:60px 16px 60px;margin-top:40px;
    border-top-left-radius:0;
    border-top-right-radius:0;
  }
  .teal-wrap::before{
    display:block;
    top:-49px;height:50px;
  }
  .about,.features{
    width:315px;
    padding:36px 1px 45px;border-radius:10px;
    margin:0 auto 48px;background:#fffdfd;
  }
  .about{margin-top:-10px;}
  .about__illust{display:none}
  .features{margin-bottom:0}
  /* About — Figma SP node 409:87 準拠 */
  .about .section-title,
  .features .section-title,
  .flow .section-title,
  .plan .section-title,
  .faq .section-title{
    font-size:46px;font-weight:400;
    color:#29b5b2;
    font-family:"Wendy One","Noto Sans JP",sans-serif;
    margin:0 0 20px;line-height:1;
  }
  .movies .section-title{
    font-size:46px;font-weight:400;
    color:#000;
    font-family:"Wendy One","Noto Sans JP",sans-serif;
    margin:0 0 20px;line-height:1;
  }
  .about .section-lead,
  .features .section-lead,
  .flow .section-lead,
  .plan .section-lead,
  .faq .section-lead{
    font-size:21.85px;font-weight:700;line-height:29.93px;
    color:#29b5b2;
    font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
    text-align:center;margin:0 0 15px;
  }
  .movies .section-lead{
    font-size:21.85px;font-weight:700;line-height:29.93px;
    color:#000;
    font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
    text-align:center;margin:0 0 15px;
  }
  .sp-br{display:inline;}
  .about .section-desc,
  .features .section-desc,
  .movies .section-desc,
  .flow .section-desc,
  .plan .section-desc{
    font-size:16px;font-weight:500;line-height:1.7;color:#000;
    font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
    text-align:left;margin:0 0 25px;max-width:100%;
  }
  .movies,.flow,.plan,.faq,.company{padding:64px 0}
  .company{padding-top:0}
  .flow{padding-bottom:0;margin-bottom:-6px}
  .movies__illust,.flow__illust,.plan__illust,.faq__illust{display:none}
  .about__features{grid-template-columns:1fr;gap:40px;margin:25px auto 0;max-width:190px}
  .about__features li{display:flex;flex-direction:column;align-items:center;gap:18px}
  .about__icon{width:172.08px;height:172.08px;margin:0}
  .about__label{font-size:19px;line-height:normal;font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif}
  .features__list{
    grid-template-columns:repeat(2,135px);
    justify-content:center;column-gap:10px;row-gap:25px;
    max-width:none;margin:25px auto 0;
  }
  .features__icon{
    width:120px;height:115px;margin:0 auto 15px;
    border-radius:0;background:transparent;
  }
  .features__icon img{width:120px;height:auto}
  .features__label{
    width:135px;height:40px;font-size:16px;
    background:transparent;
  }
  .features__images{grid-template-columns:1fr;row-gap:25px}
  .features__arrow{
    transform:translate(-50%,-50%) rotate(90deg);
  }
  .features__arrow--1{left:50%;top:calc(33.333% + 10px)}
  .features__arrow--2{left:50%;top:calc(66.666% + 20px)}

  /* Movies */
  .movies__list{grid-template-columns:1fr;gap:16px}

  /* Movie Modal — SP: 縦組みレイアウト */
  .modal__panel{
    padding:54px 30px 30px;
    max-width:calc(100vw - 20px);
    border-radius:15px;
  }
  .modal__close{top:9px;right:9px}
  .modal__head{flex-direction:column;gap:15px;align-items:stretch}
  .modal__director{width:100%}
  .modal__director-photo{
    height:auto;aspect-ratio:194/104;
  }
  .modal__cols{grid-template-columns:1fr;gap:24px}

  /* Flow */
  .flow .container{
    width:315px;
    padding:36px 17px 25px;border-radius:10px;
    background:#fff;margin:0 auto;
  }
  .flow__steps{grid-template-columns:1fr;gap:48px}
  .flow__icon{width:190px;height:190px}
  .flow__num{
    width:56px;height:56px;font-size:2.4rem;
    transform:translate(calc(-50% - 70px),0);
  }
  .flow__box{width:281px;height:77px;padding:0 8px}
  .flow__box p br{display:none}
  .flow__steps h3{margin-bottom:4px}
  .flow__steps li:not(:last-child)::after{
    top:auto;bottom:-40px;right:50%;transform:translateX(50%) rotate(90deg);
  }
  .flow__materials{
    flex-direction:column;
    width:calc(100% + 34px);height:auto;
    padding:35px 20px 35px;gap:10px;align-items:center;
    margin:40px -17px -25px;box-sizing:border-box;
    border-radius:0 0 10px 10px;
  }
  .flow__materials-text{order:1;width:270px;text-align:center}
  .flow__materials-text h4{font-size:1.7rem;line-height:1.4;margin-bottom:7px}
  .flow__materials-text p{font-size:1.5rem;line-height:1.6;text-align:left}
  .flow__materials-thumbs{
    order:2;flex-direction:column;gap:7px;align-items:center;width:auto;
  }
  .flow__materials-thumbs img{
    width:170px;height:120px;object-fit:cover;
  }
  .flow__materials-thumbs img:first-child{width:179px;height:126px}

  /* Plan */
  .plan .container{
    width:315px;
    padding:36px 17px 25px;border-radius:10px;
    background:#fff;margin:0 auto;
  }
  .plan__box{grid-template-columns:1fr;max-width:275px;margin:16px auto 0}
  .plan__price{padding:30px 20px 24px}
  .plan__badge{width:238px;margin:0 auto 5px}
  .plan__amount{display:block;text-align:center;white-space:nowrap}
  .plan__amount-label{
    display:block;font-size:21px;line-height:30px;margin:0 0 4px;
  }
  .plan__amount strong{
    display:inline;vertical-align:baseline;
    font-size:56px;line-height:55px;letter-spacing:-0.6px;
  }
  .plan__amount-unit{
    font-size:17px;line-height:55px;letter-spacing:-0.5px;
  }
  .plan__amount-paren{margin-left:-2px}
  .plan__period{font-size:15px;margin-top:-4px;line-height:1}
  .plan__benefits{padding:28px 18px;gap:2px}
  .plan__benefits li{
    padding-left:34px;font-size:15px;line-height:19px;
  }

  /* Plan steps — Figma SP node 420:274 準拠 */
  .plan__steps{
    width:315px;padding:60px 10px 50px;
    margin:30px -17px -25px;border-radius:10px;
    box-sizing:border-box;
  }
  .plan__steps-title{
    font-size:30px;line-height:35px;margin-bottom:15px;
  }
  .plan__steps-lead{
    font-size:16px;line-height:26px;margin-bottom:30px;
  }
  .plan__steps-list{
    grid-template-columns:1fr;gap:15px;
    max-width:209px;margin:0 auto;
  }
  .plan-step{width:209px}
  .plan-step__head{font-size:18px;line-height:34px;padding:0}
  .plan-step__body{
    gap:14px;padding:12px 18px 18px;
  }
  .plan-step__icon{width:51px;height:58px}
  .plan-step__desc{font-size:15px;line-height:23px}

  /* FAQ */
  .faq{margin-top:50px;padding:40px 16px 60px}
  .faq::before{top:-49px;height:50px}
  .faq > .container{margin-top:-35px;width:335px;padding:0;margin-left:auto;margin-right:auto}
  .faq__list{margin-top:25px;gap:10px}
  .faq__item{border-radius:10px}
  .faq__q{
    padding:23px 10px 23px 20px;
    gap:15px;
    font-size:19px;
  }
  .faq__qmark{
    width:31.45px;height:31.45px;
    font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
    font-weight:900;
    font-size:42.5px;line-height:25.5px;letter-spacing:1.275px;
    color:#2bb7b3;
    margin-right:0;
  }
  .faq__qtxt{
    font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
    font-weight:700;
    font-size:19px;line-height:28px;letter-spacing:0.57px;
    color:#2bb7b3;
  }
  .faq__arrow{width:38.76px;height:38.76px}
  .faq__a{padding:0 20px 20px 20px;gap:15px;font-size:1.3rem}
  .faq__amark{width:31.45px;text-align:left;flex-shrink:0}

  /* Company */
  .company__card{width:335px;max-width:335px;margin:0 auto;padding:30px 20px 40px}
  .company__table{width:100%;display:block}
  .company__table tbody{display:block;width:100%}
  .company__table th,.company__table td{display:block;padding:8px 0;border:none}
  .company__table th{width:auto;color:var(--color-teal);padding-top:16px}
  .company__table tr{border-bottom:1px solid #ddd;display:block;padding:8px 0;width:100%}

  /* Contact Strip — Figma SP node 420:276 */
  .contact-strip{padding:40px 0 50px}
  .contact-strip__inner{
    flex-direction:column;align-items:flex-start;gap:10px;
    width:335px;max-width:335px;padding:0;margin:0 auto;
  }
  .contact-strip__title{
    font-size:32px;line-height:1.4;letter-spacing:0.03em;
    margin:0 0 8px;
  }
  .contact-strip__sub{
    font-size:16px;line-height:1.8;letter-spacing:0.03em;
  }
  .contact-strip__btn{
    width:278px;height:70px;padding:0 27px 0 26px;
    border-radius:35px;font-size:18px;margin-top:10px;
    align-self:flex-start;
  }

  /* Site Footer — Figma SP node 420:215 */
  .site-footer{padding:65px 36px 30px}
  .site-footer__inner{
    grid-template-columns:1fr;gap:0;max-width:none;
  }
  .site-footer__left{display:contents}
  .site-footer__logo{order:1;width:297px;max-width:100%;margin:0 0 28px}
  .site-footer__address{
    order:2;
    font-size:15px;line-height:25px;letter-spacing:0.03em;
    margin:0 0 23px;
  }
  .site-footer__right{
    order:3;padding-top:0;gap:28px;
  }
  .site-footer__copy{
    order:4;margin-top:18px;
    font-size:12px;letter-spacing:0.03em;
  }
  .site-footer__nav{
    grid-template-columns:1fr;gap:10px;
  }
  .site-footer__col{gap:10px}
  .site-footer__col li a{
    font-size:18px;gap:21px;letter-spacing:0.03em;
  }
  .site-footer__privacy{text-align:left;font-size:13px}
}

/* =========================================
   FV 出現アニメーション
   - 背景・装飾・旗・キャッチ・CTA は「ふわっと」（opacity/Y）
   - 子どもイラストは「ビョン！」と弾む（scale bounce）
   - 既存 transform（translateX(-50%)/rotate 等）は壊さないため
     該当要素は opacity のみを動かす
========================================= */
@keyframes fvFadeIn{
  from{opacity:0}
  to  {opacity:1}
}
@keyframes fvFadeInUp{
  from{opacity:0;transform:translateY(14px)}
  to  {opacity:1;transform:translateY(0)}
}
@keyframes fvKidBounce{
  0%  {opacity:0;transform:scale(.3) translateY(22px)}
  55% {opacity:1;transform:scale(1.18) translateY(-5px)}
  75% {opacity:1;transform:scale(.93) translateY(2px)}
  90% {opacity:1;transform:scale(1.05) translateY(-1px)}
  100%{opacity:1;transform:scale(1) translateY(0)}
}
/* CTA 常時浮遊（transform とは別の translate プロパティで SP の translateX(-50%) を壊さない）*/
@keyframes fvCtaFloat{
  0%,100%{translate:0 0}
  50%    {translate:0 -6px}
}
/* SP 版タイトル画像（.fv__bg-sp）は translateX(-50%) で中央寄せしているため、それを保持したまま fade-in */
@keyframes fvFadeInUpCentered{
  from{opacity:0;transform:translateX(-50%) translateY(14px)}
  to  {opacity:1;transform:translateX(-50%) translateY(0)}
}

.fv__circle,
.fv__bg img,
.fv__bg-sp,
.fv__deco,
.fv__flag,
.fv__catch,
.fv__cta,
.fv__badge,
.fv__kid{
  opacity:0;
  animation-fill-mode:both;
  animation-duration:.7s;
  animation-timing-function:cubic-bezier(.22,.8,.3,1);
}

/* ふわっと出現シーケンス */
.fv__circle       {animation-name:fvFadeIn;   animation-delay:.10s}
.fv__bg img       {animation-name:fvFadeInUp; animation-delay:.25s}
.fv__bg-sp        {animation-name:fvFadeInUpCentered; animation-delay:.25s}
.fv__deco--11     {animation-name:fvFadeIn;   animation-delay:.50s}
.fv__deco--12     {animation-name:fvFadeIn;   animation-delay:.60s}
.fv__deco--09     {animation-name:fvFadeIn;   animation-delay:.70s}
.fv__deco--10     {animation-name:fvFadeIn;   animation-delay:.80s}
.fv__flag--japan1 {animation-name:fvFadeInUp; animation-delay:.55s}
.fv__flag--denmark{animation-name:fvFadeInUp; animation-delay:.65s}
.fv__flag--litania{animation-name:fvFadeInUp; animation-delay:.75s}
.fv__flag--korea  {animation-name:fvFadeInUp; animation-delay:.85s}
.fv__flag--france {animation-name:fvFadeInUp; animation-delay:.95s}
.fv__flag--japan2 {animation-name:fvFadeInUp; animation-delay:1.05s}
.fv__catch        {animation-name:fvFadeIn;   animation-delay:1.10s}
.fv__badge--left  {animation-name:fvFadeIn;   animation-delay:1.20s}
.fv__badge--right {animation-name:fvFadeIn;   animation-delay:1.30s}
.fv__cta{
  animation-name:fvFadeInUp, fvCtaFloat;
  animation-duration:.6s, 2.4s;
  animation-delay:1.25s, 1.85s;
  animation-timing-function:cubic-bezier(.22,.8,.3,1), ease-in-out;
  animation-iteration-count:1, infinite;
  animation-fill-mode:both, none;
}
/* SP では .fv__cta に translateX(-50%) が効いているので center 保持版を使う */
@media (max-width:768px){
  .fv__cta{animation-name:fvFadeInUpCentered, fvCtaFloat}
}

/* 子どもイラスト — ビョン！ とランダムっぽくずらす */
.fv__kid{
  animation-name:fvKidBounce;
  animation-duration:.85s;
  animation-timing-function:cubic-bezier(.34,1.56,.64,1);
}
.fv__kid--04{animation-delay:1.35s}
.fv__kid--07{animation-delay:1.45s}
.fv__kid--08{animation-delay:1.58s}
.fv__kid--01{animation-delay:1.70s}
.fv__kid--05{animation-delay:1.82s}
.fv__kid--02{animation-delay:1.95s}
.fv__kid--06{animation-delay:2.07s}
.fv__kid--03{animation-delay:2.20s}

@media (prefers-reduced-motion: reduce){
  .fv__circle,.fv__bg img,.fv__bg-sp,.fv__deco,.fv__flag,
  .fv__catch,.fv__cta,.fv__badge,.fv__kid{
    animation:none !important;
    opacity:1 !important;
  }
}

/* =========================================
   Scroll Reveal — 下セクションの出現
   - 通常要素: ふわっと (opacity + translateY)
   - イラスト: ビョン (fvKidBounce 再利用)
========================================= */
.reveal-fade{
  opacity:0;
  translate:0 18px;
  transition:opacity .7s cubic-bezier(.22,.8,.3,1),translate .7s cubic-bezier(.22,.8,.3,1);
}
.reveal-fade.is-revealed{
  opacity:1;
  translate:0 0;
}
.reveal-bounce{opacity:0}
.reveal-bounce.is-revealed{
  animation:fvKidBounce .85s cubic-bezier(.34,1.56,.64,1) both;
}

/* .teal-wrap の背景とアーチだけをフェードイン（中身の要素は個別 reveal を維持）*/
.teal-wrap.reveal-teal{
  background-color:transparent;
  transition:background-color .9s cubic-bezier(.22,.8,.3,1);
}
.teal-wrap.reveal-teal::before{
  opacity:0;
  transition:opacity .9s cubic-bezier(.22,.8,.3,1);
}
.teal-wrap.reveal-teal.is-revealed{
  background-color:#2BB7B3;
}
.teal-wrap.reveal-teal.is-revealed::before{
  opacity:1;
}

/* 横並び要素を軽くスタガー */
.about__features > li.reveal-fade.is-revealed{transition-delay:0s}
.about__features > li:nth-child(2).reveal-fade.is-revealed{transition-delay:.10s}
.about__features > li:nth-child(3).reveal-fade.is-revealed{transition-delay:.20s}
.about__features > li:nth-child(4).reveal-fade.is-revealed{transition-delay:.30s}

.features__list > li:nth-child(2).reveal-fade.is-revealed{transition-delay:.10s}
.features__list > li:nth-child(3).reveal-fade.is-revealed{transition-delay:.20s}
.features__list > li:nth-child(4).reveal-fade.is-revealed{transition-delay:.30s}

.flow__steps > li:nth-child(2).reveal-fade.is-revealed{transition-delay:.12s}
.flow__steps > li:nth-child(3).reveal-fade.is-revealed{transition-delay:.24s}
.flow__steps > li:nth-child(4).reveal-fade.is-revealed{transition-delay:.36s}

.plan__steps-list > li:nth-child(2).reveal-fade.is-revealed{transition-delay:.12s}
.plan__steps-list > li:nth-child(3).reveal-fade.is-revealed{transition-delay:.24s}
.plan__steps-list > li:nth-child(4).reveal-fade.is-revealed{transition-delay:.36s}

.features__images .features__photo:nth-of-type(2).reveal-fade.is-revealed{transition-delay:.12s}
.features__images .features__photo:nth-of-type(3).reveal-fade.is-revealed{transition-delay:.24s}

/* イラストの微スタガー */
.about__illust--bunting.reveal-bounce.is-revealed{animation-delay:0s}
.about__illust--girl1.reveal-bounce.is-revealed {animation-delay:.15s}
.about__illust--girl2.reveal-bounce.is-revealed {animation-delay:.28s}

.movies__illust--bunting.reveal-bounce.is-revealed{animation-delay:0s}
.movies__illust--boy1.reveal-bounce.is-revealed  {animation-delay:.15s}
.movies__illust--boy2.reveal-bounce.is-revealed  {animation-delay:.28s}

.flow__illust--bunting.reveal-bounce.is-revealed {animation-delay:0s}
.flow__illust--boy.reveal-bounce.is-revealed     {animation-delay:.15s}
.flow__illust--girl.reveal-bounce.is-revealed    {animation-delay:.28s}

.plan__illust--girl1.reveal-bounce.is-revealed   {animation-delay:.08s}
.plan__illust--girl2.reveal-bounce.is-revealed   {animation-delay:.22s}

.faq__illust--bunting.reveal-bounce.is-revealed  {animation-delay:0s}
.faq__illust--girl.reveal-bounce.is-revealed     {animation-delay:.14s}
.faq__illust--boy-purple.reveal-bounce.is-revealed{animation-delay:.27s}
.faq__illust--boy-aqua.reveal-bounce.is-revealed {animation-delay:.20s}

@media (prefers-reduced-motion: reduce){
  .reveal-fade,.reveal-bounce{
    animation:none !important;
    transition:none !important;
    opacity:1 !important;
    transform:none !important;
    translate:none !important;
  }
}

/* ============================================
   page-section / 固定ページ共通
   ============================================ */
.page-section{
  padding:160px 20px 120px;
  background:var(--color-bg-cream);
  min-height:60vh;
}
.page-section__inner{
  max-width:720px;margin:0 auto;
  background:var(--color-white);
  border-radius:16px;
  padding:68px 40px 48px;
  box-shadow:0 6px 30px rgba(41,181,178,.08);
}
.page-section__header{text-align:center;margin-bottom:32px}
.page-section__title{
  font-size:28px;font-weight:700;color:var(--color-teal);
}
.page-section__body{font-size:15px;line-height:1.9;color:var(--color-text)}
.page-section--center .page-section__body{text-align:center}
.page-section__body p{margin:0 0 1em}
.page-section__body a{color:var(--color-teal);text-decoration:underline}
.page-section__body h2{
  margin:48px 0 24px;
  padding-top:48px;
  border-top:1px solid #e5e5e5;
  font-size:20px;font-weight:700;
}
.page-section__body h2:first-of-type{
  margin-top:64px;padding-top:0;border-top:0;
}
.page-section__body h3{margin:24px 0 12px;font-size:16px;font-weight:700}

@media(max-width:768px){
  .page-section{padding:98px 14px 80px}
  .page-section__inner{padding:28px 18px;border-radius:12px}
  .page-section__title{font-size:22px}
  .page-section__body{font-size:14px}
}

/* ============================================
   お申し込みフォーム（krt-form）
   ============================================ */
.krt-form{display:block}
.krt-form__row{
  display:flex !important;flex-direction:column;gap:10px;
  margin:0 0 40px !important;
}
.krt-form__row--privacy{text-align:center;margin-top:80px;display:block}

.krt-form__label{
  font-size:14px;font-weight:700;
  color:var(--color-text);margin:0;line-height:1.3;
}
.krt-form__row .wpcf7-form-control-wrap{display:block;margin:0}
.krt-form__required,
.krt-form__optional{
  display:inline-block;font-size:11px;font-weight:700;
  padding:2px 8px;border-radius:10px;margin-left:8px;
  vertical-align:middle;line-height:1.4;
}
.krt-form__required{background:var(--color-pink);color:#fff}
.krt-form__optional{background:#c8c8c8;color:#fff}

.krt-form__input,
.krt-form__select,
.krt-form__textarea{
  width:100%;box-sizing:border-box;
  padding:12px 14px;font-size:15px;
  background:#f5f5f5;border:1px solid #e0e0e0;
  border-radius:8px;color:var(--color-text);
  font-family:inherit;
  transition:border-color .2s,background .2s;
}
.krt-form__input:focus,
.krt-form__select:focus,
.krt-form__textarea:focus{
  outline:none;background:#fff;
  border-color:var(--color-teal);
  box-shadow:0 0 0 3px rgba(41,181,178,.15);
}
.krt-form__textarea{min-height:140px;resize:vertical;line-height:1.7}

.krt-form__select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;
  padding-right:36px;cursor:pointer;
}

.krt-form__radio{display:inline-flex;gap:24px;flex-wrap:wrap}
.krt-form__radio .wpcf7-list-item{margin:0}
.krt-form__radio label{
  display:inline-flex;align-items:center;gap:6px;
  cursor:pointer;font-size:15px;
}
.krt-form__radio input[type=radio]{
  width:18px;height:18px;accent-color:var(--color-teal);cursor:pointer;
}

.krt-form__checkbox{display:inline-block;margin-right:4px}
.krt-form__checkbox input[type=checkbox]{
  width:18px;height:18px;accent-color:var(--color-teal);
  vertical-align:middle;cursor:pointer;
}
.krt-form__row--privacy label{cursor:pointer;font-size:14px}
.krt-form__row--privacy a{color:var(--color-teal);text-decoration:underline}

.krt-form__submit{
  display:flex;justify-content:center;align-items:center;
  margin:40px 0 0;
}
.krt-form__submit .wpcf7-spinner{position:absolute;margin-left:10px;opacity:.7}
.krt-form__submit{position:relative}
.krt-form__button{
  display:inline-block;min-width:260px;padding:16px 48px;
  background:var(--color-teal);color:#fff;font-size:17px;font-weight:700;
  border:none;border-radius:999px;cursor:pointer;
  box-shadow:0 4px 0 var(--color-teal-dark);
  transition:transform .1s,box-shadow .1s,background .2s;
  font-family:inherit;
}
.krt-form__button:hover{background:var(--color-teal-dark)}
.krt-form__button:active{transform:translateY(2px);box-shadow:0 2px 0 var(--color-teal-dark)}
.krt-form__button:disabled{opacity:.5;cursor:not-allowed}

/* CF7 がラップする <p> のデフォルトマージン打ち消し */
.wpcf7 form > p{margin:0}

/* エラーメッセージ */
.wpcf7-not-valid-tip{
  display:block;color:#d33;font-size:12px;margin-top:6px;
}
.wpcf7-response-output{
  margin:24px 0 0;padding:14px 16px;
  border-radius:8px;font-size:14px;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output{
  border:1px solid #d33;background:#fff5f5;color:#d33;
}
.wpcf7 form.sent .wpcf7-response-output{
  border:1px solid #2a7;background:#f3fbf7;color:#1a6;
}

/* スピナー */
.wpcf7-spinner{vertical-align:middle;margin-left:10px}

@media(max-width:768px){
  .krt-form__row{margin-bottom:18px}
  .krt-form__button{min-width:0;width:100%;padding:14px 24px;font-size:16px}
  .krt-form__radio{gap:16px}
}

/* Anchor scroll offset for in-page nav */
section[id]{scroll-margin-top:40px}

/* TOP link in nav: SP only */
.site-header__nav-top{display:none}
@media(max-width:768px){
  .site-header__nav-top{display:list-item}
}
