/* === FORMSTINGER — MAIN CSS v3 === */
/* Mobile-first. Desktop scales up naturally. */

*, *::before, *::after { box-sizing: border-box; }

/* === PAGE WRAPPER === */
.fs-page {
  min-height: 100vh;
  background-color: #D8DADF;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.fs-frame {
  width: 100%;
  max-width: 440px;
  background-color: #F0F2F5;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* Tablet */
@media (min-width: 480px) {
  .fs-page { padding: 32px 16px 48px; }
  .fs-frame {
    width: 100%;
    max-width: 520px;
    min-height: auto;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.22);
  }
}

/* Small desktop */
@media (min-width: 768px) {
  .fs-page { padding: 36px 24px 52px; }
  .fs-frame { max-width: 700px; }
}

/* Medium desktop */
@media (min-width: 1024px) {
  .fs-page { padding: 40px 32px 60px; }
  .fs-frame { max-width: 900px; }
}

/* Large desktop 1400px+ */
@media (min-width: 1400px) {
  .fs-page { padding: 48px 40px 72px; }
  .fs-frame { max-width: 1200px !important; }
}

/* Hard stop — never exceeds 1200px regardless of viewport */
.fs-frame {
  box-sizing: border-box;
  overflow: hidden;
}

/* === STICKY BROWSER HEADER === */
.fs-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: #FFFFFF;
  border-bottom: 1px solid #DADDE1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  min-height: 48px;
}

@media (min-width: 768px) {
  .fs-header { min-height: 56px; padding: 12px 20px; }
}

.fs-header-back {
  font-size: 22px;
  color: #050505;
  cursor: pointer;
  width: 32px;
  text-align: center;
  flex-shrink: 0;
}

.fs-header-title {
  font-size: 17px;
  font-weight: 700;
  color: #050505;
  text-align: center;
  flex: 1;
  padding: 0 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (min-width: 768px) {
  .fs-header-title { font-size: 19px; }
}

.fs-header-menu {
  font-size: 22px;
  color: #050505;
  cursor: pointer;
  width: 32px;
  text-align: center;
  flex-shrink: 0;
}

/* === POST CARD === */
.fs-post-card {
  background: #FFFFFF;
  margin: 12px 14px 0;
  border-radius: 8px;
  padding: 12px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.10);
  display: flex;
  align-items: center;
  gap: 10px;
}

@media (min-width: 768px) {
  .fs-post-card { margin: 16px 20px 0; padding: 14px 16px; }
}
.fs-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.fs-avatar-placeholder {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #E4E6EB;
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .fs-avatar, .fs-avatar-placeholder { width: 48px; height: 48px; }
}

.fs-brand-info { display: flex; flex-direction: column; gap: 2px; }

.fs-brand-name {
  font-size: 15px;
  font-weight: 700;
  color: #050505;
  line-height: 1.2;
}

@media (min-width: 768px) { .fs-brand-name { font-size: 17px; } }

.fs-sponsored { font-size: 13px; color: #65676B; line-height: 1.2; }

/* === HERO + CARD WRAPPER (overlay spans both) === */
.fs-hero-card-wrap {
  position: relative;
  margin-top: 12px;
}

@media (min-width: 768px) { .fs-hero-card-wrap { margin-top: 16px; } }

/* === HERO WRAPPER === */
.fs-hero-wrap {
  width: 100%;
  position: relative;
  overflow: hidden;
  background-color: #111;
}

.fs-hero-img {
  width: 100%;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.fs-hero-img.focal-top    { object-position: center top; }
.fs-hero-img.focal-center { object-position: center center; }
.fs-hero-img.focal-bottom { object-position: center bottom; }

.fs-hero-placeholder {
  width: 100%;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, #1877F2 0%, #0a4a9e 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.4);
  font-size: 14px;
}

/* === LOGO ON HERO === */
.fs-logo-wrap {
  position: absolute;
  z-index: 10;
  pointer-events: none;
  padding: 12px;
}

.fs-logo-wrap.pos-top-left     { top: 0; left: 0; }
.fs-logo-wrap.pos-top-center   { top: 0; left: 50%; transform: translateX(-50%); }
.fs-logo-wrap.pos-top-right    { top: 0; right: 0; }
.fs-logo-wrap.pos-mid-left     { top: 50%; left: 0; transform: translateY(-50%); }
.fs-logo-wrap.pos-mid-center   { top: 50%; left: 50%; transform: translate(-50%,-50%); }
.fs-logo-wrap.pos-mid-right    { top: 50%; right: 0; transform: translateY(-50%); }
.fs-logo-wrap.pos-bot-left     { bottom: 0; left: 0; }
.fs-logo-wrap.pos-bot-center   { bottom: 0; left: 50%; transform: translateX(-50%); }
.fs-logo-wrap.pos-bot-right    { bottom: 0; right: 0; }

.fs-logo-wrap img {
  display: block;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  height: auto;
  /* Logo width is % of hero wrap — set via inline style on the wrap itself */
}

/* Logo wrap takes % width of hero — scales proportionally */
.fs-logo-wrap { max-width: 40%; }

/* Scale logo down slightly on larger screens so it stays proportional to mobile view */
@media (min-width: 768px)  { .fs-logo-wrap { max-width: 32%; } }
@media (min-width: 1024px) { .fs-logo-wrap { max-width: 28%; } }
@media (min-width: 1400px) { .fs-logo-wrap { max-width: 24%; } }

/* === OVERLAY === */
.fs-overlay {
  position: absolute;
  left: 8%;
  right: 8%;
  padding: 14px 18px;
  z-index: 20;
  border-radius: 0;
}

@media (min-width: 768px) { .fs-overlay { left: 9%; right: 9%; padding: 18px 22px; } }

.fs-overlay.overlay-top    { top: 12px; }
/* Bottom overlay: positioned from bottom of hero using calc */
.fs-overlay.overlay-bottom {
  /* sits straddling the hero/card boundary */
  top: calc(var(--hero-height, 75%) - 40px);
}

.fs-overlay.text-left   { text-align: left; }
.fs-overlay.text-center { text-align: center; }
.fs-overlay.text-right  { text-align: right; }

.fs-overlay.radius-rounded { border-radius: 10px; }

.fs-overlay-headline {
  font-size: clamp(14px, 3.8vw, 20px);
  font-weight: 800;
  line-height: 1.25;
  margin: 0 0 2px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

/* Use JS to set position — fallback: use negative margin approach */
.fs-overlay.overlay-bottom {
  position: absolute;
  bottom: auto;
  top: auto;
  /* Will be set dynamically via inline style in template */
}

/* === CONTENT CARD === */
.fs-content-card {
  background: #FFFFFF;
  margin: 0;
  border-radius: 0;
  padding: 48px 20px 20px;
  box-shadow: none;
  position: relative;
  z-index: 5;
  width: 100%;
}

@media (min-width: 768px) {
  .fs-content-card { padding: 52px 32px 28px; }
}

/* Full block mode */
.fs-frame.mode-fullblock .fs-content-card {
  margin: 0;
  border-radius: 0;
  box-shadow: none;
}

/* Block color variants */
.fs-content-card.block-navy     { background: #1a2a4a; }
.fs-content-card.block-black    { background: #111111; }
.fs-content-card.block-charcoal { background: #2d2d2d; }
.fs-content-card.block-white    { background: #FFFFFF; }
.fs-content-card.block-gold     { background: #C9A84C; }

/* Text inversion on dark cards */
.fs-content-card.block-navy .fs-bullet-item,
.fs-content-card.block-black .fs-bullet-item,
.fs-content-card.block-charcoal .fs-bullet-item { color: #FFFFFF; }

.fs-content-card.block-navy .fs-phone-line,
.fs-content-card.block-black .fs-phone-line,
.fs-content-card.block-charcoal .fs-phone-line { color: #FFFFFF; }

/* === BULLETS === */
.fs-bullets {
  list-style: none;
  margin: 0 auto 18px;
  padding: 0;
  display: table; /* shrink-wraps to content width */
}

@media (min-width: 768px) { .fs-bullets { margin-bottom: 24px; } }

/* Alignment modes — all center the block, left keeps text left-aligned */
.fs-bullets.align-left   { margin-left: auto; margin-right: auto; text-align: left; }
.fs-bullets.align-center { margin-left: auto; margin-right: auto; text-align: center; }
.fs-bullets.align-right  { margin-left: auto; margin-right: 0; text-align: right; }

.fs-bullet-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(13px, 3.5vw, 17px);
  font-weight: 500;
  color: #050505;
  line-height: 1.3;
  padding: 4px 0;
}

.fs-bullet-icon { flex-shrink: 0; font-size: clamp(14px, 3.5vw, 18px); line-height: 1; }

/* === CTA BUTTON === */
.fs-cta-wrap {
  display: flex;
  justify-content: center;
  margin: 0 0 4px;
}

.fs-cta-btn {
  display: inline-block;
  width: auto;
  min-width: 200px;
  padding: clamp(12px, 2.5vw, 16px) clamp(28px, 6vw, 48px);
  font-size: clamp(14px, 3.2vw, 18px);
  font-weight: 800;
  font-family: inherit;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
  border: none;
  cursor: pointer;
  transition: filter 0.15s, transform 0.1s;
  text-decoration: none;
  position: relative;
  overflow: hidden;
}

.fs-cta-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.fs-cta-btn:active { transform: translateY(0); }

/* Gloss highlight overlay */
.fs-cta-btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(to bottom, rgba(255,255,255,0.22) 0%, rgba(255,255,255,0) 100%);
  pointer-events: none;
  border-radius: inherit;
}

/* Button shapes */
.fs-cta-btn.shape-rounded { border-radius: 8px; }
.fs-cta-btn.shape-pill    { border-radius: 999px; }
.fs-cta-btn.shape-square  { border-radius: 2px; }

/* Button colors — all with gradient + border */
.fs-cta-btn.color-gold {
  background: linear-gradient(to bottom, #D4A843 0%, #A8832A 100%);
  color: #1a1a1a;
  border: 1.5px solid #E8C060;
  box-shadow: 0 3px 10px rgba(168,131,42,0.45), inset 0 1px 0 rgba(255,255,255,0.15);
}

.fs-cta-btn.color-blue {
  background: linear-gradient(to bottom, #2186FF 0%, #1265D4 100%);
  color: #FFFFFF;
  border: 1.5px solid #5AAEFF;
  box-shadow: 0 3px 10px rgba(18,101,212,0.4), inset 0 1px 0 rgba(255,255,255,0.15);
}

.fs-cta-btn.color-navy {
  background: linear-gradient(to bottom, #243560 0%, #111e3a 100%);
  color: #FFFFFF;
  border: 1.5px solid #3d5a9e;
  box-shadow: 0 3px 10px rgba(17,30,58,0.4), inset 0 1px 0 rgba(255,255,255,0.12);
}

.fs-cta-btn.color-white {
  background: linear-gradient(to bottom, #FFFFFF 0%, #E8E8E8 100%);
  color: #1a1a1a;
  border: 1.5px solid #FFFFFF;
  box-shadow: 0 3px 10px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.8);
}

.fs-cta-btn.color-green {
  background: linear-gradient(to bottom, #37913c 0%, #1e6621 100%);
  color: #FFFFFF;
  border: 1.5px solid #5bc460;
  box-shadow: 0 3px 10px rgba(30,102,33,0.4), inset 0 1px 0 rgba(255,255,255,0.15);
}

/* === PHONE LINE === */
.fs-phone-line {
  margin-top: 14px;
  text-align: center;
  font-size: clamp(12px, 3vw, 16px);
  font-weight: 700;
  color: #050505;
  letter-spacing: 0.03em;
}

/* === FORM WRAP === */
.fs-form-wrap { margin-top: 18px; }

.fs-form-wrap .wpcf7-form { display: flex; flex-direction: column; gap: 10px; }

.fs-form-wrap .wpcf7-form-control-wrap { display: block; width: 100%; }

.fs-form-wrap input[type="text"],
.fs-form-wrap input[type="email"],
.fs-form-wrap input[type="tel"] {
  width: 100%;
  padding: 13px 14px;
  border: 1.5px solid #DADDE1;
  border-radius: 8px;
  font-size: 16px;
  color: #050505;
  background-color: #F0F2F5;
  font-family: inherit;
  transition: border-color 0.15s, background-color 0.15s;
  -webkit-appearance: none;
}

.fs-form-wrap input[type="text"]:focus,
.fs-form-wrap input[type="email"]:focus,
.fs-form-wrap input[type="tel"]:focus {
  outline: none;
  border-color: #1877F2;
  background-color: #FFFFFF;
}

.fs-form-wrap input[type="submit"],
.fs-form-wrap .wpcf7-submit {
  width: 100%;
  background-color: #1877F2;
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  padding: 15px 0;
  font-size: 17px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: background-color 0.15s;
  -webkit-appearance: none;
}

.fs-form-wrap input[type="submit"]:hover,
.fs-form-wrap .wpcf7-submit:hover { background-color: #166FE5; }

.fs-form-wrap .cf-turnstile,
.fs-form-wrap .turnstile-wrapper { display: flex; justify-content: center; margin: 4px 0; }

.fs-form-wrap .wpcf7-not-valid-tip { font-size: 12px; color: #e53935; margin-top: 4px; display: block; }

.fs-form-wrap .wpcf7-response-output {
  margin: 8px 0 0; padding: 10px 14px;
  border-radius: 6px; font-size: 13px; border: none;
}

.fs-form-wrap .wpcf7-mail-sent-ok { background-color: #e8f5e9; color: #2e7d32; }
.fs-form-wrap .wpcf7-mail-sent-ng,
.fs-form-wrap .wpcf7-spam-blocked  { background-color: #ffebee; color: #c62828; }

/* === THANK YOU === */
.fs-thankyou-card {
  background: #FFFFFF;
  margin: 0 14px 12px;
  border-radius: 8px;
  padding: 24px 16px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.10);
  text-align: center;
  display: none;
}

@media (min-width: 768px) { .fs-thankyou-card { margin: 0 20px 16px; padding: 32px 24px; } }

.fs-thankyou-card h2 { font-size: 20px; font-weight: 800; color: #050505; margin: 0 0 8px; }
.fs-thankyou-card p  { font-size: 14px; color: #65676B; margin: 0; line-height: 1.5; }

/* === FOOTER SPACE === */
.fs-footer-space { height: 32px; }
