/* ==========================================================================
   SEO 1A theme: inner pages, WordPress content and menus
   ========================================================================== */

/* Primary menu: WordPress classes, dropdowns, call to action */
.primary-nav .current-menu-item > a,
.primary-nav .current-menu-ancestor > a { color: var(--machine); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
.primary-nav .menu-cta a { color: var(--graphite); text-decoration: none; }
.primary-nav li { position: relative; }
.primary-nav .sub-menu {
  list-style: none; margin: 0; padding: 0.5rem; display: none;
  position: absolute; top: 100%; left: -0.75rem; z-index: 50; min-width: 16rem;
  background: #FFFFFF; border-radius: 14px; box-shadow: var(--shadow-hover);
}
.primary-nav .sub-menu a { display: block; padding: 0.55rem 0.75rem; border-radius: 8px; font-weight: 600; }
.primary-nav .sub-menu a:hover { background: var(--aluminum); text-decoration: none; }
.primary-nav li:hover > .sub-menu,
.primary-nav li:focus-within > .sub-menu { display: block; }
.primary-nav .menu-item-has-children > a::after { content: ""; display: inline-block; width: 0.4em; height: 0.4em; margin-left: 0.4em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-0.2em) rotate(45deg); }
@media (max-width: 52rem) {
  .primary-nav .sub-menu { display: block; position: static; box-shadow: none; padding: 0 0 0 1rem; min-width: 0; background: transparent; }
  .primary-nav .menu-item-has-children > a::after { display: none; }
}

/* Title band on inner pages */
.page-hero {
  position: relative; overflow: hidden; color: #FFFFFF;
  padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(2.5rem, 5vw, 4rem);
  background:
    radial-gradient(ellipse 50% 80% at 85% 20%, rgba(255, 186, 0, 0.18), rgba(255, 186, 0, 0) 60%),
    radial-gradient(ellipse 40% 70% at 5% 100%, rgba(47, 107, 255, 0.30), rgba(47, 107, 255, 0) 60%),
    linear-gradient(155deg, #0B2F71 0%, #061634 70%);
}
.page-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, 0.10) 1px, rgba(255, 255, 255, 0) 1.5px);
  background-size: 26px 26px;
}
.page-hero .wrap { position: relative; }
.page-hero.has-image .wrap { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.page-hero h1 { color: #FFFFFF; max-width: 22ch; }
.page-lede { font-size: 1.25rem; color: #D5DEF0; max-width: 46rem; margin: 0; }
.page-meta { color: #C5D0E6; font-size: 1rem; margin: -0.5rem 0 1rem; }
.page-hero-figure { margin: 0; }
.page-hero-figure img { border-radius: 20px; box-shadow: 0 30px 60px -25px rgba(0, 0, 0, 0.7); width: 100%; height: auto; }
@media (max-width: 52rem) { .page-hero.has-image .wrap { grid-template-columns: 1fr; } }

/* Breadcrumbs */
.breadcrumbs { margin-bottom: 1.25rem; font-size: 0.9375rem; }
.breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; }
.breadcrumbs li { color: #C5D0E6; }
.breadcrumbs li + li::before { content: "/"; margin-right: 0.5rem; color: rgba(255, 255, 255, 0.45); }
.breadcrumbs a { color: #FFFFFF; }
.breadcrumbs a:hover { color: var(--safety); }

/* Page body and content */
.page-body { padding: clamp(2.5rem, 6vw, 4.5rem) 0; background: #FFFFFF; }
.page-grid { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
@media (max-width: 62rem) { .page-grid { grid-template-columns: 1fr; } }

.entry-content { min-width: 0; font-size: 1.125rem; line-height: 1.7; }
.entry-content > * { max-width: 75ch; }
.entry-wide > * { max-width: none; }
.entry-content h2, .entry-content h3, .entry-content h4 { margin: 2.25rem 0 1rem; }
.entry-content h2:first-child, .entry-content h3:first-child, .entry-content h4:first-child { margin-top: 0; }
.entry-content p { margin: 0 0 1.25rem; }
.entry-content ul, .entry-content ol { margin: 0 0 1.5rem; padding-left: 1.4rem; }
.entry-content li { margin-bottom: 0.5rem; }
.entry-content li::marker { color: var(--machine); }
.entry-content a { color: var(--machine); font-weight: 600; }
.entry-content img { border-radius: 14px; height: auto; }
.entry-content figure { margin: 0 0 1.75rem; }
.entry-content figcaption, .entry-content .wp-element-caption { font-size: 0.9375rem; color: var(--text-soft); margin-top: 0.5rem; }
.entry-content blockquote {
  margin: 0 0 1.75rem; padding: 1.25rem 1.5rem; border-left: 5px solid var(--safety);
  background: var(--aluminum); border-radius: 0 14px 14px 0; font-size: 1.1875rem;
}
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content hr, .entry-content .wp-block-separator { border: 0; height: 1px; background: var(--line); margin: 2.5rem 0; }
.entry-content table { min-width: 0; margin-bottom: 1.75rem; border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); }
.entry-content th, .entry-content td { border-bottom: 1px solid var(--line); }
.entry-content iframe, .entry-content video { max-width: 100%; border-radius: 14px; }
.entry-content pre, .entry-content code { font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-size: 0.9375rem; }
.entry-content pre { background: var(--graphite); color: #E8EDF6; padding: 1rem 1.25rem; border-radius: 14px; overflow-x: auto; }
.entry-content .wp-block-button__link, .entry-content .button {
  display: inline-block; background: var(--safety); color: var(--graphite); font-weight: 700;
  border-radius: 999px; padding: 0.85rem 1.4rem; text-decoration: none;
}
.entry-content .alignleft { float: left; margin: 0.3rem 1.5rem 1rem 0; }
.entry-content .alignright { float: right; margin: 0.3rem 0 1rem 1.5rem; }
.entry-content .aligncenter { margin-left: auto; margin-right: auto; }
.entry-content .alignwide, .entry-content .alignfull { max-width: none; }
.back-link { margin-top: 2rem; font-weight: 700; }

/* Sidebar */
.page-aside { display: grid; gap: 1.25rem; position: sticky; top: 7rem; }
.aside-card { background: var(--aluminum); border-radius: 18px; padding: 1.5rem; }
.aside-card p { margin: 0 0 0.75rem; }
.aside-title { font-weight: 800; font-size: 1.125rem; }
.aside-tools ul { list-style: none; margin: 0; padding: 0; }
.aside-tools li { margin-bottom: 0.5rem; }
.aside-tools a { font-weight: 700; }
.aside-contact { background: linear-gradient(150deg, #0B2F71, #061634); color: #FFFFFF; }
.aside-contact p { color: #D5DEF0; }
.aside-contact .aside-title { color: #FFFFFF; }
.aside-contact a:not(.btn) { color: #FFFFFF; }
.aside-small { font-size: 0.9375rem; margin-bottom: 0; }
@media (max-width: 62rem) { .page-aside { position: static; } }

/* Card grids on archives, related posts and search */
.article-list-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 62rem) { .article-list-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 40rem) { .article-list-3 { grid-template-columns: 1fr; } }
.article-media img { width: 100%; height: 100%; object-fit: cover; }

/* Pagination */
.pagination { margin-top: 2.5rem; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; height: 2.75rem;
  padding: 0 0.9rem; border-radius: 999px; background: var(--aluminum); color: var(--graphite); font-weight: 700; text-decoration: none;
}
.pagination .page-numbers.current { background: var(--graphite); color: #FFFFFF; }
.pagination a.page-numbers:hover { background: var(--safety); }

/* Search form */
.search-form { margin-bottom: 2rem; max-width: 40rem; }
.search-form label { display: block; font-weight: 700; margin-bottom: 0.4rem; }
.search-row { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.search-row input {
  flex: 1 1 16rem; min-width: 0; font: inherit; padding: 0.75rem 1.1rem;
  border: 2px solid var(--line); border-radius: 999px; background: #FFFFFF; color: var(--text);
}
.search-row .btn { font: inherit; font-weight: 700; cursor: pointer; }

/* Manufacturing News page */
.news-page { padding-top: clamp(2.5rem, 5vw, 4rem); }

/* WooCommerce basics */
.woocommerce-area .price { font-size: 1.25rem; font-weight: 800; color: var(--machine); }
.woocommerce-area .button, .woocommerce-area button.button {
  background: var(--safety); color: var(--graphite); border: 0; border-radius: 999px; font-weight: 700; padding: 0.85rem 1.4rem; cursor: pointer;
}
.woocommerce-area ul.products { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1.5rem; }
.woocommerce-area ul.products li.product { background: #FFFFFF; border-radius: 18px; box-shadow: var(--shadow); padding: 1.25rem; }

/* Bold sub-headings (former extra headings kept as paragraphs so each page has one H2, H3 and H4) */
.entry-content .subhead { font-size: 1.25rem; line-height: 1.35; margin: 2rem 0 0.75rem; color: var(--graphite); }
.entry-content .subhead strong { font-weight: 800; }
.entry-content .subhead a { color: inherit; }

/* Forms */
.seo1a-form-wrap { background: var(--aluminum); border-radius: 20px; padding: clamp(1.25rem, 3vw, 2rem); margin: 1.5rem 0 2rem; max-width: 46rem; }
.seo1a-form { display: grid; gap: 1rem; }
.form-required-note { font-size: 0.9375rem; color: var(--text-soft); margin: 0; }
.form-field label, .form-checks legend { display: block; font-weight: 700; margin-bottom: 0.35rem; }
.form-field input, .form-field textarea {
  width: 100%; font: inherit; font-size: 1.0625rem; color: var(--text); background: #FFFFFF;
  border: 2px solid var(--line); border-radius: 12px; padding: 0.7rem 0.9rem;
}
.form-field input:focus, .form-field textarea:focus { border-color: var(--machine); }
.form-checks { border: 0; margin: 0; padding: 0; }
.form-checks legend { padding: 0; }
.form-checks label { display: flex; align-items: center; gap: 0.5rem; font-weight: 500; margin: 0.35rem 0; }
.form-checks input { width: 1.15rem; height: 1.15rem; accent-color: var(--machine); }
.req { font-weight: 500; color: #8A1C1C; }
.form-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.seo1a-form .btn { justify-self: start; font: inherit; font-weight: 700; cursor: pointer; }
.form-notice { border-radius: 12px; padding: 0.9rem 1.1rem; margin-bottom: 1rem; }
.form-notice p { margin: 0; }
.form-success { background: #E7F6EC; border-left: 6px solid #1C7C46; }
.form-error { background: #FDECEA; border-left: 6px solid #B42318; }

/* PDF download card */
.pdf-card { display: flex; align-items: center; gap: 1rem; background: var(--aluminum); border-radius: 16px; padding: 1rem 1.25rem; margin: 0 0 2rem; }
.pdf-card p { margin: 0; }
.pdf-icon { width: 2.5rem; height: 3rem; flex: none; }
.pdf-title { display: block; font-weight: 700; }
.pdf-meta { font-weight: 500; color: var(--text-soft); }

/* Data tables and video inside content */
.entry-content table caption { background: transparent; padding: 0 0 0.6rem; }
.entry-content .wp-block-video video { width: 100%; height: auto; }

/* Print: clean article printouts and "Save as PDF" */
@media print {
  .site-header, .site-footer, .page-aside, .tools, .cta, .articles, .news, .breadcrumbs, .skip, .pdf-card, .seo1a-form-wrap { display: none !important; }
  .page-hero { background: none !important; color: #000000; padding: 0 0 1rem; }
  .page-hero::before { display: none; }
  .page-hero h1, .page-lede, .page-meta { color: #000000; }
  .page-grid { display: block; }
  .entry-content > * { max-width: none; }
  .entry-content a { color: #000000; }
  body { font-size: 11pt; }
}

/* Tables in page content wrap on small screens instead of scrolling sideways */
.entry-content .wp-block-table { overflow-x: visible; }
.entry-content th, .entry-content td { overflow-wrap: anywhere; }
@media (max-width: 40rem) {
  .entry-content th, .entry-content td { padding: 0.6rem 0.5rem; font-size: 0.9375rem; }
}

/* Visible keyboard focus on video players (drawn inside the frame so rounded corners don't clip it) */
video:focus, video:focus-visible { outline: 4px solid var(--safety); outline-offset: -4px; }

/* Keep in-page link targets clear of the sticky header */
html { scroll-padding-top: 7rem; }

/* Video transcripts */
.video-transcript { margin-top: 1rem; }
.video-transcript summary { cursor: pointer; font-weight: 700; }
.video-transcript p { margin: 0.75rem 0 0; }
.videos .video-transcript summary { color: var(--safety); }
.videos .video-transcript p { color: var(--on-dark-soft); }
.entry-content .video-transcript { background: var(--aluminum); border-radius: 14px; padding: 1rem 1.25rem; margin-bottom: 2rem; }
