/*
Theme Name: Elvora Study Abroad
Description: Child theme of Twenty Twenty-Five powering the Elvora Study Abroad dynamic content architecture (Destinations, Universities, Courses, Scholarships, Blogs).
Template: twentytwentyfive
Version: 1.0.3
Text Domain: elvora
*/

:root{
  --elvora-navy-900:#0a1f33;
  --elvora-navy-700:#183b56;
  --elvora-navy-500:#3a5568;
  --elvora-gold:#d4a574;
  --elvora-gold-dark:#b8823f;
  --elvora-ink-soft:#5b6b78;
}

/* ---------- Layout helpers ---------- */
.elvora-section{ padding:64px 0; }
.elvora-section--tight{ padding:32px 0; }
.elvora-section-heading{ text-align:center; max-width:700px; margin:0 auto 40px; }
.elvora-section-heading .elvora-eyebrow{ display:inline-block; font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--elvora-gold-dark); background:rgba(212,165,116,0.12); padding:6px 14px; border-radius:999px; margin-bottom:14px; }
.elvora-section-heading h2{ font-size:clamp(1.6rem,3vw,2.25rem); color:var(--elvora-navy-900); margin:0 0 12px; line-height:1.2; }
.elvora-section-heading p{ color:var(--elvora-ink-soft); margin:0; }

/* ---------- Destinations grid (shortcode) ---------- */
.elvora-destinations-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:24px;
  margin:0;
  padding:0;
  list-style:none;
}
.elvora-destination-card{
  display:block;
  border-radius:18px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 4px 20px rgba(10,31,51,0.08);
  text-decoration:none;
  color:inherit;
  transition:transform .25s ease, box-shadow .25s ease;
}
.elvora-destination-card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(10,31,51,0.16); }
.elvora-destination-media{ height:150px; background-size:cover; background-position:center; }
.elvora-destination-media--fallback{
  display:flex; align-items:center; justify-content:center;
  font-size:54px; line-height:1;
  background:linear-gradient(120deg,var(--elvora-navy-900) 0%, var(--elvora-navy-700) 55%, var(--elvora-navy-500) 100%);
}
.elvora-destination-body{ padding:18px 20px 22px; }
.elvora-destination-body h3{ margin:0 0 4px; font-size:1.15rem; color:var(--elvora-navy-900); font-weight:700; }
.elvora-destination-body p{ margin:0 0 12px; color:var(--elvora-ink-soft); font-size:.88rem; }
.elvora-destination-cta{ font-weight:700; color:var(--elvora-gold-dark); font-size:.9rem; }
.elvora-destinations-empty{ text-align:center; color:var(--elvora-ink-soft); padding:40px 20px; background:#f6f4f0; border-radius:14px; }

/* ---------- Dynamic card grid ([elvora_grid] shortcode: Universities / Courses / Scholarships / Blog) ---------- */
.elvora-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:24px;
  margin:0;
  padding:0;
  list-style:none;
}
.elvora-grid-card{
  display:block;
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 4px 20px rgba(10,31,51,0.08);
  text-decoration:none;
  color:inherit;
  transition:transform .25s ease, box-shadow .25s ease;
}
.elvora-grid-card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(10,31,51,0.16); }
.elvora-grid-card-media{ height:190px; overflow:hidden; }
.elvora-grid-card-media img{ height:100%; width:100%; object-fit:cover; display:block; }
.elvora-grid-card-media--fallback{
  display:flex; align-items:center; justify-content:center; font-size:46px;
  background:linear-gradient(120deg,var(--elvora-navy-900) 0%, var(--elvora-navy-700) 55%, var(--elvora-navy-500) 100%);
}
.elvora-grid-card-body{ padding:18px 20px 22px; }
.elvora-grid-card-body h3{ margin:0 0 6px; font-size:1.1rem; color:var(--elvora-navy-900); font-weight:700; line-height:1.3; }
.elvora-grid-card-body p{ margin:0 0 14px; color:var(--elvora-ink-soft); font-size:.9rem; }
.elvora-grid-card-cta{ font-weight:700; color:var(--elvora-gold-dark); font-size:.9rem; }
.elvora-taxonomy-pill{
  display:inline-block; margin:0 0 10px; padding:4px 12px; border-radius:999px;
  background:rgba(24,59,86,0.08); color:var(--elvora-navy-700); font-size:.76rem; font-weight:600;
}

/* ---------- Hero ---------- */
.elvora-hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(120deg,var(--elvora-navy-900) 0%, var(--elvora-navy-700) 55%, var(--elvora-navy-500) 100%);
  color:#fff;
  padding:96px 32px;
}
/* Decorative background layer standing in for a photo: soft color glows
   plus a fine dot-grid texture, so the hero has depth even without a
   real photograph on file yet. Swap this out for background-image on
   .elvora-hero once real photography is supplied. */
.elvora-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(circle at 12% 15%, rgba(255,255,255,0.08) 0%, transparent 40%),
    radial-gradient(circle at 88% 12%, rgba(212,165,116,0.22) 0%, transparent 42%),
    radial-gradient(circle at 92% 85%, rgba(255,255,255,0.05) 0%, transparent 35%),
    radial-gradient(rgba(255,255,255,0.09) 1px, transparent 1px);
  background-size: 100% 100%, 100% 100%, 100% 100%, 28px 28px;
  pointer-events:none;
}
.elvora-hero-inner{ position:relative; z-index:1; max-width:1200px; margin:0 auto; }

/* ---------- Home page: pull the hero flush under the header ----------
   Twenty Twenty-Five's global spacing puts ~70px of top padding on the
   main content wrapper (fine for ordinary pages, but it left an
   oversized white gap above the hero band on the homepage). */
body.home main.wp-block-group > .wp-block-group.alignfull.has-global-padding{
  padding-top:0 !important;
}
body.home .entry-content.wp-block-post-content{
  margin-top:0 !important;
}
.elvora-hero .elvora-eyebrow{
  display:inline-flex; align-items:center; gap:8px; font-size:.8rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  background:rgba(255,255,255,0.12); padding:8px 16px; border-radius:999px; margin-bottom:22px;
}
.elvora-hero h1{ font-size:clamp(2rem,4.2vw,3.4rem); line-height:1.15; margin:0 0 20px; font-weight:800; }
.elvora-hero h1 .accent{ color:var(--elvora-gold); }
.elvora-hero p.elvora-hero-sub{ max-width:620px; font-size:1.05rem; color:rgba(255,255,255,0.85); margin:0 0 32px; }
.elvora-hero-stats{ display:flex; gap:40px; flex-wrap:wrap; margin-top:40px; }
.elvora-hero-stats div strong{ display:block; font-size:1.6rem; font-weight:800; }
.elvora-hero-stats div span{ font-size:.85rem; color:rgba(255,255,255,0.7); }
.elvora-hero-cta{
  display:inline-block; background:var(--elvora-gold); color:var(--elvora-navy-900); font-weight:700;
  padding:14px 30px; border-radius:10px; text-decoration:none; transition:background .2s ease;
}
.elvora-hero-cta:hover{ background:var(--elvora-gold-dark); color:#fff; }

/* ---------- Hero: two-column layout (headline+stats / search widget) ---------- */
.elvora-hero-flex{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:56px;
}
.elvora-hero-main{ flex:1 1 560px; min-width:0; }
.elvora-hero-search{ flex:0 0 380px; max-width:380px; width:100%; }

.elvora-search-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  background:#fff;
  border-radius:18px;
  padding:28px;
  box-shadow:0 20px 50px rgba(10,31,51,0.30);
}
.elvora-search-card select,
.elvora-search-card input[type="text"]{
  width:100%;
  box-sizing:border-box;
  padding:13px 14px;
  border:1px solid #e3e1dc;
  border-radius:10px;
  font-size:.95rem;
  font-family:inherit;
  color:var(--elvora-navy-900);
  background:#fbfaf8;
}
.elvora-search-card select:focus,
.elvora-search-card input[type="text"]:focus{
  outline:2px solid var(--elvora-gold);
  outline-offset:1px;
  background:#fff;
}
.elvora-search-submit{
  margin-top:2px;
  background:var(--elvora-gold);
  color:var(--elvora-navy-900);
  font-weight:700;
  font-size:1rem;
  border:none;
  padding:14px 20px;
  border-radius:10px;
  cursor:pointer;
  transition:background .2s ease;
}
.elvora-search-submit:hover{ background:var(--elvora-gold-dark); color:#fff; }

@media (max-width:900px){
  .elvora-hero-flex{ flex-direction:column; align-items:stretch; gap:32px; }
  .elvora-hero-search{ flex:1 1 auto; max-width:none; }
}

@media (max-width:781px){
  .elvora-section{ padding:44px 0; }
  .elvora-hero{ padding:56px 20px; }
  .elvora-hero-stats{ gap:24px; }
  .elvora-search-card{ padding:22px; }
}

/* ---------- Front page polish ---------- */
/* The static front page shows the hero itself as the headline, so we
   suppress the theme's default "Home" page-title heading only here. */
body.home .wp-block-post-title{ display:none; }
body.home article > .entry-header{ display:none; }

/* Section wrapper full-bleed background support (inline style bg-color on <section>) */
.elvora-section{ width:100%; }
.elvora-section > .elvora-section-heading,
.elvora-section > .elvora-destinations-grid,
.elvora-section > .elvora-card-grid,
.elvora-section > p{
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  padding-left:24px;
  padding-right:24px;
  box-sizing:border-box;
}

/* ---------- Full-bleed override ----------
   The block theme's "constrained" layout caps every direct child of
   .entry-content at the site's content width (~645px) and centers it,
   which was squeezing the hero/section bands into a narrow column with
   big white margins on desktop. These are meant to run edge-to-edge
   (their own inner wrappers, .elvora-hero-inner / the .elvora-section > *
   rules above, do the actual content centering), so we release them from
   that constraint here. */
.entry-content.is-layout-constrained > .elvora-hero,
.entry-content.is-layout-constrained > .elvora-section,
.is-layout-constrained > .elvora-hero,
.is-layout-constrained > .elvora-section{
  max-width:none !important;
  width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
