/* FlagCity homepage additions. Scoped so shared theme pages retain their styles. */
.flagcity-home .fc-home-section,
.flagcity-home .fc-home-section * { box-sizing: border-box; }
.flagcity-home .fc-home-section { padding-top: 88px; padding-bottom: 88px; scroll-margin-top: 100px; }
.flagcity-home .fc-home-wrap { width: 100%; max-width: 1280px; margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; }
.flagcity-home .fc-home-heading-row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: end; gap: 48px; margin-bottom: 40px; }
.flagcity-home .fc-home-eyebrow { color: #b73529; font-size: 12px; font-weight: 700; line-height: 1.5; letter-spacing: .09em; margin: 0 0 12px; }
.flagcity-home .fc-home-title { color: #12314a; font-size: 56px; font-weight: 600; letter-spacing: -.035em; line-height: 1.12; margin: 0; max-width: 17ch;  }
.flagcity-home .fc-home-intro { color: #53616a; font-size: 16px; line-height: 1.75; margin: 0; max-width: 46ch; }
.flagcity-home .fc-home-benefits { background: #f7f4ec; color: #12314a; }
.flagcity-home .fc-home-benefit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.flagcity-home .fc-home-benefit { border: 1px solid #dcded9; background: #fff; padding: 28px; border-radius: 16px; box-shadow: 0 10px 24px rgba(16,33,46,.025); }
.flagcity-home .fc-home-index { display: inline-block; color: #b73529; font-size: 13px; font-weight: 700; margin-bottom: 24px; }
.flagcity-home .fc-home-section h3 { color: inherit; font-size: 21px; line-height: 1.35; font-weight: 600; margin: 0 0 12px; }
.flagcity-home .fc-home-benefit p,
.flagcity-home .fc-home-consultation p { color: #53616a; font-size: 16px; line-height: 1.7; margin: 0; }
.flagcity-home .fc-home-consultation { display: flex; align-items: center; justify-content: space-between; gap: 32px; border-top: 1px solid #dcded9; margin-top: 32px; padding-top: 28px; }
.flagcity-home .fc-home-consultation h3 { margin-bottom: 6px; }
.flagcity-home .fc-home-text-link { display: inline-flex; align-items: center; gap: 12px; color: #12314a; font-size: 15px; font-weight: 700; line-height: 1.5; min-height: 44px; text-decoration: none; flex-shrink: 0; }
.flagcity-home .fc-home-text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.flagcity-home .fc-home-arrow { flex-shrink: 0; }
.flagcity-home .fc-home-order { color: #fff; background: #12314a; }
.flagcity-home .fc-home-order .fc-home-title { color: #fff; }
.flagcity-home .fc-home-order .fc-home-eyebrow { color: #ff9d8f; }
.flagcity-home .fc-home-order .fc-home-intro { color: #d0dce3; }
.flagcity-home .fc-home-step-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 40px; list-style: none; margin: 0; padding: 0; }
.flagcity-home .fc-home-step { padding-top: 24px; border-top: 1px solid #486074; }
.flagcity-home .fc-home-step-number { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid #78909f; border-radius: 50%; color: #ffad9e; font-size: 14px; font-weight: 700; margin-bottom: 20px; }
.flagcity-home .fc-home-step p { color: #d0dce3; font-size: 16px; line-height: 1.75; margin: 0; }
.flagcity-home .fc-home-order-bottom { display: flex; justify-content: space-between; align-items: center; gap: 32px; margin-top: 40px; padding-top: 28px; border-top: 1px solid #486074; }
.flagcity-home .fc-home-order-bottom p { color: #d0dce3; font-size: 15px; line-height: 1.7; margin: 0; max-width: 50ch; }
.flagcity-home .fc-home-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 14px 24px; background: #e74c3c; color: #fff; border-radius: 999px; font-size: 19px; font-weight: 700; line-height: 1.5; text-decoration: none; flex-shrink: 0; transition: background-color 180ms ease; }
.flagcity-home .fc-home-button:hover { background: #bd3528; }
.flagcity-home .fc-home-section a:focus { outline: 3px solid #b73529; outline-offset: 5px; border-radius: 6px; }
.flagcity-home .fc-home-order a:focus { outline-color: #fff; border-radius: 999px; }
.flagcity-home .fc-home-faq { background: #f7f4ec; color: #12314a; }
.flagcity-home .fc-home-faq-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 72px; align-items: start; }
.flagcity-home .fc-home-faq-intro .fc-home-intro { margin-top: 24px; margin-bottom: 16px; }
.flagcity-home .fc-home-faq-item { border-bottom: 1px solid #c9cec9; }
.flagcity-home .fc-home-faq-item:first-child { border-top: 1px solid #c9cec9; }
.flagcity-home .fc-home-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; list-style: none; padding-top: 23px; padding-bottom: 23px; min-height: 64px; color: #12314a; font-size: 18px; line-height: 1.5; font-weight: 600; cursor: pointer; }
.flagcity-home .fc-home-faq-item summary::-webkit-details-marker { display: none; }
.flagcity-home .fc-home-faq-item summary:hover { color: #b73529; }
.flagcity-home .fc-home-toggle { width: 24px; height: 24px; position: relative; flex-shrink: 0; }
.flagcity-home .fc-home-toggle::before,
.flagcity-home .fc-home-toggle::after { content: ''; position: absolute; background: currentColor; left: 5px; top: 11px; width: 14px; height: 2px; }
.flagcity-home .fc-home-toggle::after { transform: rotate(90deg); transition: transform 180ms ease; }
.flagcity-home .fc-home-faq-item[open] .fc-home-toggle::after { transform: rotate(0); }
.flagcity-home .fc-home-faq-answer { padding-bottom: 24px; padding-right: 40px; }
.flagcity-home .fc-home-faq-answer p { margin: 0; color: #53616a; font-size: 16px; line-height: 1.8; max-width: 65ch; }
.flagcity-home[dir="rtl"] .fc-home-arrow { transform: rotate(180deg); }
.flagcity-home[dir="rtl"] .fc-home-title { letter-spacing: 0; line-height: 1.4; }
.flagcity-home[dir="rtl"] .fc-home-eyebrow { letter-spacing: 0; }
.flagcity-home[dir="rtl"] .fc-home-section h3 { line-height: 1.6; }
@media (min-width: 1280px) {
  .flagcity-home .fc-home-wrap { padding-left: 0; padding-right: 0; }
}
@media (max-width: 1023px) {
  .flagcity-home .fc-home-heading-row { gap: 32px; }
  .flagcity-home .fc-home-benefit-grid,
  .flagcity-home .fc-home-step-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flagcity-home .fc-home-faq-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .flagcity-home .fc-home-consultation,
  .flagcity-home .fc-home-order-bottom { align-items: flex-start; flex-direction: column; gap: 20px; }
}
@media (max-width: 639px) {
  .flagcity-home .fc-home-wrap { padding-left: 20px; padding-right: 20px; }
  .flagcity-home .fc-home-heading-row { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-bottom: 28px; }
  .flagcity-home .fc-home-benefit-grid,
  .flagcity-home .fc-home-step-grid { grid-template-columns: minmax(0, 1fr); }
  .flagcity-home .fc-home-benefit { padding: 24px; }
  .flagcity-home .fc-home-index { margin-bottom: 16px; }
  .flagcity-home .fc-home-step-grid { gap: 24px; }
  .flagcity-home .fc-home-step-number { margin-bottom: 16px; }
  .flagcity-home .fc-home-button { width: 100%; font-size: 19px; }
  .flagcity-home .fc-home-faq-item summary { gap: 16px; font-size: 17px; }
  .flagcity-home .fc-home-faq-answer { padding-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .flagcity-home .fc-home-button,
  .flagcity-home .fc-home-toggle::after { transition: none; }
}

/* Physical-property equivalents for right-to-left pages. */
.flagcity-home[dir="rtl"] .fc-home-faq-answer { padding-right: 0; padding-left: 40px; }
@media (max-width: 1023px) {
  .flagcity-home .fc-home-section { padding-top: 64px; padding-bottom: 64px; }
  .flagcity-home .fc-home-title { font-size: 44px; }
}
@media (max-width: 639px) {
  .flagcity-home .fc-home-section { padding-top: 56px; padding-bottom: 56px; }
  .flagcity-home .fc-home-title { font-size: 34px; }
  .flagcity-home[dir="rtl"] .fc-home-faq-answer { padding-left: 0; padding-right: 0; }
}



/* FAQ: keyboard focus is indicated by an underline, without a surrounding box. */
.flagcity-home .fc-home-faq-item summary:focus-visible > span:first-child {
  text-decoration: underline;
  text-underline-offset: 5px;
}
