/* =====================================================
   PONDOK PESANTREN AL BAROKAH MAGELANG - STYLES
   ===================================================== */

/* ------------------ RESET & BASE ------------------ */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --navy-900: #0b1a36;
  --navy-800: #0f1e3d;
  --navy-700: #15213d;
  --navy-600: #1a2744;
  --navy-500: #22315a;
  --gold-500: #c9a456;
  --gold-400: #d4a84b;
  --gold-300: #e0b964;
  --gold-200: #e5c77d;
  --gold-100: #f2dba0;
  --cream-100: #faf7f0;
  --cream-200: #f5f0e6;
  --cream-300: #ede3cf;
  --border: #e0d5b7;
  --text-dark: #1a2744;
  --text-muted: #6b6b6b;
  --text-light: #9aa0ac;
  --white: #ffffff;
  --shadow-sm: 0 2px 8px rgba(15, 30, 61, 0.06);
  --shadow-md: 0 6px 20px rgba(15, 30, 61, 0.1);
  --shadow-lg: 0 14px 40px rgba(15, 30, 61, 0.16);
  --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}

body {
  font-family: "Poppins", system-ui, sans-serif;
  color: var(--text-dark);
  line-height: 1.65;
  background: var(--cream-100);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

ul {
  list-style: none;
}

button {
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
}

h1,
h2,
h3,
h4,
h5 {
  font-family: "Playfair Display", serif;
  font-weight: 700;
  line-height: 1.25;
  color: var(--navy-700);
}

.container {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ------------------ BUTTONS ------------------ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: 0.95rem;
  font-family: "Poppins", sans-serif;
  transition: all var(--transition);
  white-space: nowrap;
  cursor: pointer;
  letter-spacing: 0.3px;
}

.btn-sm {
  padding: 10px 20px;
  font-size: 0.85rem;
}

.btn-lg {
  padding: 16px 34px;
  font-size: 1rem;
}

.btn-gold {
  background: linear-gradient(135deg, var(--gold-400), var(--gold-500));
  color: var(--navy-800);
  box-shadow: 0 4px 14px rgba(201, 164, 86, 0.35);
}

.btn-gold:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(201, 164, 86, 0.5);
}

.btn-outline {
  background: transparent;
  color: var(--white);
  border: 2px solid var(--gold-400);
}

.btn-outline:hover {
  background: var(--gold-400);
  color: var(--navy-800);
}

.btn-outline-dark {
  background: transparent;
  color: var(--navy-700);
  border: 2px solid var(--navy-700);
}

.btn-outline-dark:hover {
  background: var(--navy-700);
  color: var(--white);
}

/* ------------------ HEADER ------------------ */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: var(--navy-700);
  border-bottom: 2px solid var(--gold-400);
  transition: all var(--transition);
}

.header.scrolled {
  background: rgba(15, 30, 61, 0.97);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
  gap: 20px;
}

.logo {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--white);
  flex-shrink: 0;
}

.logo-icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--gold-400);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--navy-800);
  font-size: 1.2rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}

.logo-title {
  font-size: 0.6rem;
  letter-spacing: 1.5px;
  color: var(--gold-200);
  font-weight: 500;
}

.logo-name {
  font-family: "Playfair Display", serif;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--white);
  letter-spacing: 1px;
  margin-top: 2px;
}

.logo-sub {
  font-size: 0.58rem;
  letter-spacing: 2px;
  color: var(--gold-300);
  margin-top: 2px;
}

.nav-list {
  display: flex;
  align-items: center;
  gap: 4px;
}

.nav-link {
  position: relative;
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.88rem;
  font-weight: 500;
  padding: 8px 14px;
  transition: color var(--transition);
}

.nav-link::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: var(--gold-400);
  transition: width var(--transition);
}

.nav-link:hover,
.nav-link.active {
  color: var(--gold-300);
}

.nav-link.active::after,
.nav-link:hover::after {
  width: 60%;
}

.menu-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 8px;
}

.menu-toggle span {
  width: 26px;
  height: 2.5px;
  background: var(--white);
  border-radius: 2px;
  transition: all var(--transition);
}

.menu-toggle.active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.menu-toggle.active span:nth-child(2) {
  opacity: 0;
}

.menu-toggle.active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* ------------------ HERO ------------------ */
.hero {
  position: relative;
  padding: 140px 0 80px;
  background: linear-gradient(
      135deg,
      rgba(15, 30, 61, 0.95) 0%,
      rgba(21, 33, 61, 0.92) 100%
    ),
    url("https://images.unsplash.com/photo-1564769662533-4f00a87b4056?auto=format&fit=crop&w=1920&q=80")
      center/cover;
  color: var(--white);
  overflow: hidden;
}

.hero-pattern {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(
    circle at 20% 20%,
    rgba(212, 168, 75, 0.08) 0%,
    transparent 40%
  );
  pointer-events: none;
}

.hero-container {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 60px;
  align-items: center;
  position: relative;
  z-index: 2;
}

.hero-tag {
  display: inline-block;
  color: var(--gold-300);
  font-size: 1rem;
  margin-bottom: 12px;
  font-weight: 400;
  font-style: italic;
}

.hero-title {
  font-size: clamp(2rem, 4.5vw, 3.6rem);
  font-weight: 800;
  color: var(--white);
  line-height: 1.1;
  letter-spacing: 1px;
}

.hero-title .gold {
  color: var(--gold-300);
  display: inline-block;
}

.hero-subtitle {
  display: inline-block;
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--gold-200);
  letter-spacing: 4px;
  margin: 8px 0 20px;
}

.hero-desc {
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.82);
  margin-bottom: 32px;
  max-width: 500px;
  line-height: 1.7;
}

.hero-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.hero-image {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  border: 3px solid var(--gold-400);
}

.hero-image img {
  width: 100%;
  height: 420px;
  object-fit: cover;
}

.hero-badge {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--cream-100);
  padding: 10px 16px;
  border-radius: var(--radius-sm);
  border: 2px solid var(--gold-400);
  box-shadow: var(--shadow-md);
}

.badge-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--navy-700);
  color: var(--gold-300);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
}

.badge-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.badge-text strong {
  font-family: "Playfair Display", serif;
  color: var(--navy-700);
  font-size: 0.85rem;
  letter-spacing: 1px;
}

.badge-text span {
  color: var(--gold-500);
  font-size: 0.6rem;
  letter-spacing: 2px;
}

/* ------------------ FEATURES BAR ------------------ */
.features-bar {
  background: var(--navy-700);
  padding: 40px 0;
  position: relative;
  margin-top: -30px;
  border-top: 3px solid var(--gold-400);
  border-bottom: 3px solid var(--gold-400);
}

.features-wrapper {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

.feature-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  color: var(--white);
  padding: 10px;
  border-left: 2px solid transparent;
  transition: border-color var(--transition);
}

.feature-item:hover {
  border-left-color: var(--gold-400);
}

.feature-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-400), var(--gold-500));
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--navy-800);
  font-size: 1.1rem;
  flex-shrink: 0;
}

.feature-content h4 {
  color: var(--gold-200);
  font-size: 0.95rem;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  margin-bottom: 6px;
}

.feature-content p {
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.82rem;
  line-height: 1.5;
}

/* ------------------ SECTION COMMON ------------------ */
.section {
  padding: 90px 0;
  position: relative;
}

.section-header {
  text-align: center;
  margin-bottom: 56px;
}

.section-subtitle {
  display: inline-block;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 4px;
  color: var(--gold-500);
  margin-bottom: 12px;
  text-transform: uppercase;
}

.section-title {
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  margin-bottom: 12px;
  font-weight: 800;
}

.title-line {
  width: 70px;
  height: 3px;
  background: var(--gold-400);
  margin-top: 14px;
  position: relative;
}

.title-line.center {
  margin: 14px auto 0;
}

.title-line::before,
.title-line::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 8px;
  height: 8px;
  background: var(--gold-400);
  border-radius: 50%;
  transform: translateY(-50%);
}

.title-line::before {
  left: -14px;
}

.title-line::after {
  right: -14px;
}

/* ------------------ ABOUT ------------------ */
.about {
  background: var(--cream-100);
}

.about-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 60px;
  align-items: center;
}

.about-image {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.about-image img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
}

.about-image-deco {
  position: absolute;
  bottom: -15px;
  right: -15px;
  width: 80%;
  height: 80%;
  border: 3px solid var(--gold-400);
  border-radius: var(--radius-lg);
  z-index: -1;
}

.about-text {
  color: var(--text-muted);
  font-size: 0.98rem;
  line-height: 1.8;
  margin: 24px 0 30px;
}

.about-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.stat-item {
  text-align: center;
  padding: 24px 10px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  transition: transform var(--transition), box-shadow var(--transition);
}

.stat-item:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: var(--gold-300);
}

.stat-icon {
  width: 42px;
  height: 42px;
  margin: 0 auto 8px;
  border-radius: 50%;
  background: var(--cream-200);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-500);
  font-size: 1rem;
}

.stat-number {
  font-family: "Playfair Display", serif;
  font-size: 2.2rem;
  color: var(--navy-700);
  font-weight: 800;
  line-height: 1;
}

.stat-number span {
  color: var(--gold-500);
}

.stat-label {
  font-size: 0.82rem;
  color: var(--text-muted);
  margin-top: 6px;
  font-weight: 500;
}

/* ------------------ PROGRAM ------------------ */
.program {
  background: var(--cream-200);
  position: relative;
}

.program::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(
      circle at 10% 20%,
      rgba(201, 164, 86, 0.05) 0%,
      transparent 40%
    ),
    radial-gradient(
      circle at 90% 80%,
      rgba(201, 164, 86, 0.05) 0%,
      transparent 40%
    );
  pointer-events: none;
}

.program-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  position: relative;
}

.program-card {
  background: var(--white);
  padding: 34px 24px;
  text-align: center;
  border-radius: var(--radius-md);
  border: 1.5px solid var(--border);
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
}

.program-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: var(--gold-400);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition);
}

.program-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color: var(--gold-400);
}

.program-card:hover::before {
  transform: scaleX(1);
}

.program-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--navy-700), var(--navy-600));
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-300);
  font-size: 1.5rem;
  transition: all var(--transition);
}

.program-card:hover .program-icon {
  background: linear-gradient(135deg, var(--gold-400), var(--gold-500));
  color: var(--navy-800);
  transform: rotateY(180deg);
}

.program-title {
  font-size: 1.15rem;
  margin-bottom: 10px;
}

.program-desc {
  font-size: 0.88rem;
  color: var(--text-muted);
  line-height: 1.6;
}

/* ------------------ FACILITIES ------------------ */
.facilities {
  background: var(--cream-100);
}

.facilities-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}

.facility-card {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 1/1;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  border: 2px solid var(--gold-300);
  transition: transform var(--transition), box-shadow var(--transition);
}

.facility-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}

.facility-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.facility-card:hover img {
  transform: scale(1.1);
}

.facility-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 14px 10px 10px;
  background: linear-gradient(to top, var(--navy-700) 0%, transparent 100%);
  color: var(--white);
  text-align: center;
}

.facility-overlay h4 {
  font-family: "Poppins", sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--white);
  letter-spacing: 0.5px;
}

/* ------------------ ACTIVITIES ------------------ */
.activities {
  background: var(--cream-200);
}

.activities-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
}

.activity-card {
  background: var(--white);
  padding: 28px 18px;
  text-align: center;
  border-radius: var(--radius-md);
  border: 1.5px solid var(--border);
  transition: all var(--transition);
}

.activity-card:hover {
  border-color: var(--gold-400);
  transform: translateY(-6px);
  box-shadow: var(--shadow-md);
}

.activity-icon {
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: var(--cream-200);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-500);
  font-size: 1.3rem;
  transition: all var(--transition);
}

.activity-card:hover .activity-icon {
  background: var(--gold-400);
  color: var(--navy-800);
}

.activity-card h4 {
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--navy-700);
}

.activity-card p {
  font-size: 0.82rem;
  color: var(--text-muted);
  line-height: 1.5;
}

/* ------------------ ACHIEVEMENTS ------------------ */
.achievements {
  background: var(--cream-100);
}

.achievements-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.achievement-card {
  text-align: center;
  padding: 30px 20px;
  background: var(--white);
  border-radius: var(--radius-md);
  border: 1.5px solid var(--border);
  transition: all var(--transition);
}

.achievement-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-md);
  border-color: var(--gold-400);
}

.achievement-icon {
  position: relative;
  display: inline-block;
  font-size: 2.6rem;
  color: var(--gold-400);
  margin-bottom: 14px;
  line-height: 1;
}

.achievement-icon .laurel-left,
.achievement-icon .laurel-right {
  position: absolute;
  top: 50%;
  font-size: 1.8rem;
  color: var(--gold-300);
  transform: translateY(-50%);
}

.achievement-icon .laurel-left {
  left: -26px;
  transform: translateY(-50%) scaleX(-1);
}

.achievement-icon .laurel-right {
  right: -26px;
}

.achievement-card h4 {
  font-family: "Playfair Display", serif;
  font-size: 1.4rem;
  color: var(--navy-700);
  margin-bottom: 8px;
  font-weight: 800;
}

.achievement-name {
  font-size: 0.92rem;
  color: var(--navy-600);
  font-weight: 600;
  margin-bottom: 4px;
}

.achievement-level {
  font-size: 0.8rem;
  color: var(--text-muted);
}

/* ------------------ NEWS ------------------ */
.news {
  background: var(--cream-200);
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.news-card {
  background: var(--white);
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1.5px solid var(--border);
  transition: all var(--transition);
  display: flex;
  flex-direction: column;
}

.news-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-md);
  border-color: var(--gold-300);
}

.news-image {
  position: relative;
  aspect-ratio: 16/10;
  overflow: hidden;
}

.news-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.news-card:hover .news-image img {
  transform: scale(1.08);
}

.news-date {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--gold-400);
  color: var(--navy-800);
  padding: 6px 10px;
  border-radius: var(--radius-sm);
  text-align: center;
  line-height: 1.1;
  box-shadow: var(--shadow-sm);
}

.news-date .day {
  display: block;
  font-family: "Playfair Display", serif;
  font-size: 1.3rem;
  font-weight: 800;
}

.news-date .month {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 1px;
}

.news-date .year {
  display: block;
  font-size: 0.65rem;
  font-weight: 500;
}

.news-content {
  padding: 18px 16px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.news-content h4 {
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  color: var(--navy-700);
  font-weight: 600;
  margin-bottom: 8px;
  line-height: 1.35;
}

.news-content p {
  font-size: 0.85rem;
  color: var(--text-muted);
  line-height: 1.55;
  margin-bottom: 14px;
  flex: 1;
}

.news-link {
  font-size: 0.85rem;
  color: var(--gold-500);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap var(--transition);
}

.news-link:hover {
  gap: 10px;
  color: var(--navy-700);
}

.news-more {
  text-align: center;
  margin-top: 40px;
}

/* ------------------ TESTIMONIALS ------------------ */
.testimonials {
  background: var(--cream-100);
  position: relative;
}

.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.testimonial-card {
  background: var(--white);
  padding: 34px 28px;
  border-radius: var(--radius-md);
  border-left: 4px solid var(--gold-400);
  position: relative;
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition), box-shadow var(--transition);
}

.testimonial-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

.quote-mark {
  position: absolute;
  top: -14px;
  left: 22px;
  width: 36px;
  height: 36px;
  background: var(--gold-400);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--navy-800);
  font-size: 0.9rem;
}

.testimonial-text {
  font-size: 0.92rem;
  line-height: 1.75;
  color: var(--text-dark);
  font-style: italic;
  margin-top: 8px;
  margin-bottom: 20px;
}

.testimonial-author {
  border-top: 1px solid var(--border);
  padding-top: 14px;
}

.author-name {
  font-size: 0.85rem;
  color: var(--gold-500);
  font-weight: 600;
}

/* ------------------ CTA ------------------ */
.cta {
  padding: 70px 0;
  background: linear-gradient(135deg, var(--navy-700), var(--navy-600));
  position: relative;
  overflow: hidden;
}

.cta-pattern {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(
      circle at 0% 100%,
      rgba(212, 168, 75, 0.12) 0%,
      transparent 40%
    ),
    radial-gradient(
      circle at 100% 0%,
      rgba(212, 168, 75, 0.12) 0%,
      transparent 40%
    );
  pointer-events: none;
}

.cta-wrapper {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 30px;
  align-items: center;
  position: relative;
  z-index: 2;
}

.cta-icon {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-400), var(--gold-500));
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--navy-800);
  font-size: 1.7rem;
  flex-shrink: 0;
  box-shadow: 0 10px 30px rgba(201, 164, 86, 0.3);
}

.cta-title {
  color: var(--white);
  font-size: 1.7rem;
  margin-bottom: 6px;
}

.cta-desc {
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.95rem;
  line-height: 1.5;
  max-width: 620px;
}

.cta-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.cta-info {
  color: var(--gold-300);
  font-size: 0.85rem;
  transition: color var(--transition);
}

.cta-info:hover {
  color: var(--white);
}

/* ------------------ FOOTER ------------------ */
.footer {
  background: var(--navy-800);
  color: rgba(255, 255, 255, 0.75);
  padding-top: 70px;
  position: relative;
  overflow: hidden;
}

.footer-pattern {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(
    circle at 50% 0%,
    rgba(212, 168, 75, 0.06) 0%,
    transparent 40%
  );
  pointer-events: none;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1.3fr 1.2fr;
  gap: 40px;
  padding-bottom: 50px;
  position: relative;
  z-index: 2;
}

.footer-logo {
  margin-bottom: 18px;
}

.footer-desc {
  font-size: 0.88rem;
  line-height: 1.7;
  margin-bottom: 20px;
  max-width: 320px;
}

.footer-social {
  display: flex;
  gap: 10px;
}

.footer-social a {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-300);
  font-size: 0.9rem;
  transition: all var(--transition);
}

.footer-social a:hover {
  background: var(--gold-400);
  color: var(--navy-800);
  border-color: var(--gold-400);
  transform: translateY(-3px);
}

.footer-title {
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--gold-300);
  margin-bottom: 18px;
  letter-spacing: 0.5px;
  position: relative;
  padding-bottom: 10px;
}

.footer-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 34px;
  height: 2px;
  background: var(--gold-400);
}

.footer-links li,
.footer-contact li {
  margin-bottom: 10px;
  font-size: 0.88rem;
}

.footer-links a {
  transition: color var(--transition), padding-left var(--transition);
}

.footer-links a:hover {
  color: var(--gold-300);
  padding-left: 6px;
}

.footer-contact li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  line-height: 1.55;
}

.footer-contact i {
  color: var(--gold-400);
  font-size: 0.85rem;
  margin-top: 4px;
  flex-shrink: 0;
}

.footer-map {
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 24px 0;
  text-align: center;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.55);
  position: relative;
  z-index: 2;
}

/* ------------------ BACK TO TOP ------------------ */
.back-to-top {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--gold-400);
  color: var(--navy-800);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: all var(--transition);
  z-index: 999;
  box-shadow: var(--shadow-md);
}

.back-to-top.visible {
  opacity: 1;
  visibility: visible;
}

.back-to-top:hover {
  background: var(--navy-700);
  color: var(--gold-300);
  transform: translateY(-4px);
}

/* ------------------ RESPONSIVE ------------------ */
@media (max-width: 1100px) {
  .nav-list {
    gap: 0;
  }

  .nav-link {
    padding: 8px 10px;
    font-size: 0.82rem;
  }

  .features-wrapper {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .program-grid,
  .achievements-grid,
  .news-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .activities-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .facilities-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .testimonials-grid {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 36px;
  }
}

@media (max-width: 900px) {
  html {
    scroll-padding-top: 80px;
  }

  .menu-toggle {
    display: flex;
  }

  .nav {
    position: fixed;
    top: 80px;
    left: 0;
    right: 0;
    background: var(--navy-700);
    padding: 20px 24px;
    border-bottom: 2px solid var(--gold-400);
    transform: translateY(-120%);
    transition: transform var(--transition);
    box-shadow: var(--shadow-lg);
  }

  .nav.open {
    transform: translateY(0);
  }

  .nav-list {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .nav-link {
    padding: 10px 0;
    font-size: 0.95rem;
    width: 100%;
  }

  .nav-link::after {
    display: none;
  }

  .hero {
    padding: 120px 0 60px;
  }

  .hero-container {
    grid-template-columns: 1fr;
    gap: 40px;
    text-align: center;
  }

  .hero-buttons {
    justify-content: center;
  }

  .hero-image img {
    height: 320px;
  }

  .about-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .about-image img {
    height: 320px;
  }

  .cta-wrapper {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 20px;
  }

  .cta-icon {
    margin: 0 auto;
  }

  .cta-desc {
    margin: 0 auto;
  }
}

@media (max-width: 640px) {
  .header-container {
    height: 72px;
  }

  .logo-title {
    font-size: 0.52rem;
  }

  .logo-name {
    font-size: 0.9rem;
  }

  .logo-sub {
    font-size: 0.52rem;
  }

  .section {
    padding: 60px 0;
  }

  .features-wrapper {
    grid-template-columns: 1fr;
  }

  .program-grid,
  .activities-grid,
  .facilities-grid,
  .achievements-grid,
  .news-grid {
    grid-template-columns: 1fr;
  }

  .about-stats {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .hero-title {
    font-size: 1.9rem;
  }

  .btn {
    padding: 12px 22px;
    font-size: 0.88rem;
  }
}
/* 2026 editorial redesign */
:root{--ink:#18372f;--ink2:#102a24;--moss:#769160;--paper:#f3f0e8;--paper2:#eae6da;--sun:#d4aa54;--line:rgba(24,55,47,.18);--mono:"DM Mono",monospace;--sans:"Manrope",sans-serif;--serif:"Instrument Serif",Georgia,serif}body{background:var(--paper);color:var(--ink);font-family:var(--sans)}.shell{width:min(1240px,calc(100% - 48px));margin:auto}.topline{background:var(--ink2);color:#d9e0d6;font:11px/38px var(--mono);letter-spacing:.04em}.topline .shell{display:flex;justify-content:space-between}.topline a{color:#f4dfaf}.site-header{height:83px;display:flex;align-items:center;position:absolute;top:38px;left:0;right:0;z-index:10;color:white;border-bottom:1px solid #ffffff30;transition:.35s}.site-header.stuck{position:fixed;top:0;background:#102a24f5;backdrop-filter:blur(12px);height:70px}.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;height:100%}.brand{display:flex;align-items:center;gap:11px;line-height:1}.brand-mark{font:32px/48px var(--serif);display:inline-grid;place-items:center;width:48px;height:48px;border:1px solid currentColor;border-radius:50%}.brand small{font:9px/1 var(--mono);display:block;text-transform:uppercase;letter-spacing:.12em;opacity:.75;margin-bottom:5px}.brand strong{font:25px/1 var(--serif);display:block}.nav{display:flex;gap:26px;margin-left:auto}.nav a{font-size:12px;font-weight:700}.nav a:hover{color:#f4d695}.button{display:inline-flex;align-items:center;gap:13px;padding:13px 18px;font:800 12px var(--sans);transition:.25s}.button:hover{transform:translateY(-3px)}.button-dark{background:#f4f0e5;color:var(--ink)}.button-gold{background:var(--sun);color:var(--ink2)}.menu{display:none}.hero{height:max(730px,100vh);min-height:650px;position:relative;color:#fff;display:flex;align-items:center;overflow:hidden}.hero-photo{position:absolute;inset:0;background:url("https://images.unsplash.com/photo-1591604129939-f1efa4d9f7fa?auto=format&fit=crop&w=2000&q=90") center/cover;animation:drift 16s ease-in-out infinite alternate}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0a2318f0 0%,#0d2728b8 46%,#0d272838 80%),linear-gradient(0deg,#0a231888,transparent 46%)}.hero-content{position:relative;padding-top:105px}.eyebrow{font:10px/1.2 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--moss);margin:0 0 22px}.eyebrow.light{color:#e5ca91}.hero h1,.display{font:clamp(55px,7vw,104px)/.91 var(--serif);letter-spacing:-.035em;margin:0}.hero-copy{font-size:16px;line-height:1.75;max-width:505px;color:#ebeee9;margin:29px 0}.hero-actions{display:flex;align-items:center;gap:29px}.text-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:800;border-bottom:1px solid var(--ink);padding:0 0 7px}.text-link.light{border-color:#ffffff99;color:white}.hero-caption{position:absolute;right:max(24px,calc((100% - 1240px)/2));bottom:72px;display:flex;align-items:center;gap:12px;font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase}.hero-caption i{height:1px;width:65px;background:#d8c08b}.hero-scroll{position:absolute;left:max(24px,calc((100% - 1240px)/2));bottom:72px;font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase}.hero-scroll i{display:block;margin-top:14px;animation:bob 1.6s ease-in-out infinite}.intro{padding:137px 0 0}.intro-grid{display:grid;grid-template-columns:1fr 2fr;gap:80px}.intro .display{font-size:clamp(48px,5vw,76px)}.lede{max-width:630px;font-size:17px;margin:35px 0 29px;color:#456157}.metrics{margin-top:120px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr)}.metrics div{padding:29px 0 35px 22px;border-right:1px solid var(--line)}.metrics div:first-child{padding-left:0}.metrics div:last-child{border:0}.metrics b{display:block;font:52px/1 var(--serif)}.metrics b:after{content:"+";font-size:.6em;color:var(--sun)}.metrics span{font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:#547064}.way{background:var(--ink);color:#f5f1e6;margin-top:130px;padding:127px 0}.section-heading{display:grid;grid-template-columns:1.15fr 1.8fr 1fr;gap:35px}.section-heading .eyebrow{margin-top:9px;color:#e2bf7d}.section-heading .display{font-size:clamp(50px,5vw,74px)}.section-heading>p:last-child{color:#c0cbc4;margin:8px 0}.path-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:87px;border-top:1px solid #ffffff33}.path-card{min-height:337px;padding:32px 33px;border-right:1px solid #ffffff33;transition:.3s}.path-card:first-child{border-left:1px solid #ffffff33}.path-card:hover{background:#21483a}.path-card span{font:10px var(--mono);color:#dfba73}.path-card>i{font-size:26px;color:#eed293;display:block;margin:62px 0 19px}.path-card h3{font:31px/1 var(--serif);margin:0 0 12px;color:inherit}.path-card p{font-size:13px;color:#c7d0ca}.life{padding:150px 0}.life-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:10vw;align-items:center}.life-images{min-height:616px;position:relative}.photo-main{width:79%;height:565px;overflow:hidden}.photo-main img{height:100%;object-fit:cover;filter:saturate(.72)}.photo-inset{position:absolute;width:46%;right:0;bottom:0;border:11px solid var(--paper)}.photo-inset img{height:260px;object-fit:cover;filter:saturate(.7)}.stamp{position:absolute;left:34px;bottom:30px;background:var(--sun);color:var(--ink);width:133px;height:133px;border-radius:50%;display:grid;place-content:center;text-align:center;font:10px/1.55 var(--mono);text-transform:uppercase}.life-copy .display{font-size:clamp(48px,5vw,72px);margin-bottom:28px}.life-copy>p:not(.eyebrow){color:#4b655a}.life-copy ul{list-style:none;padding:0;margin:30px 0}.life-copy li{margin:12px 0;font-size:13px;font-weight:700}.life-copy li i{font-size:10px;margin-right:11px;color:var(--moss)}.notes{padding:126px 0;background:var(--paper2)}.notes-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:65px}.notes-head .display{font-size:clamp(50px,5vw,75px)}.notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:6.2vw}.note-image{height:330px;overflow:hidden}.note-image img{height:100%;object-fit:cover;transition:.7s}.note:hover .note-image img{transform:scale(1.04)}.note-meta,.note-line p{font:10px var(--mono);color:#5b7769;text-transform:uppercase;letter-spacing:.08em}.note h3{font:clamp(28px,3vw,40px)/1.05 var(--serif);margin:12px 0 20px;color:var(--ink)}.featured>a{width:38px;height:38px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center}.note-list{border-top:1px solid var(--line)}.note-line{position:relative;border-bottom:1px solid var(--line);padding:22px 58px 23px 0}.note-line p{margin:0}.note-line h3{font-size:26px;margin:8px 0 0}.note-line a{position:absolute;right:1px;top:50%;width:31px;height:31px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center}.admission{padding:100px 0;background:var(--ink2);color:#f7f2e5}.admission-box{display:flex;justify-content:space-between;align-items:end;gap:50px}.admission .eyebrow{color:#e2bc74}.admission .display{font-size:clamp(52px,5.5vw,78px)}.admission p:not(.eyebrow){color:#bfcbc2;max-width:540px;margin:21px 0 0}.admission-actions{display:flex;flex-direction:column;gap:17px}.admission-actions span{font-size:11px;color:#aebbaf}footer{background:#102a24;color:#dde4de;padding-top:79px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:60px}.footer-brand{color:#fff}.footer-grid>div:first-child>p{font-size:13px;color:#b8c5bd;max-width:250px;margin-top:23px}.footer-label{font:10px var(--mono);text-transform:uppercase;letter-spacing:.12em;color:#d8b774;margin:0 0 12px}.footer-grid>div>a:not(.brand){font:15px/1.6 var(--serif);color:#fff}.socials{display:flex;gap:10px;margin-top:20px}.socials a{width:30px;height:30px;border:1px solid #ffffff59;display:grid;place-items:center;font-size:12px}.footer-bottom{border-top:1px solid #ffffff29;margin-top:70px;padding:19px 0 23px;display:flex;justify-content:space-between;color:#a9b8ae;font:10px var(--mono)}.footer-bottom a{color:#e5c37c}@keyframes drift{to{transform:scale(1.06)}}@keyframes bob{50%{transform:translateY(7px)}}.reveal{opacity:0;transform:translateY(22px);transition:.8s}.reveal.visible{opacity:1;transform:none}
@media(max-width:680px){.shell{width:calc(100% - 36px)}.topline .shell span,.hero-scroll{display:none}.topline .shell{justify-content:center}.site-header{top:38px;height:72px}.brand-mark{width:39px;height:39px;font-size:26px;line-height:39px}.brand strong{font-size:22px}.nav{display:none;position:absolute;left:0;right:0;top:71px;background:var(--ink2);padding:8px 18px 19px;flex-direction:column;gap:4px}.nav.open{display:flex}.nav a{padding:10px 0}.menu{display:block;background:none;border:0;color:white}.menu span{display:block;width:26px;height:1px;background:currentColor;margin:6px}.hero{height:735px;min-height:0}.hero-content{padding-top:100px}.hero h1{font-size:62px}.hero-copy{font-size:14px}.hero-actions{align-items:flex-start;flex-direction:column;gap:24px}.hero-caption{right:18px;bottom:34px}.hero-caption i{width:28px}.hero-caption span:last-child{display:none}.intro{padding-top:86px}.intro-grid,.life-grid{display:block}.intro .display{font-size:51px}.lede{font-size:15px;margin-top:25px}.metrics{margin-top:75px;grid-template-columns:1fr 1fr}.metrics div{border-bottom:1px solid var(--line);padding:20px 14px 25px!important}.metrics div:nth-child(odd){padding-left:0!important;border-right:1px solid var(--line)}.metrics b{font-size:41px}.way{margin-top:75px;padding:81px 0}.section-heading{display:block}.section-heading .display{font-size:52px}.section-heading>p:last-child{margin-top:24px}.path-grid{display:block;margin-top:52px}.path-card{min-height:0;padding:27px;border:0;border-bottom:1px solid #ffffff33}.path-card>i{margin:35px 0 15px}.life{padding:87px 0}.life-images{min-height:425px}.photo-main{width:82%;height:380px}.photo-inset{width:47%;border-width:7px}.photo-inset img{height:175px}.stamp{width:105px;height:105px;left:18px;bottom:18px;font-size:8px}.life-copy{margin-top:56px}.life-copy .display{font-size:53px}.notes{padding:80px 0}.notes-head{align-items:start;gap:27px;flex-direction:column;margin-bottom:43px}.notes-head .display{font-size:53px}.notes-grid{display:block}.note-image{height:255px}.note-list{margin-top:46px}.note-line h3{font-size:24px}.admission{padding:80px 0}.admission-box{display:block}.admission .display{font-size:55px}.admission-actions{margin-top:35px}.footer-grid{grid-template-columns:1fr;gap:37px}.footer-bottom{margin-top:55px;gap:20px}.footer-bottom span{max-width:180px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}
:root{--sans:"Plus Jakarta Sans",sans-serif;--serif:"Lora",Georgia,serif}
