/*
Theme Name: Arkwright Module Runner
Theme URI: https://arkwrightbuilds.com/
Author: Arkwright Builds
Description: Branded modular WordPress and WooCommerce runtime theme for Arkwright-built websites.
Version: 1.4.0
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: arkwright-module-runner
*/

:root {
  --aw-page-width: 1240px;
  --aw-content-width: 780px;
  --aw-brand-ink: #0F172A;
  --aw-brand-surface: #FFFFFF;
  --aw-brand-soft: #FFEDE6;
  --aw-brand-accent: #FFD1BF;
  --aw-brand-muted: #64748B;
  --aw-border: #E2E8F0;
  --aw-shadow: 0 12px 32px rgba(15, 23, 42, .08);
  --aw-shadow-soft: 0 6px 20px rgba(15, 23, 42, .06);
  --aw-radius-sm: 8px;
  --aw-radius: 14px;
  --aw-radius-lg: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  margin: 0;
  color: var(--aw-brand-ink);
  background: var(--aw-brand-surface);
  font-family: var(--wp--preset--font-family--system, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
a { color: inherit; text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
img, video, iframe { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button, .button, input[type="submit"] { cursor: pointer; }
:focus-visible { outline: 3px solid var(--aw-brand-ink); outline-offset: 3px; }

.aw-skip-link { position: fixed; left: 1rem; top: -6rem; z-index: 99999; padding: .75rem 1rem; background: #fff; color: var(--aw-brand-ink); border: 2px solid currentColor; border-radius: var(--aw-radius-sm); }
.aw-skip-link:focus { top: 1rem; }
.aw-shell { width: min(100% - 2rem, var(--aw-page-width)); margin-inline: auto; }
.aw-content { width: min(100%, var(--aw-content-width)); margin-inline: auto; }
.aw-section { padding-block: clamp(2.5rem, 6vw, 5rem); }
.aw-grid { display: grid; gap: 1.4rem; }
.aw-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.aw-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.aw-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.aw-card { border: 1px solid var(--aw-border); border-radius: var(--aw-radius); padding: 1.5rem; background: #fff; box-shadow: var(--aw-shadow-soft); }

/* Header and brand */
.aw-site-header { position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--aw-border); box-shadow: 0 2px 12px rgba(15,23,42,.04); }
.aw-topbar { background: var(--aw-brand-ink); color: #fff; font-size: .82rem; }
.aw-topbar-row { min-height: 34px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.aw-topbar p { margin: 0; opacity: .92; }
.aw-header-row { min-height: 82px; display: grid; grid-template-columns: minmax(150px,220px) 1fr auto; align-items: center; gap: 1.6rem; }
.aw-brand-wrap, .aw-logo, .aw-logo .custom-logo-link { display: flex; align-items: center; min-width: 0; }
.aw-logo img.custom-logo { width: auto; height: auto; max-width: 205px; max-height: 58px; object-fit: contain; }
.aw-brand { text-decoration: none; }
.aw-brand-name { font-size: clamp(1.3rem,2.2vw,1.7rem); font-weight: 900; letter-spacing: -.035em; }
.aw-desktop-nav { min-width: 0; }
.aw-nav { display: flex; justify-content: center; align-items: center; gap: .25rem; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.aw-nav a { display: block; padding: .55rem .65rem; border-radius: 7px; text-decoration: none; font-weight: 700; font-size: .93rem; }
.aw-nav a:hover, .aw-nav .current-menu-item > a, .aw-nav .current_page_item > a { background: var(--aw-brand-soft); text-decoration: none; }
.aw-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: .55rem; }
.aw-header-action, .aw-mobile-menu > summary { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: .55rem .8rem; border: 1px solid var(--aw-border); border-radius: var(--aw-radius-sm); background: #fff; color: var(--aw-brand-ink); text-decoration: none; font-weight: 750; white-space: nowrap; }
.aw-header-action:hover, .aw-mobile-menu > summary:hover { background: var(--aw-brand-soft); }
.aw-header-action--basket { background: var(--aw-brand-ink); color: #fff; border-color: var(--aw-brand-ink); }
.aw-cart-count { display: inline-grid; place-items: center; min-width: 1.5rem; height: 1.5rem; margin-left: .35rem; padding-inline: .3rem; border-radius: 999px; background: var(--aw-brand-accent); color: var(--aw-brand-ink); font-size: .75rem; font-weight: 900; }
.aw-mobile-menu { display: none; position: relative; }
.aw-mobile-menu > summary { list-style: none; cursor: pointer; }
.aw-mobile-menu > summary::-webkit-details-marker { display: none; }
.aw-mobile-menu[open] > summary { background: var(--aw-brand-soft); }
.aw-mobile-menu nav { position: absolute; top: calc(100% + .65rem); right: 0; width: min(88vw,320px); padding: .65rem; background: #fff; border: 1px solid var(--aw-border); border-radius: var(--aw-radius); box-shadow: var(--aw-shadow); }
.aw-mobile-menu-list { list-style: none; margin: 0; padding: 0; }
.aw-mobile-menu-list li + li { border-top: 1px solid var(--aw-border); }
.aw-mobile-menu-list a { display: block; padding: .82rem .75rem; text-decoration: none; font-weight: 750; }
.aw-category-bar { background: var(--aw-brand-soft); border-top: 1px solid rgba(15,23,42,.05); }
.aw-category-scroll { overflow-x: auto; scrollbar-width: thin; overscroll-behavior-inline: contain; }
.aw-category-nav { display: flex; align-items: center; gap: .25rem; min-width: max-content; list-style: none; margin: 0; padding: .55rem 0; }
.aw-category-nav a { display: block; padding: .45rem .7rem; border-radius: 999px; text-decoration: none; font-size: .86rem; font-weight: 750; }
.aw-category-nav a:hover, .aw-category-nav .current-menu-item > a { background: #fff; }

/* Core site presentation */
main#main-content { min-height: 55vh; }
.aw-front-page .entry-content { margin: 0; }
.entry-content > :where(h1,h2,h3,h4,p,ul,ol,blockquote):not(.alignwide):not(.alignfull) { max-width: var(--aw-content-width); margin-left: auto; margin-right: auto; }
.entry-content > .alignwide { width: min(100% - 2rem,var(--aw-page-width)); margin-left: auto; margin-right: auto; }
.entry-content > .alignfull { width: 100%; margin-left: 0; margin-right: 0; }
.entry-content .wp-block-group.alignfull > :where(h1,h2,h3,h4,p,.wp-block-buttons,.wp-block-columns,.woocommerce) { width: min(100% - 2rem,var(--aw-page-width)); margin-left: auto; margin-right: auto; }
.entry-content .wp-block-group[style*="background-color:#0F172A"], .entry-content .wp-block-group[style*="background-color: #0F172A"] { box-shadow: inset 0 -1px rgba(255,255,255,.08); }
.entry-content .wp-block-group[style*="background-color:#FFEDE6"], .entry-content .wp-block-group[style*="background-color: #FFEDE6"] { border-block: 1px solid rgba(15,23,42,.06); }
.entry-content .wp-block-column.has-background { border-radius: var(--aw-radius); box-shadow: var(--aw-shadow-soft); border: 1px solid rgba(15,23,42,.06); }
.entry-content h1, .entry-content h2, .entry-content h3 { letter-spacing: -.025em; }
.entry-content h2 { font-size: clamp(1.7rem,4vw,2.6rem); }
.wp-block-button__link, .wp-element-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .75rem 1.1rem; border: 1px solid var(--aw-brand-ink); border-radius: var(--aw-radius-sm); background: var(--aw-brand-ink); color: #fff; text-decoration: none; font-weight: 800; line-height: 1.2; transition: transform .15s ease,box-shadow .15s ease,opacity .15s ease; }
.wp-block-button__link:hover, .wp-element-button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { opacity: .92; transform: translateY(-1px); box-shadow: var(--aw-shadow-soft); }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; }
.aw-page-header { padding-top: clamp(1.5rem,4vw,3rem); }
.aw-page-header h1 { margin: 0 0 1.4rem; font-size: clamp(2rem,5vw,3.5rem); line-height: 1.06; }

/* WooCommerce */
.aw-woo-shell { padding-block: clamp(1.5rem,4vw,3.5rem); }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 1.4rem; color: var(--aw-brand-muted); font-size: .9rem; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { margin-bottom: 1.4rem; }
.woocommerce .woocommerce-ordering select, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce .quantity .qty, .woocommerce input[type="text"], .woocommerce input[type="email"], .woocommerce input[type="tel"], .woocommerce input[type="password"], .woocommerce input[type="search"], .woocommerce select, .woocommerce textarea { min-height: 44px; border: 1px solid var(--aw-border); border-radius: var(--aw-radius-sm); padding: .65rem .75rem; background: #fff; color: var(--aw-brand-ink); }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.3rem; margin: 0; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { float: none; width: auto; margin: 0; padding: 0 0 1rem; border: 1px solid var(--aw-border); border-radius: var(--aw-radius); overflow: hidden; background: #fff; box-shadow: var(--aw-shadow-soft); transition: transform .15s ease,box-shadow .15s ease; }
.woocommerce ul.products li.product:hover { transform: translateY(-2px); box-shadow: var(--aw-shadow); }
.woocommerce ul.products li.product a img { margin: 0 0 .85rem; width: 100%; aspect-ratio: 1/1; object-fit: cover; background: #F8FAFC; }
.woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product .price, .woocommerce ul.products li.product .button { margin-left: .9rem; margin-right: .9rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0; font-size: 1rem; line-height: 1.35; min-height: 2.7em; }
.woocommerce ul.products li.product .price { color: var(--aw-brand-ink); font-weight: 900; }
.woocommerce ul.products li.product .button { width: calc(100% - 1.8rem); margin-top: .3rem; }
.woocommerce span.onsale { min-width: auto; min-height: auto; line-height: 1; padding: .55rem .65rem; border-radius: 999px; background: var(--aw-brand-ink); color: #fff; }
.woocommerce div.product { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.85fr); gap: clamp(2rem,5vw,4.5rem); align-items: start; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0; }
.woocommerce div.product .product_title { font-size: clamp(2rem,4vw,3.2rem); line-height: 1.06; letter-spacing: -.035em; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--aw-brand-ink); font-size: 1.35rem; font-weight: 900; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.woocommerce div.product .woocommerce-tabs { grid-column: 1/-1; }
.woocommerce table.shop_table { border-color: var(--aw-border); border-radius: var(--aw-radius); overflow: hidden; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: .85rem; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals { width: min(100%,520px); }
.woocommerce-checkout #payment { background: #F8FAFC; border-radius: var(--aw-radius); }
.woocommerce-account .woocommerce-MyAccount-navigation { width: 24%; }
.woocommerce-account .woocommerce-MyAccount-content { width: 72%; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--aw-border); border-radius: var(--aw-radius); overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li + li { border-top: 1px solid var(--aw-border); }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: .8rem 1rem; text-decoration: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: var(--aw-radius-sm); background: #F8FAFC; }
.wc-block-cart, .wc-block-checkout { margin-block: 1.5rem; }
.wc-block-components-button { border-radius: var(--aw-radius-sm); }

/* Footer */
.aw-site-footer { margin-top: clamp(3rem,7vw,6rem); background: var(--aw-brand-ink); color: #fff; }
.aw-footer-main { padding-block: clamp(2.5rem,6vw,4.5rem); display: grid; grid-template-columns: minmax(0,1.5fr) repeat(2,minmax(180px,.75fr)); gap: 2.5rem; }
.aw-footer-logo img.custom-logo { width: auto; max-width: 200px; max-height: 62px; filter: brightness(0) invert(1); }
.aw-footer-brand p { max-width: 48ch; color: rgba(255,255,255,.78); }
.aw-footer-trust { font-size: .9rem; }
.aw-footer-column h2 { margin: 0 0 .85rem; font-size: .95rem; text-transform: uppercase; letter-spacing: .08em; color: var(--aw-brand-accent); }
.aw-footer-column ul { list-style: none; margin: 0; padding: 0; }
.aw-footer-column li + li { margin-top: .42rem; }
.aw-footer-column a { color: rgba(255,255,255,.86); text-decoration: none; }
.aw-footer-column a:hover { color: #fff; text-decoration: underline; }
.aw-footer-meta { border-top: 1px solid rgba(255,255,255,.14); padding-block: 1rem; display: flex; justify-content: space-between; gap: 1rem; color: rgba(255,255,255,.68); font-size: .82rem; }

@media (max-width: 1000px) {
  .aw-header-row { grid-template-columns: 1fr auto; min-height: 72px; }
  .aw-desktop-nav { display: none; }
  .aw-mobile-menu { display: block; }
  .aw-logo img.custom-logo { max-width: 175px; max-height: 52px; }
  .woocommerce ul.products { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .woocommerce div.product { grid-template-columns: 1fr; gap: 2rem; }
  .woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
  .woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 1.5rem; }
  .aw-footer-main { grid-template-columns: 1fr 1fr; }
  .aw-footer-brand { grid-column: 1/-1; }
}

@media (max-width: 760px) {
  .aw-shell { width: min(100% - 1.25rem,var(--aw-page-width)); }
  .aw-topbar-row { justify-content: center; text-align: center; min-height: 30px; }
  .aw-topbar-row > :last-child { display: none; }
  .aw-header-row { min-height: 66px; gap: .6rem; }
  .aw-logo img.custom-logo { max-width: 145px; max-height: 44px; }
  .aw-header-actions { gap: .35rem; }
  .aw-header-action { min-height: 40px; padding: .45rem .6rem; font-size: .84rem; }
  .aw-header-action--account { display: none; }
  .aw-mobile-menu > summary { min-height: 40px; padding: .45rem .65rem; font-size: .84rem; }
  .aw-category-nav { padding-block: .45rem; }
  .aw-category-nav a { font-size: .8rem; padding: .4rem .62rem; }
  .entry-content .wp-block-group.alignfull > :where(h1,h2,h3,h4,p,.wp-block-buttons,.wp-block-columns,.woocommerce) { width: min(100% - 1.25rem,var(--aw-page-width)); }
  .entry-content .wp-block-group.alignfull { padding-left: 0 !important; padding-right: 0 !important; }
  .entry-content .wp-block-columns { gap: .9rem; }
  .woocommerce ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product .price, .woocommerce ul.products li.product .button { margin-left: .7rem; margin-right: .7rem; }
  .woocommerce ul.products li.product .button { width: calc(100% - 1.4rem); padding-inline: .55rem; font-size: .86rem; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .9rem; }
  .woocommerce div.product .product_title { font-size: clamp(1.7rem,8vw,2.5rem); }
  .woocommerce div.product form.cart { align-items: stretch; }
  .woocommerce div.product form.cart .single_add_to_cart_button { flex: 1 1 180px; }
  .woocommerce table.shop_table_responsive tr td, .woocommerce-page table.shop_table_responsive tr td { text-align: left !important; }
  .aw-footer-main { grid-template-columns: 1fr; gap: 2rem; }
  .aw-footer-brand { grid-column: auto; }
  .aw-footer-meta { flex-direction: column; gap: .3rem; }
}

@media (max-width: 390px) {
  .aw-logo img.custom-logo { max-width: 125px; }
  .aw-header-action--basket { padding-inline: .5rem; }
  .woocommerce ul.products { grid-template-columns: 1fr; }
}

/* Percy and small-screen WooCommerce grid normalization */
@media (max-width: 760px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .woocommerce ul.products[class*="columns-"],
  .woocommerce-page ul.products[class*="columns-"] {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .65rem !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product,
  .woocommerce ul.products[class*="columns-"] li.product,
  .woocommerce-page ul.products[class*="columns-"] li.product,
  .woocommerce ul.products li.product.first,
  .woocommerce ul.products li.product.last {
    float: none !important;
    clear: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  .woocommerce ul.products li.product a {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  .woocommerce ul.products li.product .button {
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 360px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .woocommerce ul.products[class*="columns-"],
  .woocommerce-page ul.products[class*="columns-"] {
    grid-template-columns: 1fr !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}


/* Professional legal footer */
.aw-footer-main--legal {
  grid-template-columns: minmax(0,1.35fr) minmax(180px,.8fr) minmax(200px,.9fr) minmax(240px,1fr);
  gap: clamp(1.75rem,4vw,3.5rem);
}
.aw-footer-main--legal .aw-footer-brand { grid-column: auto; }
.aw-footer-owner { margin-top: 1rem; font-size: .9rem; color: rgba(255,255,255,.88); }
.aw-footer-company p { margin: 0 0 .8rem; color: rgba(255,255,255,.8); font-size: .9rem; line-height: 1.55; }
.aw-footer-company strong { color: #fff; }
.aw-footer-company a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255,255,255,.45); }
.aw-footer-legal-bar { border-top: 1px solid rgba(255,255,255,.14); background: rgba(0,0,0,.12); }
.aw-footer-meta--legal { border-top: 0; align-items: center; }
.aw-footer-legal-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem 1rem; }
.aw-footer-legal-links a { color: rgba(255,255,255,.78); text-decoration: none; }
.aw-footer-legal-links a:hover { color: #fff; text-decoration: underline; }

@media (max-width: 1100px) {
  .aw-footer-main--legal { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .aw-footer-main--legal .aw-footer-brand { grid-column: 1/-1; }
}

@media (max-width: 760px) {
  .aw-footer-main--legal { grid-template-columns: 1fr; gap: 1.8rem; }
  .aw-footer-main--legal .aw-footer-brand { grid-column: auto; }
  .aw-footer-meta--legal { align-items: flex-start; }
  .aw-footer-legal-links { justify-content: flex-start; }
}
