/*
Theme Name: Al-Islam Pesantren
Theme URI: https://pondokalislam.example
Author: Antara
Author URI: https://pondokalislam.example
Description: Tema WordPress custom untuk Pondok Pesantren Al-Islam Gorontalo. Terinspirasi dari tata letak modern tema pendidikan Eikra, dibangun murni dengan PHP/HTML/CSS tanpa page builder. Dilengkapi Custom Post Type untuk Program, Pengajar, Event dan Testimoni, serta panel Customizer untuk mengatur hero, kontak, warna, dan statistik.
Version: 1.0.0
Requires at least: 5.9
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: al-islam-pesantren
Tags: education, custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* =========================================================
   0. CSS VARIABLES / DESIGN TOKENS
   ========================================================= */
:root{
  --color-primary: #2300b2;
  --color-primary-dark: #17007a;
  --color-primary-rgb: 35,0,178;
  --color-primary-light: #ece7fb;
  --color-accent: #efd50e;
  --color-accent-dark: #b39d0a;
  --color-accent-rgb: 239,213,14;
  --color-dark: #120d2e;
  --color-text: #56645d;
  --color-text-light: #8a958f;
  --color-body-bg: #faf9f5;
  --color-white: #ffffff;
  --color-border: #e7e4da;
  --font-heading: 'Poppins', -apple-system, Segoe UI, sans-serif;
  --font-body: 'Inter', -apple-system, Segoe UI, sans-serif;
  --font-arabic: 'Amiri', serif;
  --radius-sm: 6px;
  --radius: 14px;
  --radius-lg: 26px;
  --shadow-sm: 0 4px 14px rgba(20,38,33,0.06);
  --shadow: 0 20px 45px rgba(20,38,33,0.09);
  --container: 1240px;
  --header-h: 92px;
}

/* =========================================================
   1. RESET & BASE
   ========================================================= */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--color-text);
  background:var(--color-body-bg);
  font-size:16px;
  line-height:1.75;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--color-primary); text-decoration:none; transition:.25s ease; }
a:hover{ color:var(--color-accent); }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-heading);
  color:var(--color-dark);
  font-weight:600;
  line-height:1.3;
  margin:0 0 .6em;
}
p{ margin:0 0 1.2em; }
button, input, textarea, select{ font-family:inherit; font-size:inherit; }
figure{ margin:0; }
.screen-reader-text{
  position:absolute !important;
  clip:rect(1px,1px,1px,1px);
  width:1px; height:1px; overflow:hidden;
}
.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}
.alignwide{ max-width:1400px; margin-left:auto; margin-right:auto; }
.alignfull{ max-width:100%; }
.aligncenter{ text-align:center; margin-left:auto; margin-right:auto; }

/* =========================================================
   2. BUTTONS & BADGES
   ========================================================= */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:15px 32px;
  border-radius:50px;
  font-weight:600;
  font-size:15px;
  border:2px solid transparent;
  cursor:pointer;
  transition:.3s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--color-primary); color:#fff; }
.btn-primary:hover{ background:var(--color-primary-dark); color:#fff; transform:translateY(-2px); }
.btn-accent{ background:var(--color-accent); color:var(--color-dark); }
.btn-accent:hover{ background:var(--color-accent-dark); color:#fff; transform:translateY(-2px); }
.btn-outline{ background:transparent; border-color:rgba(255,255,255,.55); color:#fff; }
.btn-outline:hover{ background:#fff; color:var(--color-primary); border-color:#fff; }
.btn-outline-dark{ background:transparent; border-color:var(--color-border); color:var(--color-dark); }
.btn-outline-dark:hover{ background:var(--color-primary); border-color:var(--color-primary); color:#fff; }
.btn-sm{ padding:10px 22px; font-size:13px; }

.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 18px;
  border-radius:50px;
  background:var(--color-primary-light);
  color:var(--color-primary);
  font-weight:600;
  font-size:13px;
  letter-spacing:.03em;
  text-transform:uppercase;
  margin-bottom:16px;
}
.badge::before{
  content:"";
  width:7px; height:7px; border-radius:50%;
  background:var(--color-accent);
}

/* =========================================================
   3. SECTION HEADING PATTERN
   ========================================================= */
.section{ padding:100px 0; position:relative; }
.section-sm{ padding:60px 0; }
.section-alt{ background:#fff; }
.section-primary{ background:var(--color-primary); color:rgba(255,255,255,.85); }
.section-primary h2, .section-primary h3{ color:#fff; }
.section-head{ max-width:680px; margin:0 auto 56px; text-align:center; }
.section-head.is-left{ margin-left:0; text-align:left; }
.section-title{ font-size:38px; margin-bottom:14px; }
.section-title .accent{ color:var(--color-primary); position:relative; }
.section-sub{ color:var(--color-text-light); font-size:16px; margin:0; }
.arabic-accent{
  font-family:var(--font-arabic);
  font-size:22px;
  color:var(--color-accent);
  display:block;
  margin-bottom:10px;
  direction:rtl;
}

/* =========================================================
   4. TOP BAR + HEADER
   ========================================================= */
.topbar{
  background:var(--color-dark);
  color:rgba(255,255,255,.75);
  font-size:13px;
}
.topbar .container{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:9px; padding-bottom:9px; flex-wrap:wrap; gap:8px;
}
.topbar-info{ display:flex; gap:22px; flex-wrap:wrap; }
.topbar-info a, .topbar-info span{ color:rgba(255,255,255,.75); display:inline-flex; align-items:center; gap:7px; }
.topbar-info a:hover{ color:var(--color-accent); }
.topbar-social{ display:flex; gap:14px; }
.topbar-social a{
  color:rgba(255,255,255,.75);
  width:26px; height:26px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.2); border-radius:50%;
  font-size:12px;
}
.topbar-social a:hover{ background:var(--color-accent); border-color:var(--color-accent); color:var(--color-dark); }

.site-header{
  position:sticky; top:0; z-index:999;
  background:#fff;
  box-shadow:0 2px 20px rgba(20,38,33,.06);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  min-height:var(--header-h);
  gap:24px;
}
.site-branding{ display:flex; align-items:center; gap:12px; }
.site-branding img{ max-height:56px; width:auto; }
.site-branding .site-title{
  margin:0; font-size:22px; font-weight:700; color:var(--color-dark);
}
.site-branding .site-title a{ color:inherit; }
.site-branding .site-title small{
  display:block; font-size:11.5px; font-weight:500; letter-spacing:.04em;
  color:var(--color-primary); text-transform:uppercase; margin-top:2px;
}

.main-navigation{ display:flex; align-items:center; gap:34px; }
.main-navigation > ul{ display:flex; gap:30px; align-items:center; }
.main-navigation li{ position:relative; }
.main-navigation .sub-menu{ display:block; }
.main-navigation .sub-menu li{ display:block; width:100%; }
.main-navigation > ul > li > a{
  color:var(--color-dark); font-weight:600; font-size:15px; padding:34px 0; display:inline-block; position:relative;
}
.main-navigation a{ color:var(--color-dark); font-weight:600; font-size:15px; }
.main-navigation > ul > li > a::after{
  content:""; position:absolute; left:0; right:0; bottom:28px; height:3px; border-radius:2px;
  background:var(--color-accent); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.main-navigation li:hover > a, .main-navigation li.current-menu-item > a{ color:var(--color-primary); }
.main-navigation > ul > li:hover > a::after,
.main-navigation > ul > li.current-menu-item > a::after{ transform:scaleX(1); }
.main-navigation .sub-menu{
  position:absolute; top:100%; left:0; background:var(--color-dark); min-width:240px;
  box-shadow:var(--shadow); border-radius:var(--radius-sm); padding:8px 0;
  opacity:0; visibility:hidden; transform:translateY(10px); transition:.25s ease; z-index:50;
}
.main-navigation li:hover > .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.main-navigation .sub-menu a{
  padding:13px 24px; display:block; font-weight:500; color:rgba(255,255,255,.82);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.main-navigation .sub-menu li:last-child a{ border-bottom:0; }
.main-navigation .sub-menu li:hover > a{ background:rgba(255,255,255,.06); color:#fff; padding-left:28px; }
.main-navigation .sub-menu li.current-menu-item > a{ color:var(--color-accent); }
.main-navigation .menu-item-has-children > a::before{ content:"\25BE"; font-size:10px; margin-left:6px; display:inline-block; }
.main-navigation .sub-menu .menu-item-has-children > a::before{ content:"\25B8"; float:right; margin-top:3px; }

.header-actions{ display:flex; align-items:center; gap:16px; }
.menu-toggle{
  display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px;
}
.menu-toggle span{ width:24px; height:2px; background:var(--color-dark); border-radius:2px; }

/* =========================================================
   5. HERO / SLIDER
   ========================================================= */
.hero{
  position:relative; overflow:hidden;
  background:linear-gradient(120deg,var(--color-primary-dark),var(--color-primary));
  padding:120px 0 150px;
}
.hero::before{
  content:""; position:absolute; inset:0;
  background-image:radial-gradient(circle at 20% 20%, rgba(255,255,255,.08) 0, transparent 45%),
    radial-gradient(circle at 85% 75%, rgba(201,162,75,.18) 0, transparent 45%);
}
.hero-pattern{
  position:absolute; right:-60px; top:-60px; width:420px; height:420px;
  border:60px solid rgba(255,255,255,.05); border-radius:50%;
}
.hero .container{ position:relative; z-index:2; display:grid; grid-template-columns:1.05fr .95fr; gap:50px; align-items:center; }
.hero-eyebrow{
  font-family:var(--font-arabic); color:var(--color-accent); font-size:24px; margin-bottom:14px; direction:rtl;
}
.hero-title{ color:#fff; font-size:52px; line-height:1.2; margin-bottom:22px; }
.hero-title .accent{ color:var(--color-accent); }
.hero-desc{ color:rgba(255,255,255,.8); font-size:17px; max-width:520px; margin-bottom:34px; }
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:44px; }
.hero-stats{ display:flex; gap:34px; flex-wrap:wrap; }
.hero-stats div{ color:#fff; }
.hero-stats strong{ display:block; font-size:28px; font-family:var(--font-heading); color:var(--color-accent); }
.hero-stats span{ font-size:13px; color:rgba(255,255,255,.7); }
.hero-media{ position:relative; }
.hero-media .frame{
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:0 30px 60px rgba(0,0,0,.28);
  border:6px solid rgba(255,255,255,.15);
}
.hero-media .float-card{
  position:absolute; bottom:-24px; left:-24px; background:#fff; color:var(--color-dark);
  padding:18px 22px; border-radius:var(--radius); box-shadow:var(--shadow); display:flex; gap:14px; align-items:center;
  max-width:260px;
}
.hero-media .float-card .icon{
  width:46px; height:46px; border-radius:50%; background:var(--color-primary-light); color:var(--color-primary);
  display:flex; align-items:center; justify-content:center; font-size:20px; flex:none;
}
.hero-media .float-card strong{ display:block; font-size:15px; }
.hero-media .float-card span{ font-size:12.5px; color:var(--color-text-light); }
.hero-slides{ display:grid; }
.hero-slides > *{ grid-area:1/1; opacity:0; visibility:hidden; transition:opacity .8s ease; }
.hero-slides > .is-active{ opacity:1; visibility:visible; }
.hero-dots{ display:flex; gap:8px; margin-top:28px; }
.hero-dots button{
  width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.35); border:0; padding:0; cursor:pointer;
}
.hero-dots button.is-active{ background:var(--color-accent); width:26px; border-radius:6px; }

.wave-divider{ display:block; width:100%; line-height:0; margin-top:-2px; }

/* =========================================================
   6. STATS BAR
   ========================================================= */
.stats-bar{
  background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow);
  margin-top:-70px; position:relative; z-index:5;
  display:grid; grid-template-columns:repeat(4,1fr);
}
.stats-bar .stat-item{
  padding:36px 20px; text-align:center; border-right:1px solid var(--color-border);
}
.stats-bar .stat-item:last-child{ border-right:0; }
.stats-bar .stat-item .num{
  font-family:var(--font-heading); font-size:36px; color:var(--color-primary); font-weight:700; display:block;
}
.stats-bar .stat-item .label{ font-size:14px; color:var(--color-text-light); margin-top:6px; display:block; }

/* =========================================================
   7. ABOUT SECTION
   ========================================================= */
.about-wrap{ display:grid; grid-template-columns:.95fr 1.05fr; gap:64px; align-items:center; }
.about-media{ position:relative; }
.about-media .frame-main{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.about-media .frame-sub{
  position:absolute; width:52%; border:6px solid #fff; border-radius:var(--radius); box-shadow:var(--shadow);
  bottom:-40px; right:-30px;
}
.about-media .badge-circle{
  position:absolute; top:-26px; left:-26px; width:110px; height:110px; border-radius:50%;
  background:var(--color-accent); color:var(--color-dark); display:flex; align-items:center; justify-content:center;
  flex-direction:column; text-align:center; font-family:var(--font-heading); font-weight:700; font-size:13px;
  box-shadow:var(--shadow); line-height:1.2;
}
.about-media .badge-circle span{ display:block; font-size:24px; }
.about-list{ display:grid; gap:16px; margin:28px 0 34px; }
.about-list li{
  display:flex; gap:14px; align-items:flex-start; font-weight:500; color:var(--color-dark);
}
.about-list li .ico{
  flex:none; width:30px; height:30px; border-radius:50%; background:var(--color-primary-light);
  color:var(--color-primary); display:flex; align-items:center; justify-content:center; font-size:13px; margin-top:2px;
}
.about-signature{ display:flex; align-items:center; gap:16px; margin-top:36px; padding-top:28px; border-top:1px solid var(--color-border); }
.about-signature img{ width:58px; height:58px; border-radius:50%; object-fit:cover; }
.about-signature strong{ display:block; font-family:var(--font-heading); font-size:16px; }
.about-signature span{ font-size:13px; color:var(--color-text-light); }

/* =========================================================
   8. PROGRAMS / JENJANG PENDIDIKAN
   ========================================================= */
.programs-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.program-card{
  background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm);
  transition:.3s ease; border:1px solid var(--color-border);
}
.program-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow); border-color:transparent; }
.program-card .thumb{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.program-card .thumb img{ width:100%; height:100%; object-fit:cover; transition:.4s ease; }
.program-card:hover .thumb img{ transform:scale(1.08); }
.program-card .thumb .tag{
  position:absolute; top:16px; left:16px; background:var(--color-accent); color:var(--color-dark); font-size:12px;
  font-weight:600; padding:5px 14px; border-radius:50px;
}
.program-card .body{ padding:26px; }
.program-card h3{ font-size:19px; margin-bottom:10px; }
.program-card h3 a{ color:inherit; }
.program-card h3 a:hover{ color:var(--color-primary); }
.program-card p{ font-size:14.5px; margin-bottom:16px; color:var(--color-text-light); }
.program-card .meta{ display:flex; justify-content:space-between; align-items:center; font-size:13px; padding-top:16px; border-top:1px dashed var(--color-border); }
.program-card .meta a{ font-weight:700; color:var(--color-primary); display:inline-flex; align-items:center; gap:6px; }

/* =========================================================
   8b. SAMBUTAN PIMPINAN (LEADER MESSAGE)
   ========================================================= */
.leader-card{
  display:flex; gap:44px; align-items:center; background:#fff; border-radius:var(--radius-lg);
  padding:44px; box-shadow:var(--shadow); border:1px solid var(--color-border);
}
.leader-card .photo{
  flex:none; width:230px; height:280px; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm);
}
.leader-card .photo img{ width:100%; height:100%; object-fit:cover; }
.leader-card .body h3.leader-title{ font-size:26px; margin-bottom:6px; }
.leader-card .leader-name{ display:block; font-weight:700; color:var(--color-primary); font-size:15px; margin-bottom:2px; }
.leader-card .leader-role{ display:block; font-size:13.5px; color:var(--color-text-light); margin-bottom:18px; }
.leader-card p{ color:var(--color-text); }

/* =========================================================
   9. WHY CHOOSE US
   ========================================================= */
.why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.why-card{
  background:#fff; padding:34px 26px; border-radius:var(--radius); text-align:center;
  box-shadow:var(--shadow-sm); transition:.3s ease;
}
.why-card:hover{ background:var(--color-primary); transform:translateY(-6px); }
.why-card:hover *{ color:#fff !important; }
.why-card:hover .why-icon{ background:rgba(255,255,255,.15); }
.why-icon{
  width:64px; height:64px; border-radius:50%; background:var(--color-primary-light); color:var(--color-primary);
  display:flex; align-items:center; justify-content:center; font-size:26px; margin:0 auto 18px;
}
.why-card h3{ font-size:17px; margin-bottom:8px; }
.why-card p{ font-size:14px; margin:0; color:var(--color-text-light); }

/* =========================================================
   10. PENGAJAR / TEACHERS
   ========================================================= */
.teacher-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.teacher-card{ text-align:center; }
.teacher-card .photo{
  border-radius:var(--radius); overflow:hidden; position:relative; margin-bottom:18px; aspect-ratio:3/4;
  box-shadow:var(--shadow-sm);
}
.teacher-card .photo img{ width:100%; height:100%; object-fit:cover; transition:.4s ease; }
.teacher-card:hover .photo img{ transform:scale(1.06); }
.teacher-card .social{
  position:absolute; bottom:0; left:0; right:0; display:flex; justify-content:center; gap:8px;
  padding:14px 0; background:linear-gradient(0deg,rgba(15,107,76,.92),transparent);
  opacity:0; transform:translateY(10px); transition:.3s ease;
}
.teacher-card:hover .social{ opacity:1; transform:translateY(0); }
.teacher-card .social a{
  width:32px; height:32px; border-radius:50%; background:#fff; color:var(--color-primary);
  display:flex; align-items:center; justify-content:center; font-size:13px;
}
.teacher-card h3{ font-size:17px; margin-bottom:4px; }
.teacher-card span{ font-size:13px; color:var(--color-accent-dark); font-weight:600; }
.section-foot{ text-align:center; margin-top:38px; }

/* =========================================================
   11. EVENTS / AGENDA
   ========================================================= */
.events-list{ display:grid; gap:22px; }
.event-card{
  display:grid; grid-template-columns:120px 1fr auto; gap:24px; align-items:center;
  background:#fff; border-radius:var(--radius); padding:22px 26px; box-shadow:var(--shadow-sm);
  border:1px solid var(--color-border); transition:.3s ease;
}
.event-card:hover{ box-shadow:var(--shadow); border-color:transparent; }
.event-card .date-box{
  background:var(--color-primary-light); color:var(--color-primary); border-radius:var(--radius-sm);
  text-align:center; padding:14px 8px; font-family:var(--font-heading);
}
.event-card .date-box .d{ font-size:26px; font-weight:700; display:block; line-height:1; }
.event-card .date-box .m{ font-size:12px; text-transform:uppercase; letter-spacing:.05em; }
.event-card h3{ font-size:18px; margin-bottom:6px; }
.event-card .meta{ font-size:13.5px; color:var(--color-text-light); display:flex; gap:18px; flex-wrap:wrap; }
.event-card .meta span{ display:inline-flex; align-items:center; gap:6px; }

/* =========================================================
   12. TESTIMONIALS
   ========================================================= */
.testimonial-track{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.testimonial-card{
  background:#fff; border-radius:var(--radius); padding:32px; box-shadow:var(--shadow-sm); position:relative;
}
.testimonial-card .quote-ico{ color:var(--color-primary-light); font-size:44px; font-family:Georgia,serif; line-height:1; margin-bottom:6px; }
.testimonial-card p{ font-size:15px; color:var(--color-text); font-style:italic; }
.testimonial-card .person{ display:flex; align-items:center; gap:14px; margin-top:20px; }
.testimonial-card .person img{ width:52px; height:52px; border-radius:50%; object-fit:cover; }
.testimonial-card .person strong{ display:block; font-size:14.5px; }
.testimonial-card .person span{ font-size:12.5px; color:var(--color-text-light); }
.testimonial-card .stars{ color:var(--color-accent); font-size:13px; margin-bottom:10px; }

/* =========================================================
   13. BLOG / BERITA
   ========================================================= */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.blog-grid-4{ grid-template-columns:repeat(4,1fr); gap:26px; }
.blog-grid-4 .blog-card .body{ padding:20px; }
.blog-grid-4 .blog-card h3{ font-size:16px; }
.blog-card{
  display:block; background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm);
  transition:.3s ease; color:inherit; text-decoration:none;
}
.blog-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow); color:inherit; }
.blog-card .thumb{ display:block; aspect-ratio:16/10; overflow:hidden; }
.blog-card .thumb img{ width:100%; height:100%; object-fit:cover; transition:.4s ease; }
.blog-card:hover .thumb img{ transform:scale(1.08); }
.blog-card .body{ display:block; padding:22px 24px 26px; }
.blog-card .meta{ display:block; font-size:13px; color:var(--color-text-light); margin-bottom:10px; }
.blog-card h3{ font-size:18px; margin-bottom:0; font-weight:700; }
.blog-card:hover h3{ color:var(--color-primary); }
.blog-card .excerpt-text{ display:block; font-size:14px; color:var(--color-text-light); margin-top:10px; }

/* =========================================================
   14. CTA / PPDB BANNER
   ========================================================= */
.cta-banner{
  background:linear-gradient(120deg,var(--color-primary-dark),var(--color-primary));
  border-radius:var(--radius-lg); padding:64px 60px; position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
}
.cta-banner::before{
  content:""; position:absolute; right:-40px; top:-60px; width:260px; height:260px; border-radius:50%;
  border:40px solid rgba(255,255,255,.06);
}
.cta-banner h2{ color:#fff; font-size:30px; margin-bottom:10px; max-width:520px; position:relative; z-index:1; }
.cta-banner p{ color:rgba(255,255,255,.78); margin:0; max-width:520px; position:relative; z-index:1; }
.cta-banner .actions{ display:flex; gap:14px; position:relative; z-index:1; flex-wrap:wrap; }

/* =========================================================
   15. CONTACT SECTION
   ========================================================= */
.contact-wrap{ display:grid; grid-template-columns:.9fr 1.1fr; gap:50px; }
.contact-info{ display:grid; gap:20px; align-content:start; }
.contact-info .item{ display:flex; gap:16px; background:#fff; padding:22px; border-radius:var(--radius); box-shadow:var(--shadow-sm); }
.contact-info .item .ico{
  flex:none; width:48px; height:48px; border-radius:50%; background:var(--color-primary-light); color:var(--color-primary);
  display:flex; align-items:center; justify-content:center; font-size:18px;
}
.contact-info .item strong{ display:block; font-size:15px; margin-bottom:4px; }
.contact-info .item span, .contact-info .item a{ font-size:13.5px; color:var(--color-text-light); }
.contact-form{ background:#fff; padding:34px; border-radius:var(--radius); box-shadow:var(--shadow-sm); }
.contact-form .row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form label{ font-size:13px; font-weight:600; color:var(--color-dark); display:block; margin-bottom:6px; }
.contact-form input, .contact-form textarea, .contact-form select{
  width:100%; padding:13px 16px; border:1px solid var(--color-border); border-radius:var(--radius-sm);
  margin-bottom:18px; background:var(--color-body-bg); color:var(--color-dark);
}
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus{
  outline:none; border-color:var(--color-primary); background:#fff;
}
.contact-form textarea{ min-height:130px; resize:vertical; }
.form-notice{ padding:14px 18px; border-radius:var(--radius-sm); margin-bottom:18px; font-size:14px; }
.form-notice.success{ background:#e8f3ee; color:var(--color-primary-dark); }
.form-notice.error{ background:#fdecec; color:#a02a2a; }
.map-embed{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); margin-top:26px; }
.map-embed iframe{ width:100%; height:340px; border:0; display:block; }

/* =========================================================
   16. PAGE HEADER (INNER PAGES)
   ========================================================= */
.page-header-banner{
  background:linear-gradient(120deg,var(--color-primary-dark),var(--color-primary));
  padding:70px 0; position:relative; overflow:hidden;
}
.page-header-banner::before{
  content:""; position:absolute; inset:0;
  background-image:radial-gradient(circle at 90% 10%, rgba(201,162,75,.2) 0, transparent 45%);
}
.page-header-banner .container{ position:relative; z-index:1; }
.page-header-banner h1{ color:#fff; font-size:38px; margin-bottom:12px; }
.breadcrumb{ display:flex; gap:8px; color:rgba(255,255,255,.7); font-size:14px; }
.breadcrumb a{ color:rgba(255,255,255,.7); }
.breadcrumb a:hover{ color:var(--color-accent); }
.breadcrumb span.sep{ opacity:.5; }

/* =========================================================
   17. SINGLE / ARCHIVE CONTENT
   ========================================================= */
.content-area{ padding:90px 0; }
.single-layout{ display:grid; grid-template-columns:1fr; gap:50px; align-items:start; }
.single-layout.has-sidebar{ grid-template-columns:2fr 1fr; }
.share-buttons{
  display:flex; align-items:center; gap:12px; margin-top:28px; padding-top:24px;
  border-top:1px dashed var(--color-border); flex-wrap:wrap;
}
.share-label{ font-weight:600; font-size:14px; color:var(--color-dark); margin-right:2px; }
.share-btn{
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--color-primary-light); color:var(--color-primary); font-size:14px; transition:.25s ease;
}
.share-btn:hover{ background:var(--color-primary); color:#fff; transform:translateY(-3px); }
.related-posts{ margin-top:56px; padding-top:40px; border-top:1px solid var(--color-border); }
.related-posts-title{ font-size:22px; margin-bottom:24px; }
.entry-content{ font-size:16px; }
.entry-content h2{ font-size:26px; margin-top:1.4em; }
.entry-content h3{ font-size:21px; margin-top:1.2em; }
.entry-content img{ border-radius:var(--radius); margin:1.4em 0; }
.entry-content ul{ list-style:disc; padding-left:1.4em; margin-bottom:1.2em; }
.entry-content ol{ list-style:decimal; padding-left:1.4em; margin-bottom:1.2em; }
.entry-content blockquote{
  border-left:4px solid var(--color-accent); padding:6px 24px; margin:1.6em 0; font-style:italic;
  color:var(--color-dark); background:var(--color-primary-light); border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.entry-header{ margin-bottom:30px; }
.entry-meta{ display:flex; gap:18px; flex-wrap:wrap; font-size:13.5px; color:var(--color-text-light); margin-bottom:14px; }
.entry-meta span{ display:inline-flex; align-items:center; gap:6px; }
.entry-thumb{ border-radius:var(--radius); overflow:hidden; margin-bottom:34px; box-shadow:var(--shadow-sm); }
.tag-links a, .cat-links a{
  display:inline-block; background:var(--color-primary-light); color:var(--color-primary); font-size:12.5px;
  padding:5px 14px; border-radius:50px; margin:0 6px 6px 0;
}
.pagination{ display:flex; gap:8px; margin-top:40px; flex-wrap:wrap; }
.pagination a, .pagination span{
  min-width:40px; height:40px; padding:0 10px; border-radius:var(--radius-sm); background:#fff;
  border:1px solid var(--color-border); display:inline-flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:600; color:var(--color-dark);
}
.pagination .current{ background:var(--color-primary); border-color:var(--color-primary); color:#fff; }
.pagination a:hover{ border-color:var(--color-primary); color:var(--color-primary); }
.comment-list{ margin:0; }
.comment-list .comment{ display:flex; gap:16px; margin-bottom:26px; }
.comment-list img{ border-radius:50%; flex:none; }
.comment-author{ font-weight:700; font-size:14.5px; }
.comment-metadata{ font-size:12.5px; color:var(--color-text-light); margin-bottom:8px; }
.comment-form input, .comment-form textarea{
  width:100%; padding:13px 16px; border:1px solid var(--color-border); border-radius:var(--radius-sm); margin-bottom:16px;
}
.widget{ background:#fff; padding:26px; border-radius:var(--radius); box-shadow:var(--shadow-sm); margin-bottom:26px; }
.widget-title{ font-size:16px; margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--color-border); }

/* =========================================================
   18. FOOTER
   ========================================================= */
.site-footer{ background:var(--color-dark); color:rgba(255,255,255,.65); }
.footer-top{ padding:80px 0 50px; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:44px; }
.footer-widget .site-branding{ margin-bottom:16px; }
.footer-widget .site-branding .site-title{ color:#fff; }
.footer-widget p{ font-size:14px; color:rgba(255,255,255,.55); }
.footer-widget h3{ color:#fff; font-size:16px; margin-bottom:22px; position:relative; padding-bottom:14px; }
.footer-widget h3::after{ content:""; position:absolute; left:0; bottom:0; width:36px; height:2px; background:var(--color-accent); }
.footer-widget ul li{ margin-bottom:12px; }
.footer-widget ul li a{ color:rgba(255,255,255,.6); font-size:14.5px; }
.footer-widget ul li a:hover{ color:var(--color-accent); padding-left:4px; }
.footer-widget .contact-line{ display:flex; gap:12px; margin-bottom:16px; font-size:14px; align-items:flex-start; }
.footer-widget .contact-line .ico{ color:var(--color-accent); margin-top:3px; }
.footer-social{ display:flex; gap:10px; margin-top:20px; }
.footer-social a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.75); font-size:14px;
}
.footer-social a:hover{ background:var(--color-accent); border-color:var(--color-accent); color:var(--color-dark); }
.footer-newsletter input{
  width:100%; padding:12px 16px; border-radius:50px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06);
  color:#fff; margin-bottom:12px;
}
.footer-newsletter input::placeholder{ color:rgba(255,255,255,.45); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding:22px 0; }
.footer-bottom .container{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; font-size:13.5px; }
.footer-bottom a{ color:rgba(255,255,255,.7); }
.footer-menu{ display:flex; gap:20px; flex-wrap:wrap; }

.back-to-top{
  position:fixed; right:26px; bottom:26px; width:48px; height:48px; border-radius:50%;
  background:var(--color-primary); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow); opacity:0; visibility:hidden; transform:translateY(10px); transition:.3s ease; z-index:500; border:0; cursor:pointer;
}
.back-to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }

/* =========================================================
   19. UTILITIES
   ========================================================= */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.empty-state{ text-align:center; padding:60px 20px; color:var(--color-text-light); }

/* =========================================================
   20. RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .programs-grid, .why-grid, .teacher-grid, .testimonial-track, .blog-grid, .blog-grid-4{ grid-template-columns:repeat(2,1fr); }
  .leader-card{ flex-direction:column; text-align:center; }
  .leader-card .photo{ margin:0 auto; }
  .hero .container{ grid-template-columns:1fr; }
  .hero-media{ order:-1; }
  .about-wrap, .contact-wrap{ grid-template-columns:1fr; }
  .single-layout.has-sidebar{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .stats-bar{ grid-template-columns:repeat(2,1fr); }
  .stats-bar .stat-item:nth-child(2){ border-right:0; }
}
@media (max-width:880px){
  .main-navigation{ display:none; }
  .menu-toggle{ display:flex; }
  .site-header.is-open .main-navigation{
    display:flex; position:absolute; top:100%; left:0; right:0; background:#fff; flex-direction:column;
    padding:20px 24px; box-shadow:var(--shadow); align-items:flex-start;
  }
  .site-header.is-open .main-navigation ul{ flex-direction:column; width:100%; align-items:flex-start; gap:4px; }
  .site-header.is-open .main-navigation a{ padding:12px 0; width:100%; }
  .site-header.is-open .main-navigation .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; padding-left:14px; display:none; }
  .site-header.is-open .menu-item-has-children.is-expanded > .sub-menu{ display:block; }
  .site-header.is-open .main-navigation > ul > li > a::after{ bottom:4px; }
  .topbar-info span:nth-child(3){ display:none; }
}
@media (max-width:768px){
  .section{ padding:64px 0; }
  .hero{ padding:70px 0 100px; }
  .hero-title{ font-size:36px; }
  .contact-form .row{ grid-template-columns:1fr; }
  .cta-banner{ padding:44px 28px; flex-direction:column; text-align:center; }
  .cta-banner p{ margin-left:auto; margin-right:auto; }
  .event-card{ grid-template-columns:1fr; text-align:center; }
  .event-card .meta{ justify-content:center; }
}
@media (max-width:640px){
  .programs-grid, .why-grid, .testimonial-track, .blog-grid, .footer-grid{ grid-template-columns:1fr; }
  .teacher-grid, .blog-grid-4{ grid-template-columns:repeat(2,1fr); gap:16px; }
  .blog-grid-4 .blog-card .body{ padding:14px; }
  .blog-grid-4 .blog-card h3{ font-size:14px; }
  .blog-grid-4 .blog-card .meta{ font-size:12px; margin-bottom:6px; }
  .teacher-card h3{ font-size:15px; }
  .teacher-card span{ font-size:12px; }
  .stats-bar{ grid-template-columns:1fr 1fr; }
  .section-title{ font-size:28px; }
  .hero-title{ font-size:30px; }
}
