/*
 Theme Name:   HurricaneChild400InkV1
 Theme URI:    https://graphicsbyhurricane.com/
 Description:  Divi child theme for 400 Ink 2026 rebuild (ink4002026 staging). Hurricane Web Performance.
 Author:       Hurricane Web Performance
 Author URI:   https://graphicsbyhurricane.com/
 Template:     Divi
 Version:      1.0.24
 Text Domain:  hurricane-child-400ink-v1
*/

/* ==========================================================================
   400 Ink 2026 — brand tokens + Divi overrides (staging)
   Source: mockups/css/brand.css — NO soft Divi blue as primary chrome
   ========================================================================== */

:root {
  --chrome: linear-gradient(135deg,#f5f7fa 0%,#c3cfe2 40%,#9aa5b5 70%,#e8eef5 100%);
  --chrome-line: rgba(230,236,245,0.72);
  --cmyk-y: #FFF200;
  --bg: #0B0B0D;
  --bg-elev: #141418;
  --bg-panel: #1A1A1E;
  --chrome-1: #C8CDD4;
  --chrome-2: #8A9099;
  --chrome-3: #4A4F57;
  --text: #F5F5F7;
  --text-muted: #A8ADB7;
  --cyan: #00AEEF;
  --magenta: #EC008C;
  --yellow: #FFF200;
  --key: #000000;
  --link: #2EA3F2;
  --link-deep: #1E73BE;
  --link-navy: #006799;
  --radius: 12px;
  --radius-sm: 8px;
  --shadow: 0 12px 40px rgba(0,0,0,.55);
  --hairline: 1px solid rgba(210,220,235,.42);
  --font-ui: 'Montserrat', system-ui, sans-serif;
  --font-display: 'Concert One', cursive;
  --max: 1200px;
}

/* Base field — dark shop energy */
body,
#page-container,
#et-boc,
.et_pb_section,
#main-content {
  background-color: var(--bg);
  color: var(--text);
}

body,
.et_pb_text,
.et_pb_text_inner,
.et_pb_blurb,
.et_pb_module {
  font-family: var(--font-ui);
  -webkit-font-smoothing: antialiased;
}

/* Display / UI type — H1 matches H2 (Montserrat), slightly larger */
.ink-h1,
.et_pb_section.ink-hero h1,
.et_pb_text.ink-display h1,
.et_pb_text_inner h1,
h1 {
  font-family: var(--font-ui) !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: -.01em;
  font-size: clamp(1.85rem, 3.5vw, 2.55rem) !important;
  color: var(--text) !important;
  line-height: 1.15 !important;
}

h2.ink-section-title,
.et_pb_text.ink-section-title h2,
.ink-section-title,
.et_pb_text_inner h2 {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
}

.ink-eyebrow,
.et_pb_text.ink-eyebrow,
.et_pb_text.ink-eyebrow .et_pb_text_inner {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--cyan) !important;
}

h2.ink-section-title,
.et_pb_text.ink-section-title h2,
.ink-section-title {
  font-family: var(--font-ui) !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: -.01em;
  color: var(--text) !important;
}

.ink-muted,
.ink-lede {
  color: var(--text-muted) !important;
}

/* Chrome hairlines + elevated panels */
.ink-panel,
.et_pb_row.ink-panel,
.et_pb_column.ink-panel,
.et_pb_module.ink-panel {
  background: var(--bg-elev) !important;
  border: 1px solid rgba(200,210,225,.38) !important;
  border-radius: var(--radius);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.10),
    inset 0 1px 0 rgba(255,255,255,.16),
    0 0 0 1px rgba(0,0,0,.35),
    0 10px 32px rgba(0,0,0,.40);
}

.ink-hairline-section {
  border-block: var(--hairline);
}

/* CMYK bar accent */
.ink-cmyk-bar {
  height: 5px;
  width: 120px;
  background: linear-gradient(90deg, var(--cyan), var(--magenta) 35%, var(--yellow) 70%, #111);
  box-shadow: 0 0 12px rgba(255,242,0,.25);
  border-radius: 2px;
  margin-bottom: 18px;
}

/* Buttons — magenta primary, chrome ghost (NOT Divi soft blue) */
.et_pb_button.ink-btn-primary,
a.et_pb_button.ink-btn-primary,
.ink-btn-primary .et_pb_button {
  background: var(--magenta) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    0 0 0 1px rgba(236,0,140,.55),
    0 8px 24px rgba(236,0,140,.38) !important;
}
.et_pb_button.ink-btn-primary:hover,
a.et_pb_button.ink-btn-primary:hover {
  background: #ff1aa0 !important;
  color: #fff !important;
}

.et_pb_button.ink-btn-ghost,
a.et_pb_button.ink-btn-ghost,
.ink-btn-ghost .et_pb_button {
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.01)) !important;
  color: var(--text) !important;
  border: 1px solid rgba(200,210,225,.55) !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    0 0 0 1px rgba(0,0,0,.45),
    0 8px 22px rgba(0,0,0,.35) !important;
}
.et_pb_button.ink-btn-ghost:hover,
a.et_pb_button.ink-btn-ghost:hover {
  border-color: var(--cyan) !important;
  color: var(--cyan) !important;
}

/* Kill soft Divi blue as primary chrome on branded modules */
.et_pb_button:not(.ink-btn-ghost):not(.ink-keep-link) {
  /* default CTAs on Home use magenta when classed; leave others alone */
}

/* Header / nav chrome */
#main-header,
.et-l--header,
header.et-l {
  background: rgba(11,11,13,.92) !important;
  border-bottom: 1px solid rgba(220,228,240,.55) !important;
  box-shadow:
    inset 0 -1px 0 rgba(255,255,255,.08),
    0 8px 28px rgba(0,0,0,.45) !important;
}
#et-top-navigation a,
.et_pb_menu a,
#top-menu a {
  color: var(--text) !important;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 13px;
}
#et-top-navigation a:hover,
#top-menu a:hover,
#top-menu li.current-menu-item > a {
  color: var(--cyan) !important;
}

/* Stats / cards */
.ink-stat strong {
  display: block;
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--text);
}
.ink-stat span {
  font-size: 11px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
}

.ink-card {
  background: var(--bg-elev) !important;
  border: 1px solid rgba(200,210,225,.38) !important;
  border-radius: var(--radius);
  overflow: hidden;
  transition: border-color .2s, transform .2s;
}
.ink-card:hover {
  border-color: var(--cyan) !important;
  transform: translateY(-3px);
}

.ink-step-num {
  font-family: var(--font-display) !important;
  font-size: 2rem !important;
  color: var(--magenta) !important;
  line-height: 1;
}

/* Featured equal tiles */
.ink-featured-grid .et_pb_column {
  margin-bottom: 16px;
}

/* Footer */
#main-footer,
.et-l--footer,
footer.et-l,
#et-footer-nav {
  background: #08080A !important;
  color: var(--text-muted) !important;
  border-top: 1px solid rgba(210,220,235,.4);
}
.ink-powered-by,
.ink-powered-by em {
  font-style: italic !important;
  color: var(--text-muted) !important;
}

/* CTA band */
.et_pb_section.ink-cta-band {
  background: linear-gradient(120deg, #120812 0%, #0B0B0D 40%, #061820 100%) !important;
  border-block: var(--hairline);
}

/* Hero radial accents */
.et_pb_section.ink-hero {
  background:
    radial-gradient(ellipse 80% 60% at 70% 20%, rgba(0,174,239,.12), transparent 55%),
    radial-gradient(ellipse 50% 40% at 10% 80%, rgba(236,0,140,.1), transparent 50%),
    var(--bg) !important;
  border-bottom: var(--hairline);
}

/* Links — secondary only; not page chrome */
a.ink-link { color: var(--link); }
a.ink-link:hover { color: var(--link-deep); }

/* Utility */
.ink-yellow-dot {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--yellow);
  box-shadow: 0 0 12px var(--yellow);
  margin-right: 8px;
  vertical-align: middle;
}


/* Divi default chrome — force dark shop field (until Theme Builder header/footer) */
#main-header,
#main-header.et-fixed-header,
.et_fixed_nav #main-header {
  background-color: rgba(11,11,13,.96) !important;
  background: rgba(11,11,13,.96) !important;
}
#top-header { background: #08080A !important; color: var(--text-muted) !important; }
#et-top-navigation nav > ul > li > a,
#top-menu > li > a { color: #F5F5F7 !important; }
#top-menu > li.current-menu-item > a,
#top-menu > li > a:hover { color: #00AEEF !important; }
#main-footer,
#footer-bottom {
  background-color: #08080A !important;
  color: #A8ADB7 !important;
}
body.et_cover_background,
#page-container,
.et_pb_pagebuilder_layout {
  background-color: #0B0B0D !important;
}
/* CTA menu item as magenta pill when last */
#top-menu > li.menu-item-16 > a {
  background: #EC008C !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 10px 18px !important;
  margin-left: 8px;
}
#top-menu > li.menu-item-16 > a:hover {
  background: #ff1aa0 !important;
  color: #fff !important;
}


/* --------------------------------------------------------------------------
   Blurb thumbs — cover crop (products + featured placeholders)
   -------------------------------------------------------------------------- */
.et_pb_blurb.ink-card .et_pb_main_blurb_image {
  margin: 0 0 12px !important;
  width: 100% !important;
  max-width: 100% !important;
}
.et_pb_blurb.ink-card .et_pb_main_blurb_image img,
.et_pb_blurb.ink-card .et_pb_image_wrap,
.et_pb_blurb.ink-card .et_pb_image_wrap img {
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  border-radius: 0 !important;
  object-fit: cover !important;
}
.et_pb_blurb.ink-card .et_pb_image_wrap {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #101014;
}
.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap {
  aspect-ratio: 16 / 9;
}
.et_pb_blurb.ink-card .et_pb_blurb_container {
  padding-top: 0 !important;
}
.et_pb_blurb.ink-card h3,
.et_pb_blurb.ink-card .et_pb_module_header {
  margin-top: 4px !important;
}

/* Chrome edge on card images */
.et_pb_blurb.ink-card .et_pb_main_blurb_image {
  box-shadow: inset 0 -1px 0 rgba(210,220,235,.28);
}

/* CMYK hairline utility under section titles when markup present */
.ink-section-title + .ink-cmyk-bar,
.et_pb_text.ink-section-title + .et_pb_text .ink-cmyk-bar {
  margin-top: 4px;
}

/* Softer chrome panel inset for Why stats */
.et_pb_row.ink-panel {
  position: relative;
}
.et_pb_row.ink-panel::before {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}

/* Kill default Divi blurb icon circle leftover if any */
.et_pb_blurb.ink-card .et-pb-icon {
  display: none !important;
}

/* --------------------------------------------------------------------------
   Rick lock: full-bleed helpers (Divi still constrains #page-container / rows)
   Staging ink4002026 — keep body/content edge-to-edge where Divi boxes it in
   -------------------------------------------------------------------------- */
body.et_full_width_page #page-container,
body.et_pb_pagebuilder_layout #page-container,
#page-container {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden;
}

body.et_full_width_page #main-content .container,
body.et_pb_pagebuilder_layout #main-content .container {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Sections/rows can still use Divi's inner width; allow true full-bleed sections */
.et_pb_section.et_pb_fullwidth_section,
.et_pb_section.ink-full-bleed {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* No sidebar chrome on fullwidth pages */
body.et_full_width_page #sidebar,
body.et_full_width_page .et_pb_widget_area,
body.et_full_width_page #left-area {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.et_full_width_page #sidebar {
  display: none !important;
}

/* --------------------------------------------------------------------------
   TB header: ~150px tall, full-width, small plain chrome logo
   -------------------------------------------------------------------------- */
.et-l--header,
header.et-l,
#et-boc .et-l--header,
.et-db #et-boc .et-l--header {
  width: 100% !important;
  max-width: 100% !important;
}

.et-l--header .et_pb_section,
.et-l--header .et_pb_section.ink-tb-header,
.et-l--header .et_pb_row,
.et-l--header .et_pb_row.ink-tb-header-row {
  width: 100% !important;
  max-width: 100% !important;
}

.et-l--header .et_pb_section.ink-tb-header {
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  min-height: 0 !important;
}

.et-l--header .et_pb_row.ink-tb-header-row {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Keep whole header ~150px */
.et-l--header .et_pb_section.ink-tb-header,
.et_pb_section_0_tb_header {
  max-height: 150px;
  overflow: hidden;
}

.et-l--header .et_pb_image.ink-tb-logo,
.et-l--header .et_pb_image_0_tb_header,
.et_pb_image_0_tb_header {
  margin-bottom: 0 !important;
  max-width: 120px !important;
}

.et-l--header .et_pb_image img,
.et-l--header .ink-tb-logo img,
.et_pb_image_0_tb_header .et_pb_image_wrap,
.et_pb_image_0_tb_header .et_pb_image_wrap img,
.et_pb_image_0_tb_header img {
  max-height: 110px !important;
  max-width: 120px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain;
}

.et-l--header .et_pb_menu,
.et-l--header .et_pb_menu .et-menu-nav > ul > li > a {
  line-height: 1.2 !important;
}

.et-l--header .ink-tb-cta,
.et-l--header .ink-tb-cta .et_pb_text_inner {
  padding-bottom: 0 !important;
}

@media (max-width: 980px) {
  .et-l--header .et_pb_section.ink-tb-header,
  .et_pb_section_0_tb_header {
    max-height: none;
    overflow: visible;
  }
  .et-l--header .et_pb_image img,
  .et_pb_image_0_tb_header img {
    max-height: 72px !important;
    max-width: 80px !important;
  }
}
/* end TB header */


/* Contact form (page 30) — Turnstile + quote form chrome */
.et_pb_contact_form .et_pb_contact_submit.et_pb_button,
.ink-quote-form .et_pb_contact_submit.et_pb_button,
.ink-contact-form .et_pb_contact_submit.et_pb_button {
  background: var(--magenta) !important;
  background-color: #EC008C !important;
  color: #ffffff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 14px 22px !important;
  font-family: Montserrat, sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
}
.et_pb_contact_form .et_pb_contact_submit.et_pb_button:hover,
.ink-quote-form .et_pb_contact_submit.et_pb_button:hover {
  background: #d1007c !important;
  background-color: #d1007c !important;
  color: #ffffff !important;
}
.ink-quote-form .et_pb_contact_field label,
.ink-contact-form .et_pb_contact_field label {
  color: #F5F5F7 !important;
}
.ink-quote-form .et_pb_contact_field input,
.ink-quote-form .et_pb_contact_field textarea,
.ink-quote-form .et_pb_contact_field select {
  background: #0B0B0D !important;
  color: #F5F5F7 !important;
  border: 1px solid rgba(200,210,225,0.38) !important;
  border-radius: 8px !important;
}
/* Hide redundant title when checkbox option carries the consent copy */
.ink-quote-form .et_pb_contact_field[data-id="SMSConsent"] .et_pb_contact_form_label,
.ink-quote-form .et_pb_contact_field_SMSConsent > label:first-child {
  /* handled by empty field_title in shortcode when possible */
}
.divi-turnstile-wrapper {
  justify-content: flex-start !important;
  margin: 12px 0 8px !important;
}


/* ==========================================================================
   Cumming GA location page (/cumming-ga/) — FAQ toggles + service cards
   ========================================================================== */
.ink-loc-cumming .ink-yellow-dot,
.ink-eyebrow .ink-yellow-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--yellow);
  margin-right: 8px;
  vertical-align: middle;
  box-shadow: 0 0 8px rgba(255,242,0,.45);
}

.ink-loc-grid .ink-loc-card:hover > div {
  border-color: var(--cyan) !important;
  transform: translateY(-3px);
  transition: border-color .2s, transform .2s;
}

.et_pb_toggle.ink-faq-toggle,
.ink-loc-faq .et_pb_toggle {
  background: var(--bg-elev) !important;
  border: 1px solid rgba(200,210,225,.38) !important;
  border-radius: var(--radius) !important;
  margin-bottom: 12px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.et_pb_toggle.ink-faq-toggle .et_pb_toggle_title,
.ink-loc-faq .et_pb_toggle_title {
  color: var(--text) !important;
  font-family: var(--font-ui) !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  padding-right: 36px !important;
}

.et_pb_toggle.ink-faq-toggle .et_pb_toggle_content,
.ink-loc-faq .et_pb_toggle_content {
  color: var(--text-muted) !important;
}

.et_pb_toggle.ink-faq-toggle .et_pb_toggle_title:before,
.ink-loc-faq .et_pb_toggle_title:before {
  color: var(--cyan) !important;
}

.ink-loc-faq a {
  color: var(--cyan);
}

/* 2026-10-10 (Rick): hide Divi page.php default title on the home page only.
   Page 21 has _et_pb_use_builder=off, so Divi prints <h1 class="entry-title main_title">. */
.page-id-21 #main-content article > h1.entry-title.main_title {
  display: none;
}

/* ==========================================================================
   Haley R2 2026-10-10 (child theme 1.0.15; tuned live 1.0.12 -> 1.0.15 during verification)
   Appended block. Everything above this line is untouched.
   Hooks added to post_content by scripts/2X-*.php:
     .ink-products-grid  Home 21 + Services 22 Products & Services rows
     .ink-featured-grid  (existing) Fresh Off The Printer + Recent Work rows
     .ink-benefits-grid  service-page Benefits rows (23-28)
     .ink-steps-grid     service-page How It Works row (23-28)
     .ink-built-for      service-page hero Built For text module (23-28)
     .ink-quote-row      service-page quote row, now one column (23-28)
     .ink-fit-contain    Home "Screen Printed Work Wear" tile (no crop)
     .ink-tile-*         Signs & Banners Recent Work tiles, keyed by tile name
   Equal heights use flex on the row (desktop) plus min-heights so tiles in
   different rows of the same grid also match. Below 981px Divi stacks the
   columns; min-heights keep stacked cards the same size there too.
   ========================================================================== */

/* ---- R2.1 Equal-height rows: shared flex mechanics -------------------- */
@media (min-width: 981px) {
  .et_pb_row.ink-products-grid,
  .et_pb_row.ink-featured-grid,
  .et_pb_row.ink-benefits-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
  }
  .et_pb_row.ink-products-grid::after,
  .et_pb_row.ink-featured-grid::after,
  .et_pb_row.ink-benefits-grid::after {
    display: none;
  }
  .et_pb_row.ink-products-grid > .et_pb_column,
  .et_pb_row.ink-featured-grid > .et_pb_column,
  .et_pb_row.ink-benefits-grid > .et_pb_column {
    display: flex;
    flex-direction: column;
    float: none;
  }
  .et_pb_row.ink-products-grid > .et_pb_column > .et_pb_module:last-child,
  .et_pb_row.ink-featured-grid > .et_pb_column > .et_pb_module:last-child,
  .et_pb_row.ink-benefits-grid > .et_pb_column > .et_pb_module:last-child {
    flex: 1 1 auto;
    margin-bottom: 0 !important;
  }
}

/* Text-module tiles (How It Works on 23-28, Web placeholders) fill the column */
.et_pb_row.ink-steps-grid .et_pb_text .et_pb_text_inner,
.et_pb_row.ink-featured-grid .et_pb_text .et_pb_text_inner {
  height: 100%;
}
.et_pb_row.ink-steps-grid .et_pb_text .et_pb_text_inner > div,
.et_pb_row.ink-featured-grid .et_pb_text .et_pb_text_inner > div {
  height: 100%;
  box-sizing: border-box;
}

/* ---- R2.2 A1 Products & Services tiles = Fresh Off The Printer geometry -- */
.et_pb_row.ink-products-grid .et_pb_blurb.ink-card {
  padding: 12px 14px !important;          /* Fresh tiles: 12px 14px */
  border-radius: 8px !important;          /* Fresh tiles: 8px */
}
.et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap {
  aspect-ratio: 16 / 9;                   /* Fresh tiles: 16/9 */
}
.et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap img {
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 50%;
}
/* "Explore →" line removed from content; the tile title + image stay linked and the
   existing cyan hover border / lift signals the click. (An inline arrow was tried and
   pushed "Vehicle Wraps & Graphics" onto two lines, so it is not used.) */
.et_pb_row.ink-products-grid .et_pb_blurb.ink-card:hover .et_pb_module_header a {
  color: var(--cyan) !important;
}
.et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_blurb_description,
.et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_blurb_description {
  min-height: 1.7em;                      /* one blurb line, so short blurbs still match */
}

/* Between 981px and 1399px some titles/blurbs wrap ("Screen Printed Work Wear",
   "Vehicle Wraps & Graphics"). Reserve two lines for each on Home 21 + Services 22 so
   every Products & Services and Fresh Off The Printer tile is the same height. */
@media (min-width: 981px) and (max-width: 1399px) {
  .page-id-21 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_module_header,
  .page-id-21 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_module_header,
  .page-id-22 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_module_header {
    min-height: 50px;                     /* 2 x 20px title lines + Divi 10px padding (border-box) */
  }
  .page-id-21 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_blurb_description,
  .page-id-21 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_blurb_description,
  .page-id-22 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_blurb_description {
    min-height: 3.4em;
  }
}
@media (max-width: 980px) {
  .page-id-21 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_module_header,
  .page-id-21 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_module_header,
  .page-id-22 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_module_header {
    min-height: 0;
  }
}

/* ---- R2.3 A2 Screen Printed Work Wear: show the whole photo ----------- */
.et_pb_blurb.ink-card.ink-fit-contain .et_pb_image_wrap {
  position: relative;
  isolation: isolate;
  background: #101014;
}
.et_pb_blurb.ink-card.ink-fit-contain .et_pb_image_wrap::before {
  content: "";
  position: absolute;
  inset: -24px;
  z-index: 0;
  background: url("/wp-content/uploads/2026/10/home-fresh-screen-printed-work-wear-2026-10-10.jpg") center / cover no-repeat;
  filter: blur(18px) brightness(.45) saturate(.85);
}
.et_pb_blurb.ink-card.ink-fit-contain .et_pb_image_wrap img {
  position: relative;
  z-index: 1;
  height: 100% !important;
  object-fit: contain !important;
  object-position: 50% 50%;
}

/* ---- R2.4 C3 Benefits: equal rectangles ------------------------------- */
.et_pb_row.ink-benefits-grid .et_pb_blurb {
  box-sizing: border-box;
  min-height: 118px;
}
@media (min-width: 981px) and (max-width: 1180px) {
  .et_pb_row.ink-benefits-grid .et_pb_blurb { min-height: 142px; }
}
@media (max-width: 980px) {
  .et_pb_row.ink-benefits-grid .et_pb_blurb { min-height: 118px; }
}
@media (max-width: 420px) {
  .et_pb_row.ink-benefits-grid .et_pb_blurb { min-height: 142px; }
}

/* ---- R2.5 C4 / E3 Recent Work: equal tiles across both rows ----------- */
/* Signs & Banners carries Haley's longer blurbs (up to 3 lines at narrow desktop) */
.page-id-24 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_blurb_description {
  min-height: 3.4em;
}
@media (min-width: 981px) and (max-width: 1240px) {
  .page-id-24 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_blurb_description { min-height: 5.1em; }
  .page-id-24 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_module_header { min-height: 42px; } /* 2 x 16px + 10px padding */
}
/* Signs tiles: fill the 16:9 frame from the centre (portrait storefront shot framed on the door logo + hours) */
.et_pb_blurb.ink-card[class*="ink-tile-"] .et_pb_image_wrap img {
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 50%;
}
.et_pb_blurb.ink-card.ink-tile-storefront-graphics .et_pb_image_wrap img {
  object-position: 50% 42%;
}
/* Web Services placeholder text tiles: same box model as the photo tiles
   (12px 14px padding, 16:9 media frame, 12px gap, title + one blurb line) */
.et_pb_row.ink-featured-grid .et_pb_text .et_pb_text_inner > div {
  padding: 12px 14px !important;
  border-radius: 8px !important;
}
.et_pb_row.ink-featured-grid .et_pb_text .et_pb_text_inner > div > div {
  max-width: 550px;                       /* Divi caps .et_pb_blurb_content at 550px (tablet) */
  margin-left: auto !important;
  margin-right: auto !important;
}
.et_pb_row.ink-featured-grid .et_pb_text .et_pb_text_inner > div > div:first-child {
  aspect-ratio: 16 / 9 !important;
  margin-top: 0 !important;
  margin-bottom: 12px !important;
  background: #101014;
}
.et_pb_row.ink-featured-grid .et_pb_text .et_pb_text_inner > div > div:last-child {
  padding: 0 !important;
}
.et_pb_row.ink-featured-grid .et_pb_text .et_pb_text_inner > div > div:last-child strong {
  font-size: 16px !important;
  line-height: 16px !important;
  margin: 0 !important;
  padding: 4px 0 10px;                    /* = blurb h3: 4px top margin + 10px padding */
}
.et_pb_row.ink-featured-grid .et_pb_text .et_pb_text_inner > div > div:last-child span {
  display: block;
  font-size: 14px !important;
  line-height: 1.7;
}

/* ---- R2.6 C6 How It Works: CSS grid, every tile identical at every width -- */
.et_pb_row.ink-steps-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  column-gap: 5.5%;
  row-gap: 30px;
}
.et_pb_row.ink-steps-grid::after { display: none; }
.et_pb_row.ink-steps-grid > .et_pb_column {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  display: flex;
  flex-direction: column;
}
.et_pb_row.ink-steps-grid > .et_pb_column > .et_pb_module:last-child {
  flex: 1 1 auto;
  margin-bottom: 0 !important;
}
@media (max-width: 980px) {
  .et_pb_row.ink-steps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 479px) {
  .et_pb_row.ink-steps-grid { grid-template-columns: minmax(0, 1fr); row-gap: 16px; }
}

/* ---- R2.7 C2 Built For: clean stacked list, thin dividers, CMYK ticks -- */
.et_pb_text.ink-built-for .ink-built-for-label {
  margin-bottom: 4px !important;
}
.et_pb_text.ink-built-for ul.ink-built-for-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-top: 1px solid rgba(210, 220, 235, .16);
  max-width: 420px;
}
.et_pb_text.ink-built-for ul.ink-built-for-list > li {
  position: relative;
  list-style: none !important;
  margin: 0 !important;
  padding: 13px 0 13px 24px !important;
  background: none !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(210, 220, 235, .16) !important;
  border-radius: 0 !important;
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .01em;
}
.et_pb_text.ink-built-for ul.ink-built-for-list > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 10px;
  height: 3px;
  margin-top: -1.5px;
  border-radius: 2px;
  background: var(--cyan);
}
.et_pb_text.ink-built-for ul.ink-built-for-list > li:nth-child(3n+2)::before { background: var(--magenta); }
.et_pb_text.ink-built-for ul.ink-built-for-list > li:nth-child(3n+3)::before { background: var(--yellow); }
@media (max-width: 980px) {
  .et_pb_text.ink-built-for ul.ink-built-for-list { max-width: none; }
  .et_pb_text.ink-built-for ul.ink-built-for-list > li { font-size: 14px; padding: 12px 0 12px 22px !important; }
}

/* ---- R2.8 C7 Quote row: single column, readable measure --------------- */
.et_pb_row.ink-quote-row .et_pb_text {
  max-width: 680px;
}
.et_pb_row.ink-quote-row .et_pb_button_module_wrapper + .et_pb_button_module_wrapper {
  margin-top: 4px;
}
/* end Haley R2 2026-10-10 */

/* ==========================================================================
   Haley R3 2026-10-11 (child theme 1.0.16)
   Appended block. Everything above this line is untouched.
   R3.1 Tile photos. Haley reported Signs & Banners + Patch Hats (Home) and
   five of six Signs & Banners tiles as "distorted". Root cause in the R2 CSS:
   frames were forced to 16:9 while her photos are mostly 3:2 (4:3 on some
   Home tiles), and the img was sized with height:100% inside an
   aspect-ratio box, which depends on the browser resolving a percentage
   height against an aspect-ratio height. The only photo already 16:9
   (School & Sports Signage) was the only one that looked right.
   Fix: the frame is position:relative with a 3:2 aspect ratio (padding
   fallback for older Safari). The img is pinned absolutely to all four edges
   with object-fit: cover, so it can crop but can never stretch, in any
   browser. Scope: Home 21 (Products & Services + Fresh Off The Printer),
   Services hub 22 (same tiles), Signs 24, Screen Printing 25, Embroidery 26.
   Vehicle 23, Patch Hats 27 and Web 28 are unchanged.
   R3.2 About 29 team photo box.
   ========================================================================== */
.page-id-21 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap,
.page-id-21 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap,
.page-id-22 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap,
.page-id-24 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap,
.page-id-25 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap,
.page-id-26 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 2 !important;
  overflow: hidden !important;
}
@supports not (aspect-ratio: 1 / 1) {
.page-id-21 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap::before,
.page-id-21 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap::before,
.page-id-22 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap::before,
.page-id-24 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap::before,
.page-id-25 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap::before,
.page-id-26 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap::before {
    content: "";
    display: block;
    padding-top: 66.6667%;
  }
}
.page-id-21 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap img,
.page-id-21 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap img,
.page-id-22 .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap img,
.page-id-24 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap img,
.page-id-25 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap img,
.page-id-26 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap img {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: 50% 50%;
}
/* Framing only (which part of a cropped photo shows); never changes scale */
.page-id-21 .ink-products-grid .ink-card img[src*="/ink_patch_hats"],
.page-id-22 .ink-products-grid .ink-card img[src*="/ink_patch_hats"] { object-position: 50% 20%; }
.page-id-24 .ink-featured-grid .ink-card.ink-tile-storefront-graphics .et_pb_image_wrap img { object-position: 50% 42%; }
.page-id-26 .ink-featured-grid .ink-card.ink-r3-hats-beanies .et_pb_image_wrap img { object-position: 50% 55%; }
.page-id-26 .ink-featured-grid .ink-card.ink-r3-bags-accessories .et_pb_image_wrap img { object-position: 50% 62%; }
.page-id-26 .ink-featured-grid .ink-card.ink-r3-merch-promo .et_pb_image_wrap img { object-position: 50% 55%; }

/* ---- R3.2 About 29: Haley's team photo fills the old placeholder box ---- */
.et_pb_text.ink-about-photo {
  overflow: hidden;
  padding: 0 !important;
}
.et_pb_text.ink-about-photo .et_pb_text_inner {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
@supports not (aspect-ratio: 1 / 1) {
  .et_pb_text.ink-about-photo .et_pb_text_inner::before { content: ""; display: block; padding-top: 75%; }
}
.et_pb_text.ink-about-photo .et_pb_text_inner p { margin: 0; padding: 0; }
.et_pb_text.ink-about-photo img.ink-about-photo-img {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 50% 72%;               /* portrait shot: frame the group, not the sky */
  display: block;
}
/* ---- R3.3 Screen Printing 25 + Embroidery 26 Recent Work: equal tiles at narrow desktop.
   Between 981px and 1240px a few of Haley's titles/blurbs wrap to 2 lines
   ("Business & Corporate Apparel", "More Than Merch. It's Marketing."), so reserve
   2 lines for both on every tile (same approach R2 used on Signs 24). ---- */
@media (min-width: 981px) and (max-width: 1240px) {
  .page-id-25 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_module_header,
  .page-id-26 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_module_header { min-height: 42px; }
  .page-id-25 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_blurb_description,
  .page-id-26 .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_blurb_description { min-height: 3.4em; }
}
/* end Haley R3 2026-10-11 */

/* ==========================================================================
   Haley LIVE 2026-10-13 (child theme 1.0.18). Appended; everything above is untouched.
   Root cause of the launch-day regression: Divi's per-post module feature cache
   (_et_builder_module_features_cache + _et_dynamic_cached_*) carried over from
   staging was stale, so Divi skipped the sizing/spacing/border/font CSS for many
   modules (hero logo lost max-width 340px, tiles lost padding + white titles).
   Fixed by clearing that cache meta. The rules below are the requested child-CSS
   guarantees so the look no longer depends on Divi's generated module CSS.
   ========================================================================== */
/* L1 Home hero logo: normal size (Haley P0). Header logo (TB 32) unchanged. */
.page-id-21 .et_pb_section.ink-hero .et_pb_image { max-width: 180px !important; width: 180px; }
.page-id-21 .et_pb_section.ink-hero .et_pb_image img { width: 100% !important; height: auto !important; max-width: 180px !important; }
@media (max-width: 980px) {
  .page-id-21 .et_pb_section.ink-hero .et_pb_image { max-width: 150px !important; width: 150px; }
  .page-id-21 .et_pb_section.ink-hero .et_pb_image img { max-width: 150px !important; }
}
@media (max-width: 767px) {
  .page-id-21 .et_pb_section.ink-hero .et_pb_image { max-width: 130px !important; width: 130px; }
  .page-id-21 .et_pb_section.ink-hero .et_pb_image img { max-width: 130px !important; }
}
/* L2 Tile titles white, site-wide */
.et_pb_blurb.ink-card .et_pb_module_header,
.et_pb_blurb.ink-card .et_pb_module_header a,
.et_pb_blurb.ink-card h3, .et_pb_blurb.ink-card h4 { color: #FFFFFF !important; }
/* L3 Tile frame safety net (Divi module CSS overrides these when present) */
.et_pb_blurb.ink-card { box-sizing: border-box; padding: 14px; border: 1px solid rgba(200,210,225,0.38); border-radius: 12px; overflow: hidden; background-color: #141418; }
.et_pb_blurb.ink-card .et_pb_main_blurb_image { margin-bottom: 12px; }
.et_pb_blurb.ink-card .et_pb_main_blurb_image .et_pb_image_wrap,
.et_pb_blurb.ink-card .et_pb_main_blurb_image img { border-radius: 6px; }
.et_pb_blurb.ink-card .et_pb_blurb_description { overflow-wrap: anywhere; }
/* end L1-L3 */

/* ==========================================================================
   1.0.19 (live, Oct 13)
   L4 Cover frame site-wide: every .ink-products-grid / .ink-featured-grid
      tile photo sits in a 3:2 frame, img absolutely pinned, object-fit cover.
      Crops, never stretches. Adds Vehicle 23, Patch Hats 27, Web 28.
   L5 Footer social icons (TB 33).
   L6 About 29 We Sell Service tiles equal height at every width.
   ========================================================================== */
.et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap,
.et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap {
  position: relative !important; display: block !important; width: 100% !important;
  height: auto !important; aspect-ratio: 3 / 2 !important; overflow: hidden !important;
}
@supports not (aspect-ratio: 1 / 1) {
  .et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap::before,
  .et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap::before { content: ""; display: block; padding-top: 66.6667%; }
}
.et_pb_row.ink-products-grid .et_pb_blurb.ink-card .et_pb_image_wrap img,
.et_pb_row.ink-featured-grid .et_pb_blurb.ink-card .et_pb_image_wrap img {
  position: absolute !important; top: 0 !important; right: 0 !important; bottom: 0 !important; left: 0 !important;
  width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important;
  margin: 0 !important; object-fit: cover !important;
}
.page-id-27 .ink-featured-grid .ink-card img[src*="Genuine-Leather-Patches"] { object-position: 50% 45%; }

.ink-footer-social .ink-social-line { color: #C8CDD4; font-size: 13px; line-height: 1.5; margin-bottom: 10px; }
.ink-footer-social .ink-social-icons { display: flex; flex-wrap: wrap; gap: 10px; }
.ink-footer-social a.ink-social-link {
  display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px;
  border-radius: 50%; border: 1px solid rgba(200,210,225,.38); color: #F5F5F7 !important;
  background: #141418; transition: background .2s, color .2s, border-color .2s;
}
.ink-footer-social a.ink-social-link:hover,
.ink-footer-social a.ink-social-link:focus-visible { background: #F5F5F7; color: #0B0B0D !important; border-color: #F5F5F7; outline: none; }
.ink-footer-social a.ink-social-link svg { width: 18px; height: 18px; display: block; }

.page-id-29 .et_pb_row.ink-about-values { display: flex; flex-wrap: wrap; align-items: stretch; }
.page-id-29 .et_pb_row.ink-about-values::after { display: none; }
.page-id-29 .et_pb_row.ink-about-values > .et_pb_column { display: flex; flex-direction: column; float: none; }
.page-id-29 .et_pb_row.ink-about-values > .et_pb_column > .et_pb_blurb { flex: 1 1 auto; margin-bottom: 0 !important; }
@media (max-width: 980px) {
  .page-id-29 .et_pb_row.ink-about-values > .et_pb_column { width: 47.25% !important; margin-right: 5.5% !important; margin-bottom: 5.5% !important; }
  .page-id-29 .et_pb_row.ink-about-values > .et_pb_column:nth-child(2n) { margin-right: 0 !important; }
}
@media (max-width: 767px) {
  .page-id-29 .et_pb_row.ink-about-values > .et_pb_column { width: 100% !important; margin-right: 0 !important; }
}

/* ==========================================================================
   1.0.20 (live, Oct 13 PM) Contact page 30 rebuild
   L7 Split: text/email form left, voice CTA right; Divi stacks 1_2 on mobile.
   L8 Talk To The Shop box.
   L9 SMS consent: own box with a distinct background, visible checkbox.
   ========================================================================== */
.page-id-30 .ink-contact-heading h2 { font-size: 2rem; line-height: 1.15; margin-bottom: 6px; }
.page-id-30 .ink-contact-sub h3 { font-size: 1.05rem; color: #C8CDD4 !important; letter-spacing: .02em; margin-bottom: 4px; }
@media (min-width: 981px) {
  .page-id-30 .et_pb_row.ink-contact-split > .et_pb_column:last-child {
    border-left: 1px solid rgba(200,210,225,.22); padding-left: 5.5%;
  }
}
@media (max-width: 980px) {
  .page-id-30 .et_pb_row.ink-contact-split > .et_pb_column:last-child {
    border-top: 1px solid rgba(200,210,225,.22); padding-top: 32px; margin-top: 8px;
  }
  .page-id-30 .ink-contact-heading h2 { font-size: 1.6rem; }
}
.page-id-30 .ink-talk-box {
  background: #141418; border: 1px solid rgba(200,210,225,.38); border-radius: 12px;
  padding: 28px 24px !important; text-align: center;
  box-shadow: inset 0 3px 0 0 #00AEEF;
}
.page-id-30 .ink-talk-box .ink-talk-title { color: #F5F5F7; font-family: Montserrat, Helvetica, Arial, sans-serif; font-weight: 800; font-size: 1.35rem; margin: 0 0 12px; padding: 0; }
.page-id-30 .ink-talk-box .ink-talk-line { margin: 0; padding: 0; line-height: 1.3; }
.page-id-30 .ink-talk-box a.ink-talk-phone { display: inline-block; font-family: Montserrat, Helvetica, Arial, sans-serif; font-weight: 800; font-size: 2rem; color: #F5F5F7 !important; letter-spacing: .01em; margin-bottom: 6px; }
.page-id-30 .ink-talk-box a.ink-talk-web { display: inline-block; font-family: Montserrat, Helvetica, Arial, sans-serif; font-weight: 700; font-size: 1.35rem; color: #00AEEF !important; }
.page-id-30 .ink-talk-box a:hover { text-decoration: underline; }
@media (max-width: 767px) {
  .page-id-30 .ink-talk-box a.ink-talk-phone { font-size: 1.6rem; }
  .page-id-30 .ink-talk-box a.ink-talk-web { font-size: 1.15rem; }
}

.ink-quote-form .et_pb_contact_field[data-id="smsconsent"] {
  background: #1C1A24 !important; border: 1px solid rgba(236,0,140,.45); border-radius: 10px;
  padding: 14px 16px !important; margin-top: 4px;
}
.ink-quote-form .et_pb_contact_field[data-id="smsconsent"] > .et_pb_contact_form_label,
.ink-quote-form .et_pb_contact_field[data-id="smsconsent"] .et_pb_contact_field_options_title { display: none !important; }
.ink-quote-form .et_pb_contact_field[data-id="smsconsent"] .et_pb_contact_field_checkbox label {
  color: #E6E8EC !important; font-size: 13px; line-height: 1.5; display: flex !important; align-items: flex-start; gap: 10px; cursor: pointer;
}
.ink-quote-form .et_pb_contact_field[data-id="smsconsent"] .et_pb_contact_field_checkbox label i {
  flex: 0 0 18px; width: 18px !important; height: 18px !important; margin: 1px 0 0 !important;
  background: #F5F5F7 !important; border: 2px solid #EC008C !important; border-radius: 4px; position: relative; top: 0 !important;
}
.ink-quote-form .et_pb_contact_field[data-id="smsconsent"] input:checked + label i::before { color: #EC008C !important; }
.ink-quote-form .et_pb_contact_field[data-id="smsconsent"] input:focus-visible + label i { outline: 2px solid #00AEEF; outline-offset: 2px; }
.ink-quote-form .et_pb_contact_field[data-id="smsconsent"].et_contact_error { border-color: #ff5a5a; }

/* ==========================================================================
   1.0.21 Legal pages (.ink-legal): Sales Policies (/sales-policies/)
   ========================================================================== */
.ink-legal-hero .ink-display h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; text-transform: uppercase; }
.ink-legal .ink-legal-row { max-width: 860px !important; }
.ink-legal .ink-legal-body { color: #C8CDD4 !important; font-size: 15px; line-height: 1.75; }
.ink-legal .ink-legal-body h2, .ink-legal .ink-legal-body h3 { color: #F5F5F7 !important; font-family: Montserrat, Helvetica, Arial, sans-serif; font-weight: 800; padding: 0; }
.ink-legal .ink-legal-body h2 { font-size: 1.6rem; margin: 0 0 18px; }
.ink-legal .ink-legal-body h3 { font-size: 1.25rem; margin: 36px 0 14px; padding-top: 28px; border-top: 1px solid rgba(200,210,225,.22); }
.ink-legal .ink-legal-body p { margin: 0 0 16px; padding: 0; }
.ink-legal .ink-legal-body p:empty, .ink-legal .ink-legal-body .textLayer:empty { display: none; }
.ink-legal .ink-legal-body strong { color: #F5F5F7; }
.ink-legal .ink-legal-body [data-ogsc] { color: inherit; }
.ink-legal .ink-legal-body a { color: #00AEEF !important; text-decoration: underline; text-underline-offset: 2px; }
.ink-legal .ink-legal-body ul { list-style: disc; padding: 0 0 0 1.4em; margin: 0 0 16px; }
.ink-legal .ink-legal-body li { margin-bottom: 4px; }
.ink-legal .ink-legal-body .page, .ink-legal .ink-legal-body .textLayer { margin: 0 0 16px; }
@media (max-width: 767px) { .ink-legal .ink-legal-body { font-size: 14.5px; } }

/* ==========================================================================
   1.0.22 Proud Partner logo strips ([ink_partners set="..."])
   White cards keep brand colors true on the dark site. Pure CSS marquee:
   the list is doubled and the track moves -50% for a seamless loop.
   Pauses on hover/focus; static for prefers-reduced-motion; one-logo sets static.
   ========================================================================== */
.et_pb_section.ink-partners-section { overflow: hidden; }
.ink-partners-section .ink-eyebrow { text-align: center; }
.ink-partners {
  --ink-logo-h: 60px; --ink-card-w: 200px; --ink-gap: 18px;
  position: relative; width: 100%; max-width: 100%; overflow: hidden; padding: 6px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.ink-partners__track { display: flex; width: max-content; animation: ink-partners-scroll calc(var(--ink-partners-count, 8) * 3.2s) linear infinite; }
.ink-partners:hover .ink-partners__track,
.ink-partners:focus-within .ink-partners__track { animation-play-state: paused; }
.ink-partners__list { display: flex; align-items: center; gap: var(--ink-gap); margin: 0 !important; padding: 0 var(--ink-gap) 0 0 !important; list-style: none !important; }
.ink-partners__item {
  flex: 0 0 var(--ink-card-w); height: calc(var(--ink-logo-h) + 28px); padding: 14px 18px !important; margin: 0 !important;
  display: flex; align-items: center; justify-content: center; list-style: none !important;
  background: #FFFFFF; border-radius: 12px; box-shadow: 0 1px 0 rgba(255,255,255,.06), 0 6px 18px rgba(0,0,0,.35);
  box-sizing: border-box;
}
.ink-partners__item::before { display: none !important; }
.ink-partners img.ink-partners__logo { display: block; width: auto !important; height: auto !important; max-height: var(--ink-logo-h); max-width: 100%; object-fit: contain; margin: 0 !important; }
@keyframes ink-partners-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.ink-partners.is-static { -webkit-mask-image: none; mask-image: none; }
.ink-partners.is-static .ink-partners__track { animation: none; width: 100%; justify-content: center; }
.ink-partners.is-static .ink-partners__list { padding: 0 !important; }
.ink-partners.is-static .ink-partners__item { flex-basis: 260px; }
@media (prefers-reduced-motion: reduce) {
  .ink-partners { -webkit-mask-image: none; mask-image: none; overflow-x: auto; }
  .ink-partners__track { animation: none; }
  .ink-partners__list[aria-hidden="true"] { display: none; }
}
@media (max-width: 767px) {
  .ink-partners { --ink-logo-h: 44px; --ink-card-w: 150px; --ink-gap: 12px; }
  .ink-partners__item { padding: 10px 14px !important; }
  .ink-partners.is-static .ink-partners__item { flex-basis: 210px; }
}

/* ==========================================================================
   1.0.24 r3-331 (Oct 13): Products & Services 7 tiles, 4 over 3 (Home 21 + Services 22)
   Rows carry .ink-p7 (.ink-p7-top = 4 tiles, .ink-p7-bottom = 3 tiles).
   Desktop >=981: 4 equal columns; the bottom 3 use the same tile width, centered.
   Tablet 600-980: 2 columns (2+2, 2+1 with the last tile centered). Phone <600: Divi stack.
   ========================================================================== */
@media (min-width: 981px) {
  .et_pb_row.ink-products-grid.ink-p7 { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 28px; align-items: stretch; }
  .et_pb_row.ink-products-grid.ink-p7-bottom { grid-template-columns: repeat(3, calc((100% - 84px) / 4)); justify-content: center; }
  .et_pb_row.ink-products-grid.ink-p7 > .et_pb_column { width: auto !important; margin-right: 0 !important; }
  .et_pb_row.ink-products-grid.ink-p7-top { padding-bottom: 14px !important; }
  .et_pb_row.ink-products-grid.ink-p7-bottom { padding-top: 14px !important; }
}
@media (min-width: 600px) and (max-width: 980px) {
  .et_pb_row.ink-products-grid.ink-p7 { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .et_pb_row.ink-products-grid.ink-p7::after { display: none; }
  .et_pb_row.ink-products-grid.ink-p7 > .et_pb_column { width: auto !important; margin: 0 !important; display: flex; flex-direction: column; }
  .et_pb_row.ink-products-grid.ink-p7 > .et_pb_column > .et_pb_module:last-child { flex: 1 1 auto; margin-bottom: 0 !important; }
  .et_pb_row.ink-products-grid.ink-p7-bottom > .et_pb_column:last-child { grid-column: 1 / -1; justify-self: center; width: calc(50% - 10px) !important; }
  .et_pb_row.ink-products-grid.ink-p7-top { padding-bottom: 10px !important; }
  .et_pb_row.ink-products-grid.ink-p7-bottom { padding-top: 10px !important; }
}
