/* ========================================
   ATSIGN LANDING PAGE — GLOBAL FOUNDATION
   ======================================== */

:root {
    --atsign-black: #0C0C0B;
    --atsign-surface: #151514;
    --atsign-white: #F5F0ED;
    --atsign-muted: #E9E2DF;
    --atsign-orange: #FF8E2D;
    --atsign-red: #AF2C00;
    --atsign-border: rgba(245, 240, 237, 0.38);
}

/* Page foundation */
html,
body {
    background-color: var(--atsign-black) !important;
}

body {
    color: var(--atsign-white);
    font-family: "Barlow", Arial, sans-serif !important;
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Headings */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Inter", Arial, sans-serif !important;
    letter-spacing: -0.025em;
}

/* Body and form typography */
p,
li,
label,
input,
textarea,
select {
    font-family: "Barlow", Arial, sans-serif !important;
}

/* Webflow-style mono controls */
button,
input[type="submit"],
input[type="button"],
a[class*="button"] {
    font-family: "IBM Plex Mono", monospace !important;
    text-transform: uppercase;
    letter-spacing: 0;
}

/* Match Webflow's 1,200px desktop content grid */
.zprow-container {
    width: calc(100% - 80px) !important;
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Tablet gutters */
@media (max-width: 991px) {
    .zprow-container {
        width: calc(100% - 48px) !important;
    }
}

/* Mobile gutters */
@media (max-width: 767px) {
    .zprow-container {
        width: calc(100% - 32px) !important;
    }
}


/* Correct Zoho's additional full-width container padding */
.zpcontainer-fluid.zpcontainer {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ========================================
   ATSIGN HEADER
   ======================================== */

.atsign-header {
    background-color: #050505 !important;
    border-bottom: 1px dashed rgba(245, 240, 237, 0.32) !important;
    min-height: 92px;
}

.atsign-header .zpcontainer {
    width: calc(100% - 80px) !important;
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.atsign-header .zprow {
    align-items: center !important;
}

/* Header CTA—works whether Zoho puts the class
   on the link or its surrounding element */
.atsign-header-cta,
.atsign-header-cta a,
a.atsign-header-cta,
.atsign-header-cta button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    min-height: 50px;
    padding: 12px 24px !important;

    color: #FF8E2D !important;
    background: transparent !important;

    border: 1px solid #F5F0ED !important;
    border-radius: 0 !important;

    font-family: "IBM Plex Mono", monospace !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 24px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: nowrap;
}

.atsign-header-cta:hover,
.atsign-header-cta:hover a,
a.atsign-header-cta:hover {
    color: #0C0C0B !important;
    background-color: #FF8E2D !important;
    border-color: #FF8E2D !important;
}

/* Tablet */
@media (max-width: 991px) {
    .atsign-header .zpcontainer {
        width: calc(100% - 48px) !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .atsign-header {
        min-height: 76px;
    }

    .atsign-header .zpcontainer {
        width: calc(100% - 32px) !important;
    }

    .atsign-header-cta,
    .atsign-header-cta a,
    a.atsign-header-cta {
        min-height: 42px;
        padding: 8px 14px !important;
        font-size: 13px !important;
    }
}

/* ========================================
   SIMPLE HERO FIX — NO CLASSES REQUIRED
   ======================================== */

/* Automatically locate the section containing the H1 */
.zpsection:has(h1) {
    background-color: #0C0C0B !important;
    padding-top: 96px !important;
    padding-bottom: 72px !important;
    text-align: center !important;
}

/* Main heading container */
.zpsection:has(h1) .zpelem-heading {
    width: 100% !important;
    max-width: 900px !important;
    margin: 0 auto 24px !important;
    text-align: center !important;
}

/* Main heading */
.zpsection:has(h1) h1.zpheading {
    margin: 0 !important;

    color: #F5F0ED !important;
    font-family: "Inter", Arial, sans-serif !important;
    font-size: 64px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.035em !important;
    text-align: center !important;
}

/* Override Zoho's orange inline text color */
.zpsection:has(h1) h1.zpheading span {
    color: #F5F0ED !important;
}

/* Supporting paragraph container */
.zpsection:has(h1) .zpelem-text {
    width: 100% !important;
    max-width: 960px !important;
    margin: 0 auto !important;
    text-align: center !important;
}

/* Supporting paragraph text */
.zpsection:has(h1) .zpelem-text,
.zpsection:has(h1) .zpelem-text p,
.zpsection:has(h1) .zpelem-text span {
    color: #E9E2DF !important;
    font-family: "Barlow", Arial, sans-serif !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    text-align: center !important;
}

/* Image container */
.zpsection:has(h1) .zpelem-image {
    width: 100% !important;
    margin: 56px auto 0 !important;
    text-align: center !important;
}

.zpsection:has(h1) .zpimage-container,
.zpsection:has(h1) .zpimage-data-ref {
    display: flex !important;
    width: 100% !important;
    justify-content: center !important;
}

/* Architecture image */
.zpsection:has(h1) .zpelem-image img {
    display: block !important;
    width: 900px !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
}

/* Tablet */
@media (max-width: 991px) {
    .zpsection:has(h1) {
        padding-top: 72px !important;
        padding-bottom: 56px !important;
    }

    .zpsection:has(h1) h1.zpheading {
        font-size: 52px !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .zpsection:has(h1) {
        padding-top: 56px !important;
        padding-bottom: 40px !important;
    }

    .zpsection:has(h1) h1.zpheading {
        font-size: 40px !important;
        line-height: 1.12 !important;
    }

    .zpsection:has(h1) .zpelem-text,
    .zpsection:has(h1) .zpelem-text p,
    .zpsection:has(h1) .zpelem-text span {
        font-size: 18px !important;
    }

    .zpsection:has(h1) .zpelem-image {
        margin-top: 36px !important;
    }
}

/* Force the hero image to the intended size */
.zpsection:has(h1)
.zpelem-image
.zpimage-container
figure
img[src*="Blue.png"] {
    width: 900px !important;
    max-width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.atsign-logo img,
img.atsign-logo {
  width: 140px !important;
  max-width: 140px !important;
  height: auto !important;
}

/* Orange gradient form button */
#formsubmit {
  background: linear-gradient(
    90deg,
    #FF8E2D 0%,
    #AF2C00 100%
  ) !important;
  border: none !important;
  border-radius: 0 !important;
  color: #FFFFFF !important;
  font-family: "IBM Plex Mono", monospace !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

#formsubmit:hover {
  filter: brightness(1.12);
}

/* Dark CRM form */
#crmWebToEntityForm {
  background: #0C0C0B !important;
  color: #F5F0ED !important;
  border: 1px solid #2C2C29 !important;
}

/* Form labels */
#crmWebToEntityForm .zcwf_col_lab,
#crmWebToEntityForm label {
  color: #F5F0ED !important;
}

/* Form fields */
#crmWebToEntityForm input[type="text"],
#crmWebToEntityForm textarea {
  background: #151514 !important;
  color: #F5F0ED !important;
  border: 1px solid #3A3A37 !important;
  border-radius: 0 !important;
}

/* Orange border when someone clicks a field */
#crmWebToEntityForm input[type="text"]:focus,
#crmWebToEntityForm textarea:focus {
  border-color: #FF8E2D !important;
  outline: none !important;
}

/* Gradient section headings */
.atsign-gradient-h2 h2 span {
  display: inline-block !important;
  background: linear-gradient(
    90deg,
    #FF8E2D 0%,
    #AF2C00 100%
  ) !important;
  background-clip: text !important;
  -webkit-background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}

/* Subtle divider below the header */
.top_band-container > .zpsection:first-child {
  border-bottom: 1px dashed rgba(245, 240, 237, 0.28) !important;
}

/* Square technical frame around the form card */
.zpsticky-enabled:has(#crmWebToEntityForm) {
  border: 1px solid rgba(245, 240, 237, 0.16) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Technical form labels */
#crmWebToEntityForm .zcwf_col_lab,
#crmWebToEntityForm label {
  font-family: "IBM Plex Mono", monospace !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
}

/* Match footer logo to header logo */
img[src*="atsign_2CLR_Rev_logo_registered.png"] {
  width: 140px !important;
  max-width: 140px !important;
  height: auto !important;
}

/* Technical label above the hero headline */
.page-container > .zpsection:first-child h1::before {
  content: "// NOPORTS ARCHITECTURE BRIEF";
  display: block;
  margin-bottom: 18px;
  background: transparent !important;
  color: #FF8E2D;
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

/* Orange list markers */
.page-container li::marker {
  color: #FF8E2D !important;
}

/* Slightly improve list spacing */
.page-container li {
  padding-left: 0.25em;
  margin-bottom: 0.5em;
}

/* Technical footer text */
.page-container > .zpsection:last-child .zptext {
  font-family: "IBM Plex Mono", monospace !important;
  font-size: 12px !important;
  line-height: 1.7 !important;
  letter-spacing: 0.03em !important;
}

/* Footer links */
.page-container > .zpsection:last-child .zptext a {
  color: #FF8E2D !important;
  text-decoration: none !important;
}

/* Subtle divider above the footer */
.page-container > .zpsection:last-child {
  border-top: 1px dashed rgba(245, 240, 237, 0.28) !important;
}

/* Two-column hero treatment */
.page-container > .zpsection:first-child {
  background-color: #000000 !important;
}

/* Left-align the hero copy */
.page-container > .zpsection:first-child h1,
.page-container > .zpsection:first-child h1::before,
.page-container > .zpsection:first-child .zptext {
  text-align: left !important;
}

/* Remove Zoho's extra space above the visual */
.page-container > .zpsection:first-child
.zpelem-image:has(img[src*="noports-hero-visual-v1"]) {
  margin-top: 0 !important;
}

/* Contain and center the visual */
img[src*="noports-hero-visual-v1"] {
  display: block !important;
  width: 100% !important;
  max-width: 440px !important;
  height: auto !important;
  margin: 0 auto !important;
}

/* Mobile spacing */
@media (max-width: 767px) {
  .page-container > .zpsection:first-child
  .zpelem-image:has(img[src*="noports-hero-visual-v1"]) {
    margin-top: 32px !important;
  }

  img[src*="noports-hero-visual-v1"] {
    max-width: 340px !important;
  }
}

/* Control the entire hero-image container */
.page-container > .zpsection:first-child
.zpelem-image:has(img[src*="noports-hero-visual-v1"]) {
  width: 360px !important;
  max-width: 100% !important;
  margin: 0 auto !important;
}

/* Smaller mobile version */
@media (max-width: 767px) {
  .page-container > .zpsection:first-child
  .zpelem-image:has(img[src*="noports-hero-visual-v1"]) {
    width: 280px !important;
    margin: 32px auto 0 !important;
  }
}

/* Balance the hero headline lines */
.page-container > .zpsection:first-child h1 {
  text-wrap: balance !important;
}

/* Final unified hero background */
.page-container > .zpsection:first-child {
  background-color: #0C0C0B !important;
  isolation: isolate;
}

/* Blend the image's black background into the hero */
img[src*="noports-hero-visual-v1"] {
  mix-blend-mode: screen !important;
}

/* Real editable footer wordmark */
.page-container > .zpsection:last-child
.atsign-footer-wordmark {
  overflow: hidden !important;
  padding: 56px 0 48px !important;
}

.page-container > .zpsection:last-child
.atsign-footer-wordmark .zptext,
.page-container > .zpsection:last-child
.atsign-footer-wordmark p,
.page-container > .zpsection:last-child
.atsign-footer-wordmark span {
  margin: 0 !important;
  color: rgba(175, 44, 0, 0.28) !important;
  font-family: "Inter", Arial, sans-serif !important;
  font-size: clamp(110px, 18vw, 230px) !important;
  font-weight: 700 !important;
  line-height: 0.8 !important;
  letter-spacing: normal !important;
  white-space: nowrap !important;
}

/* Mobile wordmark */
@media (max-width: 767px) {
  .page-container > .zpsection:last-child
  .atsign-footer-wordmark {
    padding: 42px 0 32px !important;
  }

  .page-container > .zpsection:last-child
  .atsign-footer-wordmark .zptext,
  .page-container > .zpsection:last-child
  .atsign-footer-wordmark p,
  .page-container > .zpsection:last-child
  .atsign-footer-wordmark span {
font-size: clamp(78px, 25vw, 102px) !important;
  }
}

.required-fields-note {
  margin-top: 8px !important;
}

.zpsection.noports-hero {
  padding-bottom: 16px !important;
}

.zpsection.noports-content {
  padding-top: 24px !important;
}