/* ============================================================
   atam-page.css v3 (ASCII-safe build)
   Shared styles for 18 course/service page templates.
   All comments in English and all Japanese strings escaped as
   CSS unicode escapes, so the file survives any charset
   misinterpretation (UTF-8 / Shift_JIS) during upload/serving.
   Font loading: handled by the Google Fonts <link> in header.php
   (Zen Kaku Gothic New 600,700 / Jost are included there).
   Generated from the original per-template inline styles.
   ============================================================ */
:root{
  
  --orange:      #e3441e;   
  --orange-dark: #d62c04;   
  --orange-mark: rgba(227,68,30,.38);  
  --teal:        #007582;   
  --turquoise:   #40e0d0;   
  --turquoise-l: #72d9cc;   
  --turquoise-mark: rgba(64,223,207,.4); 
  --ink:         #000;
  --muted:       #b1b1b1;
  --crumb:       #adadad;
  --line:        #d5d5d5;
  --line-dash:   #c6c6c6;
  --gray-bg:     #e5e5e5;
  --gray-bg2:    #f2f2f2;
  --dark:        #25423e;   

  --baseShadow:  0 4px 10px 0 rgba(0,0,0,.3);
  --baseShadow2: 0 4px 10px 0 rgba(0,0,0,.15);

  --font:    "brandon-grotesque", "zen-kaku-gothic-antique", sans-serif;
  --font-dp: "Zen Kaku Gothic New", sans-serif;
  --font-en: "brandon-grotesque", sans-serif;

  --wrap: 1020px;
}
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){
html{ scroll-behavior:auto; }
*{ animation:none !important; transition:none !important; }
}

body{
  margin:0;
  font-family:var(--font);
  font-size:13px;
  line-height:1.9;
  color:var(--ink);
  background:#fff;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  word-break:break-word;
}
.atam-page img{ max-width:100%; height:auto; display:block; }
.atam-page a{ color:inherit; transition:all .3s; }
.atam-page a:hover{ opacity:.6; }
.atam-page a:focus-visible, .atam-page summary:focus-visible{ outline:2px solid var(--teal); outline-offset:3px; }.atam-page .wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:15px; }

.atam-phead{ display:grid; padding:30px 0 10px; text-align:center; }
.atam-phead h1{ grid-row:1; }
.atam-phead .atam-eyebrow{ grid-row:2; }
.atam-page h1{
  margin:0; font-family:var(--font-dp); font-weight:600;
  font-size:24px; line-height:1.4;
}
.atam-phead .atam-eyebrow{
  display:block; margin:5px 0 24px;
  color:var(--teal); font-style:italic; font-size:12px;
  font-family:var(--font-en); font-weight:500; letter-spacing:.04em;
}
.atam-phead .atam-lead, .atam-phead p{ text-align:left; }
.atam-lead{ font-size:14px; line-height:1.92; margin:0 0 15px; }

.atam-page h2{
  margin:40px 0 20px; padding:13px 18px;
  border-left:3px solid var(--turquoise-l);
  font-family:var(--font-dp); font-weight:600; font-size:18px; line-height:1.5;
}
.atam-page h3{
  margin:40px 0 20px; padding-bottom:8px;
  border-bottom:1px solid var(--line);
  font-family:var(--font-dp); font-weight:600; font-size:16px; line-height:1.5;
}
.atam-page h4{
  margin:28px 0 10px; color:var(--teal);
  font-weight:600; font-size:15px; line-height:1.5;
}
.atam-page p{ margin:0 0 15px; }
.atam-page strong{ font-weight:700; }

.atam-mark{
  font-weight:700;
  background:linear-gradient(to bottom,
    rgba(64,223,207,0) 0, rgba(64,223,207,0) 50%,
    var(--turquoise-mark) 51%, var(--turquoise-mark) 100%);
}

.atam-mark--orange{
  font-weight:700;
  background:linear-gradient(to bottom,
    rgba(227,68,30,0) 0, rgba(227,68,30,0) 40%,
    var(--orange-mark) 41%, var(--orange-mark) 100%);
}

.atam-page ul.atam-disc, .atam-page ul.atam-check{ list-style:none; margin:0 0 15px; padding:0; }
.atam-page ul.atam-disc li, .atam-page ul.atam-check li{ position:relative; padding:0 0 0 16px; margin-bottom:.4em; }
.atam-page ul.atam-disc li::after{
  content:""; position:absolute; left:0; top:.85em;
  width:6px; height:6px; border-radius:50%; background:var(--teal);
  transform:translateY(-50%);
}
.atam-page ul.atam-check li{ padding-left:26px; }
.atam-page ul.atam-check li::before{
  content:""; position:absolute; left:3px; top:.55em;
  width:12px; height:7px;
  border-left:2px solid var(--orange); border-bottom:2px solid var(--orange);
  transform:rotate(-45deg);
}
.atam-page ol.atam-num{ list-style:none; margin:0 0 15px; padding:0; counter-reset:n; }
.atam-page ol.atam-num li{ position:relative; padding:0 0 0 25px; margin-bottom:.5em; counter-increment:n; }
.atam-page ol.atam-num li::before{
  content:counter(n) "."; position:absolute; left:0; top:.7em;
  color:var(--teal); font-style:italic; font-size:16px;
  font-family:var(--font-en); transform:translateY(-50%);
}

.atam-steps{ list-style:none; margin:0 0 20px; padding:0; counter-reset:step; }
.atam-steps > li{
  counter-increment:step; position:relative;
  border-top:1px solid var(--line); padding:26px 0 10px;
}
.atam-steps > li::before{
  content:"STEP " counter(step);
  display:block; margin-bottom:6px;
  color:var(--orange); font-style:italic; font-size:20px;
  font-family:var(--font-en); font-weight:500; line-height:1;
}
.atam-steps > li > h3:first-of-type{
  margin:0 0 16px; padding:0; border:0; font-size:20px;
}

.atam-cards{ display:grid; gap:15px; margin:0 0 20px; }
.atam-cards.c2{ grid-template-columns:1fr; }
.atam-cards.c3{ grid-template-columns:1fr; }
.atam-card{
  background:#fff; box-shadow:var(--baseShadow2);
  padding:20px 22px 22px; display:flex; flex-direction:column;
}
.atam-card h3, .atam-card h4{
  margin:0 0 10px; padding:0; border:0; color:var(--ink);
  font-family:var(--font-dp); font-weight:600; font-size:16px; line-height:1.5;
}
.atam-card p{ font-size:13px; line-height:1.85; margin:0 0 14px; }
.atam-card .atam-go{
  margin-top:auto; color:var(--teal); font-weight:700; font-size:13px;
  text-decoration:underline;
}
.atam-card .atam-go::after{ content:" \2192 "; }
.atam-card--soft{ background:var(--gray-bg2); box-shadow:none; }

.atam-tblwrap{ margin:0 0 20px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.atam-page table{ border-collapse:collapse; width:100%; font-size:13px; }
.atam-page caption{ caption-side:top; text-align:left; font-size:11px; color:var(--muted); padding-bottom:6px; }
.atam-page thead th{
  border-bottom:1px solid var(--teal); color:var(--teal);
  font-weight:600; font-size:14px; text-align:left; padding:14px 5px;
}
.atam-page tbody th{
  border-bottom:1px solid var(--teal); color:var(--teal);
  font-weight:600; font-size:14px; text-align:left; padding:16px 5px; white-space:nowrap;
}
.atam-page tbody td{ border-bottom:1px solid var(--line); padding:16px 5px; vertical-align:top; }
.atam-page tbody tr:last-child th, .atam-page tbody tr:last-child td{ border-bottom:1px solid var(--teal); }
.atam-page table.atam-price .atam-num{ font-family:var(--font-en); font-size:22px; font-weight:500; }

.atam-note{ background:var(--gray-bg2); padding:20px; margin:0 0 20px; font-size:13px; line-height:1.9; }
.atam-note > :last-child{ margin-bottom:0; }
.atam-note--teal{ background:#fff; border:1px solid var(--teal); }
.atam-note--orange{ background:#fff; border:1px solid var(--orange); }
.atam-small, .atam-small p{ font-size:11px; line-height:1.85; }
.atam-small{ margin:0 0 15px; }

.atam-page .related{ background:var(--gray-bg2); padding:22px 20px; margin:0 0 25px; }
.atam-page .related > p{
  margin:0 0 12px; color:var(--teal);
  font-family:var(--font-dp); font-weight:600; font-size:14px;
}
.atam-page .related ul{ list-style:none; margin:0; padding:0; }
.atam-page .related li{ margin-bottom:9px; }
.atam-page .related li:last-child{ margin-bottom:0; }
.atam-page .related a{
  position:relative; display:inline-block; padding-left:24px;
  font-weight:700; font-size:13px; line-height:1.6; text-decoration:none;
}
.atam-page .related a::before{
  content:""; position:absolute; left:0; top:.45em;
  width:15px; height:15px; border-radius:50%; background:var(--ink);
}
.atam-page .related a::after{
  content:""; position:absolute; left:6px; top:.75em;
  width:0; height:0; border-style:solid;
  border-width:3px 0 3px 5px; border-color:transparent transparent transparent #fff;
}
.atam-page .related a:hover{ text-decoration:underline; opacity:1; color:var(--teal); }

.atam-lessons{ list-style:none; margin:0 0 20px; padding:0; }
.atam-lessons li{ border-bottom:1px solid var(--line); }
.atam-lessons li:first-child{ border-top:1px solid var(--line); }
.atam-lessons a{
  position:relative; display:block; padding:16px 30px 16px 0; text-decoration:none;
}
.atam-lessons a::after{
  content:""; position:absolute; right:8px; top:50%; transform:translateY(-50%);
  width:0; height:0; border-style:solid;
  border-width:5px 0 5px 7px; border-color:transparent transparent transparent var(--ink);
}
.atam-lessons .atam-when{
  display:block; color:var(--teal); font-weight:600; font-size:11px;
}
.atam-lessons .atam-what{ display:block; font-weight:700; font-size:14px; line-height:1.6; }
.atam-lessons a:hover{ opacity:1; }
.atam-lessons a:hover .atam-what{ color:var(--teal); text-decoration:underline; }

.atam-page .faq{ margin:0 0 25px; }
.atam-page .faq details{
  background:#fff; border:1px solid var(--teal);
  margin-bottom:10px; padding:19px 15px; position:relative; overflow:hidden;
}
.atam-page .faq summary{
  position:relative; z-index:1; list-style:none; cursor:pointer;
  padding:0 35px 0 40px; font-size:13px; font-weight:700;
}
.atam-page .faq summary::-webkit-details-marker{ display:none; }
.atam-page .faq summary::before{
  content:"Q"; position:absolute; left:0; top:-20px;
  color:var(--turquoise-l); font-size:36px; font-weight:500; font-family:var(--font-en);
}
.atam-page .faq summary::after{
  content:"\ff0b "; position:absolute; right:0; top:50%; transform:translateY(-50%);
  color:var(--teal); font-weight:400;
}
.atam-page .faq details[open] summary::after{ content:"\ff0d "; }
.atam-page .faq details[open] summary{
  padding-bottom:15px; margin-bottom:15px; border-bottom:1px dashed var(--line-dash);
}
.atam-page .faq .a{ position:relative; padding-left:40px; font-size:13px; line-height:1.9; }
.atam-page .faq .a::before{
  content:"A"; position:absolute; left:0; top:-8px;
  color:#d9d9d9; font-size:36px; font-weight:500; font-family:var(--font-en);
}
.atam-page .faq .a > :last-child{ margin-bottom:0; }

.atam-page .cta{
  margin:60px 0 0; padding:25px 25px 35px;
  background:var(--orange); color:#fff; text-align:center;
  box-shadow:var(--baseShadow2);
}
.atam-page .cta > p{
  position:relative; width:fit-content; margin:0 auto 25px; padding:0 30px;
  font-family:var(--font-dp); font-weight:600; font-size:16px; line-height:1.5;
}
.atam-page .cta > p::before, .atam-page .cta > p::after{
  content:""; position:absolute; bottom:-5px;
  display:block; width:2px; height:35px; background:#fff;
}
.atam-page .cta > p::before{ right:5px; transform:rotate(25deg); }
.atam-page .cta > p::after{ left:5px; transform:rotate(-25deg); }
.atam-page .btn{
  display:block; width:100%; margin:0 auto 12px; padding:17px 10px;
  border-radius:30px; background:#fff; color:var(--orange);
  font-weight:700; font-size:14px; text-align:center; text-decoration:none;
  transition:all 0s;
}
.atam-page .btn:hover{ background:var(--ink); color:#fff; opacity:1; }
.atam-page .btn--sub{
  background:transparent; color:#fff; box-shadow:0 0 0 1px #fff inset;
}
.atam-page .btn--sub:hover{ background:#fff; color:var(--orange); }
.atam-page .cta .tel{ margin:14px 0 0; font-size:11px; line-height:1.8; }

.atam-spec{
  border:2px dashed var(--orange); background:#fff8f6;
  padding:16px 18px 14px; margin:0 0 22px; font-size:12px; line-height:1.8;
}
.atam-spec > .atam-ttl{
  display:inline-block; margin-bottom:10px; padding:3px 10px;
  background:var(--orange); color:#fff;
  font-size:10px; font-weight:700; letter-spacing:.1em;
}
.atam-spec dl{ margin:0; display:grid; grid-template-columns:70px 1fr; gap:5px 12px; }
.atam-spec dt{ color:var(--orange); font-weight:700; font-size:11px; }
.atam-spec dd{ margin:0; font-size:12px; }
.atam-spec .atam-ref{ margin:10px 0 0; font-size:11px; color:#666; }

.atam-pfoot{
  margin-top:70px; padding:20px 0 50px; border-top:1px solid var(--line);
  font-size:11px; color:var(--muted);
}

@media (min-width:48em){
body{ font-size:16px; line-height:1.87; }
.atam-page .wrap{ padding-inline:20px; }
.atam-phead{ padding:70px 0 20px; }
.atam-page h1{ font-size:44px; }
.atam-phead .atam-eyebrow{ margin:8px 0 40px; font-size:16px; }
.atam-lead{ font-size:18px; line-height:1.9; margin-bottom:20px; }
.atam-page h2{
    margin:85px 0 30px; padding:11.5px 0 11.5px 28px;
    border-left-width:5px; font-size:30px;
  }
.atam-page h3{ margin:55px 0 30px; font-size:24px; }
.atam-page h4{ margin:36px 0 12px; font-size:19px; }
.atam-page p{ margin-bottom:20px; }.atam-page ul.atam-disc li, .atam-page ul.atam-check li, .atam-page ol.atam-num li{ margin-bottom:.5em; }
.atam-page ol.atam-num li{ padding-left:28px; }
.atam-page ol.atam-num li::before{ font-size:22px; }.atam-steps > li{ padding:34px 0 14px; }
.atam-steps > li::before{ font-size:26px; margin-bottom:8px; }
.atam-steps > li > h3:first-of-type{ font-size:26px; margin-bottom:22px; }.atam-cards{ gap:30px; }
.atam-cards.c2{ grid-template-columns:repeat(2,1fr); }
.atam-cards.c3{ grid-template-columns:repeat(3,1fr); }
.atam-card{ padding:30px 28px; }
.atam-card h3, .atam-card h4{ font-size:20px; }
.atam-card p{ font-size:15px; }
.atam-card .atam-go{ font-size:15px; }.atam-page table{ font-size:16px; }
.atam-page thead th, .atam-page tbody th{ font-size:18px; padding:25px 5px; }
.atam-page tbody th{ width:240px; }
.atam-page tbody td{ padding:25px 5px; }
.atam-page table.atam-price .atam-num{ font-size:34px; }.atam-note{ padding:30px 35px; font-size:16px; }
.atam-small, .atam-small p{ font-size:12px; }.atam-page .related{ padding:30px 35px; margin-bottom:35px; }
.atam-page .related > p{ font-size:18px; margin-bottom:16px; }
.atam-page .related li{ margin-bottom:14px; }
.atam-page .related a{ padding-left:28px; font-size:16px; }
.atam-page .related a::before{ width:18px; height:18px; }
.atam-page .related a::after{ left:7px; border-width:4px 0 4px 6px; }.atam-lessons a{ display:grid; grid-template-columns:230px 1fr; gap:4px 24px; padding:22px 40px 22px 0; }
.atam-lessons .atam-when{ font-size:13px; padding-top:.2em; }
.atam-lessons .atam-what{ font-size:17px; }.atam-page .faq details{ padding:20px; margin-bottom:20px; }
.atam-page .faq summary{ padding:16px 55px 16px 68px; font-size:20px; }
.atam-page .faq summary::before{ font-size:50px; left:5px; top:-6px; }
.atam-page .faq summary::after{ right:10px; }
.atam-page .faq details[open] summary{ padding-bottom:20px; margin-bottom:20px; }
.atam-page .faq .a{ padding-left:68px; font-size:16px; font-weight:700; }
.atam-page .faq .a::before{ font-size:50px; left:5px; top:-6px; }.atam-page .cta{ margin-top:100px; padding:65px 25px 70px; }
.atam-page .cta > p{ margin-bottom:40px; padding:0 50px; font-size:26px; font-weight:700; }
.atam-page .cta > p::before, .atam-page .cta > p::after{ height:40px; }
.atam-page .btn{ display:inline-block; width:auto; margin:0 8px 12px; padding:29px 70px; border-radius:45px; font-size:20px; }
.atam-page .cta .tel{ margin-top:20px; font-size:14px; }.atam-spec{ padding:20px 24px 18px; font-size:13px; }
.atam-spec dl{ grid-template-columns:80px 1fr; }
.atam-spec dd{ font-size:13px; }
}

.atam-page .timetable{
  margin:18px 0 30px; padding:25px; background:#fff; box-shadow:var(--baseShadow2);
}
.atam-page .tt-time{ display:flex; margin:0 -25px 20px; text-align:center; }
.atam-page .tt-time > div{ width:50%; }
.atam-page .tt-time > div:first-child{ border-right:1px solid var(--ink); }
.atam-page .tt-day{
  display:block; margin:0 auto 20px; padding:2px 0; width:100px;
  border-radius:12px; background:#40dccc; text-align:center;
  font-size:12px; font-weight:600;
}
.atam-page .tt-list{ list-style:none; margin:0; padding:0; }
.atam-page .tt-list li{
  margin:8px 0; font-size:18px; font-family:var(--font-en); font-weight:500;
}
.atam-page .tt-h{ margin:0 0 12px; font-family:var(--font-dp); font-weight:600; font-size:18px; }
.atam-page .tt-txt{ margin:0 0 4px; font-size:13px; }

.atam-page .sched{ margin:18px 0 30px; padding:25px; background:#fff; box-shadow:var(--baseShadow2); }
.atam-page .sched > .atam-ttl{
  display:inline-block; margin-bottom:12px; padding:2px; width:160px;
  border-radius:15px; background:var(--ink); color:#fff;
  text-align:center; font-size:13px;
}
.atam-page .sched dl{ margin:0 0 8px; }
.atam-page .sched dl > div{ display:flex; gap:12px; margin-bottom:8px; font-size:13px; line-height:1.7; }
.atam-page .sched dt{ flex-shrink:0; width:110px; font-weight:700; color:var(--teal); }
.atam-page .sched dd{ margin:0; }

.atam-page .plan{ margin:0 0 40px; padding:0 0 0 18px; border-left:6px solid var(--orange); }
.atam-page .plan--personal{ border-left-color:#00a3b0; }
.atam-page .plan > .label{
  display:inline-block; margin:0 0 18px; padding:5px 18px;
  background:var(--orange); color:#fff;
  font-family:var(--font-dp); font-weight:700; font-size:14px; line-height:1.5;
}
.atam-page .plan--personal > .label{ background:#00a3b0; }
.atam-page .plan > h4:first-of-type{ margin-top:0; }

.atam-lead{ font-size:inherit; line-height:inherit; }
@media (min-width:48em){
.atam-page .timetable{ display:flex; align-items:center; margin:35px 0 60px; padding:60px 20px 60px 60px; }
.atam-page .tt-time{ margin:0; width:50%; }
.atam-page .tt-time > div:first-child{ border-right:2px solid #181818; }
.atam-page .tt-day{ width:130px; padding:5px 0; border-radius:20px; font-size:16px; }
.atam-page .tt-list li{ font-size:24px; }
.atam-page .tt-meta{ margin:0 auto; max-width:45%; width:325px; }
.atam-page .tt-h{ margin-bottom:20px; font-size:28px; }
.atam-page .tt-txt{ font-size:16px; line-height:1.85; }.atam-page .sched{ margin:35px 0 50px; padding:40px 50px; }
.atam-page .sched > .atam-ttl{ width:200px; padding:5px 0; border-radius:17px; font-size:16px; }
.atam-page .sched dl > div{ font-size:16px; }
.atam-page .sched dt{ width:150px; }.atam-page .plan{ padding-left:28px; border-left-width:8px; margin-bottom:60px; }
.atam-page .plan > .label{ margin-bottom:26px; padding:7px 26px; font-size:20px; }
}

.atam-acc{ margin:0 0 25px; }
.atam-acc details{ border:1px solid var(--line); background:#fff; margin-bottom:8px; }
.atam-acc summary{
  position:relative; list-style:none; cursor:pointer;
  padding:14px 40px 14px 16px; font-weight:700; font-size:14px; line-height:1.6;
}
.atam-acc summary::-webkit-details-marker{ display:none; }
.atam-acc summary::before, .atam-acc summary::after{
  content:""; position:absolute; right:16px; top:50%;
  width:13px; height:1px; background:var(--teal); transition:all .3s;
}
.atam-acc summary::after{ transform:rotate(90deg); }
.atam-acc details[open] summary::after{ transform:rotate(0deg); }
.atam-acc details[open] summary{ border-bottom:1px dashed var(--line2); }
.atam-acc .atam-accbody{ padding:14px 16px 18px; font-size:13px; line-height:1.9; }
.atam-acc .atam-accbody > :last-child{ margin-bottom:0; }
.atam-acc .atam-accbody ul{ margin:0; padding:0; }
@media (min-width:48em){
.atam-acc details{ margin-bottom:10px; }
.atam-acc summary{ padding:18px 48px 18px 24px; font-size:18px; }
.atam-acc .atam-accbody{ padding:18px 24px 24px; font-size:16px; }
}

.atam-page .lesson-title{ margin:0 0 30px; }
.atam-page .lesson-title a{
  position:relative; display:inline-block; padding-left:24px;
  font-weight:700; font-size:15px; line-height:1.7; text-decoration:none;
}
.atam-page .lesson-title a::before{
  content:""; position:absolute; left:0; top:.45em;
  width:15px; height:15px; border-radius:50%; background:var(--teal);
}
.atam-page .lesson-title a::after{
  content:""; position:absolute; left:6px; top:.75em;
  width:0; height:0; border-style:solid;
  border-width:3px 0 3px 5px; border-color:transparent transparent transparent #fff;
}
.atam-page .lesson-title a:hover{ opacity:1; color:var(--teal); text-decoration:underline; }
@media (min-width:48em){
.atam-page .lesson-title{ margin-bottom:40px; }
.atam-page .lesson-title a{ padding-left:28px; font-size:18px; }
.atam-page .lesson-title a::before{ width:18px; height:18px; }
.atam-page .lesson-title a::after{ left:7px; border-width:4px 0 4px 6px; }
}

.atam-bcards-outer{ position:relative; margin:0 0 30px; }
.atam-bcards{
  display:grid; grid-auto-flow:column; gap:0;
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  padding:0 0 20px; margin:0; scrollbar-width:none;
}
.atam-bcards::-webkit-scrollbar{ display:none; }
.atam-bcards::before, .atam-bcards::after{ content:""; width:7.5px; flex:none; }
.atam-bcard{
  width:315px; margin:0 7.5px; scroll-snap-align:center;
  background:#fff; box-shadow:var(--baseShadow); position:relative; z-index:1;
}
.atam-bcard > a{ display:block; text-decoration:none; color:inherit; }
.atam-bcard > a:hover{ opacity:1; }
.atam-bcard_img{
  display:block; overflow:hidden; aspect-ratio:316/237; background:var(--gray-bg2);
}
.atam-bcard_img:empty::before{
  content:"\30a2 \30a4 \30ad \30e3 \30c3 \30c1 \ff08 \8a18 \4e8b \304b \3089 \81ea \52d5 \53d6 \5f97 \ff09 "; display:flex; width:100%; height:100%;
  align-items:center; justify-content:center;
  color:var(--muted); font-size:11px; letter-spacing:.05em; text-align:center; padding:10px;
}
.atam-bcard_img img{
  width:100%; height:100%; object-fit:cover; transition:transform .3s; display:block;
}
.atam-bcard > a:hover .atam-bcard_img::before,
.atam-bcard > a:hover .atam-bcard_img img{ transform:scale(1.1); }
.atam-bcard_meta{ display:block; padding:25px; overflow:hidden; }
.atam-bcard_cat{
  display:block; color:var(--teal); font-weight:700; font-size:11px; line-height:1.5;
}
.atam-bcard_ttl{
  margin:10px 0 12px; padding:0; border:0;
  font-family:var(--font-dp); font-weight:700; font-size:16px; line-height:1.5;
  display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3;
}
.atam-bcard_text{
  display:-webkit-box; font-weight:700; font-size:13px; line-height:1.76; color:#555;
  overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2;
}

.atam-bcards-hint{
  margin:0; text-align:center; font-size:11px; color:var(--muted); letter-spacing:.05em;
}
.atam-bcards-hint::before{ content:"\2190  "; }
.atam-bcards-hint::after{ content:" \2192 "; }
@media (min-width:48em){
.atam-bcards-outer{ margin-bottom:50px; }
.atam-bcards{
    display:grid; grid-auto-flow:column; gap:0;
    overflow-x:auto; padding:0 0 24px; margin:0;
  }
.atam-bcards::before, .atam-bcards::after{ content:""; width:0; }
.atam-bcard{ width:316px; margin:0 18px 0 0; }
.atam-bcard:last-child{ margin-right:0; }
  .atam-bcard_cat{ font-size:12px; }
  .atam-bcard_ttl{ font-size:18px; margin:8px 0 14px; }
  .atam-bcard_text{ font-size:14px; }
.atam-bcards-hint{ font-size:12px; }
}

.atam-cards.think{ align-items:start; }
.atam-card.atam-tcard{ padding:22px 20px; }
.atam-card.atam-tcard h4{
  margin:0 0 12px; padding:0 0 10px; border-bottom:1px solid var(--line);
  color:var(--teal); font-family:var(--font-dp); font-weight:600;
  font-size:16px; line-height:1.5;
}
.atam-card.atam-tcard p{ font-size:13px; line-height:1.85; margin:0 0 12px; }
.atam-card.atam-tcard p:last-child{ margin-bottom:0; }
@media (min-width:48em){
.atam-card.atam-tcard{ padding:32px 30px; }
.atam-card.atam-tcard h4{ font-size:20px; margin-bottom:16px; padding-bottom:12px; }
.atam-card.atam-tcard p{ font-size:15px; line-height:1.9; margin-bottom:14px; }
}

.atam-implnote{
  border:2px dashed var(--teal); background:#f2fafa;
  padding:16px 18px 14px; margin:60px 15px 0; font-size:12px; line-height:1.8;
}
.atam-implnote > .atam-ttl{
  display:inline-block; margin-bottom:10px; padding:3px 10px;
  background:var(--teal); color:#fff; font-size:10px; font-weight:700; letter-spacing:.1em;
}
.atam-implnote p{ margin:0 0 8px; }
.atam-implnote pre{
  margin:0 0 10px; padding:12px 14px; background:#fff; border:1px solid var(--line);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px;
  overflow-x:auto; white-space:pre;
}
.atam-implnote .atam-small{ margin:0; font-size:11px; color:#555; }
@media (min-width:48em){
.atam-implnote{ margin:100px auto 0; max-width:1020px; padding:20px 24px 18px; font-size:13px; }
.atam-implnote pre{ font-size:13px; }
.atam-implnote .atam-small{ font-size:12px; }
}

.atam-implnote + .ftrial{ margin-top:0; }

.atam-learn_wrap{
  display:flex; flex-direction:column; gap:40px 18px;
  padding-bottom:15px; justify-content:center; align-items:center;
  margin:0 0 20px;
}
.atam-learn_box{
  background:#fff; width:100%; box-shadow:3px 3px 6px #00000044;
  position:relative; padding-bottom:20px; cursor:pointer;
}
.atam-learn_box::after{
  content:"\304f \308f \3057 \304f \898b \308b \25bc "; position:absolute; bottom:0; right:0; width:100%;
  text-align:right; display:block; padding:20px 10px 10px; font-size:12px; opacity:.45;
  background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, #fff 50%, #fff 100%);
}
.atam-learn_box.atam-on::after{ display:none; }
.atam-learn_img{
  display:block; width:100% !important; max-width:100% !important; height:auto !important;
}
div.atam-learn_img{
  aspect-ratio:310/207; background:var(--gray-bg2);
  display:flex; align-items:center; justify-content:center;
  color:var(--muted); font-size:11px;
}
.atam-learn_box .atam-txt{ padding:20px 15px 15px; }
.atam-learn_box h3{
  margin:0 0 15px; padding:0; color:inherit;
  font-family:var(--font-dp); font-size:20px; font-weight:700; line-height:1.4;
  min-height:50px; display:flex; align-items:center;
}
.atam-learn_box .atam-description{ font-size:11px; line-height:1.8; margin:0; }
.atam-learn_box .atam-detail{ margin-top:15px; display:none; color:#333; }
.atam-learn_box.atam-on .atam-detail{ display:block; opacity:1; color:#333; }
.atam-learn_box .atam-detail h4{
  margin:0 0 4px; font-size:15px; font-weight:700; font-family:var(--font-dp);
}
@media (min-width:48em){
  .atam-learn_wrap{ flex-direction:row; flex-wrap:wrap; align-items:flex-start; gap:40px 18px; }
  .atam-learn_box{ width:calc(33.3% - 18px); max-width:310px; height:auto; overflow:hidden; }
  .atam-learn_box .atam-description{ font-size:14px; min-height:105px; }
  .atam-learn_box.atam-on{ height:auto; min-height:525px; }
}

.atam-page h3.atam-jsparts{
  margin:40px 0 20px; padding:0; border:0;
  font-family:var(--font-dp); font-weight:700; font-size:18px; line-height:1.3;
}
.atam-page h3.atam-jsparts b{ display:block; font-size:1.15em; }
@media (min-width:48em){
.atam-page h3.atam-jsparts{ margin:60px 0 22px; font-size:min(28px,2.6vw); }
}

.atam-acc.atam-acc--think details{ border-color:var(--teal); }
.atam-acc.atam-acc--think summary{ color:var(--teal); }

.atam-substep{
  margin:48px 0 14px; padding-top:24px; border-top:1px dashed var(--line);
  font-size:16px;
}
.atam-substep--first{ margin-top:0; padding-top:0; border-top:0; }
@media (min-width:48em){
.atam-substep{ margin-top:64px; padding-top:32px; font-size:19px; }
.atam-substep--first{ margin-top:0; padding-top:0; }
}

.atam-learn_box{ outline:none; }
.atam-learn_box:focus-visible{ outline:3px solid var(--teal); outline-offset:3px; }
.atam-learn_box h3{ border:0; padding:0; }
.atam-learn_box .atam-detail h4{ color:inherit; }

.atam-ftparts{
  min-height:160px; background:var(--gray-bg2);
  display:flex; align-items:center; justify-content:center;
  color:#555; font-size:12px; letter-spacing:.05em; text-align:center; padding:20px;
}
.page_whiteBack_box.orange{
  background:#e4441e; padding:70px 10px; text-align:center; border-bottom:none;
}
.page_whiteBack_box.orange p{
  color:#fff; font-size:20px; font-weight:700; display:inline-block; margin:0 auto;
  border-bottom:2px solid #fff; position:relative;
}
.page_whiteBack_box.orange p::before{
  content:""; border:10px solid transparent; border-top-color:#fff;
  display:block; position:absolute; bottom:-20px; left:calc(50% - 10px);
}
.page_whiteBack_box.orange p::after{
  content:""; border:7px solid transparent; border-top-color:#e4441e;
  display:block; position:absolute; bottom:-14px; left:calc(50% - 7px);
}
.page_whiteBack_box.orange a{
  color:#e4441e; background:#fff; font-size:18px; font-weight:700;
  max-width:343px; width:100%; height:70px; line-height:70px; border-radius:40px;
  display:block; margin:30px auto 0; text-decoration:none;
}
.page_whiteBack_box.orange a:hover{ background:#000; color:#fff; opacity:1; }

.atam-phead{ padding-top:60px; }
@media (min-width:48em){ .atam-phead{ padding-top:110px; } }

.atam-page h2.atam-gtitle img.atam-icon--bulb{ width:34px !important; max-width:34px !important; height:auto !important; }
@media (min-width:48em){
.atam-page h2.atam-gtitle img.atam-icon--bulb{ width:50px !important; max-width:50px !important; }
}

.atam-page h2.atam-gtitle{
  display:grid !important;
  gap:12px; justify-items:center; text-align:center;
  margin:0 0 26px !important;
  padding:0 !important;
  border:0 !important; border-left:0 !important;
  background:none !important;
  font-family:var(--font-dp); font-weight:700;
  font-size:23px; line-height:1.35; color:#000;
}
.atam-page h2.atam-gtitle img.atam-icon--bulb{
  width:34px !important; max-width:34px !important; height:auto !important;
  margin:0 !important;
}
@media (min-width:48em){
.atam-page h2.atam-gtitle{ gap:20px; margin-bottom:44px !important; font-size:40px; }
.atam-page h2.atam-gtitle img.atam-icon--bulb{ width:50px !important; max-width:50px !important; }
}

@media (min-width:48em){
  .page_whiteBack_box.orange{ padding:70px 20px; }
.atam-ftparts{ min-height:220px; font-size:14px; }
}

.atam-page h2.atam-gtitle img.atam-icon{ margin:0 auto !important; height:auto !important; }
.atam-page h2.atam-gtitle img.atam-icon--bulb{ width:37px !important; max-width:37px !important; }
.atam-page h2.atam-gtitle img.atam-icon--learn{ width:80px !important; max-width:80px !important; }
@media (min-width:48em){
  .atam-page h2.atam-gtitle img.atam-icon--bulb{ width:56px !important; max-width:56px !important; }
  .atam-page h2.atam-gtitle img.atam-icon--learn{ width:110px !important; max-width:110px !important; }
}

.atam-page .page_item__mesh,
.atam-page .page_item__dot{ padding-top:24px !important; padding-bottom:24px !important; }
.atam-page .page_item + .page_item{ margin-top:0; }
@media (min-width:48em){
  .atam-page .page_item__mesh,
  .atam-page .page_item__dot{ padding-top:40px !important; padding-bottom:40px !important; }
}

.atam-page h3.atam-bcard_ttl{
  margin:6px 0 10px !important; padding:0 !important; border:0 !important;
}
.atam-page .atam-learn_box h3{
  margin:0 0 15px !important; padding:0 !important; border:0 !important;
}
.atam-page .atam-card h3,
.atam-page .atam-card h4{
  margin:0 0 10px !important; padding:0 !important; border:0 !important;
}
@media (min-width:48em){
  .atam-page h3.atam-bcard_ttl{ margin:8px 0 14px !important; }
}

.atam-phead{ padding-top:80px !important; }
@media (min-width:48em){
  .atam-phead{ padding-top:150px !important; }
}

.atam-page .page-pointUnit{
  display:grid; gap:15px; margin:0 0 50px; counter-reset:point;
}
.atam-page .page-pointItem{
  padding:20px 25px 25px; border:2px solid #25423e; background:#fff;
  counter-increment:point; text-align:center;
}
.atam-page .page-pointItem::before{
  display:block; margin-bottom:10px; content:counter(point);
  color:var(--orange); text-align:center;
  font-weight:700; font-size:26px; font-family:var(--font-en); line-height:1.5;
}
.atam-page .page-pointUnit__teal .page-pointItem::before{ color:var(--teal); }
.atam-page .page-pointItem_heading{
  margin:0 0 10px !important; padding:0 !important; border:0 !important;
  color:#000; text-align:center;
  font-family:var(--font-dp); font-weight:600; font-size:16px; line-height:1.5;
}
.atam-page .page-pointItem_txt{
  margin:0; font-size:13px; line-height:1.76; text-align:left;
}
@media (min-width:48em){
  .atam-page .page-pointUnit{ grid-template-columns:repeat(2,1fr); gap:40px; margin-bottom:100px; }
  .atam-page .page-pointItem{ padding:20px 25px 38px; }
  .atam-page .page-pointItem::before{ margin-bottom:5px; font-size:46px; }
  .atam-page .page-pointItem_heading{ font-size:30px; line-height:1.4; }
  .atam-page .page-pointItem_txt{ font-size:16px; text-align:center; }
}

.atam-page .atam-learn_wrap{ align-items:stretch; }
.atam-page .atam-learn_box{ display:flex; flex-direction:column; }
.atam-page .atam-learn_box .atam-learn_img{
  aspect-ratio:4/3; object-fit:cover; flex:none;
}
.atam-page .atam-learn_box .atam-txt{ display:flex; flex-direction:column; flex:1; }
.atam-page .atam-learn_box h3{ min-height:auto; }
@media (min-width:48em){
  .atam-page .atam-learn_box h3{ min-height:2.8em; align-items:flex-start; }
  .atam-page .atam-learn_box .atam-description{ min-height:105px; }
  .atam-page .atam-learn_box.atam-on{ min-height:0; height:auto; }
  
  .atam-page .atam-learn_wrap{ align-items:flex-start; }
}

.atam-page .atam-bcards:has(> .atam-bcard:only-child){ justify-content:center; }
@media (min-width:48em){
  .atam-page .atam-bcards:has(> .atam-bcard:only-child){
    display:flex; justify-content:center;
  }
}

.atam-page .atam-phead{ max-width:1020px; margin-inline:auto; padding-inline:15px; }
.atam-page .atam-phead > p{ max-width:100%; }
@media (min-width:48em){
  .atam-page .atam-phead{ padding-inline:20px; }
}

.atam-page > .page_item:first-child{ max-width:1020px; margin-inline:auto; }

.atam-page .atam-card{ position:relative; }
.atam-page .atam-card .atam-go{
  margin-top:auto; margin-left:auto; text-align:right; width:fit-content;
}

.atam-page .atam-note--white{
  background:#fff; border:1px solid var(--line); padding:20px; margin:0 0 20px;
}
@media (min-width:48em){
  .atam-page .atam-note--white{ padding:30px 35px; }
}

.atam-page .atam-tblwrap table{ background:#fff; }

.atam-page .atam-cards{ align-items:stretch; }
.atam-page .atam-cards > .atam-card{ height:100%; }
.atam-page .atam-card > p:last-of-type{ margin-bottom:14px; }

.atam-page a.atam-link{ color:var(--teal); text-decoration:underline; font-weight:700; }
.atam-page a.atam-link:hover{ opacity:.7; }

.atam-page ol.atam-num li::before{ color:#000; font-style:normal; font-weight:700; }

.atam-page .atam-card .atam-go + .atam-go{ margin-top:6px; }

.atam-page + script,
.st-Container > script{ display:none; }

.atam-page{ overflow-x:clip; max-width:100%; }
.atam-page .atam-bcards-outer{ max-width:100%; overflow:hidden; }
.atam-page .atam-bcards{ max-width:100%; }
.atam-page img,
.atam-page table{ max-width:100%; }

/* ============================================================
   CTA section bottom spacing + breadcrumb placement.
   Matches the existing primaryschool / parents page convention:
   spacing below the trial-lesson CTA (final values confirmed on screen by the client:
   padding-bottom 0 / breadcrumb margin-top 30px), breadcrumb at the
   bottom of the CTA area. Loaded only on atam-page templates,
   so other pages are unaffected.
   ============================================================ */
.page_item__orange_mesh.home-Section{ padding-bottom:0; }
.page_item__orange_mesh.home-Section #breadcrumbs{ margin-top:30px; }


/* ============================================================
   curriculum-policy: photos and video embed for the
   practical-education section (content aligned with the
   juniorschool page). ASCII-only, loaded on atam-page
   templates only.
   ============================================================ */
/* Two-column media/text rows (matches the juniorschool layout):
   image or video on the left, text on the right on PC;
   stacked vertically on mobile. */
.atam-page .atam-c2col{ margin:14px 0 24px; }
.atam-page .atam-c2col_media img{
  display:block; width:100%; height:auto; border-radius:8px;
}
.atam-page .atam-c2col_body p:first-child{ margin-top:12px; }
@media (min-width:48em){
  .atam-page .atam-c2col{
    display:flex; align-items:flex-start; gap:28px;
  }
  .atam-page .atam-c2col_media{ width:42%; flex:none; }
  .atam-page .atam-c2col_body{ flex:1; min-width:0; }
  .atam-page .atam-c2col_body p:first-child{ margin-top:0; }
}
.atam-page .atam-cphotos{
  display:flex; flex-wrap:wrap; gap:10px; margin:14px 0 16px;
}
.atam-page .atam-cphotos img{
  width:calc(33.3% - 7px); min-width:140px; flex:1 1 140px;
  height:auto; border-radius:8px;
}
.atam-page .atam-embed{
  position:relative; width:100%;
  aspect-ratio:16/9; margin:0 0 8px;
}
.atam-page .atam-embed iframe{
  position:absolute; inset:0; width:100%; height:100%;
  border:0; border-radius:8px;
}
.atam-page .atam-embed_note{
  font-size:11px; color:var(--muted); margin:0 0 14px;
}
/* ============================================================
   Number-only elements use Century Gothic.
   The --font-en variable is Brandon Grotesque (alphanumeric),
   so numeric elements are overridden here.
   ============================================================ */
.atam-page table.atam-price .atam-num,
.atam-page .tt-list li,
.atam-page ol.atam-num li::before,
.atam-page .page-pointItem::before{
  font-family:"century-gothic", sans-serif;
}

/* 共通ボタン（style.css の .home-Section_Btn）用ラッパー */
.atam-page .atam-btnwrap{ margin:10px 0 40px; }
.atam-page .atam-btnwrap .home-Section_Btn{ margin-right:auto; margin-left:auto; }
.atam-page .atam-btnwrap .home-Section_Btn img{ display:inline-block; }
@media (min-width:48em){
  .atam-page .atam-btnwrap{ margin:20px 0 60px; }
}
