/*
Theme Name: Optima Health
Theme URI: https://optimahealthbd.com
Author: Optima Health
Author URI: https://optimahealthbd.com
Description: Optima Health — bilingual (EN/BN) single-page landing theme for FDA-registered, Eurofins-tested supplements. Ported from the "Optima Home" Claude Design.
Version: 1.2.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: optima-health
*/

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--o-text);font-family:'Hanken Grotesk',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
::selection{background:var(--o-gold);color:var(--o-navy)}
.bn{display:none}
[data-lang="bn"] .en{display:none}
[data-lang="bn"] .bn{display:inline}
.biln{font-family:'Hind Siliguri',sans-serif}
@keyframes omarq{to{transform:translateX(-50%)}}
@keyframes opulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.45);opacity:.45}}
@keyframes ofade{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.oReveal{opacity:0}
.oReveal.in{animation:ofade 1.3s cubic-bezier(.16,.8,.24,1) forwards}
/* Elementor editor preview: show reveal elements without waiting for JS */
.elementor-editor-active .oReveal,body.elementor-editor-active .oReveal{opacity:1 !important}
.oMarq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.oTrack{display:flex;width:max-content;animation:omarq 40s linear infinite}
.oCard{transition:transform .65s cubic-bezier(.16,.8,.24,1),box-shadow .65s cubic-bezier(.16,.8,.24,1),border-color .5s}
.oCard:hover{transform:translateY(-7px);box-shadow:0 34px 70px -30px rgba(var(--o-navy-rgb),.42);border-color:var(--o-gold) !important}
.oImgWrap{overflow:hidden}
.oImg{transition:transform 1.4s cubic-bezier(.16,.8,.24,1)}
.oCard:hover .oImg{transform:scale(1.06)}
.oBtnGold{transition:background .45s,border-color .45s,transform .45s cubic-bezier(.16,.8,.24,1),box-shadow .45s}
.oBtnGold:hover{background:var(--o-gold-dark);border-color:var(--o-gold-dark);transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(var(--o-gold-rgb),.55)}
.oBtnGhostL:hover{background:rgba(var(--o-gold-rgb),.12)}
.oBtnGhostD{transition:background .45s,border-color .45s}
.oBtnGhostD:hover{background:rgba(var(--o-gold-rgb),.14);border-color:rgba(var(--o-gold-rgb),.9)}
.oNavLink{position:relative;transition:color .35s}
.oNavLink:after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:0;background:var(--o-gold);transition:width .5s cubic-bezier(.16,.8,.24,1)}
.oNavLink:hover:after{width:100%}
.oLink{transition:color .35s}.oLink:hover{color:var(--o-gold)}
input,select,textarea{font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--o-gold);box-shadow:0 0 0 3px rgba(var(--o-gold-rgb),.14)}
.oFaq{border-bottom:1px solid #E6E7EB}
.oFaq summary{list-style:none;cursor:pointer}
.oFaq summary::-webkit-details-marker{display:none}
.oPlus{position:relative;transition:transform .4s cubic-bezier(.16,.8,.24,1)}
.oPlus:before,.oPlus:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--o-gold);border-radius:1px}
.oPlus:before{width:11px;height:1.6px}
.oPlus:after{width:1.6px;height:11px}
.oFaq[open] .oPlus{transform:rotate(45deg)}
.oWA{transition:transform .5s cubic-bezier(.16,.8,.24,1),box-shadow .5s}
.oWA:hover{transform:scale(1.07);box-shadow:0 16px 34px -8px rgba(37,211,102,.5)}
.oSplit{display:grid;grid-template-columns:1.05fr .95fr;gap:72px;align-items:center}
.oFormSplit{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:start}
.oProducts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.oCerts{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.oFootGrid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.3fr;gap:48px}
.oField2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.oHamb{display:none}
.oLangBtn[data-active="1"]{background:var(--o-navy) !important;color:#fff !important}
@media(max-width:920px){.oSplit,.oFormSplit{grid-template-columns:1fr;gap:40px}.oCerts{grid-template-columns:1fr 1fr}.oFootGrid{grid-template-columns:1fr 1fr;gap:36px}}
@media(max-width:860px){.oDeskNav{display:none !important}.oHamb{display:inline-flex !important}.oHeroDeco{display:none !important}.oHeroImg{opacity:.45}}
@media(max-width:560px){.oCerts,.oField2{grid-template-columns:1fr}.oFootGrid{grid-template-columns:1fr}.oHeroPad{padding-left:24px !important;padding-right:24px !important}}

/* ---- WooCommerce ---- */
.optima-soon{font:600 .95rem 'Schibsted Grotesk';color:var(--o-gold)}
.oShopHead{position:relative;background:linear-gradient(152deg,var(--o-navy-dark),var(--o-navy) 60%,var(--o-navy-light));overflow:hidden}
.oShopHead:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(var(--o-gold-rgb),.16) 1px,transparent 1px);background-size:26px 26px;opacity:.5;pointer-events:none}
.oWrapMain{max-width:1240px;margin:0 auto;padding:0 40px}
.oWoo woocommerce-message,.oWoo .woocommerce-info,.oWoo .woocommerce-error{list-style:none;border-top:3px solid var(--o-gold);background:var(--o-grey);border-radius:8px;padding:14px 18px;margin:0 0 24px;font:400 .95rem 'Hanken Grotesk';color:var(--o-navy)}
.oWoo .woocommerce-result-count{font:400 .9rem 'Hanken Grotesk';color:#5B6478;margin:0}
.oWoo .woocommerce-ordering select{border:1px solid #E6E7EB;border-radius:7px;padding:9px 12px;font:500 .85rem 'Hanken Grotesk';color:var(--o-navy);background:#fff}
.oPager{display:flex;gap:8px;justify-content:center;margin-top:46px}
.oPager a,.oPager span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border:1px solid #E6E7EB;border-radius:8px;background:#fff;font:600 .9rem 'Hanken Grotesk';color:var(--o-navy)}
.oPager .current{background:var(--o-navy);color:#fff;border-color:var(--o-navy)}
.oQty input{width:72px;border:1.5px solid #E0DED5;border-radius:8px;padding:11px 12px;font:500 .95rem 'Hanken Grotesk';color:var(--o-text);text-align:center}
.oRelated{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}
.oProductDesc h4{margin:26px 0 10px;font:600 1.08rem 'Schibsted Grotesk';color:var(--o-navy)}
.oProductDesc h4:first-child{margin-top:0}
.oProductDesc p{margin:0 0 14px}
.oProductDesc ul{margin:0 0 14px;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.oProductDesc ul li{position:relative;padding-left:24px;font:400 .98rem/1.45 'Hanken Grotesk';color:#3a4154}
.oProductDesc ul li:before{content:"";position:absolute;left:0;top:7px;width:14px;height:8px;border-left:2px solid var(--o-gold);border-bottom:2px solid var(--o-gold);transform:rotate(-45deg)}
del,.woocommerce-Price-amount del{color:#9aa0ad;font-weight:400;margin-right:8px}
ins,.woocommerce-Price-amount ins{text-decoration:none;color:var(--o-navy)}
.oCard del{font-size:.85em}
.oPrice del{font-size:1.05rem;font-weight:500}
.oPrice{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media(max-width:560px){.oProductDesc ul{grid-template-columns:1fr}}

/* ---- Cart count bubble (header) ---- */
.oCartLink .oCartCount{position:absolute;top:-8px;right:-10px;min-width:18px;height:18px;padding:0 5px;border-radius:100px;background:var(--o-gold);color:var(--o-navy);font:700 .68rem 'Hanken Grotesk';display:flex;align-items:center;justify-content:center;line-height:1}
.oCartLink .oCartCount[hidden]{display:none}

/* ---- PDP responsive ---- */
@media(max-width:920px){
  .oPdpSplit{grid-template-columns:1fr !important;gap:36px !important}
  .oPdpInfo{position:static !important}
}

/* =========================================================
   WooCommerce skin — buttons, quantity, cart, checkout
   ========================================================= */

/* Primary buttons (add to cart, place order, proceed to checkout) */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce #place_order,
.woocommerce .single_add_to_cart_button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  background:var(--o-gold) !important;color:var(--o-navy) !important;border:1px solid var(--o-gold) !important;
  font:600 1rem 'Hanken Grotesk' !important;border-radius:10px !important;padding:14px 26px !important;
  text-transform:none !important;letter-spacing:0;box-shadow:none !important;transition:background .25s,transform .25s;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #place_order:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover{
  background:var(--o-gold-dark) !important;border-color:var(--o-gold-dark) !important;transform:translateY(-2px);
}

/* Secondary buttons (update cart, apply coupon) */
.woocommerce a.button:not(.alt),
.woocommerce button.button:not(.alt),
.woocommerce input.button:not(.alt){
  background:#fff !important;color:var(--o-navy) !important;border:1px solid #E6E7EB !important;
  font:600 .92rem 'Hanken Grotesk' !important;border-radius:10px !important;padding:13px 22px !important;
  text-transform:none !important;box-shadow:none !important;
}
.woocommerce a.button:not(.alt):hover,
.woocommerce button.button:not(.alt):hover,
.woocommerce input.button:not(.alt):hover{border-color:var(--o-gold) !important;color:var(--o-navy) !important;background:#fff !important}

/* Quantity */
.woocommerce .quantity .qty{
  width:84px;border:1.5px solid #E0DED5;border-radius:10px;padding:13px 10px;
  font:600 1rem 'Hanken Grotesk';color:var(--o-text);text-align:center;
}
.oBuy .quantity{margin:0 10px 0 0}
.oBuy form.cart{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px}
.oBuy .single_add_to_cart_button{flex:1;min-width:200px}

/* Inputs / selects / textareas */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container .select2-selection,
.woocommerce form .form-row select,
.woocommerce table.cart td.actions .coupon .input-text{
  border:1.5px solid #E0DED5 !important;border-radius:10px !important;padding:12px 14px !important;
  font:400 .95rem 'Hanken Grotesk' !important;color:var(--o-text) !important;min-height:46px;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:22px;color:var(--o-text)}
.woocommerce form .form-row label{font:600 .82rem 'Hanken Grotesk';color:var(--o-navy)}

/* Tables (cart + order review) */
.woocommerce table.shop_table{
  border:1px solid #E6E7EB;border-radius:12px;border-collapse:separate;border-spacing:0;overflow:hidden;background:#fff;
}
.woocommerce table.shop_table th{
  background:var(--o-navy);color:#fff;font:600 .78rem 'Schibsted Grotesk';letter-spacing:.04em;text-transform:uppercase;padding:16px;
}
.woocommerce table.shop_table td{padding:18px 16px;border-top:1px solid #ECEDF1;font:400 .95rem 'Hanken Grotesk';color:#3a4154;vertical-align:middle}
.woocommerce table.shop_table .product-name a{color:var(--o-navy);font-weight:600}
.woocommerce table.shop_table .product-name a:hover{color:var(--o-gold)}
.woocommerce .cart_item img,.woocommerce-checkout .cart_item img{width:60px;height:60px;object-fit:cover;border-radius:8px;border:1px solid #E6E7EB}

/* Cart totals + checkout review boxes */
.woocommerce .cart_totals,
.woocommerce-checkout #order_review{
  background:#F8F8F6;border:1px solid #ECEDF1;border-radius:14px;padding:24px;
}
.woocommerce .cart_totals h2,
.woocommerce-checkout #order_review_heading{
  font:600 1.3rem 'Schibsted Grotesk';color:var(--o-navy);margin:0 0 16px;
}
.woocommerce .order-total .amount,.woocommerce .cart-subtotal .amount{color:var(--o-navy);font-weight:700}

/* Checkout layout spacing */
.woocommerce-checkout #customer_details{margin-bottom:8px}
.woocommerce-checkout h3{font:600 1.2rem 'Schibsted Grotesk';color:var(--o-navy)}
.woocommerce-billing-fields h3,.woocommerce-shipping-fields h3{margin-top:0}

/* Notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews{
  border-top:none !important;border-left:3px solid var(--o-gold) !important;background:var(--o-grey) !important;
  border-radius:8px;padding:16px 18px !important;font:400 .95rem 'Hanken Grotesk';color:var(--o-navy);
}
.woocommerce-message{border-left-color:#2e7d32 !important}
.woocommerce-error{border-left-color:#c0392b !important}
.woocommerce-message .button,.woocommerce-info .button{margin-right:14px}

/* Onsale flash in Woo loops (we use custom cards, but covers stray Woo output) */
.woocommerce span.onsale{
  position:absolute;top:14px;left:14px;right:auto;margin:0;z-index:9;
  min-height:0;min-width:0;line-height:1;padding:7px 14px;
  background:var(--o-gold);color:var(--o-navy);border-radius:100px;
  font:700 .7rem 'Schibsted Grotesk';letter-spacing:.08em;text-transform:uppercase;
}

/* Tabs (if Woo default appears anywhere) */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{border-bottom-color:var(--o-gold)}

/* =========================================================
   Mini-cart slide-out drawer
   ========================================================= */
.oCartOverlay{position:fixed;inset:0;background:rgba(15,34,60,.45);backdrop-filter:blur(2px);opacity:0;transition:opacity .5s ease;z-index:70}
.oCartOverlay.open{opacity:1}
.oCartOverlay[hidden]{display:none}
.oCartDrawer{position:fixed;top:0;right:0;height:100%;width:410px;max-width:92vw;background:#fff;z-index:80;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .55s cubic-bezier(.16,.8,.24,1);box-shadow:-30px 0 60px -30px rgba(var(--o-navy-rgb),.5)}
.oCartDrawer.open{transform:translateX(0)}
.oCartDrawerHead{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid #ECEDF1}
.oCartDrawerHead span{font:600 1.2rem 'Schibsted Grotesk';color:var(--o-navy)}
.oCartDrawerHead button{border:0;background:var(--o-grey);width:38px;height:38px;border-radius:9px;font-size:24px;line-height:1;color:var(--o-navy);cursor:pointer;transition:background .2s}
.oCartDrawerHead button:hover{background:#ECEDF1}
.oCartDrawerBody{flex:1;overflow-y:auto;padding:20px 24px}

/* mini-cart list — Woo markup: li > [a.remove][a(img + name)][span.quantity] */
.oCartDrawer .cart_list{list-style:none;margin:0;padding:0}
.oCartDrawer .cart_list li{position:relative;display:block;padding:16px 0 16px 30px;border-bottom:1px solid #ECEDF1}
.oCartDrawer .cart_list li a:not(.remove){display:flex;align-items:center;gap:12px;font:600 .98rem 'Schibsted Grotesk';color:var(--o-navy);line-height:1.35}
.oCartDrawer .cart_list li img{width:56px !important;height:56px;object-fit:cover;border-radius:8px;border:1px solid #E6E7EB;float:none !important;margin:0 !important;flex-shrink:0}
.oCartDrawer .cart_list li .quantity{display:block;padding-left:68px;margin-top:6px;font:400 .85rem 'Hanken Grotesk';color:#5B6478}
.oCartDrawer .cart_list li .quantity .amount{color:var(--o-navy);font-weight:600}
.oCartDrawer .cart_list li a.remove{position:absolute;left:0;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;border:1px solid #E6E7EB;color:#9aa0ad !important;font-size:14px;line-height:20px;text-align:center;background:#fff;z-index:2}
.oCartDrawer .cart_list li a.remove:hover{border-color:#c0392b;color:#c0392b !important;background:#fff}
.oCartDrawer .woocommerce-mini-cart__total{display:flex;align-items:center;justify-content:space-between;margin:18px 0;padding-top:18px;border-top:2px solid #ECEDF1;font:600 1.05rem 'Schibsted Grotesk';color:var(--o-navy)}
.oCartDrawer .woocommerce-mini-cart__total .amount{color:var(--o-navy)}
.oCartDrawer .woocommerce-mini-cart__empty-message{font:300 1rem 'Hanken Grotesk';color:#5B6478;text-align:center;padding:40px 0}

/* drawer buttons — !important beats the body.woocommerce button skin */
.oCartDrawer .buttons{display:flex;flex-direction:column;gap:10px;margin:0}
.oCartDrawer .buttons a.button{display:block !important;width:100% !important;text-align:center !important;padding:14px !important;border-radius:10px !important;font:600 .95rem 'Hanken Grotesk' !important;border:1px solid #E6E7EB !important;background:#fff !important;color:var(--o-navy) !important;transition:background .3s,border-color .3s,transform .3s;margin:0 !important}
.oCartDrawer .buttons a.button:hover{border-color:var(--o-gold) !important}
.oCartDrawer .buttons a.button.checkout{background:var(--o-gold) !important;border-color:var(--o-gold) !important;color:var(--o-navy) !important;order:-1}
.oCartDrawer .buttons a.button.checkout:hover{background:var(--o-gold-dark) !important;border-color:var(--o-gold-dark) !important;transform:translateY(-2px)}

/* add-to-cart loading state */
.single_add_to_cart_button.loading{opacity:.7;cursor:wait}

/* Generic page content */
.oPageContent{font:300 1.06rem/1.75 'Hanken Grotesk';color:#3a4154}
.oPageContent h2{font:600 1.7rem 'Schibsted Grotesk';color:var(--o-navy);margin:32px 0 12px}
.oPageContent h3{font:600 1.3rem 'Schibsted Grotesk';color:var(--o-navy);margin:26px 0 10px}
.oPageContent a{color:var(--o-gold)}
.oPageContent a:hover{text-decoration:underline}
@media(max-width:920px){.oShopSplit{grid-template-columns:1fr !important;gap:36px !important}}
