.avra-cthero__label { opacity: 0.8; font-feature-settings: "salt"; }

.avra-cthero .avra-cthero__title { max-width: 672px !important; }

.avra-cthero .avra-cthero__intro { max-width: 620px !important; font-feature-settings: "ss01"; }

.avra-ctformp { opacity: 0.8; margin-top: 4px; }

.avra-ctcontact a { color: inherit; text-decoration: underline dotted; }

.avra-ctmap img, .avra-ctmap iframe { display: block; width: 100%; height: 500px; border: 0px; }

.avra-ctmap__frame { line-height: 0; }

.avra-ctform .elementor-field-group { margin-bottom: 0px; }

.avra-ctform .elementor-field-textual, .avra-ctform select.elementor-field-textual { background: rgb(255, 255, 255); border: 1px solid rgba(92, 91, 90, 0.2); border-radius: 0px; padding: 10px 16px; min-height: 0px; height: auto; font-family: var(--avra-body); font-size: 16px; font-weight: 350; line-height: 24px; letter-spacing: 0.16px; color: var(--avra-grey); font-feature-settings: "ss01"; box-shadow: none; }

.avra-ctform .elementor-field-textual:focus { border-color: var(--avra-sand); outline: none; box-shadow: none; }

.avra-ctform .elementor-field-textual::placeholder { color: var(--avra-grey); opacity: 0.7; }

.avra-ctform textarea.elementor-field-textual { min-height: 226px; resize: vertical; }

.avra-ctform select.elementor-field-textual { appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%235C5B5A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 48px; }

.avra-ctform .elementor-field-type-acceptance input[type="checkbox"] { width: 20px; height: 20px; margin: 2px 0px 0px; flex: 0 0 20px; accent-color: var(--avra-accent); }

.avra-ctform .elementor-field-type-acceptance label, .avra-ctform .elementor-field-type-acceptance .elementor-field-option label { font-family: var(--avra-body); font-size: 16px; font-weight: 350; line-height: 24px; letter-spacing: 0.16px; color: var(--avra-grey); }

.avra-ctform .elementor-field-type-acceptance a { color: inherit; text-decoration: underline dotted; }

.avra-ctform .elementor-field-type-acceptance:last-of-type .elementor-field-subgroup { max-width: 528px; }

.avra-ctform .elementor-button[type="submit"] { background: var(--avra-umbra); border: 0px; border-radius: 0px; width: 240px; padding: 10px 14px; font-family: var(--avra-display); font-size: 14px; font-weight: 700; line-height: 24px; letter-spacing: 0.28px; text-transform: uppercase; color: rgb(255, 255, 255); transition: background 0.3s; }

.avra-hover .avra-ctform .elementor-button[type="submit"]:hover { background: var(--avra-accent); }

@media (max-width: 1024px) {
  .avra-ctmap img, .avra-ctmap iframe { height: 382px; }
  .avra-ctform .elementor-button[type="submit"] { width: 100%; }
  .avra-ctform textarea.elementor-field-textual { min-height: 180px; }
}

.avra-ctform input.elementor-field-textual, .avra-ctform textarea.elementor-field-textual, .avra-ctform select.elementor-field-textual { font-family: var(--avra-body) !important; font-size: 16px !important; font-weight: 350 !important; line-height: 24px !important; letter-spacing: 0.16px !important; padding: 10px 16px !important; border: 1px solid rgba(92, 91, 90, 0.2) !important; border-radius: 0px !important; background-color: rgb(255, 255, 255) !important; }

.avra-ctform select.elementor-field-textual { padding-right: 48px !important; }

.avra-ctform .elementor-button[type="submit"], .avra-ctform button.elementor-button { max-width: 100%; background-color: rgb(32, 31, 30) !important; color: rgb(255, 255, 255) !important; width: 240px !important; padding: 10px 14px !important; border-radius: 0px !important; min-height: 0px !important; }

.avra-hover .avra-ctform .elementor-button[type="submit"]:hover, .avra-hover .avra-ctform button.elementor-button:hover { background-color: var(--avra-accent) !important; }

.avra-ctform .elementor-field-type-submit { display: flex; justify-content: flex-end; }

@media (max-width: 1024px) {
  .avra-ctform .elementor-button[type="submit"], .avra-ctform button.elementor-button { width: 100% !important; }
  .avra-ctform .elementor-field-type-submit { justify-content: stretch; }
}

.avra-ctformp p { margin: 0px !important; }

.avra-ctform .elementor-field-group > label.elementor-field-label { display: none !important; }

.avra-ctform .elementor-field-group { margin-bottom: 12px !important; }

.avra-ctform input.elementor-field-textual, .avra-ctform select.elementor-field-textual { padding-top: 9px !important; padding-bottom: 9px !important; }

.avra-ctform textarea.elementor-field-textual { min-height: 224px !important; padding-top: 9px !important; padding-bottom: 191px !important; }

.avra-ctform .elementor-field-type-submit { margin-top: -102px !important; margin-bottom: 0px !important; }

@media (max-width: 1024px) {
  .avra-ctform .elementor-field-type-acceptance { padding-right: 0px; }
}

.avra-ctform .elementor-form-fields-wrapper { display: flex; flex-wrap: wrap; column-gap: 12px; margin: 0px !important; }

.avra-ctform .elementor-field-group { padding-left: 0px !important; padding-right: 0px !important; }

.avra-ctform .elementor-field-group.elementor-col-50 { flex: 0 0 calc(50% - 6px); width: calc(50% - 6px) !important; }

.avra-ctform .elementor-field-group.elementor-col-100 { flex: 0 0 100%; width: 100% !important; }

.avra-ctform textarea.elementor-field-textual { height: 226px !important; min-height: 226px !important; }

.avra-ctform .iti { display: block; width: 100%; }

.avra-ctform .iti input[type="tel"] { height: 44px !important; }

.avra-ctform .iti__selected-country, .avra-ctform .iti__selected-flag { background: transparent; }

.avra-ctform .elementor-form-fields-wrapper { align-items: flex-start; }

.avra-ctform .elementor-field-type-textarea + .elementor-field-type-acceptance { order: 1; flex: 0 0 calc(100% - 264px); width: calc(100% - 264px) !important; margin-top: 21px !important; }

.avra-ctform .elementor-field-type-submit { order: 2; flex: 0 0 240px; margin-left: auto; width: 240px !important; margin-top: 21px !important; }

.avra-ctform .elementor-field-type-acceptance + .elementor-field-type-acceptance { order: 3; flex: 0 0 100%; width: 100% !important; }

@media (max-width: 1024px) {
  .avra-ctform .elementor-field-type-textarea + .elementor-field-type-acceptance, .avra-ctform .elementor-field-type-submit { flex: 0 0 100%; width: 100% !important; }
  .avra-ctform .elementor-field-type-submit { order: 4; margin-top: 8px !important; }
}

.avra-ctform .elementor-field-group.elementor-col-100.e-form__buttons { margin-left: auto; width: 240px !important; flex: 0 0 240px !important; }

@media (max-width: 1024px) {
  .avra-ctform .elementor-field-group.elementor-col-100.e-form__buttons { width: 100% !important; flex: 0 0 100% !important; }
}

@media (max-width: 767px) {
  .avra-ctform .elementor-field-group.elementor-col-50 { width: 100% !important; flex: 0 0 100% !important; }
}

@media (min-width: 768px) {
  .avra-ctmain { flex-wrap: nowrap !important; }
  .avra-ctmain > .avra-ctcol { min-width: 0px; width: auto !important; flex: 1 1 0px !important; }
}

@media (max-width: 767px) {
  .avra-ctmain > .avra-ctcol { width: 100% !important; flex: 0 0 100% !important; }
}

@media (min-width: 768px) and (max-width: 1200px) {
  .avra-ctmain { padding-left: 40px !important; padding-right: 40px !important; }
}

.avra-ctform .iti--separate-dial-code input[type="tel"], .avra-ctform .iti--allow-dropdown input[type="tel"] { padding-left: 92px !important; }

.avra-ctform .elementor-select-wrapper i, .avra-ctform .elementor-select-wrapper svg, .avra-ctform .elementor-select-wrapper .e-font-icon-svg, .avra-ctform .elementor-select-wrapper::after { display: none !important; }

.avra-ctform .elementor-select-wrapper { display: block; }

.avra-ctform textarea.elementor-field-textual { resize: none; }

.avra-ctform .select-caret-down-wrapper { display: none !important; }

.avra-ctcta__half > .e-con, .avra-ctcta__half > .e-con-inner, .elementor-element-ctitx, .elementor-element-ctptx { max-width: 816px; min-width: 0px; width: 100% !important; }

@media (max-width: 1024px) {
  .avra-ctcta__half { padding-left: 24px !important; padding-right: 24px !important; }
  .avra-ctcta__half .elementor-button { white-space: normal; }
}

@media (min-width: 1025px) {
  /* LESSON: never buy a one-line heading with white-space:nowrap. This rule was
   written for "Invest in Architecture that Performs", which fitted the half's
   576px box. The client copy renders 881px and pushed the document 233px past
   the viewport - a horizontal scrollbar at every desktop width. Copy changes. */
.avra-ctcta__half h2.elementor-heading-title { white-space: normal; max-width: none; font-size: min(48px, 2.7vw) !important; line-height: 1.12 !important; text-wrap: balance; }
  .avra-ctcta__half > .e-con, .elementor-element-ctitx, .elementor-element-ctptx { overflow: visible; }
}

.avra-ctform .elementor-field-type-acceptance .elementor-field-subgroup { display: block; }

.avra-ctform .elementor-field-option { display: flex; align-items: flex-start; gap: 12px; }

.avra-ctform .elementor-field-option input[type="checkbox"] { flex: 0 0 20px; accent-color: var(--avra-accent); border: 1px solid rgba(92, 91, 90, 0.4); border-radius: 0px; width: 20px !important; height: 20px !important; margin: 2px 0px 0px !important; }

.avra-ctform .elementor-field-option label { margin: 0px !important; font-family: var(--avra-body) !important; font-size: 16px !important; font-weight: 350 !important; line-height: 24px !important; letter-spacing: 0.16px !important; color: var(--avra-grey) !important; }

.avra-ctform .elementor-field-type-acceptance + .elementor-field-type-acceptance label { max-width: 496px; }

.iti__dropdown-content, .iti__country-list { box-shadow: rgba(32, 31, 30, 0.08) 0px 8px 24px; font-family: "Basel Grotesk", Helvetica, Arial, sans-serif; font-size: 15px; border: 1px solid rgba(92, 91, 90, 0.2) !important; border-radius: 0px !important; }

.iti__search-input { font-family: "Basel Grotesk", Helvetica, Arial, sans-serif; font-size: 15px; letter-spacing: 0.15px; border-width: 0px 0px 1px !important; border-style: none none solid !important; border-color: currentcolor currentcolor rgba(92, 91, 90, 0.2) !important; border-image: none !important; border-radius: 0px !important; padding: 10px 16px !important; outline: none !important; box-shadow: none !important; }

.iti__country { padding: 8px 16px; }

.iti__country.iti__highlight, .iti__country:hover { background: rgba(228, 205, 181, 0.25) !important; }

.iti__dial-code { color: rgb(92, 91, 90); opacity: 0.7; }

@media (max-width: 767px) {
  .avra-ctcta { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; position: relative; display: flex !important; flex-wrap: nowrap !important; }
  .avra-ctcta::-webkit-scrollbar { display: none; }
  .avra-ctcta__half { scroll-snap-align: start; scroll-snap-stop: always; flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; }
  .avra-ctcta__dots { display: flex; justify-content: center; gap: 8px; padding: 16px 0px 24px; }
  .avra-ctcta__dot { width: 8px; height: 8px; border: 0px; padding: 0px; border-radius: 50%; background: rgba(92, 91, 90, 0.3); transition: background 0.3s; cursor: pointer; }
  .avra-ctcta__dot.is-active { background: var(--avra-accent); }
}

@media (min-width: 768px) {
  .avra-ctcta__dots { display: none; }
}

@media (max-width: 767px) {
  .avra-ctcta__dots { gap: 16px; padding: 24px 0px 32px; }
  .avra-ctcta__arrow { width: 40px; height: 40px; padding: 0px; border: 1px solid rgba(92, 91, 90, 0.3); border-radius: 50%; background: transparent; color: var(--avra-grey); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color 0.3s, color 0.3s; }
  .avra-ctcta__arrow--next svg { transform: rotate(180deg); }
  .avra-ctcta__arrow:hover { border-color: var(--avra-accent); color: var(--avra-accent); }
}

@media (max-width: 767px) {
  /* Figma mobile frame 25502:2419 is 650 tall. 720 was eyeballed off a PNG. */
.avra-cthero { min-height: 650px; }
  /* Figma Rect 26 (25502:2485) is 382 x 382 - a square, not 400. */
.avra-ctmap iframe { height: 382px !important; }
  /* Figma CTA frame 25502:2434 is 550 tall; 380 was eyeballed. */
.avra-ctcta__half { min-height: 550px !important; }
  /* Figma 25502:2431 is 56px tall at 382 wide = 48/56, the same mobile H1 as the
   Projects and About heroes. 40/48 was a guess that broke the shared scale. */
.avra-cthero__title h1 { font-size: 48px !important; line-height: 56px !important; letter-spacing: -1.44px !important; }
  .avra-cthero__intro p { font-size: 18px !important; line-height: 28px !important; }
  .elementor-element-ctinfo { flex-direction: column !important; gap: 32px !important; }
  .elementor-element-ctaddr, .elementor-element-ctcont { width: 100% !important; }
  .elementor-element-ctaddrt p, .elementor-element-ctcontt p { font-size: 16px !important; line-height: 26px !important; }
  .avra-ctformp p { font-size: 16px !important; line-height: 24px !important; }
}

@media (max-width: 767px) {
  .avra-ctmap { margin-top: 24px !important; }
}

.avra-ctcta__arrow, .avra-ctcta__arrow:hover, .avra-ctcta__arrow:focus, .avra-ctcta__arrow:active { background-color: transparent !important; background-image: none !important; }

.avra-ctcta__arrow:hover { border-color: var(--avra-accent) !important; color: var(--avra-accent) !important; }

@media (max-width: 767px) {
  /* Hero copy is bottom-anchored. Figma: the intro box ends at 610 in a 650
   frame, so the gap to the base is 40, not the 64 I read off the export. */
.avra-cthero { justify-content: flex-end !important; padding-top: 0px !important; padding-bottom: 40px !important; }
}

/* Submit button. Figma 25502:2533 is 382 x 48. Elementor's .elementor-size-sm
   sets padding 10px, giving 10 + 24 + 10 = 44. Target the size class itself so
   the specificity race is not in question: 12 + 24 + 12 = 48. */
@media (max-width: 767px) {
  .avra-ctform button.elementor-button.elementor-size-sm,
  .elementor-element-ctform button.elementor-button[type="submit"] {
    min-height: 48px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}
