/* =========================
   Author: Angela Wallace
   Design System: AWD (Angela Wallace Design)
   Last Updated: 3/7/26
   Notes: Separation of concerns, validates component portability
========================= */

body {
  margin: 40px;
  padding: var(--frame-pad);     /* fixed 20px frame */
  font-family: var(--font-sans);
  color: var(--color-text);
  box-sizing: border-box;
  font-size: 16px;
  font-weight: 400;
}

hr {
  margin: 40px 0;
}

/* =========================
   TYPOGRAPHY
========================= */

h1, h2, h3, h4, p, .subtitle, .caption {
  margin: 0;
}

h1 {
  font-family: var(--font-serif);
  font-size: 1.875rem;

 }

 h2 {
  font-family: var(--font-serif);
  font-size: 2.5rem;
  line-height: auto;

  color: var(--color-accent);
 }

 h3, dt {
  text-transform: uppercase;
  line-height: auto;
  letter-spacing: 0.01em;
  font-weight: bold;
 }

 h3 {
  font-size: 1.875rem;
  border-bottom: 1px solid #000;
  padding: 6px 0;
  margin-bottom: 5px;
 }

 p {
  font-family: var(--font-sans);
  line-height: 1.5625rem;
  margin: 0 0 1.5rem 0;
  font-weight: 300;
 }

/* ========================= */
/* Heading Pattern Page Override */
/* ========================= */

  .project-card .section-heading, 
  .layer-3 .section-heading {
    flex-direction: row;
  }

  .project-card {
    --heading-main-size: 1.75rem;
    --heading-accent-size: 1.6875rem;
  }

/* Tagline *

.tagline {
  font-family: var(--font-sans);
  font-size: 1.5rem;
  font-optical-sizing: auto;
  font-weight: 300;
  line-height: 1.3;
}*/

.tagline {
  font-size: var(--type-body-lg);
  font-weight: 200;
}

/* =========================
   LOGOS
========================= */

/* LOGO */
.logo {
  width: auto;
  height: 2.1875rem; /* 35px at 16px base */
  display: block;
}

/******** AI LAB LOGO **********/

.lab-logo {
  position: fixed;

  bottom: calc(var(--frame-pad) + 1rem);

  right: calc(var(--frame-pad));

  display: flex;
  align-items: center;
  gap: 10px;

  z-index: 10;

  /* glow instead of background */
  filter: drop-shadow(0 0 6px rgba(255,255,255,0.8));
}

.lab-logo__text {
  font-size: 24px;
  color: var(--color-accent);
  font-weight: 800;
  text-transform: uppercase;
}

.lab-logo .lab-logo__icon {
  width: 40px;
}

@media (max-width: 480px) {

.lab-logo {
    right: calc(var(--frame-pad) + 10px);
    bottom: calc(var(--frame-pad) + 5px);

    padding: 6px 10px;
    background-color: white;
    border-radius: 10px;

    filter: none;
    
    align-items: end;
    gap: 5px;
  }
  .lab-logo .lab-logo__text {
    font-size: 14px;
  }
  .lab-logo .lab-logo__icon {
    width: 20px;
  }
}

/* =========================
   BUTTONS & LINKS
========================= */
a { color: inherit; }

a {
  color: #ADADAD;
  cursor: pointer;
  /*padding: 5px;*/
}

a:hover {
  color: var(--color-accent);
}

a.is-active {
  color: var(--color-primary);
}

.global-header.sub-nav a.back {
  color: var(--color-inactive);
  font-size: 14px;
  display: flex;
  gap: 3px;
}

.global-header.sub-nav a.back:hover {
  color: var(--color-accent);
}

.global-header.sub-nav a.back img {
  display: inline;
}

@media (max-width: 480px) {
  a.back span:last-child {
    display: none;
  }
}

/* PRIMARY BUTTON */
.primary-btn {
  appearance: none;
  background-color: #000;
  border: 0;
  padding: 24px 48px;
  font: inherit;
  text-decoration: none;
  cursor: pointer;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 1.5rem;
  text-transform: uppercase;
}
.primary-btn:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
  background-color: #fff;
  color: #000;
}

.primary-btn:hover {
  color: #000;
  background-color: #fff;
  box-shadow: 0 1px 2.4px rgba(0, 0, 0, 0.25);
}

.primary-btn-small {
  border: 0;
    padding: 8px 10px;
    background-color: #000;
    color: white;
    font-family: var(--font-serif);
    text-transform: uppercase;
    font-size: 1rem;
    letter-spacing: 1px;
    margin-top: 10px;
    display: inline-block;
    width: 180px;
    text-align: center;
}

.primary-btn-small:hover {
    background-color: #fff;
    color: #000;
    filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.2));
}

/* TEXT LINK BUTTON */
.link-btn {
  appearance: none;
  background-color: transparent;
  cursor: pointer;
  color: var(--color-accent); 
  font-family: var(--font-sans);
  padding: 0 0 0 5px;
}
/*
.link-btn:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
  color: #000;
}
  */

.link-btn:hover {
  color: #000;
}

/* Toggle Switch */
.toggle-switch ul {
  width: 100%;
  display: flex;
  justify-content: end;
  gap: 10px;
}
.toggle-switch li {
  display: inline-block;
  cursor: pointer;
  color: #868686;
  text-transform: uppercase;
  font-size: 14px;
}

.toggle-switch li.active a {
  color: #FA4D7E;
  padding: 5px 10px;
  background: #F2F2F2;
  border-radius: 15px;
}

/* Toggle visibility */
.toggle-wrapper[data-visible="false"] {
  display: none;
}

.toggle-wrapper[data-visible="true"] {
  display: block;
}

/* =========================
   NAVIGATION
========================= */

/* GLOBAL HEADER */
.global-header {
  position: sticky;
  z-index: 10; /* above page content, below overlay */
  background: var(--color-surface);
}

.global-header .header-inner {
  min-height: var(--header-min);
  display: flex;
  align-items: end;
  justify-content: space-between;
  flex-direction:row;
  padding: 30px;
  gap: 10px;
}

.designer-name {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.designer-name a {
  text-decoration: none;
  color: initial;
}

.designer-name p {
  text-transform: uppercase;
  padding: 0;
  margin: 0;
}

.designer-name p:last-child {
  color:#868686;
}

.global-nav__list {
  display: flex;
  list-style: none;
  gap: 0;
  padding: 0;
  margin: 0;
  justify-content: end;
}

.global-nav__list li + li::before {
  content: "/";
  margin-inline: 15px;
  opacity: 0.4;
}

.global-nav__list li {
  font-size: 14px;
  text-transform: uppercase;
}

.global-nav__list li a {
  text-decoration: none;
}

/* List and AI button container*/
.global-links {
  display: flex;
  gap: 15px;
  flex-direction: row;
  place-items: center;
}
.global-nav__list {
  display: flex;
  list-style: none;
  gap: 0;
  padding: 0;
  margin: 0;
  justify-content: end;
}

.global-nav__list li + li::before {
  content: "/";
  margin-inline: 15px;
  opacity: 0.4;
}

.global-nav__list li {
  font-size: 14px;
  text-transform: uppercase;
}

.global-nav__list li a {
  text-decoration: none;
}

.global-nav__button {
  display: inline-flex;
  align-items: center;
  gap: 2px;

  height: 25px;
  padding: 0 6px;

  background: #F2F2F2;
  border: 1px solid #ffffff;
  border-radius: 3px;

  text-decoration: none;
}

.global-nav__button:hover {
  background: #FFE7EE;
  border: 1px solid #FFC6D7;
}

/* Accessibility */
.global-nav__button:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.global-nav__button-label {
  font-size: 12px;
  color: var(--color-inactive);
}

/* scoped hover */
.global-nav__button:hover .global-nav__button-label {
  /*font-style: italic; :(*/
  color: var(--color-accent);
}

.global-nav__button-icon {
  width: 20px;
  height: 16px;
  flex-shrink: 0;

  background-image: url("../assets/components/icon--ai-default.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* icon swap */
.global-nav__button:hover .global-nav__button-icon {
  background-image: url("../assets/components/icon--ai-hover.svg");
}

/****** Sub Nav Variant *******/
.global-header.sub-nav {
  background-color: #f2f2f2;
  top: 0;
}
.global-header.sub-nav .header-inner {
  padding: 10px 40px;
  align-items: center;
}

.nav-step {
  margin-right: 3px;
}

.icon--back {
  width: 24px;
  height: 24px;
  flex-shrink: 0;

  background-image: url("../assets/icons/icon-chevron-left_active.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* icon swap */
a.back:hover .icon--back {
  background-image: url("../assets/icons/icon-chevron-left_active.svg");
}

/**** CTA variant ****/
.global-nav__button.cta {
  padding: 10px 20px;
  height: auto;
  font-size: 20px;
  border-radius: 20px;
  background-color: #FFFAD0;
  color: #FA4D7E;
}

.global-nav__button.cta:hover {
  background: #FFE7EE;
}

@media (max-width: 480px) {

  .nav-text,
  .global-header.sub-nav .global-nav__list li + li::before {
    display: none;
  }

  .nav-step {
    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;
    margin-right: 0px;
    padding: 5px 8px;

    border-radius: 8px;
  }

  a.is-active .nav-step {
  background: var(--color-accent);
  color: #fff;
  font-weight: 600;
}

  .mobile-nav {
    display: flex;
    gap: 8px;
    align-items: center;
  }

  .mobile-nav a {
    padding: 4px;
  }
}

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

/* CARDS */

/* List reset */
.card ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* List items */
.card li {
  margin: 0.15rem 0;
  line-height: 1.5;
}

/*PROJECT SUMMARY (Section 1 w Overview) */

.meta {
  display: grid;
  gap: 8px;
}

.meta-row {
  display: grid;
  grid-template-columns: 120px 1fr;
}

.meta dt {
  font-weight: 600;
}

.meta dd {
  margin: 0;
}

.meta-row:last-child dd {
  font-weight: 700;
}

/******* Inline content image *********/
.inline-image {
  width: 50%;
  float: left;
  margin-right: 20px;
}

@media (max-width: 480px) {
  .inline-image {
    width: 100%;
    margin-bottom: 20px;
  }
}

/* =========================
   BANNERS
========================= */

.banner--inline-contact {
  background-color: #F2F2F2;
  display: flex;
  flex-direction: column;
  place-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 20px 0;
}

/* =========================
   LIGHTBOX OVERLAY
========================= */

.layer-3-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.layer-3-lightbox img {
  max-width: 80dvw;
  max-height: 80dvh;
  object-fit: contain;
}

.lightbox-pdf {
  display: none;
  width: 80dvw;
  height: 80dvh;
  border: none;
  background: #fff;

  box-shadow: 0 10px 40px rgba(0,0,0,0.4);
}

/* optional: center it visually within your frame */
.layer-3-overlay[data-type="pdf"] .layer-3-lightbox {
  padding: 2rem;
}

.layer-3-overlay[data-mode="lightbox"] .layer-3-stage {
  display: none !important;
}

/* =========================
   LIGHTBOX OVERLAY
========================= */

/* container */
.layer-3-lightbox {
  display: none;
  position: fixed;
  inset: 0;

  align-items: center;
  justify-content: center;

  pointer-events: none;
}

/* turn ON lightbox container */
.layer-3-overlay[data-mode="lightbox"] .layer-3-lightbox {
  display: flex;
  pointer-events: auto;
}

/* image */
.lightbox-image {
  display: none;
  max-width: 80dvw;
  max-height: 80dvh;
  object-fit: contain;
}

/* pdf */
.lightbox-pdf {
  display: none;
  width: 80dvw;
  height: 80dvh;
  border: none;
  background: #fff;

  box-shadow: 0 0px 40px rgba(0,0,0,0.4);
}



/* optional: padding for pdf presentation */
.layer-3-overlay[data-mode="lightbox"][data-type="pdf"] .layer-3-lightbox {
  padding: 2rem;
}

/* hide case study stage */
.layer-3-overlay[data-mode="lightbox"] .layer-3-stage {
  display: none !important;
}

/* =========================
   TYPE SWITCHING
========================= */

/* IMAGE MODE */
.layer-3-overlay[data-mode="lightbox"][data-type="image"] .lightbox-image {
  display: block !important;
}

.layer-3-overlay[data-mode="lightbox"][data-type="image"] .lightbox-pdf {
  display: none !important;
}

/* PDF MODE */
.layer-3-overlay[data-mode="lightbox"][data-type="pdf"] .lightbox-image {
  display: none !important;
}

.layer-3-overlay[data-mode="lightbox"][data-type="pdf"] .lightbox-pdf {
  display: block !important;
}

/* =========================
   REACT APP OVERRIDES (if embedded)
========================= */

/* Target React app container */
.react-app .layout-section-header {
  flex-direction: column;
  align-items: flex-start;
}

/* Optional: tighten heading scale on mobile */
@media (max-width: 480px) {
  .react-app .heading-main {
    font-size: 1.5rem;
  }

  .react-app .heading-accent {
    font-size: 1.25rem;
  }
}