/* ===========================================================
   GS Elite Event — contact.css
   Styles specific to contact.html
=========================================================== */

/* ---------- hero ---------- */
.hero{
  position:relative; overflow:hidden; padding:76px 20px 64px;
  background:var(--black) url('../assets/images/hero-banner.jpg') center/cover no-repeat;
  text-align:center;
}
.hero__pattern{
  position:absolute; inset:0; z-index:0;
  background:var(--banner-gradient);
  opacity:.82; pointer-events:none;
}
.hero__glow{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.35; animation:float 9s ease-in-out infinite; }
.hero__glow--a{ width:280px; height:280px; background:var(--gold-500); top:-90px; left:-60px; }
.hero__glow--b{ width:220px; height:220px; background:var(--maroon-500); bottom:-80px; right:-40px; animation-delay:-4s; }
@keyframes float{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(18px);} }
.hero__inner{ position:relative; max-width:640px; margin:0 auto; animation:riseIn .7s ease both; }
.hero__brandmark{ display:flex; justify-content:center; margin-bottom:18px; }
.hero__ring{
  width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--gold-400); background:rgba(255,255,255,.03);
}
.hero__ring span{ font-family:'Playfair Display',serif; font-weight:700; font-size:22px; color:var(--gold-300); }
.hero__eyebrow{ color:var(--gold-300); font-size:12px; font-weight:600; letter-spacing:.16em; margin-bottom:14px; }
.hero__title{ font-size:clamp(40px,7vw,60px); font-weight:800; color:var(--cream); letter-spacing:.02em; }
.hero__subtitle{ color:rgba(255,255,255,.78); font-size:15.5px; line-height:1.7; max-width:480px; margin:0 auto; }

/* ---------- sections ---------- */
.section{ padding:56px 20px; max-width:1080px; margin:0 auto; }
.section--quote{ padding-top:52px; }
.section--shaded{
  position:relative;
  background:var(--cream-100);
  box-shadow:0 0 0 100vmax var(--cream-100);
  clip-path:inset(0 -100vmax);
}
.section__head{ text-align:center; max-width:560px; margin:0 auto 34px; display:flex; flex-direction:column; align-items:center; gap:12px; }
.section__title{ font-size:clamp(26px,4vw,34px); font-weight:700; color:var(--maroon-800); }
.section__sub{ color:var(--ink-500); font-size:14.5px; }

.quote-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:24px; align-items:start; }
@media (max-width:780px){ .quote-grid{ grid-template-columns:1fr; } }

.card{ background:var(--cream-50); border-radius:var(--radius); padding:30px; box-shadow:0 18px 40px -24px rgba(59,14,32,.25); border:1px solid var(--cream-200); }
.card__title{ font-size:20px; font-weight:700; color:var(--ink-900); margin-bottom:20px; }

.form{ display:flex; flex-direction:column; gap:16px; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:480px){ .form__row{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; color:var(--ink-700); }
.field input, .field select, .field textarea{
  border:1.5px solid var(--cream-200); border-radius:10px; padding:11px 13px; font-size:14px; color:var(--ink-900);
  background:var(--cream-50); transition:border-color .15s ease, box-shadow .15s ease; resize:vertical; width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--maroon-500); box-shadow:0 0 0 3px rgba(154,46,82,.14); background:#fff;
}

.form-success{ text-align:center; padding:20px 6px; display:flex; flex-direction:column; align-items:center; gap:10px; animation:riseIn .5s ease both; }
.form-success__icon{
  width:52px; height:52px; border-radius:50%; background:linear-gradient(135deg,var(--gold-300),var(--gold-500));
  display:flex; align-items:center; justify-content:center; color:var(--maroon-950);
}
.form-success h3{ font-size:18px; }
.form-success p{ color:var(--ink-500); font-size:14px; max-width:280px; }
.form-success[hidden], .form[hidden]{ display:none; }

.quick-cta{ display:flex; flex-direction:column; gap:10px; margin-bottom:22px; }
.btn--wa{ background:linear-gradient(135deg,var(--maroon-500),var(--maroon-800)); color:var(--cream); justify-content:space-between; }
.btn--wa:hover{ transform:translateY(-1px); }
.btn__arrow{ margin-left:auto; }
.btn--call{ background:linear-gradient(135deg,var(--gold-300),var(--gold-500)); color:var(--maroon-950); font-weight:700; }
.btn--call:hover{ transform:translateY(-1px); }
.btn--disabled{ opacity:.55; cursor:not-allowed; }
.btn--disabled:hover{ transform:none; }

.info-rows{ display:flex; flex-direction:column; gap:10px; }
.info-row{
  display:flex; align-items:flex-start; gap:12px; padding:13px 14px; border-radius:12px;
  background:var(--cream-50); border:1px solid var(--cream-200);
}
.info-row__icon{
  width:34px; height:34px; min-width:34px; border-radius:9px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--gold-300),var(--gold-500)); color:var(--maroon-950);
}
.info-row__text{ display:flex; flex-direction:column; gap:2px; }
.info-row strong{ font-size:13px; color:var(--ink-900); }
.info-row em{ font-style:normal; font-size:13px; color:var(--ink-500); line-height:1.5; white-space:pre-line; }

/* ---------- FAQ ---------- */
.faq-card{ background:var(--cream-50); border-radius:var(--radius); border:1px solid var(--cream-200); overflow:hidden; box-shadow:0 18px 40px -28px rgba(59,14,32,.22); }
.faq-empty{ padding:28px; text-align:center; color:var(--ink-500); font-size:14px; }
.faq-item{ border-bottom:1px solid var(--cream-200); }
.faq-item:last-child{ border-bottom:none; }
.faq-item__q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:none; border:none; padding:19px 22px; text-align:left; font-weight:600; font-size:15px; color:var(--ink-900);
}
.faq-item__chev{ transition:transform .25s ease; color:var(--maroon-600); flex:none; display:flex; }
.faq-item.is-open .faq-item__chev{ transform:rotate(180deg); }
.faq-item__panel{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .28s ease; }
.faq-item.is-open .faq-item__panel{ grid-template-rows:1fr; }
.faq-item__panel-inner{ overflow:hidden; padding:0 22px; color:var(--ink-500); font-size:14px; line-height:1.7; }
.faq-item.is-open .faq-item__panel-inner{ padding-bottom:19px; }

/* ---------- follow us ---------- */
.follow{
  position:relative; margin-top:12px; padding:56px 20px 60px; text-align:center; overflow:hidden;
  background:linear-gradient(160deg,var(--burgundy-deep),var(--black) 55%,var(--burgundy));
}
.follow__ornament{ position:absolute; inset:0; background:radial-gradient(60% 80% at 50% 0%, rgba(201,162,39,.16), transparent 70%); }
.follow__canvas{ position:absolute; inset:0; z-index:0; display:block; pointer-events:none; }
.follow__title{ position:relative; font-family:'Dancing Script',cursive; font-size:clamp(30px,5vw,42px); color:var(--gold-300); margin-bottom:26px; }
.follow__icons{ position:relative; display:flex; justify-content:center; gap:18px; flex-wrap:wrap; }
.follow__icon{
  width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--gold-300),var(--gold-500)); color:var(--maroon-950);
  border:1.5px solid rgba(255,255,255,.4);
  box-shadow:0 10px 22px -10px rgba(0,0,0,.55);
  transition:transform .2s ease, box-shadow .25s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.follow__icon:nth-child(1) .icon-pulse{ animation-delay:0s; }
.follow__icon:nth-child(2) .icon-pulse{ animation-delay:.25s; }
.follow__icon:nth-child(3) .icon-pulse{ animation-delay:.5s; }
.follow__icon:nth-child(4) .icon-pulse{ animation-delay:.75s; }
.follow__icon.is-muted{ background:rgba(255,255,255,.08); color:rgba(246,236,211,.55); border-color:rgba(241,222,156,.3); box-shadow:none; }
/* hover / focus glow for these icons lives in base.css */

.form-error{ color:#B23B3B; font-size:13px; background:#F7DEDE; border-radius:10px; padding:10px 13px; line-height:1.5; }
.form-error[hidden]{ display:none; }
