/* =========================================================
   STH EVENTS — Shared Stylesheet
   Design tokens kept consistent across every page.
   ========================================================= */

:root{
  /* Brand palette */
  --gold: #c9a24a;
  --gold-dark: #a9822f;
  --gold-light: #e7cf94;
  --charcoal: #1b1815;
  --charcoal-soft: #2a251f;
  --cream: #faf6ee;
  --cream-deep: #f2ead9;
  --white: #ffffff;
  --text-body: #4a453d;
  --text-muted: #8a8377;
  --border-soft: #e7ddc7;
  --sth-blue: #1c3f66;
  --sth-blue-dark: #142e4c;

  /* Type */
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'Poppins', 'Segoe UI', sans-serif;

  /* Shape / motion */
  --radius: 10px;
  --shadow-soft: 0 10px 30px rgba(27,24,21,.08);
  --shadow-strong: 0 20px 45px rgba(27,24,21,.18);
  --ease: cubic-bezier(.4,0,.2,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family: var(--font-body);
  color: var(--text-body);
  background: var(--white);
  line-height:1.7;
  font-size:16px;
}
h1,h2,h3,h4,.font-display{
  font-family: var(--font-display);
  color: var(--charcoal);
  font-weight:700;
  line-height:1.2;
}
a{ text-decoration:none; color:inherit; }
img{max-width:100%; display:block;}
.container-xl{max-width:1240px; margin:0 auto; padding:0 20px;}

:focus-visible{
  outline:3px solid var(--gold-dark);
  outline-offset:3px;
}

/* ---------- Eyebrow / section labels ---------- */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-family: var(--font-body);
  font-size:.78rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color: var(--gold-dark);
  font-weight:600;
  margin-bottom:.9rem;
}
.eyebrow::before{
  content:"";
  width:28px; height:2px;
  background: var(--gold);
  display:inline-block;
}
.section-title{
  font-size: clamp(1.7rem, 2.6vw, 2.5rem);
  margin-bottom:1rem;
}
.section-lead{
  color: var(--text-muted);
  max-width:680px;
  font-size:1.02rem;
}
.section{ padding: 5.5rem 0; }
.section-alt{
  background-color: var(--cream);
}

/* ---------- Buttons ---------- */
.btn-gold{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  background: var(--gold);
  color: var(--charcoal);
  border:1px solid var(--gold);
  padding:.85rem 1.9rem;
  font-weight:600;
  font-size:.92rem;
  letter-spacing:.03em;
  border-radius: 3px;
  transition: all .25s var(--ease);
}
.btn-gold:hover{
  background: var(--charcoal);
  border-color: var(--charcoal);
  color: var(--gold-light);
}
.btn-outline-line{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  background: transparent;
  color: var(--white);
  border:1px solid rgba(255,255,255,.55);
  padding:.85rem 1.9rem;
  font-weight:600;
  font-size:.92rem;
  border-radius:3px;
  transition: all .25s var(--ease);
}
.btn-outline-line:hover{
  background: var(--white);
  color: var(--charcoal);
  border-color: var(--white);
}

/* ---------- Top utility bar ---------- */
.topbar{
  background: var(--charcoal);
  color: rgba(255,255,255,.8);
  font-size:.82rem;
  padding:.5rem 0;
}
.topbar a{ color: rgba(255,255,255,.85); }
.topbar a:hover{ color: var(--gold-light); }
.topbar .divider{ opacity:.3; margin:0 .6rem; }
.topbar .socials a{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  margin-left:.4rem;
  transition: all .2s var(--ease);
}
.topbar .socials a:hover{ background: var(--gold); border-color: var(--gold); color:var(--charcoal); }

/* ---------- Main nav ---------- */
.navbar-sth{
  background: var(--white);
  /*padding: .9rem 0;*/
  border-bottom:1px solid var(--border-soft);
}
.navbar-sth.is-sticky{
  position: sticky; top:0; z-index:1000;
  box-shadow: var(--shadow-soft);
}
.navbar-sth .brand{
  font-family: var(--font-display);
  font-weight:700;
  font-size:1.55rem;
  color: var(--charcoal);
  letter-spacing:.02em;
}
.navbar-sth .brand span{ color: var(--gold-dark); }
.nav-links{ gap: 1.9rem; }
.nav-links a{
  font-size:.92rem;
  font-weight:600;
  color: var(--charcoal);
  position:relative;
  /*padding:.3rem 0;*/
}
.nav-links a::after{
  content:"";
  position:absolute; left:0; bottom:-2px;
  width:0; height:2px; background: var(--gold);
  transition: width .25s var(--ease);
}
.nav-links a:hover::after,
.nav-links a.active::after{ width:100%; }
.nav-links a.active{ color: var(--gold-dark); }
.dropdown-menu-sth{
  border:none;
  border-radius:6px;
  box-shadow: var(--shadow-strong);
  padding:.6rem;
  margin-top:.6rem !important;
}
.dropdown-menu-sth li a{
  font-size:.88rem;
  font-weight:500;
  padding:.55rem .8rem;
  border-radius:4px;
  display:block;
  color: var(--text-body);
}
.dropdown-menu-sth li a:hover{ background: var(--cream); color: var(--gold-dark); }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height: 86vh;
  display:flex;
  align-items:center;
  background-image: linear-gradient(180deg, rgba(27,24,21,.5), rgba(27,24,21,.32)), var(--hero-img);
  background-position: center, center;
  background-size: cover, cover;
  background-repeat: no-repeat, no-repeat;
  color: var(--white);
  padding: 7rem 0 4rem;
}
.hero-service{ min-height:56vh; padding: 6rem 0 3rem;}

/* ---------- Home page hero carousel (photo slides + fixed text overlay, no form) ---------- */
.home-hero{
  position:relative;
  min-height: 86vh;
  display:flex;
  align-items:center;
  overflow:hidden;
  color: var(--white);
  padding: 7rem 0 4rem;
}
.home-hero .carousel,
.home-hero .carousel-inner,
.home-hero .carousel-item{
  position:absolute; inset:0; height:100%;
}
.home-hero-img{ width:100%; height:100%; object-fit:cover; }
.home-hero-overlay{
  position:absolute; inset:0;
  background-image: linear-gradient(180deg, rgba(27,24,21,.48), rgba(27,24,21,.32));
  z-index:1;
}
.home-hero-content{ position:relative; z-index:2; }
.home-hero .eyebrow{ color: var(--gold-light); }
.home-hero .eyebrow::before{ background: var(--gold-light); }
.home-hero h1{ color: var(--white); font-size: clamp(2.1rem, 4.4vw, 3.4rem); max-width:760px; }
.home-hero p.lead{ color: rgba(255,255,255,.85); max-width:620px; font-size:1.08rem; margin:1rem 0 2rem; }
.home-hero .carousel-indicators{ bottom: -8px; }
.home-hero .carousel-indicators [data-bs-target]{
  width:8px; height:8px; border-radius:50%; background: rgba(255,255,255,.5); border:none; margin:0 5px;
}
.home-hero .carousel-indicators .active{ background: var(--gold); }
.hero .eyebrow{ color: var(--gold-light); }
.hero .eyebrow::before{ background: var(--gold-light); }
.hero h1{
  color: var(--white);
  font-size: clamp(2.1rem, 4.4vw, 3.4rem);
  max-width: 720px;
}
.hero p.lead{
  color: rgba(255,255,255,.85);
  max-width:560px;
  font-size:1.08rem;
  margin: 1rem 0 2rem;
}
.hero-form{
  background: rgba(250,246,238,.97);
  border-radius: var(--radius);
  padding: 1.9rem;
  box-shadow: var(--shadow-strong);
}
.hero-form h3{ font-size:1.2rem; margin-bottom:.3rem; }
.hero-form .form-sub{ color:var(--text-muted); font-size:.85rem; margin-bottom:1.2rem;}
.hero-form .form-control,
.hero-form .form-select{
  border:1px solid var(--border-soft);
  border-radius:4px;
  padding:.65rem .8rem;
  font-size:.88rem;
  margin-bottom:.75rem;
}
.hero-form .form-control:focus,
.hero-form .form-select:focus{
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,162,74,.2);
}
.hero-form .btn-gold{ width:100%; justify-content:center; }

/* ---------- Stats bar ---------- */
.stats-bar{
  background-color: var(--charcoal);
  padding: 2.6rem 0;
}
.stat-item{ text-align:center; color: var(--white); }
.stat-item .num{
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  color: var(--gold);
  font-weight:700;
}
.stat-item .label{
  font-size:.82rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color: rgba(255,255,255,.65);
}

/* ---------- About split ---------- */
.about-media{
  position:relative;
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow-soft);
}
.about-media::after{
  content:"";
  position:absolute; inset:0;
  border:10px solid var(--white);
  outline: 1px solid var(--border-soft);
  outline-offset:-10px;
  pointer-events:none;
}
.about-badge{
  position:absolute;
  bottom:-24px; left:-24px;
  background: var(--gold);
  color: var(--charcoal);
  padding:1.1rem 1.4rem;
  border-radius: var(--radius);
  box-shadow: var(--shadow-strong);
  font-family: var(--font-display);
  text-align:center;
  line-height:1.1;
}
.about-badge .n{ font-size:1.9rem; font-weight:700; }
.about-badge .t{ font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; }

/* ---------- Process (numbered — real 3-step sequence) ---------- */
/* ---------- Photo-background section (e.g. Why STH Events) ---------- */
.section-photo{
  position:relative;
  background-color: var(--charcoal);
  background-image: linear-gradient(180deg, rgba(27,24,21,.6), rgba(27,24,21,.45)), var(--section-bg);
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
  background-attachment: scroll, fixed;
}
.section-photo .eyebrow{ color: var(--gold-light); }
.section-photo .eyebrow::before{ background: var(--gold-light); }
.section-photo .section-title{ color: var(--white); }
.section-photo .section-lead{ color: rgba(255,255,255,.75); }

.process-card{
  background: var(--white);
  border:1px solid var(--border-soft);
  border-radius: var(--radius);
  padding: 2.2rem 1.8rem;
  height:100%;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.process-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-soft); }
.process-card .step-num{
  font-family: var(--font-display);
  font-size:2.6rem;
  color: var(--gold-light);
  font-weight:700;
  line-height:1;
  margin-bottom:.6rem;
}
.process-card h3{ font-size:1.15rem; letter-spacing:.03em; text-transform:uppercase; }
.process-card p{ color: var(--text-muted); font-size:.92rem; margin-bottom:1rem;}
.process-card .know-more{
  font-size:.82rem; font-weight:600; color: var(--gold-dark);
  display:inline-flex; align-items:center; gap:.35rem;
}

/* ---------- Event-type & service cards ---------- */
.icon-tile{
  width:58px; height:58px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: var(--sth-blue);
  color: var(--white);
  font-size:1.5rem;
  margin-bottom:1.1rem;
  transition: all .3s var(--ease);
  position:relative;
  z-index:1;
}
.icon-tile img{ filter: brightness(0) invert(1); width:28px; height:28px; object-fit:contain; }
.event-type-card{
  background: var(--white);
  border-radius: var(--radius);
  padding: 2rem 1.6rem;
  height:100%;
  border:1px solid var(--border-soft);
  transition: all .25s var(--ease);
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.event-type-card::before{
  content:"";
  position:absolute; inset:0;
  background-image: var(--card-bg);
  background-size:cover;
  background-position:center;
  opacity:0;
  transform: scale(1.08);
  transition: opacity .4s var(--ease), transform .5s var(--ease);
  z-index:-2;
}
.event-type-card::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(27,24,21,.2), rgba(27,24,21,.72));
  opacity:0;
  transition: opacity .4s var(--ease);
  z-index:-1;
}
.event-type-card:hover{ border-color: var(--gold); box-shadow: var(--shadow-strong); transform: translateY(-4px); }
.event-type-card:hover::before{ opacity:1; transform:scale(1); }
.event-type-card:hover::after{ opacity:1; }
.event-type-card:hover h3{ color: var(--white); }
.event-type-card:hover p{ color: rgba(255,255,255,.85); }
.event-type-card:hover .icon-tile{ background: rgba(255,255,255,.18); }
.event-type-card h3{ font-size:1.1rem; transition: color .3s var(--ease); }
.event-type-card p{ color:var(--text-muted); font-size:.9rem; margin:0; transition: color .3s var(--ease);}

.service-card{
  background: var(--white);
  border-radius: var(--radius);
  padding: 2.1rem 1.7rem;
  height:100%;
  box-shadow: var(--shadow-soft);
  border-bottom:3px solid transparent;
  transition: all .25s var(--ease);
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.service-card::before{
  content:"";
  position:absolute; inset:0;
  background-image: var(--card-bg);
  background-size:cover;
  background-position:center;
  opacity:0;
  transform: scale(1.08);
  transition: opacity .4s var(--ease), transform .5s var(--ease);
  z-index:-2;
}
.service-card::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(27,24,21,.2), rgba(27,24,21,.72));
  opacity:0;
  transition: opacity .4s var(--ease);
  z-index:-1;
}
.service-card:hover{ border-bottom-color: var(--gold); transform: translateY(-5px); box-shadow: var(--shadow-strong); }
.service-card:hover::before{ opacity:1; transform:scale(1); }
.service-card:hover::after{ opacity:1; }
.service-card:hover h3{ color: var(--white); }
.service-card:hover p{ color: rgba(255,255,255,.85); }
.service-card:hover .icon-tile{ background: rgba(255,255,255,.18); }
.service-card h3{ font-size:1.15rem; margin-bottom:.6rem; transition: color .3s var(--ease);}
.service-card p{ color:var(--text-muted); font-size:.9rem; transition: color .3s var(--ease);}
.service-card .know-more{
  font-size:.82rem; font-weight:700; color: var(--gold-dark);
  display:inline-flex; align-items:center; gap:.4rem; margin-top:.9rem;
  position:relative; z-index:1; transition: color .3s var(--ease);
}
.service-card:hover .know-more{ color: var(--gold-light); }
.service-card .know-more i{ transition: transform .2s var(--ease); }
.service-card:hover .know-more i{ transform: translateX(4px); }

/* ---------- Testimonials ---------- */
.testimonial-card{
  background: var(--white);
  border-radius: var(--radius);
  padding: 2.3rem;
  box-shadow: var(--shadow-soft);
  margin: .5rem;
  height:100%;
}
.testimonial-card .stars{ color: var(--gold); font-size:.85rem; margin-bottom:.9rem; }
.testimonial-card p{ font-style:italic; color: var(--text-body); }
.testimonial-card .client{
  display:flex; align-items:center; gap:.8rem; margin-top:1.2rem;
}
.testimonial-card .avatar{
  width:42px; height:42px; border-radius:50%;
  background: var(--cream-deep); color: var(--gold-dark);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display); font-weight:700;
}
.testimonial-card .client strong{ font-size:.88rem; display:block; }
.testimonial-card .client span{ font-size:.78rem; color:var(--text-muted); }

/* ---------- Client logo strip ---------- */
.client-badge{
  border:1px solid var(--border-soft);
  border-radius:6px;
  padding: 1.1rem .8rem;
  text-align:center;
  font-family: var(--font-display);
  font-weight:700;
  color: var(--text-muted);
  letter-spacing:.03em;
  transition: all .2s var(--ease);
  height:100%;
  display:flex; align-items:center; justify-content:center;
}
.client-badge:hover{ color: var(--gold-dark); border-color: var(--gold); }
.client-badge img{
  max-height: 42px;
  max-width: 100%;
  object-fit: contain;
}

/* Real logo image sizing inside brand slots */
.navbar-sth .brand img{ max-height:60px; width:auto; }
.footer-sth .brand img{ max-height:60px; width:auto; }

/* Gallery filter uses real client/site names */
.gallery-item{ border-radius:10px; overflow:hidden; position:relative; box-shadow: var(--shadow-soft); }
.gallery-item img{ width:100%; height:280px; object-fit:cover; transition: transform .4s var(--ease); background: var(--cream); }
.gallery-item:hover img{ transform: scale(1.06); }
.gallery-item .tag{
  position:absolute; left:14px; bottom:14px;
  background: rgba(27,24,21,.75); color:#fff;
  font-size:.78rem; padding:.35rem .75rem; border-radius:20px;
}
.filter-pill{
  border:1px solid var(--border-soft); background:#fff; color:var(--text-body);
  padding:.5rem 1.1rem; border-radius:30px; font-size:.85rem; font-weight:600;
  transition: all .2s var(--ease);
}
.filter-pill.active, .filter-pill:hover{ background: var(--gold); border-color: var(--gold); color: var(--charcoal); }

/* ---------- FAQ accordion ---------- */
.accordion-sth .accordion-item{
  border:none;
  border-bottom:1px solid var(--border-soft);
  background:transparent;
}
.accordion-sth .accordion-button{
  font-family: var(--font-display);
  font-weight:700;
  font-size:1.05rem;
  color: var(--charcoal);
  background:transparent;
  padding: 1.3rem 0;
  box-shadow:none;
}
.accordion-sth .accordion-button:not(.collapsed){ color: var(--gold-dark); }
.accordion-sth .accordion-button::after{
  filter: sepia(60%) saturate(400%) hue-rotate(0deg);
}
.accordion-sth .accordion-body{
  padding: 0 0 1.5rem;
  color: var(--text-muted);
  font-size:.94rem;
}

/* ---------- CTA banner ---------- */
.cta-banner{
  background-color: var(--charcoal);
  background-image: linear-gradient(135deg, var(--charcoal), var(--charcoal-soft));
  color: var(--white);
  border-radius: var(--radius);
  padding: 3rem;
  position:relative;
  overflow:hidden;
}
.cta-banner::before{
  content:"";
  position:absolute; right:-60px; top:-60px;
  width:220px; height:220px; border-radius:50%;
  background: rgba(201,162,74,.15);
}
.cta-banner h2{ color: var(--white); font-size:1.8rem; }
.cta-banner p{ color: rgba(255,255,255,.7); }

/* ---------- Feature list (service pages) ---------- */
.feature-list{ list-style:none; padding:0; margin:0; }
.feature-list li{
  display:flex; gap:1rem;
  padding: 1.1rem 0;
  border-bottom:1px solid var(--border-soft);
}
.feature-list li:last-child{ border-bottom:none; }
.feature-list .num-badge{
  flex:0 0 auto;
  width:38px; height:38px;
  border-radius:50%;
  background: var(--cream-deep);
  color: var(--gold-dark);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display); font-weight:700; font-size:.95rem;
}
.feature-list strong{ color: var(--charcoal); }
.feature-list span{ color: var(--text-muted); font-size:.92rem; }

.offer-card{
  background: var(--white);
  border:1px solid var(--border-soft);
  border-radius: var(--radius);
  padding: 1.8rem;
  height:100%;
  transition: all .25s var(--ease);
}
.offer-card:hover{ box-shadow: var(--shadow-soft); border-color: var(--gold); transform: translateY(-4px); }
.offer-card .icon-tile{ margin-bottom: 1rem; }

/* ---------- Map + contact section ---------- */
.map-wrap{
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow-soft);
  height: 100%;
  min-height: 340px;
}
.map-wrap iframe{ width:100%; height:100%; min-height:340px; border:0; }
.contact-card{
  background: var(--cream);
  border-radius: var(--radius);
  padding: 2.2rem;
}
.contact-card h3{ margin-bottom: 1.4rem; }
.contact-card .form-control,
.contact-card .form-select{
  background: var(--white);
  border:1px solid var(--border-soft);
  border-radius:4px;
  padding:.7rem .9rem;
  font-size:.92rem;
  color: var(--text-body);
  margin-bottom:.85rem;
  box-shadow:none;
}
.contact-card .form-control::placeholder{ color: var(--text-muted); }
.contact-card textarea.form-control{ resize: vertical; min-height:110px; }
.contact-card .form-control:focus,
.contact-card .form-select:focus{
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,162,74,.2);
  outline:none;
}
.contact-card .btn-gold{ width:100%; justify-content:center; margin-top:.3rem; }

/* ---------- Footer ---------- */
.footer-sth{
  background-color: var(--charcoal);
  color: rgba(255,255,255,.65);
  padding: 4.5rem 0 0;
  font-size: .92rem;
}
.footer-sth h5{
  color: var(--white);
  font-family: var(--font-body);
  font-weight:600;
  font-size:.95rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:1.3rem;
}
.footer-sth .brand{
  font-family: var(--font-display);
  font-size:1.5rem;
  color: var(--white);
  font-weight:700;
}
.footer-sth .brand span{ color: var(--gold); }
.footer-sth a{ color: rgba(255,255,255,.65); }
.footer-sth a:hover{ color: var(--gold-light); }
.footer-links li{ margin-bottom:.7rem; }
.footer-sth .form-control{
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  color: var(--white);
  font-size:.88rem;
  margin-bottom:.7rem;
}
.footer-sth .form-control::placeholder{ color: rgba(255,255,255,.4); }
.footer-sth .form-control:focus{
  background: rgba(255,255,255,.09);
  border-color: var(--gold);
  box-shadow:none;
  color:var(--white);
}
.footer-social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
  margin-right:.5rem;
}
.footer-social a:hover{ background: var(--gold); border-color:var(--gold); color:var(--charcoal); }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:3rem;
  padding: 1.4rem 0;
  font-size:.82rem;
  text-align:center;
  color: rgba(255,255,255,.45);
}
.footer-bottom a{ color: rgba(255,255,255,.7); }

/* ---------- Floating action buttons ---------- */
.fab-stack{
  position:fixed; right:22px; bottom:22px; z-index:1200;
  display:flex; flex-direction:column; gap:.7rem;
}
.fab{
  width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--white); font-size:1.35rem;
  box-shadow: var(--shadow-strong);
  transition: transform .2s var(--ease);
}
.fab:hover{ transform: scale(1.08); color:var(--white); }
.fab.whatsapp{ background:#25D366; }
.fab.call{ background: var(--gold-dark); }

/* ---------- Breadcrumb (service pages) ---------- */
.breadcrumb-sth{
  font-size:.85rem;
  color: rgba(255,255,255,.7);
}
.breadcrumb-sth a{ color: rgba(255,255,255,.7); }
.breadcrumb-sth a:hover{ color: var(--gold-light); }
.breadcrumb-sth .sep{ margin:0 .5rem; opacity:.6; }

/* ---------- Utilities ---------- */
.text-gold{ color: var(--gold-dark) !important; }
.bg-cream{ background: var(--cream) !important; }
.divider-gold{
  width:64px; height:3px; background: var(--gold); margin: 1rem 0 1.6rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 991.98px){
  .section{ padding: 3.6rem 0; }
  .hero{ min-height:auto; padding: 6.5rem 0 3rem; text-align:left; }
  .hero-form{ margin-top: 2.2rem; }
  .about-badge{ left:16px; bottom:-18px; padding:.9rem 1.1rem; }
  .nav-links{ gap:1rem; }
}
@media (max-width: 767.98px){
  .cta-banner{ padding:2.2rem; text-align:center; }
  .cta-banner .btn-gold{ margin-top:1rem; }
  .fab-stack{ right:14px; bottom:14px; }
  .fab{ width:46px; height:46px; font-size:1.15rem; }
}

.reveal{ opacity:0; transform: translateY(18px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}