/* ArtPlus v24: consistent navigation, quieter header and editable contact/footer. */

/* Header and logo ------------------------------------------------------- */
.site-header {
  min-height: 78px;
  height: 78px;
  padding-inline: clamp(24px, 3.4vw, 54px);
  gap: clamp(22px, 3vw, 48px);
}

.site-branding,
.custom-logo-link {
  display: flex;
  align-items: center;
  align-self: stretch;
}

.site-header .custom-logo {
  width: min(var(--ap-logo-width, 138px), 100%);
  max-width: var(--ap-logo-width, 138px) !important;
  max-height: 46px !important;
  object-fit: contain;
}

.site-header .brand::before,
.site-header .brand::after {
  font-size: 39px;
}

/* Every primary menu item receives the same ArtPlus marker. */
.nav-list > li > a::before {
  content: "" !important;
  display: block !important;
  flex: 0 0 auto;
  width: 18px !important;
  height: 18px !important;
  background: currentColor !important;
  background-image: none !important;
  -webkit-mask: url('../Icons/plus_icon.svg') center / contain no-repeat !important;
  mask: url('../Icons/plus_icon.svg') center / contain no-repeat !important;
}

.nav-list .sub-menu a::before,
.nav-list > li > a::after,
.ap-service-arrow {
  display: none !important;
  content: none !important;
}

/* Footer --------------------------------------------------------------- */
.site-footer {
  padding-top: clamp(42px, 4vw, 64px);
}

.site-footer-grid {
  grid-template-columns: minmax(170px, .55fr) minmax(0, 1.45fr);
  gap: clamp(44px, 8vw, 140px);
}

.site-footer .site-footer-brand .custom-logo {
  max-width: 150px;
  max-height: 58px;
}

.site-footer-copy {
  max-width: 820px;
}

.site-footer .footer-tagline {
  max-width: 680px;
  margin: 0 0 18px;
  font-size: clamp(30px, 3vw, 46px);
  line-height: 1.1 !important;
}

.site-footer .footer-note {
  margin: 0 0 30px;
  color: rgba(255,255,255,.62);
  font-size: clamp(15px, 1.3vw, 19px);
  line-height: 1.55;
}

.artplus-footer-extra {
  max-width: 660px;
  margin: -12px 0 28px;
  color: rgba(255,255,255,.72);
  font-size: 15px;
  line-height: 1.6;
}

.artplus-footer-actions,
.artplus-footer-socials {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 24px;
}

/* Homepage contact prompt ---------------------------------------------- */
.home-contact.artplus-contact-area {
  min-height: 0 !important;
  padding: clamp(72px, 8vw, 120px) clamp(22px, 4vw, 68px) !important;
  color: #fff;
  background: #101111 !important;
  background-image: none !important;
}

.artplus-contact-prompt {
  display: grid;
  grid-template-columns: minmax(120px, .35fr) minmax(0, 1.2fr) minmax(220px, .45fr);
  align-items: end;
  gap: clamp(24px, 4vw, 70px);
}

.artplus-contact-prompt > .mono {
  align-self: start;
  color: var(--ap-orange);
}

.artplus-contact-prompt h2 {
  margin: 0;
  font-size: clamp(48px, 6vw, 88px);
  line-height: .94;
}

.artplus-contact-prompt p {
  grid-column: 2;
  max-width: 660px;
  margin: 18px 0 0;
  color: rgba(255,255,255,.65);
  font-size: clamp(17px, 1.5vw, 21px);
}

.artplus-contact-prompt > a {
  grid-column: 3;
  grid-row: 1 / span 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 64px;
  padding: 16px 19px;
  border-radius: 14px;
  color: #fff;
  background: var(--ap-orange);
  font-weight: 800;
  box-shadow: 0 18px 46px rgba(255,75,18,.25);
}

.artplus-footer-actions a,
.artplus-footer-socials a {
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.artplus-footer-actions .footer-email,
.artplus-footer-actions a[href^="tel:"] {
  padding-block: 8px;
  border-bottom: 1px solid rgba(255,255,255,.4);
}

.artplus-footer-socials {
  margin-top: 25px;
  font-size: 14px;
}

/* Contact modal -------------------------------------------------------- */
.artplus-contact-modal {
  width: min(980px, calc(100% - 32px));
  max-height: calc(100dvh - 28px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.artplus-contact-card {
  padding: clamp(30px, 4.5vw, 60px);
}

.artplus-contact-heading {
  padding-right: 60px;
}

.artplus-contact-heading > .mono {
  color: var(--ap-orange);
}

.artplus-contact-card .artplus-contact-heading h2 {
  max-width: 760px;
  margin: 18px 0 16px;
  font-size: clamp(46px, 5.6vw, 72px);
  line-height: 1.12 !important;
  letter-spacing: .035em !important;
  word-spacing: .1em;
}

.artplus-contact-card .artplus-contact-heading p {
  max-width: 680px;
  margin: 0;
}

.artplus-contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 36px;
}

.artplus-form-field {
  display: grid;
  gap: 8px;
}

.artplus-form-field label {
  color: rgba(255,255,255,.78);
  font: 700 11px/1.2 "Space Mono", monospace;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.artplus-form-field label span {
  color: var(--ap-orange);
}

.artplus-form-field input,
.artplus-form-field select,
.artplus-form-field textarea {
  width: 100%;
  min-height: 54px;
  padding: 14px 15px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 12px;
  outline: none;
  color: #fff;
  background: rgba(255,255,255,.075);
  font: inherit;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.artplus-form-field select {
  color-scheme: dark;
}

.artplus-form-field textarea {
  min-height: 138px;
  resize: vertical;
}

.artplus-form-field input:focus,
.artplus-form-field select:focus,
.artplus-form-field textarea:focus {
  border-color: var(--ap-orange);
  background: rgba(255,255,255,.11);
  box-shadow: 0 0 0 4px rgba(255,75,18,.13);
}

.artplus-form-message,
.artplus-form-consent,
.artplus-form-submit,
.artplus-form-status {
  grid-column: 1 / -1;
}

.artplus-form-consent {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  color: rgba(255,255,255,.7);
  font-size: 13px;
  line-height: 1.45;
}

.artplus-form-consent input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  accent-color: var(--ap-orange);
}

.artplus-form-consent a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.artplus-form-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 62px;
  padding: 15px 19px;
  border: 0;
  border-radius: 14px;
  color: #fff;
  background: var(--ap-orange);
  box-shadow: 0 18px 50px rgba(255,75,18,.24);
  font: 800 19px/1 Inter, sans-serif;
  cursor: pointer;
  transition: transform .3s var(--ap-ease), box-shadow .3s ease;
}

.artplus-form-submit:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 58px rgba(255,75,18,.36);
}

.artplus-form-submit b {
  font-size: 25px;
}

.artplus-form-status {
  display: grid;
  gap: 4px;
  margin-top: 24px;
  padding: 16px 18px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 13px;
}

.artplus-form-status.is-success {
  border-color: rgba(85,220,150,.5);
  background: rgba(42,150,95,.15);
}

.artplus-form-status.is-error {
  border-color: rgba(255,105,68,.55);
  background: rgba(255,75,18,.12);
}

.artplus-form-status span {
  color: rgba(255,255,255,.72);
  line-height: 1.45;
}

.artplus-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

@media (max-width: 900px) {
  .site-header {
    min-height: 70px;
    height: 70px;
    padding-inline: 18px;
  }

  .site-header .custom-logo {
    width: min(112px, 34vw);
    max-height: 39px !important;
  }

  .site-footer-grid {
    grid-template-columns: 1fr;
    gap: 35px;
  }

  .artplus-contact-prompt {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .artplus-contact-prompt h2,
  .artplus-contact-prompt p,
  .artplus-contact-prompt > a {
    grid-column: 1;
    grid-row: auto;
  }

  .artplus-contact-prompt > a {
    width: min(330px, 100%);
  }
}

@media (max-width: 620px) {
  .artplus-contact-modal {
    width: calc(100% - 14px);
    max-height: calc(100dvh - 14px);
  }

  .artplus-contact-card {
    padding: 58px 20px 22px;
  }

  .artplus-contact-heading {
    padding-right: 0;
  }

  .artplus-contact-card .artplus-contact-heading h2 {
    font-size: clamp(42px, 13vw, 58px);
  }

  .artplus-contact-form {
    grid-template-columns: 1fr;
    gap: 15px;
    margin-top: 28px;
  }

  .artplus-form-message,
  .artplus-form-consent,
  .artplus-form-submit,
  .artplus-form-status {
    grid-column: 1;
  }

  .artplus-footer-actions {
    align-items: stretch;
    flex-direction: column;
  }
}
