/* ==========================================================
   IPFEST 2027 — Grand theme (override layer)
   Load AFTER Homepage.css:
   <link href="static/css/grand-theme.css" rel="stylesheet">
   ========================================================== */

/* Custom fonts: put the files in static/fonts/  */
@font-face {
  font-family: "Dream Avenue";
  src: url("../fonts/Dream-Avenue.ttf") format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Safira March";
  src: url("../fonts/Safira-March.ttf") format("truetype");
  font-display: swap;
}

/* The old theme sets its variables on <body>, so we do the same */
body {
  --navy: #16213E;
  --ivory: #F8F5F2;
  --slate: #6C677D;
  --orange: #D97706;
  --gold: #E6C72A;

  --f-display: "Dream Avenue", "Playfair Display", serif;
  --f-title: "Safira March", "Playfair Display", serif;
  --f-serif: "Playfair Display", serif;
  --f-body: "Poppins", sans-serif;
  --f-script: "Great Vibes", cursive;

  /* Re-point the Bootstrap / dashboard variables that were purple */
  --bs-primary: #16213E;  --bs-primary-rgb: 22, 33, 62;
  --bs-secondary: #16213E; --bs-secondary-rgb: 22, 33, 62;
  --bs-dark: #16213E;     --bs-dark-rgb: 22, 33, 62;
  --bs-light: #F8F5F2;    --bs-light-rgb: 248, 245, 242;
  --bs-info: #D97706;     --bs-info-rgb: 217, 119, 6;
  --bs-danger: #D97706;   --bs-danger-rgb: 217, 119, 6;
  --bs-warning: #D97706;  --bs-warning-rgb: 217, 119, 6;
  --dashboard-surface: #F8F5F2;
  --dashboard-dark: #16213E;
  --dashboard-gradient-start: #16213E;
  --dashboard-gradient-stop: #6C677D;

  font-family: var(--f-body);
  font-weight: 400;
  background:
    radial-gradient(ellipse at 90% 0%, rgba(230, 199, 42, .14), transparent 45%),
    radial-gradient(ellipse at 0% 60%, rgba(217, 119, 6, .08), transparent 45%),
    #16213E;
  color: var(--navy);
}

/* ---------- Typography ---------- */
p, li, a, label, button, .btn, .dropdown-item { font-family: var(--f-body); font-weight: 400; }
h1, h2, h3 { font-family: var(--f-serif); }
h4, h5, h6 { font-family: var(--f-title); letter-spacing: .06em; font-weight: 400; }
.organized-title, .timeline-date { font-family: var(--f-title); }

/* Old inline colors → palette */
[style*="#E768A8"], [style*="#FF577F"] { color: var(--gold) !important; }
[style*="#bc2300"] { color: var(--orange) !important; }
[style*="color: #ffffff" i], [style*="color: #FFFFFF" i] { color: var(--ivory) !important; }

/* Accent words → Great Vibes */
h1 span[style], .text-background-box h1 span {
  font-family: var(--f-script);
  font-size: 1.25em;
  font-weight: 400;
  line-height: 1;
}
.text-background-box h1 span { color: var(--orange) !important; }

a:focus-visible, .btn:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* ---------- Spinner ---------- */
#spinner.bg-white { background: var(--ivory) !important; }
#spinner .spinner-border { color: var(--orange) !important; }

/* ---------- Navbar ---------- */
.navbar { background: var(--ivory) !important; box-shadow: 0 20px 60px rgba(22, 33, 62, .28); }
.navbar::before { background-color: var(--ivory); }
.navbar .navbar-nav .nav-link { font-family: var(--f-body); font-weight: 500; }
.navbar .navbar-nav .nav-link.active,
.navbar .navbar-nav .nav-link:focus,
.navbar .navbar-nav .nav-link:hover {
  background-color: var(--gold);
  color: var(--navy) !important;
}
.dropdown-menu { background: var(--ivory); border: 1px solid rgba(230, 199, 42, .6); }
.dropdown .dropdown-menu a { color: var(--navy); }
.dropdown .dropdown-menu a:hover { background: var(--gold); color: var(--navy); }

/* ---------- Hero ---------- */
.header::after { box-shadow: 0 0 0 6px rgba(230, 199, 42, .35); }
.header::before { border-color: rgba(230, 199, 42, .12); }
.hero-header::before { border-color: rgba(230, 199, 42, .22); }
.hero-header .rotate-img .rotate-sty-2 { border-color: rgba(230, 199, 42, .6); }
.hero-header h1 {
  font-family: var(--f-display);
  font-weight: 400 !important;
  letter-spacing: .03em;
}
.hero-header h1 span[style] { font-size: 1.4em; }
#hero-paragraph { font-weight: 300; }
.hero-header .btn-outline-light { color: var(--gold); border-color: var(--gold) !important; }
.hero-header .btn-outline-light:hover { background: var(--gold); color: var(--navy); }

/* ---------- Ivory text boxes (About, Events) ---------- */
.text-background-box {
  background-color: rgba(248, 245, 242, .95);
  border: 1px solid rgba(230, 199, 42, .6);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
}
.text-background-box h4.text-primary { color: var(--slate) !important; }
.feature .feature-img { background: var(--ivory); border: 2px solid var(--gold); }

/* ---------- Buttons ---------- */
.btn.btn-primary { background: var(--navy) !important; color: var(--ivory) !important; border-color: var(--navy) !important; }
.btn.btn-primary:hover { background: var(--gold) !important; color: var(--navy) !important; border-color: var(--gold) !important; }
.btn.btn-light:hover { background: var(--gold) !important; color: var(--navy) !important; }
.service .btn.btn-light { border-color: var(--ivory); }
#btn-login-status .btn.btn-light:hover { background: var(--navy) !important; color: var(--ivory) !important; }
.btn.btn-primary.back-to-top { background: var(--gold) !important; color: var(--navy) !important; border-color: var(--gold) !important; }
.btn.btn-primary.back-to-top:hover { background: var(--orange) !important; border-color: var(--orange) !important; }

/* ---------- Organized / Sponsored ---------- */
.organized-title {
  color: var(--ivory);
  text-transform: none;
  font-size: 1.35rem;
  font-weight: 400;
  letter-spacing: .12em;
}
.organized-title::before, .organized-title::after { background: var(--gold); }
.logo-capsule {
  background: var(--ivory);
  border: 1px solid var(--gold);
  box-shadow: 0 5px 25px rgba(230, 199, 42, .22);
}
.sponsor-box {
  background: var(--ivory);
  border: 1px solid var(--gold);
  box-shadow: 0 5px 25px rgba(230, 199, 42, .22);
}

/* ---------- Timeline ---------- */
.experience .timeline::after { background: var(--gold); }
.experience .timeline .timeline-item::after { background: var(--gold); border-color: var(--ivory); }
.experience .timeline .timeline-item::before { display: none; }
.experience .timeline .timeline-text,
.experience .timeline .timeline-item.left .timeline-text,
.experience .timeline .timeline-item.right .timeline-text {
  background: rgba(248, 245, 242, .07);
  mix-blend-mode: normal;
  border: 1px solid rgba(230, 199, 42, .5);
  border-left: 5px solid var(--gold);
  box-shadow: none;
}
.experience .timeline .timeline-item.left .timeline-date,
.experience .timeline .timeline-item.right .timeline-date {
  background: none;
  mix-blend-mode: normal;
  border: none;
  box-shadow: none;
  border-radius: 0;
  color: var(--gold);
  -webkit-text-fill-color: var(--gold);
  text-transform: none;
  letter-spacing: .06em;
}

/* ---------- Sponsor modal ---------- */
#sponsorModal .modal-content {
  background: rgba(22, 33, 62, .97) !important;
  border: 1px solid rgba(230, 199, 42, .5) !important;
}
#modalTitle { color: var(--gold) !important; font-family: var(--f-serif); }

/* ---------- Footer (beats the old white-text rules) ---------- */
body:not(.dashboard-theme) footer {
  background-color: var(--navy) !important;
  border-top: 3px solid var(--gold);
}
html body:not(.dashboard-theme) footer *:not(a):not(.bi):not(.link-info) { color: var(--ivory) !important; }
html body:not(.dashboard-theme) footer h5:not(.lead):not(.fs-6) {
  color: var(--gold) !important;
  font-family: var(--f-serif);
}
html body:not(.dashboard-theme) footer h4:not(.x):not(.y) {
  color: var(--gold) !important;
  font-family: var(--f-display);
  letter-spacing: .05em;
}
html body:not(.dashboard-theme) footer a { color: var(--ivory) !important; }
html body:not(.dashboard-theme) footer a:hover,
html body:not(.dashboard-theme) footer a.link-info,
html body:not(.dashboard-theme) footer .bi:hover { color: var(--gold) !important; }
body:not(.dashboard-theme) footer .border-top { border-color: rgba(230, 199, 42, .35) !important; }

/* ---------- Mobile hero (replaces the purple gradient + pink/cyan bubbles) ---------- */
@media (max-width: 991px) {
  .hero-header {
    background:
      radial-gradient(ellipse at 50% 0%, rgba(230, 199, 42, .18), transparent 55%),
      var(--navy) !important;
  }
  .hero-header h1 span { color: var(--gold) !important; }
  .hero-header .btn {
    background-color: var(--gold) !important;
    color: var(--navy) !important;
  }
  .circles li {
    background: linear-gradient(135deg,
      rgba(230, 199, 42, .3) 0%,
      rgba(217, 119, 6, .3) 50%,
      rgba(248, 245, 242, .3) 100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .circles li, .header::before, .header::after, .hero-header::before { animation: none !important; }
}


/* ==========================================================
   GRAND POLISH — richer, more luxurious (gold foil, glow, depth)
   ========================================================== */

/* Deeper, more dramatic background */
body {
  background:
    radial-gradient(ellipse 60% 40% at 90% 0%, rgba(230, 199, 42, .26), transparent 70%),
    radial-gradient(ellipse 50% 35% at 0% 45%, rgba(217, 119, 6, .16), transparent 70%),
    radial-gradient(ellipse 60% 40% at 100% 85%, rgba(230, 199, 42, .14), transparent 70%),
    #16213E;
}

/* Navbar: gold foil line */
.navbar::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--navy), var(--gold) 30%, var(--orange) 50%, var(--gold) 70%, var(--navy));
}

/* Gold-foil headings */
.hero-header h1,
h1.display-5[style*="color: #FFFFFF" i] {
  background: linear-gradient(100deg, var(--ivory) 0%, var(--gold) 40%, var(--ivory) 65%, var(--gold) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
}
.hero-header h1 span[style],
h1.display-5[style*="color: #FFFFFF" i] span[style] {
  -webkit-text-fill-color: var(--gold);
  filter: drop-shadow(0 0 14px rgba(230, 199, 42, .45));
}

/* Gold divider under section titles */
h1.display-5[style*="color: #FFFFFF" i]::after {
  content: "";
  display: block;
  width: 110px;
  height: 2px;
  margin: 22px auto 0;
  background: linear-gradient(90deg, transparent, var(--gold), var(--orange), var(--gold), transparent);
}

/* Hero: gold button + floating gold sparkles (desktop) */
.hero-header .btn-outline-light {
  background-image: linear-gradient(135deg, var(--gold), var(--orange));
  color: var(--navy);
  border: 0 !important;
  box-shadow: 0 8px 30px rgba(230, 199, 42, .35);
}
.hero-header .btn-outline-light:hover {
  background-image: none;
  background-color: var(--ivory);
  color: var(--navy);
}
.hero-header .row { position: relative; z-index: 1; }

@keyframes gt-rise {
  0%   { transform: translateY(0); opacity: 0; }
  20%  { opacity: .9; }
  100% { transform: translateY(-640px); opacity: 0; }
}
@media (min-width: 992px) {
  .circles {
    display: block;
    position: absolute;
    inset: 0;
    margin: 0; padding: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
  }
  .circles li {
    position: absolute;
    list-style: none;
    bottom: -40px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(230, 199, 42, .95), rgba(230, 199, 42, 0) 70%);
    animation: gt-rise 14s linear infinite;
  }
  .circles li:nth-child(5n+1) { left: 6%; }
  .circles li:nth-child(5n+2) { left: 24%; }
  .circles li:nth-child(5n+3) { left: 48%; }
  .circles li:nth-child(5n+4) { left: 66%; }
  .circles li:nth-child(5n+5) { left: 88%; }
  .circles li:nth-child(3n+1) { width: 10px; height: 10px; }
  .circles li:nth-child(3n+2) { width: 18px; height: 18px; }
  .circles li:nth-child(3n)   { width: 28px; height: 28px; }
  .circles li:nth-child(2n)   { animation-duration: 11s; }
  .circles li:nth-child(2n+1) { animation-duration: 17s; }
  .circles li:nth-child(4n+1) { animation-delay: -3s; }
  .circles li:nth-child(4n+2) { animation-delay: -8s; }
  .circles li:nth-child(4n+3) { animation-delay: -1s; }
  .circles li:nth-child(4n)   { animation-delay: -11s; }
}

/* Competition cards: glass panel with gold border */
.service .row > [class*="col-"] {
  position: relative;
  isolation: isolate;
  padding: 1.75rem 1.25rem !important;
}
.service .row > [class*="col-"]::before {
  content: "";
  position: absolute;
  inset: .5rem;
  z-index: -1;
  border-radius: 28px;
  background: linear-gradient(160deg, rgba(248, 245, 242, .12), rgba(248, 245, 242, .02));
  border: 1px solid rgba(230, 199, 42, .4);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .3);
  transition: border-color .3s, box-shadow .3s;
}
.service .row > [class*="col-"]:hover::before {
  border-color: var(--gold);
  box-shadow: 0 0 0 1px rgba(230, 199, 42, .5), 0 20px 50px rgba(230, 199, 42, .22);
}
.service img { transition: transform .4s ease; }
.service .row > [class*="col-"]:hover img { transform: scale(1.06); }
.service .btn.btn-light {
  background: linear-gradient(135deg, var(--gold), var(--orange)) !important;
  color: var(--navy) !important;
  border: 0;
  box-shadow: 0 6px 20px rgba(230, 199, 42, .25);
}
.service .btn.btn-light:hover { background: var(--ivory) !important; }

/* Event boxes + images */
.text-background-box { border-left: 5px solid var(--gold); }
.feature .feature-img { box-shadow: 0 0 50px rgba(230, 199, 42, .28); }

/* Timeline: glowing line and dots */
.experience .timeline::after {
  background: linear-gradient(180deg, transparent, var(--gold) 8%, var(--gold) 92%, transparent);
}
.experience .timeline .timeline-item::after {
  box-shadow: 0 0 0 4px rgba(230, 199, 42, .25), 0 0 14px var(--gold);
}
.experience .timeline .timeline-text,
.experience .timeline .timeline-item.left .timeline-text,
.experience .timeline .timeline-item.right .timeline-text {
  background: linear-gradient(160deg, rgba(248, 245, 242, .12), rgba(248, 245, 242, .03));
  box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
}

/* Footer: gold foil top edge + soft glow */
body:not(.dashboard-theme) footer {
  border-top: 3px solid;
  border-image: linear-gradient(90deg, transparent, var(--gold), var(--orange), var(--gold), transparent) 1;
  background-image: radial-gradient(ellipse at 50% 0%, rgba(230, 199, 42, .14), transparent 60%);
}

@media (prefers-reduced-motion: reduce) {
  .circles li { animation: none !important; }
}


/* ==========================================================
   HERO FIX — no more cut-off shapes, text never sits on ivory
   ========================================================== */

/* Old moving decorations (triangle, rings) are kept and recolored gold. */
/* (decorations restored — they are recolored gold in the sections above) */

/* Ivory blob: crisp gold edge, and kept to the right half so it
   never runs under the headline or the paragraph */
.header::after { box-shadow: 0 0 0 3px var(--gold); }
@media (min-width: 992px) {
  .header::after { width: 46%; }
}

/* Background glows: gold over navy turns muddy grey-olive, so the big
   glows use Slate Grey and only a small warm accent stays */
body {
  background:
    radial-gradient(ellipse 55% 45% at 95% 0%, rgba(108, 103, 125, .45), transparent 70%),
    radial-gradient(ellipse 45% 35% at 0% 55%, rgba(108, 103, 125, .22), transparent 70%),
    radial-gradient(ellipse 35% 25% at 50% 100%, rgba(217, 119, 6, .12), transparent 70%),
    #16213E;
}


/* ==========================================================
   HERO FIX 2 — blob is now a fully rounded shape that sits
   inside the hero, so no edge is cut off at the top, right or bottom
   ========================================================== */
.navbar { box-shadow: 0 10px 30px rgba(0, 0, 0, .25); }

@media (min-width: 992px) {
  .header::after {
    top: 130px;
    height: calc(100% - 180px);
    width: 44%;
    margin-right: 3%;
    border-radius: 58% 42% 46% 54% / 38% 40% 60% 62%;
  }
}


/* ==========================================================
   HERO FIX 3 — rings stay fully inside the hero while moving
   (the old keyframes pushed them past the edge, where they got clipped)
   ========================================================== */
@keyframes gt-float {
  0%, 100% { transform: translate(0, 0); }
  50%      { transform: translate(40px, -40px); }
}
@keyframes gt-drift {
  0%, 100% { transform: translate(0, 0); }
  50%      { transform: translate(420px, -40px); }
}
@media (min-width: 992px) {
  /* big ring, bottom-left */
  .header::before {
    left: 2%;
    bottom: 90px;
    animation: gt-float 14s ease-in-out infinite;
  }
  /* ring behind the headline */
  .hero-header::before {
    left: 100px;
    bottom: 100px;
    animation: gt-drift 45s ease-in-out infinite;
  }
}


/* ==========================================================
   COMPETITION CARDS — equal image area, buttons aligned at the bottom
   ========================================================== */
.service .row > [class*="col-"] {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.service .row > [class*="col-"] img {
  height: 340px;
  width: auto !important;   /* overrides Bootstrap's w-75 */
  max-width: 100%;
  object-fit: contain;
}
.service .row > [class*="col-"] .btn { margin-top: auto; }
@media (max-width: 767px) {
  .service .row > [class*="col-"] img { height: 280px; }
}


/* ==========================================================
   BACKGROUND — wave image shared by the homepage and login page
   Fixed layer behind the whole page; navy is the fallback color.
   ========================================================== */
body { background: #16213E; }
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(rgba(22, 33, 62, .15), rgba(22, 33, 62, .15)),
    url("../images/ipfest-background.jpg") center / cover no-repeat;
}
@media (max-width: 991px) {
  /* let the image show through the mobile hero too */
  .hero-header {
    background: radial-gradient(ellipse at 50% 0%, rgba(230, 199, 42, .15), transparent 55%) !important;
  }
}


/* ==========================================================
   NAVY NAVBAR + MUTED-GOLD BLOB
   ========================================================== */

/* ---- Navbar: navy, same as the footer ---- */
.navbar { background: var(--navy) !important; box-shadow: 0 10px 30px rgba(0, 0, 0, .35); }
.navbar::before { background-color: var(--navy); }
.navbar .navbar-brand img { filter: drop-shadow(0 0 8px rgba(248, 245, 242, .35)); }

.navbar .navbar-nav .nav-link,
.navbar.navbar-light .navbar-nav .nav-link,
.sticky-top.navbar-light .navbar-nav .nav-link { color: var(--ivory) !important; }
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link:focus,
.navbar .navbar-nav .nav-link.active,
.sticky-top.navbar-light .navbar-nav .nav-link:hover {
  background-color: var(--gold);
  color: var(--navy) !important;
}

.navbar .dropdown-menu {
  background: var(--navy) !important;
  border: 1px solid rgba(230, 199, 42, .6);
  box-shadow: 0 16px 40px rgba(0, 0, 0, .45);
}
.dropdown .dropdown-menu a { color: var(--ivory); }
.dropdown .dropdown-menu a:hover,
.dropdown .dropdown-menu a:focus { background: var(--gold); color: var(--navy); }

/* Log In: gold pill */
#btn-login-status .btn.btn-light {
  background: linear-gradient(135deg, var(--gold), var(--orange)) !important;
  color: var(--navy) !important;
  border: 0 !important;
  box-shadow: 0 6px 20px rgba(230, 199, 42, .25);
}
#btn-login-status .btn.btn-light:hover {
  background: var(--ivory) !important;
  color: var(--navy) !important;
}

/* Mobile menu */
@media (max-width: 992px) {
  .navbar.navbar-expand-lg .navbar-toggler {
    color: var(--ivory) !important;
    border-color: var(--gold);
  }
  .navbar-light .navbar-collapse { border-top: 1px solid rgba(230, 199, 42, .4); }
  .navbar-light .navbar-nav .nav-link,
  .sticky-top.navbar-light .navbar-nav .nav-link { color: var(--ivory) !important; }

  .event-navbar .navbar-collapse {
    border-top: 1px solid rgba(230, 199, 42, .4);
  }
}

/* ---- Hero blob: muted gold with a soft sheen ---- */
.header::after {
  background:
    radial-gradient(circle at 30% 22%, rgba(248, 245, 242, .38), transparent 55%),
    var(--gold);
  box-shadow:
    0 0 0 3px rgba(248, 245, 242, .55),
    0 24px 60px rgba(0, 0, 0, .4),
    0 0 90px rgba(230, 199, 42, .3);
}
/* The logo's gold ribbons sit on gold now, so a soft navy shadow keeps them readable */
.hero-header img[alt="IPFest Logo"] {
  filter: drop-shadow(0 10px 18px rgba(22, 33, 62, .55));
}

/* The blob is a desktop element; on mobile the hero shows the page background */
@media (max-width: 991px) {
  .header::after { display: none; }
}


/* ==========================================================
   HERO MEDALLION — navy blob with a gold-foil rim and a warm gold glow
   behind the logo (replaces the flat gold blob)
   ========================================================== */
.header::after {
  border: 18px solid transparent;
  background:
    radial-gradient(ellipse at 50% 54%, rgba(230, 199, 42, .45) 0%, rgba(230, 199, 42, .14) 38%, transparent 64%) padding-box,
    radial-gradient(ellipse at 16% 10%, rgba(108, 103, 125, .6), transparent 52%) padding-box,
    linear-gradient(var(--navy), var(--navy)) padding-box,
    linear-gradient(140deg, var(--ivory) 0%, var(--gold) 22%, var(--orange) 50%, var(--gold) 78%, var(--ivory) 100%) border-box;
  background-origin: border-box;
  box-shadow:
    0 24px 60px rgba(0, 0, 0, .45),
    0 0 90px rgba(230, 199, 42, .28);
}

/* Bigger logo with a soft light halo, floating gently */
@keyframes gt-bob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-12px); }
}
.hero-header img[alt="IPFest Logo"] {
  width: 64% !important;
  filter: drop-shadow(0 0 22px rgba(248, 245, 242, .4)) drop-shadow(0 8px 14px rgba(0, 0, 0, .35));
  animation: gt-bob 6s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .hero-header img[alt="IPFest Logo"] { animation: none; }
}


/* ==========================================================
   LOGO CENTERED IN THE MEDALLION (desktop)
  
   ========================================================== */
@keyframes gt-blob-bob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
@media (min-width: 992px) {
  .header::after {
    background:
      url("../images/ipfest_2027_logo.png") center / auto 64% no-repeat padding-box,
      radial-gradient(ellipse at 50% 54%, rgba(230, 199, 42, .45) 0%, rgba(230, 199, 42, .14) 38%, transparent 64%) padding-box,
      radial-gradient(ellipse at 16% 10%, rgba(108, 103, 125, .6), transparent 52%) padding-box,
      linear-gradient(var(--navy), var(--navy)) padding-box,
      linear-gradient(140deg, var(--ivory) 0%, var(--gold) 22%, var(--orange) 50%, var(--gold) 78%, var(--ivory) 100%) border-box;
    background-origin: border-box;
    animation: gt-blob-bob 8s ease-in-out infinite;
  }
  .hero-header img[alt="IPFest Logo"] {
    opacity: 0;
    animation: none;
  }
}


/* ==========================================================
   LOGO ALWAYS CENTERED IN THE MEDALLION
   
   ========================================================== */
@media (min-width: 992px) {
  .header::after { display: none; }               /* old free-floating blob off */
  .hero-header { overflow: visible !important; }   /* let the medallion breathe */

  .hero-header .row > .col-lg-6:last-child {
    --e: clamp(40px, 6vw, 120px);                  /* how far the medallion grows to the right */
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 540px;
    left: 6vw;
  }
  .hero-header .row > .col-lg-6:last-child::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -30px;
    bottom: -30px;
    left: 0;
    right: calc(-1 * var(--e));
    border-radius: 58% 42% 46% 54% / 38% 40% 60% 62%;
    border: 18px solid transparent;
    background:
      radial-gradient(ellipse at 50% 54%, rgba(230, 199, 42, .45) 0%, rgba(230, 199, 42, .14) 38%, transparent 64%) padding-box,
      radial-gradient(ellipse at 16% 10%, rgba(108, 103, 125, .6), transparent 52%) padding-box,
      linear-gradient(var(--navy), var(--navy)) padding-box,
      linear-gradient(140deg, var(--ivory) 0%, var(--gold) 22%, var(--orange) 50%, var(--gold) 78%, var(--ivory) 100%) border-box;
    background-origin: border-box;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .45), 0 0 90px rgba(230, 199, 42, .28);
  }
  /* push the logo by the same amount the medallion grew, so it sits dead center */
  .hero-header .row > .col-lg-6:last-child img { margin-left: var(--e); }
}


/* ==========================================================
   LOGO + MEDALLION FIX
  
   ========================================================== */

/* Old full-width blob is replaced by the medallion below */
.header::after { display: none !important; }

/* Logo visible again */
@media (min-width: 992px) {
  .hero-header img[alt="IPFest Logo"] {
    opacity: 1;
    animation: gt-bob 6s ease-in-out infinite;
  }
}

/* Medallion: navy blob, gold-foil rim, warm glow, centered behind the logo */
.hero-header .row > .col-lg-6:last-child { position: relative; }
.hero-header .row > .col-lg-6:last-child::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(104%, 640px);
  aspect-ratio: 1 / 1.04;
  transform: translate(-50%, -50%);
  z-index: -1;
  pointer-events: none;
  border-radius: 58% 42% 46% 54% / 38% 40% 60% 62%;
  border: 18px solid transparent;
  background:
    radial-gradient(ellipse at 50% 54%, rgba(230, 199, 42, .45) 0%, rgba(230, 199, 42, .14) 38%, transparent 64%) padding-box,
    radial-gradient(ellipse at 16% 10%, rgba(108, 103, 125, .6), transparent 52%) padding-box,
    linear-gradient(var(--navy), var(--navy)) padding-box,
    linear-gradient(140deg, var(--ivory) 0%, var(--gold) 22%, var(--orange) 50%, var(--gold) 78%, var(--ivory) 100%) border-box;
  background-origin: border-box;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .45), 0 0 90px rgba(230, 199, 42, .28);
}
@media (max-width: 991px) {
  .hero-header .row > .col-lg-6:last-child::before { width: min(80%, 420px); }
}


/* ==========================================================
   LOGO NUDGE
   ========================================================== */
.hero-header img[alt="IPFest Logo"] { translate: -14% 0; }

/* ===== Blob: melayang + bentuk berubah pelan-pelan ===== */
@keyframes gt-blob-float {
  0%, 100% { translate: 0 0; }
  50%      { translate: 0 -12px; }
}

@keyframes gt-blob-morph {
  0%, 100% { border-radius: 58% 42% 46% 54% / 38% 40% 60% 62%; }
  33%      { border-radius: 46% 54% 58% 42% / 50% 36% 64% 50%; }
  66%      { border-radius: 54% 46% 42% 58% / 42% 56% 44% 58%; }
}

.hero-header .row > .col-lg-6:last-child::before {
  animation:
    gt-blob-float 6s ease-in-out infinite,
    gt-blob-morph 14s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .hero-header .row > .col-lg-6:last-child::before { animation: none; }
}

/* ---------- Event pages ---------- */
body.event-page {
  min-height: 100vh;
  color: var(--ivory);
  background:
    radial-gradient(ellipse 50% 35% at 95% 0%, rgba(108, 103, 125, .3), transparent 72%),
    radial-gradient(ellipse 45% 35% at 0% 55%, rgba(217, 119, 6, .12), transparent 72%),
    var(--navy);
}

body.event-page::after {
  display: none;
}

body.event-page .event-hero {
  isolation: isolate;
  min-height: 560px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: calc(var(--dashboard-nav-height, 96px) + 2.5rem) 1rem 3rem;
  background: transparent;
}

body.event-page > .circles {
  position: fixed;
  inset: 0;
  z-index: 0;
  display: block;
  margin: 0;
  padding: 0;
  overflow: hidden;
  list-style: none;
  pointer-events: none;
}

body.event-page > .circles li {
  position: absolute;
  bottom: -40px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(230, 199, 42, .95), rgba(230, 199, 42, 0) 70%);
  animation: gt-rise 14s linear infinite;
}

body.event-page > .circles li:nth-child(5n+1) { left: 6%; }
body.event-page > .circles li:nth-child(5n+2) { left: 24%; }
body.event-page > .circles li:nth-child(5n+3) { left: 48%; }
body.event-page > .circles li:nth-child(5n+4) { left: 66%; }
body.event-page > .circles li:nth-child(5n+5) { left: 88%; }
body.event-page > .circles li:nth-child(3n+1) { width: 10px; height: 10px; }
body.event-page > .circles li:nth-child(3n+2) { width: 18px; height: 18px; }
body.event-page > .circles li:nth-child(3n) { width: 28px; height: 28px; }
body.event-page > .circles li:nth-child(2n) { animation-duration: 11s; }
body.event-page > .circles li:nth-child(2n+1) { animation-duration: 17s; }
body.event-page > .circles li:nth-child(4n+1) { animation-delay: -3s; }
body.event-page > .circles li:nth-child(4n+2) { animation-delay: -8s; }
body.event-page > .circles li:nth-child(4n+3) { animation-delay: -1s; }
body.event-page > .circles li:nth-child(4n) { animation-delay: -11s; }

body.event-page > .container-fluid,
body.event-page > main,
body.event-page > footer {
  position: relative;
  z-index: 1;
}

body.event-page .event-hero::before,
body.event-page .event-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: clamp(16rem, 38vw, 32rem);
  aspect-ratio: 1;
  border: 1px solid rgba(230, 199, 42, .2);
  border-radius: 50%;
  pointer-events: none;
}

body.event-page .event-hero::before {
  top: 8%;
  left: -12rem;
  box-shadow: 0 0 0 2rem rgba(230, 199, 42, .025), 0 0 0 4rem rgba(230, 199, 42, .02);
  animation: event-orbit 36s linear infinite;
}

body.event-page .event-hero::after {
  right: -12rem;
  bottom: -20%;
  border-color: rgba(217, 119, 6, .24);
  box-shadow: 0 0 0 2rem rgba(217, 119, 6, .025), 0 0 0 4rem rgba(217, 119, 6, .02);
  animation: event-orbit 48s linear infinite reverse;
}

body.event-page .event-sparkles {
  display: none;
}

body.event-page .event-hero-content {
  z-index: 1;
  width: min(100%, 900px);
  max-width: 900px;
  padding: 0 !important;
  margin: 0 auto;
  background: transparent;
  border: 0;
  box-shadow: none;
}

body.event-page .event-hero-content h1 {
  color: var(--ivory);
  font-family: var(--f-display);
  font-weight: 400;
  letter-spacing: .04em;
  text-shadow: 0 4px 30px rgba(230, 199, 42, .22);
}

body.event-page .event-hero-badge {
  position: relative;
  isolation: isolate;
  display: grid;
  width: clamp(150px, 22vw, 230px);
  aspect-ratio: 1;
  margin: 0 auto 1.5rem;
  place-items: center;
  animation: gt-bob 6s ease-in-out infinite;
}

body.event-page .event-hero-badge::before {
  content: "";
  position: absolute;
  inset: -10%;
  z-index: -1;
  border: 2px solid transparent;
  border-radius: 50%;
  background:
    linear-gradient(var(--navy), var(--navy)) padding-box,
    linear-gradient(140deg, var(--ivory), var(--gold), var(--orange), var(--gold), var(--ivory)) border-box;
  box-shadow: 0 0 36px rgba(230, 199, 42, .28);
  animation: event-orbit 24s linear infinite;
}

body.event-page .event-hero-badge::after {
  content: "";
  position: absolute;
  inset: -18%;
  z-index: -2;
  border: 1px solid rgba(230, 199, 42, .2);
  border-radius: 50%;
}

body.event-page .event-hero-badge img {
  width: 78%;
  height: 78%;
  object-fit: contain;
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, .4));
}

@keyframes event-orbit {
  to { transform: rotate(360deg); }
}

body.event-page main.contact {
  position: relative;
  z-index: 1;
  padding-top: 2rem !important;
  padding-bottom: 4rem !important;
  color: var(--ivory);
  background: transparent;
}

body.event-page main .container {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

body.event-page main .event-about-card,
body.event-page main .event-feature-card {
  position: relative;
  align-items: center;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  margin: 1.5rem auto !important;
  border: 1px solid rgba(230, 199, 42, .48);
  border-radius: 1.75rem;
  background: linear-gradient(145deg, rgba(248, 245, 242, .09), rgba(248, 245, 242, .025));
  box-shadow: 0 16px 45px rgba(0, 0, 0, .22), 0 0 32px rgba(230, 199, 42, .08);
  backdrop-filter: blur(8px);
}

body.event-page main .event-feature-card {
  scroll-margin-top: 7rem;
}

body.event-page main .event-about-card > div,
body.event-page main .event-feature-card > div {
  min-width: 0;
}

body.event-page main .event-about-card img,
body.event-page main .event-feature-card img {
  max-height: 28rem;
  object-fit: cover;
  border: 1px solid rgba(230, 199, 42, .45);
  box-shadow: 0 12px 32px rgba(0, 0, 0, .3);
}

body.event-page main .feature-img {
  background: transparent;
  border: 0;
  box-shadow: none;
}

body.event-page main .event-about-card h1,
body.event-page main .event-feature-card h1,
body.event-page main .text-center > h1 {
  color: var(--ivory) !important;
  font-family: var(--f-display);
  font-weight: 400;
}

body.event-page main .event-about-card h4,
body.event-page main .event-feature-card h4,
body.event-page main .text-center > h4 {
  color: var(--gold) !important;
}

body.event-page main h1:not(.text-primary):not(.text-secondary):not(.text-info):not(.text-danger):not(.text-warning),
body.event-page main h2:not(.text-primary):not(.text-secondary):not(.text-info):not(.text-danger):not(.text-warning),
body.event-page main h3:not(.text-primary):not(.text-secondary):not(.text-info):not(.text-danger):not(.text-warning),
body.event-page main h4:not(.text-primary):not(.text-secondary):not(.text-info):not(.text-danger):not(.text-warning),
body.event-page main h5:not(.text-primary):not(.text-secondary):not(.text-info):not(.text-danger):not(.text-warning),
body.event-page main h6:not(.text-primary):not(.text-secondary):not(.text-info):not(.text-danger):not(.text-warning),
body.event-page .event-hero-content h1:not(.text-primary):not(.text-secondary):not(.text-info):not(.text-danger):not(.text-warning) {
  color: var(--ivory) !important;
}

body.event-page main .text-primary {
  color: var(--gold) !important;
}

body.event-page main .event-about-card p,
body.event-page main .event-feature-card p,
body.event-page p:not(.text-primary):not(.text-secondary):not(.text-info):not(.text-danger):not(.text-warning):not(.text-muted),
body.event-page main .timeline-text,
body.event-page main .timeline-text * {
  color: var(--ivory) !important;
  line-height: 1.8;
}

body.event-page main .experience .container {
  background: transparent !important;
}

body.event-page main .timeline .timeline-text {
  border-color: rgba(230, 199, 42, .55) !important;
}

body.event-page main .timeline .timeline-date {
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold);
}

body.event-page main .timeline .timeline-text a {
  color: var(--ivory) !important;
}

body.event-page main .timeline .timeline-text a:hover {
  color: var(--gold) !important;
}

body.event-page #btn-login-status .btn {
  background: linear-gradient(135deg, var(--gold), var(--orange));
  border: 0 !important;
  color: var(--navy) !important;
  font-weight: 600;
  box-shadow: 0 8px 24px rgba(230, 199, 42, .22);
}

body.event-page #btn-login-status .btn:hover {
  background: var(--ivory) !important;
  color: var(--navy) !important;
}

@media (max-width: 767.98px) {
  body.event-page .event-hero {
    min-height: 470px;
    padding-top: 7.5rem;
  }

  body.event-page main .event-about-card,
  body.event-page main .event-feature-card {
    padding: 1.25rem;
    border-radius: 1.25rem;
  }

  body.event-page .event-hero-badge {
    width: 150px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.event-page > .circles li {
    animation: none !important;
  }

  body.event-page .event-hero-badge,
  body.event-page .event-hero-badge::before,
  body.event-page .event-hero::before,
  body.event-page .event-hero::after {
    animation: none;
  }
}

html body.event-page .bg-breadcrumb:has(.hero-logo-box) {
  background:
    radial-gradient(ellipse 75% 65% at 50% 120%, rgba(230, 199, 42, .24) 0%, transparent 65%),
    radial-gradient(ellipse 50% 50% at 88% 12%, rgba(108, 103, 125, .4) 0%, transparent 60%),
    radial-gradient(ellipse 45% 45% at 12% 22%, rgba(108, 103, 125, .28) 0%, transparent 60%),
    var(--navy) !important;
  padding: 165px 0 90px !important;
  margin: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-image: linear-gradient(90deg, transparent 0%, rgba(230, 199, 42, .25) 15%, var(--gold) 50%, rgba(217, 119, 6, .5) 85%, transparent 100%) 1 !important;
  box-shadow: 0 16px 45px rgba(0, 0, 0, .5) !important;
}

body.event-page .bg-breadcrumb:has(.hero-logo-box) .breadcrumb-animation li {
  background: linear-gradient(135deg, rgba(230, 199, 42, .4), rgba(217, 119, 6, .35) 50%, rgba(248, 245, 242, .4)) !important;
  border-radius: 50% !important;
  box-shadow: 0 0 16px rgba(230, 199, 42, .45) !important;
}

body.event-page .bg-breadcrumb .hero-logo-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  margin-bottom: 1.35rem;
  padding: 14px;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(230, 199, 42, .28), rgba(22, 33, 62, .92) 75%) padding-box,
    linear-gradient(140deg, var(--ivory), var(--gold) 28%, var(--orange) 55%, var(--gold) 82%, var(--ivory)) border-box;
  border: 3px solid transparent;
  border-radius: 50%;
  box-shadow: 0 14px 40px rgba(0, 0, 0, .55), 0 0 50px rgba(230, 199, 42, .32);
  animation: gt-bob 6s ease-in-out infinite;
  transition: transform .35s ease, box-shadow .35s ease;
}

body.event-page .bg-breadcrumb:has(.hero-logo-box) .hero-logo-box img {
  max-height: 110px;
  width: auto;
  object-fit: contain;
  filter: drop-shadow(0 4px 14px rgba(0, 0, 0, .45)) !important;
}

body.event-page .bg-breadcrumb:has(.hero-logo-box) .hero-tag {
  display: inline-block;
  font-family: var(--f-body);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ivory) !important;
  -webkit-text-fill-color: var(--ivory) !important;
  background: rgba(230, 199, 42, .12) !important;
  border: 1px solid rgba(230, 199, 42, .4) !important;
  border-radius: 50px;
  padding: .32rem 1.25rem;
  margin-bottom: .95rem;
  box-shadow: 0 4px 15px rgba(0, 0, 0, .35);
}

html body.event-page .bg-breadcrumb .display-3 {
  color: var(--ivory) !important;
  -webkit-text-fill-color: var(--ivory) !important;
  font-family: "Playfair Display", serif;
  font-weight: 700;
  font-size: clamp(2.4rem, 4.8vw, 3.6rem) !important;
  letter-spacing: .02em;
  margin-bottom: .75rem !important;
  text-shadow: 0 4px 25px rgba(0, 0, 0, .75), 0 0 35px rgba(230, 199, 42, .25) !important;
}

html body.event-page .bg-breadcrumb .display-3 .hero-highlight {
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
  text-shadow: 0 0 30px rgba(230, 199, 42, .65), 0 2px 10px rgba(0, 0, 0, .6) !important;
}

html body.event-page .bg-breadcrumb:has(.hero-logo-box) .blockquote-footer {
  color: rgba(248, 245, 242, .92) !important;
  -webkit-text-fill-color: rgba(248, 245, 242, .92) !important;
  font-family: var(--f-body);
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.6;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .8);
  max-width: 820px;
  margin: 0 auto !important;
}

body.event-page .bg-breadcrumb:has(.hero-logo-box) .blockquote-footer::before {
  display: none;
}

@media (max-width: 991px) {
  html body.event-page .bg-breadcrumb:has(.hero-logo-box) {
    padding: 130px 15px 65px !important;
  }

  html body.event-page .bg-breadcrumb .display-3 {
    font-size: 2.2rem !important;
  }

  body.event-page .bg-breadcrumb:has(.hero-logo-box) .hero-logo-box img {
    max-height: 85px !important;
  }

  body.event-page .bg-breadcrumb:has(.hero-logo-box) .blockquote-footer {
    font-size: .95rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.event-page .bg-breadcrumb:has(.hero-logo-box) .hero-logo-box {
    animation: none;
  }
}

.event-nav-layer {
  position: relative;
  z-index: 1050 !important;
}

html:has(.event-navbar) {
  overflow-x: clip;
}

.event-navbar {
  --navy: #16213E;
  --ivory: #F8F5F2;
  --gold: #E6C72A;
  --orange: #D97706;
  position: fixed !important;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1050 !important;
  background: var(--navy) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
}

.event-navbar::before {
  background-color: var(--navy) !important;
}

.event-navbar .navbar-nav .nav-link,
.event-navbar.navbar-light .navbar-nav .nav-link {
  color: var(--ivory) !important;
}

.event-navbar .navbar-nav .nav-link:hover,
.event-navbar .navbar-nav .nav-link:focus,
.event-navbar .navbar-nav .nav-link.active {
  background-color: var(--gold) !important;
  color: var(--navy) !important;
}

.event-navbar .navbar-brand img {
  max-height: 50px;
  width: auto;
}

body.event-page .navbar {
  position: fixed !important;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1050 !important;
}

body:not(.dashboard-theme) .event-navbar .dropdown-menu {
  z-index: 1055 !important;
  background-color: var(--navy) !important;
  border: 1px solid var(--gold) !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .45);
}

body:not(.dashboard-theme) .event-navbar .dropdown-item,
body:not(.dashboard-theme) .event-navbar .dropdown-menu a {
  color: var(--ivory) !important;
}

body:not(.dashboard-theme) .event-navbar .dropdown-item:hover,
body:not(.dashboard-theme) .event-navbar .dropdown-item:focus,
body:not(.dashboard-theme) .event-navbar .dropdown-menu a:hover,
body:not(.dashboard-theme) .event-navbar .dropdown-menu a:focus {
  background-color: var(--gold) !important;
  color: var(--navy) !important;
}

.event-navbar .navbar-toggler {
  color: var(--ivory) !important;
  border: 1px solid var(--gold) !important;
  z-index: 1060;
}

body:not(.dashboard-theme) .event-navbar .navbar-toggler .fa-bars.text-white:not(.text-secondary):not(.text-dark):not(.text-primary):not(.text-info):not(.text-danger):not(.text-warning) {
  color: var(--ivory) !important;
}

.event-navbar .navbar-collapse {
  position: relative;
  z-index: 1055;
}

/* ---------- Timeline items: all text white ----------
   Covers Home, competition and event pages. The :not(#_) id bump is needed to
   beat the !important colour rules in competition.css and grand-subpage.css. */
html body:not(#_) .experience .timeline .timeline-text,
html body:not(#_) .experience .timeline .timeline-text *,
html body:not(#_) .experience .timeline .timeline-text a:hover {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Accent words in the light sections (About IPFEST 2027, Skills, Insights, Innovation):
   hero "Create" size and gold, with a gold-foil gradient and a stronger glow so it
   still reads as shiny on the ivory cards (the plain gold glow vanishes on light). */
.text-background-box h1 span,
h1 span[style*="#bc2300" i] {
  font-size: 1.4em;
  color: var(--gold) !important;
  background: linear-gradient(135deg, #F8E58A 0%, #E6C72A 42%, #C9980F 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  /* background-clip:text only paints inside the box, and Great Vibes glyphs overhang it
     (the tail of the final "7" got cut). Pad the box and cancel it with a negative margin. */
  padding: .1em .2em;
  margin: 0 -.2em;
  /* Same 14px halo as the hero "Create", but stronger: .45 gold is invisible on ivory. */
  filter: drop-shadow(0 0 14px rgba(230, 199, 42, .9)) drop-shadow(0 0 5px rgba(230, 170, 20, .55));
}

/* Homepage cards: same look as the competition-page cards (navy glass, gold hairline).
   Body text is white; the eyebrow and title follow the competition section-header style. */
.text-background-box {
  background: rgba(30, 45, 79, .55);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(230, 199, 42, .3);
  border-radius: 20px;
  padding: 40px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(230, 199, 42, .12);
}
.text-background-box p { color: #FFFFFF !important; }
.text-background-box h4.text-primary { color: var(--gold) !important; }
.text-background-box h1 {
  background: linear-gradient(100deg, var(--ivory) 0%, var(--gold) 40%, var(--ivory) 65%, var(--gold) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: var(--ivory) !important;
  -webkit-text-fill-color: transparent;
}
.text-background-box h1::after {
  content: "";
  display: block;
  width: 110px;
  height: 2px;
  margin: 22px 0 0;
  background: linear-gradient(90deg, transparent, var(--gold), var(--orange), var(--gold), transparent);
}
.text-background-box .btn-primary {
  background: rgba(230, 199, 42, .12) !important;
  border: 2px solid var(--gold) !important;
  color: #FFFFFF !important;
}
.text-background-box .btn-primary:hover,
.text-background-box .btn-primary:focus {
  background: var(--gold) !important;
  color: var(--navy) !important;
}
@media (max-width: 575.98px) {
  .text-background-box { padding: 28px 22px; }
}
