/*
Theme Name: 76DS Sales
Theme URI: https://76designsolutions.com/
Author: 76 Design Solutions
Description: The sales storefront for 76 Design Solutions. Classic PHP templates, no page builder, no Elementor. Design tokens taken from the flagship at 76designsolutions.com so the two read as one brand.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: 76ds-sales
*/

/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN TOKENS — lifted from the flagship stylesheet, not eyeballed.
   Space Grotesk display face, navy/blue/red palette.
   ═══════════════════════════════════════════════════════════════════════════ */
:root {
  --navy-900: #071e3c;
  --navy-700: #0b2f5c;
  --navy-600: #133f75;
  --blue-500: #00a3e0;
  --blue-300: #66c6ff;
  --red-600:  #d62828;
  --ink-900:  #1a1f24;
  --ink-600:  #4b5563;
  --ink-400:  #6b7280;
  --line:     #e8ecf1;
  --line-2:   #e5e7eb;
  --surface:  #f4f6f9;
  --white:    #ffffff;

  --font-display: 'Space Grotesk', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-body:    ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  --radius:    14px;
  --radius-sm: 10px;
  --shadow:    0 1px 2px rgba(7,30,60,.06), 0 8px 24px rgba(7,30,60,.08);
  --shadow-lg: 0 2px 4px rgba(7,30,60,.08), 0 18px 48px rgba(7,30,60,.14);
  --wrap: 1180px;
  --gutter: clamp(16px, 4vw, 32px);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink-900);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { font-family: var(--font-display); line-height: 1.15; letter-spacing: -0.02em; color: var(--navy-900); margin: 0 0 .5em; font-weight: 700; }
h1 { font-size: clamp(2rem, 1.3rem + 3vw, 3.25rem); }
h2 { font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.25rem); }
h3 { font-size: clamp(1.15rem, 1rem + .7vw, 1.4rem); }
p  { margin: 0 0 1.1em; }
a  { color: var(--navy-700); text-underline-offset: .18em; }
a:hover { color: var(--blue-500); }
img, svg, video { max-width: 100%; height: auto; display: block; }

/* Focus that is actually visible — this store takes payment and must be keyboard-usable. */
:focus-visible { outline: 3px solid var(--blue-500); outline-offset: 2px; border-radius: 4px; }

.wrap { width: min(var(--wrap), 100%); margin-inline: auto; padding-inline: var(--gutter); }
.stack > * + * { margin-top: 1rem; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 12px; top: 12px; z-index: 200; background: var(--navy-900); color: #fff; padding: 12px 18px; border-radius: 8px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.btn, .button, button, input[type=submit],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt {
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  font-family: var(--font-display); font-weight: 600; font-size: 1rem; line-height: 1;
  padding: .95em 1.6em; border-radius: 999px; border: 1.5px solid transparent;
  background: var(--navy-900); color: #fff; text-decoration: none; cursor: pointer;
  transition: transform .12s ease, background-color .15s ease, box-shadow .15s ease;
  min-height: 44px;                       /* a real touch target */
}
.btn:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
  background: var(--navy-700); color: #fff; transform: translateY(-1px); box-shadow: var(--shadow);
}
.btn--accent, .woocommerce a.button.alt, .woocommerce button.button.alt { background: var(--blue-500); color: #06233f; }
.btn--accent:hover { background: var(--blue-300); color: #06233f; }
.btn--ghost { background: transparent; color: var(--navy-900); border-color: var(--line); }
.btn--ghost:hover { background: var(--surface); color: var(--navy-900); border-color: var(--navy-700); }
.btn--lg { font-size: 1.05rem; padding: 1.05em 1.9em; }

/* ── Header ──────────────────────────────────────────────────────────────── */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.92); backdrop-filter: saturate(150%) blur(10px); border-bottom: 1px solid var(--line); }
.site-header__inner { display: flex; align-items: center; gap: 1.25rem; min-height: 72px; }
.brand { display: inline-flex; align-items: center; text-decoration: none; flex: 0 0 auto; }
/* The lockup carries a tagline, so it needs real height to stay legible. Capped by width too,
   or a 4.27:1 image eats the header on a narrow phone. */
.brand__logo { height: clamp(34px, 4.4vw, 52px); width: auto; max-width: min(58vw, 300px); object-fit: contain; display: block; }
@media (max-width: 480px) { .brand__logo { height: 32px; max-width: 54vw; } }
.nav { margin-left: auto; display: flex; align-items: center; gap: .35rem; list-style: none; }
/* wp_nav_menu emits bare <li> with no <ul>, so without this the browser draws list markers
   next to every menu item. Reset on the items themselves, not just a parent <ul> that
   does not exist here. */
.nav li, .nav ul { list-style: none; margin: 0; padding: 0; display: block; }
.nav ul { display: contents; }
.nav a { font-family: var(--font-display); font-weight: 500; font-size: .97rem; color: var(--navy-900); text-decoration: none; padding: .55rem .8rem; border-radius: 8px; }
.nav a:hover, .nav a[aria-current] { background: var(--surface); color: var(--navy-700); }
.nav__cart { display: inline-flex; align-items: center; gap: .4rem; }
.nav__count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--red-600); color: #fff; font-size: .74rem; font-weight: 700; font-family: var(--font-display); }
.nav__toggle { display: none; margin-left: auto; background: none; border: 1.5px solid var(--line); border-radius: 10px; padding: .5rem .7rem; min-height: 44px; }
@media (max-width: 860px) {
  .nav__toggle { display: inline-flex; }
  .nav { position: fixed; inset: 72px 0 auto; flex-direction: column; align-items: stretch; gap: 0; background: #fff; border-bottom: 1px solid var(--line); padding: .5rem var(--gutter) 1rem; transform: translateY(-120%); transition: transform .22s ease; box-shadow: var(--shadow); }
  .nav[data-open="true"] { transform: translateY(0); }
  .nav a { padding: .85rem .6rem; border-radius: 10px; }
}

/* ── Hero ────────────────────────────────────────────────────────────────── */
.hero { background: linear-gradient(165deg, var(--navy-900) 0%, var(--navy-700) 55%, #10457f 100%); color: #fff; padding: clamp(3rem, 7vw, 6rem) 0; }
.hero h1 { color: #fff; max-width: 18ch; }
.hero p.lede { font-size: clamp(1.05rem, 1rem + .4vw, 1.3rem); color: #cfe0f3; max-width: 56ch; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.6rem; }
.hero .btn--ghost { color: #fff; border-color: rgba(255,255,255,.35); }
.hero .btn--ghost:hover { background: rgba(255,255,255,.12); color: #fff; }

/* ── Sections ────────────────────────────────────────────────────────────── */
.section { padding: clamp(2.75rem, 6vw, 4.75rem) 0; }
.section--surface { background: var(--surface); }
.section__head { max-width: 62ch; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.section__head p { color: var(--ink-600); font-size: 1.06rem; }
.eyebrow { font-family: var(--font-display); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue-500); margin: 0 0 .5rem; }

/* ── Plan cards. The store sells PLANS, so it is laid out as a comparison,
      not a generic product grid. ──────────────────────────────────────────── */
.plans { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); align-items: start; }
.plan { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.75rem; box-shadow: var(--shadow); }
.plan--featured { border-color: var(--blue-500); box-shadow: var(--shadow-lg); }
.plan__flag { position: absolute; top: -13px; left: 1.75rem; background: var(--blue-500); color: #06233f; font-family: var(--font-display); font-weight: 700; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; padding: .38em .8em; border-radius: 999px; }
.plan__name { font-size: 1.25rem; margin-bottom: .25rem; }
.plan__for { color: var(--ink-400); font-size: .95rem; margin-bottom: 1.1rem; }
.plan__price { display: flex; align-items: baseline; gap: .35rem; font-family: var(--font-display); margin-bottom: .35rem; }
.plan__amount { font-size: 2.6rem; font-weight: 700; color: var(--navy-900); letter-spacing: -.03em; }
.plan__period { color: var(--ink-400); font-weight: 500; font-size: 1rem; }
.plan__billing { font-size: .88rem; color: var(--ink-400); margin-bottom: 1.3rem; }
.plan__features { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; gap: .6rem; }
.plan__features li { position: relative; padding-left: 1.75rem; font-size: .97rem; color: var(--ink-600); }
.plan__features li::before { content: ""; position: absolute; left: 0; top: .42em; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--blue-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2306233f' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/70% no-repeat; }
.plan__cta { margin-top: auto; }
.plan__cta .button { width: 100%; }

/* ── Trust strip ─────────────────────────────────────────────────────────── */
.trust { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.trust__item { display: flex; gap: .8rem; align-items: flex-start; }
.trust__icon { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 10px; background: #e6f6fe; display: grid; place-items: center; color: var(--navy-700); }
.trust__item strong { display: block; font-family: var(--font-display); color: var(--navy-900); }
.trust__item span { color: var(--ink-400); font-size: .93rem; }

/* ── WooCommerce: make the stock markup match this design ─────────────────── */
.woocommerce .products ul, .woocommerce ul.products { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); margin: 0; padding: 0; list-style: none; }
.woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem; text-align: left; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--font-display); font-size: 1.15rem !important; color: var(--navy-900); padding: 0 !important; margin: 0 0 .5rem; }
.woocommerce ul.products li.product .price { color: var(--navy-900) !important; font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; margin-bottom: 1rem; display: block; }
.woocommerce ul.products li.product .price del { color: var(--ink-400); font-size: 1rem; }
.woocommerce ul.products li.product a.button { margin-top: auto; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { color: var(--ink-400); font-size: .93rem; }

.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-top: none; border-left: 4px solid var(--blue-500); background: var(--surface);
  border-radius: var(--radius-sm); padding: 1rem 1.25rem; color: var(--ink-900); box-shadow: none;
}
.woocommerce-error { border-left-color: var(--red-600); }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }

.woocommerce table.shop_table { border-radius: var(--radius); border-color: var(--line); overflow: hidden; }
.woocommerce table.shop_table th { font-family: var(--font-display); color: var(--navy-900); background: var(--surface); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text, input[type=text], input[type=email], input[type=tel], input[type=password], select, textarea {
  border: 1.5px solid var(--line-2); border-radius: var(--radius-sm); padding: .8em .9em; font: inherit; font-size: 16px; /* 16px stops iOS zooming on focus */
  width: 100%; background: #fff; color: var(--ink-900);
}
.woocommerce form .form-row label { font-family: var(--font-display); font-weight: 600; color: var(--navy-900); font-size: .95rem; }

/* ── Footer ──────────────────────────────────────────────────────────────── */
.site-footer { background: var(--navy-900); color: #b9cbe2; padding: clamp(2.5rem, 5vw, 3.75rem) 0 1.5rem; margin-top: clamp(3rem, 7vw, 5rem); }
.site-footer h4 { color: #fff; font-size: 1rem; margin-bottom: .8rem; }
.site-footer a { color: #cfe0f3; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.footer__grid { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.footer__grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; font-size: .95rem; }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 2.25rem; padding-top: 1.25rem; display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; align-items: center; font-size: .88rem; }
.footer__agency { flex-basis: 100%; text-align: center; margin-top: .5rem; }
.footer__agency a { font-size: 11px; font-weight: 300; text-decoration: none; }

/* ── Utility ─────────────────────────────────────────────────────────────── */
.muted { color: var(--ink-400); }
.center { text-align: center; }
.prose { max-width: 72ch; }
.prose h2 { margin-top: 2em; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-bottom: .5em; }
.notice-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem; }
