/*
Theme Name: Japan Animal Academy
Theme URI: https://bfrap.jp/
Author: EF Initials
Description: Japan Animal Academy 通信教育サイト用 WordPress テーマ
Version: 3.0.0
Text Domain: jaa
*/

:root{
  --brown:#342519;
  --ivory:#FAF7F2;
  --gold:#B88A44;
  --green:#425347;
  --beige:#EFE3D0;
  --charcoal:#2C2C2C;
  --text:#2b2119;
  --white:#ffffff;
  --shadow:0 24px 70px rgba(52,37,25,.14);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--text);
  background:var(--ivory);
  line-height:1.85;
  letter-spacing:.02em;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.container{width:min(1160px, 92%);margin:0 auto}
.section{padding:112px 0}
.en{
  font-family:Georgia, "Times New Roman", serif;
  letter-spacing:.18em;
  color:var(--gold);
  text-transform:uppercase;
  font-size:.78rem;
  font-weight:700;
  margin-bottom:14px;
}
.section-title{
  font-family:"Noto Serif JP", serif;
  font-size:clamp(2rem,4vw,3.75rem);
  line-height:1.32;
  margin:0 0 28px;
  color:var(--brown);
}
.lead{font-size:1.05rem;max-width:760px}

/* Button */
.btns{display:flex;flex-wrap:wrap;gap:16px;margin-top:34px}
.btn,
.wpcf7-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:16px 36px;
  border-radius:999px;
  font-size:16px;
  font-weight:800;
  letter-spacing:.04em;
  transition:all .3s ease;
  border:0;
  cursor:pointer;
}
.btn.primary,
.wpcf7-submit{
  background:var(--gold);
  color:#fff;
  box-shadow:0 12px 30px rgba(184,138,68,.35);
}
.btn.primary:hover,
.wpcf7-submit:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(184,138,68,.45);
}
.btn.secondary{
  background:rgba(255,255,255,.92);
  color:var(--brown);
  box-shadow:0 12px 30px rgba(52,37,25,.12);
}
.btn.outline{
  border:1px solid rgba(255,255,255,.75);
  color:white;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
}

/* Header */
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:50;
  background:linear-gradient(to bottom, rgba(35,24,16,.72), rgba(35,24,16,.18));
  color:white;
}
.header-inner{
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.logo{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:"Noto Serif JP", serif;
  font-size:1.15rem;
  font-weight:800;
  letter-spacing:.08em;
}
.custom-logo{max-height:54px;width:auto}
.logo-mark{
  width:42px;height:42px;
  display:inline-grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.55);
  color:var(--gold);
  background:rgba(255,255,255,.10);
  font-family:Georgia,serif;
}
.nav{display:flex;align-items:center;gap:22px;font-size:.9rem}
.primary-menu{
  display:flex;
  align-items:center;
  gap:22px;
  list-style:none;
  margin:0;
  padding:0;
}
.primary-menu a{opacity:.94;color:inherit}
.primary-menu a:hover{color:#f3d39a}
.header-cta{
  background:var(--gold);
  padding:10px 18px;
  border-radius:999px;
  font-weight:800;
  box-shadow:0 10px 24px rgba(0,0,0,.15);
}

/* Hero */
.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  color:white;
  background:
    linear-gradient(90deg, rgba(35,24,16,.68), rgba(35,24,16,.23)),
    url('assets/hero.jpg') center center / cover no-repeat;
  padding-top:82px;
  position:relative;
  overflow:hidden;
}
.hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 18% 55%, rgba(184,138,68,.25), transparent 32%);
  pointer-events:none;
}
.hero:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:160px;
  background:linear-gradient(to bottom, rgba(250,247,242,0), var(--ivory));
  pointer-events:none;
}
.hero .container{position:relative;z-index:1}
.hero-copy{max-width:760px;padding:40px 0}
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  border:1px solid rgba(255,255,255,.36);
  background:rgba(255,255,255,.10);
  border-radius:999px;
  backdrop-filter:blur(8px);
  margin-bottom:26px;
  font-size:.84rem;
}
.hero h1{
  font-family:"Noto Serif JP", serif;
  font-size:clamp(3.2rem,7.5vw,7rem);
  line-height:1.12;
  margin:0 0 28px;
  letter-spacing:.025em;
  text-shadow:0 18px 42px rgba(0,0,0,.28);
}
.hero p{
  font-size:clamp(1.05rem,2vw,1.45rem);
  max-width:700px;
  text-shadow:0 12px 30px rgba(0,0,0,.35);
}

/* Common layout */
.grid{display:grid;gap:30px}
.grid.two{grid-template-columns:repeat(2,1fr)}
.grid.three{grid-template-columns:repeat(3,1fr)}
.card{
  background:white;
  border-radius:30px;
  padding:36px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.card h3{
  font-family:"Noto Serif JP", serif;
  font-size:1.58rem;
  margin:0 0 14px;
  color:var(--brown);
}
.price{font-size:1.28rem;font-weight:900;color:var(--gold);margin:20px 0}

/* About */
.about-wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.photo-block{
  min-height:600px;
  border-radius:38px;
  background:
    linear-gradient(135deg, rgba(181,138,69,.10), rgba(47,74,60,.08)),
    url('assets/about.jpg') center center / cover no-repeat;
  box-shadow:var(--shadow);
}
.about-points{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:32px}
.about-point{
  background:white;
  border-radius:20px;
  padding:20px;
  box-shadow:0 14px 42px rgba(52,37,25,.08);
}
.about-point strong{color:var(--brown);display:block;margin-bottom:6px}

/* Course */
.course-image{
  height:230px;
  margin:-36px -36px 28px;
  border-radius:30px 30px 0 0;
  background:center / cover no-repeat;
}
.course-image.bfrap{background-image:linear-gradient(135deg, rgba(58,42,29,.10), rgba(181,138,69,.14)),url('assets/course-bfrap.jpg')}
.course-image.advanced{background-image:linear-gradient(135deg, rgba(58,42,29,.10), rgba(47,74,60,.12)),url('assets/course-advanced.jpg')}
.course-tags{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.course-tags span{
  font-size:.8rem;
  padding:6px 10px;
  background:var(--ivory);
  border-radius:999px;
  color:var(--green);
  font-weight:800;
}

/* Feature */
.feature-item{
  background:rgba(255,255,255,.55);
  border:1px solid rgba(52,37,25,.10);
  border-radius:26px;
  padding:30px;
}
.feature-icon{
  width:54px;height:54px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:var(--brown);
  color:white;
  font-size:1.35rem;
  margin-bottom:18px;
}
.feature-num{color:var(--gold);font-weight:900;font-size:.82rem;letter-spacing:.15em}

/* Curriculum */
.curriculum{display:flex;gap:18px;overflow-x:auto;padding-bottom:14px}
.step{
  min-width:220px;
  background:linear-gradient(135deg,var(--brown),var(--green));
  color:white;
  border-radius:26px;
  padding:28px;
  box-shadow:0 18px 48px rgba(52,37,25,.12);
}
.step span{color:#e9c982;font-weight:900}

/* Teacher */
.teacher-card{display:grid;grid-template-columns:150px 1fr;gap:26px;align-items:center}
.avatar{
  width:150px;height:150px;border-radius:50%;
  background:linear-gradient(135deg,var(--beige),#fff);
  border:3px solid var(--gold);
  box-shadow:0 14px 34px rgba(52,37,25,.12);
  overflow:hidden;
}
.avatar img{width:100%;height:100%;object-fit:cover}

/* Voice */
.voice{background:white}
.stars{color:var(--gold);letter-spacing:.08em;font-size:1.15rem}

/* FAQ */
.faq details{
  background:white;
  border-radius:20px;
  padding:22px 26px;
  margin-bottom:14px;
  box-shadow:0 12px 36px rgba(52,37,25,.07);
}
.faq summary{font-weight:900;cursor:pointer;color:var(--brown)}
.faq p{margin-bottom:0}

/* Contact Form 7 */
.contact-box{
  background:white;
  border-radius:32px;
  padding:44px;
  box-shadow:var(--shadow);
}
.wpcf7 label{
  display:block;
  font-weight:800;
  color:var(--brown);
  margin-bottom:18px;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea{
  width:100%;
  margin-top:8px;
  padding:15px 16px;
  border:1px solid rgba(52,37,25,.18);
  border-radius:14px;
  background:#fff;
  font-size:16px;
}
.wpcf7 textarea{min-height:180px}

/* CTA */
.cta{
  background:
    linear-gradient(90deg, rgba(52,37,25,.80), rgba(66,83,71,.56)),
    url('assets/cta.jpg') center center / cover no-repeat;
  color:white;
  text-align:center;
}
.cta .section-title{color:white}

/* Footer */
.site-footer{background:var(--brown);color:white;padding:52px 0}
.footer-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:18px;opacity:.86}

/* Pages */
.page-hero{padding:150px 0 70px;background:linear-gradient(135deg,var(--brown),var(--green));color:white}
.page-hero .section-title{color:white}
.page-content{padding:70px 0}
.page-content .container{max-width:920px}

/* Animation */
.reveal,.card,.feature-item,.photo-block,.step{animation:jaaFadeUp .75s ease both}
@keyframes jaaFadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:900px){
  .nav{display:none}
  .primary-menu{display:none}
  .section{padding:76px 0}
  .hero{min-height:88vh}
  .grid.two,.grid.three,.about-wrap,.about-points{grid-template-columns:1fr}
  .about-wrap{gap:38px}
  .photo-block{min-height:390px}
  .course-image{height:200px}
  .teacher-card{grid-template-columns:1fr}
  .avatar{width:132px;height:132px}
  .btn,.wpcf7-submit{width:100%;min-height:56px}
  .btns{gap:12px}
  .contact-box{padding:28px}
}
