/*
Theme Name:   G Planet Child
Description:  G Planet Child Theme — Premium Editorial Redesign for Cream Magazine Pro
Template:     cream-magazine-pro
Version:      1.0.0
Text Domain:  gplanet-child
*/

/*
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  IMPORTANT BEFORE ACTIVATING
  Template: must match your parent theme
  folder name exactly (check /wp-content/themes/).
  Most likely: cream-magazine-pro
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400;1,700&family=Outfit:wght@300;400;500;600&display=swap');

/* ══════════════════════════════════════
   RESET — neutralise CMP theme bleed
   Applied to our own containers only,
   not sitewide (avoids breaking CMP widgets).
══════════════════════════════════════ */
#gp-homepage ul,
#gp-homepage ol,
#gp-single ul,
#gp-single ol,
.gp-hdr-inner ul,
.gp-hdr-inner ol,
.site-footer ul,
.site-footer ol {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
}
#gp-homepage li,
#gp-single li,
.gp-hdr-inner li,
.site-footer li {
    list-style: none !important;
    list-style-type: none !important;
}
#gp-homepage li::before,
#gp-homepage li::marker,
#gp-single li::before,
#gp-single li::marker,
.gp-hdr-inner li::before,
.gp-hdr-inner li::marker,
.site-footer li::before,
.site-footer li::marker {
    display: none !important;
    content: '' !important;
}
/* Remove CMP's default link underlines inside our containers */
#gp-homepage a,
#gp-single a,
.site-header a,
.site-footer a {
    text-decoration: none;
}
/* Remove CMP bottom-border on headings inside our sections */
#gp-homepage h1,
#gp-homepage h2,
#gp-homepage h3,
#gp-homepage h4,
#gp-single h1,
#gp-single h2,
#gp-single h3 {
    border-bottom: none !important;
    padding-bottom: 0 !important;
}


/* ══════════════════════════════════════
   DESIGN TOKENS
══════════════════════════════════════ */
:root {
    --gp-ink:        #0e0d0b;
    --gp-ink-70:     rgba(14,13,11,.70);
    --gp-ink-45:     rgba(14,13,11,.45);
    --gp-ink-08:     rgba(14,13,11,.08);
    --gp-cream:      #f8f5f0;
    --gp-warm:       #f2ece1;
    --gp-white:      #ffffff;
    --gp-border:     #e5ddd1;
    --gp-border-lt:  #ede8df;
    --gp-terra:      #b84e28;
    --gp-terra-dk:   #953d1e;
    --gp-aegean:     #15405c;
    --gp-gold:       #bf9038;
    --gp-serif:      'Cormorant Garamond', Georgia, serif;
    --gp-sans:       'Outfit', system-ui, -apple-system, sans-serif;
    --gp-radius:     10px;
    --gp-radius-sm:  6px;
    --gp-shadow:     0 1px 4px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.07);
    --gp-shadow-md:  0 4px 8px rgba(0,0,0,.06), 0 12px 40px rgba(0,0,0,.11);
    --gp-s1: 8px; --gp-s2: 16px; --gp-s3: 24px;
    --gp-s4: 32px; --gp-s5: 40px; --gp-s6: 56px;
    --gp-s7: 72px; --gp-s8: 96px;
    --gp-pad: clamp(16px, 4vw, 40px);
    --gp-max: 1240px;
}


/* ══════════════════════════════════════
   GLOBAL BASE
══════════════════════════════════════ */
body {
    font-family: var(--gp-sans) !important;
    background-color: var(--gp-cream) !important;
    color: var(--gp-ink);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--gp-serif);
}

img { max-width: 100%; height: auto; }

a { text-decoration: none; }


/* ══════════════════════════════════════
   LAYOUT UTILITIES
══════════════════════════════════════ */
.gp-wrap {
    max-width: var(--gp-max);
    margin: 0 auto;
    padding: 0 var(--gp-pad);
}

.gp-sec        { padding: var(--gp-s8) 0; }
.gp-sec-sm     { padding: var(--gp-s6) 0; }
.gp-sec-white  { background: var(--gp-white); }
.gp-sec-warm   { background: var(--gp-warm); }

.gp-sec-hd {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: var(--gp-s5);
    gap: var(--gp-s3);
    flex-wrap: wrap;
}

.gp-kicker {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--gp-terra);
    margin-bottom: 7px;
}

.gp-h2 {
    font-family: var(--gp-serif);
    font-size: clamp(22px, 2.8vw, 34px);
    font-weight: 700;
    line-height: 1.15;
    color: var(--gp-ink);
}
.gp-h2 em { font-style: italic; }

.gp-see-all {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--gp-aegean);
    border-bottom: 1px solid transparent;
    padding-bottom: 1px;
    transition: color .18s, border-color .18s, gap .18s;
    white-space: nowrap;
    flex-shrink: 0;
}
.gp-see-all:hover {
    color: var(--gp-terra);
    border-color: var(--gp-terra);
    gap: 9px;
}
.gp-see-all svg {
    width: 12px;
    height: 12px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2.5;
}


/* ══════════════════════════════════════
   GLOBAL BUTTON RESET
   CMP and many WP themes apply orange/primary
   colour to all button elements. Reset within
   our containers only.
══════════════════════════════════════ */
#site-header button,
#site-header input[type="submit"],
#gp-homepage button,
#gp-single button {
    /* Remove CMP button defaults — each component re-applies its own style */
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    text-transform: none;
    letter-spacing: normal;
    font-family: var(--gp-sans);
}
/* Restore specific button styles immediately after the reset */
#site-header .gp-search-pill {
    background: var(--gp-warm) !important;
    border: 1px solid var(--gp-border) !important;
    border-radius: 24px !important;
    color: var(--gp-ink-45) !important;
    padding: 8px 16px !important;
}
#site-header .gp-ham-btn {
    background: transparent !important;
    border: none !important;
    padding: 10px !important;
}

/* ══════════════════════════════════════
   TICKER
══════════════════════════════════════ */
.gp-ticker {
    background: var(--gp-aegean);
    overflow: hidden;
    padding: 8px 0;
    position: relative;
    z-index: 201;
}
.gp-ticker-track {
    display: flex;
    white-space: nowrap;
    animation: gp-ticker 36s linear infinite;
}
.gp-ticker-track:hover { animation-play-state: paused; }
.gp-tick {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: rgba(255,255,255,.75);
    font-family: var(--gp-sans);
    font-size: 11.5px;
    letter-spacing: .05em;
    padding: 0 48px;
}
.gp-tick-dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--gp-gold);
    flex-shrink: 0;
}
@keyframes gp-ticker { to { transform: translateX(-50%); } }


/* ══════════════════════════════════════
   HEADER — CMP .site-header / #masthead
══════════════════════════════════════ */
.site-header,
#masthead {
    background: rgba(248,245,240,.96) !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--gp-border) !important;
    transition: box-shadow .25s ease;
}
.site-header.scrolled {
    box-shadow: 0 2px 20px rgba(0,0,0,.08) !important;
}

/* Logo — correct aspect ratio.
   wp_get_attachment_image() adds width/height HTML attributes
   at the natural image size. The !important rules below override them. */
.site-header .custom-logo,
.site-header .site-logo img,
.site-header .custom-logo-link img,
.site-header .site-branding img,
#masthead .custom-logo,
#masthead .site-logo img,
#masthead img.custom-logo,
.gp-hdr-logo img,
.gp-logo-img {
    height: 44px !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    display: block !important;
    object-fit: contain !important;
    background: transparent !important;
    /* Override HTML width/height attributes via aspect-ratio */
    aspect-ratio: auto !important;
}
.site-header .custom-logo-link,
.site-header .site-logo,
.site-header .site-branding,
#masthead .custom-logo-link,
#masthead .site-logo {
    display: flex !important;
    align-items: center !important;
    background: transparent !important;
    overflow: visible !important;
    line-height: 1 !important;
}

/* Navigation */
.main-navigation a,
.site-header .main-navigation a {
    font-family: var(--gp-sans);
    font-size: 13px;
    font-weight: 500;
    transition: color .18s, background .18s;
}
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
    color: var(--gp-terra) !important;
}


/* ══════════════════════════════════════
   HEADER INNER LAYOUT
   (.gp-hdr-* classes used by our header.php)
══════════════════════════════════════ */
.gp-hdr-inner {
    max-width: var(--gp-max);
    margin: 0 auto;
    padding: 0 var(--gp-pad);
    height: 68px;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0;
    flex-wrap: nowrap !important;
}

/* Logo */
.gp-hdr-logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    margin-right: clamp(16px, 3vw, 40px);
    background: transparent;
    overflow: visible;
    line-height: 1;
}
.gp-logo-img {
    height: 44px !important;
    width: auto !important;
    max-width: none !important;
    display: block !important;
    object-fit: contain !important;
    background: transparent !important;
}
.gp-logo-text {
    font-family: var(--gp-serif);
    font-size: 24px;
    font-weight: 700;
    color: var(--gp-ink);
}

/* Desktop nav — force flex display so CMP cannot override */
.gp-hdr-nav {
    flex: 1;
    display: flex !important;
    align-items: center;
    overflow: visible;
}

/* ── Complete list reset inside header ──────────────────────
   Uses #site-header as ancestor for maximum specificity.
   Covers every list WordPress or CMP might inject. */
#site-header .gp-hdr-nav ul,
#site-header .gp-hdr-nav ol,
#site-header .gp-hdr-nav li,
.gp-hdr-nav ul,
.gp-hdr-nav ol,
.gp-hdr-nav li {
    list-style: none !important;
    list-style-type: none !important;
    list-style-image: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
}
#site-header .gp-hdr-nav li::before,
#site-header .gp-hdr-nav li::marker,
.gp-hdr-nav li::before,
.gp-hdr-nav li::marker {
    display: none !important;
    content: '' !important;
}

.gp-nav-menu {
    display: flex !important;
    align-items: center;
    gap: 2px;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-wrap: nowrap;
}
.gp-nav-menu li { position: relative; }
.gp-nav-menu > li > a {
    display: block !important;
    font-family: var(--gp-sans) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--gp-ink-70) !important;
    padding: 8px 12px !important;
    border-radius: var(--gp-radius-sm);
    transition: color .18s, background .18s;
    white-space: nowrap;
    text-decoration: none !important;
    border: none !important;
    background: transparent !important;
}
.gp-nav-menu > li > a:hover,
.gp-nav-menu > li.current-menu-item > a,
.gp-nav-menu > li.current_page_item > a,
.gp-nav-menu > li.current-menu-ancestor > a {
    color: var(--gp-terra) !important;
    background: rgba(184,78,40,.08) !important;
}
/* Sub-menu */
.gp-nav-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--gp-white);
    border: 1px solid var(--gp-border);
    border-radius: var(--gp-radius-sm);
    padding: 8px 0;
    min-width: 200px;
    box-shadow: var(--gp-shadow-md);
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .18s, transform .18s, visibility .18s;
    z-index: 100;
}
.gp-nav-menu li:hover > .sub-menu,
.gp-nav-menu li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.gp-nav-menu .sub-menu a {
    display: block;
    font-family: var(--gp-sans);
    font-size: 13px;
    color: var(--gp-ink-70);
    padding: 8px 16px;
    transition: color .18s, background .18s;
}
.gp-nav-menu .sub-menu a:hover { color: var(--gp-terra); background: var(--gp-ink-08); }

/* Header actions */
.gp-hdr-actions {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 8px;
    margin-left: auto;
    flex-shrink: 0;
}

/* Search pill — warm/cream pill, NOT orange */
.gp-search-pill {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px;
    background: var(--gp-warm) !important;
    background-color: var(--gp-warm) !important;
    border: 1px solid var(--gp-border) !important;
    border-radius: 24px !important;
    padding: 8px 16px !important;
    font-family: var(--gp-sans) !important;
    font-size: 12.5px !important;
    color: var(--gp-ink-45) !important;
    cursor: pointer;
    transition: border-color .18s, color .18s;
    white-space: nowrap;
    min-height: 36px;
    /* Explicitly zero out any CMP button defaults */
    outline: none;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}
.gp-search-pill:hover,
.gp-search-pill:focus {
    border-color: var(--gp-aegean) !important;
    color: var(--gp-aegean) !important;
    background: var(--gp-warm) !important;
}
.gp-search-pill svg {
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    flex-shrink: 0;
}

/* Hamburger — hidden on desktop, no background */
.gp-ham-btn {
    display: none !important;   /* overridden to flex at mobile breakpoint below */
    flex-direction: column;
    gap: 5px;
    padding: 10px;
    border-radius: var(--gp-radius-sm);
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    color: var(--gp-ink);
}
.gp-ham-btn span {
    display: block;
    width: 22px;
    height: 1.5px;
    background: var(--gp-ink) !important;
    border-radius: 2px;
    transition: transform .25s, opacity .25s;
}

/* ── SEARCH OVERLAY ── */
.gp-search-overlay {
    position: fixed;
    inset: 0;
    z-index: 500;
    background: rgba(14,13,11,.82);
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(4px);
}
.gp-search-overlay[hidden] { display: none; }
.gp-search-overlay-inner {
    background: var(--gp-white);
    border-radius: var(--gp-radius);
    padding: 32px;
    width: min(520px, 90vw);
    position: relative;
}
.gp-search-close {
    position: absolute;
    top: 12px;
    right: 14px;
    font-size: 20px;
    color: var(--gp-ink-45);
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
    line-height: 1;
    transition: color .18s;
}
.gp-search-close:hover { color: var(--gp-terra); }
/* WordPress search form inside overlay */
.gp-search-overlay .search-form {
    display: flex;
    gap: 10px;
    margin-top: 8px;
}
.gp-search-overlay .search-field {
    flex: 1;
    padding: 11px 16px;
    border: 1.5px solid var(--gp-border);
    border-radius: var(--gp-radius-sm);
    font-family: var(--gp-sans);
    font-size: 15px;
    outline: none;
    transition: border-color .18s;
}
.gp-search-overlay .search-field:focus { border-color: var(--gp-aegean); }
.gp-search-overlay .search-submit {
    padding: 11px 20px;
    background: var(--gp-terra);
    color: #fff;
    border: none;
    border-radius: var(--gp-radius-sm);
    font-family: var(--gp-sans);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background .18s;
    min-height: 44px;
}
.gp-search-overlay .search-submit:hover { background: var(--gp-terra-dk); }

/* ── MOBILE NAV ── */
.gp-mob-nav {
    position: fixed;
    inset: 0;
    z-index: 300;
    background: var(--gp-cream);
    display: none;                  /* hidden by default — JS sets display:flex on open */
    flex-direction: column;
    padding: 28px var(--gp-pad) 48px;
    transform: translateX(100%);
    transition: transform .3s cubic-bezier(.4,0,.2,1);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.gp-mob-nav.gp-mob-open { transform: none; }
.gp-mob-nav-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--gp-border);
}
.gp-mob-close {
    font-size: 22px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--gp-radius-sm);
    background: var(--gp-warm);
    color: var(--gp-ink);
    border: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.gp-mob-menu-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.gp-mob-menu-list li {
    list-style: none !important;
    list-style-type: none !important;
    border-bottom: 1px solid var(--gp-border-lt);
}
.gp-mob-menu-list li::before,
.gp-mob-menu-list li::marker { display: none !important; content: '' !important; }
.gp-mob-menu-list li:last-child { border-bottom: none; }
.gp-mob-menu-list a {
    display: flex;
    align-items: center;
    font-family: var(--gp-serif);
    font-size: 30px;
    font-weight: 700;
    color: var(--gp-ink);
    padding: 12px 0;
    min-height: 52px;
    transition: color .18s;
    -webkit-tap-highlight-color: transparent;
    text-decoration: none;
}
.gp-mob-menu-list a:hover,
.gp-mob-menu-list .current-menu-item > a { color: var(--gp-terra); }
.gp-mob-menu-list .sub-menu { display: none !important; }


/* ══════════════════════════════════════
   FOOTER GRID LAYOUT
   (used by footer.php)
══════════════════════════════════════ */
.gp-ftr-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: clamp(28px, 4vw, 52px);
    padding: 68px 0 52px;
    border-bottom: 1px solid rgba(255,255,255,.07);
}
.gp-ftr-brand {}
.gp-ftr-site-name {
    font-family: var(--gp-serif);
    font-size: 22px;
    font-weight: 700;
    color: rgba(255,255,255,.8);
    margin-bottom: 12px;
}
.gp-ftr-tagline {
    font-size: 13px;
    line-height: 1.75;
    color: rgba(255,255,255,.42);
    max-width: 255px;
}
.gp-ftr-col {}
.gp-ftr-col-h {
    font-family: var(--gp-sans) !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,.3) !important;
    margin-bottom: 16px !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
}
/* wp_list_categories output — reset all list styling in footer */
.gp-ftr-col ul,
.gp-ftr-col ol,
.gp-ftr-col .cat-item,
.gp-ftr-links,
.gp-ftr-links li {
    list-style: none !important;
    list-style-type: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.gp-ftr-col li::before,
.gp-ftr-col li::marker,
.gp-ftr-links li::before,
.gp-ftr-links li::marker { display: none !important; content: '' !important; }
.gp-ftr-col .cat-item { margin-bottom: 10px !important; }
.gp-ftr-links li { margin-bottom: 10px !important; }
.gp-ftr-links a,
.gp-ftr-col .cat-item a {
    font-size: 13.5px;
    color: rgba(255,255,255,.6);
    transition: color .18s;
}
.gp-ftr-links a:hover,
.gp-ftr-col .cat-item a:hover { color: var(--gp-gold); }

@media (max-width: 900px) {
    .gp-ftr-grid { grid-template-columns: 1fr 1fr; }
    .gp-hdr-nav  { display: none !important; }
    .gp-search-pill { display: none !important; }
    .gp-ham-btn  { display: flex !important; }
}
@media (max-width: 640px) {
    .gp-ftr-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════
   SUPPRESS RESIDUAL CMP ELEMENTS
   Belt-and-suspenders: hide anything
   from CMP's header/footer that may
   leak through despite our overrides.
══════════════════════════════════════ */

/* CMP's logo/branding area above nav */
.cream-magazine-pro-header,
.cream-magazine-header,
.header-top-section,
.header-advertisement-wrap,
.site-branding-wrap,
#masthead .site-branding,
#masthead .header-wrap,
.header-image-wrap {
    display: none !important;
}

/* CMP's original nav bar (the dark secondary bar) */
.cream-magazine-pro-navigation,
.cream-magazine-navigation,
.header-navigation-wrap,
.site-navigation-wrap,
.navigation-wrap,
#site-navigation:not(#gp-primary-nav),
.main-navigation:not(#gp-primary-nav) {
    display: none !important;
}

/* ── Override CMP parent theme's global ul/li rules ───────────
   CMP (and most WP themes) apply list-style:disc to all ul.
   We counter this specifically inside our header and homepage
   containers using the highest practical specificity. */
#site-header ul,
#site-header ol,
#site-header li,
#gp-homepage ul,
#gp-homepage ol,
#gp-homepage li,
#gp-single ul:not(.entry-content ul),
.gp-mob-nav ul,
.gp-mob-nav li,
.site-footer ul,
.site-footer ol,
.site-footer li {
    list-style: none !important;
    list-style-type: none !important;
    list-style-image: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}
#site-header li::before,
#site-header li::marker,
#gp-homepage li::before,
#gp-homepage li::marker,
.gp-mob-nav li::before,
.gp-mob-nav li::marker,
.site-footer li::before,
.site-footer li::marker {
    display: none !important;
    content: '' !important;
}

/* CMP's original footer widget areas */
.cream-magazine-pro-footer-widgets,
.cream-magazine-footer-widgets,
.footer-widgets-area,
.footer-top-area,
.footer-widget-area {
    display: none !important;
}

/* CMP breadcrumb */
.cream-magazine-pro-breadcrumb:not(.gp-breadcrumb),
.cream-magazine-breadcrumb:not(.gp-breadcrumb),
.breadcrumb-wrap:not(.gp-breadcrumb) {
    display: none !important;
}

/* CMP front-page sections */
.cream-magazine-pro-frontpage-section,
.cream-magazine-frontpage-section,
.frontpage-sections-wrap,
.banner-section-wrap,
.home-sections-wrap {
    display: none !important;
}

/* CMP's front-page sections (banners, news widgets) —
   hidden globally because front-page.php replaces them */
.cream-magazine-pro-frontpage-section,
.cream-magazine-frontpage-section,
.frontpage-sections-wrap,
.banner-section-wrap,
.home-sections-wrap {
    display: none !important;
}
.gp-hero {
    position: relative;
    min-height: 88vh;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}

/* Featured image hero */
.gp-hero-img-wrap {
    position: absolute;
    inset: 0;
}
.gp-hero-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* CSS fallback scene (shown when no featured image) */
.gp-hero-scene { position: absolute; inset: 0; }
.gp-hero-sky {
    position: absolute; inset: 0;
    background: linear-gradient(180deg,
        #0b1d2e 0%, #152c44 15%, #1a4868 30%,
        #24698a 48%, #388da4 62%,
        #d4b462 78%, #e68c3c 90%, #c05426 100%);
}
.gp-hero-glow {
    position: absolute; inset: 0;
    background: radial-gradient(ellipse 52% 38% at 64% 28%, rgba(238,176,56,.24) 0%, transparent 64%);
}
.gp-hero-ridge {
    position: absolute; bottom: 28%; left: 0; right: 0; height: 38%;
    background: rgba(10,18,28,.87);
    clip-path: polygon(0 100%,0 58%,4% 42%,9% 56%,15% 26%,21% 46%,27% 14%,33% 38%,39% 6%,45% 32%,51% 10%,57% 34%,63% 2%,69% 26%,75% 8%,81% 28%,86% 12%,92% 30%,96% 18%,100% 34%,100% 100%);
}
.gp-hero-sea {
    position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
    background: linear-gradient(to bottom, rgba(14,40,62,.58), rgba(6,16,28,.94));
    clip-path: polygon(0 32%,7% 14%,16% 24%,26% 10%,36% 20%,46% 6%,56% 18%,66% 4%,76% 16%,86% 6%,94% 18%,100% 10%,100% 100%,0 100%);
}
.gp-hero-fade {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(6,14,24,.88) 0%, rgba(6,14,24,.22) 46%, transparent 72%);
}

.gp-hero-body {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--gp-max);
    margin: 0 auto;
    padding: 0 var(--gp-pad) clamp(56px, 8vw, 88px);
}
.gp-hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--gp-gold);
    font-family: var(--gp-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    margin-bottom: 18px;
}
.gp-hero-kicker-bar { width: 24px; height: 1px; background: var(--gp-gold); }
.gp-hero-h1 {
    font-family: var(--gp-serif);
    font-size: clamp(36px, 6vw, 76px);
    font-weight: 700;
    line-height: 1.04;
    color: #fff;
    max-width: 740px;
    margin-bottom: 20px;
}
.gp-hero-h1 a { color: #fff; }
.gp-hero-h1 a:hover { color: var(--gp-gold); }
.gp-hero-h1 em { font-style: italic; color: var(--gp-gold); }
.gp-hero-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 18px;
    color: rgba(255,255,255,.6);
    font-family: var(--gp-sans);
    font-size: 13.5px;
    margin-bottom: 34px;
}
.gp-hero-tag {
    background: var(--gp-terra);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 3px;
}
.gp-hero-sep { opacity: .4; }
.gp-hero-btns {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}


/* ══════════════════════════════════════
   BUTTONS
══════════════════════════════════════ */
.gp-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: var(--gp-terra);
    color: #fff;
    font-family: var(--gp-sans);
    font-size: 13px;
    font-weight: 600;
    padding: 13px 26px;
    border-radius: var(--gp-radius-sm);
    border: none;
    cursor: pointer;
    transition: background .2s, transform .2s;
    min-height: 44px;
}
.gp-btn-primary:hover { background: var(--gp-terra-dk); transform: translateY(-1px); color: #fff; }
.gp-btn-primary svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2.5; }


/* ══════════════════════════════════════
   CATEGORY RIBBON
══════════════════════════════════════ */
.gp-cat-ribbon {
    background: var(--gp-white);
    border-bottom: 1px solid var(--gp-border);
}
.gp-cat-ribbon-inner {
    max-width: var(--gp-max);
    margin: 0 auto;
    padding: 0 var(--gp-pad);
    display: flex;
    align-items: center;
    height: 54px;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.gp-cat-ribbon-inner::-webkit-scrollbar { display: none; }
.gp-cat-pill {
    flex-shrink: 0;
    font-family: var(--gp-sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: 7px 16px;
    border-radius: 24px;
    border: 1.5px solid var(--gp-border);
    color: var(--gp-ink-70);
    transition: all .18s;
    white-space: nowrap;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
}
.gp-cat-pill:hover,
.gp-cat-pill:focus {
    color: var(--gp-ink);
    border-color: var(--gp-ink-70);
}
.gp-cat-pill-all {
    background: var(--gp-terra);
    border-color: var(--gp-terra);
    color: #fff;
}


/* ══════════════════════════════════════
   ARTICLE CARDS
══════════════════════════════════════ */
.gp-card {
    background: var(--gp-white);
    border-radius: var(--gp-radius);
    overflow: hidden;
    box-shadow: var(--gp-shadow);
    display: flex;
    flex-direction: column;
    transition: transform .22s ease, box-shadow .22s ease;
    height: 100%;
}
.gp-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--gp-shadow-md);
}
.gp-card-link { display: block; }
.gp-card-img  { position: relative; overflow: hidden; }
.gp-card-img img {
    width: 100%;
    display: block;
    transition: transform .4s ease;
    object-fit: cover;
}
.gp-card:hover .gp-card-img img { transform: scale(1.03); }
.gp-card-img-fallback {
    width: 100%;
    background: linear-gradient(135deg, #173f5c 0%, #0c2336 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 160px;
}
.gp-card-img-fallback::after {
    content: '🗺️';
    font-size: 36px;
    opacity: .4;
    display: block;
}
.gp-card-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: rgba(14,13,11,.68);
    backdrop-filter: blur(4px);
    color: #fff;
    font-family: var(--gp-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .09em;
    text-transform: uppercase;
    padding: 4px 11px;
    border-radius: 4px;
}
.gp-card-body {
    padding: 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.gp-card-cat-link {
    display: inline-block;
    font-family: var(--gp-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gp-terra);
    margin-bottom: 6px;
}
.gp-card-title {
    font-family: var(--gp-serif);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--gp-ink);
    margin-bottom: 8px;
}
.gp-card-title a { color: var(--gp-ink); }
.gp-card-title a:hover { color: var(--gp-terra); }
.gp-card-title-lg { font-size: 24px; }
.gp-card-excerpt {
    font-family: var(--gp-sans);
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--gp-ink-70);
    flex: 1;
    margin-bottom: 16px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gp-card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 14px;
    border-top: 1px solid var(--gp-border-lt);
    font-family: var(--gp-sans);
    font-size: 12px;
    color: var(--gp-ink-45);
}
.gp-card-read {
    color: var(--gp-aegean);
    font-weight: 600;
    transition: color .18s;
}
.gp-card:hover .gp-card-read { color: var(--gp-terra); }


/* ══════════════════════════════════════
   GRID LAYOUTS
══════════════════════════════════════ */
.gp-g2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.gp-g3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gp-g4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

/* Featured asymmetric 2-pane */
.gp-g-feat {
    display: grid;
    grid-template-columns: 1.35fr 1fr;
    gap: 22px;
    align-items: start;
}
.gp-g-feat-stack {
    display: flex;
    flex-direction: column;
    gap: 22px;
}


/* ══════════════════════════════════════
   HORIZONTAL LIST ITEM (Tips/Recents)
══════════════════════════════════════ */
.gp-hitem {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid var(--gp-border-lt);
    color: var(--gp-ink);
    transition: opacity .18s;
}
.gp-hitem:hover { opacity: .72; }
.gp-hitem:last-child { border-bottom: none; }
.gp-hitem-img {
    width: 96px;
    height: 66px;
    border-radius: 7px;
    overflow: hidden;
    flex-shrink: 0;
}
.gp-hitem-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.gp-hitem-img-fallback {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #173f5c 0%, #0c2336 100%);
}
.gp-hitem-cat {
    font-family: var(--gp-sans);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gp-terra);
    margin-bottom: 4px;
}
.gp-hitem-title {
    font-family: var(--gp-serif);
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--gp-ink);
    margin-bottom: 4px;
}
.gp-hitem-date {
    font-family: var(--gp-sans);
    font-size: 11.5px;
    color: var(--gp-ink-45);
}


/* ══════════════════════════════════════
   DISCOVERY PANELS
══════════════════════════════════════ */
.gp-disc-panels {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(2, 220px);
    gap: 10px;
    border-radius: var(--gp-radius);
    overflow: hidden;
}
.gp-dp {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 28px 24px;
    overflow: hidden;
    min-height: 180px;
}
.gp-dp-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform .35s ease;
}
.gp-dp:hover .gp-dp-bg { transform: scale(1.04); }

/* Fallback gradient backgrounds per panel index */
.gp-dp-bg-1 { background-color: #162e48; background-image: linear-gradient(135deg,#162e48,#0a1c2e); }
.gp-dp-bg-2 { background-color: #3a2010; background-image: linear-gradient(135deg,#3a2010,#1e0e06); }
.gp-dp-bg-3 { background-color: #1a3a28; background-image: linear-gradient(135deg,#1a3a28,#0c1e16); }
.gp-dp-bg-4 { background-color: #3a1c48; background-image: linear-gradient(135deg,#3a1c48,#1a0a26); }
.gp-dp-bg-5 { background-color: #2a3e16; background-image: linear-gradient(135deg,#2a3e16,#141e08); }
.gp-dp-bg-6 { background-color: #1e1634; background-image: linear-gradient(135deg,#1e1634,#0e0a1a); }

.gp-dp-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.76) 0%, rgba(0,0,0,.2) 54%, rgba(0,0,0,.08) 100%);
    transition: background .28s;
}
.gp-dp:hover .gp-dp-overlay {
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.3) 54%, rgba(0,0,0,.12) 100%);
}
.gp-dp-content { position: relative; z-index: 1; }
.gp-dp-icon    { font-size: 24px; margin-bottom: 8px; display: block; }
.gp-dp-title   { font-family: var(--gp-serif); font-size: 21px; font-weight: 700; line-height: 1.2; color: #fff; margin-bottom: 5px; }
.gp-dp-sub     { font-family: var(--gp-sans); font-size: 12.5px; color: rgba(255,255,255,.62); line-height: 1.5; margin-bottom: 12px; }
.gp-dp-cta     {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--gp-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gp-gold);
    border-bottom: 1px solid rgba(191,144,56,.4);
    padding-bottom: 1px;
    transition: border-color .18s;
}
.gp-dp:hover .gp-dp-cta { border-color: var(--gp-gold); }

/* Panel spanning — use .gp-dp-1 / .gp-dp-5 classes for safety */
.gp-disc-panels .gp-dp-1 { grid-column: span 2; }
.gp-disc-panels .gp-dp-5 { grid-column: span 2; }
/* nth-child fallback for themes that don't pass classes */
.gp-disc-panels > a:nth-child(1),
.gp-disc-panels > a:first-child { grid-column: span 2; }
.gp-disc-panels > a:nth-child(5) { grid-column: span 2; }


/* ══════════════════════════════════════
   DESTINATIONS MOSAIC
══════════════════════════════════════ */
.gp-dest-mosaic {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 180px;
    gap: 10px;
}
.gp-dtile {
    border-radius: var(--gp-radius);
    position: relative;
    overflow: hidden;
    display: block;
}
.gp-dtile-img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform .38s ease;
}
.gp-dtile-img-fallback { background: var(--gp-warm); }
.gp-dtile:hover .gp-dtile-img { transform: scale(1.05); }
.gp-dtile-grad {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.7) 0%, rgba(0,0,0,.06) 56%, transparent);
}
.gp-dtile-info { position: absolute; bottom: 0; left: 0; right: 0; padding: 14px 13px; }
.gp-dtile-name { font-family: var(--gp-serif); font-size: 16px; font-weight: 700; color: #fff; line-height: 1.2; }
.gp-dtile-n    { font-family: var(--gp-sans); font-size: 10.5px; color: rgba(255,255,255,.62); margin-top: 2px; }
/* Mosaic column spans */
.gp-dtile:nth-child(1) { grid-column: span 4; grid-row: span 2; }
.gp-dtile:nth-child(2) { grid-column: span 3; }
.gp-dtile:nth-child(3) { grid-column: span 2; }
.gp-dtile:nth-child(4) { grid-column: span 3; }
.gp-dtile:nth-child(5) { grid-column: span 2; }
.gp-dtile:nth-child(6) { grid-column: span 3; }
.gp-dtile:nth-child(7) { grid-column: span 4; }


/* ══════════════════════════════════════
   CONTENT + SIDEBAR LAYOUT
══════════════════════════════════════ */
.gp-content-sidebar {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 52px;
    align-items: start;
}
.gp-main-col { min-width: 0; }


/* ══════════════════════════════════════
   COMPETITION BAND
══════════════════════════════════════ */
.gp-comp-band {
    background: linear-gradient(128deg, var(--gp-aegean) 0%, #0e2c42 100%);
    border-radius: var(--gp-radius);
    padding: clamp(36px, 5vw, 56px) clamp(28px, 5vw, 56px);
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--gp-s5);
    align-items: center;
    position: relative;
    overflow: hidden;
}
.gp-comp-band::before {
    content: '';
    position: absolute;
    right: -50px;
    top: -50px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: rgba(191,144,56,.1);
    pointer-events: none;
}
/* Widget title inside comp band becomes the eyebrow */
.gp-comp-eyebrow {
    font-family: var(--gp-sans) !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    letter-spacing: .17em !important;
    text-transform: uppercase !important;
    color: var(--gp-gold) !important;
    border-bottom: none !important;
    margin-bottom: 10px !important;
    padding: 0 !important;
    background: none !important;
}
.gp-comp-band .textwidget,
.gp-comp-band .custom-html-widget {
    color: rgba(255,255,255,.65);
    font-family: var(--gp-sans);
    font-size: 14px;
    line-height: 1.65;
}
.gp-comp-band .textwidget strong,
.gp-comp-band .custom-html-widget strong {
    display: block;
    font-family: var(--gp-serif);
    font-size: clamp(24px, 3vw, 40px);
    font-weight: 700;
    color: #fff;
    line-height: 1.15;
    margin-bottom: 10px;
}
.gp-comp-band .textwidget a,
.gp-comp-band .custom-html-widget a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: var(--gp-terra);
    color: #fff;
    font-family: var(--gp-sans);
    font-size: 13px;
    font-weight: 600;
    padding: 14px 28px;
    border-radius: var(--gp-radius-sm);
    white-space: nowrap;
    transition: background .2s, transform .2s;
    margin-top: 16px;
    min-height: 44px;
}
.gp-comp-band .textwidget a:hover,
.gp-comp-band .custom-html-widget a:hover {
    background: var(--gp-terra-dk);
    transform: translateY(-1px);
}


/* ══════════════════════════════════════
   NEWSLETTER BAND
══════════════════════════════════════ */
.gp-nl-band {
    background: var(--gp-ink);
    border-radius: var(--gp-radius);
    padding: clamp(40px, 6vw, 64px) clamp(28px, 6vw, 68px);
}
.gp-nl-band .widget-title,
.gp-nl-band .widgettitle {
    font-family: var(--gp-sans) !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    letter-spacing: .17em !important;
    text-transform: uppercase !important;
    color: var(--gp-gold) !important;
    border-bottom: none !important;
    margin-bottom: 10px !important;
    background: none !important;
}
.gp-nl-band .textwidget,
.gp-nl-band .custom-html-widget {
    color: rgba(255,255,255,.52);
    font-family: var(--gp-sans);
    font-size: 13.5px;
    line-height: 1.65;
}
.gp-nl-band .textwidget strong,
.gp-nl-band .custom-html-widget strong {
    display: block;
    font-family: var(--gp-serif);
    font-size: clamp(22px, 3vw, 36px);
    font-weight: 700;
    color: #fff;
    line-height: 1.15;
    margin-bottom: 8px;
}
/* Newsletter form elements from common email plugins */
.gp-nl-band input[type="email"],
.gp-nl-band input[type="text"] {
    padding: 12px 18px;
    border: 1.5px solid rgba(255,255,255,.1);
    border-radius: var(--gp-radius-sm);
    background: rgba(255,255,255,.06);
    color: #fff;
    font-family: var(--gp-sans);
    font-size: 13.5px;
    outline: none;
    transition: border-color .18s;
    min-height: 44px;
}
.gp-nl-band input[type="email"]:focus,
.gp-nl-band input[type="text"]:focus {
    border-color: var(--gp-gold);
}
.gp-nl-band input[type="email"]::placeholder,
.gp-nl-band input[type="text"]::placeholder {
    color: rgba(255,255,255,.32);
}
.gp-nl-band input[type="submit"],
.gp-nl-band button[type="submit"] {
    padding: 12px 22px;
    border-radius: var(--gp-radius-sm);
    background: var(--gp-terra);
    color: #fff;
    font-family: var(--gp-sans);
    font-size: 13px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    transition: background .18s;
    min-height: 44px;
}
.gp-nl-band input[type="submit"]:hover,
.gp-nl-band button[type="submit"]:hover {
    background: var(--gp-terra-dk);
}


/* ══════════════════════════════════════
   SIDEBAR WIDGETS — #secondary
   (mirrors CMP widget area selectors)
══════════════════════════════════════ */
#secondary,
.widget-area {
    background: transparent;
    border: none;
    padding: 0;
}

#secondary .widget,
.widget-area .widget {
    background: var(--gp-white);
    border: 1px solid var(--gp-border);
    border-radius: var(--gp-radius);
    padding: 24px;
    margin-bottom: 24px;
    box-shadow: var(--gp-shadow);
}

#secondary .widget-title,
#secondary .widgettitle,
.widget-area .widget-title,
.widget-area .widgettitle {
    font-family: var(--gp-sans) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: var(--gp-ink-45) !important;
    padding-bottom: 14px !important;
    margin-bottom: 16px !important;
    border-bottom: 1px solid var(--gp-border) !important;
    background: none !important;
}
#secondary .widget-title span,
#secondary .widgettitle span {
    background: none !important;
    padding: 0 !important;
    color: inherit !important;
}

/* Recent posts */
#secondary .widget_recent_entries ul { list-style: none; padding: 0; margin: 0; }
#secondary .widget_recent_entries li { padding: 10px 0; border-bottom: 1px solid var(--gp-border-lt); font-size: 14px; }
#secondary .widget_recent_entries li:last-child { border-bottom: none; padding-bottom: 0; }
#secondary .widget_recent_entries a { font-family: var(--gp-serif); font-size: 15px; font-weight: 600; color: var(--gp-ink); transition: color .18s; }
#secondary .widget_recent_entries a:hover { color: var(--gp-terra); }

/* Categories */
#secondary .widget_categories ul { list-style: none; padding: 0; margin: 0; }
#secondary .widget_categories li { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--gp-border-lt); font-size: 14px; }
#secondary .widget_categories li:last-child { border-bottom: none; }
#secondary .widget_categories a { color: var(--gp-ink); transition: color .18s; font-weight: 500; }
#secondary .widget_categories a:hover { color: var(--gp-terra); }

/* Search */
#secondary .widget_search .search-field { flex: 1; padding: 10px 14px; border: 1.5px solid var(--gp-border); border-radius: var(--gp-radius-sm); background: var(--gp-warm); font-family: var(--gp-sans); font-size: 13.5px; color: var(--gp-ink); outline: none; transition: border-color .18s; width: 100%; box-sizing: border-box; }
#secondary .widget_search .search-field:focus { border-color: var(--gp-aegean); }
#secondary .widget_search .search-submit { margin-top: 8px; padding: 10px 18px; background: var(--gp-aegean); color: #fff; border: none; border-radius: var(--gp-radius-sm); font-family: var(--gp-sans); font-size: 13px; font-weight: 600; cursor: pointer; transition: background .18s; width: 100%; }
#secondary .widget_search .search-submit:hover { background: var(--gp-terra); }

/* Images in widgets */
#secondary .widget img { max-width: 100%; border-radius: var(--gp-radius-sm); height: auto; display: block; }


/* ══════════════════════════════════════
   SPONSOR WIDGET AREAS
   ONLY applies to the GP: Sponsor areas —
   NOT to existing sidebar widgets.
══════════════════════════════════════ */
.gp-sponsor-area { margin-bottom: 24px; }

/* ══════════════════════════════════════
   FULL-WIDTH SPONSORS SECTION
   Renders existing sidebar widgets
   (your sponsor images) in a clean grid.
══════════════════════════════════════ */
.gp-sponsors-section {
    background: var(--gp-warm);
    padding: var(--gp-s6) 0;
    border-top: 1px solid var(--gp-border);
    border-bottom: 1px solid var(--gp-border);
}
.gp-sponsors-inner {
    max-width: var(--gp-max);
    margin: 0 auto;
    padding: 0 var(--gp-pad);
}
.gp-sponsors-label {
    display: block;
    font-family: var(--gp-sans);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--gp-ink-45);
    margin-bottom: 16px;
}
.gp-sponsors-section .widget {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.gp-sponsors-section .widget-title,
.gp-sponsors-section .widgettitle { display: none !important; }
.gp-sponsors-section img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--gp-radius-sm);
    transition: opacity .2s, transform .2s;
}
.gp-sponsors-section a:hover img { opacity: .88; transform: translateY(-2px); }
.gp-sponsors-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    align-items: center;
}
@media (max-width: 640px) {
    .gp-sponsors-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
}

/* Sidebar sponsor card */
.gp-sponsor-area-sidebar .widget {
    background: var(--gp-white) !important;
    border: 1px solid var(--gp-border) !important;
    border-radius: var(--gp-radius) !important;
    padding: 0 !important;
    overflow: hidden;
    box-shadow: var(--gp-shadow) !important;
}
.gp-sponsor-label {
    display: block;
    font-family: var(--gp-sans);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--gp-ink-45);
    padding: 12px 18px 0;
}
.gp-sponsor-area-sidebar .widget-title,
.gp-sponsor-area-sidebar .widgettitle {
    font-size: 11px !important;
    letter-spacing: .14em !important;
    color: var(--gp-terra) !important;
    border-bottom: none !important;
    padding: 8px 18px 4px !important;
    margin-bottom: 0 !important;
    text-transform: uppercase !important;
}
.gp-sponsor-area-sidebar .widget img { width: 100% !important; height: auto; border-radius: 0 !important; display: block; }
.gp-sponsor-area-sidebar .textwidget,
.gp-sponsor-area-sidebar .custom-html-widget { padding: 14px 18px 18px; font-size: 13px; line-height: 1.6; color: var(--gp-ink-70); }
.gp-sponsor-area-sidebar .textwidget a,
.gp-sponsor-area-sidebar .custom-html-widget a { display: inline-flex; align-items: center; gap: 5px; font-family: var(--gp-sans); font-size: 12px; font-weight: 600; color: var(--gp-aegean); padding: 8px 18px; border-radius: 24px; border: 1.5px solid var(--gp-border); margin-top: 10px; transition: border-color .18s, color .18s; }
.gp-sponsor-area-sidebar .textwidget a:hover,
.gp-sponsor-area-sidebar .custom-html-widget a:hover { color: var(--gp-terra); border-color: var(--gp-terra); }

/* Strip sponsor */
.gp-sponsor-area-strip {
    border-top: 1px solid var(--gp-border);
    border-bottom: 1px solid var(--gp-border);
    padding: 16px 0;
    margin: 40px 0;
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.gp-sponsor-area-strip .gp-sponsor-label {
    padding: 0;
    padding-right: 16px;
    border-right: 1px solid var(--gp-border);
    flex-shrink: 0;
    white-space: nowrap;
}
.gp-sponsor-area-strip .widget { background: transparent !important; border: none !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; margin-bottom: 0 !important; display: flex; align-items: center; gap: 16px; flex: 1; flex-wrap: wrap; }
.gp-sponsor-area-strip .widget-title,
.gp-sponsor-area-strip .widgettitle { display: none !important; }
.gp-sponsor-area-strip img { max-height: 40px !important; width: auto !important; border-radius: 6px !important; }
.gp-sponsor-area-strip .textwidget,
.gp-sponsor-area-strip .custom-html-widget { display: flex; align-items: center; gap: 16px; flex: 1; flex-wrap: wrap; }
.gp-sponsor-area-strip .textwidget a,
.gp-sponsor-area-strip .custom-html-widget a {
    display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600;
    color: var(--gp-aegean); padding: 7px 16px; border-radius: 24px; border: 1.5px solid var(--gp-border);
    margin-left: auto; white-space: nowrap; transition: border-color .18s, color .18s;
}
.gp-sponsor-area-strip .textwidget a:hover,
.gp-sponsor-area-strip .custom-html-widget a:hover { color: var(--gp-terra); border-color: var(--gp-terra); }
@media (max-width: 640px) {
    .gp-sponsor-area-strip .textwidget a,
    .gp-sponsor-area-strip .custom-html-widget a { margin-left: 0; white-space: normal; }
}

/* Inline sponsor */
.gp-sponsor-area-inline { margin: 40px 0; }
.gp-sponsor-area-inline .widget { background: var(--gp-white) !important; border: 1px solid var(--gp-border) !important; border-radius: var(--gp-radius) !important; padding: 18px 22px !important; box-shadow: none !important; margin-bottom: 0 !important; position: relative; }
.gp-sponsor-area-inline .gp-sponsor-label { position: absolute; top: -1px; left: 18px; transform: translateY(-50%); background: var(--gp-white); padding: 0 8px; pointer-events: none; }
.gp-sponsor-area-inline .widget-title,
.gp-sponsor-area-inline .widgettitle { display: none !important; }
.gp-sponsor-area-inline .textwidget,
.gp-sponsor-area-inline .custom-html-widget { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.gp-sponsor-area-inline img { height: 44px !important; width: auto !important; border-radius: 8px !important; flex-shrink: 0; }
.gp-sponsor-area-inline .textwidget a,
.gp-sponsor-area-inline .custom-html-widget a { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; color: var(--gp-aegean); padding: 8px 18px; border-radius: 24px; border: 1.5px solid var(--gp-border); flex-shrink: 0; transition: border-color .18s, color .18s; }
.gp-sponsor-area-inline .textwidget a:hover,
.gp-sponsor-area-inline .custom-html-widget a:hover { color: var(--gp-terra); border-color: var(--gp-terra); }
@media (max-width: 580px) {
    .gp-sponsor-area-inline .textwidget,
    .gp-sponsor-area-inline .custom-html-widget { flex-direction: column; align-items: flex-start; gap: 12px; }
}


/* ══════════════════════════════════════
   ARTICLE PAGE
══════════════════════════════════════ */

/* Hero */
.gp-art-hero {
    position: relative;
    min-height: clamp(50vh, 58vh, 62vh);
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}
.gp-art-hero-bg { position: absolute; inset: 0; }
.gp-art-hero-bg-fallback { position: absolute; inset: 0; }
.gp-art-hero-fade {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(6,14,24,.92) 0%, rgba(6,14,24,.35) 48%, rgba(6,14,24,.08) 100%);
}
.gp-art-hero-body {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--gp-max);
    margin: 0 auto;
    padding: 0 var(--gp-pad) clamp(44px, 5vw, 64px);
}

/* Breadcrumb */
.gp-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--gp-sans);
    font-size: 12px;
    color: rgba(255,255,255,.5);
    margin-bottom: 16px;
}
.gp-breadcrumb a { color: rgba(255,255,255,.5); transition: color .18s; }
.gp-breadcrumb a:hover { color: #fff; }
.gp-breadcrumb-sep { opacity: .4; }

/* Article kicker */
.gp-art-kicker-row {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--gp-sans);
    color: var(--gp-gold);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    margin-bottom: 16px;
}
.gp-art-kicker-bar { width: 22px; height: 1px; background: var(--gp-gold); }

/* Article H1 */
.gp-art-h1 {
    font-family: var(--gp-serif);
    font-weight: 700;
    color: #fff;
    font-size: clamp(28px, 4.5vw, 58px);
    line-height: 1.07;
    max-width: 820px;
    margin-bottom: 18px;
}

/* Entry meta */
.gp-entry-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    font-family: var(--gp-sans);
    font-size: 13px;
    color: rgba(255,255,255,.58);
}
.gp-entry-meta-dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,.3); }

/* Two-column article layout */
.gp-art-layout {
    display: grid;
    grid-template-columns: 1fr 248px;
    gap: 56px;
    align-items: start;
    padding: clamp(40px, 5vw, 56px) var(--gp-pad) 0;
}
.gp-entry-content-wrap { min-width: 0; padding-bottom: var(--gp-s8); }

/* Sticky TOC */
.gp-toc-sticky { position: sticky; top: 84px; }
.gp-toc-box {
    background: var(--gp-white);
    border: 1px solid var(--gp-border);
    border-radius: var(--gp-radius);
    padding: 22px;
    box-shadow: var(--gp-shadow);
}
.gp-toc-heading {
    font-family: var(--gp-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--gp-ink-45);
    margin-bottom: 14px;
}
.gp-toc-list { list-style: none; padding: 0; margin: 0; }
.gp-toc-list li { margin-bottom: 1px; }
.gp-toc-list a {
    display: block;
    font-family: var(--gp-sans);
    font-size: 13.5px;
    color: var(--gp-ink-70);
    padding: 6px 10px;
    border-radius: var(--gp-radius-sm);
    border-left: 2px solid transparent;
    line-height: 1.45;
    transition: color .18s, background .18s, border-color .18s;
}
.gp-toc-list a:hover,
.gp-toc-list a.gp-toc-on { color: var(--gp-terra); background: rgba(184,78,40,.06); border-left-color: var(--gp-terra); }
.gp-toc-list a.gp-toc-sub { padding-left: 20px; font-size: 13px; }

/* Reading typography — high specificity to beat CMP overrides */
#gp-single .entry-content p,
.single .entry-content p {
    font-family: var(--gp-sans) !important;
    font-size: clamp(15.5px, 2vw, 17px) !important;
    line-height: 1.84 !important;
    color: var(--gp-ink) !important;
    margin-bottom: 26px;
}
#gp-single .entry-content h2,
.single .entry-content h2 {
    font-family: var(--gp-serif) !important;
    font-size: clamp(22px, 3vw, 32px) !important;
    font-weight: 700 !important;
    color: var(--gp-ink) !important;
    margin: 48px 0 16px !important;
    line-height: 1.2 !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
}
#gp-single .entry-content h3,
.single .entry-content h3 {
    font-family: var(--gp-serif) !important;
    font-size: clamp(18px, 2.2vw, 22px) !important;
    font-weight: 700 !important;
    color: var(--gp-ink) !important;
    margin: 36px 0 12px !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
}
#gp-single .entry-content blockquote,
.single .entry-content blockquote {
    border-left: 3px solid var(--gp-terra) !important;
    padding: 18px 24px !important;
    margin: 36px 0 !important;
    background: rgba(184,78,40,.04) !important;
    border-radius: 0 var(--gp-radius-sm) var(--gp-radius-sm) 0 !important;
}
#gp-single .entry-content blockquote p,
.single .entry-content blockquote p {
    font-family: var(--gp-serif) !important;
    font-size: clamp(17px, 2.2vw, 21px) !important;
    font-style: italic !important;
    line-height: 1.58 !important;
    margin-bottom: 0 !important;
    color: var(--gp-ink) !important;
}
/* Reading width */
#gp-single .entry-content,
.single .entry-content {
    max-width: 720px;
}
@media (max-width: 640px) {
    #gp-single .entry-content,
    .single .entry-content { max-width: 100%; }
}

/* Share buttons */
.gp-share-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 20px 0;
    margin: 36px 0;
    border-top: 1px solid var(--gp-border);
    border-bottom: 1px solid var(--gp-border);
    font-family: var(--gp-sans);
}
.gp-share-label {
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gp-ink-45);
    margin-right: 4px;
}
.gp-share-btn {
    display: flex;
    align-items: center;
    gap: 7px;
    font-family: var(--gp-sans);
    font-size: 12.5px;
    font-weight: 500;
    padding: 9px 18px;
    border-radius: 24px;
    border: 1.5px solid var(--gp-border);
    color: var(--gp-ink-70);
    background: transparent;
    cursor: pointer;
    transition: all .18s;
    min-height: 44px;
}
.gp-share-btn:hover { border-color: currentColor; }
.gp-share-fb:hover { color: #1877f2; }
.gp-share-tw:hover { color: #1da1f2; }
.gp-share-cp:hover { color: var(--gp-terra); border-color: var(--gp-terra); }

/* Related posts */
.gp-related-sec { padding: 0 0 var(--gp-s8); }
.gp-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}


/* ══════════════════════════════════════
   AUTHOR BOX REMOVAL (CSS fallback)
══════════════════════════════════════ */
.cream-magazine-author-box,
.cmp-author-box,
.cmp-author-section,
.author-box,
.author-bio,
.author-info,
.author-section,
.post-author-section,
.entry-author-box,
.author-widget-section,
.author-description,
.about-author,
#author-info,
[class*="author-block"],
[class*="author-card"],
.widget_cream_magazine_pro_author_widget {
    display: none !important;
}


/* ══════════════════════════════════════
   FOOTER — CMP .site-footer / #colophon
══════════════════════════════════════ */
.site-footer,
#colophon {
    background: var(--gp-ink) !important;
    color: rgba(255,255,255,.55);
    border-top: none !important;
}
.site-footer .widget,
#colophon .widget {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.site-footer .widget-title,
.site-footer .widgettitle,
#colophon .widget-title,
#colophon .widgettitle {
    font-family: var(--gp-sans) !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,.3) !important;
    border-bottom: none !important;
    background: none !important;
}
.site-footer a,
#colophon a { color: rgba(255,255,255,.6); transition: color .18s; }
.site-footer a:hover,
#colophon a:hover { color: var(--gp-gold); text-decoration: none; }
.site-info {
    border-top: 1px solid rgba(255,255,255,.07);
    padding: 18px 0;
    font-size: 12px;
    color: rgba(255,255,255,.28);
}


/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media (max-width: 1080px) {
    .gp-dest-mosaic { grid-template-columns: repeat(6, 1fr); grid-auto-rows: 150px; }
    .gp-dtile:nth-child(n) { grid-column: auto; grid-row: auto; }
    .gp-dtile:nth-child(1) { grid-column: span 2; grid-row: span 2; }
    .gp-art-layout { grid-template-columns: 1fr 220px; gap: 40px; }
}

@media (max-width: 900px) {
    .gp-g-feat { grid-template-columns: 1fr; }
    .gp-g3 { grid-template-columns: 1fr 1fr; }
    .gp-g4 { grid-template-columns: 1fr 1fr; }
    .gp-disc-panels { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, 180px); }
    .gp-dp:nth-child(1) { grid-column: span 2; }
    .gp-dp:nth-child(5) { grid-column: span 1; }
    .gp-comp-band { grid-template-columns: 1fr; }
    .gp-content-sidebar { grid-template-columns: 1fr; }
    .gp-art-layout { grid-template-columns: 1fr; }
    .gp-toc-sticky { display: none; }
    .gp-related-grid { grid-template-columns: 1fr 1fr; }
    #secondary,
    .widget-area { margin-top: 40px; }
}

@media (max-width: 640px) {
    .gp-g2, .gp-g3, .gp-g4 { grid-template-columns: 1fr; }
    .gp-related-grid { grid-template-columns: 1fr; }
    .gp-dest-mosaic { grid-template-columns: 1fr 1fr; grid-auto-rows: 130px; }
    .gp-dtile:nth-child(n) { grid-column: auto; grid-row: auto; }
    .gp-dtile:nth-child(1) { grid-column: span 2; }
    .gp-disc-panels { grid-template-columns: 1fr; grid-template-rows: repeat(6, 160px); }
    .gp-dp:nth-child(n) { grid-column: span 1; }
    .gp-dp:nth-child(1) { grid-column: span 1; }
    .gp-comp-band { padding: 32px 24px; }
    .gp-hero { min-height: 80vh; }
    #secondary .widget,
    .widget-area .widget { margin-bottom: 16px; padding: 18px; }
}
