/*
Theme Name: UPPA Next
Theme URI: https://uppa.se/
Author: UPPA
Description: UPPA granskningskandidat 0.3.8 QA. Tydligare antal och fri-fraktinformation i WooCommerce Checkout Blocks.
Version: 0.3.8
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: uppa
*/

:root{
  --uppa-ink:#273241;
  --uppa-muted:#667284;
  --uppa-blue:#708099;
  --uppa-blue-dark:#435772;
  --uppa-blue-soft:#e8edf3;
  --uppa-paper:#f7f5f1;
  --uppa-sand:#eeeae3;
  --uppa-white:#fff;
  --uppa-line:#d9dee6;
  --uppa-accent:#9b654f;
  --uppa-shadow:0 18px 55px rgba(51,64,83,.14);
  --uppa-radius:22px;
  --uppa-max:1220px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;min-height:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--uppa-paper);color:var(--uppa-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body>main{flex:1 0 auto;width:100%}
.uppa-site-header,.uppa-site-footer{flex:0 0 auto}
/* WordPress/WooCommerce accessibility regions must not take visual layout space. */
.screen-reader-text,#wp-a11y-speak-polite,#wp-a11y-speak-assertive{border:0!important;clip:rect(1px,1px,1px,1px)!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important;word-wrap:normal!important}
.screen-reader-text:focus{background:#fff!important;clip:auto!important;clip-path:none!important;color:var(--uppa-ink)!important;display:block!important;height:auto!important;left:8px!important;top:8px!important;width:auto!important;z-index:100000!important;padding:12px 16px!important;border-radius:8px!important;box-shadow:var(--uppa-shadow)!important}

body.admin-bar .uppa-site-header{top:32px}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.uppa-wrap{width:min(var(--uppa-max),calc(100% - 40px));margin-inline:auto}
.uppa-serif{font-family:Georgia,"Times New Roman",serif}
.uppa-kicker{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--uppa-blue-dark)}
.uppa-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:12px;padding:15px 22px;background:var(--uppa-blue);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 7px 18px rgba(83,101,127,.20);transition:.2s ease}
.uppa-btn:hover{background:var(--uppa-blue-dark);transform:translateY(-1px);color:#fff}
.uppa-btn--ghost{background:#fff;color:var(--uppa-ink);border:1px solid #cdd2cc;box-shadow:none}
.uppa-btn--ghost:hover{background:#f7f8fa;color:var(--uppa-blue-dark)}
.uppa-section{padding:84px 0}
.uppa-section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:34px}
.uppa-section-head h2{font:44px/1.06 Georgia,serif;margin:0;letter-spacing:-.025em}
.uppa-section-head p{max-width:540px;color:var(--uppa-muted);line-height:1.65;margin:0}

/* Header */
.uppa-site-header{position:sticky;top:0;z-index:50;background:rgba(247,245,241,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(70,84,108,.12)}
.uppa-nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.uppa-brand{display:flex;flex-direction:column;line-height:1}
.uppa-wordmark{font:42px/1 Georgia,serif;letter-spacing:.06em}
.uppa-tagline{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:#536157;margin-top:5px}
.uppa-menu{display:flex;align-items:center;gap:25px;font-size:14px}
.uppa-menu a{padding:10px 0}
.uppa-menu a:hover,.uppa-menu .current-menu-item>a{color:var(--uppa-blue-dark);font-weight:800}
.uppa-header-actions{display:flex;align-items:center;gap:10px}
.uppa-cart-button{position:relative;border:1px solid #b7bdb6;background:#fff;border-radius:999px;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;color:var(--uppa-ink)}
.uppa-cart-count{position:absolute;right:-4px;top:-6px;background:var(--uppa-accent);color:#fff;font-size:11px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center}
.uppa-menu-toggle{display:none;border:1px solid rgba(83,101,127,.18);background:#fff;padding:10px 14px;border-radius:999px;font-weight:800;cursor:pointer}
.uppa-mobile-menu{display:none;border-top:1px solid var(--uppa-line);background:var(--uppa-paper);padding:14px 20px 20px}
.uppa-mobile-menu.open{display:block}
.uppa-mobile-menu a{display:block;padding:11px 0;font-weight:700}

/* Hero */
.uppa-hero{display:grid;grid-template-columns:1.08fr .92fr;min-height:590px;background:#edf0f4}
.uppa-hero-media{position:relative;overflow:hidden;min-height:590px}
.uppa-hero-media img{width:100%;height:100%;object-fit:cover}
.uppa-hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.14),transparent 55%)}
.uppa-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:58px 7vw 58px 54px}
.uppa-hero h1{font:clamp(42px,5.1vw,72px)/.98 Georgia,serif;margin:15px 0 22px;letter-spacing:-.035em}
.uppa-lead{font-size:18px;line-height:1.58;max-width:560px;color:#3f4957}
.uppa-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.uppa-price-line{margin-top:20px;font-size:13px;color:#505a53;line-height:1.5}

/* Facts */
.uppa-factbar{background:#fff;border-top:1px solid #e0e1dc;border-bottom:1px solid #e0e1dc}
.uppa-facts{display:grid;grid-template-columns:repeat(4,1fr)}
.uppa-fact{padding:24px 22px;border-right:1px solid #ecece7;display:flex;gap:14px;align-items:center}
.uppa-fact:last-child{border-right:0}
.uppa-icon{width:38px;height:38px;border:1px solid #cfd5cf;border-radius:12px;display:grid;place-items:center;background:#fafafa;font-weight:900;color:var(--uppa-blue)}
.uppa-fact strong{display:block;font:20px Georgia,serif}
.uppa-fact small{color:var(--uppa-muted)}

/* Cards */
.uppa-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.uppa-card{background:#fff;border:1px solid #e1e2dc;border-radius:var(--uppa-radius);overflow:hidden;box-shadow:0 8px 24px rgba(36,45,39,.06)}
.uppa-card img{width:100%;aspect-ratio:1.4;object-fit:cover}
.uppa-card-body{padding:24px}
.uppa-card-body h3{font:28px/1.1 Georgia,serif;margin:0 0 11px}
.uppa-card-body p{color:var(--uppa-muted);line-height:1.6;margin:0}
.uppa-benefits{background:var(--uppa-blue-soft);padding:54px 0}
.uppa-benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.uppa-benefit{background:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.7);padding:23px;border-radius:18px}
.uppa-benefit b{display:block;margin:12px 0 7px}
.uppa-benefit p{margin:0;color:#59655e;font-size:14px;line-height:1.5}

/* Product module */
.uppa-product-split{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:stretch}
.uppa-product-visual{background:#fff;border-radius:28px;overflow:hidden;border:1px solid #dedfd9;position:relative}
.uppa-product-visual img{width:100%;height:100%;min-height:540px;object-fit:cover}
.uppa-product-panel{background:var(--uppa-sand);border-radius:28px;padding:44px}
.uppa-product-panel h2{font:42px/1.05 Georgia,serif;margin:0 0 16px}
.uppa-price{font:42px Georgia,serif;color:var(--uppa-accent);margin:24px 0 8px}
.uppa-micro{font-size:13px;color:var(--uppa-muted);line-height:1.55}
.uppa-qty{display:flex;align-items:center;margin:22px 0}
.uppa-qty button,.uppa-qty input{width:48px;height:44px;border:1px solid #cfd2cc;background:#fff;text-align:center}
.uppa-qty button{cursor:pointer;font-size:20px}
.uppa-qty button:first-child{border-radius:10px 0 0 10px}.uppa-qty button:last-child{border-radius:0 10px 10px 0}
.uppa-product-add{width:100%}
.uppa-pay-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px;font-size:13px;color:#626b64}
.uppa-pay-pill{background:#fff;border:1px solid #d8dbd6;padding:5px 8px;border-radius:7px;font-weight:800}

/* Story / uses */
.uppa-story{display:grid;grid-template-columns:.9fr 1.1fr;gap:26px;align-items:stretch}
.uppa-story-copy{background:#fff;border:1px solid #e0e1da;border-radius:26px;padding:42px}
.uppa-story-copy h2{font:42px/1.05 Georgia,serif;margin-top:0}
.uppa-story-copy p{line-height:1.72;color:#4e5a52}
.uppa-story img{height:100%;min-height:440px;width:100%;object-fit:cover;border-radius:26px}
.uppa-uses{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.uppa-use-card{display:grid;grid-template-columns:190px 1fr;background:#fff;border:1px solid #e1e1da;border-radius:20px;overflow:hidden}
.uppa-use-card img{width:100%;height:100%;min-height:150px;object-fit:cover}
.uppa-use-card div{padding:28px}
.uppa-use-card h3{font:28px Georgia,serif;margin:0 0 8px}

/* Blog */
.uppa-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.uppa-blog-card{background:#fff;border:1px solid var(--uppa-line);border-radius:22px;overflow:hidden;box-shadow:0 8px 24px rgba(51,64,83,.06)}
.uppa-blog-card img{width:100%;height:210px;object-fit:cover}
.uppa-blog-cover-fallback{width:100%;height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--uppa-blue-soft),var(--uppa-sand));color:var(--uppa-blue-dark);letter-spacing:.16em;text-transform:uppercase}
.uppa-blog-cover-fallback span{font:34px/1 Georgia,serif;letter-spacing:.12em}
.uppa-blog-cover-fallback small{margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.22em}
.uppa-blog-card .uppa-card-body{padding:24px}
.uppa-blog-card h3{font:27px/1.08 Georgia,serif;margin:8px 0 10px}
.uppa-blog-card p{color:var(--uppa-muted);line-height:1.6;margin:0 0 15px}
.uppa-blog-date{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--uppa-blue-dark)}

/* Generic page */
.uppa-page-hero{background:var(--uppa-blue-soft);padding:68px 0}
.uppa-page-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.uppa-page-hero h1{font:58px/1 Georgia,serif;margin:12px 0 20px}
.uppa-page-hero img{width:100%;height:460px;object-fit:cover;border-radius:26px}
.uppa-content{padding:70px 0}
.uppa-content article{max-width:850px;margin:auto;font-size:17px;line-height:1.75}
.uppa-content h1,.uppa-content h2,.uppa-content h3{font-family:Georgia,"Times New Roman",serif}

/* Footer */
.uppa-site-footer{margin-top:72px;background:var(--uppa-blue-dark);color:#f2f5f8;padding:48px 0 30px}
.uppa-footer-grid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:34px}
.uppa-footer-grid h4{margin:0 0 14px;font-size:13px;text-transform:uppercase;letter-spacing:.12em}
.uppa-footer-grid a,.uppa-footer-grid p{display:block;color:#d6dde7;font-size:14px;line-height:1.7;margin:0}
.uppa-foot-brand{font:42px Georgia,serif;letter-spacing:.07em}
.uppa-footer-note{font-size:11px;color:#c6cfda;border-top:1px solid #607089;margin-top:32px;padding-top:20px;line-height:1.5}

/* Cart drawer */
.uppa-scrim{position:fixed;inset:0;background:rgba(34,42,54,.48);z-index:79;display:none}
.uppa-scrim.show{display:block}
.uppa-cart-drawer{position:fixed;top:0;right:-460px;width:min(440px,94vw);height:100vh;background:#fff;z-index:80;box-shadow:-20px 0 60px rgba(0,0,0,.18);transition:right .3s ease;display:flex;flex-direction:column}
.uppa-cart-drawer.open{right:0}
.admin-bar .uppa-cart-drawer{top:32px;height:calc(100vh - 32px)}
.uppa-drawer-head{padding:24px;border-bottom:1px solid #e3e3de;display:flex;justify-content:space-between;align-items:center}
.uppa-drawer-head button{border:0;background:#f0f1ed;width:38px;height:38px;border-radius:50%;cursor:pointer}
.uppa-mini-cart{padding:24px;flex:1;overflow:auto}
.uppa-mini-item{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px 0;border-bottom:1px solid #eee}
.uppa-mini-item img{width:70px;height:70px;object-fit:cover;border-radius:10px}
.uppa-mini-item-name{font-weight:800;margin-bottom:4px}
.uppa-mini-item-price{font-size:13px;color:var(--uppa-muted)}
.uppa-mini-qty{display:flex;margin-top:10px}
.uppa-mini-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.uppa-mini-qty{margin-top:0}
.uppa-mini-qty button,.uppa-mini-qty input{height:34px;border:1px solid #d6dbe2;background:#fff;display:grid;place-items:center}
.uppa-mini-qty button{width:36px;cursor:pointer}
.uppa-mini-qty input{width:54px;text-align:center;color:var(--uppa-ink);font:inherit;font-weight:800;padding:0 4px}
.uppa-mini-qty button:first-child{border-radius:8px 0 0 8px}.uppa-mini-qty button:last-child{border-radius:0 8px 8px 0}
.uppa-mini-remove{border:0;background:transparent;color:var(--uppa-muted);font:inherit;font-size:13px;font-weight:800;padding:5px 2px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.uppa-mini-remove:hover,.uppa-mini-remove:focus-visible{color:var(--uppa-blue-dark)}
.uppa-mini-remove:disabled{opacity:.45;cursor:wait}
.uppa-mini-item-total{font-weight:800}
.uppa-mini-empty{color:var(--uppa-muted)}
.uppa-drawer-footer{padding:24px;border-top:1px solid #e3e3de}
.uppa-drawer-total{display:flex;justify-content:space-between;font-weight:900;font-size:17px;margin-bottom:14px}
.uppa-drawer-footer .uppa-btn{width:100%}

/* Mobile bottom nav */
.uppa-bottom-nav{display:none}
.uppa-horse-icon{display:grid;place-items:center;width:19px;height:19px;color:currentColor}
.uppa-horse-icon svg{width:19px;height:19px;fill:currentColor}

/* WooCommerce basic */
.woocommerce .button,.woocommerce button.button,.woocommerce input.button,.woocommerce a.button,.woocommerce #respond input#submit{background:var(--uppa-blue);color:#fff;border-radius:10px;font-weight:800}
.woocommerce .button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,.woocommerce a.button:hover{background:var(--uppa-blue-dark);color:#fff}
.woocommerce-message,.woocommerce-info{border-top-color:var(--uppa-blue)}
.woocommerce-message::before,.woocommerce-info::before{color:var(--uppa-blue)}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--uppa-accent)}
.uppa-wc-wrap{padding:60px 0}

@media(max-width:900px){
  body.admin-bar .uppa-site-header{top:46px}
  .uppa-menu{display:none}.uppa-menu-toggle{display:block}
  .uppa-hero{grid-template-columns:1fr;min-height:auto}.uppa-hero-media{height:48vh;min-height:320px}.uppa-hero-copy{padding:36px 24px 42px}
  .uppa-facts{grid-template-columns:1fr 1fr}.uppa-fact:nth-child(2){border-right:0}
  .uppa-steps,.uppa-benefit-grid{grid-template-columns:1fr 1fr}
  .uppa-product-split,.uppa-story,.uppa-page-hero-grid{grid-template-columns:1fr}
  .uppa-blog-grid{grid-template-columns:1fr 1fr}
  .uppa-footer-grid{grid-template-columns:1fr 1fr}
  .uppa-bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--uppa-blue-dark);color:#fff;padding:7px 6px calc(7px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.08)}
  .uppa-bottom-nav a,.uppa-bottom-nav button{background:none;border:0;color:inherit;padding:6px 4px;display:grid;gap:4px;justify-items:center;font-size:10px;cursor:pointer}
  .uppa-bottom-nav .uppa-nav-icon{font-size:18px;line-height:1}
  body{padding-bottom:72px}
}
@media(max-width:620px){
  .uppa-wrap{width:min(100% - 26px,var(--uppa-max))}
  .uppa-nav{height:64px}.uppa-wordmark{font-size:32px}.uppa-tagline{display:none}
  .uppa-hero-media{height:42vh;min-height:300px}.uppa-hero-copy{padding:26px 16px 30px}
  .uppa-hero h1{font-size:40px}.uppa-lead{font-size:16px}.uppa-actions{display:grid;grid-template-columns:1fr}.uppa-btn{width:100%}
  .uppa-facts,.uppa-steps,.uppa-benefit-grid,.uppa-uses,.uppa-footer-grid,.uppa-blog-grid{grid-template-columns:1fr}
  .uppa-fact{border-right:0;border-bottom:1px solid #eee}
  .uppa-section{padding:56px 0}.uppa-section-head{display:block}.uppa-section-head h2{font-size:36px}.uppa-section-head p{margin-top:12px}
  .uppa-product-visual img{min-height:360px}.uppa-product-panel,.uppa-story-copy{padding:26px}.uppa-product-panel h2,.uppa-story-copy h2{font-size:34px}
  .uppa-use-card{grid-template-columns:110px 1fr}.uppa-use-card div{padding:22px}
  .uppa-page-hero{padding:42px 0}.uppa-page-hero h1{font-size:44px}.uppa-page-hero img{height:300px}
  .uppa-cart-drawer{width:100vw}.uppa-mini-item{grid-template-columns:64px minmax(0,1fr)}.uppa-mini-item-total{grid-column:2}.uppa-mini-controls{grid-column:2}
}


/* 0.1.1 legacy-site isolation fixes */
.uppa-brand{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;color:var(--uppa-ink)!important;line-height:1!important;min-width:150px!important}
.uppa-brand .uppa-wordmark{display:block!important;color:var(--uppa-ink)!important;opacity:1!important}
.uppa-brand .uppa-tagline{display:block!important;color:var(--uppa-muted)!important;opacity:1!important}
.uppa-menu{list-style:none!important}
.uppa-menu a{color:var(--uppa-ink)!important;text-decoration:none!important}
body.home main,body.front-page main{margin:0!important;padding:0!important;max-width:none!important}


/* 0.2.0 – legacy page isolation + WooCommerce visual integration */
.uppa-legacy-clean .elementor,
.uppa-legacy-clean .elementor-location-header,
.uppa-legacy-clean .elementor-location-footer{max-width:none!important}
.uppa-page-shell{padding:64px 0 80px}
.uppa-page-card{max-width:940px;margin:0 auto;background:#fff;border:1px solid var(--uppa-line);border-radius:24px;padding:36px;box-shadow:0 8px 24px rgba(51,64,83,.05)}
.uppa-page-card h1{font:48px/1.05 Georgia,serif;margin:0 0 20px}
.uppa-page-card h2{font:32px/1.12 Georgia,serif;margin:34px 0 12px}
.uppa-page-card h3{font:24px/1.18 Georgia,serif;margin:28px 0 10px}
.uppa-page-card p,.uppa-page-card li{line-height:1.72;color:#46515e}
.uppa-page-card a{text-decoration:underline;text-decoration-color:rgba(112,128,153,.45);text-underline-offset:3px}
.uppa-page-card .uppa-btn{text-decoration:none}
.uppa-legal-content .elementor-section,.uppa-legal-content .elementor-container,.uppa-legal-content .elementor-column,.uppa-legal-content .elementor-widget-wrap,.uppa-legal-content .elementor-widget,.uppa-legal-content .elementor-element{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;background:none!important;box-shadow:none!important;border:0!important;position:static!important;transform:none!important}
.uppa-legal-content .elementor-widget:not(:last-child){margin-bottom:0!important}
.uppa-legal-content img{max-width:100%;height:auto}

/* WooCommerce / Blocks */
.uppa-commerce-hero{background:var(--uppa-blue-soft);padding:48px 0 34px;border-bottom:1px solid var(--uppa-line)}
.uppa-commerce-hero h1{font:48px/1.05 Georgia,serif;margin:8px 0 10px}
.uppa-commerce-hero p{margin:0;color:var(--uppa-muted);line-height:1.6}
.uppa-commerce-shell{padding:44px 0 80px}
.uppa-commerce-card{background:#fff;border:1px solid var(--uppa-line);border-radius:24px;padding:28px;box-shadow:0 8px 24px rgba(51,64,83,.05)}
.uppa-commerce-card .wp-block-woocommerce-checkout,
.uppa-commerce-card .wp-block-woocommerce-cart{margin:0!important;max-width:none!important}
.wc-block-components-button,.wp-element-button,.wc-block-cart__submit-button{border-radius:12px!important;background:var(--uppa-blue)!important;color:#fff!important;min-height:48px!important;font-weight:800!important}
.wc-block-components-button:hover,.wp-element-button:hover,.wc-block-cart__submit-button:hover{background:var(--uppa-blue-dark)!important}
.wc-block-components-text-input input,.wc-block-components-combobox .components-combobox-control__input,.woocommerce input.input-text,.woocommerce select,.woocommerce textarea{border:1px solid #ccd4df!important;border-radius:10px!important;background:#fff!important;min-height:46px!important}
.wc-block-components-order-summary,.wc-block-checkout__sidebar,.wc-block-components-totals-wrapper{border-color:var(--uppa-line)!important}
.wc-block-checkout__actions_row{padding-top:18px!important}
.woocommerce div.product{background:#fff;border:1px solid var(--uppa-line);border-radius:24px;padding:28px;box-shadow:0 8px 24px rgba(51,64,83,.05)}
.woocommerce div.product .product_title{font:44px/1.05 Georgia,serif;color:var(--uppa-ink)}
.woocommerce div.product div.images img{border-radius:18px}
.woocommerce div.product form.cart .button{min-height:48px;padding:0 24px}
.woocommerce .quantity .qty{min-height:46px;border:1px solid #ccd4df;border-radius:9px}
.woocommerce-tabs,.related.products{margin-top:42px}
.woocommerce .related.products h2,.woocommerce-tabs h2{font-family:Georgia,serif}

/* Blog page */
.uppa-blog-hero{background:linear-gradient(135deg,var(--uppa-blue-dark),var(--uppa-blue));color:#fff;padding:72px 0 58px}
.uppa-blog-hero .uppa-kicker{color:#dce5ef}
.uppa-blog-hero h1{font:56px/1.02 Georgia,serif;margin:12px 0 18px}
.uppa-blog-hero p{max-width:700px;color:#edf2f8;line-height:1.65;margin:0}

@media(max-width:620px){
  .uppa-page-card{padding:24px 20px;border-radius:20px}
  .uppa-page-card h1{font-size:38px}
  .uppa-page-card h2{font-size:28px}
  .uppa-commerce-hero{padding:34px 0 26px}.uppa-commerce-hero h1{font-size:38px}
  .uppa-commerce-shell{padding:26px 0 56px}.uppa-commerce-card{padding:18px 14px;border-radius:18px}
  .uppa-blog-hero{padding:52px 0 42px}.uppa-blog-hero h1{font-size:42px}
  .woocommerce div.product{padding:16px;border-radius:18px}.woocommerce div.product .product_title{font-size:36px}
}


/* 0.2.1 – stable navigation + explicit quantity controls */
@media(min-width:901px){
  .uppa-nav{display:grid!important;grid-template-columns:230px minmax(0,1fr) 58px;align-items:center;column-gap:22px}
  .uppa-menu{display:flex!important;justify-content:center!important;align-items:center!important;gap:24px!important;white-space:nowrap}
  .uppa-header-actions{justify-self:end;min-width:58px;display:flex;justify-content:flex-end}
  .uppa-brand{min-width:230px!important}
}
.uppa-product-qty-minus,.uppa-product-qty-plus,
.uppa-mini-qty-btn{
  color:var(--uppa-ink)!important;background:#fff!important;border-color:#cfd6df!important;
  font-size:18px!important;font-weight:900!important;line-height:1!important;
  opacity:1!important;text-indent:0!important;text-shadow:none!important;
}
.uppa-product-qty-minus:hover,.uppa-product-qty-plus:hover,.uppa-mini-qty-btn:hover{background:var(--uppa-blue-soft)!important;color:var(--uppa-blue-dark)!important}
.uppa-product-qty-minus:disabled,.uppa-product-qty-plus:disabled,.uppa-mini-qty-btn:disabled{opacity:.45!important}
.uppa-product-qty-input{color:var(--uppa-ink)!important;background:#fff!important;text-align:center!important}

/* 0.2.4 QA fixes: product page, about page, cart controls, Woo live-region cleanup */
.uppa-product-hero{background:var(--uppa-blue-soft);padding:56px 0 64px}
.uppa-product-page-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:34px;align-items:stretch}
.uppa-product-page-media{background:#fff;border:1px solid var(--uppa-line);border-radius:26px;padding:14px;box-shadow:0 8px 24px rgba(51,64,83,.05)}
.uppa-product-page-main{width:100%;height:560px;object-fit:cover;border-radius:18px}
.uppa-product-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.uppa-product-thumbs button{border:1px solid var(--uppa-line);background:#fff;border-radius:12px;padding:0;overflow:hidden;cursor:pointer}
.uppa-product-thumbs button:hover,.uppa-product-thumbs button:focus-visible{outline:2px solid var(--uppa-blue);outline-offset:2px}
.uppa-product-thumbs img{width:100%;height:92px;object-fit:cover}
.uppa-product-page-panel{background:var(--uppa-paper);border:1px solid var(--uppa-line);border-radius:26px;padding:42px;display:flex;flex-direction:column;justify-content:center}
.uppa-product-page-panel h1{font:52px/1.02 Georgia,serif;margin:12px 0 18px;letter-spacing:-.025em}
.uppa-product-page-panel .uppa-product-add{width:100%}
.uppa-about-content{font-size:16px;line-height:1.75}
.uppa-about-content>p:first-child{margin-top:0}
.uppa-about-content img{max-width:min(100%,560px);height:auto;border-radius:22px;margin:0 0 28px}
.uppa-mini-qty button{color:var(--uppa-ink)!important;background:#f8fafc!important;font-weight:900!important;font-size:18px!important;line-height:1!important}
.uppa-mini-qty button:hover{background:var(--uppa-blue-soft)!important}

/* WooCommerce Blocks can inject snackbar/live regions after the theme footer.
   On regular content/product pages UPPA uses its own cart drawer, so these
   background confirmations must not create visible layout or extra scroll. */
body:not(.woocommerce-cart):not(.woocommerce-checkout) .components-snackbar-list,
body:not(.woocommerce-cart):not(.woocommerce-checkout) .wc-block-components-notice-snackbar-list,
body:not(.woocommerce-cart):not(.woocommerce-checkout) .wc-block-components-notices__snackbar,
body:not(.woocommerce-cart):not(.woocommerce-checkout) .uppa-woo-live-hidden{display:none!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}

@media(max-width:900px){
  .uppa-product-page-grid{grid-template-columns:1fr}
  .uppa-product-page-main{height:460px}
}
@media(max-width:620px){
  .uppa-product-hero{padding:28px 0 42px}
  .uppa-product-page-media{padding:10px;border-radius:20px}
  .uppa-product-page-main{height:360px;border-radius:14px}
  .uppa-product-thumbs{grid-template-columns:repeat(4,1fr);gap:7px}
  .uppa-product-thumbs img{height:68px}
  .uppa-product-page-panel{padding:26px 20px;border-radius:20px}
  .uppa-product-page-panel h1{font-size:39px}
  .uppa-about-content img{border-radius:18px}
}


/* 0.2.6 QA – staging stabilization */
.uppa-checkout-link.is-disabled,
.uppa-checkout-link[aria-disabled="true"]{
  opacity:.48!important;
  pointer-events:none!important;
  cursor:not-allowed!important;
  box-shadow:none!important;
  transform:none!important;
}
/* Keep the cart drawer below WordPress' toolbar at both toolbar breakpoints. */
@media screen and (max-width:782px){
  body.admin-bar .uppa-site-header{top:46px}
  body.admin-bar .uppa-cart-drawer{top:46px;height:calc(100vh - 46px)}
}
/* Checkout/cart product image shell; image source is injected from functions.php
   so the theme can use a clean product image without editing WooCommerce data. */
.uppa-commerce-card .wc-block-components-order-summary-item__image,
.uppa-commerce-card .wc-block-cart-item__image{
  background-color:#edf1f5;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  border-radius:10px;
  overflow:hidden;
}
/* Store API replaces checkout/cart images server-side on WC 9.6+. Keep the
   real image visible; JS remains only as a fallback for client re-renders. */
.uppa-commerce-card .wc-block-components-order-summary-item__image img,
.uppa-commerce-card .wc-block-cart-item__image img,
.uppa-commerce-card .wc-block-components-product-image img{opacity:1!important}


/* 0.2.6 QA – mobile review hardening */
.uppa-cookie-settings{z-index:75!important}
.uppa-cart-open .uppa-cookie-settings{display:none!important}
@media(max-width:900px){
  /* Checkout is a focused flow: avoid a second fixed navigation competing
     with payment controls and reclaim the reserved bottom padding. */
  body.woocommerce-checkout .uppa-bottom-nav,
  body.woocommerce-order-received .uppa-bottom-nav{display:none!important}
  body.woocommerce-checkout,
  body.woocommerce-order-received{padding-bottom:0!important}

  /* The normal sticky header is useful while browsing, but it obscures fields
     on the narrow checkout viewport. */
  body.woocommerce-checkout .uppa-site-header,
  body.woocommerce-order-received .uppa-site-header{position:relative!important;top:auto!important}

  /* WPLP Cookie Settings: keep it above the fixed customer navigation on normal
     pages, but near the viewport edge when checkout navigation is removed. */
  .uppa-cookie-settings{bottom:calc(84px + env(safe-area-inset-bottom))!important;right:12px!important;max-width:calc(100vw - 24px)!important}
  body.woocommerce-checkout .uppa-cookie-settings,
  body.woocommerce-order-received .uppa-cookie-settings{bottom:12px!important}
}
@media screen and (max-width:782px){
  /* WordPress' mobile admin toolbar consumes large vertical space and its wide
     menu labels can overlap the store header. Hide it only on the front end at
     mobile widths; wp-admin itself is unaffected. */
  body.admin-bar #wpadminbar{display:none!important}
  html[lang]{margin-top:0!important}
  body.admin-bar{margin-top:0!important}
  body.admin-bar .uppa-site-header{top:0!important}
  body.admin-bar .uppa-cart-drawer{top:0!important;height:100vh!important}
}


/* 0.2.8 QA – mobile async UI stabilization */
@media(max-width:900px){
  /* Some plugin/global button rules can wash out the mobile menu label. */
  .uppa-menu-toggle{
    color:var(--uppa-ink)!important;
    -webkit-text-fill-color:var(--uppa-ink)!important;
    background:#fff!important;
    opacity:1!important;
    text-shadow:none!important;
  }

  /* WPLP injects the revoke/settings control asynchronously. Once marked by
     theme.js, keep it safely above Android/iOS bottom navigation. */
  .uppa-cookie-settings{
    position:fixed!important;
    right:12px!important;
    bottom:calc(108px + env(safe-area-inset-bottom))!important;
    z-index:58!important;
    max-width:calc(100vw - 24px)!important;
  }
  body.woocommerce-checkout .uppa-cookie-settings,
  body.woocommerce-order-received .uppa-cookie-settings{
    bottom:24px!important;
  }
  body.uppa-cookie-panel-open .uppa-cookie-settings{display:none!important}
  body.uppa-cookie-panel-open .uppa-bottom-nav{display:none!important}
  body.uppa-cookie-panel-open{padding-bottom:0!important}

  /* Checkout Blocks can briefly report zero gateways while WooPayments/Swish
     hydrate over a slow staging connection. Suppress only that transient error
     during a bounded boot window and show a neutral loading state instead. */
  body.woocommerce-checkout.uppa-payment-booting .wc-block-checkout__payment-method .wc-block-components-notice-banner.is-error,
  body.woocommerce-checkout.uppa-payment-booting .wc-block-checkout__payment-method .wc-block-components-notice-banner[role="alert"]{
    display:none!important;
  }
  body.woocommerce-checkout.uppa-payment-booting .wc-block-checkout__payment-method::before{
    content:"Laddar betalningsalternativ…";
    display:block;
    padding:16px 18px;
    margin:0 0 12px;
    border:1px solid var(--uppa-line);
    border-radius:12px;
    background:#f7f9fc;
    color:var(--uppa-muted);
    font-weight:700;
  }
}

/* 0.2.8 QA – mobile cart, cookie control, checkout boot, clean thumbnail */
/* Checkout/Cart blocks: the shell background is the canonical clean UPPA image.
   Keep the underlying <img> for layout/accessibility but never expose legacy
   campaign artwork. */
.uppa-commerce-card .wc-block-components-order-summary-item__image img,
.uppa-commerce-card .wc-block-cart-item__image img,
.uppa-commerce-card .wc-block-components-product-image img,
.uppa-commerce-card .wc-block-checkout__order-summary img{
  opacity:0!important;
}
.uppa-commerce-card .wc-block-components-order-summary-item__image a,
.uppa-commerce-card .wc-block-cart-item__image a{
  pointer-events:auto!important;
  cursor:pointer!important;
}

/* The revoke/settings control is moved into this footer slot on mobile instead
   of floating over checkout/cart controls. */
.uppa-cookie-settings-slot{margin-top:10px}
.uppa-cookie-settings-slot:empty{display:none}
.uppa-cookie-settings-slot .uppa-cookie-settings{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  margin:8px 0 0!important;
  max-width:100%!important;
  width:auto!important;
  z-index:auto!important;
}

@media(max-width:900px){
  /* Dynamic viewport units match the visible browser viewport on Android/iOS,
     keeping the drawer footer/CTA visible without an extra scroll. */
  .uppa-cart-drawer{
    top:0!important;
    height:100vh!important;
    height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
  }
  .uppa-mini-cart{min-height:0!important;overflow:auto!important}
  .uppa-drawer-footer{
    flex:0 0 auto!important;
    position:relative!important;
    z-index:3!important;
    background:#fff!important;
    padding:18px 20px calc(18px + env(safe-area-inset-bottom))!important;
  }
  body.uppa-cart-open .uppa-bottom-nav{display:none!important}

  /* On mobile the cookie control belongs to the footer, never as a floating
     overlay. This overrides WPLP's delayed inline positioning once theme.js
     moves the real button into the slot. */
  .uppa-cookie-settings-slot .uppa-cookie-settings{
    display:inline-flex!important;
    align-items:center!important;
    position:static!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
  }

  /* The native red no-gateway notice is hidden directly by JS while booting.
     This pseudo-element is the only customer-facing state during that window. */
  body.woocommerce-checkout.uppa-payment-booting .wc-block-checkout__payment-method::before{
    content:"Laddar betalningsalternativ…";
  }
}

/* 0.2.8: prevent the transient WooCommerce no-gateway notice from flashing
   before theme.js has had time to inspect the exact message. The boot class is
   removed immediately when a real payment radio appears and after 20 s at the
   latest, so genuine errors are never hidden indefinitely. */
body.woocommerce-checkout.uppa-payment-booting .uppa-commerce-card .wc-block-components-notice-banner.is-error,
body.woocommerce-checkout.uppa-payment-booting .uppa-commerce-card [role="alert"]{
  display:none!important;
}

/* 0.2.9 QA – deterministic cart scroll lock + single cookie control */
html.uppa-cart-scroll-locked,
html.uppa-cart-scroll-locked body,
body.uppa-cart-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
.uppa-cart-drawer,
.uppa-mini-cart{
  overscroll-behavior:contain;
}

/* Hide every asynchronous WPLP revoke/source control. A single stable proxy
   in the UPPA footer opens the real plugin panel programmatically. */
.uppa-cookie-settings-source{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.uppa-cookie-settings-proxy{
  display:none;
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:none;
  color:inherit;
  font:inherit;
  line-height:1.65;
  text-align:left;
  padding:0;
  margin:0;
  cursor:pointer;
}
.uppa-cookie-settings-proxy.is-ready{display:block}
.uppa-cookie-settings-proxy:hover,
.uppa-cookie-settings-proxy:focus-visible{text-decoration:underline}
body.uppa-cookie-panel-open .uppa-cookie-settings-proxy{visibility:hidden}

/* Retire the 0.2.8 mobile slot/floating strategy if old markup survives a
   browser cache during a theme update. */
.uppa-cookie-settings-slot{display:none!important}

@media(max-width:900px){
  html.uppa-cart-scroll-locked{height:100%;touch-action:none}
  body.uppa-cart-open{touch-action:none}
  .uppa-cart-drawer{overscroll-behavior:contain!important}
  .uppa-mini-cart{-webkit-overflow-scrolling:touch;overscroll-behavior:contain!important}
}


/* 0.2.11 QA – final cart/cookie stabilization */
/* The drawer close control must remain readable even when WooCommerce/plugin
   button styles inject light text or opacity. */
.uppa-cart-close,
.uppa-drawer-head .uppa-cart-close,
.uppa-drawer-head button.uppa-cart-close{
  color:var(--uppa-ink)!important;
  -webkit-text-fill-color:var(--uppa-ink)!important;
  background:#eef0ec!important;
  opacity:1!important;
  font-size:24px!important;
  font-weight:700!important;
  line-height:1!important;
  display:grid!important;
  place-items:center!important;
  text-shadow:none!important;
}

/* 0.2.9's proxy is retired. WPLP's own revoke/settings control is the only
   customer-facing control and is repositioned instead of duplicated. */
.uppa-cookie-settings-proxy{display:none!important}
.uppa-cookie-settings-source{display:initial!important;visibility:visible!important;pointer-events:auto!important}
.uppa-cookie-settings-native{
  position:fixed!important;
  left:16px!important;
  right:auto!important;
  bottom:16px!important;
  top:auto!important;
  transform:none!important;
  margin:0!important;
  z-index:76!important;
  max-width:calc(100vw - 32px)!important;
}
body.uppa-cart-open .uppa-cookie-settings-native,
body.uppa-cookie-panel-open .uppa-cookie-settings-native{display:none!important}

/* Prevent global smooth scrolling from animating the cart close restoration. */
html.uppa-restoring-cart-scroll{scroll-behavior:auto!important}

@media(max-width:900px){
  .uppa-cookie-settings-native{
    left:12px!important;
    right:auto!important;
    bottom:calc(82px + env(safe-area-inset-bottom))!important;
    max-width:calc(100vw - 24px)!important;
  }
  body.woocommerce-checkout .uppa-cookie-settings-native,
  body.woocommerce-order-received .uppa-cookie-settings-native{
    bottom:16px!important;
  }
}
/* 0.3.0 QA – homepage content/conversion review candidate */
.uppa-final-cta{
  padding:64px 0;
  background:var(--uppa-blue-dark);
  color:#fff;
}
.uppa-final-cta .uppa-kicker{color:#dce5ef}
.uppa-final-cta-inner{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:42px;
}
.uppa-final-cta h2{
  font:46px/1.05 Georgia,serif;
  letter-spacing:-.025em;
  margin:10px 0 12px;
}
.uppa-final-cta p{margin:0;color:#e6ebf1;font-size:17px;line-height:1.6}
.uppa-trust-line{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:22px;color:#eef2f6;font-size:14px}
.uppa-trust-line span{position:relative}
.uppa-trust-line span+span:before{content:"·";position:absolute;left:-14px;color:#bac6d5}
.uppa-final-cta-buy{display:flex;align-items:center;gap:18px;white-space:nowrap}
.uppa-final-price{font:38px Georgia,serif;color:#fff}
.uppa-final-cta .uppa-btn{background:#fff;color:var(--uppa-blue-dark);box-shadow:none}
.uppa-final-cta .uppa-btn:hover{background:#f3f6f9;color:var(--uppa-blue-dark)}
.uppa-blog-more{display:flex;justify-content:center;margin-top:30px}

@media(max-width:900px){
  .uppa-final-cta{padding:48px 0}
  .uppa-final-cta-inner{grid-template-columns:1fr;gap:28px}
  .uppa-final-cta h2{font-size:38px}
  .uppa-final-cta-buy{justify-content:space-between;white-space:normal;flex-wrap:wrap}
  .uppa-final-price{font-size:34px}
  .uppa-trust-line{display:grid;gap:8px}
  .uppa-trust-line span+span:before{display:none}
  .uppa-final-cta-buy .uppa-btn{width:100%}
}


/* 0.3.1 QA – review-candidate stabilization */

/* WPLP injects this native revoke trigger asynchronously and positions it
   inline. Keep it available to JavaScript, but never let it float over UPPA UI.
   The footer proxy below is the single customer-facing cookie control. */
#gdpr-cookie-consent-show-again,
.uppa-cookie-settings-native,
.uppa-cookie-settings-source{
  position:fixed!important;
  left:-10000px!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  width:1px!important;
  height:1px!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
  transform:none!important;
  z-index:-1!important;
}
.uppa-cookie-settings-proxy{
  display:inline-flex!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  border:0!important;
  background:transparent!important;
  color:#d6dde7!important;
  -webkit-text-fill-color:#d6dde7!important;
  font:inherit!important;
  font-size:14px!important;
  line-height:1.7!important;
  padding:0!important;
  margin:0!important;
  cursor:pointer!important;
  text-align:left!important;
}
.uppa-cookie-settings-proxy:hover,
.uppa-cookie-settings-proxy:focus-visible{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-decoration:underline!important;
  text-underline-offset:3px;
}
.uppa-cookie-settings-proxy[aria-disabled="true"]{
  opacity:.58!important;
  cursor:wait!important;
}
body.uppa-cookie-panel-open .uppa-cookie-settings-proxy{
  visibility:hidden!important;
}

/* The 0.3.0 CTA must never inherit a pale legacy/builder style. */
.uppa-final-cta{
  background:var(--uppa-blue-dark)!important;
  color:#fff!important;
}
.uppa-final-cta h2,
.uppa-final-cta .uppa-final-price{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
.uppa-final-cta .uppa-kicker{
  color:#dce5ef!important;
  -webkit-text-fill-color:#dce5ef!important;
  opacity:1!important;
}
.uppa-final-cta p,
.uppa-final-cta .uppa-trust-line,
.uppa-final-cta .uppa-trust-line span{
  color:#e6ebf1!important;
  -webkit-text-fill-color:#e6ebf1!important;
  opacity:1!important;
}
.uppa-final-cta .uppa-btn{
  background:#fff!important;
  color:var(--uppa-blue-dark)!important;
  -webkit-text-fill-color:var(--uppa-blue-dark)!important;
  opacity:1!important;
}

@media(max-width:620px){
  .uppa-final-cta{
    background:var(--uppa-blue-dark)!important;
  }
  .uppa-final-cta h2{font-size:38px!important}
}

/* UPPA Commerce: legal cancellation callout */
.uppa-legal-cancel{margin-top:32px;padding-top:28px;border-top:1px solid var(--uppa-line)}
.uppa-legal-cancel h2{font:30px/1.1 Georgia,"Times New Roman",serif;margin:0 0 12px}
.uppa-legal-cancel p{max-width:720px}


/* 0.3.6 QA – stabilization */
.uppa-broken-media{display:none!important}
figure.uppa-broken-media{margin:0!important;padding:0!important}
.uppa-pagination{margin-top:34px;display:flex;justify-content:center}
.uppa-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;margin:0 4px;padding:0 10px;border:1px solid #d9dee6;border-radius:10px;background:#fff;color:var(--uppa-ink);text-decoration:none}
.uppa-pagination .page-numbers.current{background:var(--uppa-blue);border-color:var(--uppa-blue);color:#fff}
.uppa-pagination .page-numbers:hover{border-color:var(--uppa-blue)}


/* 0.3.7 QA – faster quantity editing in the cart drawer */
.uppa-mini-qty-input::-webkit-inner-spin-button,.uppa-mini-qty-input::-webkit-outer-spin-button{margin:0}
@media(max-width:620px){
  .uppa-mini-controls{gap:8px}
  .uppa-mini-qty input{width:58px}
}


/* 0.3.8 QA – clearer checkout quantity and free-shipping threshold */
.uppa-checkout-shipping-note{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 18px;padding:14px 16px;border:1px solid var(--uppa-line);border-radius:12px;background:var(--uppa-blue-soft);color:var(--uppa-ink);font-size:14px;line-height:1.45}
.uppa-checkout-shipping-note strong{font-weight:800}
.uppa-checkout-shipping-note span{color:var(--uppa-muted);text-align:right}
@media(max-width:700px){.uppa-checkout-shipping-note{display:block}.uppa-checkout-shipping-note span{display:block;text-align:left;margin-top:4px}}
