/*
Theme Name: MC Parts Light
Theme URI: https://michaelcamac.com/
Author: MC Parts
Description: Lightweight WooCommerce and gallery theme for michaelcamac.com.
Version: 1.3.0
Requires at least: 6.6
Requires PHP: 8.2
Text Domain: mc-parts-light
*/

:root {
  --mc-navy: #082c68;
  --mc-navy-dark: #041a40;
  --mc-orange: #f59e0b;
  --mc-ink: #172033;
  --mc-muted: #667085;
  --mc-line: #e4e7ec;
  --mc-surface: #f7f8fa;
  --mc-white: #fff;
  --mc-radius: 16px;
  --mc-shadow: 0 12px 36px rgba(9, 30, 66, .10);
  --mc-width: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--mc-ink); background: #edf1f5; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.65; }
img { max-width: 100%; height: auto; }
a { color: var(--mc-navy); text-decoration-thickness: .08em; text-underline-offset: .16em; }
a:hover { color: #0b56bd; }
.mc-wrap { width: min(calc(100% - 40px), var(--mc-width)); margin-inline: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { clip: auto; width: auto; height: auto; padding: 12px; background: #fff; z-index: 100000; }

.site-header { position: relative; z-index: 50; background: linear-gradient(135deg, var(--mc-navy-dark), var(--mc-navy)); color: #fff; box-shadow: 0 4px 18px rgba(0,0,0,.14); }
.mc-header-main { min-height: 124px; display: grid; grid-template-columns: minmax(290px, 1fr) auto; align-items: center; gap: 28px; }
.mc-brand { display: inline-flex; align-items: center; width: fit-content; color: #fff; text-decoration: none; }
.mc-brand img, .custom-logo { max-width: 270px; max-height: 74px; width: auto; }
.mc-default-logo { width: 270px; height: auto; display: block; }
.mc-wordmark { display: inline-flex; align-items: center; gap: 14px; color: #fff; }
.mc-wordmark-mark { display: grid; place-items: center; width: 68px; height: 68px; border: 3px solid var(--mc-orange); transform: skew(-7deg); background: rgba(255,255,255,.06); font-size: 2.1rem; font-weight: 950; line-height: 1; box-shadow: inset 0 0 0 3px rgba(255,255,255,.1); }
.mc-wordmark-copy { display: grid; line-height: 1; }
.mc-wordmark-copy strong { color: #fff; font-size: clamp(1.35rem, 2.6vw, 2.25rem); font-weight: 950; letter-spacing: .035em; }
.mc-wordmark-copy span { margin-top: 8px; color: var(--mc-orange); font-size: .78rem; font-weight: 850; letter-spacing: .2em; }
.mc-header-note { max-width: 390px; color: #cfdaec; font-size: .92rem; text-align: right; }
.mc-search form, form.woocommerce-product-search { display: flex; overflow: hidden; border-radius: 10px; background: #fff; }
.mc-search input, .woocommerce-product-search input { width: 100%; min-height: 48px; border: 0; padding: 0 16px; font: inherit; }
.mc-search button, .woocommerce-product-search button { border: 0; background: var(--mc-orange); color: #1d2737; font-weight: 800; padding: 0 20px; cursor: pointer; }
.mc-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.mc-action { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 14px; border-radius: 10px; color: #fff; background: rgba(255,255,255,.1); text-decoration: none; white-space: nowrap; }
.mc-action:hover { color: #fff; background: rgba(255,255,255,.18); }
.mc-cart-count { margin-left: 7px; min-width: 22px; padding: 1px 6px; text-align: center; border-radius: 999px; background: var(--mc-orange); color: #182033; font-size: .78rem; font-weight: 900; }
.mc-nav-bar { background: rgba(5, 16, 38, .82); border-top: 1px solid rgba(255,255,255,.1); }
.mc-nav-inner { min-height: 56px; display: flex; align-items: center; justify-content: center; }
.mc-menu-toggle { display: none; width: 100%; border: 0; background: transparent; color: #fff; padding: 14px 0; font: inherit; font-weight: 800; text-align: left; cursor: pointer; }
.mc-primary-menu { width: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 0; list-style: none; padding: 0; margin: 0; }
.mc-primary-menu li { position: relative; }
.mc-primary-menu a { display: block; padding: 14px 18px; color: #f9fafb; text-decoration: none; font-weight: 700; font-size: .92rem; letter-spacing: .01em; }
.mc-primary-menu a:hover, .mc-primary-menu .current-menu-item > a { color: var(--mc-orange); background: rgba(255,255,255,.06); }
.mc-primary-menu > .mc-menu-shop { order: 99; margin-left: 24px; }
.mc-primary-menu > .mc-menu-shop > a { color: #1b2638; background: var(--mc-orange); }
.mc-primary-menu > .mc-menu-shop > a:hover { color: #1b2638; filter: brightness(1.06); }
.mc-primary-menu .sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 230px; list-style: none; padding: 8px; margin: 0; border-radius: 0 0 12px 12px; background: var(--mc-navy-dark); box-shadow: var(--mc-shadow); }
.mc-primary-menu li:hover > .sub-menu, .mc-primary-menu li:focus-within > .sub-menu { display: block; }
.mc-primary-menu .sub-menu a { padding: 10px 12px; }
.mc-shop-tools-bar { padding: 12px 0; border-top: 1px solid rgba(255,255,255,.12); background: #0b376f; }
.mc-shop-tools { display: grid; grid-template-columns: auto minmax(240px, 1fr) auto auto; align-items: center; gap: 12px; }
.mc-shop-tools > strong { color: #fff; }
.mc-shop-tools .mc-action { min-height: 48px; }

.mc-hero { position: relative; isolation: isolate; min-height: 500px; display: grid; align-items: center; color: #fff; background: var(--mc-navy-dark); overflow: hidden; }
.mc-hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background-image: var(--mc-hero-image, linear-gradient(135deg, #071c40, #0d4f9c)); background-position: center; background-size: cover; }
.mc-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(2,10,24,.94) 0%, rgba(3,20,46,.78) 48%, rgba(3,20,46,.24) 100%); }
.mc-hero-content { max-width: 690px; padding-block: 88px; }
.mc-eyebrow { margin: 0 0 10px; color: #ffd483; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.mc-hero h1 { margin: 0; font-size: clamp(2.45rem, 5.4vw, 5.2rem); line-height: .99; letter-spacing: -.045em; }
.mc-hero p { max-width: 620px; margin: 22px 0 30px; font-size: clamp(1.05rem, 2vw, 1.28rem); color: #e9eff9; }
.mc-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.mc-button, .button, button.button, input.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 11px 20px; border: 0; border-radius: 10px; background: var(--mc-orange); color: #20283a; font-weight: 850; text-decoration: none; cursor: pointer; transition: transform .16s ease, filter .16s ease; }
.mc-button:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { color: #20283a; filter: brightness(1.05); transform: translateY(-1px); }
.mc-button-secondary { background: #fff; color: var(--mc-navy); }

.mc-section { padding: 62px 0; }
.mc-section-alt { background: var(--mc-surface); }
.mc-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.mc-section-heading h2 { margin: 0; font-size: clamp(1.8rem, 3.5vw, 2.75rem); line-height: 1.1; letter-spacing: -.03em; }
.mc-section-heading p { margin: 8px 0 0; color: var(--mc-muted); }
.mc-category-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.mc-category-card { min-height: 230px; display: flex; flex-direction: column; justify-content: end; position: relative; overflow: hidden; border-radius: var(--mc-radius); background: var(--mc-navy); color: #fff; box-shadow: var(--mc-shadow); text-decoration: none; }
.mc-category-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.mc-category-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 25%, rgba(3,12,28,.88)); }
.mc-category-card span { position: relative; z-index: 1; padding: 22px; font-size: 1.15rem; font-weight: 850; }
.mc-category-card:hover { color: #fff; }
.mc-category-card:hover img { transform: scale(1.045); }
.mc-category-placeholder { position: absolute; inset: 0; display: grid; place-items: center; font-size: 4rem; opacity: .28; }
.mc-archive-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.mc-archive-card { position: relative; isolation: isolate; min-height: 340px; display: flex; align-items: end; overflow: hidden; border-radius: 18px; color: #fff; background: #0a2a5d; text-decoration: none; box-shadow: var(--mc-shadow); }
.mc-archive-card::before { content: ""; position: absolute; inset: 0; z-index: -2; background-image: var(--mc-card-image); background-position: center; background-size: cover; transition: transform .35s ease; }
.mc-archive-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(transparent 15%, rgba(2,10,23,.9)); }
.mc-archive-card:hover { color: #fff; }
.mc-archive-card:hover::before { transform: scale(1.045); }
.mc-archive-card-content { padding: 28px; }
.mc-archive-card-kicker { display: block; margin-bottom: 8px; color: #ffd887; font-size: .76rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.mc-archive-card h3 { margin: 0 0 8px; font-size: clamp(1.45rem, 3vw, 2rem); }
.mc-archive-card p { margin: 0; color: #e3eaf5; }
.mc-story-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr); gap: 50px; align-items: center; }
.mc-story-copy h2 { margin-top: 0; font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.05; letter-spacing: -.035em; }
.mc-story-copy p { color: var(--mc-muted); font-size: 1.08rem; }
.mc-story-photo { position: relative; overflow: hidden; min-height: 430px; border-radius: 18px; box-shadow: var(--mc-shadow); }
.mc-story-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mc-event-list { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.mc-event { padding: 22px 14px; border-top: 4px solid var(--mc-orange); background: #fff; box-shadow: 0 8px 24px rgba(16,24,40,.07); }
.mc-event strong { display: block; color: var(--mc-navy); font-size: 1.05rem; }
.mc-event span { color: var(--mc-muted); font-size: .85rem; }
.mc-video-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.mc-video-card { overflow: hidden; border: 1px solid var(--mc-line); border-radius: 16px; background: #fff; box-shadow: 0 10px 30px rgba(16,24,40,.08); }
.mc-video-frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #041a40; }
.mc-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mc-video-card-body { padding: 20px 22px 23px; }
.mc-video-card-body h3 { margin: 0 0 8px; color: var(--mc-navy); font-size: 1.08rem; line-height: 1.35; }
.mc-video-card-body a { font-size: .9rem; font-weight: 800; }
.mc-shop-banner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; padding: 38px 42px; border-radius: 18px; color: #fff; background: linear-gradient(135deg, #061b40, var(--mc-navy)); box-shadow: var(--mc-shadow); }
.mc-shop-banner h2 { margin: 0 0 7px; color: #fff; }
.mc-shop-banner p { margin: 0; color: #d7e2f2; }
.mc-trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.mc-trust-card { padding: 28px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius); background: #fff; }
.mc-trust-icon { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 18px; border-radius: 12px; background: #fff1d6; color: #815300; font-size: 1.35rem; font-weight: 900; }
.mc-trust-card h3 { margin: 0 0 8px; }
.mc-trust-card p { margin: 0; color: var(--mc-muted); }
.mc-content-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .7fr); gap: 40px; align-items: start; }
.mc-card { padding: 30px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius); background: #fff; box-shadow: 0 8px 28px rgba(16,24,40,.06); }
.mc-contact-list { display: grid; gap: 12px; padding: 0; list-style: none; }
.mc-contact-list a { overflow-wrap: anywhere; }
.mc-map-frame { width: 100%; min-height: 360px; border: 0; border-radius: 14px; }

.site-main { min-height: 50vh; background: #fff; }
.home .site-main { width: min(calc(100% - 40px), 1240px); margin: 30px auto 46px; overflow: hidden; border: 1px solid #dfe4ea; border-radius: 18px; box-shadow: 0 18px 55px rgba(16,24,40,.11); }
.mc-page { padding: 60px 0 80px; }
.mc-page-header { margin-bottom: 34px; padding-bottom: 22px; border-bottom: 1px solid var(--mc-line); }
.mc-page-header h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.1; }
.mc-entry-content > *:first-child { margin-top: 0; }
.mc-entry-content iframe { max-width: 100%; }
.mc-entry-content .wp-block-gallery, .mc-entry-content .gallery { margin-block: 30px; }
.mc-entry-content .bwg_container { max-width: 100%; }
.alignwide { width: min(100%, var(--mc-width)); margin-inline: auto; }
.alignfull { width: 100vw; max-width: none; margin-left: calc(50% - 50vw); }

.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; padding: 14px 14px 20px; border: 1px solid var(--mc-line); border-radius: 14px; background: #fff; transition: transform .18s ease, box-shadow .18s ease; }
.woocommerce ul.products li.product:hover { transform: translateY(-3px); box-shadow: var(--mc-shadow); }
.woocommerce ul.products li.product a img { aspect-ratio: 1 / 1; object-fit: contain; border-radius: 10px; background: #fff; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--mc-ink); font-size: 1rem; line-height: 1.35; }
.woocommerce ul.products li.product .price { color: var(--mc-navy); font-size: 1.08rem; font-weight: 900; }
.woocommerce span.onsale { min-width: auto; min-height: auto; padding: 6px 10px; border-radius: 999px; background: var(--mc-orange); color: #172033; line-height: 1; }
.woocommerce div.product { display: flow-root; }
.woocommerce div.product div.images img { border-radius: 14px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: 10px; background: #fff; }
.woocommerce .quantity .qty { min-height: 44px; border: 1px solid var(--mc-line); border-radius: 8px; }
.woocommerce table.shop_table { border-collapse: separate; border-color: var(--mc-line); border-radius: 12px; }

.mc-gallery-shell .bwg_container, .mc-gallery-shell .wp-block-gallery { max-width: 100% !important; }
.mc-gallery-shell img { border-radius: 8px; }
.mc-gallery-group + .mc-gallery-group { margin-top: 52px; padding-top: 48px; border-top: 1px solid var(--mc-line); }
.mc-gallery-group h3 { margin: 0 0 20px; font-size: 1.45rem; }
.mc-gallery-empty { padding: 30px; border: 1px dashed #aab3c2; border-radius: 12px; color: var(--mc-muted); text-align: center; }

.site-footer { background: #061b40; color: #dbe5f5; }
.mc-footer-grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 54px; padding: 62px 0 42px; }
.mc-footer-brand { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 15px; color: #fff; }
.mc-footer-brand-mark { display: grid; place-items: center; width: 48px; height: 48px; border: 2px solid var(--mc-orange); transform: skew(-7deg); font-weight: 950; }
.mc-footer-brand strong { font-size: 1.25rem; letter-spacing: .04em; }
.site-footer h2, .site-footer h3 { color: #fff; margin-top: 0; }
.site-footer a { color: #dbe5f5; }
.site-footer a:hover { color: var(--mc-orange); }
.mc-footer-menu { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.mc-footer-bottom { padding: 18px 0; border-top: 1px solid rgba(255,255,255,.13); color: #aebed6; font-size: .9rem; }

.mc-not-found { min-height: 60vh; display: grid; place-items: center; text-align: center; }
.mc-not-found h1 { margin: 0; font-size: clamp(4rem, 14vw, 9rem); line-height: 1; color: var(--mc-navy); }
.mc-not-found h2 { margin: 10px 0; }
.mc-not-found p { color: var(--mc-muted); }

@media (max-width: 980px) {
  .mc-header-main { grid-template-columns: 1fr auto; padding-block: 18px; }
  .mc-header-note { display: none; }
  .mc-category-grid, .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
  .mc-content-grid { grid-template-columns: 1fr; }
  .mc-event-list { grid-template-columns: repeat(3, 1fr); }
  .home .site-main { width: min(calc(100% - 24px), 1240px); margin-top: 18px; }
  .mc-shop-tools { grid-template-columns: 1fr auto auto; }
  .mc-shop-tools > strong { display: none; }
}

@media (max-width: 720px) {
  .mc-wrap { width: min(calc(100% - 28px), var(--mc-width)); }
  .mc-header-main { min-height: auto; gap: 14px; }
  .mc-brand img, .custom-logo, .mc-default-logo { max-width: 185px; }
  .mc-wordmark-mark { width: 48px; height: 48px; font-size: 1.6rem; }
  .mc-wordmark-copy strong { font-size: 1.1rem; }
  .mc-wordmark-copy span { font-size: .58rem; letter-spacing: .13em; }
  .mc-action-label { display: none; }
  .mc-menu-toggle { display: block; }
  .mc-primary-menu { display: none; width: 100%; padding-bottom: 12px; }
  .mc-primary-menu.is-open { display: block; }
  .mc-primary-menu a { padding: 11px 0; }
  .mc-primary-menu > .mc-menu-shop { margin-left: 0; }
  .mc-primary-menu > .mc-menu-shop > a { padding-inline: 12px; }
  .mc-primary-menu .sub-menu { display: block; position: static; box-shadow: none; padding: 0 0 0 18px; background: transparent; }
  .mc-hero { min-height: 520px; }
  .mc-hero::after { background: rgba(3,15,36,.76); }
  .mc-hero-content { padding-block: 65px; }
  .mc-section { padding: 54px 0; }
  .mc-section-heading { align-items: start; flex-direction: column; }
  .mc-category-grid, .mc-trust-grid, .woocommerce ul.products, .mc-footer-grid, .mc-archive-grid, .mc-story-grid, .mc-event-list, .mc-video-grid { grid-template-columns: 1fr; }
  .mc-archive-card { min-height: 280px; }
  .mc-story-photo { min-height: 320px; }
  .mc-shop-banner { grid-template-columns: 1fr; padding: 30px; }
  .mc-shop-tools { grid-template-columns: 1fr 1fr; }
  .mc-shop-tools .mc-search { grid-column: 1 / -1; }
  .mc-category-card { min-height: 210px; }
}
