.elementor-44 .elementor-element.elementor-element-1c36762{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-44 .elementor-element.elementor-element-6a3bccb{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:48px 48px;--row-gap:48px;--column-gap:48px;--padding-top:80px;--padding-bottom:80px;--padding-left:0px;--padding-right:0px;}.elementor-44 .elementor-element.elementor-element-d6a418a{--display:flex;}.elementor-44 .elementor-element.elementor-element-66f5f00{--display:flex;}.elementor-44 .elementor-element.elementor-element-d5b5564{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-44 .elementor-element.elementor-element-27284b8{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-44 .elementor-element.elementor-element-6981106{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}@media(min-width:768px){.elementor-44 .elementor-element.elementor-element-d6a418a{--width:56%;}.elementor-44 .elementor-element.elementor-element-66f5f00{--width:44%;}}@media(max-width:767px){.elementor-44 .elementor-element.elementor-element-6a3bccb{--padding-top:40px;--padding-bottom:40px;--padding-left:0px;--padding-right:0px;}.elementor-44 .elementor-element.elementor-element-d6a418a{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}}/* Start custom CSS *//* ==========================================================================
   GOODWILL GROUP — CONTACT PAGE STYLES (/get-in-touch/)
   Paste into THIS PAGE's own Elementor Page Settings → Advanced → Custom CSS.
   Uses the global tokens and global .btn classes. Contains only normal class
   rules and no font settings — fonts come from Elementor Global Fonts.
   Styles both the Contact Form 7 form and the plain HTML twin (same classes).
   ========================================================================== */

/* ===== 01-contact-hero.html ===== */
.ct-hero{
  position:relative; overflow:hidden;
  padding-top:calc(var(--sp-2xl) + var(--header-height));   /* clears the fixed glass header */
  padding-bottom:var(--sp-xl);
  background:
    radial-gradient(900px 420px at 88% 0%, rgba(143,132,255,0.30), transparent 62%),
    linear-gradient(135deg, var(--blue) 0%, var(--blue-dark) 100%);
}
.ct-hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:linear-gradient(to bottom, #000 0%, transparent 85%);
          mask-image:linear-gradient(to bottom, #000 0%, transparent 85%);
  pointer-events:none;
}
.ct-hero .wrap{ position:relative; z-index:1; }
.ct-breadcrumb{ font-size:0.8rem; color:rgba(255,255,255,0.65); margin-bottom:1.5rem; }
.ct-breadcrumb a{ color:#fff; text-decoration:underline; }
.ct-breadcrumb span{ margin:0 0.4rem; }
.ct-breadcrumb .current{ margin:0; color:rgba(255,255,255,0.88); }
.ct-hero-eyebrow{ font-weight:700; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--blue-tint-2); }
.ct-hero h1{ color:#fff; font-size:var(--f-display); line-height:1.1; margin-top:0.6rem; }
.ct-hero .lead{ color:rgba(255,255,255,0.78); max-width:56ch; margin-top:1.25rem; }
.ct-quick{ display:flex; flex-wrap:wrap; gap:0.75rem; margin-top:var(--sp-lg); }
.ct-hero a.ct-chip{
  display:inline-flex; align-items:center; gap:0.55rem;
  padding:0.7rem 1.2rem;
  border-radius:2rem;
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.2);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  font-size:0.88rem; font-weight:700; color:#fff;
  transition:background 0.2s ease, transform 0.2s ease;
}
.ct-hero a.ct-chip:hover{ background:rgba(255,255,255,0.2); color:#fff; transform:translateY(-2px); }
.ct-hero a.ct-chip i{ color:var(--blue-tint-2); }


/* ===== 02-contact-info.html + the Contact Form 7 form ===== */
/* The two columns (form | details) are built with native Elementor containers — no grid CSS needed here.
   Left: Shortcode widget with the Contact Form 7 shortcode.  Right: HTML widget with 02-contact-info.html. */

/* -- the form card (works for the CF7 form and the plain HTML twin) -- */
.gw-form{
  padding:var(--sp-lg);
  background:#fff;
  border:1px solid var(--line);
  border-radius:1.5rem;
  box-shadow:var(--shadow-md);
}
.gw-form h3{ font-size:var(--f-h3); }
.gw-form .gw-form-sub{ margin:0.5rem 0 var(--sp-md); font-size:var(--f-small); color:var(--muted); }
.gw-row{ display:grid; grid-template-columns:1fr 1fr; gap:0 1rem; }
.gw-field{ margin-bottom:1rem; }
.gw-field label{ display:block; margin-bottom:0.4rem; font-size:0.82rem; font-weight:700; color:var(--ink); }
.wpcf7-form-control-wrap{ display:block; }
.gw-form input[type="text"],
.gw-form input[type="tel"],
.gw-form input[type="email"],
.gw-form select,
.gw-form textarea{
  width:100%;
  padding:0.85rem 1rem;
  border:1.5px solid var(--line);
  border-radius:0.75rem;
  background:var(--paper-alt);
  font-size:var(--f-body); color:var(--ink);
  transition:border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.gw-form textarea{ min-height:130px; resize:vertical; }
.gw-form select{
  -webkit-appearance:none; appearance:none;
  padding-right:2.5rem;
  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' fill='none' stroke='%232F2483' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1rem center;
}
.gw-form ::placeholder{ color:var(--muted); opacity:1; }
.gw-form input:focus,
.gw-form select:focus,
.gw-form textarea:focus{
  outline:none;
  border-color:var(--blue);
  background-color:#fff;
  box-shadow:0 0 0 4px rgba(47,36,131,0.10);
}
.gw-submit{ margin-top:0.5rem; }
.gw-form .wpcf7-submit,
.gw-form button.wpcf7-submit{
  padding:0.95rem 2rem;
  border-radius:2rem;
  border:1.5px solid var(--blue);
  background:var(--blue); color:#fff;
  font-weight:700; font-size:0.95rem;
  cursor:pointer;
  transition:background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.gw-form .wpcf7-submit:hover,
.gw-form button.wpcf7-submit:hover{ background:var(--blue-dark); border-color:var(--blue-dark); color:#fff; transform:translateY(-1px); }
.wpcf7-spinner{ margin:0 0 0 0.75rem; vertical-align:middle; }

/* -- Contact Form 7 feedback messages -- */
.wpcf7-not-valid-tip{ display:block; margin-top:0.3rem; font-size:0.78rem; color:#c0392b; }
.gw-form .wpcf7-not-valid{ border-color:#c0392b; }
.wpcf7 form .wpcf7-response-output{
  margin:1rem 0 0; padding:0.85rem 1rem;
  border:1.5px solid var(--line); border-radius:0.75rem;
  font-size:var(--f-small);
}
.wpcf7 form.sent .wpcf7-response-output{ border-color:#2e7d32; background:#f1f8f2; color:#1b5e20; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output{ border-color:#c0392b; background:#fdf3f2; color:#8e2a1f; }

/* -- right column: details -- */
.ct-info{ display:flex; flex-direction:column; gap:1rem; }
.ct-tile{
  display:flex; gap:1rem;
  padding:1.25rem 1.4rem;
  background:var(--paper-alt);
  border:1px solid var(--line);
  border-radius:1.1rem;
}
.ct-ic{
  flex:0 0 44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:var(--blue); color:#fff; font-size:1rem;
}
.ct-tile h3{ font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--blue); margin-bottom:0.5rem; }
.ct-tile address{ font-style:normal; font-size:var(--f-small); line-height:1.7; color:var(--body); }
.ct-tile address strong{ color:var(--ink); }
.ct-line{ display:block; padding:0.1rem 0; font-size:var(--f-small); font-weight:700; color:var(--ink); transition:color 0.2s ease; }
.ct-line:hover{ color:var(--blue); }
.ct-more{
  display:inline-block; margin-top:0.7rem; padding-bottom:2px;
  border-bottom:1.5px solid var(--blue-tint-2);
  font-size:var(--f-small); font-weight:700; color:var(--blue);
  transition:border-color 0.2s ease;
}
.ct-more:hover{ border-color:var(--blue); color:var(--blue); }
.ct-more span{ display:inline-block; transition:transform 0.2s ease; }
.ct-more:hover span{ transform:translateX(3px); }

.ct-dealer{
  padding:1.5rem;
  border-radius:1.1rem;
  background:linear-gradient(135deg, var(--blue-dark) 0%, var(--dark) 100%);
}
.ct-dealer h3{ color:#fff; font-size:var(--f-h4); }
.ct-dealer p{ margin-top:0.4rem; font-size:var(--f-small); color:rgba(255,255,255,0.75); }
.ct-dealer a.ct-btn{
  display:inline-flex; margin-top:1rem; padding:0.7rem 1.4rem;
  border-radius:2rem; background:#fff; color:var(--blue);
  font-size:0.85rem; font-weight:700;
  transition:background 0.2s ease, transform 0.2s ease;
}
.ct-dealer a.ct-btn:hover{ background:var(--blue-tint); color:var(--blue); transform:translateY(-2px); }

@media (max-width:560px){
  .gw-row{ grid-template-columns:1fr; }
  .gw-form{ padding:var(--sp-md); }
}


/* ===== 03-contact-locations.html ===== */
.ct-locations{ padding-top:var(--sp-3xl); padding-bottom:var(--sp-xl); }
.ct-loc-grid{
  --ct-gap:var(--sp-md);          /* ← spacing AND card widths come from this one value */
  margin-top:var(--sp-xl);
  display:flex; flex-wrap:wrap; justify-content:center; gap:var(--ct-gap);
}
.ct-loc{
  flex:0 0 calc((100% - var(--ct-gap)) / 2);   /* two per row; a fifth card centres itself */
  min-width:0;
  display:flex; flex-direction:column; align-items:flex-start;
  padding:var(--sp-md) 1.75rem;
  background:var(--paper-alt);
  border:1px solid var(--line);
  border-radius:1.25rem;
  transition:transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.ct-loc:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); background:#fff; }
.ct-tag{
  padding:0.3rem 0.7rem; border-radius:2rem;
  background:var(--blue-tint); border:1px solid var(--blue-tint-2);
  font-size:0.72rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--blue);
}
.ct-loc h3{ margin-top:0.8rem; font-size:var(--f-h3); }
.ct-addr{ margin-top:0.5rem; font-size:var(--f-small); line-height:1.7; color:var(--body); }
.ct-loc-lines{ display:flex; flex-direction:column; gap:0.2rem; margin-top:0.9rem; }
.ct-loc-lines a{ display:inline-flex; align-items:center; gap:0.6rem; font-size:var(--f-small); font-weight:700; color:var(--ink); transition:color 0.2s ease; }
.ct-loc-lines a:hover{ color:var(--blue); }
.ct-loc-lines i{ width:14px; color:var(--blue); font-size:0.8rem; }
.ct-loc .ct-more{ margin-top:auto; padding-top:0; }
.ct-loc .ct-loc-lines{ margin-bottom:0.9rem; }
@media (max-width:700px){ .ct-loc{ flex-basis:100%; } }


/* ===== 04-contact-map.html ===== */
.ct-map{ padding-top:var(--sp-md); padding-bottom:var(--sp-3xl); }
.ct-map-frame{
  height:clamp(300px, 40vw, 420px);
  overflow:hidden;
  border:1px solid var(--line); border-radius:1.25rem;
  box-shadow:var(--shadow-md);
}
.ct-map-frame iframe{ display:block; width:100%; height:100%; border:0; }


/* ===== 05-contact-faq.html ===== */
.ctfaq{ padding-top:var(--sp-xl); padding-bottom:var(--sp-3xl); }
.ctfaq-list{ max-width:820px; margin:var(--sp-xl) auto 0; display:flex; flex-direction:column; gap:0.75rem; }
.ctfaq .ctfaq-item{
  background:var(--paper-alt);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  transition:background 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.ctfaq .ctfaq-item[open]{ background:#fff; border-color:transparent; box-shadow:var(--shadow-md); }
.ctfaq .ctfaq-item summary{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.15rem 1.4rem; cursor:pointer; list-style:none;
  font-weight:700; font-size:var(--f-body); line-height:1.4; color:var(--ink);
  transition:color 0.2s ease;
}
.ctfaq .ctfaq-item summary::-webkit-details-marker{ display:none; }
.ctfaq .ctfaq-item summary:hover{ color:var(--blue); }
.ctfaq .ctfaq-item summary::after{
  content:"+";
  flex:0 0 28px; width:28px; height:28px;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--line); border-radius:50%;
  font-size:1.1rem; font-weight:400; line-height:1; color:var(--blue);
  transition:background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.ctfaq .ctfaq-item[open] summary::after{ content:"\2212"; background:var(--blue); border-color:var(--blue); color:#fff; }
.ctfaq .ctfaq-a{ padding:0 1.4rem 1.3rem; max-width:68ch; font-size:var(--f-small); line-height:1.75; color:var(--body); }
@media (max-width:600px){
  .ctfaq .ctfaq-item summary{ padding:1rem 1.1rem; }
  .ctfaq .ctfaq-a{ padding:0 1.1rem 1.15rem; }
}/* End custom CSS */