/*
Theme Name:   Dominican Convent Primary
Theme URI:    https://conventprimarybyo.com
Description:  Astra child theme for Dominican Convent Primary School, Bulawayo. Custom homepage sections: hero, houses, news, gallery and admissions wizard.
Author:       Dominican Convent Primary School
Version:      1.0.0
Template:     astra
Requires at least: 5.8
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  dcp-astra-child
*/

/* =====================================================
   GOOGLE FONTS
   ===================================================== */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=Lato:wght@300;400;700&display=swap');

/* =====================================================
   CSS VARIABLES
   ===================================================== */
:root {
  --dcp-blue-deep:   #1a3a6b;
  --dcp-blue-mid:    #1e5cbf;
  --dcp-blue-bright: #3b82f6;
  --dcp-blue-light:  #dbeafe;
  --dcp-blue-pale:   #eff6ff;
  --dcp-gold:        #f59e0b;
  --dcp-gold-light:  #fef3c7;
  --dcp-white:       #ffffff;
  --dcp-off-white:   #f8fafc;
  --dcp-gray-100:    #f1f5f9;
  --dcp-gray-300:    #cbd5e1;
  --dcp-gray-500:    #64748b;
  --dcp-gray-700:    #334155;

  --dcp-font-display: 'Nunito', sans-serif;
  --dcp-font-body:    'Lato', sans-serif;

  --dcp-radius-md:   12px;
  --dcp-radius-lg:   20px;
  --dcp-radius-xl:   28px;
  --dcp-radius-full: 9999px;

  --dcp-shadow-sm:   0 2px 10px rgba(30,92,191,.09);
  --dcp-shadow-md:   0 6px 24px rgba(30,92,191,.14);
  --dcp-shadow-lg:   0 16px 48px rgba(30,92,191,.18);
  --dcp-transition:  all .25s cubic-bezier(.4,0,.2,1);
}

/* =====================================================
   ASTRA OVERRIDES — global typography & colours
   ===================================================== */
body {
  font-family: var(--dcp-font-body) !important;
  color: var(--dcp-gray-700);
}
h1, h2, h3, h4, h5, h6,
.ast-header-title {
  font-family: var(--dcp-font-display) !important;
  color: var(--dcp-blue-deep);
}

/* Header */
.site-header,
.ast-header-break-point .site-header {
  background: #fff !important;
  box-shadow: 0 2px 16px rgba(30,92,191,.08) !important;
}
.ast-primary-header-bar {
  background: #fff !important;
}
/* Above header bar */
.ast-above-header {
  background: var(--dcp-blue-deep) !important;
  color: rgba(255,255,255,.85);
  font-size: .82rem;
  padding: 6px 0;
}
.ast-above-header a { color: rgba(255,255,255,.85); }
.ast-above-header a:hover { color: var(--dcp-gold); }

/* Nav links */
.main-header-menu .menu-item > a,
.main-navigation .menu-item > a {
  font-family: var(--dcp-font-display) !important;
  font-weight: 700 !important;
  color: var(--dcp-gray-700) !important;
  border-radius: var(--dcp-radius-full) !important;
  padding: 6px 14px !important;
  transition: var(--dcp-transition) !important;
}
.main-header-menu .menu-item > a:hover,
.main-header-menu .current-menu-item > a {
  background: var(--dcp-blue-light) !important;
  color: var(--dcp-blue-mid) !important;
}

/* Hide default Astra page title on front page */
.home .entry-header,
.home .ast-breadcrumbs-wrapper { display: none; }

/* Remove default content padding on front page */
.home .entry-content { padding: 0 !important; margin: 0 !important; }
.home .ast-container { max-width: 100% !important; padding: 0 !important; }
.home .site-content { padding: 0 !important; }

/* =====================================================
   SHARED UTILITIES
   ===================================================== */
.dcp-container {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 3vw, 2rem);
}
.dcp-sec-tag {
  display: inline-block;
  font-family: var(--dcp-font-display);
  font-weight: 800;
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 5px 16px;
  border-radius: var(--dcp-radius-full);
  margin-bottom: .65rem;
  background: var(--dcp-blue-light);
  color: var(--dcp-blue-mid);
}
.dcp-sec-tag.gold { background: var(--dcp-gold-light); color: #92400e; }
.dcp-sec-hd { text-align: center; max-width: 620px; margin: 0 auto 3rem; }
.dcp-sec-hd h2 {
  font-family: var(--dcp-font-display);
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  font-weight: 900;
  color: var(--dcp-blue-deep);
  margin-bottom: .6rem;
}
.dcp-sec-hd p { color: var(--dcp-gray-500); font-size: 1.02rem; line-height: 1.7; margin: 0; }
.dcp-btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-family: var(--dcp-font-display);
  font-weight: 800;
  font-size: .95rem;
  border-radius: var(--dcp-radius-full);
  padding: .75rem 1.8rem;
  cursor: pointer;
  border: none;
  transition: var(--dcp-transition);
  text-decoration: none;
}
.dcp-btn-gold  { background: var(--dcp-gold); color: var(--dcp-blue-deep); box-shadow: 0 4px 18px rgba(245,158,11,.3); }
.dcp-btn-gold:hover  { background: #d97706; color: var(--dcp-blue-deep); transform: translateY(-2px); }
.dcp-btn-blue  { background: var(--dcp-blue-mid); color: #fff; box-shadow: 0 4px 18px rgba(30,92,191,.25); }
.dcp-btn-blue:hover  { background: var(--dcp-blue-deep); color: #fff; transform: translateY(-2px); }
.dcp-btn-ghost { background: rgba(255,255,255,.10); color: #fff; border: 2px solid rgba(255,255,255,.3); }
.dcp-btn-ghost:hover { background: rgba(255,255,255,.18); color: #fff; }
.dcp-btn-soft  { background: var(--dcp-blue-pale); color: var(--dcp-blue-mid); }
.dcp-btn-soft:hover  { background: var(--dcp-blue-light); }

/* =====================================================
   HERO
   ===================================================== */
.dcp-hero {
  position: relative;
  background: linear-gradient(135deg, #1a3a6b 0%, #1e5cbf 55%, #2d7dd2 100%);
  color: #fff;
  overflow: hidden;
  min-height: 88vh;
  display: flex;
  align-items: center;
  padding: 60px 0;
}
.dcp-hero-dots {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.10) 1px, transparent 1px);
  background-size: 36px 36px;
  pointer-events: none;
}
.dcp-hero-shape {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.dcp-hero-shape-1 { width: 480px; height: 480px; top: -120px; right: -80px; background: rgba(255,255,255,.05); }
.dcp-hero-shape-2 { width: 260px; height: 260px; bottom: -50px; left: -50px; background: rgba(255,255,255,.04); }
.dcp-hero-shape-3 { width: 160px; height: 160px; top: 38%; right: 22%; background: rgba(245,158,11,.10); }

.dcp-hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.dcp-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--dcp-radius-full);
  padding: 5px 16px;
  font-family: var(--dcp-font-display);
  font-size: .8rem;
  font-weight: 700;
  margin-bottom: 1.2rem;
}
.dcp-hero-badge-dot {
  width: 7px; height: 7px;
  background: var(--dcp-gold);
  border-radius: 50%;
  animation: dcpPulse 2s infinite;
}
@keyframes dcpPulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.6;transform:scale(1.4)} }

.dcp-hero h1 {
  font-family: var(--dcp-font-display) !important;
  font-size: clamp(2rem, 4.5vw, 3.4rem) !important;
  font-weight: 900 !important;
  color: #fff !important;
  line-height: 1.15 !important;
  margin-bottom: 1rem !important;
}
.dcp-hero h1 span { color: #fbbf24; }
.dcp-hero-sub {
  font-size: 1.08rem;
  color: rgba(255,255,255,.82);
  line-height: 1.7;
  max-width: 480px;
  margin-bottom: 1.8rem;
}
.dcp-hero-btns { display: flex; gap: .85rem; flex-wrap: wrap; margin-bottom: 2.2rem; }
.dcp-hero-stats {
  display: flex;
  gap: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,.18);
  flex-wrap: wrap;
}
.dcp-stat-num {
  font-family: var(--dcp-font-display);
  font-size: 1.9rem;
  font-weight: 900;
  color: #fff;
  line-height: 1;
}
.dcp-stat-lbl {
  font-size: .73rem;
  color: rgba(255,255,255,.6);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-top: 3px;
}

/* Hero visual cards */
.dcp-hero-visual { display: flex; flex-direction: column; gap: .85rem; }
.dcp-hero-card {
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--dcp-radius-xl);
  padding: 1.4rem;
  backdrop-filter: blur(10px);
}
.dcp-hero-card-hd { display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.dcp-hero-card-icon {
  width: 42px; height: 42px;
  background: var(--dcp-gold);
  border-radius: var(--dcp-radius-md);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.25rem; flex-shrink: 0;
}
.dcp-hero-card-title { font-family: var(--dcp-font-display); font-weight: 800; color: #fff; font-size: .95rem; }
.dcp-hero-card-sub   { font-size: .75rem; color: rgba(255,255,255,.6); margin-top: 2px; }
.dcp-hero-pills { display: flex; flex-wrap: wrap; gap: .45rem; }
.dcp-hero-pill {
  background: rgba(255,255,255,.16);
  border-radius: var(--dcp-radius-full);
  padding: 4px 13px;
  font-family: var(--dcp-font-display);
  font-size: .78rem;
  font-weight: 700;
  color: rgba(255,255,255,.88);
}
.dcp-mini-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.dcp-mini-card {
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--dcp-radius-lg);
  padding: .9rem;
  text-align: center;
}
.dcp-mini-icon  { font-size: 1.5rem; display: block; margin-bottom: .3rem; }
.dcp-mini-label { font-family: var(--dcp-font-display); font-weight: 800; font-size: .78rem; color: rgba(255,255,255,.88); }

/* Wave */
.dcp-wave { line-height: 0; overflow: hidden; }
.dcp-wave svg { display: block; width: 100%; }

/* =====================================================
   FEATURES STRIP
   ===================================================== */
.dcp-features { background: var(--dcp-blue-pale); padding: 3rem 0; }
.dcp-features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1.25rem;
}
.dcp-feat {
  background: #fff;
  border-radius: var(--dcp-radius-lg);
  padding: 1.4rem 1.2rem;
  text-align: center;
  box-shadow: var(--dcp-shadow-sm);
  border: 1px solid var(--dcp-blue-light);
  transition: var(--dcp-transition);
}
.dcp-feat:hover { transform: translateY(-4px); box-shadow: var(--dcp-shadow-md); border-color: var(--dcp-blue-bright); }
.dcp-feat-icon { font-size: 2rem; margin-bottom: .7rem; display: block; }
.dcp-feat h3 { font-family: var(--dcp-font-display); font-size: .95rem; font-weight: 800; color: var(--dcp-blue-deep); margin-bottom: .3rem; }
.dcp-feat p  { font-size: .82rem; color: var(--dcp-gray-500); margin: 0; line-height: 1.5; }

/* =====================================================
   HOUSES
   ===================================================== */
.dcp-houses { padding: 5rem 0; background: var(--dcp-off-white); }
.dcp-houses-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.4rem;
  margin-bottom: 3rem;
}
.dcp-house {
  background: #fff;
  border-radius: var(--dcp-radius-xl);
  overflow: hidden;
  box-shadow: var(--dcp-shadow-sm);
  border: 1px solid var(--dcp-blue-light);
  transition: var(--dcp-transition);
}
.dcp-house:hover { transform: translateY(-5px); box-shadow: var(--dcp-shadow-md); }
.dcp-house-top {
  height: 110px;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.dcp-house-top::before {
  content: ''; position: absolute;
  top: -30px; right: -30px;
  width: 100px; height: 100px;
  border-radius: 50%; background: rgba(255,255,255,.08);
}
.dcp-house-initial {
  font-family: var(--dcp-font-display);
  font-size: 3.5rem; font-weight: 900;
  color: rgba(255,255,255,.22);
  position: absolute; bottom: 6px; right: 16px; line-height: 1;
}
.dcp-house-d .dcp-house-top { background: linear-gradient(135deg,#1a3a6b,#2d5fa0); }
.dcp-house-f .dcp-house-top { background: linear-gradient(135deg,#14532d,#16a34a); }
.dcp-house-j .dcp-house-top { background: linear-gradient(135deg,#7f1d1d,#dc2626); }
.dcp-house-t .dcp-house-top { background: linear-gradient(135deg,#581c87,#9333ea); }
.dcp-house-body { padding: 1.3rem; }
.dcp-house-name { font-family: var(--dcp-font-display); font-size: 1.12rem; font-weight: 900; color: var(--dcp-blue-deep); margin-bottom: .5rem; }
.dcp-house-swatch { height: 5px; border-radius: var(--dcp-radius-full); margin-bottom: .85rem; }
.dcp-house-d .dcp-house-swatch { background: linear-gradient(90deg,#1a3a6b,#3b82f6); }
.dcp-house-f .dcp-house-swatch { background: linear-gradient(90deg,#14532d,#22c55e); }
.dcp-house-j .dcp-house-swatch { background: linear-gradient(90deg,#7f1d1d,#f87171); }
.dcp-house-t .dcp-house-swatch { background: linear-gradient(90deg,#581c87,#c084fc); }
.dcp-house-desc { font-size: .84rem; color: var(--dcp-gray-500); line-height: 1.6; margin-bottom: .85rem; }
.dcp-virtues { display: flex; flex-wrap: wrap; gap: .4rem; }
.dcp-vp { font-size: .72rem; font-family: var(--dcp-font-display); font-weight: 800; padding: 3px 10px; border-radius: var(--dcp-radius-full); }
.dcp-house-d .dcp-vp { background: var(--dcp-blue-light); color: var(--dcp-blue-mid); }
.dcp-house-f .dcp-vp { background: #dcfce7; color: #166534; }
.dcp-house-j .dcp-vp { background: #fee2e2; color: #991b1b; }
.dcp-house-t .dcp-vp { background: #f3e8ff; color: #6b21a8; }
/* Leaderboard */
.dcp-lb {
  background: #fff;
  border-radius: var(--dcp-radius-xl);
  padding: 2rem;
  box-shadow: var(--dcp-shadow-sm);
  border: 1px solid var(--dcp-blue-light);
  max-width: 700px; margin: 0 auto;
}
.dcp-lb h3 { font-family: var(--dcp-font-display); font-size: 1.05rem; font-weight: 900; color: var(--dcp-blue-deep); margin-bottom: .35rem; }
.dcp-lb-note { font-size: .8rem; color: var(--dcp-gray-500); margin-bottom: 1.4rem; }
.dcp-lb-row { display: grid; grid-template-columns: 120px 1fr 40px; align-items: center; gap: .75rem; margin-bottom: .9rem; }
.dcp-lb-name { font-family: var(--dcp-font-display); font-weight: 700; font-size: .88rem; color: var(--dcp-gray-700); }
.dcp-lb-track { height: 11px; background: var(--dcp-gray-100); border-radius: var(--dcp-radius-full); overflow: hidden; }
.dcp-lb-bar { height: 100%; border-radius: var(--dcp-radius-full); width: 0; transition: width 1.3s cubic-bezier(.4,0,.2,1); }
.dcp-lb-bar-d { background: linear-gradient(90deg,#1a3a6b,#3b82f6); }
.dcp-lb-bar-f { background: linear-gradient(90deg,#14532d,#22c55e); }
.dcp-lb-bar-j { background: linear-gradient(90deg,#7f1d1d,#f87171); }
.dcp-lb-bar-t { background: linear-gradient(90deg,#581c87,#c084fc); }
.dcp-lb-pts { font-family: var(--dcp-font-display); font-weight: 800; font-size: .82rem; color: var(--dcp-gray-500); text-align: right; }

/* =====================================================
   NEWS & EVENTS
   ===================================================== */
.dcp-news { padding: 5rem 0; background: #fff; }
.dcp-news-hd {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 2.5rem; flex-wrap: wrap; gap: 1rem;
}
.dcp-news-hd h2 { font-family: var(--dcp-font-display); font-size: clamp(1.7rem,3vw,2.4rem); font-weight: 900; color: var(--dcp-blue-deep); margin-bottom: .3rem; }
.dcp-news-hd p  { color: var(--dcp-gray-500); font-size: .92rem; margin: 0; }
.dcp-news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.4rem; margin-bottom: 2.5rem;
}
.dcp-nc {
  background: #fff;
  border: 1px solid var(--dcp-blue-light);
  border-radius: var(--dcp-radius-xl);
  overflow: hidden;
  transition: var(--dcp-transition);
  display: flex; flex-direction: column;
}
.dcp-nc:hover { transform: translateY(-4px); box-shadow: var(--dcp-shadow-md); border-color: var(--dcp-blue-bright); }
.dcp-nc-img { height: 190px; overflow: hidden; background: linear-gradient(135deg,var(--dcp-blue-light),var(--dcp-blue-pale)); display: flex; align-items: center; justify-content: center; font-size: 2.8rem; }
.dcp-nc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.dcp-nc:hover .dcp-nc-img img { transform: scale(1.05); }
.dcp-nc-body { padding: 1.3rem; flex: 1; display: flex; flex-direction: column; }
.dcp-nc-meta { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; flex-wrap: wrap; }
.dcp-nc-date { font-size: .75rem; color: var(--dcp-gray-500); }
.dcp-nc-cat  { font-size: .7rem; font-family: var(--dcp-font-display); font-weight: 800; background: var(--dcp-blue-light); color: var(--dcp-blue-mid); padding: 2px 10px; border-radius: var(--dcp-radius-full); }
.dcp-nc-title { font-family: var(--dcp-font-display); font-size: 1rem; font-weight: 800; color: var(--dcp-blue-deep); line-height: 1.3; margin-bottom: .5rem; flex: 1; }
.dcp-nc-title a { color: inherit; text-decoration: none; }
.dcp-nc-title a:hover { color: var(--dcp-blue-mid); }
.dcp-nc-exc  { font-size: .84rem; color: var(--dcp-gray-500); line-height: 1.6; margin-bottom: .7rem; }
.dcp-nc-more { font-family: var(--dcp-font-display); font-weight: 700; font-size: .83rem; color: var(--dcp-blue-mid); text-decoration: none; }
.dcp-nc-more:hover { color: var(--dcp-blue-deep); }
/* Events strip */
.dcp-events-strip { background: var(--dcp-blue-pale); border-radius: var(--dcp-radius-xl); padding: 2rem; }
.dcp-events-strip h3 { font-family: var(--dcp-font-display); font-size: 1.05rem; font-weight: 900; color: var(--dcp-blue-deep); margin-bottom: 1.2rem; }
.dcp-ev-list { display: flex; flex-direction: column; gap: .8rem; }
.dcp-ev {
  display: flex; align-items: flex-start; gap: 1rem;
  background: #fff; border-radius: var(--dcp-radius-md);
  padding: .85rem 1rem;
  border: 1px solid var(--dcp-blue-light);
  transition: var(--dcp-transition);
}
.dcp-ev:hover { border-color: var(--dcp-blue-bright); box-shadow: var(--dcp-shadow-sm); }
.dcp-ev-date { background: var(--dcp-blue-mid); color: #fff; border-radius: 10px; padding: 5px 10px; text-align: center; min-width: 50px; flex-shrink: 0; }
.dcp-ev-month { display: block; font-size: .6rem; text-transform: uppercase; letter-spacing: .06em; opacity: .8; }
.dcp-ev-day   { display: block; font-family: var(--dcp-font-display); font-size: 1.3rem; font-weight: 900; line-height: 1.1; }
.dcp-ev-info strong { display: block; font-family: var(--dcp-font-display); font-weight: 700; font-size: .9rem; color: var(--dcp-blue-deep); margin-bottom: 2px; }
.dcp-ev-info span   { font-size: .8rem; color: var(--dcp-gray-500); }

/* =====================================================
   GALLERY
   ===================================================== */
.dcp-gallery { padding: 5rem 0; background: var(--dcp-gray-100); }
.dcp-gal-filters { display: flex; flex-wrap: wrap; gap: .55rem; justify-content: center; margin-bottom: 2rem; }
.dcp-gf {
  font-family: var(--dcp-font-display); font-weight: 700; font-size: .83rem;
  padding: .5rem 1.2rem; border-radius: var(--dcp-radius-full);
  border: 2px solid var(--dcp-blue-light); background: #fff; color: var(--dcp-gray-500);
  cursor: pointer; transition: var(--dcp-transition);
}
.dcp-gf:hover { border-color: var(--dcp-blue-bright); color: var(--dcp-blue-mid); }
.dcp-gf.active { background: var(--dcp-blue-mid); border-color: var(--dcp-blue-mid); color: #fff; }
.dcp-gal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 1rem; margin-bottom: 2rem;
}
.dcp-gi { border-radius: var(--dcp-radius-md); overflow: hidden; position: relative; aspect-ratio: 4/3; cursor: zoom-in; background: linear-gradient(135deg,var(--dcp-blue-light),#c7d2fe); transition: var(--dcp-transition); }
.dcp-gi.hidden { display: none; }
.dcp-gi img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; display: block; }
.dcp-gi:hover img { transform: scale(1.06); }
.dcp-gi-ov {
  position: absolute; inset: 0;
  background: linear-gradient(to top,rgba(26,58,107,.85) 0%,transparent 55%);
  opacity: 0; transition: opacity .3s;
  display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
  padding: 12px; color: #fff; text-align: center;
}
.dcp-gi:hover .dcp-gi-ov { opacity: 1; }
.dcp-gi-ov p { font-size: .8rem; line-height: 1.3; margin: 0; }
.dcp-gi-zoom { font-size: 1.5rem; margin-bottom: 3px; display: block; }
.dcp-ph {
  width: 100%; height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 5px; padding: 1rem; text-align: center;
}
.dcp-ph-icon { font-size: 2rem; display: block; }
.dcp-ph p    { font-size: .78rem; font-weight: 700; color: var(--dcp-blue-deep); line-height: 1.3; margin: 0; }
.dcp-ph small{ font-size: .68rem; color: var(--dcp-gray-500); }
.dcp-gal-cta { text-align: center; margin-top: .5rem; }
.dcp-gal-note{ margin-top: .7rem; font-size: .84rem; color: var(--dcp-gray-500); }
.dcp-gal-note a { color: var(--dcp-blue-mid); }
/* Lightbox */
.dcp-lightbox {
  display: none; position: fixed; inset: 0;
  background: rgba(0,0,0,.93); z-index: 99999;
  align-items: center; justify-content: center;
}
.dcp-lightbox.open { display: flex; }
.dcp-lb-inner { text-align: center; max-width: 90vw; max-height: 90vh; }
.dcp-lb-inner img { max-width: 100%; max-height: 80vh; object-fit: contain; border-radius: 10px; }
.dcp-lb-inner p { color: rgba(255,255,255,.75); font-size: .88rem; margin-top: .7rem; }
.dcp-lb-close { position: fixed; top: 1.5rem; right: 1.5rem; background: none; border: none; color: #fff; font-size: 2rem; cursor: pointer; opacity: .7; line-height: 1; }
.dcp-lb-close:hover { opacity: 1; }
.dcp-lb-prev, .dcp-lb-next {
  position: fixed; top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2);
  color: #fff; font-size: 2rem; width: 48px; height: 48px;
  border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: var(--dcp-transition); line-height: 1;
}
.dcp-lb-prev { left: 1.5rem; }
.dcp-lb-next { right: 1.5rem; }
.dcp-lb-prev:hover, .dcp-lb-next:hover { background: rgba(255,255,255,.22); }

/* =====================================================
   ADMISSIONS
   ===================================================== */
.dcp-admissions { padding: 5rem 0; background: #fff; }
.dcp-adm-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem; align-items: start;
}
.dcp-steps { list-style: none; display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1.5rem; }
.dcp-step  { display: flex; align-items: flex-start; gap: 1rem; }
.dcp-step-num {
  width: 34px; height: 34px;
  background: linear-gradient(135deg,var(--dcp-blue-mid),var(--dcp-blue-deep));
  color: #fff; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--dcp-font-display); font-weight: 900; font-size: .9rem; flex-shrink: 0;
}
.dcp-step-text strong { display: block; font-family: var(--dcp-font-display); font-weight: 800; color: var(--dcp-blue-deep); font-size: .93rem; margin-bottom: 2px; }
.dcp-step-text span   { font-size: .83rem; color: var(--dcp-gray-500); line-height: 1.55; }
/* Age calc */
.dcp-age-calc { background: var(--dcp-blue-pale); border: 1px solid var(--dcp-blue-light); border-radius: var(--dcp-radius-lg); padding: 1.2rem; margin: 1.4rem 0; }
.dcp-age-calc h4 { font-family: var(--dcp-font-display); font-size: .93rem; font-weight: 800; color: var(--dcp-blue-deep); margin-bottom: .75rem; }
.dcp-calc-row { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.dcp-calc-row label { font-size: .83rem; color: var(--dcp-gray-500); white-space: nowrap; }
.dcp-calc-row input[type=date] { padding: .55rem .75rem; border-radius: var(--dcp-radius-md); border: 1.5px solid var(--dcp-blue-light); font-size: .9rem; color: var(--dcp-gray-700); background: #fff; flex: 1; min-width: 140px; }
.dcp-calc-row input[type=date]:focus { outline: none; border-color: var(--dcp-blue-mid); }
.dcp-calc-result { display: none; margin-top: .75rem; padding: .75rem 1rem; background: #fff; border-radius: var(--dcp-radius-md); border-left: 4px solid var(--dcp-blue-mid); font-family: var(--dcp-font-display); font-weight: 700; font-size: .92rem; color: var(--dcp-blue-deep); }
.dcp-adm-btns { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 1.4rem; }
/* Form card */
.dcp-form-card {
  background: linear-gradient(135deg,var(--dcp-blue-deep) 0%,var(--dcp-blue-mid) 100%);
  border-radius: var(--dcp-radius-xl); padding: 2.2rem;
  color: #fff; position: relative; overflow: hidden;
  box-shadow: var(--dcp-shadow-lg);
}
.dcp-form-card::before { content:''; position:absolute; top:-50px; right:-50px; width:180px; height:180px; border-radius:50%; background:rgba(255,255,255,.06); pointer-events:none; }
.dcp-fprogress { height: 4px; background: rgba(255,255,255,.15); border-radius: var(--dcp-radius-full); margin-bottom: .9rem; overflow: hidden; }
.dcp-fprogress-bar { height: 100%; background: var(--dcp-gold); border-radius: var(--dcp-radius-full); transition: width .4s ease; width: 33%; }
.dcp-fstep-ind { display: flex; align-items: center; gap: .5rem; margin-bottom: 1.2rem; }
.dcp-fsi { font-family: var(--dcp-font-display); font-weight: 700; font-size: .76rem; color: rgba(255,255,255,.4); transition: color .3s; }
.dcp-fsi.active { color: var(--dcp-gold); }
.dcp-fsi.done   { color: rgba(255,255,255,.7); }
.dcp-fsi-div    { color: rgba(255,255,255,.22); font-size: .78rem; }
.dcp-form-title { font-family: var(--dcp-font-display); font-size: 1.25rem; font-weight: 900; color: #fff; margin-bottom: .35rem; }
.dcp-form-sub   { font-size: .84rem; color: rgba(255,255,255,.68); margin-bottom: 1.4rem; }
.dcp-form-msg   { display: none; padding: .75rem 1rem; border-radius: var(--dcp-radius-md); margin-bottom: 1rem; font-family: var(--dcp-font-display); font-weight: 700; font-size: .88rem; }
.dcp-fg { margin-bottom: .9rem; }
.dcp-fg label { display: block; font-family: var(--dcp-font-display); font-weight: 700; font-size: .77rem; color: rgba(255,255,255,.82); margin-bottom: .35rem; }
.dcp-fg input, .dcp-fg select, .dcp-fg textarea {
  width: 100%; padding: .7rem 1rem; border-radius: var(--dcp-radius-md);
  border: 1.5px solid rgba(255,255,255,.22); background: rgba(255,255,255,.10);
  color: #fff; font-family: var(--dcp-font-body); font-size: .92rem;
  transition: border-color .2s;
}
.dcp-fg input::placeholder { color: rgba(255,255,255,.4); }
.dcp-fg input:focus, .dcp-fg select:focus { outline: none; border-color: var(--dcp-gold); background: rgba(255,255,255,.15); }
.dcp-fg select option { background: var(--dcp-blue-deep); color: #fff; }
.dcp-fg textarea { resize: vertical; min-height: 75px; }
.dcp-form-2col { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.dcp-review-box { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: var(--dcp-radius-md); padding: 1rem; margin-bottom: 1rem; }
.dcp-review-box h4 { font-family: var(--dcp-font-display); font-size: .86rem; font-weight: 800; color: rgba(255,255,255,.88); margin-bottom: .75rem; }
.dcp-rv-row { display: flex; justify-content: space-between; padding: .28rem 0; border-bottom: 1px solid rgba(255,255,255,.07); font-size: .82rem; }
.dcp-rv-row:last-child { border-bottom: none; }
.dcp-rv-row span  { color: rgba(255,255,255,.55); }
.dcp-rv-row strong{ color: rgba(255,255,255,.88); text-align: right; max-width: 58%; }
.dcp-fbtns { display: flex; gap: .6rem; margin-top: .5rem; }
.dcp-fbtn-back {
  flex: 1; background: rgba(255,255,255,.10); color: rgba(255,255,255,.85);
  border: 1.5px solid rgba(255,255,255,.25); border-radius: var(--dcp-radius-full);
  padding: .75rem; font-family: var(--dcp-font-display); font-weight: 700; font-size: .88rem;
  cursor: pointer; transition: var(--dcp-transition);
}
.dcp-fbtn-back:hover { background: rgba(255,255,255,.18); }
.dcp-fbtn-next {
  flex: 2; background: var(--dcp-gold); color: var(--dcp-blue-deep);
  border: none; border-radius: var(--dcp-radius-full);
  padding: .75rem; font-family: var(--dcp-font-display); font-weight: 800; font-size: .9rem;
  cursor: pointer; transition: var(--dcp-transition);
}
.dcp-fbtn-next:hover { background: #d97706; }

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media(max-width:1024px) {
  .dcp-hero-inner { grid-template-columns: 1fr; }
  .dcp-hero-visual { display: none; }
  .dcp-adm-inner { grid-template-columns: 1fr; gap: 2.5rem; }
}
@media(max-width:768px) {
  .dcp-news-hd { flex-direction: column; align-items: flex-start; }
  .dcp-hero-stats { gap: 1.2rem; }
}
@media(max-width:600px) {
  .dcp-houses-grid { grid-template-columns: 1fr 1fr; }
  .dcp-gal-grid    { grid-template-columns: repeat(2,1fr); }
  .dcp-lb-row      { grid-template-columns: 90px 1fr 34px; }
  .dcp-form-2col   { grid-template-columns: 1fr; }
}
@media(max-width:420px) {
  .dcp-houses-grid { grid-template-columns: 1fr; }
}
