/*
  医療秘書コース・オープンキャンパス ランディングページ
  WordPress固定ページテンプレート組み込み用 CSS

  【フォントサイズについて】
  WordPressのテーマに組み込むと、テーマ側が <html> のフォントサイズを
  小さく（例：62.5%など）指定している場合があり、rem単位で書かれた文字が
  想定より小さく表示されることがあります。
  そのため、このCSSは
    1) すべてのサイズ指定を rem ではなく em に変換し、
    2) 基準フォントサイズをラッパー要素 .medsec-lp 自体に明示的に指定する
  ことで、テーマ側のフォントサイズ設定の影響を受けないようにしています。
  さらに、特に小さかった文字（.72rem 前後のラベル類）は少し大きめに
  調整しています。基準サイズは 18px（一般的な標準16pxよりやや大きめ）です。

  また、すべてのセレクタに .medsec-lp を付与し、テーマ側の共通スタイル
  （a, h1-h3, img など）と衝突しないようにしています。
*/

.medsec-lp{
  /* ---- 配色変数 ---- */
  --paper:#f8d0dc;
  --paper-raised:#fff3f7;
  --ink:#2b1620;
  --ink-soft:#6b4557;
  --ink-faint:#96707f;
  --teal:#d6336c;
  --teal-deep:#9c1954;
  --teal-tint:#fbd6e3;
  --coral:#ff4d82;
  --coral-deep:#e0356b;
  --coral-tint:#ffdbe7;
  --line:#f0b8c9;
  --shadow:rgba(120,10,50,0.14);
  --focus:#ff2f76;

  /* ---- 基準フォントサイズ（WordPressテーマの影響を受けないよう固定px指定） ---- */
  font-size:18px;
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-color-scheme: dark){
  .medsec-lp:not([data-theme="light"]){
    --paper:#22101a;
    --paper-raised:#2e1622;
    --ink:#fbeaf1;
    --ink-soft:#dcb0c3;
    --ink-faint:#a97e90;
    --teal:#ff87b0;
    --teal-deep:#ffb0cf;
    --teal-tint:#3d1d2c;
    --coral:#ff6f9c;
    --coral-deep:#ff9bbb;
    --coral-tint:#3f1a28;
    --line:#4a2434;
    --shadow:rgba(0,0,0,0.5);
    --focus:#ff8fb8;
  }
}
.medsec-lp[data-theme="dark"]{
  --paper:#22101a;
  --paper-raised:#2e1622;
  --ink:#fbeaf1;
  --ink-soft:#dcb0c3;
  --ink-faint:#a97e90;
  --teal:#ff87b0;
  --teal-deep:#ffb0cf;
  --teal-tint:#3d1d2c;
  --coral:#ff6f9c;
  --coral-deep:#ff9bbb;
  --coral-tint:#3f1a28;
  --line:#4a2434;
  --shadow:rgba(0,0,0,0.5);
  --focus:#ff8fb8;
}

.medsec-lp,
.medsec-lp *,
.medsec-lp *::before,
.medsec-lp *::after{ box-sizing:border-box; }

.medsec-lp img,
.medsec-lp svg{ display:block; max-width:100%; }
.medsec-lp a{ color:inherit; }
.medsec-lp h1,
.medsec-lp h2,
.medsec-lp h3{
  font-family:"Shippori Mincho", "Hiragino Mincho ProN", serif;
  font-weight:600;
  line-height:1.5;
  text-wrap:balance;
  margin:0;
  color:var(--ink);
}
.medsec-lp .wrap{
  max-width:1080px;
  margin-inline:auto;
  padding-inline:clamp(1.25em,4vw,2.5em);
}
.medsec-lp .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-family:"BIZ UDPGothic","Zen Kaku Gothic New",sans-serif;
  font-weight:700;
  font-size:.88em;
  letter-spacing:.08em;
  color:var(--teal-deep);
}
.medsec-lp .eyebrow::before{
  content:"";
  width:.9em;
  height:1.2em;
  background:var(--teal);
  border-radius:1px 4px 1px 4px;
}

/* ---------- header / hero ---------- */
.medsec-lp .hero{
  padding-block: clamp(2.5em,6vw,4.5em) clamp(2em,5vw,3em);
  border-bottom:1px solid var(--line);
}
.medsec-lp .hero .wrap{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(2em,5vw,3.5em);
  align-items:center;
}
.medsec-lp .hero h1{
  margin-top:.9em;
  font-size:clamp(2em,1.35em + 2.6vw,3.3em);
  letter-spacing:.01em;
}
.medsec-lp .hero h1 em{
  font-style:normal;
  color:var(--teal-deep);
}
.medsec-lp .hero p.lead{
  margin-top:1.25em;
  max-width:42ch;
  color:var(--ink-soft);
  font-size:1.02em;
}
.medsec-lp .cta-row{
  margin-top:2em;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1em 1.5em;
}
.medsec-lp .btn-apply{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.6em;
  background:var(--teal);
  color:#fbfcfb;
  font-family:"BIZ UDPGothic","Zen Kaku Gothic New",sans-serif;
  font-weight:700;
  font-size:1.02em;
  letter-spacing:.03em;
  padding:.95em 1.6em;
  border-radius:3px;
  text-decoration:none;
  box-shadow: 0 10px 24px -12px var(--shadow);
  transition: transform .15s ease, background .15s ease;
}
.medsec-lp .btn-apply::after{
  content:"";
  position:absolute;
  inset:4px;
  border:1px dashed rgba(255,255,255,.55);
  border-radius:2px;
  pointer-events:none;
}
.medsec-lp .btn-apply:hover{ background:var(--teal-deep); transform:translateY(-1px); }
.medsec-lp .btn-apply:focus-visible{ outline:3px solid var(--focus); outline-offset:3px; }
.medsec-lp .btn-apply svg{ width:1.1em; height:1.1em; flex:none; }

.medsec-lp .link-tel{
  display:inline-flex;
  align-items:baseline;
  gap:.5em;
  text-decoration:none;
  color:var(--ink-soft);
  font-size:.98em;
  border-bottom:1px solid var(--line);
  padding-bottom:2px;
}
.medsec-lp .link-tel strong{
  font-family:"BIZ UDPGothic",sans-serif;
  color:var(--ink);
  font-variant-numeric: tabular-nums;
  font-size:1.05em;
  letter-spacing:.02em;
}
.medsec-lp .link-tel:focus-visible{ outline:3px solid var(--focus); outline-offset:3px; }

/* hero visual */
.medsec-lp .id-card{
  position:relative;
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:6px;
  padding:1.6em 1.5em 1.8em;
  box-shadow: 0 24px 48px -28px var(--shadow);
}
.medsec-lp .id-card__bar{
  display:flex;
  align-items:center;
  gap:.7em;
  margin-bottom:1.3em;
}
.medsec-lp .id-card__mark{
  width:2.4em; height:2.4em;
  border-radius:50%;
  background:var(--teal-tint);
  display:flex; align-items:center; justify-content:center;
  flex:none;
}
.medsec-lp .id-card__mark svg{ width:1.3em; height:1.3em; color:var(--teal-deep); }
.medsec-lp .id-card__title{
  font-family:"Shippori Mincho",serif;
  font-weight:600;
  font-size:1.05em;
}
.medsec-lp .id-card__sub{
  font-family:"BIZ UDPGothic",sans-serif;
  font-size:.8em;
  color:var(--ink-faint);
  letter-spacing:.06em;
}
.medsec-lp .id-card__field{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  padding-block:.55em;
  border-top:1px dashed var(--line);
  font-size:.92em;
}
.medsec-lp .id-card__field:last-of-type{ border-bottom:1px dashed var(--line); }
.medsec-lp .id-card__field span:first-child{
  font-family:"BIZ UDPGothic",sans-serif;
  color:var(--ink-faint);
  font-size:.8em;
  letter-spacing:.04em;
}
.medsec-lp .id-card__field span:last-child{ color:var(--ink); font-weight:500; }
.medsec-lp .stamp{
  position:absolute;
  top:-1.1em; right:-.9em;
  width:5.4em; height:5.4em;
  border-radius:50%;
  border:2px solid var(--coral);
  color:var(--coral);
  display:flex; align-items:center; justify-content:center;
  text-align:center;
  font-family:"BIZ UDPGothic",sans-serif;
  font-weight:700;
  font-size:.86em;
  line-height:1.35;
  letter-spacing:.04em;
  transform:rotate(-9deg);
  background:var(--paper-raised);
  box-shadow:0 8px 18px -10px var(--shadow);
}

/* ---------- pulse divider ---------- */
.medsec-lp .pulse{
  height:64px;
  display:flex;
  align-items:center;
}
.medsec-lp .pulse svg{ width:100%; height:100%; }
.medsec-lp .pulse path{
  fill:none;
  stroke:var(--line);
  stroke-width:1.5;
}
.medsec-lp .pulse circle{ fill:var(--teal); }

/* ---------- generic section ---------- */
.medsec-lp section{ padding-block: clamp(2.75em,6vw,4.5em); }
.medsec-lp section + section{ border-top:1px solid var(--line); }
.medsec-lp .section-head{ max-width:56ch; margin-bottom:2.25em; }
.medsec-lp .section-head h2{ margin-top:.6em; font-size:clamp(1.5em,1.25em + 1vw,2em); }
.medsec-lp .section-head p{ margin-top:.75em; color:var(--ink-soft); }

/* features */
.medsec-lp .feature-photo{
  margin-bottom:1.75em;
  aspect-ratio:21/8;
  border-radius:6px;
  border:1px dashed var(--line);
  background:var(--teal-tint);
  color:var(--ink-faint);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.6em;
  font-family:"BIZ UDPGothic","Zen Kaku Gothic New",sans-serif;
  font-size:.9em;
  letter-spacing:.04em;
}
.medsec-lp img.feature-photo{ width:100%; object-fit:cover; border:1px solid var(--line); }
.medsec-lp .feature-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.25em;
}
.medsec-lp .feature-card{
  position:relative;
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:4px;
  padding:1.6em 1.4em 1.5em;
}
.medsec-lp .feature-tab{
  position:absolute;
  top:-.7em; left:1.2em;
  background:var(--teal);
  color:#fff;
  font-family:"BIZ UDPGothic",sans-serif;
  font-weight:700;
  font-size:.8em;
  letter-spacing:.05em;
  padding:.3em .8em;
  border-radius:2px;
}
.medsec-lp .feature-card h3{
  margin-top:.9em;
  font-size:1.08em;
}
.medsec-lp .feature-card p{
  margin-top:.6em;
  font-size:.95em;
  color:var(--ink-soft);
}
.medsec-lp .feature-card img{
  display:block;
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  border-radius:4px;
  border:1px solid var(--line);
  margin:1em 0;
}
.medsec-lp .feature-card ul{
  margin:0;
  padding-left:1.2em;
  font-size:.95em;
  color:var(--ink-soft);
}
.medsec-lp .feature-card li + li{ margin-top:.4em; }

/* curriculum timeline */
.medsec-lp .timeline{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2em;
  position:relative;
}
.medsec-lp .timeline::before{
  content:"";
  position:absolute;
  top:1.1em; left:0; right:0;
  height:1px;
  background:var(--line);
}
.medsec-lp .tl-node{ position:relative; padding-top:2.7em; }
.medsec-lp .tl-node::before{
  content:"";
  position:absolute;
  top:.55em; left:0;
  width:1.1em; height:1.1em;
  border-radius:50%;
  background:var(--paper-raised);
  border:2px solid var(--teal);
}
.medsec-lp .tl-year{
  font-family:"BIZ UDPGothic",sans-serif;
  font-weight:700;
  color:var(--teal-deep);
  font-size:.9em;
  letter-spacing:.04em;
}
.medsec-lp .tl-node h3{ margin-top:.35em; font-size:1.12em; }
.medsec-lp .tl-node p{ margin-top:.6em; color:var(--ink-soft); font-size:.97em; }

/* qualifications */
.medsec-lp .qual-wrap{ display:flex; flex-direction:column; gap:1.4em; }
.medsec-lp .chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:.65em;
}
.medsec-lp .chip{
  border:1px solid var(--line);
  background:var(--paper-raised);
  border-radius:999px;
  padding:.5em 1.05em;
  font-size:.92em;
  color:var(--ink-soft);
}
.medsec-lp .qual-note{ font-size:.9em; color:var(--ink-faint); }

/* careers */
.medsec-lp .career-row{ display:flex; flex-wrap:wrap; gap:.75em; }
.medsec-lp .career-chip{
  display:flex;
  align-items:center;
  gap:.55em;
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:3px;
  padding:.7em 1.05em;
  font-size:.95em;
}
.medsec-lp .career-chip::before{
  content:"";
  width:.5em; height:.5em;
  border-radius:50%;
  background:var(--coral);
  flex:none;
}

/* events */
.medsec-lp .section-mascot{
  display:block;
  width:140px;
  margin:1.25em 0 0;
  padding:.6em;
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 8px 18px -10px var(--shadow);
}
.medsec-lp .event-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.25em;
}
.medsec-lp .event-card{
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:4px;
  padding:1.5em 1.4em;
  display:flex;
  flex-direction:column;
  gap:.5em;
}
.medsec-lp .event-card .eyebrow{ font-size:.8em; }
.medsec-lp .event-card h3{ font-size:1.05em; margin-top:.15em; }
.medsec-lp .event-card p{ color:var(--ink-soft); font-size:.94em; }
.medsec-lp .freshness-note{
  margin-top:1.5em;
  font-size:.9em;
  color:var(--ink-faint);
  display:flex;
  gap:.5em;
}

/* final cta */
.medsec-lp .cta-band{
  background:var(--teal-deep);
  color:#fdf1f5;
  position:relative;
  overflow:hidden;
}
.medsec-lp .cta-band .wrap{
  padding-block:clamp(3em,7vw,4.5em);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1.6em;
  position:relative;
}
.medsec-lp .cta-band h2{
  color:#fdf1f5;
  font-size:clamp(1.6em,1.3em + 1.3vw,2.3em);
  max-width:20ch;
}
.medsec-lp .cta-band p{ color:#f6c8d8; max-width:48ch; }
.medsec-lp .cta-band .btn-apply{ background:var(--coral); }
.medsec-lp .cta-band .btn-apply::after{ border-color:rgba(255,255,255,.6); }
.medsec-lp .cta-band .btn-apply:hover{ background:var(--coral-deep); }
.medsec-lp .cta-band .link-tel{ color:#f6c8d8; border-color:rgba(253,241,245,.35); }
.medsec-lp .cta-band .link-tel strong{ color:#fff; }
.medsec-lp .band-stamp{
  position:absolute;
  right:clamp(0px,12vw,6rem);
  top:34%;
  transform:translateY(-50%) rotate(8deg);
  width:7rem; height:7rem;
  border-radius:50%;
  border:2px solid rgba(253,241,245,.55);
  display:flex; align-items:center; justify-content:center;
  text-align:center;
  font-family:"BIZ UDPGothic",sans-serif;
  font-weight:700;
  font-size:.85rem;
  letter-spacing:.04em;
  color:#3a0d1f;
  background:linear-gradient(120deg, var(--coral), #ffd166, var(--coral-deep), var(--coral));
  background-size:300% 300%;
  animation:stamp-wiggle 1.3s ease-in-out infinite, stamp-glow 4s ease-in-out infinite;
}
@keyframes stamp-wiggle{
  0%, 100%{ transform:translateY(-50%) rotate(8deg); }
  50%{ transform:translateY(-50%) rotate(-2deg); }
}
@keyframes stamp-glow{
  0%, 100%{ background-position:0% 50%; }
  50%{ background-position:100% 50%; }
}
/* footer */
.medsec-lp footer{ padding-block:2.5em; }
.medsec-lp footer .wrap{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:flex-start;
  gap:1em 2em;
}
.medsec-lp .foot-brand{ font-family:"Shippori Mincho",serif; font-size:1.02em; }
.medsec-lp .foot-links{ display:flex; flex-wrap:wrap; gap:1.2em; font-size:.92em; }
.medsec-lp .foot-links a{ text-decoration:underline; text-underline-offset:3px; color:var(--ink-soft); }
.medsec-lp .foot-note{
  width:100%;
  margin-top:1em;
  padding-top:1em;
  border-top:1px solid var(--line);
  font-size:.88em;
  color:var(--ink-faint);
}

/* mobile sticky bar */
.medsec-lp .mobile-bar{ display:none; }

@media (max-width: 860px){
  .medsec-lp .hero .wrap{ grid-template-columns:1fr; }
  .medsec-lp .id-card{ max-width:22em; margin-inline:auto; }
  .medsec-lp .feature-photo{ aspect-ratio:16/10; }
  .medsec-lp .feature-grid,.medsec-lp .event-grid{ grid-template-columns:1fr; }
  .medsec-lp .timeline{ grid-template-columns:1fr; gap:1.75em; }
  .medsec-lp .timeline::before{ display:none; }
  .medsec-lp .cta-band .wrap{ padding-bottom:6.5em; }
  .medsec-lp .band-stamp{ display:none; }
}

@media (max-width: 640px){
  .medsec-lp .mobile-bar{
    display:flex;
    position:fixed;
    left:0; right:0; bottom:0;
    z-index:20;
    background:var(--paper-raised);
    border-top:1px solid var(--line);
    padding:.7em clamp(1em,4vw,1.5em);
    gap:.7em;
    box-shadow:0 -10px 24px -18px var(--shadow);
  }
  .medsec-lp .mobile-bar a{
    flex:1;
    text-align:center;
    padding:.8em .6em;
    border-radius:3px;
    font-family:"BIZ UDPGothic",sans-serif;
    font-weight:700;
    font-size:.92em;
    text-decoration:none;
  }
  .medsec-lp .mobile-bar .m-apply{ background:var(--teal); color:#fff; }
  .medsec-lp .mobile-bar .m-tel{ border:1px solid var(--line); color:var(--ink); }
  .medsec-lp{ padding-bottom:4.4em; }
}

@media (prefers-reduced-motion: reduce){
  .medsec-lp *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
  .medsec-lp .pulse circle animateMotion{ display:none; }
}
