/* =====================================================================
   Top Grade Movers — pages/contact.css
   Contact page (pages/template-contact.php) section styles only.
   ===================================================================== */

/* =========================================================
   1. HERO / BANNER
   Base component: `.hero-banner` in components/sections.css — shared
   with the About page. Only the Contact-specific deltas live here.

   (A duplicate `.breadcrumb__separator { color: var(--primary-color) }`
   rule used to sit in this block. It was dead: an identical-specificity
   rule later in the same file reset the colour, so it never rendered.
   Removed with the extraction.)
   ========================================================= */
.hero-banner--contact .hero-banner__inner {
   max-width: 760px;
}

.hero-banner--contact .hero-banner__text {
   max-width: 640px;
}

/* =========================================================
   2. CONTACT INFO CARDS (overlap hero)
   ========================================================= */
.contact-cards {
   position: relative;
   z-index: 2;
   margin-top: -60px;
   padding-bottom: 0;
}

.contact-cards__row {
   --bs-gutter-x: 28px;
   --bs-gutter-y: 28px;
}

.contact-card,
.contact-card--link {
   background: var(--background-color);
   border-radius: var(--radius-md);
   box-shadow: var(--shadow-md);
   padding: 31px;
   display: flex;
   flex-direction: column;
   gap: 9px;
   height: 100%;
   transition: transform var(--transition-base), box-shadow var(--transition-base);
   text-decoration: none;
   color: inherit;
}

.contact-card--link:hover {
   transform: translateY(-4px);
   box-shadow: var(--shadow-lg);
}

.contact-card__icon {
   width: 56px;
   height: 56px;
   border-radius: var(--radius-14);
   background: rgba(var(--primary-rgb), .1);
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
}

.contact-card__icon svg {
   width: 28px;
   height: 28px;
   color: var(--primary-color);
}

.contact-card__label {
   font-weight: var(--font-weight-semibold);
   font-size: var(--body-size-2xs);
   letter-spacing: .12em;
   text-transform: uppercase;
   color: var(--muted-color);
}

.contact-card__value {
   font-weight: var(--font-weight-bold);
   font-size: var(--h5-size);
   color: var(--heading-color);
   word-wrap: break-word;
}

.contact-card__subtext {
   font-size: var(--body-size-xs);
   color: var(--muted-color);
}

/* =========================================================
   2. CONTACT FORM + INFO PANEL (2-col)
   ========================================================= */
.contact-form-section {
   background: var(--background-color);
   padding-block: var(--section-spacing);
}

.contact-form-section__grid {
   display: grid;
   grid-template-columns: 1.2fr .8fr;
   gap: 60px;
   align-items: start;
}

/* Form Card */
.contact-form {
   background: var(--background-color);
   border: 1px solid var(--border-color);
   border-radius: var(--radius-8);
   box-shadow: 0 30px 60px -34px rgba(var(--black-rgb), .25);
   padding: 57.5px 49px 51px;
}

.contact-form__eyebrow {
   margin-bottom: var(--gap-sm);
   font-size: .75rem;
   letter-spacing: .3em;
}

.contact-form__eyebrow.eyebrow--line::before {
   width: 36px;
   margin-right: .75rem;
}

.contact-form__heading {
   font-weight: 900;
   font-size: clamp(1.75rem, 3vw, 2.5rem);
   letter-spacing: -.02em;
   color: var(--heading-color);
   margin-bottom: var(--gap-md);
}

.contact-form__subtitle {
   color: var(--text-muted-soft);
   font-size: var(--body-size-sm);
   margin-bottom: 2rem;
   line-height: 1.7;
}

.contact-form .tg-label {
   display: block;
   font-weight: var(--font-weight-bold);
   font-size: .6875rem;
   letter-spacing: .12em;
   text-transform: uppercase;
   color: var(--text-input);
   margin-bottom: .5rem;
}

.contact-form .tg-input {
   border: 1px solid var(--border-color);
   border-radius: var(--radius-4);
   padding: .9375rem 1.0625rem;
   font-size: var(--body-size-xs);
   color: var(--heading-color);
   background: var(--background-color);
   line-height: 1.5;
}

.contact-form .tg-input::placeholder {
   color: var(--text-placeholder);
   opacity: .7;
}

.contact-form .tg-input:focus {
   border-color: var(--primary-color);
   box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .12);
   outline: none;
}

.contact-form select.tg-input {
   appearance: none;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23ff4d1f' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
   background-repeat: no-repeat;
   background-position: right 1rem center;
   padding-right: 2.5rem;
}

.contact-form textarea.tg-input {
   resize: vertical;
   min-height: 130px;
}

.contact-form .wpcf7-spinner {
   position: absolute;
   top: 50%;
   right: -30px;
   transform: translateY(-50%);
}

.contact-form .wpcf7-submit {
   position: relative;
}

.contact-form__note {
   display: flex;
   align-items: center;
   gap: .6rem;
   font-size: .75rem;
   color: var(--text-muted-soft);
   margin-top: 1.25rem;
   margin-bottom: 1.5rem;
   line-height: 1.4;
}

.contact-form__note svg {
   flex-shrink: 0;
   width: 15px;
   height: 15px;
   color: var(--primary-color);
}

.contact-form .wpcf7-submit,
.contact-form input[type="submit"].wpcf7-submit {
   width: 100%;
   padding: 20px 44px;
   font-weight: var(--font-weight-bold);
   font-size: var(--body-size-sm);
   text-transform: uppercase;
   letter-spacing: .08em;
   background: var(--primary-color);
   border: none;
   border-radius: var(--radius-2);
   box-shadow: var(--shadow-cta);
   color: var(--text-color-light);
   cursor: pointer;
   transition: background var(--transition-base);
}

.contact-form .wpcf7-submit:hover,
.contact-form input[type="submit"].wpcf7-submit:hover {
   background: var(--primary-hover);
}

.contact-form__disclaimer {
   text-align: center;
   color: var(--muted-color);
   font-size: var(--body-size-2xs);
   margin-top: 1rem;
   line-height: 1.5;
}

/* Info Panel (dark) */
.contact-info-panel {
   position: relative;
   background: var(--dark-bg);
   border-radius: var(--radius-8);
   padding: 48px 44px 44px;
   overflow: hidden;
}

.contact-info-panel::before {
   content: '';
   position: absolute;
   left: 0;
   top: 0;
   bottom: 0;
   width: 5px;
   background: var(--primary-color);
}

.contact-info-panel__deco {
   position: absolute;
   top: -90px;
   right: -90px;
   width: 380px;
   height: 380px;
   border: 60px solid rgba(var(--primary-rgb), .08);
   border-radius: var(--radius-full);
   pointer-events: none;
}

.contact-info-panel__eyebrow {
   color: var(--primary-color);
   font-weight: var(--font-weight-semibold);
   font-size: var(--body-size-2xs);
   letter-spacing: .12em;
   text-transform: uppercase;
   display: block;
   margin-bottom: var(--gap-sm);
}

.contact-info-panel__heading {
   font-weight: 900;
   font-size: clamp(1.5rem, 2.2vw, 1.875rem);
   letter-spacing: -.02em;
   color: var(--text-color-light);
   margin-bottom: var(--gap-md);
   line-height: 1.15;
}

.contact-info-panel__text {
   color: rgba(var(--white-rgb), .72);
   font-size: .90625rem;
   margin-bottom: 2rem;
   line-height: 1.8;
}

.contact-info-panel__rows {
   display: flex;
   flex-direction: column;
   gap: 22px;
}

.contact-info-row {
   display: flex;
   gap: 1rem;
   align-items: flex-start;
}

.contact-info-row__icon {
   flex-shrink: 0;
   width: 46px;
   height: 46px;
   border-radius: var(--radius-12);
   background: rgba(var(--primary-rgb), .14);
   display: flex;
   align-items: center;
   justify-content: center;
}

.contact-info-row__icon svg {
   width: 21px;
   height: 21px;
   color: var(--primary-color);
}

.contact-info-row__content {
   display: flex;
   flex-direction: column;
   gap: 2px;
}

.contact-info-row__label {
   font-weight: var(--font-weight-bold);
   font-size: .6875rem;
   letter-spacing: .16em;
   text-transform: uppercase;
   color: rgba(var(--white-rgb), .5);
}

.contact-info-row__value {
   font-weight: var(--font-weight-bold);
   font-size: var(--body-size);
   color: var(--text-color-light);
}

.contact-info-row__subtext {
   font-size: var(--body-size-xs);
   color: rgba(var(--white-rgb), .7);
}

.contact-info-panel__divider {
   height: 1px;
   background: rgba(var(--white-rgb), .12);
   margin: 1.75rem 0;
}

.contact-info-panel__socials {
   display: flex;
   gap: .75rem;
   flex-wrap: wrap;
}

.contact-info-panel__social {
   width: 42px;
   height: 42px;
   border-radius: var(--radius-full);
   border: 1px solid rgba(var(--white-rgb), .18);
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--text-color-light);
   transition: border-color var(--transition-base), color var(--transition-base);
   text-decoration: none;
}

.contact-info-panel__social:hover,
.contact-info-panel__social:focus-visible {
   border-color: var(--primary-color);
   color: var(--primary-color);
}

.contact-info-panel__social svg {
   width: 16px;
   height: 16px;
}

p.contact-form__disclaimer {
   padding-top: 15px;
}

/* =========================================================
   3. OPENING HOURS
   ========================================================= */
.hours-section {
   position: relative;
   overflow: hidden;
}

.hours-section__blob {
   position: absolute;
   top: -100px;
   right: -100px;
   width: 300px;
   height: 300px;
   border-radius: var(--radius-full);
   background: radial-gradient(rgba(var(--primary-rgb), .10), transparent 70%);
   pointer-events: none;
}

.hours-section__eyebrow {
   margin-bottom: var(--gap-sm);
}

.hours-section__heading {
   font-weight: var(--font-weight-extrabold);
   font-size: clamp(2rem, 3.5vw, 2.75rem);
   color: var(--heading-color);
   line-height: 1.1;
}

.hours-section__heading i {
   font-style: italic;
}

.hours-table {
   width: 100%;
}

.hours-table__row {
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: 1rem;
   flex-wrap: wrap;
   padding-block: 18px;
   border-bottom: 1px solid var(--border-color);
}

.hours-table__row:last-child {
   border-bottom: none;
}

.hours-table__day {
   font-weight: var(--font-weight-bold);
   font-size: 1.125rem;
   color: var(--heading-color);
}

.hours-table__time {
   font-weight: var(--font-weight-semibold);
   font-size: var(--body-size);
   color: var(--primary-color);
}

/* =========================================================
   4. FAQ ACCORDION (dark)
   ========================================================= */
.faq-section {
   position: relative;
   overflow: hidden;
}

.faq-section__edge {
   position: absolute;
   left: 0;
   top: 0;
   bottom: 0;
   width: 6px;
   background: var(--primary-color);
}

.faq-section__head {
   text-align: center;
   margin-bottom: 3.5rem;
}

.faq-section__eyebrow {
   color: var(--primary-color);
}

.faq-section__heading {
   font-weight: var(--font-weight-extrabold);
   font-size: clamp(2rem, 4vw, 3.25rem);
   color: var(--text-color-light);
   line-height: 1.1;
}

.faq-section__accordion {
   max-width: 860px;
   margin: 0 auto;
   display: flex;
   flex-direction: column;
   gap: 14px;
}

.faq-item {
   background: rgba(var(--white-rgb), .03);
   border: 1px solid rgba(var(--white-rgb), .06);
   border-radius: var(--radius-md);
   overflow: hidden;
   transition: border-color var(--transition-base);
}

.faq-item.is-open {
   border-color: rgba(var(--primary-rgb), .3);
}

.faq-item__header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   width: 100%;
   padding: 1.25rem 1.5rem;
   background: none;
   border: none;
   cursor: pointer;
   color: var(--text-color-light);
   font-weight: var(--font-weight-bold);
   font-size: 1.125rem;
   text-align: left;
   gap: 1rem;
   transition: color var(--transition-base);
}

.faq-item__toggle {
   flex-shrink: 0;
   width: 32px;
   height: 32px;
   border-radius: var(--radius-full);
   background: rgba(var(--white-rgb), .08);
   display: flex;
   align-items: center;
   justify-content: center;
   transition: background var(--transition-base), transform var(--transition-base);
}

.faq-item__toggle svg {
   width: 14px;
   height: 14px;
   color: rgba(var(--white-rgb), .6);
   transition: transform var(--transition-base);
}

.faq-item.is-open .faq-item__toggle {
   background: var(--primary-color);
}

.faq-item.is-open .faq-item__toggle svg {
   color: var(--text-color-light);
   transform: rotate(180deg);
}

.faq-item__body {
   padding: 0 1.5rem 1.25rem;
   color: rgba(var(--white-rgb), .6);
   font-size: var(--body-size);
   line-height: 1.7;
}

.faq-item__body[hidden] {
   display: none;
}

/* =========================================================
   5. RESPONSIVE
   ========================================================= */
@media (max-width: 1199.98px) {
   .contact-form-section__grid {
      gap: 40px;
   }

   .contact-info-panel {
      padding: 32px;
   }
}

@media (max-width: 991.98px) {
   .contact-form-section__grid {
      grid-template-columns: 1fr;
      gap: 30px;
   }

   .contact-cards__row {
      justify-content: center;
   }

   .contact-cards {
      margin-top: -30px;
   }
}

@media (max-width: 767.98px) {

   .contact-card,
   .contact-card--link {
      padding: 24px;
   }

   .contact-form {
      padding: 28px;
   }

   .faq-section__accordion {
      max-width: 100%;
   }

   .faq-item__header {
      padding: 1rem 1.25rem;
      font-size: var(--body-size);
   }

   .faq-item__body {
      padding: 0 1.25rem 1rem;
   }
}

@media (max-width: 575.98px) {
   .contact-cards {
      margin-top: -20px;
   }

   .contact-cards__row {
      --bs-gutter-y: 1rem;
   }

   .hero-banner--contact .hero-banner__title {
      font-size: clamp(2rem, 10vw, 2.75rem);
   }

   .hero-banner--contact .hero-banner__text {
      font-size: .95rem;
   }

   .contact-form__heading {
      font-size: var(--h4-size);
   }

   .hours-section__heading {
      font-size: 2rem;
   }

   .hours-table__row {
      padding-block: 14px;
   }

   .contact-form .wpcf7-submit,
   .contact-form input[type="submit"].wpcf7-submit {
      height: 50px;
      font-size: .9rem;
   }
}
