/*
Theme Name: North Pole Marketplace
Theme URI: https://santaclaus.toys/
Author: SantaClaus.toys
Description: A magical, accessible WooCommerce marketplace theme crafted for Dokan-powered holiday stores.
Version: 1.3.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: north-pole-marketplace
Tags: e-commerce, woocommerce, dokan, holiday, marketplace
*/

:root { --np-navy:#10283f; --np-pine:#1f5a4d; --np-spruce:#123b34; --np-snow:#f6fafb; --np-ice:#dcecf1; --np-gold:#d7b56d; --np-berry:#ab4050; --np-ink:#263a4c; --np-radius:20px; --np-shadow:0 16px 42px rgba(16,40,63,.12); }
* { box-sizing:border-box; }
body { margin:0; background:var(--np-snow); color:var(--np-ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.6; }
a { color:var(--np-pine); text-decoration:none; } a:hover { color:var(--np-berry); }
.np-shell { width:min(1180px,calc(100% - 40px)); margin:auto; }
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }
.screen-reader-text:focus { clip:auto; height:auto; width:auto; left:16px; top:16px; z-index:9999; padding:10px 14px; background:#fff; }
.np-topbar { background:var(--np-spruce); color:var(--np-ice); font-size:.85rem; }
.np-topbar .np-shell { display:flex; justify-content:space-between; gap:20px; padding:8px 0; }
.np-topbar a { color:#fff; }
.np-site-header { color:#fff; background:linear-gradient(115deg,var(--np-navy),var(--np-spruce)); border-bottom:4px solid var(--np-gold); box-shadow:0 7px 24px rgba(9,28,45,.2); }
.np-snowline { height:5px; background:repeating-linear-gradient(90deg,#fff 0 3px,transparent 3px 18px); opacity:.7; }
.np-head-main { display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:108px; }
.np-brand { display:flex; align-items:center; gap:14px; min-width:260px; color:#fff; }.np-brand>a { color:#fff; }
.np-brand img { width:70px; height:70px; object-fit:contain; border-radius:50%; border:3px solid var(--np-gold); background:#fff; padding:4px; }
.np-brand-name { display:block; color:#fff; font-size:1.35rem; font-weight:800; line-height:1.05; letter-spacing:.01em; }
.np-brand-tagline { display:block; color:var(--np-ice); font-size:.78rem; margin-top:5px; }
.np-nav { display:flex; align-items:center; gap:18px; }
.np-menu { display:flex; align-items:center; list-style:none; gap:4px; margin:0; padding:0; }
.np-menu a { display:block; color:#fff; padding:10px 11px; font-weight:650; border-radius:999px; }
.np-menu a:hover,.np-menu .current-menu-item>a { background:rgba(255,255,255,.12); color:#fff; }
.np-actions { display:flex; gap:9px; }
.np-action { display:inline-flex; align-items:center; gap:7px; border:1px solid rgba(255,255,255,.45); color:#fff; border-radius:999px; padding:8px 12px; font-weight:700; font-size:.9rem; }
.np-action:hover { background:#fff; color:var(--np-navy); }
.np-search { margin:22px auto 0; padding:0 0 24px; }
.np-search form { display:flex; max-width:620px; margin:auto; background:#fff; padding:5px; border-radius:999px; box-shadow:0 8px 20px rgba(0,0,0,.14); }
.np-search input { flex:1; min-width:0; border:0; outline:0; padding:11px 16px; border-radius:999px; font:inherit; }
button,input[type=submit],.button,.wp-element-button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.dokan-btn,.dokan-btn-theme { border:0!important; background:var(--np-pine)!important; color:#fff!important; border-radius:999px!important; padding:.8em 1.25em!important; font-weight:750!important; box-shadow:0 3px 0 #123b34; }
button:hover,input[type=submit]:hover,.button:hover,.wp-element-button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.dokan-btn:hover,.dokan-btn-theme:hover { background:var(--np-berry)!important; box-shadow:0 3px 0 #722331; }
.np-main { padding:42px 0 64px; }
.np-card,.wp-block-group,.widget,.dokan-dashboard-wrap .dashboard-widget { background:#fff; border:1px solid var(--np-ice); border-radius:var(--np-radius); box-shadow:var(--np-shadow); }
.np-hero { display:grid; grid-template-columns:1.25fr .75fr; gap:30px; padding:42px; overflow:hidden; background:radial-gradient(circle at 90% 18%,rgba(215,181,109,.34),transparent 24%),linear-gradient(135deg,#123b34,#10283f); color:#fff; }
.np-kicker { color:var(--np-gold); font-weight:800; letter-spacing:.14em; text-transform:uppercase; font-size:.78rem; }
.np-hero h1 { font-size:clamp(2.2rem,5vw,4.1rem); line-height:1.02; margin:.35em 0; }
.np-hero p { color:var(--np-ice); max-width:580px; font-size:1.08rem; }
.np-hero-badges { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.np-hero-badges span { border:1px solid rgba(255,255,255,.32); border-radius:999px; padding:7px 11px; font-size:.85rem; }
.np-hero-art { align-self:end; font-size:8.4rem; text-align:center; filter:drop-shadow(0 10px 10px rgba(0,0,0,.2)); }
.np-section { margin-top:42px; } .np-section-head { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:18px; } .np-section h2 { margin:0; font-size:1.8rem; color:var(--np-navy); }
.np-trust { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; } .np-trust-item { padding:20px; } .np-trust-item strong { display:block; color:var(--np-navy); font-size:1.05rem; } .np-trust-item span { color:#587080; font-size:.92rem; }
.np-content { background:#fff; padding:34px; border-radius:var(--np-radius); border:1px solid var(--np-ice); box-shadow:var(--np-shadow); }
.woocommerce ul.products { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; margin:0!important; }
.woocommerce ul.products li.product { width:auto!important; margin:0!important; float:none!important; padding:14px!important; background:#fff; border:1px solid var(--np-ice); border-radius:16px; box-shadow:0 8px 22px rgba(16,40,63,.08); transition:transform .2s ease,box-shadow .2s ease; }
.woocommerce ul.products li.product:hover { transform:translateY(-5px); box-shadow:var(--np-shadow); }
.woocommerce ul.products li.product img { border-radius:12px; } .woocommerce ul.products li.product .woocommerce-loop-product__title { color:var(--np-navy); font-size:1rem; } .woocommerce .price,.woocommerce-Price-amount { color:var(--np-pine)!important; font-weight:800; } .woocommerce span.onsale,.dokan-product-badge { background:var(--np-berry)!important; border-radius:999px!important; padding:.45em .7em!important; }
.dokan-store-wrap,.dokan-dashboard-wrap,.dokan-single-store { background:#fff; border-radius:var(--np-radius); } .dokan-dashboard-wrap { padding:22px; border:1px solid var(--np-ice); box-shadow:var(--np-shadow); } .dokan-btn-theme { background:var(--np-pine)!important; }
.np-site-footer { background:var(--np-navy); color:var(--np-ice); border-top:4px solid var(--np-gold); padding:42px 0 22px; } .np-site-footer a { color:#fff; } .np-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:30px; } .np-site-footer h2,.np-site-footer h3 { color:#fff; } .np-copyright { border-top:1px solid rgba(255,255,255,.18); margin-top:28px; padding-top:18px; font-size:.85rem; }
@media (max-width:900px) { .np-head-main{flex-wrap:wrap;padding:18px 0}.np-nav{width:100%;justify-content:space-between}.np-menu{overflow-x:auto}.np-hero{grid-template-columns:1fr}.np-hero-art{display:none}.woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}.np-footer-grid{grid-template-columns:1fr 1fr}.np-trust{grid-template-columns:1fr} }
@media (max-width:600px) { .np-shell{width:min(100% - 28px,1180px)}.np-topbar .np-shell{font-size:.76rem}.np-topbar .np-shell span:last-child{display:none}.np-brand{min-width:0}.np-brand img{width:54px;height:54px}.np-brand-name{font-size:1.08rem}.np-actions .np-action:last-child{display:none}.np-menu a{font-size:.87rem;padding:8px}.np-main{padding:26px 0 42px}.np-content,.np-hero{padding:24px}.woocommerce ul.products{gap:12px}.np-footer-grid{grid-template-columns:1fr} }

/* Concept direction: illustrated North Pole luxury marketplace */
:root { --np-navy:#0b2d45; --np-pine:#0f5132; --np-spruce:#073b2f; --np-gold:#d4af37; --np-berry:#b91c1c; --np-snow:#f8fafc; }
body { background:linear-gradient(180deg,#eef6fb 0,#f8fafc 430px); }
h1,h2,h3,.np-brand-name { font-family:Georgia,"Times New Roman",serif; }
.np-topbar { background:#0f5132; letter-spacing:.04em; }
.np-site-header { background:#fff; color:var(--np-navy); border-bottom:1px solid #e5ded1; box-shadow:0 5px 18px rgba(11,45,69,.1); }
.np-snowline { display:none; }
.np-head-main { min-height:92px; }
.np-brand { color:var(--np-navy); min-width:305px; }
.np-brand>a { color:var(--np-navy); }.np-brand img { width:68px; height:68px; border:0; padding:0; background:transparent; border-radius:0; box-shadow:none; }
.np-brand-name { color:#b91c1c; font-size:1.9rem; letter-spacing:-.05em; }.np-brand-tagline { color:#0f5132; font-size:.63rem; letter-spacing:.17em; text-transform:uppercase; font-weight:800; }
.np-menu a { color:var(--np-navy); font-size:.87rem; }.np-menu a:hover,.np-menu .current-menu-item>a { color:#b91c1c; background:#fff5f0; }.np-action { color:var(--np-navy); border-color:#d9e2e8; }.np-action:hover { background:#fff5f0; color:#b91c1c; }
.np-search { margin:0 0 18px; padding:0; }.np-search form { border:1px solid #d9e2e8; box-shadow:none; max-width:520px; padding:3px; }.np-search input { padding:8px 14px; }.np-search button { background:var(--np-berry)!important; box-shadow:none; padding:.65em 1.1em!important; }
.np-main { padding-top:26px; }.np-hero { min-height:510px; display:flex; align-items:center; position:relative; isolation:isolate; padding:54px; background:linear-gradient(90deg,rgba(5,29,47,.94) 0%,rgba(5,29,47,.79) 42%,rgba(5,29,47,.12) 75%),url('assets/images/santa-and-child-hero.png') center/cover; border:0; box-shadow:var(--np-shadow); }
.np-hero:after { content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(255,255,255,.13); }.np-hero-copy { width:min(52%,590px); }.np-kicker { color:#f4d06f; }.np-hero h1 { font-size:clamp(2.6rem,4.6vw,4.8rem); text-shadow:0 3px 18px rgba(0,0,0,.25); }.np-hero p { font-size:1.12rem; }.np-hero .button { background:var(--np-berry)!important; box-shadow:0 3px 0 #7f1111; }.np-hero-badges { margin-top:28px; }.np-hero-badges span { background:rgba(255,255,255,.09); backdrop-filter:blur(3px); }
.np-hero-art { display:none; }.np-section-head h2 { font-size:2.1rem; }.np-section-head a { color:var(--np-berry); font-weight:800; }
.np-trust { gap:18px; }.np-trust-item { position:relative; overflow:hidden; padding:22px 22px 22px 68px; }.np-trust-item:before { position:absolute; left:22px; top:22px; color:var(--np-gold); font-size:1.75rem; }.np-trust-item:nth-child(1):before{content:"✦"}.np-trust-item:nth-child(2):before{content:"🎁"}.np-trust-item:nth-child(3):before{content:"🛷"}
.woocommerce ul.products li.product { border-radius:8px; }.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family:Georgia,"Times New Roman",serif; font-size:1.12rem; }.woocommerce span.onsale,.dokan-product-badge { background:var(--np-berry)!important; }.np-site-footer { background:linear-gradient(115deg,#062b43,#0f5132); }
@media (max-width:900px) { .np-site-header{background:linear-gradient(115deg,#fff,#f7fbfc)}.np-hero{min-height:470px}.np-hero-copy{width:68%} }
@media (max-width:600px) { .np-head-main{gap:12px}.np-brand{min-width:0}.np-brand-name{font-size:1.3rem}.np-brand-tagline{display:none}.np-hero{min-height:500px;padding:30px;background:linear-gradient(90deg,rgba(5,29,47,.92),rgba(5,29,47,.58)),url('assets/images/santa-and-child-hero.png') 64% center/cover}.np-hero-copy{width:100%}.np-hero h1{font-size:2.55rem}.np-search{width:100%;margin:0 0 14px}.np-search form{max-width:none}.np-nav{width:100%;}.np-menu{width:100%;}.np-actions{display:none;} }

/* Header refinement: compact brand, intentional typography, readable navigation */
.np-head-main { align-items:center; gap:22px; min-height:86px; }
.np-brand { min-width:245px; gap:11px; }
.np-brand img { width:58px; height:58px; flex:0 0 58px; }
.np-brand-copy { display:grid; grid-template-columns:auto auto; align-items:baseline; column-gap:7px; line-height:1; text-decoration:none; }
.np-brand-name { grid-column:1 / -1; white-space:nowrap; font-size:clamp(1.45rem,2.1vw,1.75rem); letter-spacing:-.045em; }
.np-brand-name span { color:var(--np-navy); }
.np-brand-companion { color:var(--np-berry); font-family:Georgia,"Times New Roman",serif; font-size:.93rem; font-weight:700; white-space:nowrap; }
.np-brand-tagline { color:var(--np-pine); font-size:.56rem; font-weight:800; letter-spacing:.13em; margin:5px 0 0; white-space:nowrap; }
.np-nav { gap:12px; }
.np-menu { gap:2px; }
.np-menu a { color:var(--np-navy); font-size:.84rem; font-weight:750; letter-spacing:.01em; padding:9px 10px; text-decoration:none; transition:color .18s ease,background .18s ease; }
.np-menu a:hover,.np-menu a:focus-visible,.np-menu .current-menu-item>a { color:var(--np-berry); background:#fff1ec; outline:none; }
.np-actions { gap:7px; }
.np-action { color:var(--np-navy); font-size:.82rem; font-weight:800; border-color:#dbe4e8; text-decoration:none; padding:8px 10px; }
.np-action:hover,.np-action:focus-visible { color:var(--np-berry); background:#fff1ec; border-color:#f2bbb0; outline:none; }
@media (max-width:1080px) { .np-head-main{flex-wrap:wrap;padding:15px 0}.np-nav{width:100%;justify-content:space-between}.np-search{margin-bottom:15px} }
@media (max-width:600px) { .np-brand img{width:48px;height:48px;flex-basis:48px}.np-brand{min-width:0}.np-brand-name{font-size:1.35rem}.np-brand-companion{font-size:.78rem}.np-brand-tagline{display:none}.np-menu a{font-size:.8rem;padding:8px}.np-actions{display:none} }

/* Three-scene carousel placed above the footer */
.np-story-slider { position:relative; height:clamp(260px,31vw,420px); overflow:hidden; border-radius:14px; box-shadow:0 18px 34px rgba(8,36,50,.19); margin:56px 0 12px; background:var(--np-navy); }
.np-slide { position:absolute; inset:0; margin:0; opacity:0; animation:np-slide-show 18s infinite; }
.np-slide-workshop { animation-delay:0s; }.np-slide-market { animation-delay:6s; }.np-slide-morning { animation-delay:12s; }
.np-slide img { display:block; width:100%; height:100%; object-fit:cover; }
.np-slide:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,29,47,.84) 0%,rgba(5,29,47,.42) 43%,rgba(5,29,47,.03) 74%); }
.np-slide-copy { position:absolute; z-index:1; left:clamp(24px,5vw,68px); top:50%; transform:translateY(-50%); color:#fff; max-width:420px; }
.np-slide-copy span { color:#f4d06f; font-size:.74rem; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }.np-slide-copy h2 { color:#fff; font-size:clamp(2rem,4vw,3.8rem); line-height:.98; margin:.35rem 0 0; text-shadow:0 2px 16px rgba(0,0,0,.26); }
.np-slider-dots { position:absolute; z-index:2; bottom:20px; left:clamp(24px,5vw,68px); display:flex; gap:7px; }.np-slider-dots i { width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.55); animation:np-dot-show 18s infinite; }.np-slider-dots i:nth-child(2){animation-delay:6s}.np-slider-dots i:nth-child(3){animation-delay:12s}
@keyframes np-slide-show { 0%,27%{opacity:1} 33%,100%{opacity:0} } @keyframes np-dot-show { 0%,27%{background:#f4d06f;transform:scale(1.32)} 33%,100%{background:rgba(255,255,255,.55);transform:scale(1)} }
@media (prefers-reduced-motion:reduce) { .np-slide,.np-slider-dots i { animation:none; }.np-slide-workshop{opacity:1}.np-slide-market,.np-slide-morning{display:none} }
@media (max-width:600px) { .np-story-slider{height:340px;margin-top:36px;border-radius:10px}.np-slide-copy{left:26px;top:auto;bottom:47px;transform:none}.np-slide:after{background:linear-gradient(90deg,rgba(5,29,47,.78),rgba(5,29,47,.2)),linear-gradient(0deg,rgba(5,29,47,.72),transparent 55%)} }
