/*
Theme Name:  Vidhya Peetham (Divi child)
Template:    Divi
Description: Edmo-inspired look for vidhyapeethamischool.org — teal / sage / coral / navy, Playfair Display + Nunito.
Version:     1.1.0
*/

/* ---------- Tokens ---------- */
:root {
  --vp-teal:   #4DA391;
  --vp-sage:   #6BA294;
  --vp-coral:  #EE4F5C;
  --vp-coral-dark: #D63E4B;
  --vp-terra:  #E97A4A;
  --vp-navy:   #221638;
  --vp-text:   #5E5670;   /* body copy on white: ~7:1 */
  --vp-mist:   #F5F6FA;   /* pale section background */
  --vp-cream:  #FFF8F2;   /* numbers strip */
  --vp-radius: 6px;
  --vp-serif:  'Playfair Display', Georgia, serif;
  --vp-sans:   'Nunito', system-ui, sans-serif;
}

/* ---------- Base type ---------- */
body, #main-content, .et_pb_text {
  font-family: var(--vp-sans);
  color: var(--vp-text);
  font-size: 17px;
  line-height: 1.7;
}
h1, h2, h3, h4,
.et_pb_module_header,
.et_pb_text h1, .et_pb_text h2, .et_pb_text h3 {
  font-family: var(--vp-serif);
  font-weight: 700;
  color: var(--vp-navy);
  line-height: 1.2;
}
a { color: var(--vp-coral); }
a:hover { color: var(--vp-coral-dark); }

/* Small caps label above headings: add class "vp-label" to a Text module */
.vp-label {
  font-family: var(--vp-sans);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--vp-coral);
}

/* ---------- Buttons ---------- */
.et_pb_button, .vp-btn {
  font-family: var(--vp-sans) !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  background: var(--vp-coral) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 5px !important;
  padding: 14px 28px !important;
  transition: background .2s ease;
}
.et_pb_button:hover, .vp-btn:hover {
  background: var(--vp-coral-dark) !important;
  padding: 14px 28px !important;
}
.et_pb_button:after { display: none !important; } /* hide Divi arrow */
.vp-btn-outline {
  background: transparent !important;
  border: 1.5px solid #fff !important;
}

/* ---------- Header ---------- */
#main-header { box-shadow: 0 4px 18px rgba(34,22,56,.06); }
/* Wordmark beside the tree logo */
.logo_container a {
  display: inline-grid; grid-template-columns: auto auto; grid-template-rows: auto auto;
  column-gap: 12px; align-content: center; height: 100%; text-decoration: none;
}
.logo_container #logo { grid-row: 1 / span 2; align-self: center; }
.logo_container a::before {
  content: "Vidhya Peetham"; grid-column: 2; grid-row: 1; align-self: end; order: 2;
  font-family: var(--vp-sans); font-size: 22px; font-weight: 800; line-height: 1.1; color: var(--vp-navy);
}
.logo_container a::after {
  content: "i-SCHOOL \00B7  SALEM"; grid-column: 2; grid-row: 2; align-self: start;
  font-family: var(--vp-sans); font-size: 12px; font-weight: 600; letter-spacing: .18em; color: var(--vp-text);
}
@media (max-width: 980px) {
  .logo_container a { display: inline; }
  .logo_container a::before, .logo_container a::after { content: none; }
  #logo { height: auto; max-height: 60% !important; }
}
#logo { height: 54px; width: auto; max-height: none !important; }
.et-fixed-header #logo { height: 44px; }
#top-menu li a { font-family: var(--vp-sans); font-weight: 700; font-size: 16px; color: var(--vp-navy); }
#top-menu li.vp-menu-cta a {
  background: var(--vp-coral); color: #fff !important;
  padding: 14px 22px !important; border-radius: 5px;
}

/* ---------- Section helpers (add as CSS class on a Divi Section) ---------- */
.vp-mist  { background: var(--vp-mist) !important; }
.vp-cream { background: var(--vp-cream) !important; }
.vp-sage  { background: var(--vp-sage) !important; color: #fff; }
.vp-sage h1, .vp-sage h2, .vp-sage h3, .vp-sage p { color: #fff; }
.vp-teal  { background: var(--vp-teal) !important; color: #fff; }
.vp-teal h1, .vp-teal h2, .vp-teal h3, .vp-teal p { color: #fff; }

/* Curved top + bottom edges, like Edmo's testimonial band */
.vp-curved { position: relative; }
.vp-curved::before, .vp-curved::after {
  content: ""; position: absolute; left: 0; width: 100%; height: 80px;
  background-repeat: no-repeat; background-size: 100% 100%; pointer-events: none;
}
.vp-curved::before { top: -1px;    background-image: url("assets/curve-top.svg"); }
.vp-curved::after  { bottom: -1px; background-image: url("assets/curve-bottom.svg"); }

/* Leaf sprig decoration in the top-left of a section */
.vp-leaf { position: relative; overflow: hidden; }
.vp-leaf::before {
  content: ""; position: absolute; left: 0; top: 50px; width: 200px; height: 330px;
  background: url("assets/leaf-sprig.svg") no-repeat center / contain; pointer-events: none;
}

/* Hero: add class "vp-hero" to the hero Section (with background photo) and
   "vp-hero-blob" to the column/text that holds the headline */
.vp-hero { min-height: 760px; display: flex; align-items: center; }
.vp-hero-blob {
  position: relative; padding: 110px 90px !important; text-align: center;
  background: url("assets/brush-circle.svg") no-repeat center / contain;
  max-width: 700px; aspect-ratio: 1 / 0.95;
}
.vp-hero-blob h1 { color: #fff; font-size: 62px; }
.vp-hero-blob p  { color: #fff; font-weight: 600; }

/* Arched "why" cards: add "vp-arch-card" to a Blurb module */
.vp-arch-card {
  background: #fff; border-radius: var(--vp-radius); overflow: hidden;
  padding: 0 32px 40px !important; text-align: center;
}
.vp-arch-card .et_pb_main_blurb_image {
  position: relative; padding-top: 60px; margin-bottom: 26px;
}
.vp-arch-card .et_pb_main_blurb_image::before {
  content: ""; position: absolute; left: 50%; top: -220px; transform: translateX(-50%);
  width: 520px; height: 440px; border-radius: 50%; background: var(--vp-mist); z-index: 0;
}
.vp-arch-card .et_pb_image_wrap { position: relative; z-index: 1; }

/* Programme / course cards: add "vp-card" to a Blurb or Image+Text column */
.vp-card { text-align: center; }
.vp-card img { border-radius: var(--vp-radius); }

/* Outlined testimonial cards on the sage band: add "vp-quote" to a Testimonial module */
.vp-quote {
  background: transparent !important; border: 1px solid rgba(255,255,255,.45) !important;
  border-radius: var(--vp-radius); padding: 40px !important; position: relative;
}
.vp-quote .et_pb_testimonial_description_inner,
.vp-quote .et_pb_testimonial_author,
.vp-quote .et_pb_testimonial_meta { color: #fff !important; }
.vp-quote::after {
  content: "\201D"; position: absolute; right: 28px; bottom: -10px;
  font-family: var(--vp-serif); font-size: 110px; color: rgba(233,122,74,.55);
}
.vp-quote .et_pb_testimonial_portrait { border-radius: 50%; }

/* Teal check list: add "vp-checks" to a Text module containing a <ul> */
.vp-checks ul { list-style: none; padding: 0 !important; }
.vp-checks li {
  position: relative; padding-left: 46px; margin-bottom: 14px;
  font-weight: 700; color: var(--vp-navy);
}
.vp-checks li::before {
  content: ""; position: absolute; left: 0; top: 0; width: 30px; height: 30px; border-radius: 50%;
  background: var(--vp-sage) url("assets/check.svg") no-repeat center / 14px;
}

/* Coral frame behind a video/image: add "vp-coral-frame" to the Video/Image module */
.vp-coral-frame { position: relative; padding: 34px 0 0 34px; }
.vp-coral-frame::before {
  content: ""; position: absolute; left: 0; top: 0; width: 88%; height: 100%;
  background: var(--vp-coral); z-index: -1;
}

/* Numbers strip: add "vp-stat" to each Number Counter module */
.vp-stat .percent-value, .vp-stat .et_pb_number_counter_title { font-family: var(--vp-sans); }
.vp-stat .percent-value { font-size: 50px; font-weight: 800; color: var(--vp-coral); }

/* Pill tags on activity cards: <span class="vp-tag">GRADE 4 · MATHS</span> */
.vp-tag {
  display: inline-block; padding: 5px 12px; border-radius: 4px;
  background: #FDE8EA; color: #B8323E; font-size: 13px; font-weight: 800; letter-spacing: .04em;
}
.vp-tag.teal { background: #E3F1EC; color: #2E6B5E; }
.vp-tag.terra { background: #FDEBDF; color: #A04A22; }

/* ---------- Footer ---------- */
#main-footer, #footer-bottom { background: var(--vp-navy) !important; }
#main-footer, #main-footer a, #footer-bottom { color: #C9C3D6 !important; }
#main-footer h4 { font-family: var(--vp-serif); color: #fff !important; }
#footer-widgets .footer-widget li { padding-left: 0; margin-bottom: 8px; }
#footer-widgets .footer-widget li::before { display: none; }
#footer-widgets .footer-widget h4 { font-size: 22px; margin-bottom: 14px; }
#footer-widgets .footer-widget p, #footer-widgets .footer-widget li { font-size: 16px; line-height: 1.7; color: #C9C3D6; }

/* ---------- Home page helpers (added for the new Home draft) ---------- */

/* Section intro: centred H2 + lead paragraph. Add "vp-intro" to a Text module */
.vp-intro { text-align: center; max-width: 660px; margin: 0 auto 30px !important; }
.vp-intro h2 { font-size: 48px; margin-bottom: 14px; }
.vp-intro p { font-size: 18px; }
.vp-sage .vp-intro p { color: #EAF3EF; }

/* Large section headings (About, Prakriti, Admissions): add "vp-big" to the Text module */
.vp-big h2 { font-size: 44px; margin: 10px 0 20px; }
.vp-big p { margin-bottom: 14px; }

/* Hero details */
.vp-hero { background-position: center !important; }
.vp-hero > .et_pb_row { width: 90%; max-width: 1440px; }
.vp-hero-blob .vp-label { color: #fff; letter-spacing: .16em; }
.vp-hero-blob .et_pb_image { margin: 0 auto 18px !important; }
.vp-hero-blob .et_pb_image { max-width: 92px !important; width: 92px; }
.vp-hero-blob .et_pb_image img { width: 92px !important; }
.vp-hero-blob .et_pb_text { margin-bottom: 18px !important; }
.vp-hero-blob .et_pb_button_module_wrapper { margin-top: 10px; }
/* The badge row is only a holder: the badge positions itself against the hero section */
.vp-hero-badge-row, .vp-hero-badge-row .et_pb_column { position: static !important; width: 0 !important; padding: 0 !important; margin: 0 !important; }
.vp-hero-badge {
  position: absolute !important; right: 60px; bottom: 50px; margin: 0 !important;
  background: #fff; border-radius: 10px; padding: 18px 24px !important;
  box-shadow: 0 10px 30px rgba(34,22,56,.14); width: auto !important; max-width: 360px;
}
.vp-hero-badge .et_pb_blurb_content { display: flex; align-items: center; gap: 14px; text-align: left; max-width: none; }
.vp-hero-badge .et_pb_main_blurb_image { margin: 0 !important; width: 50px; flex-shrink: 0; }
.vp-hero-badge .et-pb-icon {
  width: 50px; height: 50px; line-height: 50px; border-radius: 50%;
  background: #FDE8EA; color: var(--vp-coral) !important; font-size: 24px !important; text-align: center;
}
.vp-hero-badge .et_pb_module_header { font-family: var(--vp-sans); font-size: 18px; font-weight: 800; padding: 0; }
.vp-hero-badge .et_pb_blurb_description { font-size: 14px; line-height: 1.4; }

/* Arched cards: round photo inside the arch */
.vp-arch-card .et_pb_main_blurb_image img {
  width: 220px; height: 200px; object-fit: cover; border-radius: 50%;
}
.vp-arch-card .et_pb_module_header { font-size: 28px; padding-bottom: 12px; }
.vp-mist .vp-arch-card { background: #fff !important; }

/* About photo sitting on a soft mint blob */
.vp-blob-photo { position: relative; padding: 40px 50px; }
.vp-blob-photo::before {
  content: ""; position: absolute; left: 0; top: 0; width: 88%; height: 100%;
  border-radius: 58% 42% 48% 52% / 50% 44% 56% 50%; background: #BFE0D6; z-index: 0;
}
.vp-blob-photo .et_pb_image_wrap { position: relative; z-index: 1; }
.vp-blob-photo img { border-radius: 16px; }

/* Programme cards: equal photo heights */
.vp-card .et_pb_image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.vp-card h3 { font-size: 27px; padding: 14px 0 6px; }
.vp-card .et_pb_text { margin-bottom: 14px !important; }
.vp-card .et_pb_button { font-size: 15px !important; padding: 11px 24px !important; }

/* Testimonials on the sage band */
.vp-sage.vp-curved { padding: 150px 0 170px !important; }
.vp-quote .et_pb_testimonial_description_inner { font-size: 18px; line-height: 1.7; font-weight: 600; }
.vp-quote .et_pb_testimonial_author { font-weight: 800; font-size: 18px; }
.vp-quote .et_pb_testimonial_description:before { display: none; } /* hide Divi quote icon */

/* Video caption tab under the coral-framed video */
.vp-coral-frame { z-index: 0; }
.vp-video-caption {
  display: inline-block; margin: -2px 0 0 34px !important;
  background: var(--vp-coral); color: #fff; border-radius: 0 26px 0 0;
  padding: 18px 32px !important; font-size: 30px; font-weight: 800; line-height: 1.2;
}
.vp-video-caption p { color: #fff; }

/* Stats: "vp-stat" also works on a Text module (for values like 30,000+ / Top 3) */
.vp-cream .et_pb_row { background: var(--vp-cream); }
.vp-stat { text-align: center; padding: 50px 16px; border-right: 1px solid #F1E3D6; }
.et_pb_column:last-child .vp-stat { border-right: 0; }
.vp-stat .vp-stat-num { display: block; font-size: 50px; font-weight: 800; line-height: 1.1; color: var(--vp-coral); }
.vp-stat .vp-stat-num.teal  { color: var(--vp-teal); }
.vp-stat .vp-stat-num.terra { color: var(--vp-terra); }
.vp-stat .vp-stat-num.navy  { color: var(--vp-navy); }
.vp-stat .vp-stat-label { display: block; font-size: 17px; font-weight: 700; color: var(--vp-navy); margin-top: 8px; }

/* Life at School: blog grid as white cards */
.vp-mist .et_pb_blog_grid .et_pb_post {
  background: #fff; border: 0; border-radius: var(--vp-radius); overflow: hidden; padding: 0 0 26px;
}
.vp-mist .et_pb_blog_grid .et_pb_image_container { margin: 0 0 22px; }
.vp-mist .et_pb_blog_grid .et_pb_post .entry-title,
.vp-mist .et_pb_blog_grid .et_pb_post .post-meta,
.vp-mist .et_pb_blog_grid .et_pb_post .more-link { padding: 0 28px; }
.vp-mist .et_pb_blog_grid .entry-title { font-family: var(--vp-serif); font-size: 22px; line-height: 1.3; }
.vp-mist .et_pb_blog_grid .entry-title a { color: var(--vp-navy); }
.vp-mist .et_pb_blog_grid .post-meta a {
  display: inline-block; padding: 4px 10px; border-radius: 4px;
  background: #FDE8EA; color: #B8323E; font-size: 12px; font-weight: 800; text-transform: uppercase;
}
.vp-mist .et_pb_blog_grid .et_pb_image_container img { aspect-ratio: 4 / 3; object-fit: cover; }

/* Admissions box */
.et_pb_row.vp-teal { border-radius: 10px; padding: 70px 80px !important; overflow: hidden; position: relative; }
.et_pb_row.vp-teal::after {
  content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px;
  border-radius: 50%; border: 36px solid rgba(255,255,255,.12); pointer-events: none;
}
.vp-teal .vp-label { color: #FFE3D6; }
.vp-teal .et_pb_contact_form_container { position: relative; z-index: 1; }
.vp-teal .et_pb_contact_field input,
.vp-teal .et_pb_contact_field select {
  background: #fff !important; color: var(--vp-navy) !important; border-radius: 5px;
  font-family: var(--vp-sans); font-size: 16px; padding: 16px !important;
}
.vp-teal .et_contact_bottom_container { float: none; width: 100%; margin-top: 6px; }
.vp-teal .et_pb_contact_submit { width: 100%; }
.vp-teal .et-pb-contact-message { color: #fff; }
.vp-teal .et_pb_contact_right { color: #fff; font-weight: 700; }
.vp-teal .et_pb_contact_captcha {
  background: #fff !important; color: var(--vp-navy) !important; border-radius: 5px;
  width: 56px !important; padding: 12px 8px !important; text-align: center; margin-left: 6px;
}
.vp-teal .et_pb_contact_captcha_question { color: #fff; }

/* ---------- Mobile ---------- */
@media (max-width: 980px) {
  .vp-big h2 { font-size: 34px; }
  .vp-hero-blob { padding: 70px 40px !important; }
  .vp-hero-blob h1 { font-size: 40px; }
  .vp-leaf::before { width: 120px; opacity: .6; }
  .vp-hero { min-height: 0; display: block; padding: 40px 0 !important; }
  .vp-hero-blob { max-width: 100%; aspect-ratio: auto; background: var(--vp-teal); border-radius: 40px; }
  .vp-hero-badge-row, .vp-hero-badge-row .et_pb_column { width: 90% !important; margin: 0 auto !important; }
  .vp-hero-badge { position: relative !important; right: auto; bottom: auto; margin: 18px auto 0 !important; max-width: 320px; }
  .vp-intro h2 { font-size: 34px; }
  .vp-stat { border-right: 0; border-bottom: 1px solid #F1E3D6; padding: 30px 16px; }
  .vp-video-caption { font-size: 20px; margin-left: 0 !important; }
  .et_pb_row.vp-teal { padding: 44px 26px !important; }
  .vp-blob-photo { padding: 24px; }
}
@media (max-width: 480px) {
  .vp-hero-blob { padding: 50px 26px !important; }
  .vp-hero-blob h1 { font-size: 34px; }
}
