@charset "UTF-8";
/* エニスタ高等学院 LP — テスト環境用スタイル
   セクション番号は index.html の区切りコメントに対応 */

/* ===== VARIABLES ===== */
:root{
  --color-primary:#0A4883;
  --color-primary-d:#083A69;
  --color-secondary:#6A9ECD;
  --color-accent:#DCEAF6;
  --color-bg:#FFFFFF;
  --color-bg-alt:#F5F9FC;
  --color-text:#333A42;
  --color-text-l:#5E686F;
  --color-line:#E3ECF4;
  --color-cta:#F5A623;
  --color-cta-d:#E2900C;

  --font-heading:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Yu Gothic",sans-serif;
  --font-body:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;

  --fs-xs:1.3rem;
  --fs-sm:1.5rem;
  --fs-base:1.6rem;
  --fs-md:1.8rem;
  --fs-lg:2.0rem;
  --fs-xl:2.4rem;
  --fs-2xl:2.8rem;
  --fs-3xl:3.4rem;

  --radius:16px;
  --radius-lg:24px;
  --shadow:0 4px 20px rgba(10,72,131,.08);
  --shadow-lg:0 10px 34px rgba(10,72,131,.10);
  --container:1100px;
  --header-h:60px;
  --sp-cta-h:64px;
}
@media (min-width:768px){
  :root{
    --fs-xs:1.4rem; --fs-sm:1.5rem; --fs-base:1.7rem; --fs-md:1.9rem;
    --fs-lg:2.2rem; --fs-xl:2.8rem; --fs-2xl:3.4rem; --fs-3xl:4.6rem;
    --header-h:76px;
  }
}

/* ===== BASE / RESET ===== */
*,*::before,*::after{box-sizing:border-box;}
html{font-size:62.5%;scroll-behavior:auto;}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--fs-base);
  line-height:1.9;
  letter-spacing:.04em;
  color:var(--color-text);
  background:var(--color-bg);
  -webkit-font-smoothing:antialiased;
  padding-bottom:var(--sp-cta-h);
}
@media (min-width:768px){ body{padding-bottom:0;} }
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0;padding:0;}
ul,ol{list-style:none;}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;line-height:1.6;letter-spacing:.04em;color:var(--color-primary);}
img{max-width:100%;height:auto;display:block;}
a{color:var(--color-primary);text-decoration:none;transition:opacity .2s,color .2s;}
a:hover{color:var(--color-secondary);}
button{font-family:inherit;letter-spacing:inherit;cursor:pointer;}

/* ===== LAYOUT ===== */
.l-container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:20px;}
@media (min-width:768px){ .l-container{padding-inline:32px;} }
.l-section{padding-block:64px;position:relative;}
@media (min-width:768px){ .l-section{padding-block:104px;} }
@media (min-width:1024px){ .l-section{padding-block:124px;} }
.l-section--alt{background:var(--color-bg-alt);}
.l-section--accent{background:var(--color-accent);}

/* ===== COMPONENT: section heading ===== */
.c-sec-head{text-align:center;margin-bottom:40px;}
@media (min-width:768px){ .c-sec-head{margin-bottom:56px;} }
.c-sec-head__label{
  display:block;font-family:var(--font-heading);font-size:var(--fs-xs);
  letter-spacing:.24em;color:var(--color-secondary);margin-bottom:10px;
}
.c-sec-head__title{font-size:var(--fs-xl);text-wrap:balance;}
.c-sec-head__lead{
  margin-top:20px;font-size:var(--fs-base);color:var(--color-text-l);
  max-width:760px;margin-inline:auto;text-wrap:balance;
}
.c-sec-head--left{text-align:left;}
.c-sec-head--left .c-sec-head__lead{margin-inline:0;}

/* ===== COMPONENT: buttons ===== */
.c-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:56px;padding:14px 30px;border:none;border-radius:999px;
  font-family:var(--font-heading);font-size:var(--fs-base);font-weight:700;
  letter-spacing:.06em;text-align:center;line-height:1.5;
}
.c-btn__icon{width:20px;height:20px;flex:none;}
.c-btn--cta{background:var(--color-cta);color:#fff;box-shadow:0 6px 18px rgba(245,166,35,.28);}
.c-btn--cta:hover{background:var(--color-cta-d);color:#fff;}
.c-btn--outline{background:#fff;color:var(--color-primary);box-shadow:var(--shadow);}
.c-btn--outline:hover{background:var(--color-accent);color:var(--color-primary);}
.c-btn--ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.7);}
.c-btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff;}
.c-btn--wide{width:100%;}
@media (min-width:768px){ .c-btn--wide{width:auto;min-width:320px;} }

/* ===== COMPONENT: card ===== */
.c-card{background:#fff;border-radius:var(--radius-lg);padding:28px 24px;box-shadow:var(--shadow);}
.c-card__title{font-size:var(--fs-md);margin-bottom:10px;}
.c-card__text{font-size:var(--fs-sm);color:var(--color-text-l);}

/* ===== COMPONENT: image placeholder ===== */
.c-ph{
  display:block;width:100%;height:auto;background:#EDF1F5;
  border-radius:var(--radius);object-fit:cover;
}
.c-ph--16-9{aspect-ratio:16/9;}
.c-ph--1-1{aspect-ratio:1/1;}
.c-ph--4-3{aspect-ratio:4/3;}
.c-ph--3-4{aspect-ratio:3/4;}

/* ===== COMPONENT: wave divider ===== */
.c-wave{display:block;width:100%;height:40px;}
@media (min-width:768px){ .c-wave{height:64px;} }
.c-wave svg{display:block;width:100%;height:100%;}

/* ===== COMPONENT: tag ===== */
.c-tag{
  display:inline-block;background:var(--color-accent);color:var(--color-primary);
  font-size:1.4rem;font-weight:500;padding:3px 14px;border-radius:999px;letter-spacing:.08em;
}

/* ===== ANIMATION ===== */
.js-fade{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease;}
.js-fade.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){ .js-fade{opacity:1;transform:none;transition:none;} }

/* ===== [00] HEADER ===== */
.p-header{
  position:fixed;inset:0 0 auto 0;z-index:100;background:#fff;
  border-bottom:1px solid var(--color-line);isolation:isolate;
}
@supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))){
  .p-header{
    background:rgba(255,255,255,.94);
    -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  }
}
.p-header__inner{
  height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:16px;
  max-width:1280px;margin-inline:auto;padding-inline:20px;
}
@media (min-width:768px){ .p-header__inner{padding-inline:28px;} }
.p-header__logo{display:flex;align-items:center;}
.p-header__logo-img{width:auto;height:30px;}
@media (min-width:768px){ .p-header__logo-img{height:40px;} }
.p-header__nav{display:none;}
@media (min-width:1024px){
  .p-header__nav{display:block;}
  .p-header__nav-list{display:flex;align-items:center;gap:22px;}
  .p-header__nav-link{font-size:var(--fs-sm);font-weight:500;color:var(--color-text);}
  .p-header__nav-link:hover{color:var(--color-secondary);}
}
.p-header__actions{display:flex;align-items:center;gap:14px;}
.p-header__tel{display:none;line-height:1.3;text-align:right;}
@media (min-width:1024px){ .p-header__tel{display:block;} }
.p-header__tel-label{display:block;font-size:1.1rem;color:var(--color-secondary);letter-spacing:.12em;}
.p-header__tel-num{display:block;font-family:var(--font-heading);font-size:var(--fs-md);font-weight:700;color:var(--color-primary);letter-spacing:.02em;}
.p-header__tel-time{display:block;font-size:1.2rem;color:var(--color-text-l);letter-spacing:.06em;}
.p-header__cta{display:none;}
@media (min-width:768px){ .p-header__cta{display:inline-flex;min-height:46px;padding:10px 22px;font-size:var(--fs-sm);} }

.p-header__burger{
  position:relative;z-index:2;flex:none;
  display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:5px;
  width:44px;height:44px;padding:0 10px;border:none;
  background:transparent;-webkit-appearance:none;appearance:none;
}
@media (min-width:1024px){ .p-header__burger{display:none;} }
.p-header__burger__bar{
  display:block;flex:none;width:100%;height:2px;min-height:2px;
  background-color:var(--color-primary);border-radius:2px;
  transition:transform .3s,opacity .3s;
}
.p-header__burger[aria-expanded="true"] .p-header__burger__bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
.p-header__burger[aria-expanded="true"] .p-header__burger__bar:nth-child(2){opacity:0;}
.p-header__burger[aria-expanded="true"] .p-header__burger__bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.p-drawer{
  position:fixed;inset:var(--header-h) 0 0 0;z-index:99;background:#fff;
  padding:28px 24px 48px;overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .3s,transform .3s,visibility .3s;
}
.p-drawer.is-open{opacity:1;visibility:visible;transform:none;}
@media (min-width:1024px){ .p-drawer{display:none;} }
.p-drawer__list{display:grid;gap:2px;margin-bottom:28px;}
.p-drawer__link{display:block;padding:16px 4px;font-family:var(--font-heading);font-size:var(--fs-md);border-bottom:1px solid var(--color-line);}
.p-drawer__tel{display:block;text-align:center;margin-bottom:4px;font-family:var(--font-heading);font-size:var(--fs-lg);font-weight:700;}
.p-drawer__tel-time{text-align:center;margin-bottom:20px;font-size:var(--fs-sm);color:var(--color-text-l);}

/* ===== [01] FIRST VIEW ===== */
.p-fv{position:relative;padding-top:var(--header-h);}
.p-fv__media{position:relative;}
.p-fv__ph{border-radius:0;aspect-ratio:4/3;}
@media (min-width:768px){ .p-fv__ph{aspect-ratio:16/9;} }
.p-fv__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.88));}
.p-fv__body{position:relative;padding:40px 0 64px;text-align:center;}
@media (min-width:768px){
  .p-fv__media{position:absolute;inset:var(--header-h) 0 0 0;}
  .p-fv__ph{height:100%;aspect-ratio:auto;}
  .p-fv__body{padding:96px 0 120px;min-height:520px;display:flex;flex-direction:column;justify-content:center;}
}
.p-fv__note{
  display:inline-flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;
  align-self:center;width:fit-content;margin-inline:auto;
  background:rgba(255,255,255,.8);border-radius:999px;padding:7px 20px;margin-bottom:22px;
  font-size:var(--fs-xs);color:var(--color-primary);letter-spacing:.08em;
}
.p-fv__title{font-size:var(--fs-3xl);line-height:1.5;margin-bottom:20px;text-wrap:balance;}
.p-fv__sub{font-size:var(--fs-md);color:var(--color-text);max-width:640px;margin:0 auto 32px;text-wrap:balance;}
.p-fv__actions{display:grid;gap:14px;justify-content:center;}
@media (min-width:768px){ .p-fv__actions{grid-auto-flow:column;gap:20px;} }
.p-fv__scroll{display:none;}
@media (min-width:768px){
  .p-fv__scroll{display:flex;justify-content:center;margin-top:40px;color:var(--color-secondary);}
}
.p-fv__scroll-arrow{width:22px;height:36px;animation:fvScroll 2.4s ease-in-out infinite;}
@keyframes fvScroll{
  0%,100%{transform:translateY(-5px);opacity:.55;}
  50%{transform:translateY(5px);opacity:1;}
}
@media (prefers-reduced-motion:reduce){ .p-fv__scroll-arrow{animation:none;} }

/* ===== [02] WORRIES ===== */
.p-worries{background:var(--color-bg-alt);padding-bottom:24px;}
.p-worries__grid{display:grid;gap:16px;}
@media (min-width:768px){ .p-worries__grid{grid-template-columns:repeat(2,1fr);gap:20px;} }
@media (min-width:1024px){ .p-worries__grid{grid-template-columns:repeat(3,1fr);gap:24px;} }
.p-worries__item{display:flex;flex-direction:column;gap:14px;}
.p-worries__icon{width:44px;height:44px;color:var(--color-secondary);}
.p-worries__text{font-size:var(--fs-base);font-family:var(--font-heading);color:var(--color-primary);line-height:1.7;}
.p-worries__closing{
  margin-top:40px;text-align:center;font-family:var(--font-heading);
  font-size:var(--fs-lg);color:var(--color-primary);line-height:1.7;text-wrap:balance;
}
.p-worries__wave{background:var(--color-bg-alt);}
.p-worries__wave svg{fill:#fff;}

/* ===== [03] ABOUT ===== */
.p-about__text{
  max-width:820px;margin:0 auto 48px;font-size:var(--fs-md);line-height:2.1;
}
.p-about__diagram{
  display:grid;gap:0;align-items:center;justify-items:center;
  background:var(--color-bg-alt);border-radius:var(--radius-lg);padding:32px 20px;
}
@media (min-width:768px){
  .p-about__diagram{display:flex;flex-wrap:nowrap;padding:48px 40px;gap:0;}
}
.p-about__box{
  width:100%;max-width:400px;min-width:0;flex:1 1 0;background:#fff;border-radius:var(--radius);
  padding:24px 22px;box-shadow:var(--shadow);text-align:center;
}
.p-about__box-label{display:block;font-size:var(--fs-xs);letter-spacing:.16em;color:var(--color-secondary);margin-bottom:8px;}
.p-about__box-title{font-size:var(--fs-md);margin-bottom:10px;}
.p-about__box-text{font-size:var(--fs-sm);color:var(--color-text-l);}
.p-about__box--support{border-top:4px solid var(--color-cta);}
.p-about__student{
  width:112px;height:112px;border-radius:50%;background:var(--color-primary);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  font-family:var(--font-heading);font-size:var(--fs-sm);font-weight:700;flex:none;
}
.p-about__student svg{width:26px;height:26px;}
.p-about__link{
  width:2px;height:32px;background:repeating-linear-gradient(180deg,var(--color-secondary) 0 6px,transparent 6px 12px);
}
@media (min-width:768px){
  .p-about__link{flex:0 0 48px;width:48px;height:2px;background:repeating-linear-gradient(90deg,var(--color-secondary) 0 6px,transparent 6px 12px);}
}
.p-about__caption{
  margin-top:20px;text-align:center;font-size:var(--fs-sm);color:var(--color-text-l);
}

/* ===== [04] FEATURES ===== */
.p-features__list{display:grid;gap:28px;}
@media (min-width:768px){ .p-features__list{gap:56px;} }
.p-features__item{
  background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;
  display:grid;gap:0;
}
@media (min-width:768px){
  .p-features__item{grid-template-columns:38% 1fr;align-items:center;}
  .p-features__item:nth-child(even) .p-features__media{order:2;}
}
.p-features__media .c-ph{border-radius:0;}
.p-features__body{padding:26px 24px 30px;}
@media (min-width:768px){ .p-features__body{padding:40px 44px;} }
.p-features__num{
  display:flex;align-items:baseline;gap:8px;font-family:var(--font-heading);
  color:var(--color-secondary);margin-bottom:10px;
}
.p-features__num-label{font-size:var(--fs-xs);letter-spacing:.2em;}
.p-features__num-value{font-size:var(--fs-2xl);font-weight:700;line-height:1;}
.p-features__title{font-size:var(--fs-lg);margin-bottom:12px;}
.p-features__text{font-size:var(--fs-base);color:var(--color-text-l);}

/* ===== [05] SUPPORT ===== */
.p-support__list{display:grid;gap:14px;max-width:900px;margin-inline:auto;}
.p-support__item{
  display:flex;align-items:flex-start;gap:16px;background:#fff;
  border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow);
}
.p-support__icon{width:32px;height:32px;flex:none;color:var(--color-secondary);margin-top:2px;}
.p-support__text{font-size:var(--fs-md);font-family:var(--font-heading);color:var(--color-primary);line-height:1.7;}

/* ===== [06] STYLE ===== */
.p-style{background:var(--color-bg-alt);padding-bottom:24px;}
.p-style__basic{
  display:grid;gap:0;background:#fff;border-radius:var(--radius-lg);
  box-shadow:var(--shadow);overflow:hidden;margin-bottom:32px;
}
@media (min-width:768px){ .p-style__basic{grid-template-columns:repeat(3,1fr);} }
.p-style__basic-item{padding:24px 26px;border-bottom:1px solid var(--color-line);text-align:center;}
.p-style__basic-item:last-child{border-bottom:none;}
@media (min-width:768px){
  .p-style__basic-item{border-bottom:none;border-right:1px solid var(--color-line);}
  .p-style__basic-item:last-child{border-right:none;}
}
.p-style__basic-label{display:block;font-size:1.4rem;letter-spacing:.16em;color:var(--color-secondary);margin-bottom:8px;}
.p-style__basic-value{font-family:var(--font-heading);font-size:var(--fs-lg);color:var(--color-primary);line-height:1.5;}
.p-style__basic-note{display:block;font-size:1.4rem;color:var(--color-text-l);margin-top:6px;}
.p-style__plans{display:grid;gap:20px;}
@media (min-width:768px){ .p-style__plans{grid-template-columns:repeat(2,1fr);gap:24px;} }
.p-style__plan{background:#fff;border-radius:var(--radius-lg);padding:28px 26px;box-shadow:var(--shadow);}
.p-style__plan-name{font-size:var(--fs-xl);margin-bottom:4px;}
.p-style__plan-for{display:inline-block;margin-bottom:16px;}
.p-style__plan-time{
  font-family:var(--font-heading);font-size:var(--fs-md);color:var(--color-primary);
  padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--color-line);
}
.p-style__plan-text{font-size:var(--fs-base);color:var(--color-text-l);}
.p-style__note{
  margin-top:28px;background:var(--color-accent);border-radius:var(--radius);
  padding:20px 24px;font-size:var(--fs-base);color:var(--color-primary);
}
.p-style__wave{background:var(--color-bg-alt);}
.p-style__wave svg{fill:#fff;}

/* ===== [07] SCHOOLING ===== */
.p-schooling__inner{display:grid;gap:28px;align-items:center;}
@media (min-width:1024px){ .p-schooling__inner{grid-template-columns:44% 1fr;gap:56px;} }
.p-schooling__text{font-size:var(--fs-base);line-height:2.1;}
.p-schooling__text + .p-schooling__text{margin-top:18px;}

/* ===== [08] TUITION ===== */
.p-tuition__cards{display:grid;gap:20px;margin-bottom:36px;}
@media (min-width:768px){ .p-tuition__cards{grid-template-columns:repeat(2,1fr);gap:24px;} }
.p-tuition__card{background:#fff;border-radius:var(--radius-lg);padding:30px 26px;box-shadow:var(--shadow);}
.p-tuition__no{
  display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:50%;background:var(--color-accent);color:var(--color-primary);
  font-family:var(--font-heading);font-weight:700;font-size:var(--fs-md);margin-bottom:14px;
}
.p-tuition__card-title{font-size:var(--fs-md);margin-bottom:12px;}
.p-tuition__card-text{font-size:var(--fs-sm);color:var(--color-text-l);}
.p-tuition__closing{text-align:center;}
.p-tuition__closing-text{font-size:var(--fs-base);margin-bottom:24px;text-wrap:balance;}

/* ===== [09] FLOW ===== */
.p-flow__list{max-width:780px;margin-inline:auto;display:grid;gap:0;}
.p-flow__item{position:relative;display:grid;grid-template-columns:52px 1fr;gap:18px;padding-bottom:32px;}
@media (min-width:768px){ .p-flow__item{grid-template-columns:64px 1fr;gap:28px;padding-bottom:40px;} }
.p-flow__item:last-child{padding-bottom:0;}
.p-flow__item::before{
  content:"";position:absolute;left:25px;top:56px;bottom:0;width:2px;
  background:repeating-linear-gradient(180deg,var(--color-secondary) 0 5px,transparent 5px 11px);
}
@media (min-width:768px){ .p-flow__item::before{left:31px;top:68px;} }
.p-flow__item:last-child::before{display:none;}
.p-flow__num{
  width:52px;height:52px;border-radius:50%;background:var(--color-primary);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:var(--font-heading);font-weight:700;line-height:1;
}
@media (min-width:768px){ .p-flow__num{width:64px;height:64px;} }
.p-flow__num-label{font-size:1.1rem;letter-spacing:.1em;opacity:.75;margin-bottom:2px;}
.p-flow__num-value{font-size:var(--fs-lg);}
.p-flow__body{padding-top:4px;}
.p-flow__title{font-size:var(--fs-lg);margin-bottom:8px;}
.p-flow__text{font-size:var(--fs-md);color:var(--color-text-l);}

/* ===== [10] GREETING ===== */
.p-greeting{background:var(--color-bg-alt);}
.p-greeting__list{display:grid;gap:24px;}
@media (min-width:1024px){ .p-greeting__list{grid-template-columns:repeat(2,1fr);gap:32px;} }
.p-greeting__item{
  background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);
  padding:26px 24px 30px;display:flex;flex-direction:column;gap:22px;
}
@media (min-width:768px){ .p-greeting__item{padding:36px 34px 40px;} }
.p-greeting__figure{width:100%;max-width:260px;margin-inline:auto;}
@media (min-width:768px){ .p-greeting__figure{max-width:300px;} }
.p-greeting__role{
  font-family:var(--font-heading);font-size:var(--fs-sm);
  color:var(--color-secondary);letter-spacing:.1em;margin-bottom:4px;
}
.p-greeting__name{font-size:var(--fs-xl);margin-bottom:20px;letter-spacing:.08em;}
.p-greeting__text{font-size:var(--fs-base);line-height:2.15;}
.p-greeting__text + .p-greeting__text{margin-top:18px;}
.p-greeting__quote{
  margin-block:22px;font-family:var(--font-heading);font-size:var(--fs-lg);
  line-height:1.8;color:var(--color-secondary);
}

/* ===== [11] FAQ ===== */
.p-faq__list{max-width:840px;margin-inline:auto;display:grid;gap:14px;}
.p-faq__item{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;}
.p-faq__q{
  display:flex;align-items:flex-start;gap:14px;padding:20px 22px;cursor:pointer;
  font-family:var(--font-heading);font-size:var(--fs-md);color:var(--color-primary);
  line-height:1.7;list-style:none;
}
.p-faq__q::-webkit-details-marker{display:none;}
.p-faq__q-mark{font-size:var(--fs-lg);color:var(--color-secondary);line-height:1.4;flex:none;}
.p-faq__q-sign{margin-left:auto;position:relative;width:18px;height:18px;flex:none;margin-top:6px;}
.p-faq__q-sign::before,.p-faq__q-sign::after{
  content:"";position:absolute;inset:50% 0 auto 0;height:2px;background:var(--color-secondary);
  border-radius:2px;transition:transform .25s;
}
.p-faq__q-sign::after{transform:rotate(90deg);}
.p-faq__item[open] .p-faq__q-sign::after{transform:rotate(0);}
.p-faq__a{display:flex;gap:14px;padding:0 22px 24px;}
.p-faq__a-mark{font-family:var(--font-heading);font-size:var(--fs-lg);color:var(--color-cta);line-height:1.4;flex:none;}
.p-faq__a-text{font-size:var(--fs-base);color:var(--color-text-l);}

/* ===== [12] NEWS ===== */
.p-news{background:var(--color-bg-alt);}
.p-news__list{display:grid;gap:18px;}
@media (min-width:768px){ .p-news__list{grid-template-columns:repeat(3,1fr);gap:24px;} }
.p-news__item{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);}
.p-news__link{display:block;padding:24px 24px 26px;height:100%;}
.p-news__meta{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.p-news__date{font-family:var(--font-heading);font-size:var(--fs-xs);color:var(--color-secondary);letter-spacing:.1em;}
.p-news__title{font-size:var(--fs-base);line-height:1.8;}
.p-news__more{margin-top:24px;text-align:right;}
.p-news__more a{font-size:var(--fs-sm);font-weight:500;}

/* ===== [13] ACCESS ===== */
.p-access__inner{display:grid;gap:28px;}
@media (min-width:1024px){ .p-access__inner{grid-template-columns:1fr 1fr;gap:48px;align-items:start;} }
.p-access__table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.p-access__table th,.p-access__table td{
  text-align:left;padding:14px 4px;border-bottom:1px solid var(--color-line);vertical-align:top;
}
.p-access__table th{
  width:8em;font-family:var(--font-heading);font-weight:500;color:var(--color-primary);white-space:nowrap;
}
.p-access__landmark{display:block;margin-top:6px;font-size:1.4rem;color:var(--color-text-l);line-height:1.8;}
.p-access__map{margin-top:28px;border-radius:var(--radius);overflow:hidden;background:#EDF1F5;}
.p-access__map iframe{display:block;width:100%;height:300px;border:0;}
.p-access__map-note{
  display:flex;align-items:center;justify-content:center;height:300px;
  color:#8B98A3;font-size:var(--fs-xs);letter-spacing:.1em;text-align:center;padding:12px;
}

/* ===== [14] CONTACT ===== */
.p-contact{
  background:linear-gradient(160deg,var(--color-primary) 0%,#1B5C9B 55%,var(--color-secondary) 100%);
  color:#fff;
}
.p-contact .c-sec-head__title,.p-contact h3{color:#fff;}
.p-contact .c-sec-head__label{color:rgba(255,255,255,.7);}
.p-contact .c-sec-head__lead{color:rgba(255,255,255,.9);}
.p-contact__inner{max-width:860px;margin-inline:auto;}
.p-contact__form{background:#fff;border-radius:var(--radius-lg);padding:28px 22px;box-shadow:var(--shadow-lg);color:var(--color-text);}
@media (min-width:768px){ .p-contact__form{padding:44px 48px;} }
.p-contact__field{margin-bottom:22px;}
.p-contact__label{
  display:block;margin-bottom:8px;font-family:var(--font-heading);font-size:var(--fs-sm);
  font-weight:500;color:var(--color-primary);
}
.p-contact__req{color:var(--color-cta);font-size:var(--fs-xs);margin-left:6px;}
.p-contact__input,.p-contact__select,.p-contact__textarea{
  width:100%;min-height:52px;padding:13px 16px;font-family:var(--font-body);
  font-size:var(--fs-base);color:var(--color-text);letter-spacing:.04em;
  background:var(--color-bg-alt);border:1px solid var(--color-line);border-radius:12px;
}
.p-contact__textarea{min-height:140px;resize:vertical;line-height:1.9;}
.p-contact__input:focus,.p-contact__select:focus,.p-contact__textarea:focus{
  outline:2px solid var(--color-secondary);outline-offset:1px;background:#fff;
}
.p-contact__row{display:grid;gap:22px;}
@media (min-width:768px){ .p-contact__row{grid-template-columns:repeat(2,1fr);} }
.p-contact__radios{display:flex;flex-wrap:wrap;gap:10px 24px;}
.p-contact__radio,.p-contact__check{
  display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);min-height:44px;cursor:pointer;
}
.p-contact__radio input,.p-contact__check input{width:20px;height:20px;accent-color:var(--color-primary);flex:none;}
.p-contact__privacy{
  background:var(--color-bg-alt);border-radius:12px;padding:14px 18px;margin-bottom:24px;
}
.p-contact__submit{margin-top:4px;text-align:center;}
.p-contact__tel{
  margin-top:32px;text-align:center;background:rgba(255,255,255,.12);
  border-radius:var(--radius);padding:22px;
}
.p-contact__tel-label{font-size:var(--fs-sm);color:rgba(255,255,255,.9);}
.p-contact__tel-num{
  display:inline-block;margin-top:6px;font-family:var(--font-heading);font-size:var(--fs-2xl);
  font-weight:700;color:#fff;letter-spacing:.04em;
}
.p-contact__tel-num:hover{color:#fff;opacity:.8;}
.p-contact__tel-time{display:block;font-size:var(--fs-xs);color:rgba(255,255,255,.8);}

/* ===== [15] FOOTER ===== */
.p-footer{background:var(--color-primary);color:rgba(255,255,255,.86);padding:56px 0 32px;font-size:var(--fs-sm);}
.p-footer__inner{display:grid;gap:36px;}
@media (min-width:768px){ .p-footer__inner{grid-template-columns:1fr 1fr;gap:48px;} }
.p-footer__logo{display:flex;align-items:center;margin-bottom:16px;}
.p-footer__logo-img{width:auto;height:38px;filter:brightness(0) invert(1);}
.p-footer__company{line-height:1.9;}
.p-footer__company dt{font-size:var(--fs-xs);color:rgba(255,255,255,.6);letter-spacing:.12em;margin-top:12px;}
.p-footer__nav-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 20px;}
.p-footer__nav-link,.p-footer__link{color:rgba(255,255,255,.86);}
.p-footer__nav-link:hover,.p-footer__link:hover{color:#fff;text-decoration:underline;}
.p-footer__links{display:grid;gap:10px;margin-top:26px;}
.p-footer__bottom{
  margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2);
  text-align:center;font-size:var(--fs-xs);color:rgba(255,255,255,.66);
}

/* ===== SP FIXED CTA ===== */
.p-spcta{
  position:fixed;inset:auto 0 0 0;z-index:98;display:grid;grid-template-columns:1fr 1fr;
  height:var(--sp-cta-h);box-shadow:0 -4px 20px rgba(10,72,131,.14);
}
@media (min-width:768px){ .p-spcta{display:none;} }
.p-spcta__btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-heading);font-size:var(--fs-sm);font-weight:700;letter-spacing:.06em;
}
.p-spcta__btn svg{width:20px;height:20px;}
.p-spcta__btn--tel{background:#fff;color:var(--color-primary);}
.p-spcta__btn--form{background:var(--color-cta);color:#fff;}

/* ===== FORM NOTICE (test env) ===== */
.p-contact__notice{
  display:none;margin-top:14px;font-size:var(--fs-sm);color:var(--color-cta-d);
  background:#FFF6E6;border-radius:12px;padding:12px 16px;
}
.p-contact__notice.is-shown{display:block;}

/* ===== TEL LINK（PCではタップ発信を無効化） ===== */
@media (min-width:768px){
  .c-tel{pointer-events:none;cursor:default;text-decoration:none;}
}

/* utility */
.u-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ===================================================
   ブログ／お知らせ
   =================================================== */

/* --- ページ見出し --- */
.p-pagehead{
  background:var(--color-bg-alt);border-bottom:1px solid var(--color-line);
  padding:calc(var(--header-h) + 32px) 0 32px;text-align:center;
}
@media (min-width:768px){ .p-pagehead{padding:calc(var(--header-h) + 56px) 0 48px;} }
.p-pagehead__label{
  display:block;font-family:var(--font-heading);font-size:var(--fs-xs);font-weight:700;
  letter-spacing:.18em;color:var(--color-secondary);
}
.p-pagehead__title{
  margin:6px 0 0;font-family:var(--font-heading);font-size:var(--fs-2xl);font-weight:700;
  line-height:1.5;color:var(--color-primary);text-wrap:balance;
}
.p-pagehead__meta{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;
  margin-top:14px;font-size:var(--fs-sm);color:var(--color-text-l);
}
.p-pagehead__date{font-family:var(--font-heading);letter-spacing:.1em;color:var(--color-secondary);}
.p-pagehead__desc{margin-top:14px;font-size:var(--fs-sm);color:var(--color-text-l);}

/* --- パンくずリスト --- */
.c-breadcrumb{padding:16px 0 0;font-size:var(--fs-xs);color:var(--color-text-l);}
.c-breadcrumb__list{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;padding:0;list-style:none;}
.c-breadcrumb__item+.c-breadcrumb__item::before{content:"／";margin-right:10px;color:var(--color-line);}
.c-breadcrumb__link{color:var(--color-text-l);}
.c-breadcrumb__link:hover{color:var(--color-primary);}

/* --- 記事カード一覧 --- */
.p-archive__list{display:grid;gap:20px;margin:0;padding:0;list-style:none;}
@media (min-width:768px){ .p-archive__list{grid-template-columns:repeat(3,1fr);gap:28px;} }
.p-archive__item{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;}
.p-archive__link{display:flex;flex-direction:column;height:100%;}
.p-archive__thumb{position:relative;flex:none;aspect-ratio:1200/630;background:var(--color-accent);overflow:hidden;}
.p-archive__img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;}
.p-archive__img--fallback{opacity:.7;}
.p-archive__body{padding:20px 22px 24px;}
.p-archive__meta{display:flex;align-items:center;gap:12px;margin:0 0 10px;}
.p-archive__date{font-family:var(--font-heading);font-size:var(--fs-xs);color:var(--color-secondary);letter-spacing:.1em;}
.p-archive__title{margin:0;font-size:var(--fs-base);line-height:1.8;color:var(--color-primary);}
.p-archive__excerpt{margin:10px 0 0;font-size:var(--fs-sm);color:var(--color-text-l);line-height:1.9;}
.p-archive__empty{
  background:var(--color-bg-alt);border-radius:var(--radius);padding:40px 24px;text-align:center;color:var(--color-text-l);
}

/* --- 記事本文 --- */
.p-entry{max-width:800px;margin-inline:auto;}
.p-entry__thumb{border-radius:var(--radius);overflow:hidden;background:var(--color-accent);margin-bottom:28px;}
.p-entry__img{display:block;width:100%;height:auto;}
.p-entry__img--fallback{opacity:.7;}
.p-entry__title{font-family:var(--font-heading);font-size:var(--fs-xl);color:var(--color-primary);line-height:1.6;}
.p-entry__title a{color:inherit;}
.p-entry__body{font-size:var(--fs-base);line-height:1.95;}
.p-entry__body > *{margin-block:0 1.4em;}
.p-entry__body h2{
  font-family:var(--font-heading);font-size:var(--fs-lg);font-weight:700;color:var(--color-primary);
  border-left:5px solid var(--color-secondary);padding-left:14px;margin-block:2em .8em;line-height:1.6;
}
.p-entry__body h3{
  font-family:var(--font-heading);font-size:var(--fs-md);font-weight:700;color:var(--color-primary);
  margin-block:1.8em .7em;line-height:1.6;
}
.p-entry__body ul,.p-entry__body ol{padding-left:1.5em;}
.p-entry__body li{margin-bottom:.5em;}
.p-entry__body img{border-radius:var(--radius);height:auto;}
.p-entry__body blockquote{
  background:var(--color-bg-alt);border-left:4px solid var(--color-line);
  border-radius:0 12px 12px 0;padding:18px 22px;color:var(--color-text-l);
}
.p-entry__body table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.p-entry__body th,.p-entry__body td{border:1px solid var(--color-line);padding:10px 14px;text-align:left;}
.p-entry__body th{background:var(--color-bg-alt);color:var(--color-primary);}
.p-entry__back{margin-top:40px;text-align:center;}

/* --- 前後記事ナビ --- */
.c-postnav{
  display:grid;gap:14px;max-width:800px;margin:48px auto 0;
  padding-top:32px;border-top:1px solid var(--color-line);
}
@media (min-width:768px){ .c-postnav{grid-template-columns:repeat(2,1fr);gap:20px;} }
.c-postnav__link{
  display:block;background:var(--color-bg-alt);border-radius:var(--radius);padding:18px 22px;
  transition:background .3s ease;
}
.c-postnav__link:hover{background:var(--color-accent);}
.c-postnav__link--next{text-align:right;}
.c-postnav__label{
  display:block;font-family:var(--font-heading);font-size:var(--fs-xs);
  letter-spacing:.1em;color:var(--color-secondary);margin-bottom:4px;
}
.c-postnav__title{display:block;font-size:var(--fs-sm);color:var(--color-primary);line-height:1.7;}

/* --- ページ送り --- */
.c-pagination{margin-top:48px;}
.c-pagination .nav-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;}
.c-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;
  font-family:var(--font-heading);font-size:var(--fs-sm);color:var(--color-primary);
  background:#fff;border:1px solid var(--color-line);border-radius:12px;
}
.c-pagination .page-numbers:hover{background:var(--color-accent);}
.c-pagination .page-numbers.current{background:var(--color-primary);border-color:var(--color-primary);color:#fff;}
.c-pagination .page-numbers.dots{border-color:transparent;background:none;}

/* --- 検索フォーム --- */
.c-searchform{max-width:520px;margin:0 auto 40px;}
.c-searchform__form{display:flex;gap:10px;}
.c-searchform__input{
  flex:1;min-height:52px;padding:13px 16px;font-family:var(--font-body);font-size:var(--fs-base);
  color:var(--color-text);background:var(--color-bg-alt);border:1px solid var(--color-line);border-radius:12px;
}
.c-searchform__input:focus{outline:2px solid var(--color-secondary);outline-offset:1px;background:#fff;}
.c-searchform__submit{
  flex:none;min-height:52px;padding:0 24px;font-family:var(--font-heading);font-size:var(--fs-sm);font-weight:700;
  color:#fff;background:var(--color-primary);border:none;border-radius:12px;cursor:pointer;
}
.c-searchform__submit:hover{background:var(--color-primary-d);}

/* --- 404 --- */
.p-404__text{text-align:center;text-wrap:balance;margin-bottom:32px;}
.p-404__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;}

/* ===================================================
   Contact Form 7 出力の調整
   =================================================== */

/* CF7 が挿入する入力ラッパーをブロック化し、静的版と同じ幅で表示する */
.p-contact__form .wpcf7-form-control-wrap{display:block;}

/* ラジオボタン：CF7 の list-item を静的版の .p-contact__radio と同じ体裁にする */
.p-contact__radios .wpcf7-radio,
.p-contact__radios .wpcf7-checkbox{display:flex;flex-wrap:wrap;gap:10px 24px;}
.p-contact__radios .wpcf7-list-item{margin:0;}
.p-contact__radios .wpcf7-list-item label{
  display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);min-height:44px;cursor:pointer;
}
.p-contact__radios .wpcf7-list-item input[type="radio"],
.p-contact__radios .wpcf7-list-item input[type="checkbox"]{
  width:20px;height:20px;accent-color:var(--color-primary);flex:none;
}

/* 同意チェックボックス（acceptance） */
.p-contact__privacy .wpcf7-acceptance .wpcf7-list-item{margin:0;}
.p-contact__privacy .wpcf7-acceptance label{
  display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);min-height:44px;cursor:pointer;
}
.p-contact__privacy .wpcf7-acceptance input[type="checkbox"]{
  width:20px;height:20px;accent-color:var(--color-primary);flex:none;
}

/* 送信ボタンは c-btn をそのまま使うため、CF7 側の余計な指定だけ打ち消す */
.p-contact__form .wpcf7-submit{cursor:pointer;border:none;}

/* 送信中スピナー */
.p-contact__form .wpcf7-spinner{margin:0 0 0 12px;vertical-align:middle;}

/* バリデーションメッセージ */
.p-contact__form .wpcf7-not-valid-tip{
  display:block;margin-top:6px;font-size:var(--fs-xs);color:#C0392B;
}
.p-contact__form .wpcf7-response-output{
  margin:20px 0 0;padding:14px 18px;font-size:var(--fs-sm);
  border:1px solid var(--color-line);border-radius:12px;background:var(--color-bg-alt);
}
.p-contact__form.sent .wpcf7-response-output{border-color:#2E7D57;color:#2E7D57;background:#EFF8F3;}
.p-contact__form.invalid .wpcf7-response-output,
.p-contact__form.failed .wpcf7-response-output,
.p-contact__form.aborted .wpcf7-response-output{border-color:#C0392B;color:#C0392B;background:#FCEFEE;}

/* ===================================================
   アクセス：Googleマップ埋め込み
   =================================================== */

/* 既存の .p-access__map iframe（height:300px 固定）を上書きする。
   既存の行は変更せず、後から定義することで打ち消している。 */

/* スマートフォン：高さを抑えて縦に間延びさせない */
.p-access__map iframe{
  display:block;width:100%;height:280px;border:0;
}

/* タブレット以上：アスペクト比を保ったまま横幅に追従させる */
@media (min-width:768px){
  .p-access__map iframe{
    height:auto;aspect-ratio:16/9;
  }
}

/* aspect-ratio 非対応ブラウザ向けのフォールバック（高さが潰れないようにする） */
@supports not (aspect-ratio:16/9){
  @media (min-width:768px){
    .p-access__map iframe{height:400px;}
  }
}

/* ===================================================
   日本語の改行制御（iOS / Windows の差異対策）
   =================================================== */
/* 禁則処理を厳格にし、ブラウザ間で改行位置の判断を揃える。
   小書き仮名（ゃ・ッ など）や長音記号が行頭に来ないようにする。
   overflow-wrap:anywhere は単語の途中で割れるため使わない */
body{line-break:strict;word-break:normal;}
/* text-wrap は一律には指定しない。
   中央揃えの見出し・リードのみ各クラスで balance を指定し、
   左揃えの本文・カード見出しはブラウザ標準の折り返しに任せる
   （pretty / balance は行を埋めきらずに改行するため、左揃えでは右側に余白が残る） */
/* 短い固有名詞・数値の途中で改行させない。
   長い文字列に使うとSPで横スクロールが出るため、短いものに限定する */
.u-nowrap{white-space:nowrap;}

/* ===================================================
   ファーストビュー：SPのオーバーレイ無効化
   =================================================== */
/* SP（〜767px）は写真と文字が縦に並び、写真の上に文字が載らないため、
   白いグラデーションは不要（写真が白く霞むだけ）。
   768px 以上は写真の上に文字が載るので、既存の定義のまま効かせる */
@media (max-width:767px){
  .p-fv__overlay{display:none;}
}

/* ===================================================
   SPのみの改行
   =================================================== */
/* <br class="u-br-sp"> は 767px 以下でだけ改行させる。
   768px 以上では無効にして、PCの折り返しを従来どおりに保つ */
@media (min-width:768px){
  .u-br-sp{display:none;}
}
