/* WordPress/WPForms adapter for CLIENT-APPROVED contact20 HTML layout.
   DO NOT restyle the design. Only adapt WPForms markup to original form grid. */
.contact20-form .contact20-wpforms { display:block; padding:34px; background:#fafbfb; border:1px solid #dfe3e6; }
.contact20-wpforms .wpforms-container { width:100%; max-width:none; margin:0!important; }
.contact20-wpforms form.wpforms-form { margin:0; }
.contact20-wpforms .wpforms-form .wpforms-field-container {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 18px;
}
.contact20-wpforms .wpforms-form :is(.wpforms-field-container, .hg-quote-more__fields) > .wpforms-field {
  margin:0!important; padding:0!important; min-width:0; width:100%;
}
.contact20-wpforms .wpforms-form :is(.wpforms-field-container, .hg-quote-more__fields) > .wpforms-field-select,
.contact20-wpforms .wpforms-form :is(.wpforms-field-container, .hg-quote-more__fields) > .wpforms-field-textarea,
.contact20-wpforms .wpforms-form :is(.wpforms-field-container, .hg-quote-more__fields) > .wpforms-field-file-upload,
.contact20-wpforms .wpforms-form :is(.wpforms-field-container, .hg-quote-more__fields) > .wpforms-field-checkbox,
.contact20-wpforms .wpforms-form :is(.wpforms-field-container, .hg-quote-more__fields) > .wpforms-field-hidden,
.contact20-wpforms .wpforms-form :is(.wpforms-field-container, .hg-quote-more__fields) > [id$="-field_8-container"] {
  grid-column:1/-1;
}
.contact20-wpforms .wpforms-form .wpforms-field-label {
  display:block; margin:0 0 8px!important; font-size:10px!important;
  font-weight:700!important; line-height:1.45; color:#4f5962!important;
}
.contact20-wpforms .wpforms-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
.contact20-wpforms .wpforms-form select,
.contact20-wpforms .wpforms-form textarea {
  display:block; width:100%!important; max-width:100%!important; box-sizing:border-box;
  background:#fff!important; border:1px solid #d6dce0!important; color:#242c34!important;
  border-radius:0!important; box-shadow:none!important; padding:12px 13px!important;
  font:inherit; font-size:12px!important; line-height:1.4;
}
.contact20-wpforms .wpforms-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
.contact20-wpforms .wpforms-form select { height:44px!important; min-height:44px!important; }
.contact20-wpforms .wpforms-form textarea { min-height:125px!important; resize:vertical; }
.contact20-wpforms .wpforms-form .wpforms-field-description,
.contact20-wpforms .wpforms-form .wpforms-field-sublabel {
  font-size:10px!important; color:#78838b!important; line-height:1.5; margin:6px 0 0!important;
}
.contact20-wpforms .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline {
  font-size:10px!important; line-height:1.65; color:#6a747d!important;
}
/* Policy links within checkbox text, not form actions. */
.contact20-wpforms .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline a {
  color: #374151;
  text-decoration: underline;
  text-decoration-color: #6a747d;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.contact20-wpforms .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline a:hover {
  text-decoration-color: currentColor;
}
.contact20-wpforms .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
.contact20-wpforms .wpforms-form .wpforms-uploader,
.contact20-wpforms .wpforms-form .wpforms-field-file-upload .wpforms-uploader {
  max-width:100%; width:100%; box-sizing:border-box; border:1px dashed #cfd5da!important;
  border-radius:0!important; background:#fff!important;
}
.contact20-wpforms .wpforms-form .wpforms-submit-container { margin:18px 0 0!important; padding:0!important; }
.contact20-wpforms .wpforms-form button.wpforms-submit,
.contact20-wpforms .wpforms-form button[type="submit"] {
  display:inline-flex!important; align-items:center; justify-content:center;
  padding:14px 20px!important; min-height:46px!important; width:auto;
  border-radius:0!important; border:1px solid #c52c43!important;
  background:#c52c43!important; color:#fff!important;
  font-size:12px!important; font-weight:750!important; line-height:1.3;
}
.contact20-wpforms .wpforms-form button.wpforms-submit:hover { background:#a9283c!important; border-color:#a9283c!important; }
.contact20-wpforms .wpforms-form .wpforms-error { font-size:11px; }
.contact20-extra { margin-top:30px; }
.contact20-form__notice { margin:0; padding:15px; border:1px solid #dfe3e6; background:#fff; }
@media (max-width:1100px) {
  .contact20-hero__grid { gap:36px; }
  .contact20-form__grid { grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr); gap:40px; }
}
@media (max-width:850px) {
  .contact20-hero__grid,.contact20-form__grid { grid-template-columns:1fr!important; gap:32px; }
  .contact20-form__intro { position:static; }
  .contact20-hero h1 { font-size:clamp(37px,6vw,55px); }
}
@media (max-width:580px) {
  .contact20-hero { padding:32px 0 55px; }
  .contact20-form { padding:48px 0 65px; }
  .contact20-form .contact20-wpforms { padding:20px 16px; }
  .contact20-wpforms .wpforms-form .wpforms-field-container { grid-template-columns:1fr; gap:16px; }
  .contact20-wpforms .wpforms-form :is(.wpforms-field-container, .hg-quote-more__fields) > .wpforms-field { grid-column:1/-1; }
  .contact20-hero__card { padding:22px; }
  .contact20-hero__channels > div { grid-template-columns:1fr; }
  .contact20-form__intro h2 { font-size:31px; }
}


/* =========================================================
   v0.9.3 — Small visual corrections against approved contact.html.
   Scope is CONTACT ONLY; keep HTML's own layout, type and breakpoints.
   Functional extra WPForms fields are intentionally preserved.
========================================================= */
/* Original contact20 input rhythm. Avoid plugin default margins bloating rows. */
body.page .contact20-wpforms .wpforms-form .wpforms-field-container {
  column-gap: 18px;
  row-gap: 15px;
}
body.page .contact20-wpforms .wpforms-form .wpforms-field-label {
  font-size: 9px !important;
  line-height: 1.4 !important;
  margin-bottom: 7px !important;
}
body.page .contact20-wpforms .wpforms-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
body.page .contact20-wpforms .wpforms-form select,
body.page .contact20-wpforms .wpforms-form textarea {
  font-size: 11px !important;
}
body.page .contact20-wpforms .wpforms-form .wpforms-field-description,
body.page .contact20-wpforms .wpforms-form .wpforms-field-sublabel {
  margin-top: 4px !important;
  line-height: 1.4 !important;
}
/* Modern WPForms drag-and-drop widget uses a different DOM tree from HTML demo. */
body.page .contact20-wpforms .wpforms-form .wpforms-field-file-upload .wpforms-uploader {
  min-height: 66px;
  padding: 12px 14px !important;
}
body.page .contact20-wpforms .wpforms-form .wpforms-field-file-upload .wpforms-uploader .dz-message {
  margin: 0 !important;
  padding: 0 !important;
}
body.page .contact20-wpforms .wpforms-form .wpforms-field-file-upload .wpforms-uploader .dz-message svg {
  width: 22px;
  height: 22px;
}
/* Original form CTA includes right arrow; add it without editing WPForms entries. */
body.page .contact20-wpforms .wpforms-form button.wpforms-submit::after {
  content: "→";
  display: inline-block;
  margin-left: 12px;
  font-size: 17px;
  line-height: 1;
  font-weight: 500;
  transition: transform .2s ease;
}
body.page .contact20-wpforms .wpforms-form button.wpforms-submit:hover::after {
  transform: translateX(3px);
}
@media (max-width: 580px) {
  body.page .contact20-wpforms .wpforms-form .wpforms-field-container { row-gap: 16px; }
  body.page .contact20-wpforms .wpforms-form .wpforms-field-label { font-size: 10px !important; }
}

/* Contact mobile file upload: consolidated v0.9.7 / v0.9.8 fixes; field and dropzone remain interactive. */
@media (max-width: 580px) {
  body.page .contact20-form .contact20-wpforms .wpforms-form .wpforms-field-file-upload {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
  body.page .contact20-form .contact20-wpforms .wpforms-form .wpforms-field-file-upload .wpforms-uploader {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 112px !important;
    padding: 18px 12px !important;
  }
  body.page .contact20-form .contact20-wpforms .wpforms-form .wpforms-field-file-upload .wpforms-uploader .dz-message {
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center;
  }
  body.page .contact20-form .contact20-wpforms .wpforms-form .wpforms-field-file-upload .wpforms-uploader .modern-title,
  body.page .contact20-form .contact20-wpforms .wpforms-form .wpforms-field-file-upload .wpforms-uploader .modern-hint {
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  /* WPForms outer field is a CSS-grid item in the Hugornis contact layout. */
  body.page .contact20-form .contact20-wpforms .wpforms-form :is(.wpforms-field-container, .hg-quote-more__fields) > .wpforms-field-file-upload,
  body.page .contact20-form .contact20-wpforms .wpforms-form .wpforms-field-file-upload {
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }
  /* Retain WPForms modern upload and allow its label and content to grow. */
  body.page .contact20-form .contact20-wpforms .wpforms-form .wpforms-field-file-upload .wpforms-uploader {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
  }
  body.page .contact20-form .contact20-wpforms .wpforms-form .wpforms-field-file-upload .wpforms-uploader .dz-message {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    overflow-wrap: anywhere;
    white-space: normal !important;
  }
}

/* Contact layout 0.21.4: one sticky sidebar, stable channel toolbar. */
.contact20-form .contact20-form__grid {
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  grid-template-areas: "side form";
  column-gap: clamp(32px, 5vw, 80px);
  row-gap: 0;
}
.contact20-form .contact20-form__side {
  grid-area: side; align-self: start; min-width: 0;
  position: sticky; top: calc(var(--header-height, 88px) + 20px);
  max-height: calc(100vh - var(--header-height, 88px) - 36px);
  max-height: calc(100dvh - var(--header-height, 88px) - 36px);
  overflow-y: auto; scrollbar-gutter: stable;
}
.contact20-form .contact20-form__intro { position: static; }
.contact20-form .contact20-form__body { grid-area: form; min-width: 0; }
.contact20-form .hg-direct {
  min-width: 0; margin-top: 26px; padding: 16px;
  border: 1px solid #dfe3e6; border-top: 2px solid var(--color-brand, #bc253d);
  background: #f7f8f9;
}
.hg-direct h3 { margin: 0 0 12px; font-size: 18px; line-height: 1.3; font-weight: 650; }
.hg-direct__channels { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; }
.contact20-form .hg-direct a, .contact20-form .hg-direct button {
  color: #a32339; font-size: 13px; font-weight: 650; text-decoration: none;
}
.contact20-form .hg-direct a, .contact20-form .hg-direct button {
  display: inline-flex; align-items: center; justify-content: center; gap: 4px;
  min-height: 40px; padding: 7px 8px; border: 1px solid #dce0e4; background: #fff;
  font-family: inherit; line-height: 1.2; white-space: nowrap; cursor: pointer;
}
.contact20-form .hg-direct [hidden] { display: none !important; }
.hg-direct__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.hg-direct__panel-content { padding-top: 12px; }
.hg-direct__panel-content::before { content: ""; display: block; height: 1px; margin-bottom: 12px; background: #dfe3e6; }
.hg-direct__panel.is-enhanced { display: grid; grid-template-rows: 0fr; }
.hg-direct__panel.is-open { grid-template-rows: 1fr; }
.hg-direct__panel.is-enhanced > .hg-direct__panel-content { min-height: 0; overflow: hidden; padding-top: 0; opacity: 0; }
.hg-direct__panel.is-enhanced > .hg-direct__panel-content::before { margin-top: 12px; }
.hg-direct__panel.is-open > .hg-direct__panel-content { opacity: 1; }
.contact20-form .hg-direct :is(a, button):hover { background: #fff5f6; border-color: #ad2a40; text-decoration: none; }
@media (prefers-reduced-motion: no-preference) {
  .hg-direct__panel.is-enhanced { transition: grid-template-rows 190ms ease; }
  .hg-direct__panel.is-enhanced > .hg-direct__panel-content { transition: opacity 150ms ease; }
  .hg-direct__toggle svg { transition: transform 190ms ease; }
  .contact20-form .hg-direct :is(a, button) { transition: background-color 150ms ease, border-color 150ms ease; }
}
/* Optional project fields: a disclosure, not an input. */
#quote .contact20-wpforms .wpforms-form .hg-quote-more {
  grid-column: 1 / -1;
  min-width: 0;
  margin: 2px 0;
  border: 1px solid #dce0e4;
  background: #fff;
}
#quote .contact20-wpforms .wpforms-form .hg-quote-more > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 16px;
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
  min-height: 48px;
  padding: 10px 14px;
  list-style: none;
  background: #f2f4f6;
  color: #19222c;
  font-size: 14px;
  line-height: 1.4;
  cursor: pointer;
  transition: background-color .16s ease;
}
#quote .hg-quote-more > summary::-webkit-details-marker { display: none; }
#quote .hg-quote-more > summary::marker { content: ''; }
#quote .hg-quote-more > summary::after {
  content: '';
  justify-self: center;
  width: 8px;
  height: 8px;
  border-right: 2px solid #a32339;
  border-bottom: 2px solid #a32339;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .16s ease;
}
#quote .hg-quote-more[open] > summary::after { transform: translateY(2px) rotate(225deg); }
#quote .contact20-wpforms .wpforms-form .hg-quote-more > summary:hover { background: #e9edf1; }
#quote .contact20-wpforms .wpforms-form .hg-quote-more > summary:focus-visible {
  outline: 2px solid #a32339;
  outline-offset: -2px;
}
#quote .hg-quote-more > summary .hg-quote-more__title { font-weight: 650; overflow-wrap: anywhere; }
#quote .hg-quote-more > summary .hg-quote-more__hint { font-size: 12px; color: #52606e; }
#quote .hg-quote-more__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding: 14px;
  border-top: 1px solid #dce0e4;
}
@media (max-width: 540px) {
  #quote .contact20-wpforms .wpforms-form .hg-quote-more > summary {
    grid-template-columns: minmax(0, 1fr) 16px;
    gap: 2px 12px;
  }
  #quote .hg-quote-more > summary .hg-quote-more__hint { grid-column: 1; grid-row: 2; }
  #quote .hg-quote-more > summary::after { grid-column: 2; grid-row: 1 / span 2; }
}
@media (prefers-reduced-motion: reduce) {
  #quote .contact20-wpforms .wpforms-form .hg-quote-more > summary,
  #quote .hg-quote-more > summary::after { transition: none; }
}
.hg-quote-more__fields > .wpforms-field:last-child { grid-column: 1/-1; }
@media (max-width: 900px) { #quote .hg-quote-more__fields { grid-template-columns: 1fr; } }

.hg-direct__panel img { display: block; width: min(144px, 100%); height: auto; }
.hg-direct__id { display: flex; align-items: center; gap: 6px; font-size: 13px; line-height: 1.4; color: #242c34; overflow-wrap: anywhere; }
.hg-direct__panel img + .hg-direct__id { margin-top: 8px; }
.contact20-form .hg-direct .hg-direct__copy {
  flex: none; min-width: 40px; min-height: 40px; padding: 0; border-color: transparent; background: transparent;
}
.contact20-form .hg-direct .hg-direct__copy:hover { background: #fff; border-color: #dce0e4; }
.hg-direct__feedback { margin: 0; color: #505c67; font-size: 12px; }
.hg-direct__feedback:empty { margin: 0; }
.contact20-form .hg-direct a:hover, .contact20-form .hg-direct button:hover { text-decoration: underline; }
.contact20-form .hg-direct :is(a, button):focus-visible { outline: 2px solid #a32339; outline-offset: 3px; }
.contact20-form#quote { scroll-margin-top: var(--header-height, 88px); }
.hg-reply {
  margin: 0 0 20px; padding: 10px 14px; border-left: 2px solid var(--color-brand, #bc253d);
  background: #fff; color: #3b4754; font-size: 13px; line-height: 1.5;
}
body.page .contact20-wpforms .wpforms-form .wpforms-field-label { font-size: 13px !important; }
body.page .contact20-wpforms .wpforms-form .wpforms-field-description,
body.page .contact20-wpforms .wpforms-form .wpforms-field-sublabel,
body.page .contact20-wpforms .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline {
  font-size: 12px !important; color: #505c67 !important;
}
body.page .contact20-wpforms .wpforms-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
body.page .contact20-wpforms .wpforms-form select,
body.page .contact20-wpforms .wpforms-form textarea { font-size: 14px !important; }
@media (max-width: 900px) {
  .contact20-form .contact20-form__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "intro" "form";
    row-gap: 24px;
  }
  .contact20-form .contact20-form__grid:has(.hg-direct) { grid-template-areas: "intro" "form" "direct"; }
  .contact20-form .contact20-form__side { display: contents; position: static; max-height: none; overflow: visible; }
  .contact20-form .contact20-form__intro { grid-area: intro; }
  .contact20-form .hg-direct { grid-area: direct; margin-top: 0; }
}
@media (max-width: 580px) {
  body.page .contact20-wpforms .wpforms-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
  body.page .contact20-wpforms .wpforms-form select,
  body.page .contact20-wpforms .wpforms-form textarea { font-size: 16px !important; }
}
.contact20-wpforms .wpforms-form .wpforms-field-container > .wpforms-field-html { grid-column: 1/-1; }
@media (prefers-reduced-motion: reduce) {
  .hg-direct__panel.is-enhanced, .hg-direct__panel.is-enhanced > .hg-direct__panel-content,
  .hg-direct__toggle svg, .contact20-form .hg-direct :is(a, button) { transition: none; }
}
