/*
Theme Name: Global Pathways
Theme URI: https://example.com/global-pathways
Author: Global Pathways
Author URI: https://example.com
Description: A professional, conversion-focused WordPress theme built for student consultancy, study-abroad, and visa/immigration advisory businesses. Includes Services, Destinations, and Testimonials post types, a departure-board style admissions process, boarding-pass style destination cards, a built-in consultation request form, and site-wide search that covers all content types. Upload the zip in Appearance > Themes > Add New > Upload Theme and activate — no page builder required.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: global-pathways
Tags: education, consulting, business, one-column, two-columns, right-sidebar, custom-menu, custom-logo, featured-images, threaded-comments, translation-ready

Global Pathways is a bespoke theme designed for study-abroad and student
consultancy websites. All design tokens (colors, type, spacing) are defined
below as CSS custom properties so the whole site can be re-themed from one
place.
*/

/* =========================================================
   1. DESIGN TOKENS
   ========================================================= */
:root{
  /* Colors */
  --gp-ink:        #1B2FC4;   /* royal blue - header/footer/nav/hero */
  --gp-ink-2:      #2C46E0;   /* lighter royal blue for gradients */
  --gp-ink-soft:   #4059EA;
  --gp-gold:       #FF6A52;   /* coral accent - CTAs, stamps, tickets */
  --gp-gold-dark:  #E14F36;
  --gp-teal:       #0B57C7;   /* secondary azure - links/tags/eyebrows */
  --gp-teal-light: #EAF1FE;
  --gp-paper:      #FFFFFF;   /* pure white page background */
  --gp-card:       #FFFFFF;
  --gp-text:       #1D2333;
  --gp-muted:      #667085;
  --gp-line:       #E4E7F2;
  --gp-success:    #2F9E52;
  --gp-card-shadow: 0 2px 14px rgba(27,47,196,0.07);
  --gp-section-tint: #F6F8FF;  /* whisper-light blue for section alternation on white */

  /* Type */
  --gp-font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --gp-font-body: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --gp-font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Layout */
  --gp-max: 1180px;
  --gp-radius: 14px;
  --gp-radius-sm: 8px;
  --gp-shadow: 0 10px 30px rgba(22,35,63,0.08);
  --gp-shadow-lg: 0 20px 50px rgba(22,35,63,0.16);
}

/* =========================================================
   2. BASE / RESET
   ========================================================= */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}
body{
  margin:0;
  font-family:var(--gp-font-body);
  color:var(--gp-text);
  background:var(--gp-paper);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--gp-teal); text-decoration:none; }
a:hover{ color:var(--gp-gold-dark); }
h1,h2,h3,h4,h5,h6{
  font-family:var(--gp-font-display);
  color:var(--gp-ink);
  line-height:1.15;
  margin:0 0 0.5em;
  font-weight:600;
}
h1{ font-size:clamp(2.1rem, 4vw, 3.4rem); }
h2{ font-size:clamp(1.7rem, 3vw, 2.4rem); }
h3{ font-size:1.35rem; }
p{ margin:0 0 1.1em; }
ul{ padding-left:1.2em; }
:focus-visible{ outline:3px solid var(--gp-gold); outline-offset:2px; }
.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }

.gp-container{ max-width:var(--gp-max); margin:0 auto; padding:0 24px; }
.gp-eyebrow{
  font-family:var(--gp-font-mono);
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.72rem;
  color:var(--gp-teal);
  font-weight:600;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
}
.gp-eyebrow::before{
  content:"";
  width:22px; height:1px;
  background:var(--gp-gold);
  display:inline-block;
}
.gp-section{ padding:88px 0; }
.gp-section-head{ max-width:640px; margin:0 0 48px; }
.gp-section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.gp-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--gp-font-body); font-weight:700; font-size:0.95rem;
  padding:14px 28px; border-radius:999px; border:2px solid transparent;
  cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  line-height:1;
}
.gp-btn-primary{ background:var(--gp-gold); color:var(--gp-ink); }
.gp-btn-primary:hover{ background:var(--gp-gold-dark); color:#fff; transform:translateY(-2px); box-shadow:var(--gp-shadow); }
.gp-btn-ghost{ background:transparent; border-color:rgba(255,255,255,0.5); color:#fff; }
.gp-btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,0.08); }
.gp-btn-outline{ background:transparent; border-color:var(--gp-ink); color:var(--gp-ink); }
.gp-btn-outline:hover{ background:var(--gp-ink); color:#fff; }

/* =========================================================
   3. SITE HEADER
   ========================================================= */
#gp-masthead{
  position:sticky; top:0; z-index:100;
  background:rgba(246,245,240,0.92);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--gp-line);
}
.gp-header-inner{ display:flex; align-items:center; justify-content:space-between; padding:16px 24px; gap:24px; }
.gp-brand{ display:flex; align-items:center; gap:12px; font-family:var(--gp-font-display); font-weight:700; font-size:1.35rem; color:var(--gp-ink); }
.gp-brand img{ max-height:44px; width:auto; }
.gp-brand .gp-mark{
  width:38px; height:38px; border-radius:50%; background:var(--gp-ink);
  color:var(--gp-gold); display:flex; align-items:center; justify-content:center;
  font-family:var(--gp-font-mono); font-size:0.8rem; font-weight:700;
}
#gp-primary-nav{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
#gp-primary-nav ul{ list-style:none; display:flex; align-items:center; gap:2px; margin:0; padding:0; }
#gp-primary-nav li{ position:relative; }
#gp-primary-nav a{
  display:block; padding:10px 14px; color:var(--gp-ink); font-weight:600; font-size:0.95rem; border-radius:8px;
}
#gp-primary-nav a:hover, #gp-primary-nav .current-menu-item > a{ background:var(--gp-teal-light); color:var(--gp-teal); }
#gp-primary-nav ul ul{
  display:none; position:absolute; top:100%; left:0; background:var(--gp-card); min-width:210px;
  flex-direction:column; box-shadow:var(--gp-shadow-lg); border-radius:10px; padding:8px; border:1px solid var(--gp-line);
}
#gp-primary-nav li:hover > ul{ display:flex; }
.gp-header-actions{ display:flex; align-items:center; gap:10px; }
.gp-icon-btn{
  width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:transparent; border:1px solid var(--gp-line); color:var(--gp-ink); cursor:pointer;
}
.gp-icon-btn:hover{ background:var(--gp-ink); color:#fff; border-color:var(--gp-ink); }
.gp-menu-toggle{ display:none; }

.gp-search-panel{
  position:fixed; inset:0; background:rgba(22,35,63,0.7); z-index:200;
  display:flex; align-items:flex-start; justify-content:center; padding-top:12vh;
  opacity:0; pointer-events:none; transition:opacity .2s ease;
}
.gp-search-panel.is-open{ opacity:1; pointer-events:all; }
.gp-search-box{ background:#fff; border-radius:var(--gp-radius); padding:28px; width:min(560px, 90vw); box-shadow:var(--gp-shadow-lg); }
.gp-search-box form{ display:flex; gap:10px; }
.gp-search-box input[type="search"]{
  flex:1; padding:14px 16px; border-radius:10px; border:1px solid var(--gp-line); font-size:1rem; font-family:var(--gp-font-body);
}
.gp-search-close{ margin-top:14px; background:none; border:none; color:var(--gp-muted); cursor:pointer; font-size:0.9rem; }

/* =========================================================
   4. HERO
   ========================================================= */
.gp-hero{
  position:relative; overflow:hidden;
  background:linear-gradient(160deg, var(--gp-ink) 0%, var(--gp-ink-2) 55%, var(--gp-teal) 130%);
  color:#fff; padding:96px 0 64px;
}
.gp-hero::before{
  content:""; position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(217,164,65,0.18), transparent 40%),
    repeating-linear-gradient(115deg, rgba(255,255,255,0.035) 0 2px, transparent 2px 90px);
  pointer-events:none;
}
.gp-hero-grid{ position:relative; display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center; }
.gp-hero-copy .gp-eyebrow{ color:var(--gp-gold); }
.gp-hero-copy .gp-eyebrow::before{ background:var(--gp-gold); }
.gp-hero h1{ color:#fff; }
.gp-hero h1 em{ font-style:italic; color:var(--gp-gold); }
.gp-hero-sub{ color:rgba(255,255,255,0.82); font-size:1.1rem; max-width:520px; }
.gp-hero-cta{ display:flex; gap:14px; margin-top:28px; flex-wrap:wrap; }

.gp-stat-strip{ display:flex; gap:36px; margin-top:48px; flex-wrap:wrap; }
.gp-stat{ font-family:var(--gp-font-mono); }
.gp-stat .num{ font-size:2rem; color:var(--gp-gold); font-weight:700; display:block; }
.gp-stat .label{ font-size:0.75rem; color:rgba(255,255,255,0.7); text-transform:uppercase; letter-spacing:0.08em; }

/* boarding pass card used in hero as visual anchor */
.gp-pass-card{
  background:#fff; color:var(--gp-ink); border-radius:16px; padding:0; box-shadow:var(--gp-shadow-lg);
  display:flex; position:relative; transform:rotate(2deg);
}
.gp-pass-main{ flex:1; padding:26px; }
.gp-pass-stub{
  width:96px; background:var(--gp-teal); color:#fff; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:8px; position:relative;
  border-left:2px dashed rgba(255,255,255,0.5);
}
.gp-pass-stub span{ writing-mode:vertical-rl; font-family:var(--gp-font-mono); letter-spacing:0.1em; font-size:0.85rem; }
.gp-pass-row{ display:flex; justify-content:space-between; margin-bottom:14px; font-family:var(--gp-font-mono); font-size:0.78rem; color:var(--gp-muted); text-transform:uppercase; letter-spacing:0.06em; }
.gp-pass-row strong{ display:block; font-family:var(--gp-font-body); font-size:1rem; color:var(--gp-ink); text-transform:none; letter-spacing:0; margin-top:2px; }
.gp-pass-divider{ border-top:2px dashed var(--gp-line); margin:14px 0; position:relative; }
.gp-pass-divider::before, .gp-pass-divider::after{
  content:""; position:absolute; top:-9px; width:18px; height:18px; border-radius:50%; background:var(--gp-paper);
}
.gp-pass-divider::before{ left:-26px; } .gp-pass-divider::after{ right:66px; }
.gp-pass-status{ display:inline-block; background:var(--gp-teal-light); color:var(--gp-teal); font-weight:700; font-size:0.75rem; padding:4px 10px; border-radius:6px; }

/* trust strip */
.gp-trust{ background:var(--gp-card); border-bottom:1px solid var(--gp-line); padding:20px 0; }
.gp-trust-row{ display:flex; align-items:center; gap:32px; justify-content:space-between; flex-wrap:wrap; }
.gp-trust-label{ font-family:var(--gp-font-mono); font-size:0.75rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--gp-muted); white-space:nowrap; }
.gp-trust-flags{ display:flex; gap:22px; flex-wrap:wrap; font-size:1.6rem; opacity:0.85; }

/* =========================================================
   5. SERVICE + DESTINATION "BOARDING PASS" CARDS
   ========================================================= */
.gp-grid{ display:grid; gap:26px; }
.gp-grid.cols-3{ grid-template-columns:repeat(3, 1fr); }
.gp-grid.cols-4{ grid-template-columns:repeat(4, 1fr); }

.gp-card{
  background:var(--gp-card); border:1px solid var(--gp-line); border-radius:var(--gp-radius);
  padding:28px; transition:transform .18s ease, box-shadow .18s ease; box-shadow:var(--gp-card-shadow);
}
.gp-card:hover{ transform:translateY(-4px); box-shadow:var(--gp-shadow); }
.gp-card .gp-card-icon{ font-size:1.8rem; margin-bottom:14px; display:inline-block; }
.gp-card h3{ margin-bottom:8px; }
.gp-card p{ color:var(--gp-muted); font-size:0.95rem; margin-bottom:0; }

.gp-ticket{
  background:var(--gp-card); border:1px solid var(--gp-line); border-radius:var(--gp-radius);
  display:flex; overflow:hidden; position:relative; box-shadow:var(--gp-card-shadow);
  transition:transform .18s ease, box-shadow .18s ease;
}
.gp-ticket:hover{ transform:translateY(-4px); box-shadow:var(--gp-shadow); }
.gp-ticket-body{ flex:1; padding:24px; }
.gp-ticket-top{ display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px; }
.gp-ticket-code{ font-family:var(--gp-font-mono); font-size:0.7rem; color:var(--gp-muted); text-transform:uppercase; letter-spacing:0.08em; }
.gp-ticket-flag{ font-size:1.6rem; }
.gp-ticket h3{ margin-bottom:4px; }
.gp-ticket-meta{ display:flex; gap:14px; margin-top:14px; font-family:var(--gp-font-mono); font-size:0.75rem; color:var(--gp-teal); flex-wrap:wrap; }
.gp-ticket-stub{
  width:64px; background:repeating-linear-gradient(135deg, var(--gp-ink), var(--gp-ink) 8px, var(--gp-ink-2) 8px, var(--gp-ink-2) 16px);
  border-left:2px dashed rgba(255,255,255,0.55); position:relative; flex-shrink:0;
}
.gp-ticket-stub::before, .gp-ticket-stub::after{
  content:""; position:absolute; left:-9px; width:18px; height:18px; border-radius:50%; background:var(--gp-paper);
}
.gp-ticket-stub::before{ top:-9px; } .gp-ticket-stub::after{ bottom:-9px; }

/* =========================================================
   6. DEPARTURE BOARD PROCESS STEPS
   ========================================================= */
.gp-board{ background:var(--gp-ink); border-radius:20px; padding:48px 36px; color:#fff; }
.gp-board-row{
  display:grid; grid-template-columns:60px 1.3fr 2fr 140px; gap:18px; align-items:center;
  padding:16px 8px; border-bottom:1px solid rgba(255,255,255,0.12); font-family:var(--gp-font-mono);
}
.gp-board-row:last-child{ border-bottom:none; }
.gp-board-row .gp-step-no{ color:var(--gp-gold); font-size:1.2rem; font-weight:700; }
.gp-board-row .gp-step-name{ font-family:var(--gp-font-body); font-weight:700; font-size:1.05rem; }
.gp-board-row .gp-step-desc{ color:rgba(255,255,255,0.72); font-family:var(--gp-font-body); font-size:0.9rem; }
.gp-board-row .gp-step-status{ text-align:right; font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gp-gold); }

/* =========================================================
   7. TESTIMONIALS ("APPROVED" stamp)
   ========================================================= */
.gp-testimonial{
  background:var(--gp-card); border:1px solid var(--gp-line); border-radius:var(--gp-radius);
  padding:30px; position:relative; box-shadow:var(--gp-card-shadow);
}
.gp-stamp{
  position:absolute; top:20px; right:20px; border:3px solid var(--gp-success); color:var(--gp-success);
  font-family:var(--gp-font-mono); font-weight:700; font-size:0.7rem; letter-spacing:0.1em;
  padding:5px 10px; border-radius:6px; transform:rotate(8deg); opacity:0.85;
}
.gp-testimonial p{ font-family:var(--gp-font-display); font-size:1.1rem; font-style:italic; color:var(--gp-ink); }
.gp-testimonial-author{ display:flex; align-items:center; gap:12px; margin-top:16px; }
.gp-testimonial-author img{ width:46px; height:46px; border-radius:50%; object-fit:cover; }
.gp-testimonial-author strong{ display:block; font-size:0.95rem; }
.gp-testimonial-author span{ color:var(--gp-muted); font-size:0.82rem; font-family:var(--gp-font-mono); }

/* =========================================================
   8. CTA BAND / FORM
   ========================================================= */
.gp-cta-band{ background:var(--gp-gold); padding:64px 0; }
.gp-cta-band-inner{ display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
.gp-cta-band h2{ margin-bottom:6px; }
.gp-cta-band p{ margin:0; color:rgba(22,35,63,0.75); }

.gp-form{ background:var(--gp-card); border:1px solid var(--gp-line); border-radius:var(--gp-radius); padding:32px; box-shadow:var(--gp-shadow); }
.gp-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.gp-form label{ display:block; font-size:0.82rem; font-weight:700; margin-bottom:6px; color:var(--gp-ink); }
.gp-form input, .gp-form select, .gp-form textarea{
  width:100%; padding:12px 14px; border-radius:8px; border:1px solid var(--gp-line); font-family:var(--gp-font-body); font-size:0.95rem; background:#fff;
}
.gp-form textarea{ min-height:110px; resize:vertical; }
.gp-form .gp-form-full{ grid-column:1 / -1; }
.gp-form-notice{ padding:12px 16px; border-radius:8px; margin-bottom:16px; font-size:0.9rem; }
.gp-form-notice.success{ background:#E7F3E8; color:var(--gp-success); }
.gp-form-notice.error{ background:#FBEAEA; color:#B3261E; }

/* =========================================================
   9. FOOTER
   ========================================================= */
#gp-colophon{ background:var(--gp-ink); color:rgba(255,255,255,0.82); padding:64px 0 24px; }
.gp-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; margin-bottom:40px; }
.gp-footer-grid h4{ color:#fff; font-family:var(--gp-font-body); font-size:0.85rem; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:16px; }
.gp-footer-grid ul{ list-style:none; padding:0; margin:0; }
.gp-footer-grid li{ margin-bottom:10px; }
.gp-footer-grid a{ color:rgba(255,255,255,0.72); }
.gp-footer-grid a:hover{ color:var(--gp-gold); }
.gp-footer-brand p{ color:rgba(255,255,255,0.65); font-size:0.92rem; max-width:320px; }
.gp-footer-bottom{ border-top:1px solid rgba(255,255,255,0.14); padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.82rem; color:rgba(255,255,255,0.55); }
.gp-social{ display:flex; gap:10px; }
.gp-social a{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,0.25); display:flex; align-items:center; justify-content:center; }
.gp-social a:hover{ background:var(--gp-gold); border-color:var(--gp-gold); color:var(--gp-ink); }

/* =========================================================
   10. GENERIC CONTENT / ARCHIVE / SEARCH / SIDEBAR
   ========================================================= */
.gp-page-header{ background:var(--gp-ink); color:#fff; padding:64px 0 44px; }
.gp-page-header h1{ color:#fff; margin-bottom:8px; }
.gp-breadcrumb{ font-family:var(--gp-font-mono); font-size:0.78rem; color:rgba(255,255,255,0.6); }
.gp-content-wrap{ display:grid; grid-template-columns:2fr 1fr; gap:48px; padding:64px 0; align-items:start; }
.gp-content-wrap.full{ grid-template-columns:1fr; }
.gp-entry{ background:var(--gp-card); border:1px solid var(--gp-line); border-radius:var(--gp-radius); padding:34px; margin-bottom:28px; }
.gp-entry h2 a{ color:var(--gp-ink); }
.gp-entry-meta{ font-family:var(--gp-font-mono); font-size:0.75rem; color:var(--gp-muted); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:10px; }
.gp-pagination{ display:flex; gap:8px; margin-top:20px; flex-wrap:wrap; }
.gp-pagination a, .gp-pagination span{ padding:8px 14px; border:1px solid var(--gp-line); border-radius:8px; font-family:var(--gp-font-mono); font-size:0.85rem; }
.gp-pagination .current{ background:var(--gp-ink); color:#fff; border-color:var(--gp-ink); }

.widget{ background:var(--gp-card); border:1px solid var(--gp-line); border-radius:var(--gp-radius); padding:24px; margin-bottom:24px; }
.widget-title{ font-family:var(--gp-font-display); font-size:1.1rem; margin-bottom:14px; color:var(--gp-ink); }
.widget ul{ list-style:none; padding:0; margin:0; }
.widget li{ padding:8px 0; border-bottom:1px solid var(--gp-line); font-size:0.92rem; }
.widget li:last-child{ border-bottom:none; }
.widget_search .search-field{ width:100%; padding:12px 14px; border-radius:8px; border:1px solid var(--gp-line); margin-bottom:8px; }
.widget_search .search-submit{ width:100%; }

.comment-list{ list-style:none; padding:0; }
.comment-body{ background:var(--gp-card); border:1px solid var(--gp-line); border-radius:var(--gp-radius); padding:22px; margin-bottom:16px; }

/* =========================================================
   11. RESPONSIVE
   ========================================================= */
@media (max-width: 960px){
  .gp-hero-grid{ grid-template-columns:1fr; }
  .gp-content-wrap{ grid-template-columns:1fr; }
  .gp-footer-grid{ grid-template-columns:1fr 1fr; }
  .gp-grid.cols-3, .gp-grid.cols-4{ grid-template-columns:1fr 1fr; }
  .gp-board-row{ grid-template-columns:40px 1fr; row-gap:4px; }
  .gp-board-row .gp-step-desc, .gp-board-row .gp-step-status{ grid-column:2; }
  .gp-pass-card{ transform:none; }
}
@media (max-width: 700px){
  #gp-primary-nav{
    position:fixed; inset:72px 0 0 0; background:var(--gp-paper); flex-direction:column; align-items:stretch;
    padding:24px; display:none; overflow:auto;
  }
  #gp-primary-nav.is-open{ display:flex; }
  #gp-primary-nav ul{ flex-direction:column; align-items:stretch; }
  #gp-primary-nav ul ul{ position:static; box-shadow:none; border:none; display:flex; }
  .gp-menu-toggle{ display:flex; }
  .gp-grid.cols-3, .gp-grid.cols-4{ grid-template-columns:1fr; }
  .gp-footer-grid{ grid-template-columns:1fr; }
  .gp-form-row{ grid-template-columns:1fr; }
  .gp-cta-band-inner{ flex-direction:column; text-align:center; }
}
