/* =========================================================
   AURENGIS HOME
   Blueprint:
   - Premium dark hero
   - Left-aligned editorial copy
   - Real photographic background
   - Ivory services section
========================================================= */

/* =========================================================
   HERO
========================================================= */

.hero-section {
  position: relative;

  min-height: calc(100dvh - var(--header-height));

  display: flex;
  align-items: stretch;

  overflow: hidden;

  background: #06101a;
}

/* =========================================================
   HERO IMAGE
========================================================= */

.hero-media {
  position: absolute;
  inset: 0;

  overflow: hidden;
}

.hero-image {
  width: 100%;
  height: 100%;

  object-fit: cover;

  /*
    Keep the city and architecture visible on desktop,
    while leaving the left side darker for the copy.
  */
  object-position: center center;

  transform: scale(1.002);
}

/* =========================================================
   HERO OVERLAY
========================================================= */

.hero-overlay {
  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      90deg,
      rgba(3, 11, 19, 0.98) 0%,
      rgba(4, 13, 22, 0.96) 28%,
      rgba(5, 15, 25, 0.80) 45%,
      rgba(5, 15, 25, 0.24) 64%,
      rgba(4, 12, 20, 0.02) 100%
    ),
    linear-gradient(
      180deg,
      rgba(2, 8, 14, 0.12) 0%,
      rgba(2, 8, 14, 0) 45%,
      rgba(2, 8, 14, 0.18) 100%
    );
}

/* =========================================================
   HERO CONTENT
========================================================= */

.hero-content {
  position: relative;
  z-index: 2;

  min-height: calc(100dvh - var(--header-height));

  display: flex;
  align-items: center;

  padding-top: clamp(56px, 7vh, 90px);
  padding-bottom: clamp(72px, 9vh, 115px);
}

.hero-copy {
  width: min(620px, 47vw);
}

/* =========================================================
   HERO TITLE
========================================================= */

.hero-title {
  margin: 0;

  max-width: 650px;

  color: #f7f4ed;

  font-family:
    Georgia,
    "Times New Roman",
    Times,
    serif;

  font-size: clamp(54px, 5.5vw, 88px);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.045em;

  text-wrap: balance;
}

.hero-title-accent {
  display: inline-block;

  margin-top: 10px;

  color: var(--color-gold-light);
}

/* =========================================================
   HERO DIVIDER
========================================================= */

.hero-divider {
  width: 82px;
  height: 3px;

  margin-top: 34px;
  margin-bottom: 30px;

  background:
    linear-gradient(
      90deg,
      var(--color-gold-light),
      var(--color-gold)
    );

  border-radius: 99px;
}

/* =========================================================
   HERO DESCRIPTION
========================================================= */

.hero-description {
  max-width: 560px;

  margin: 0;

  color: rgba(240, 241, 242, 0.82);

  font-size: clamp(17px, 1.2vw, 20px);
  font-weight: 350;
  line-height: 1.7;
  letter-spacing: -0.012em;
}

/* =========================================================
   HERO BUTTONS
========================================================= */

.hero-actions {
  display: flex;
  align-items: center;
  gap: 22px;

  margin-top: 38px;

  flex-wrap: wrap;
}

/* =========================================================
   SERVICES SECTION
========================================================= */

.services-section {
  position: relative;

  background:
    linear-gradient(
      180deg,
      #faf8f4 0%,
      #f7f4ee 100%
    );

  padding:
    clamp(48px, 5vw, 74px)
    0
    clamp(64px, 6vw, 92px);

  border-top: 1px solid rgba(0, 0, 0, 0.04);
}

/* =========================================================
   SERVICES GRID
========================================================= */

.services-grid {
  display: grid;

  grid-template-columns: repeat(3, minmax(0, 1fr));

  gap: clamp(24px, 2.2vw, 34px);
}

/* =========================================================
   SERVICE CARD
========================================================= */

.service-card {
  position: relative;

  min-height: 410px;

  display: flex;
  flex-direction: column;

  padding:
    clamp(34px, 3vw, 46px)
    clamp(28px, 2.6vw, 40px);

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.96) 0%,
      rgba(250, 247, 241, 0.97) 100%
    );

  border: 1px solid rgba(65, 52, 34, 0.09);
  border-radius: 7px;

  box-shadow:
    0 14px 34px rgba(27, 23, 17, 0.05),
    0 3px 8px rgba(27, 23, 17, 0.025);

  transition:
    transform var(--transition-normal),
    border-color var(--transition-normal),
    box-shadow var(--transition-normal);
}

.service-card:hover {
  transform: translateY(-5px);

  border-color: rgba(164, 118, 52, 0.22);

  box-shadow:
    0 20px 44px rgba(27, 23, 17, 0.09),
    0 5px 12px rgba(27, 23, 17, 0.035);
}

/* =========================================================
   SERVICE ICON
========================================================= */

.service-icon {
  width: 68px;
  height: 68px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  margin-bottom: 26px;

  color: #a87632;

  border: 2px solid rgba(168, 118, 50, 0.78);
  border-radius: 3px;

  font-family:
    "Courier New",
    Courier,
    monospace;

  font-size: 23px;
  font-weight: 600;

  line-height: 1;
}

/*
  The second icon is intentionally more circular
  to visually resemble an integration/network node.
*/
.service-card:nth-child(2) .service-icon {
  border-radius: 50%;
  font-family: Georgia, serif;
  font-size: 32px;
}

/*
  Automation card: no outer box feel, closer to the
  reference gear treatment.
*/
.service-card:nth-child(3) .service-icon {
  border: 0;
  width: auto;
  height: auto;

  justify-content: flex-start;

  font-size: 60px;
  font-family: Arial, sans-serif;
  font-weight: 300;
}

/* =========================================================
   CARD TITLES
========================================================= */

.service-card h2 {
  margin: 0;

  color: #131c29;

  font-family:
    Georgia,
    "Times New Roman",
    Times,
    serif;

  font-size: clamp(30px, 2.3vw, 39px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.035em;
}

/* =========================================================
   CARD DIVIDER
========================================================= */

.card-divider {
  width: 42px;
  height: 2px;

  margin-top: 20px;
  margin-bottom: 22px;

  background: #a87430;
}

/* =========================================================
   CARD BODY
========================================================= */

.service-card p {
  margin: 0;

  max-width: 390px;

  color: #646770;

  font-size: clamp(15px, 1vw, 17px);
  line-height: 1.65;
}

/* =========================================================
   CARD LINK
========================================================= */

.card-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;

  width: fit-content;

  margin-top: auto;
  padding-top: 30px;

  color: #9b6a2a;

  font-family:
    Georgia,
    "Times New Roman",
    Times,
    serif;

  font-size: 17px;

  transition:
    color var(--transition-fast),
    transform var(--transition-fast);
}

.card-link::after {
  content: "→";

  font-family: Arial, sans-serif;

  transition: transform var(--transition-fast);
}

.card-link:hover {
  color: #704819;
}

.card-link:hover::after {
  transform: translateX(4px);
}

/* =========================================================
   LARGE DESKTOPS
========================================================= */

@media (min-width: 1600px) {
  .hero-copy {
    width: 670px;
  }

  .hero-title {
    font-size: 90px;
  }

  .hero-description {
    max-width: 590px;
    font-size: 20px;
  }

  .service-card {
    min-height: 430px;
  }
}

/* =========================================================
   LAPTOPS / SMALL DESKTOP
========================================================= */

@media (max-width: 1250px) {
  .hero-copy {
    width: min(610px, 54vw);
  }

  .hero-title {
    font-size: clamp(50px, 5.5vw, 72px);
  }

  .hero-description {
    max-width: 520px;
  }

  .hero-overlay {
    background:
      linear-gradient(
        90deg,
        rgba(3, 11, 19, 0.99) 0%,
        rgba(4, 13, 22, 0.95) 34%,
        rgba(5, 15, 25, 0.73) 53%,
        rgba(5, 15, 25, 0.12) 76%,
        rgba(4, 12, 20, 0.02) 100%
      );
  }

  .service-card {
    min-height: 390px;
  }
}

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1050px) {
  .hero-section,
  .hero-content {
    min-height: 760px;
  }

  .hero-image {
    object-position: 61% center;
  }

  .hero-overlay {
    background:
      linear-gradient(
        90deg,
        rgba(3, 11, 19, 0.99) 0%,
        rgba(4, 13, 22, 0.96) 42%,
        rgba(5, 15, 25, 0.76) 60%,
        rgba(5, 15, 25, 0.25) 82%,
        rgba(5, 15, 25, 0.08) 100%
      ),
      linear-gradient(
        180deg,
        rgba(2, 8, 14, 0.08),
        rgba(2, 8, 14, 0.15)
      );
  }

  .hero-copy {
    width: min(590px, 66vw);
  }

  .hero-title {
    font-size: clamp(48px, 7vw, 68px);
  }

  .services-grid {
    gap: 22px;
  }

  .service-card {
    padding: 32px 26px;

    min-height: 370px;
  }

  .service-card h2 {
    font-size: clamp(27px, 3vw, 34px);
  }
}

/* =========================================================
   MOBILE / TABLET PORTRAIT
========================================================= */

@media (max-width: 820px) {
  .hero-section {
    min-height: auto;

    display: block;
  }

  .hero-media {
    position: relative;

    height: clamp(390px, 64vw, 560px);
  }

  .hero-image {
    object-position: 66% center;
  }

  .hero-overlay {
    background:
      linear-gradient(
        180deg,
        rgba(3, 11, 19, 0.12) 0%,
        rgba(3, 11, 19, 0.1) 38%,
        rgba(3, 11, 19, 0.58) 72%,
        rgba(3, 11, 19, 0.98) 100%
      );
  }

  .hero-content {
    min-height: 0;

    margin-top: -1px;

    padding-top: 48px;
    padding-bottom: 62px;

    background:
      linear-gradient(
        180deg,
        #06101a 0%,
        #071522 100%
      );
  }

  .hero-copy {
    width: 100%;
    max-width: 650px;
  }

  .hero-title {
    font-size: clamp(44px, 9vw, 62px);
    line-height: 1.01;
  }

  .hero-description {
    max-width: 620px;

    font-size: 17px;
    line-height: 1.65;
  }

  .hero-actions {
    margin-top: 32px;
  }

  .services-grid {
    grid-template-columns: 1fr;
  }

  .service-card {
    min-height: 0;
  }

  .service-card p {
    max-width: 520px;
  }

  .card-link {
    margin-top: 26px;
    padding-top: 0;
  }
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 560px) {
  .hero-media {
    height: 355px;
  }

  .hero-image {
    object-position: 70% center;
  }

  .hero-content {
    padding-top: 36px;
    padding-bottom: 48px;
  }

  .hero-title {
    font-size: clamp(39px, 11.5vw, 52px);
  }

  .hero-title-accent {
    margin-top: 8px;
  }

  .hero-divider {
    width: 64px;

    margin-top: 27px;
    margin-bottom: 24px;
  }

  .hero-description {
    font-size: 16px;
    line-height: 1.62;
  }

  .hero-actions {
    width: 100%;

    display: grid;
    grid-template-columns: 1fr;

    gap: 13px;

    margin-top: 30px;
  }

  .hero-actions .primary-button,
  .hero-actions .secondary-button {
    width: 100%;
  }

  .services-section {
    padding-top: 34px;
  }

  .service-card {
    padding: 30px 24px 28px;
  }

  .service-card h2 {
    font-size: 31px;
  }
}

/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 390px) {
  .hero-media {
    height: 320px;
  }

  .hero-title {
    font-size: 38px;
  }

  .hero-description {
    font-size: 15px;
  }

  .service-card h2 {
    font-size: 28px;
  }
}
