/* Global Web Methods — ported from the "universe" Drupal theme
   (/home/thagen/Projects/global/web/themes/custom/thagen/), matched value-
   for-value against the live compiled CSS at http://global.ddev.site:33000/
   (Phase 14 Step 46). Self-hosted Orbitron instead of the Google Fonts CDN
   import the source theme used. Chat widget and custom accessibility
   overrides removed per request — this file now mirrors the source theme's
   actual rendered behavior, including its outline-suppression on focus. */

@font-face {
  font-family: "Orbitron";
  src: url("../fonts/orbitron/Orbitron-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Orbitron";
  src: url("../fonts/orbitron/Orbitron-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Orbitron";
  src: url("../fonts/orbitron/Orbitron-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Orbitron";
  src: url("../fonts/orbitron/Orbitron-Black.ttf") format("truetype");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --header-color: #dedede;
  --anchor-color: #f2ecdd;
  --anchor-hover: #dddddd;
  --font-color: #7ebde9;
  --font-color2: #c3c9ed;
  --font-color3: #cd9c20;
  --box-bg: #08080b;
  --box-border: #294058;
}

/* Reset — matches source reset.css exactly */
*:not(ul), *:before, *:after { margin: 0; padding: 0; box-sizing: border-box; }
*:focus { border: 0; outline: 0; }
html { background: #000; }
body {
  position: relative;
  background: #000;
  color: var(--font-color);
  height: 100%;
  width: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 { color: var(--header-color); margin: 0; padding: 0; }
p { margin: 0; padding: 0; font-size: 16px; }
p, #sun-planets-container ul { line-height: 1.5rem; font-family: "Orbitron", Arial, Tahoma, sans-serif; }
a { color: var(--anchor-color); text-decoration: none; }
a:hover { color: var(--anchor-hover); text-decoration: none; }
.img-fluid { max-width: 100%; height: auto; }

/* Skip link — Drupal core's actual visually-hidden/focusable mechanism,
   not a custom implementation. */
.visually-hidden {
  position: absolute !important;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  word-wrap: normal;
}
.visually-hidden.focusable:active,
.visually-hidden.focusable:focus {
  position: static !important;
  overflow: visible;
  clip: auto;
  width: auto;
  height: auto;
}

/* Containers */
.main-container { max-width: 1220px; width: 100%; margin: 0 auto; }
.container { margin: 0 auto; max-width: 1060px; width: 100%; position: relative; }

.row { display: flex; flex-direction: column; padding: 15px; }
.col-1 { width: 100%; } .col-2 { width: 100%; } .col-3 { width: 100%; }
.col-4 { width: 100%; } .col-5 { width: 100%; } .col-6 { width: 100%; }
.col-7 { width: 100%; } .col-8 { width: 100%; } .col-9 { width: 100%; }
.col-10 { width: 100%; } .col-11 { width: 100%; } .col-12 { width: 100%; }

@media screen and (min-width: 550px) {
  .row { flex-direction: row; }
  .col-1 { width: 8.33%; } .col-2 { width: 16.66%; } .col-3 { width: 25%; }
  .col-4 { width: 33.33%; } .col-5 { width: 41.66%; } .col-6 { width: 50%; }
  .col-7 { width: 58.33%; } .col-8 { width: 66.66%; } .col-9 { width: 75%; }
  .col-10 { width: 83.33%; } .col-11 { width: 91.66%; } .col-12 { width: 100%; }
}

/* Subhead: site name + burger */
.region-subhead {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  text-align: right;
  background-color: #000;
  height: 60px;
  padding: 15px;
  border-bottom: 1px solid var(--box-border);
}
#block-thagen-site-branding.site-name { margin-top: 5px; }

#menu-burger {
  margin: 0 50px 0 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}
#menu-burger .menu-btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 20px;
  height: 20px;
}
#menu-burger .menu-btn__burger {
  width: 20px;
  height: 3px;
  background: #fff;
  border-radius: 3px;
}
#menu-burger .menu-btn__burger::before,
#menu-burger .menu-btn__burger::after {
  content: "";
  position: absolute;
  width: 20px;
  height: 3px;
  background: #fff;
  border-radius: 3px;
}
#menu-burger .menu-btn__burger::before { transform: translateY(-6px); }
#menu-burger .menu-btn__burger::after { transform: translateY(6px); }

/* Side nav */
.sidenav {
  height: 100%;
  width: 0;
  position: fixed;
  z-index: 1;
  top: 0;
  right: 0;
  background-color: #000;
  overflow-x: hidden;
  padding-top: 60px;
  transition: width 0.3s ease;
}
.sidenav.open { width: 250px; border-left: 1px solid var(--box-border); }
.sidenav ul { list-style: none; margin: 0; padding: 0; }
.sidenav a {
  font-family: "Orbitron", Arial, Tahoma, sans-serif;
  padding: 8px 8px 8px 32px;
  font-size: 15px;
  color: var(--header-color);
  display: block;
}
.sidenav a:hover { color: #ddd; }
.sidenav #menu-close-burger {
  display: block;
  text-align: right;
  padding-right: 50px;
  font-size: 36px;
  margin-bottom: 20px;
}
.right-side-menu-items { margin-top: 0; }

/* Section one: hero + content boxes */
#section-one-container {
  font-family: "Orbitron", Arial, Tahoma, sans-serif;
  color: var(--font-color);
  overflow: hidden;
}
#section-one-container .section-title { margin-top: 50px; }
#section-one-container .section-one { margin-top: 50px; flex-direction: column; }
#section-one-container .section-one .universe-box-right { padding: 20px; }
#section-one-container .section-one .universe-box-indent { margin-top: 20px; margin-left: 20px; }
#section-one-container .section-one .universe-box-right .title-description { margin-bottom: 20px; }
#section-one-container .section-one-two { margin-top: -75px; }

@media screen and (min-width: 550px) {
  #section-one-container .section-one { flex-direction: row; margin-top: 20px; }
  #section-one-container .section-one .universe-box { padding: 70px 5% 50px; }
  #section-one-container .section-title { margin-top: 20px; }
}

.front-page-sub-title { margin-bottom: 20px; }

/* Only .universe-box gets the dark background/border treatment —
   .universe-box-right (the right-hand column) is plain text on black,
   matching the source theme exactly; it only gets padding above. */
.universe-box {
  font-family: "Orbitron", Arial, Tahoma, sans-serif;
  background-color: var(--box-bg);
  background-image: url("../img/universe-planets-sunbg.jpg");
  background-repeat: no-repeat;
  background-position: right bottom;
  padding: 30px 5% 20px;
  border: 1px solid var(--box-border);
}

/* Section two/three container — the big continuous space background */
#sun-planets-container {
  min-height: 1920px;
  background-color: #000;
  background: url("../img/universe-planets-sunbg.jpg") no-repeat left bottom;
  font-family: "Orbitron", Arial, Tahoma, sans-serif;
  color: var(--font-color3);
  line-height: 1.5rem;
}
#sun-planets-container .section-one { flex-direction: column; }
#sun-planets-container .section-three { flex-direction: column; }
#sun-planets-container .section-one .universe-box:not(:last-child),
#sun-planets-container .section-three .universe-box:not(:last-child) {
  margin-right: auto;
  margin-bottom: 15px;
}

.slider-satellite { margin-left: auto; margin-top: 0; }

@media screen and (min-width: 550px) {
  #sun-planets-container .section-one { flex-direction: row; margin-top: 20px; }
  #sun-planets-container .section-three { flex-direction: row; }
  #sun-planets-container .section-one .universe-box { padding: 70px 5% 50px; }
  #sun-planets-container .section-one .universe-box:not(:last-child),
  #sun-planets-container .section-three .universe-box:not(:last-child) {
    margin-right: 15px;
    margin-bottom: 0;
  }
  #sun-planets-container .row { flex-direction: column; }
  #sun-planets-container .row .col-4, #sun-planets-container .row .col-6 { width: 100%; }
  .slider-satellite { margin: 0 auto; margin-top: 20px; }
}

@media screen and (min-width: 760px) {
  #sun-planets-container .row { flex-direction: row; }
  #sun-planets-container .row .col-4 { width: 100%; }
  .slider-satellite { margin: 0 auto; margin-top: 70px; }
}

@media screen and (min-width: 1250px) {
  .slider-satellite { margin-left: -75px; margin-top: 200px; }
  #sun-planets-container .row .col-4 { width: 49%; }
}

@media screen and (min-width: 1600px) {
  .slider-satellite { margin-left: -100px; margin-top: 150px; }
  #sun-planets-container .row .col-4 { width: 33.33%; }
}

/* Valued customers */
.valued-customers-container { width: 100%; max-width: 1280px; margin: 0 auto; }

.company-card-grid { display: grid; grid-template-columns: 1fr; gap: 15px; margin-top: 20px; }
@media screen and (min-width: 550px) { .company-card-grid { grid-template-columns: repeat(2, 1fr); } }
@media screen and (min-width: 760px) { .company-card-grid { grid-template-columns: repeat(3, 1fr); } }

.company-card { background-color: var(--box-bg); border: 1px solid var(--box-border); padding: 15px; }
.company-card-logo {
  display: block;
  height: 60px;
  width: 100%;
  object-fit: contain;
  object-position: left center;
  margin-bottom: 12px;
}
.company-card-title { font-size: 1rem; margin-bottom: 8px; }
.company-card-role, .company-card-meta, .company-card-dates { font-size: 0.85rem; line-height: 1.3rem; }
.company-card-dates { opacity: 0.8; }

/* Product pages (Easy Life Model / Marketing Model / Business Model / About / Contact) —
   new pages with no equivalent in the source Drupal theme. */
.product-page .container { padding-top: 50px; padding-bottom: 50px; }
.product-page h1 { margin-bottom: 1.25rem; }
.product-page .universe-box { margin-top: 1.5rem; }
.product-page ul { margin: 1rem 0 0 1.25rem; }
.product-page li { margin-bottom: 0.5rem; line-height: 1.5rem; }
.back-link { display: inline-block; margin-top: 2rem; }

/* JSON Field Name Conversion tool — form elements (Phase 28 Step 229) */
.tool-step { margin-top: 1.5rem; }
.tool-step h2 { margin-bottom: 0.75rem; }
.tool-label { display: block; font-size: 0.85rem; color: var(--font-color2); margin-bottom: 0.35rem; }
.tool-textarea, .tool-input, .tool-select {
  width: 100%;
  background-color: #050507;
  border: 1px solid var(--box-border);
  color: var(--font-color2);
  font-family: "Orbitron", Arial, Tahoma, sans-serif;
  font-size: 0.9rem;
  padding: 0.5rem 0.6rem;
}
.tool-textarea {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  min-height: 160px;
  resize: vertical;
}
.tool-textarea:focus, .tool-input:focus, .tool-select:focus { border-color: var(--font-color); }
.mapping-row {
  display: grid;
  grid-template-columns: 1fr 1fr 0.8fr auto;
  gap: 0.6rem;
  align-items: end;
  margin-bottom: 0.75rem;
}
@media screen and (max-width: 700px) { .mapping-row { grid-template-columns: 1fr; } }
.cta-button, .tool-button {
  display: inline-block;
  background-color: var(--box-bg);
  border: 1px solid var(--box-border);
  color: var(--anchor-color);
  font-family: "Orbitron", Arial, Tahoma, sans-serif;
  font-size: 0.9rem;
  padding: 0.55rem 1.1rem;
  cursor: pointer;
}
.cta-button:hover, .tool-button:hover { color: var(--anchor-hover); border-color: var(--font-color); }
.cta-button.primary { border-color: var(--font-color3); color: var(--font-color3); font-size: 1rem; padding: 0.75rem 1.5rem; }
.cta-button.primary:hover { color: #e6b53a; }
.tool-button.danger { border-color: #7a3030; color: #d98b8b; }
.tool-button.small { font-size: 0.8rem; padding: 0.35rem 0.7rem; }
.price-tag { color: var(--font-color3); font-weight: 700; }
.json-preview {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.85rem;
  white-space: pre-wrap;
  word-break: break-word;
  background-color: #050507;
  border: 1px solid var(--box-border);
  padding: 1rem;
  max-height: 420px;
  overflow: auto;
  color: var(--font-color2);
}
.tool-notice { font-size: 0.85rem; color: var(--font-color2); margin-top: 0.6rem; }
.unlock-banner { border-color: var(--font-color3); }
.unlock-banner h2 { color: var(--font-color3); }
