/*
Theme Name: IKOWAINA
Theme URI: https://ikowaina.com
Author: IKOWAINA
Author URI: https://ikowaina.com
Description: The official IKOWAINA storefront theme — a clean, modern e-commerce design for bags, shoes, watches and accessories. Fully compatible with Elementor and WooCommerce, translation-ready (English, Français, العربية) with proper RTL support, and fully responsive.
Version: 3.1.1
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ikowaina
Domain Path: /languages
Tags: e-commerce, custom-colors, custom-logo, custom-menu, editor-style, featured-images, full-width-template, rtl-language-support, threaded-comments, translation-ready, wide-blocks

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.
*/

/* =========================================================
   DESIGN TOKENS
========================================================= */
:root{
  --primary:#FF6A1A;
  --secondary:#0B1B33;
  --bg:#FFFFFF;
  --surface:#F7F7F8;
  --border:#EDEDEF;
  --text:#0D0D0D;
  --text2:#6B6B70;
  --orange-soft:#FFF3EB;
  --icon-orange:#F76F15;
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:18px;
  --radius-xl:24px;
  --radius-full:999px;
  --shadow-card:0 2px 10px rgba(13,13,13,.05);
  --shadow-hero:0 20px 50px rgba(11,27,51,.22);
  --shadow-cta:0 8px 20px rgba(255,106,26,.32);
  --maxw:1240px;
}
[data-theme="dark"]{
  --primary:#FF7A33;
  --bg:#0A0E14;
  --surface:#131820;
  --border:#232A35;
  --text:#F5F5F7;
  --text2:#9AA0AC;
  --orange-soft:#2A1B10;
}

/* =========================================================
   RESET / BASE
========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; padding:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--bg); color:var(--text);
  -webkit-font-smoothing:antialiased;
  font-size:15px; line-height:1.6;
}
html[dir="rtl"] body{ font-family:'IBM Plex Sans Arabic','Inter',sans-serif; }
.wordmark{ font-family:'Fraunces',serif; font-weight:900; letter-spacing:.01em; }
img{ max-width:100%; height:auto; display:block; }
svg{ display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
ul{ list-style:none; margin:0; padding:0; }
input,textarea,select{ font-family:inherit; font-size:inherit; }

.wrap,
.site-content-inner{ max-width:var(--maxw); margin:0 auto; padding:0 40px; }

/* Screen-reader text (WP standard) */
.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%);
  height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; width:1px; word-wrap:normal!important;
}
.skip-link{ position:absolute; top:-100px; left:0; background:var(--secondary); color:#fff; padding:12px 20px; z-index:999999; border-radius:0 0 8px 0; }
.skip-link:focus{ top:0; }

/* Alignment helpers for the block editor / Elementor content */
.alignwide{ margin-left:calc(50% - 45vw); margin-right:calc(50% - 45vw); max-width:90vw; }
.alignfull{ margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); max-width:100vw; }
.aligncenter{ margin-left:auto; margin-right:auto; display:block; }
.alignleft{ float:left; margin-right:20px; }
.alignright{ float:right; margin-left:20px; }

/* =========================================================
   ANNOUNCEMENT BAR
========================================================= */
.announce{
  background:var(--secondary); color:#fff; text-align:center;
  font-size:12px; font-weight:600; letter-spacing:.02em; padding:9px 20px;
}
.announce b{ color:var(--primary); }
.announce-icon{ vertical-align:-2px; margin-inline-end:4px; }

/* =========================================================
   HEADER
========================================================= */
.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--bg); border-bottom:1px solid var(--border);
}
/* When logged in as an admin, the WordPress toolbar is a separate
   fixed element pinned to the very top of the viewport (32px tall on
   desktop, 46px on phone widths ≤782px — WordPress core's own
   breakpoint). Without this, the sticky header's own top:0 sticks it
   to the absolute top of the viewport too, so on scroll it slides in
   UNDER the toolbar instead of resting right below it — looking like
   a second, independently-draggable layer behind the header. This
   never affects logged-out visitors (no toolbar = no offset needed),
   and doesn't change the header's own design, only where it sticks. */
body.admin-bar .site-header{ top:32px; }
@media (max-width:782px){
  body.admin-bar .site-header{ top:46px; }
}
.header-row{
  display:flex; align-items:center; gap:32px;
  padding:18px 40px; width:100%; box-sizing:border-box;
}
.brand{ display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.brand svg{ width:26px; height:26px; }
.brand span{ font-size:20px; letter-spacing:.01em; }
.logo-img{ height:26px !important; width:auto !important; max-height:26px !important; }
.custom-logo-link{ display:flex; align-items:center; flex:0 0 auto; }
.custom-logo-link .custom-logo{ height:26px !important; width:auto !important; max-height:26px !important; }
.mobile-topbar .custom-logo-link .custom-logo{ height:22px !important; max-height:22px !important; }
.footer-brand .custom-logo-link .custom-logo{ height:24px !important; max-height:24px !important; }
.footer-brand .logo-img{ height:24px !important; max-height:24px !important; }
/* Defensive catch-all: ANY image sitting directly in the header's brand
   slot is capped to the same header height, regardless of which class
   (or lack of one) it happens to carry — protects against a future
   markup variant, plugin override, or stale-cache scenario producing
   an unstyled, oversized logo on any specific page. */
.site-header .brand img,
.header-row .brand img,
.site-header .custom-logo-link img{
  height:26px !important; width:auto !important; max-height:26px !important; max-width:200px !important;
}
.logo-img-dark{ display:none; }
[data-theme="dark"] .logo-img-light{ display:none; }
[data-theme="dark"] .logo-img-dark{ display:block; }

.main-nav{ display:flex; gap:28px; }
/* Header "Home" link hidden per request — the Home page and its
   function are unchanged; the IKOWAINA logo links to Home. */
.site-header .main-nav{ display:none !important; }
.main-nav a{
  font-size:14px; font-weight:600; color:var(--text2);
  padding:6px 0; border-bottom:2px solid transparent; transition:all .2s ease-out;
}
.main-nav a:hover, .main-nav a.current-menu-item > a, .main-nav li.current-menu-item a{
  color:var(--text); border-color:var(--primary);
}
.main-nav ul{ display:flex; gap:28px; }
.main-nav li{ position:relative; }
.main-nav .sub-menu{
  display:none; position:absolute; top:100%; inset-inline-start:0; min-width:200px;
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-md);
  box-shadow:var(--shadow-card); padding:8px; margin-top:12px; z-index:60;
}
.main-nav li:hover > .sub-menu{ display:block; }
.main-nav .sub-menu a{ display:block; padding:9px 12px; border:none; border-radius:8px; }
.main-nav .sub-menu a:hover{ background:var(--surface); }

.header-search{
  display:flex; align-items:center; gap:8px;
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-full); padding:9px 16px; width:230px;
  color:var(--text2); font-size:13px;
  margin-inline-start:auto;
}
.mobile-search-image-trigger{
  flex:0 0 auto; display:flex; align-items:center; justify-content:center;
  color:var(--text2); background:none; border:0; padding:2px; margin-inline-start:2px;
}
.mobile-search-image-trigger:hover{ color:var(--primary); }

/* Camera/image-search button, sitting inside the search pill itself
   (desktop .header-search and mobile .mobile-search share this same
   rule). margin-inline-start (not margin-left) is what makes this
   automatically sit at the correct end of the bar in both directions
   — the far end from the magnifying-glass icon in LTR (English/
   French/German), and the mirrored end in RTL (Arabic) — with no
   language-specific positioning logic anywhere, in CSS or JS. */
.header-search-image-trigger{
  flex:0 0 auto; display:flex; align-items:center; justify-content:center;
  color:var(--text2); background:none; border:0; padding:2px; margin-inline-start:8px;
  cursor:pointer;
}
.header-search-image-trigger:hover{ color:var(--primary); }
.mobile-search .header-search-image-trigger{ margin-inline-start:2px; }

/* ---------------- Image search modal ---------------- */
.image-search-modal{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:20px; }
.image-search-modal[hidden]{ display:none; }
.image-search-backdrop{ position:absolute; inset:0; background:rgba(11,15,25,.55); }
.image-search-panel{
  position:relative; background:var(--bg); border-radius:var(--radius-lg,16px);
  max-width:480px; width:100%; max-height:88vh; overflow-y:auto;
  padding:28px 24px 24px; box-shadow:0 24px 60px rgba(0,0,0,.3);
}
.image-search-close{
  position:absolute; top:14px; inset-inline-end:14px; width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--text2);
}
.image-search-close:hover{ background:var(--surface); color:var(--text); }
.image-search-panel h2{ font-size:20px; font-weight:800; margin:0 0 6px; padding-inline-end:32px; }
.image-search-sub{ color:var(--text2); font-size:13.5px; line-height:1.5; margin:0 0 20px; }
.image-search-picker{ display:flex; gap:12px; flex-wrap:wrap; }
.image-search-choice{
  flex:1 1 160px; display:flex; flex-direction:column; align-items:center; gap:8px;
  border:1.5px dashed var(--border); border-radius:var(--radius-md,12px);
  padding:24px 12px; text-align:center; font-size:13px; font-weight:700; color:var(--text2);
  cursor:pointer; transition:all .15s ease-out;
}
.image-search-choice:hover{ border-color:var(--primary); color:var(--primary); background:var(--orange-soft); }
.image-search-preview{ text-align:center; }
.image-search-preview img{ max-width:100%; max-height:240px; border-radius:var(--radius-md,12px); object-fit:contain; margin-bottom:16px; }
.image-search-preview-actions{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.image-search-loading{ display:flex; align-items:center; justify-content:center; gap:10px; padding:32px 0; color:var(--text2); font-size:14px; font-weight:600; }
.image-search-spinner{
  width:18px; height:18px; border-radius:50%; border:2.5px solid var(--border); border-top-color:var(--primary);
  animation:ikowaina-spin .7s linear infinite;
}
@keyframes ikowaina-spin{ to{ transform:rotate(360deg); } }
.image-search-results{
  display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:20px;
}
.image-search-result{ display:flex; flex-direction:column; gap:4px; color:var(--text); }
.image-search-result-img{
  width:100%; aspect-ratio:1; border-radius:var(--radius-md,10px); background:var(--surface) center/cover no-repeat;
  border:1px solid var(--border); margin-bottom:6px;
}
.image-search-result-name{ font-size:12.5px; font-weight:700; line-height:1.3; }
.image-search-result-price{ font-size:12.5px; font-weight:800; color:var(--primary); }
.image-search-result-match{ font-size:11px; color:var(--text2); }
.image-search-no-results{ text-align:center; color:var(--text2); font-size:13.5px; padding:24px 0; margin:0; }

@media (max-width:640px){
  .image-search-results{ grid-template-columns:repeat(2,1fr); }
  .image-search-panel{ padding:24px 18px 20px; }
}
/* Search field fills the remaining header space on real desktop
   windows only (matches the reference screenshot). iPad (portrait and
   landscape, up to ~1024px) and phone are untouched — phone already
   has its own separate override in .mobile-topbar .mobile-search
   below, and 1200px is above any iPad viewport. */
@media (min-width:1200px){
  .header-row .header-search{ flex:1 1 auto; width:auto; max-width:none; margin-inline-start:24px; }
}
.header-search svg{ width:15px; height:15px; flex:0 0 auto; }
.header-search input{
  border:none; background:none; outline:none; font:inherit; color:var(--text); width:100%;
}
.header-search input::placeholder{ color:var(--text2); }

.header-actions{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.icon-btn{
  width:36px; height:36px; border-radius:50%;
  background:var(--surface); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  color:var(--text); transition:transform .15s ease-out;
  position:relative;
}
.icon-btn:hover{ border-color:var(--primary); color:var(--primary); }
.icon-btn:active{ transform:scale(.92); }
.icon-btn svg{ width:16px; height:16px; }
.icon-btn .dot{
  position:absolute; top:-2px; inset-inline-end:-2px;
  min-width:15px; height:15px; padding:0 3px; border-radius:50%; background:var(--primary);
  color:#fff; font-size:9px; font-weight:800; display:flex; align-items:center; justify-content:center;
  border:2px solid var(--bg);
}
.lang-switcher-dropdown{ position:relative; display:inline-block; }
.lang-switcher-toggle{
  display:flex; align-items:center; gap:6px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-full); padding:8px 12px; cursor:pointer; color:var(--text); transition:border-color .15s ease-out;
}
.lang-switcher-toggle:hover{ border-color:var(--primary); }
.lang-switcher-current{ font-size:12px; font-weight:800; letter-spacing:.02em; }
.lang-switcher-chev{ flex:0 0 auto; transition:transform .2s ease-out; }
.lang-switcher-dropdown.is-open .lang-switcher-chev{ transform:rotate(180deg); }
.lang-switcher-menu{
  position:absolute; top:calc(100% + 8px); inset-inline-end:0; min-width:140px; z-index:80;
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-md,12px);
  box-shadow:var(--shadow-card, 0 8px 24px rgba(0,0,0,.12)); padding:6px; display:none;
}
.lang-switcher-dropdown.is-open .lang-switcher-menu{ display:block; }
.lang-switcher-option{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 12px; border-radius:var(--radius-sm,8px); font-size:13.5px; font-weight:700; color:var(--text);
}
.lang-switcher-option:hover{ background:var(--surface); }
.lang-switcher-option.is-active{ color:var(--primary); }
.lang-switcher-option svg{ flex:0 0 auto; color:var(--primary); }

/* Combined Country + Language dropdown (desktop header + mobile top bar) */
.market-lang-dropdown{ position:relative; display:inline-block; flex:0 0 auto; }
.market-lang-toggle{
  display:flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-full); padding:9px 14px; cursor:pointer; color:var(--text); white-space:nowrap;
  transition:border-color .15s ease-out;
}
.market-lang-toggle:hover{ border-color:var(--primary); }
.market-lang-toggle span{ font-size:12.5px; font-weight:800; letter-spacing:.02em; }
/* Desktop only — icon + chevron only, no "Country | LANG" text, per
   reference. Scoped to min-width:768px specifically so this can never
   touch or interact with the mobile top bar's own separate rule
   (line ~632 below), which already does its own thing independently. */
@media (min-width:768px){
  .header-row .market-lang-toggle span{ display:none; }
  .header-row .market-lang-toggle{ padding:10px; }
}
.market-lang-chev{ flex:0 0 auto; transition:transform .2s ease-out; }
.market-lang-dropdown.is-open .market-lang-chev{ transform:rotate(180deg); }
.market-lang-menu{
  position:absolute; top:calc(100% + 8px); inset-inline-end:0; min-width:220px; z-index:80;
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-md,12px);
  box-shadow:var(--shadow-card, 0 8px 24px rgba(0,0,0,.14)); padding:8px; display:none;
}
.market-lang-dropdown.is-open .market-lang-menu{ display:block; }
.market-lang-menu-heading{
  display:flex; align-items:center; gap:6px; padding:8px 10px 4px;
  font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--text2);
}
.market-lang-menu-divider{ height:1px; background:var(--border); margin:6px 4px; }
.market-lang-option{
  display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%;
  padding:9px 10px; border-radius:var(--radius-sm,8px); font-size:13.5px; font-weight:700; color:var(--text);
  background:none; border:0; cursor:pointer; font-family:inherit; text-align:start;
}
.market-lang-option:hover{ background:var(--surface); }
.market-lang-option.is-active{ color:var(--primary); }
.market-lang-option svg{ flex:0 0 auto; color:var(--primary); }
.market-lang-check{ opacity:0; }
.market-lang-option.is-active .market-lang-check{ opacity:1; }
.market-lang-flag{ margin-inline-end:4px; }
.market-lang-save{ width:100%; margin-top:4px; padding:11px 20px; }

/* Notification bell */
.notification-bell{ position:relative; }
.notification-bell-dot{
  position:absolute; top:6px; inset-inline-end:6px; width:8px; height:8px; border-radius:50%;
  background:var(--primary); border:1.5px solid var(--bg);
}

/* =========================================================
   HERO
========================================================= */
.hero-section{ padding:56px 40px 0; }
.hero{
  width:100%; box-sizing:border-box;
  border-radius:var(--radius-xl);
  background:linear-gradient(135deg,#0B1B33,#1B3660);
  min-height:360px; padding:60px;
  position:relative; overflow:hidden; color:#fff;
  box-shadow:var(--shadow-hero);
  display:flex; align-items:center;
}
/* Hero background image — shown at full quality.
   The image itself gets NO blur, NO filter and NO resizing: it is
   painted straight from the original upload at "cover" so its own
   detail and sharpness are what you see. Only a soft scrim sits on
   top, purely so the white headline stays readable, and it fades to
   fully transparent well before the far side of the banner — so most
   of the picture is completely untouched. --hero-scrim (its strongest
   edge) is printed by inc/hero-slides.php from the Customizer, so a
   brighter or busier photo can be tuned without touching code.
   The scrim deliberately carries no z-index: as the first child it
   paints behind the sparkles, the bell and the text automatically. */
.hero.has-image{
  background-size:cover; background-position:center; background-repeat:no-repeat;
}
.hero.has-image::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  /* Static fallback first, for browsers that don't accept calc() in an
     alpha channel; the tunable version below replaces it where it does. */
  background:linear-gradient(var(--hero-scrim-dir,to right),
    rgba(8,17,32,.45) 0%, rgba(8,17,32,.30) 34%, rgba(8,17,32,.12) 62%, rgba(8,17,32,0) 88%);
  background:linear-gradient(var(--hero-scrim-dir,to right),
    rgba(8,17,32,calc(var(--hero-scrim,.45) * 1))    0%,
    rgba(8,17,32,calc(var(--hero-scrim,.45) * .66)) 34%,
    rgba(8,17,32,calc(var(--hero-scrim,.45) * .26)) 62%,
    rgba(8,17,32,0)                                 88%);
}
html[dir="rtl"] .hero.has-image{ --hero-scrim-dir:to left; }

.hero-inner{ max-width:480px; position:relative; z-index:2; }
.hero .sparkle-deco{ position:absolute; opacity:.1; color:#fff; }
.hero .sparkle-deco.tl{ top:-30px; inset-inline-start:-20px; width:180px; height:180px; }
.hero .sparkle-deco.br{ bottom:-50px; inset-inline-end:-30px; width:260px; height:260px; }
.hero .eyebrow{ color:var(--primary); font-weight:800; font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
.hero h1{ font-size:44px; font-weight:800; line-height:1.1; margin-top:14px; color:#fff; }
.hero p{ font-size:15px; opacity:.75; margin-top:16px; font-weight:500; max-width:360px; }
.hero .cta-row{ display:flex; gap:12px; margin-top:32px; flex-wrap:wrap; }
.hero .hero-bell{ display:none; } /* shown only in phone mode, see responsive rules */

/* Multi-slide carousel: every slide keeps the exact same .hero box
   (same size/position/design) — only one is ever "in flow" (position:
   relative) at a time, which is what gives the container its real
   height; the rest sit stacked underneath via position:absolute and
   fade out, so swapping slides never changes the banner's size. */
.hero-carousel{ position:relative; }
.hero-carousel .hero.hero-slide{
  position:absolute; inset:0; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .45s ease;
}
.hero-carousel .hero.hero-slide.is-active{
  position:relative; opacity:1; visibility:visible; pointer-events:auto;
}

.hero-arrows{
  display:flex; gap:16px; width:100%; margin:20px 0 0; padding:0 40px; box-sizing:border-box;
}
.hero-arrow{
  width:40px; height:40px; border-radius:50%; border:1px solid var(--border); background:var(--bg);
  display:flex; align-items:center; justify-content:center; color:var(--text); cursor:pointer; transition:all .15s ease-out;
}
.hero-arrow:hover{ border-color:var(--primary); color:var(--primary); }
.hero-arrow svg{ width:18px; height:18px; }

/* =========================================================
   BUTTONS (also styles WooCommerce's default button classes)
========================================================= */
.btn,
.button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-Button{
  display:inline-block; border:none; border-radius:var(--radius-md); font-weight:700; font-size:14px;
  padding:14px 26px; transition:transform .15s ease-out, background .15s ease-out; cursor:pointer;
  background:var(--primary); color:#fff!important; box-shadow:var(--shadow-cta); font-family:inherit;
}
.btn:hover,.button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover{ background:#e85e12; color:#fff; }
.btn:active,.button:active{ transform:scale(.96); }
.btn-outline{ background:transparent; color:#fff!important; border:1.5px solid rgba(255,255,255,.4); box-shadow:none; }
.btn-on-light{ background:#fff; color:var(--primary)!important; }
.btn-icon{ display:inline-flex; align-items:center; gap:8px; }
.btn-icon svg{ flex:0 0 auto; }
.btn-outline-orange,
.woocommerce a.button.alt,
.woocommerce #respond input#submit.alt{
  background:transparent; color:var(--primary)!important; border:1.5px solid var(--primary); box-shadow:none;
}
.btn-outline-orange:hover{ background:var(--orange-soft); }

/* =========================================================
   CATEGORY STRIP
========================================================= */
.cat-section{ padding:56px 40px 0; }
.cat-carousel-wrap{ display:flex; flex-direction:column; gap:20px; }
.cat-carousel-controls{ display:flex; align-items:center; justify-content:center; gap:16px; }
.cat-carousel-arrow{
  width:40px; height:40px; border-radius:50%; border:1px solid var(--border); background:var(--bg);
  display:flex; align-items:center; justify-content:center; color:var(--text); cursor:pointer;
  transition:all .15s ease-out; flex:0 0 auto;
}
.cat-carousel-arrow:hover{ border-color:var(--primary); color:var(--primary); }
.cat-carousel-arrow:disabled{ opacity:.35; cursor:default; }
.cat-carousel-arrow:disabled:hover{ border-color:var(--border); color:var(--text); }
.cat-carousel-arrow svg{ width:18px; height:18px; }
.cat-carousel-dots{ display:flex; align-items:center; gap:8px; }
.cat-carousel-dot{
  width:8px; height:8px; border-radius:50%; background:var(--border); border:0; padding:0;
  cursor:pointer; transition:all .2s ease-out;
}
.cat-carousel-dot.is-active{ width:22px; border-radius:999px; background:var(--primary); }
.cat-grid{
  width:100%; box-sizing:border-box; min-width:0;
  display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x proximity; scroll-behavior:smooth;
  scrollbar-width:none;
}
.cat-grid::-webkit-scrollbar{ display:none; }

/* Large image cards — the category's own photo fills the whole card
   (WooCommerce category image, or the Customizer image for "All"),
   with the name overlaid at the bottom on a gradient scrim so it's
   readable over any photo. */
.cat-card-img{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  height:220px; flex:0 0 calc((100% - 64px) / 5); scroll-snap-align:start;
  background:var(--surface,#F3F4F6) center/cover no-repeat; cursor:pointer;
  transition:transform .2s ease-out; display:block;
}
.cat-card-img:hover{ transform:translateY(-3px); }
/* Readability scrim for the label only: it hugs the bottom edge and is
   fully transparent over the top two-thirds, so the category photo
   itself stays untouched — no blur, no filter, no darkening across the
   picture. The label keeps its own text-shadow, which is what carries
   readability over a bright photo, so the scrim can stay light. */
.cat-card-img::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.22) 22%, rgba(0,0,0,0) 46%);
}
.cat-card-label{
  position:absolute; inset-inline-start:16px; bottom:14px; z-index:1;
  color:#fff; font-size:16px; font-weight:800; text-shadow:0 1px 4px rgba(0,0,0,.55);
}
.section-label{ display:none; }

/* =========================================================
   SECTIONS
========================================================= */
.section{ padding:64px 40px 0; }
.section-inner{ max-width:var(--maxw); margin:0 auto; }
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:28px; flex-wrap:wrap; gap:10px; }
.section-head h2{ font-size:26px; font-weight:800; margin:0; }
.section-head p{ color:var(--text2); font-size:13px; margin-top:6px; }
.see-all{ font-size:13px; font-weight:700; color:var(--primary); white-space:nowrap; }

/* =========================================================
   PRODUCT GRID / CARD
   (targets both our own .product-grid/.pcard markup AND
    WooCommerce's default ul.products/li.product so the shop,
    category, and related-product loops match the design)
========================================================= */
.product-grid,
ul.products{
  display:grid!important; grid-template-columns:repeat(4,1fr); gap:22px;
  margin:0!important; padding:0!important; list-style:none!important;
}
.pcard,
ul.products li.product{
  border-radius:var(--radius-xl); border:1px solid var(--border);
  background:var(--bg); box-shadow:var(--shadow-card);
  overflow:hidden; transition:all .2s ease-out; position:relative; list-style:none;
}
.pcard:hover,
ul.products li.product:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(13,13,13,.08); }
/* Grid fix: WooCommerce's own stylesheet gives each card a fixed
   width (~22%) + float + margins, and adds an empty ::before/::after
   clearfix to the list. Inside this CSS grid those shrank every card
   to a thin strip and left the first cell empty. Neutralize only
   those properties so each card fills its grid column as designed. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after{ content:none!important; display:none!important; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product,
ul.products li.product{
  width:auto!important; max-width:none!important; min-width:0;
  float:none!important; clear:none!important; margin:0!important; padding:0!important;
}
/* Card like the design: wishlist heart top corner of the image,
   "+" at the bottom corner of the image, info on white below. */
ul.products li.product a.add_to_cart_button{ top:170px!important; bottom:auto!important; z-index:2; }
ul.products li.product a.added_to_cart{ display:none!important; }
.ik-wish{
  position:absolute; top:12px; inset-inline-end:12px; z-index:3;
  width:38px; height:38px; border-radius:50%; border:none; padding:0; cursor:pointer;
  background:rgba(255,255,255,.96); box-shadow:0 2px 8px rgba(0,0,0,.12);
  display:flex; align-items:center; justify-content:center; transition:transform .15s ease-out;
}
.ik-wish:active{ transform:scale(.9); }
.ik-wish svg{ fill:none; stroke:var(--primary); }
.ik-wish.is-active svg{ fill:var(--primary); }
.ik-rating{ display:flex; align-items:center; gap:5px; margin:6px 16px 0; font-size:13px; font-weight:600; color:var(--text2); }
.ik-rating svg{ fill:var(--primary); flex:0 0 auto; }
ul.products li.product .star-rating{ display:none; }
/* The WooCommerce card link wraps the image AND the name/price, so
   only the image gets the fixed 220px frame — the text below stays
   visible instead of being cut off by the link's fixed height. */
ul.products li.product a.woocommerce-LoopProduct-link{ height:auto!important; overflow:visible!important; background:transparent!important; }
ul.products li.product a.woocommerce-LoopProduct-link img{
  display:block; width:100%!important; height:220px!important; object-fit:cover; margin:0!important;
  background:#FFFFFF; border-radius:0;
}
ul.products li.product .woocommerce-loop-product__title{ padding:0!important; margin:16px 18px 0!important; }
ul.products li.product .price{ padding:0!important; margin:8px 18px 18px!important; }
.ik-rating{ margin:6px 18px 0; }
.ik-wishlist-empty{ text-align:center; padding:60px 20px; color:var(--text2); }
.ik-wishlist-empty svg{ margin:0 auto 16px; display:block; }
.ik-wishlist-empty p{ font-size:14px; margin-bottom:20px; }

.pcard .img-wrap,
ul.products li.product a.woocommerce-LoopProduct-link{
  position:relative; display:block; height:220px; background:var(--orange-soft);
  overflow:hidden;
}
.pcard .img-wrap img,
ul.products li.product img{
  width:100%; height:220px; object-fit:cover; margin:0;
}
.pcard .img-wrap svg{ width:52px; height:52px; color:var(--primary); opacity:.5; margin:84px auto; }

.pcard .badge,
ul.products li.product .onsale{
  position:absolute; top:12px; inset-inline-start:12px; inset-inline-end:auto; right:auto;
  background:var(--secondary); color:#fff; font-size:10px; font-weight:800;
  letter-spacing:.04em; padding:4px 9px; border-radius:8px; text-transform:uppercase; margin:0; min-height:0; min-width:0; line-height:1.6;
}
.pcard .heart{
  position:absolute; top:12px; inset-inline-end:12px;
  width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.94); border:none;
  display:flex; align-items:center; justify-content:center; box-shadow:0 2px 8px rgba(0,0,0,.12); z-index:2;
}
.pcard .heart svg{ width:16px; height:16px; stroke:#0D0D0D; fill:none; }
.pcard .heart.active svg{ fill:var(--primary); stroke:var(--primary); }
.pcard .addbtn,
ul.products li.product a.add_to_cart_button{
  position:absolute!important; bottom:12px; inset-inline-end:12px;
  width:38px; height:38px; border-radius:50%!important; background:var(--primary); border:none; color:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-cta);
  padding:0!important; font-size:0!important; text-indent:-9999px; overflow:hidden;
}
ul.products li.product a.add_to_cart_button::after{
  content:"+"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:20px!important; text-indent:0; color:#fff; font-weight:700;
}
.pcard .info,
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product .price{
  padding:0 16px;
}
.pcard .info{ padding:16px; }
.pcard .name,
ul.products li.product .woocommerce-loop-product__title{
  font-size:14px; font-weight:700; margin:16px 16px 0; color:var(--text);
}
.pcard .rating{ display:flex; align-items:center; gap:4px; margin-top:6px; font-size:11px; color:var(--text2); }
.pcard .rating svg{ width:11px; height:11px; fill:var(--primary); stroke:none; }
.pcard .price,
ul.products li.product .price{
  font-size:17px; font-weight:800; color:var(--primary)!important; margin:8px 16px 16px; display:block;
}
ul.products li.product .price del{ color:var(--text2); opacity:.6; font-weight:600; margin-inline-end:6px; }
ul.products li.product .price ins{ text-decoration:none; }

/* =========================================================
   PROMO STRIP
========================================================= */
.promo-strip{ padding:64px 40px 0; }
.promo-grid{
  width:100%; box-sizing:border-box;
  display:grid; grid-template-columns:1fr 1fr; gap:20px;
}
.promo-card{
  border-radius:var(--radius-xl); padding:36px; min-height:180px;
  display:flex; flex-direction:column; justify-content:center; color:#fff; position:relative; overflow:hidden;
}
.promo-card.a{ background:linear-gradient(135deg,#FF6A1A,#FF9457); }
.promo-card.b{ background:linear-gradient(135deg,#0B1B33,#243F6B); }
.promo-card .eyebrow{ font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; opacity:.85; }
.promo-card h3{ font-size:24px; font-weight:800; margin-top:8px; max-width:260px; color:#fff; }
.promo-card .btn{ margin-top:20px; width:fit-content; }
.promo-deco{
  position:absolute; inset-inline-end:24px; top:50%; transform:translateY(-50%);
  font-size:96px; line-height:1; opacity:.9; filter:drop-shadow(0 8px 16px rgba(0,0,0,.25));
  pointer-events:none;
}
@media (max-width:640px){ .promo-deco{ font-size:64px; opacity:.5; } }

/* =========================================================
   NEWSLETTER
========================================================= */
.newsletter{ padding:80px 40px; }
.newsletter-inner{ max-width:640px; margin:0 auto; text-align:center; }
.newsletter h2{ font-size:28px; font-weight:800; margin:0; }
.newsletter p{ color:var(--text2); font-size:14px; margin-top:10px; }
.newsletter-form{ display:flex; gap:10px; margin-top:24px; }
.newsletter-form input{
  flex:1; border:1px solid var(--border); background:var(--surface); border-radius:var(--radius-md);
  padding:14px 16px; font:inherit; color:var(--text); outline:none;
}

/* =========================================================
   FOOTER
========================================================= */
.site-footer{ background:var(--secondary); color:#fff; padding:64px 40px 24px; margin-top:40px; }
.footer-grid{
  width:100%; box-sizing:border-box;
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;
}
.footer-brand .brand{ margin-bottom:14px; }
.footer-brand p{ color:rgba(255,255,255,.6); font-size:13px; line-height:1.6; max-width:260px; }
.footer-col h4{ font-size:13px; font-weight:700; margin-bottom:16px; letter-spacing:.02em; color:#fff; }
.footer-col ul{ margin:0; padding:0; }
.footer-col a{ display:block; font-size:13px; color:rgba(255,255,255,.6); margin-bottom:11px; transition:color .2s; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  width:100%; box-sizing:border-box; margin:40px 0 0; padding-top:20px; border-top:1px solid rgba(255,255,255,.12);
  display:flex; justify-content:space-between; align-items:center; font-size:12px; color:rgba(255,255,255,.5); flex-wrap:wrap; gap:16px;
}
.footer-bottom .socials{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.footer-bottom .socials .icon-btn{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.1); color:#fff; }

/* =========================================================
   FORMS / FIELDS (checkout, my account, contact — matches WooCommerce)
========================================================= */
.field{ margin-bottom:16px; }
.field label,
.woocommerce form .form-row label{ display:block; font-size:12px; font-weight:700; color:var(--text2); margin-bottom:6px; }
.field input, .field select, .field textarea,
.woocommerce form .input-text,
.woocommerce form select,
.woocommerce-checkout textarea,
.woocommerce-account textarea{
  width:100%; border:1px solid var(--border); background:var(--surface); border-radius:var(--radius-md);
  padding:12px 14px; font:inherit; font-size:14px; color:var(--text); outline:none;
}
.field input:focus, .field select:focus, .field textarea:focus,
.woocommerce form .input-text:focus{ border-color:var(--primary); }

.page-inner{ max-width:900px; margin:0 auto; padding:56px 40px; }
.page-title{ font-size:28px; font-weight:800; margin-bottom:6px; }
.page-sub{ color:var(--text2); font-size:13px; margin-bottom:28px; }

/* The My Account dashboard is not a generic content page — it must
   NOT inherit .page-inner's 900px cap (which was silently squeezing
   the whole dashboard back down to a small centered box regardless of
   the dashboard's own, wider CSS) or .entry-content's underlined-link
   style (which was overriding the sidebar nav's own non-underlined
   style). ikowaina-account-page is added to <body> in inc/woocommerce.php. */
body.ikowaina-account-page .page-inner{ max-width:none; margin:0; padding:0; }
body.ikowaina-account-page .page-title{ display:none; }
body.ikowaina-account-page .entry-content a{ text-decoration:none; color:inherit; }

/* WooCommerce notices / messages */
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  border-top-color:var(--primary)!important; border-radius:var(--radius-md); background:var(--orange-soft);
  padding:16px 20px 16px 50px!important; list-style:none; margin-bottom:24px;
}
.woocommerce-error{ background:#FDEDEA; border-top-color:#E0432B!important; }

/* Order status / tracking badges */
.order-status{
  display:inline-block; padding:4px 12px; border-radius:var(--radius-full); font-size:11px; font-weight:800;
  text-transform:uppercase; letter-spacing:.03em; background:var(--orange-soft); color:var(--primary);
}

/* =========================================================
   BLOG / PAGE CONTENT DEFAULTS
========================================================= */
.entry-content{ font-size:16px; line-height:1.75; }
.entry-content h1,.entry-content h2,.entry-content h3{ font-weight:800; }
.entry-content a{ color:var(--primary); text-decoration:underline; }
.entry-content img{ border-radius:var(--radius-lg); }

/* =========================================================
   RESPONSIVE
========================================================= */
@media (max-width:1024px){
  .product-grid, ul.products{ grid-template-columns:repeat(3,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}

/* =========================================================
   PHONE MODE (< 768px)
   Desktop + iPad keep the standard header exactly as designed
   down to 768px. Below that, the site switches to the app-style
   shell: a minimal top bar (logo + dark mode + language pills)
   and a fixed bottom tab bar (Home / Search / Wishlist / Cart /
   Profile), matching the mobile reference design exactly.
========================================================= */
.mobile-topbar,
.mobile-tabbar,
.account-mobile-backbar{ display:none; }

@media (max-width:767px){

  /* Hide the entire standard desktop header — the phone top bar below
     is a full replacement, not an overlay, so nothing from the desktop
     header (logo, dark-mode button, etc.) should remain visible here.
     !important guards against a plugin or Customizer "Additional CSS"
     rule accidentally re-showing it with higher specificity. */
  .announce{ display:none !important; }
  .site-header{ display:none !important; }
  body{ margin:0; }

  /* ...and show the app-style minimal top bar in their place. */
  .mobile-topbar{
    display:flex; align-items:center; gap:12px;
    padding:16px 20px; background:var(--bg); border-bottom:1px solid var(--border);
    position:sticky; top:0; z-index:50;
  }
  .mobile-topbar .brand img{ height:22px; flex:0 0 auto; }
  .mobile-topbar .mobile-search{ flex:1; min-width:0; width:auto; }
  .mobile-topbar .icon-btn{ flex:0 0 auto; }
  .mobile-topbar .lang-switcher{ flex:0 0 auto; }
  .mobile-topbar .market-lang-dropdown{ flex:0 0 auto; }
  .mobile-topbar .market-lang-toggle span{ display:none; } /* icon + chevron only — full "Country | LANG" text would overflow a phone-width bar */
  .mobile-topbar .market-lang-toggle{ padding:9px 10px; }
  .market-lang-menu{ max-width:calc(100vw - 32px); }
  .mobile-topbar-divider{ width:1px; height:24px; background:var(--border); flex:0 0 auto; }
  body.admin-bar .mobile-topbar{ top:46px; }

  /* On the logged-in My Account area, the "Back" bar fully replaces
     .mobile-topbar (which stays in the DOM for every other page). */
  body.ikowaina-account-page .mobile-topbar{ display:none; }
  .account-mobile-backbar{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 20px; background:var(--bg); border-bottom:1px solid var(--border);
    position:sticky; top:0; z-index:50;
  }
  .account-mobile-back{
    display:flex; align-items:center; gap:6px; color:var(--text); font-weight:800; font-size:16px;
  }
  body.admin-bar .account-mobile-backbar{ top:46px; }

  /* Drill-down subpages (Orders, Addresses, Payment Methods,
     Notifications, single order) show one focused screen — the
     profile card + menu only appear on the account root itself. */
  body.ikowaina-account-subpage .ikowaina-account-sidebar{ display:none; }
  body.ikowaina-account-subpage .ikowaina-account-shell{
    max-width:none; margin:0; padding:0; display:block;
  }
  body.ikowaina-account-subpage .ikowaina-account-content{
    border:0; padding:20px; border-radius:0; min-height:calc(100dvh - 56px - 62px);
  }

  /* Root Profile screen: the menu links, dark-mode row and language
     row each become their own bordered "card" (icon + label + chevron
     inside a rounded box), matching the reference mobile design,
     instead of the desktop's flat divided-list treatment. */
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-shell{
    display:block; max-width:none; margin:0; padding:16px;
  }
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-sidebar{
    background:none; padding:0;
  }
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-header{
    flex-direction:column; text-align:center; background:var(--surface,#F7F7F8);
    border-radius:var(--radius-lg,16px); padding:24px 20px 20px; margin-bottom:16px;
  }
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-header div{ align-items:center; }
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-header strong{ font-size:20px; }
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-btn{
    margin:0 20px 10px;
  }
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-btn:first-of-type{ margin-top:16px; }

  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-nav{
    border-top:0; display:flex; flex-direction:column; gap:12px;
  }
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-nav a{
    border:1px solid var(--border); border-bottom:1px solid var(--border);
    border-radius:var(--radius-md,12px); padding:16px; background:var(--bg);
  }
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-row,
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-lang{
    border:1px solid var(--border); border-bottom:1px solid var(--border);
    border-radius:var(--radius-md,12px); padding:16px; background:var(--bg);
    margin-top:12px;
  }
  body.ikowaina-account-page:not(.ikowaina-account-subpage) .ikowaina-account-lang{
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
  }

  /* Bottom tab bar */
  .mobile-tabbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60;
    background:var(--bg); border-top:1px solid var(--border);
    padding:8px 6px calc(env(safe-area-inset-bottom,0px) + 6px);
  }
  .mobile-tabbar a{
    flex:1; display:flex; flex-direction:column; align-items:center; gap:3px;
    padding:6px 0; color:var(--text2); position:relative;
  }
  .mobile-tabbar a svg{ width:21px; height:21px; }
  .mobile-tabbar a span{ font-size:10px; font-weight:700; }
  .mobile-tabbar a.active{ color:var(--primary); }
  .mobile-tabbar a.active svg{ fill:var(--orange-soft); }
  .mobile-tabbar .tab-badge{
    position:absolute; top:0; inset-inline-end:22%;
    background:var(--primary); color:#fff; font-size:9px; font-weight:800;
    min-width:15px; height:15px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; padding:0 3px;
  }
  body{ padding-bottom:70px; }

  /* Hero: compact mobile version with a notification bell instead of
     the full nav, matching the reference exactly. */
  .hero-section{ padding:20px 16px 0; }
  .hero{ padding:24px; min-height:0; border-radius:var(--radius-xl); }
  /* On a phone the text fills almost the whole banner, so the scrim
     runs top-to-bottom here instead of side-to-side — still light, and
     lightest exactly where the photo has no text over it. */
  .hero.has-image::before{
    background:linear-gradient(to bottom,
      rgba(8,17,32,.20) 0%, rgba(8,17,32,.40) 55%, rgba(8,17,32,.45) 100%);
    background:linear-gradient(to bottom,
      rgba(8,17,32,calc(var(--hero-scrim,.45) * .45))  0%,
      rgba(8,17,32,calc(var(--hero-scrim,.45) * .90)) 55%,
      rgba(8,17,32,calc(var(--hero-scrim,.45) * 1))   100%);
  }
  .hero h1{ font-size:26px; }
  .hero p{ font-size:13px; }
  .hero .hero-bell{
    position:absolute; top:20px; inset-inline-end:20px;
    width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.12);
    display:flex; align-items:center; justify-content:center; color:#fff;
  }

  /* Hero prev/next arrows sit centered below the banner on mobile too. */
  .hero-arrows{ justify-content:center; gap:24px; }

  /* Category cards: horizontal scrollable row of large image tiles,
     smaller than desktop but still showing the full photo + label. */
  .cat-section{ padding:28px 16px 0; }
  .cat-section .section-label{ display:block; font-size:16px; font-weight:800; margin-bottom:14px; }
  .cat-grid{
    display:flex!important;
    overflow-x:auto; gap:10px; padding-bottom:4px; scrollbar-width:none;
  }
  .cat-grid::-webkit-scrollbar{ display:none; }
  .cat-card-img{ flex:0 0 140px; height:150px; }
  .cat-card-label{ font-size:13px; inset-inline-start:12px; bottom:10px; }

  .section{ padding:32px 16px 0; }
  .promo-grid{ grid-template-columns:1fr; }
  .product-grid, ul.products{ grid-template-columns:repeat(2,1fr)!important; gap:14px; }

  /* Compact the v2 dashboard sidebar just enough that the profile
     card + all nav items + Dark Mode + Language + Log Out fit on a
     phone screen without needing to scroll inside it — desktop has
     the vertical room to show everything at once already; phone
     didn't once Wishlist/Settings/Help & Support were added, so this
     tightens spacing (not font size) to close that gap. */
  .ikowaina-account-sidebar--v2{ padding:14px; }
  .ikowaina-account-header-v2{ padding:10px; margin-bottom:10px; gap:10px; }
  .ikowaina-avatar-initials{ width:42px; height:42px; font-size:14px; }
  .ikowaina-account-nav-v2{ gap:0; }
  .ikowaina-account-nav-v2 a{ padding:9px 10px; font-size:14px; gap:10px; }
  .ikowaina-account-nav-v2 a svg{ width:18px; height:18px; }
  .ikowaina-account-v2-footer{ margin-top:8px; padding-top:10px; }
  .ikowaina-account-v2-footer .ikowaina-account-row{ padding-top:8px; padding-bottom:8px; }
  .ikowaina-account-lang{ margin-top:8px !important; }
  .ikowaina-account-logout-v2{ margin-top:8px; padding:10px 12px; }
}

/* iPad width: keeps the DESKTOP header/search/nav as-is (that part
   was never the complaint) but extends the phone's "one focused
   screen at a time" dashboard behavior up to tablet width too — the
   sidebar+content side-by-side layout doesn't have room to breathe on
   an iPad-width screen the way it does on a real desktop window.
   Clicking Orders/Addresses/etc. now shows just that section full-
   width, with the Back button already built into each of those
   templates, instead of a cramped two-column squeeze. */
@media (min-width:768px) and (max-width:1024px){
  body.ikowaina-account-subpage .ikowaina-account-sidebar{ display:none; }
  body.ikowaina-account-subpage .ikowaina-account-shell{
    grid-template-columns:1fr; max-width:none; margin:0; padding:0; display:block;
  }
  body.ikowaina-account-subpage .ikowaina-account-content{
    border:0; padding:24px; border-radius:0; min-height:calc(100dvh - var(--ikowaina-header-h, 96px));
  }
}

@media (max-width:640px){
  .wrap,.header-row,.hero-section,.cat-section,.section,.promo-strip,.newsletter,.site-footer,.page-inner,.hero-arrows{ padding-left:20px; padding-right:20px; }
  .newsletter-form{ flex-direction:column; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:28px; }
  .footer-bottom{ flex-direction:column; text-align:center; }
}

.btn-outline-neutral{
  display:block; width:100%; text-align:center; padding:13px 20px; border-radius:var(--radius-md,10px);
  border:1.5px solid var(--border); background:var(--bg); color:var(--text); font-weight:700; margin-bottom:12px;
}

/* Shared toggle-switch visual — used by the My Account sidebar's Dark
   Mode row and the Notifications preference toggles. */
.account-panel-switch{
  width:44px; height:26px; border-radius:999px; background:#d9dce1; border:0; position:relative; cursor:pointer; flex:0 0 auto;
}
.account-panel-switch .knob{
  position:absolute; top:3px; inset-inline-start:3px; width:20px; height:20px; border-radius:50%;
  background:#fff; transition:inset-inline-start .2s ease; box-shadow:0 1px 3px rgba(0,0,0,.2);
}
.account-panel-switch.is-on{ background:var(--primary); }
.account-panel-switch.is-on .knob{ inset-inline-start:21px; }

/* =========================================================
   MY ACCOUNT PAGE (WooCommerce template override)
========================================================= */
.ikowaina-account-shell{
  display:grid; grid-template-columns:300px 1fr; gap:32px;
  width:100%; max-width:1920px; margin:32px auto; padding:0 clamp(24px, 4vw, 64px); box-sizing:border-box;
}
.ikowaina-account-sidebar{
  background:var(--surface,#F7F7F8); border-radius:var(--radius-lg,16px); padding:24px;
  height:fit-content;
}
.ikowaina-account-header{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.ikowaina-account-header img{ border-radius:50%; width:64px; height:64px; }
.ikowaina-account-avatar-placeholder{
  width:64px; height:64px; border-radius:50%; background:var(--primary);
  display:flex; align-items:center; justify-content:center; flex:0 0 auto;
}
.ikowaina-account-header div{ display:flex; flex-direction:column; }
.ikowaina-account-header strong{ font-size:15px; }
.ikowaina-account-header span{ font-size:13px; color:var(--text2); }

.ikowaina-account-btn{ display:block; width:100%; text-align:center; margin-bottom:10px; }

.ikowaina-account-nav{ margin-top:16px; border-top:1px solid var(--border); }
.ikowaina-account-nav a{
  display:flex; align-items:center; gap:12px; padding:14px 4px;
  border-bottom:1px solid var(--border); color:inherit; font-weight:700; font-size:14px;
}
.ikowaina-account-nav a .chev{ margin-inline-start:auto; opacity:.4; }
.ikowaina-account-nav a.is-active{ color:var(--primary); }

.ikowaina-account-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 4px; border-bottom:1px solid var(--border); font-weight:700; font-size:14px;
}
.ikowaina-account-lang{ margin-top:16px; }

.ikowaina-account-content{
  background:var(--bg); color:var(--text); border-radius:var(--radius-lg,16px); padding:36px;
  border:1px solid var(--border); min-width:0; min-height:70vh;
}

/* =========================================================
   FIXED DASHBOARD SHELL (logged-in My Account area only)
   The header and sidebar never move — only the content pane
   scrolls internally, and only if a section's content is taller
   than the available space. Navigation between sections is by
   clicking sidebar items, never by the page itself scrolling.
   Excludes the logged-out bare login screen (its own separate,
   unrelated layout). --ikowaina-header-h/--ikowaina-tabbar-h are
   set in assets/js/main.js from the REAL rendered header height,
   since that varies (announcement bar, WP admin bar, breakpoint).
========================================================= */
body.ikowaina-account-page:not(.ikowaina-bare-login-page){
  overflow:hidden; height:100dvh;
}
body.ikowaina-account-page:not(.ikowaina-bare-login-page) .site-footer{
  display:none;
}
body.ikowaina-account-page:not(.ikowaina-bare-login-page) .ikowaina-account-shell{
  position:fixed;
  top:var(--ikowaina-header-h, 110px);
  inset-inline:0;
  bottom:var(--ikowaina-tabbar-h, 0px);
  margin:0; overflow:hidden;
}
body.ikowaina-account-page:not(.ikowaina-bare-login-page) .ikowaina-account-sidebar,
body.ikowaina-account-page:not(.ikowaina-bare-login-page) .ikowaina-account-content{
  height:100%; overflow-y:auto; min-height:0;
}

/* =========================================================
   MY ACCOUNT PAGE — logged-in dashboard (v2 design)
   Scoped entirely under .ikowaina-account-sidebar--v2 so the
   logged-out auth sidebar above is completely unaffected.
========================================================= */
.ikowaina-account-sidebar--v2{
  background:var(--bg); border:1px solid var(--border); padding:20px;
  display:flex; flex-direction:column;
}
.ikowaina-account-header-v2{
  display:flex; align-items:center; gap:14px; padding:14px; margin-bottom:18px;
  background:var(--surface,#F7F7F8); border-radius:var(--radius-md,12px);
}
.ikowaina-avatar-initials{
  width:52px; height:52px; border-radius:50%; background:var(--primary); color:#fff;
  display:flex; align-items:center; justify-content:center; flex:0 0 auto;
  font-weight:900; font-size:16px; letter-spacing:.02em;
}
.ikowaina-avatar-upload-btn{
  position:relative; padding:0; border:0; background:none; cursor:pointer; flex:0 0 auto;
  border-radius:50%;
}
.ikowaina-avatar-edit-badge{
  position:absolute; bottom:-2px; inset-inline-end:-2px; width:20px; height:20px; border-radius:50%;
  background:var(--primary); border:2px solid var(--bg);
  display:flex; align-items:center; justify-content:center;
}
.ikowaina-account-header-v2 div{ display:flex; flex-direction:column; min-width:0; }
.ikowaina-account-header-v2 strong{ font-size:15px; font-weight:900; color:var(--text); }
.ikowaina-account-header-v2 span{ font-size:12.5px; color:var(--text2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.ikowaina-account-nav-v2{ display:flex; flex-direction:column; gap:2px; }
.ikowaina-account-nav-v2 a{
  display:flex; align-items:center; gap:12px; padding:12px 14px;
  border-radius:var(--radius-md,10px); color:var(--text2); font-weight:700; font-size:14.5px;
}
.ikowaina-account-nav-v2 a svg{ flex:0 0 auto; }
.ikowaina-account-nav-v2 a.is-active{
  background:color-mix(in srgb, var(--primary) 12%, transparent);
  color:var(--primary); box-shadow:inset 3px 0 0 var(--primary);
}
.ikowaina-account-nav-v2 a:hover:not(.is-active){ background:var(--surface,#F7F7F8); }

.ikowaina-account-v2-footer{ margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.ikowaina-account-v2-footer .ikowaina-account-row,
.ikowaina-account-v2-footer .ikowaina-account-lang{ padding-left:4px; padding-right:4px; }
.ikowaina-account-logout-v2{
  display:flex; align-items:center; gap:10px; margin-top:14px; padding:12px 14px;
  border-radius:var(--radius-md,10px); background:#fde9e6; color:#c0362c; font-weight:800; font-size:14.5px;
}
[data-theme="dark"] .ikowaina-account-logout-v2{ background:rgba(192,54,44,.18); }

@media (max-width:900px){
  .ikowaina-account-sidebar--v2{ height:auto; }
}


.account-panel-switch-wrap{ position:relative; display:inline-block; }

.ikowaina-auth-forms{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.ikowaina-auth-col h2{ font-size:20px; margin-bottom:16px; }
.ikowaina-auth-col .form-row{ margin-bottom:16px; }
.ikowaina-auth-col label{ display:block; font-weight:700; font-size:13px; margin-bottom:6px; }
.ikowaina-login-row{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.ikowaina-lost-password{ margin-top:10px; font-size:13px; }
.ikowaina-social-divider{
  text-align:center; margin:20px 0; position:relative; color:var(--text2); font-size:12px; font-weight:700;
}
.ikowaina-social-divider::before, .ikowaina-social-divider::after{
  content:''; position:absolute; top:50%; width:42%; height:1px; background:var(--border);
}
.ikowaina-social-divider::before{ left:0; }
.ikowaina-social-divider::after{ right:0; }

@media (max-width:900px){
  .ikowaina-account-shell{ grid-template-columns:1fr; }
  .ikowaina-auth-forms{ grid-template-columns:1fr; }
}

/* Bare login screen (logged-out My Account page): full-viewport,
   plain white, centered both axes — no header/footer/sidebar. */
.ikowaina-bare-login-page{ margin:0; background:#fff; }
.ikowaina-bare-login-wrap{
  min-height:100vh; min-height:100dvh;
  display:flex; align-items:center; justify-content:center;
  padding:20px; box-sizing:border-box;
}
.ikowaina-bare-login-wrap .ikowaina-auth-page{
  margin:0; padding:0;
}

.ikowaina-auth-page{
  max-width:900px; margin:40px auto; padding:0 20px;
}

.ikowaina-auth-page--single{ max-width:420px; }
.ikowaina-auth-page--single .ikowaina-auth-view{
  background:transparent; border:0; padding:0;
}
.ikowaina-auth-avatar{
  width:118px; height:118px; border-radius:50%; background:var(--primary);
  display:flex; align-items:center; justify-content:center; margin:40px auto 28px;
}
.ikowaina-auth-avatar svg{ width:52px; height:52px; }
.ikowaina-icon-form .form-row{ margin-bottom:14px; }
.ikowaina-icon-field{ position:relative; }
.ikowaina-icon-field .field-icon{
  position:absolute; top:50%; transform:translateY(-50%); inset-inline-start:16px;
  color:var(--text2); pointer-events:none;
}
.ikowaina-icon-field input{
  padding-inline-start:46px !important; height:52px; font-size:15px;
}
.ikowaina-pw-toggle{
  position:absolute; top:50%; transform:translateY(-50%); inset-inline-end:14px;
  background:none; border:0; padding:4px; cursor:pointer; color:var(--text2); display:flex;
}
.ikowaina-icon-field:has(.ikowaina-pw-toggle) input{ padding-inline-end:42px !important; }

.ikowaina-forgot-row{ text-align:end; margin:0 0 18px; }
.ikowaina-forgot-row a{ color:var(--primary); font-weight:700; font-size:14px; }
.ikowaina-auth-submit{ width:100%; margin-bottom:0; height:52px; font-size:16px; }
.ikowaina-remember-row{ display:none; }

.ikowaina-switch-row{ text-align:center; margin-top:22px; font-size:14px; color:var(--text2); }
.ikowaina-switch-row a{ color:var(--primary); font-weight:700; margin-inline-start:4px; }

.ikowaina-auth-page--single .form-row-first,
.ikowaina-auth-page--single .form-row-last{
  display:inline-block; width:calc(50% - 6px);
}
.ikowaina-auth-page--single .form-row-first{ margin-inline-end:12px; }
.ikowaina-auto-pw-note{ font-size:13px; color:var(--text2); }

.ikowaina-social-divider{ margin:20px 0; }

.ikowaina-social-btn{
  display:flex; align-items:center; justify-content:center; gap:12px; width:100%;
  padding:14px 20px; margin-bottom:10px; border:1.5px solid var(--border); border-radius:var(--radius-md,10px);
  background:var(--bg); color:var(--text); font-weight:700; font-size:15px; cursor:pointer;
}
.ikowaina-social-btn:last-child{ margin-bottom:0; }

@media (max-width:480px){
  .ikowaina-auth-page--single .form-row-first,
  .ikowaina-auth-page--single .form-row-last{ display:block; width:100%; margin-inline-end:0; }
}

/* Order detail page */
.ikowaina-order-detail{ max-width:900px; margin:0 auto; }
.ikowaina-order-detail-header{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.ikowaina-order-detail-header h2{ margin:0 0 4px; font-size:20px; }
.ikowaina-order-detail-header p{ margin:0; color:var(--text2); font-size:13px; }
.ikowaina-order-status{
  padding:6px 14px; border-radius:var(--radius-full); font-weight:700; font-size:12.5px;
  background:var(--orange-soft); color:var(--primary);
}
.ikowaina-order-status.status-completed, .ikowaina-order-status.status-delivered{ background:#e3f7ea; color:#1a9648; }
[data-theme="dark"] .ikowaina-order-status.status-completed, [data-theme="dark"] .ikowaina-order-status.status-delivered{ background:#0f2a1c; color:#4ade80; }
.ikowaina-invoice-btn, .ikowaina-buy-again-btn{
  display:inline-flex; align-items:center; gap:8px; margin-inline-start:auto; width:auto !important; padding:10px 18px !important;
}

.ikowaina-order-items{ border-top:1px solid var(--border); margin-bottom:24px; }
.ikowaina-order-item{ display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--border); }
.ikowaina-order-item-img img{ width:64px; height:64px; border-radius:var(--radius-md); object-fit:cover; }
.ikowaina-order-item-info{ display:flex; flex-direction:column; gap:4px; flex:1; }
.ikowaina-order-item-price{ font-weight:700; }

.ikowaina-order-cards{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:24px; }
.ikowaina-order-card{
  background:var(--surface); border-radius:var(--radius-md); padding:18px; border:1px solid var(--border);
}
.ikowaina-order-card h4{ margin:0 0 10px; font-size:14px; }
.ikowaina-order-card address{ font-style:normal; color:var(--text2); line-height:1.6; font-size:14px; }
.ikowaina-order-timeline{ list-style:none; margin:0; padding:0; }
.ikowaina-order-timeline li{ display:flex; justify-content:space-between; gap:10px; padding:8px 0; font-size:13px; border-bottom:1px solid var(--border); }
.ikowaina-order-timeline li:last-child{ border-bottom:0; }
.ikowaina-order-timeline time{ color:var(--text2); white-space:nowrap; }

.ikowaina-order-totals{ border-top:1px solid var(--border); padding-top:16px; }
.ikowaina-order-totals > div{ display:flex; justify-content:space-between; padding:6px 0; color:var(--text2); font-size:14px; }
.ikowaina-order-total-final{ font-weight:800; font-size:16px; color:var(--text) !important; }

@media (max-width:640px){
  .ikowaina-order-cards{ grid-template-columns:1fr; }
}

/* Native WooCommerce tables inside the account content area (orders
   list, address book) — WC's own default markup, previously left
   completely unstyled and therefore not following dark mode at all. */
.ikowaina-account-content table.woocommerce-orders-table,
.ikowaina-account-content table.shop_table{
  width:100%; border-collapse:collapse; background:var(--bg); color:var(--text);
}
.ikowaina-account-content table.woocommerce-orders-table th,
.ikowaina-account-content table.shop_table th{
  text-align:start; padding:12px 8px; border-bottom:2px solid var(--border); color:var(--text2); font-size:12.5px; font-weight:800; text-transform:uppercase;
}
.ikowaina-account-content table.woocommerce-orders-table td,
.ikowaina-account-content table.shop_table td{
  padding:14px 8px; border-bottom:1px solid var(--border); font-size:14px;
}
.ikowaina-account-content .woocommerce-Addresses,
.ikowaina-account-content .woocommerce-Address{
  color:var(--text);
}
.ikowaina-account-content address{ font-style:normal; color:var(--text2); line-height:1.6; }
.ikowaina-account-content .woocommerce-message,
.ikowaina-account-content .woocommerce-error,
.ikowaina-account-content .woocommerce-info{
  background:var(--surface); color:var(--text); border-inline-start:4px solid var(--primary);
  padding:14px 18px; border-radius:var(--radius-sm); list-style:none; margin-bottom:20px; font-size:14px;
}

/* ==== Orders list (tabs + rows) ==== */
.ikowaina-orders-title-row{ display:flex; align-items:center; gap:14px; margin-bottom:6px; }
.ikowaina-orders-title-row .ikowaina-orders-title{ margin:0; }
.ikowaina-orders-subtitle{ color:var(--text2); font-size:14px; margin:0 0 20px; }
.ikowaina-back-square{
  display:flex; align-items:center; justify-content:center; flex:0 0 auto;
  width:36px; height:36px; border:1px solid var(--border); border-radius:var(--radius-md,10px);
  color:var(--text);
}
.ikowaina-orders-title{ font-size:26px; font-weight:900; margin:0 0 20px; color:var(--text); }
.ikowaina-orders-tabs{
  display:flex; gap:10px; border-bottom:0; margin-bottom:24px; overflow-x:auto; padding-bottom:2px;
}
.ikowaina-orders-tabs a{
  display:flex; align-items:center; gap:8px; padding:10px 16px; color:var(--text); font-weight:700; font-size:14px;
  text-decoration:none; white-space:nowrap; border-radius:var(--radius-full,999px);
  background:var(--surface,#F3F4F6); border:1px solid transparent;
}
.ikowaina-orders-tabs a.is-active{
  color:var(--primary); background:color-mix(in srgb, var(--primary) 12%, transparent);
  border-color:color-mix(in srgb, var(--primary) 35%, transparent);
}
.ikowaina-orders-empty-state{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:64px 20px;
}
.ikowaina-orders-empty-icon{
  width:96px; height:96px; border-radius:50%; background:var(--surface,#F3F4F6);
  display:flex; align-items:center; justify-content:center; color:var(--text2); margin-bottom:20px;
}
.ikowaina-orders-empty-title{ font-size:18px; font-weight:800; color:var(--text); }
.ikowaina-orders-empty-sub{ color:var(--text2); font-size:14px; margin:6px 0 22px; }
.ikowaina-orders-empty-cta{ display:inline-flex; align-items:center; gap:8px; width:auto; padding:14px 26px; }

/* Addresses page */
.ikowaina-orders-title-row{ position:relative; }
.ikowaina-addresses-add-btn{
  display:inline-flex; align-items:center; gap:8px; width:auto; margin-inline-start:auto;
  padding:12px 20px;
}
.ikowaina-address-cards{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.ikowaina-address-card{ border:1px solid var(--border); border-radius:var(--radius-lg,14px); padding:22px; }
.ikowaina-address-card-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.ikowaina-address-card-head h3{ font-size:15px; font-weight:800; margin:0; color:var(--text); }
.ikowaina-address-edit-link{ color:var(--primary); font-weight:700; font-size:13px; }
.ikowaina-address-card address{ font-style:normal; color:var(--text2); line-height:1.7; font-size:14px; }
.ikowaina-address-not-set{ color:var(--text2); font-size:14px; margin:0; }
@media (max-width:640px){
  .ikowaina-address-cards{ grid-template-columns:1fr; }
  .ikowaina-orders-title-row{ flex-wrap:wrap; }
  .ikowaina-addresses-add-btn{ margin-inline-start:0; order:3; width:100%; justify-content:center; }
}

/* Address book (real, working Home/Work/Other multi-address feature) */
.ikowaina-address-book-list{ display:flex; flex-direction:column; gap:14px; }
.ikowaina-address-book-card{ border:1px solid var(--border); border-radius:var(--radius-lg,14px); padding:18px 20px; position:relative; }
.ikowaina-address-book-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.ikowaina-address-book-title{ display:flex; align-items:center; gap:8px; font-weight:800; font-size:15px; color:var(--text); }
.ikowaina-address-book-name{ display:block; font-size:14.5px; color:var(--text); margin-bottom:4px; }
.ikowaina-address-book-card address{ font-style:normal; color:var(--text2); line-height:1.6; font-size:13.5px; }
.ikowaina-address-book-phone{ color:var(--text2); font-size:13.5px; margin:6px 0 0; }
.ikowaina-address-book-menu{ position:relative; }
.ikowaina-address-book-menu-btn{ width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--text2); }
.ikowaina-address-book-menu-btn:hover{ background:var(--surface); color:var(--text); }
.ikowaina-address-book-menu-list{
  position:absolute; top:calc(100% + 4px); inset-inline-end:0; min-width:160px; z-index:60;
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-md,10px);
  box-shadow:var(--shadow-card, 0 8px 24px rgba(0,0,0,.12)); padding:6px; display:none;
}
.ikowaina-address-book-menu.is-open .ikowaina-address-book-menu-list{ display:block; }
.ikowaina-address-book-menu-list a{ display:block; padding:9px 12px; border-radius:var(--radius-sm,8px); font-size:13.5px; font-weight:600; color:var(--text); }
.ikowaina-address-book-menu-list a:hover{ background:var(--surface); }

/* Address add/edit form + Settings' account-details form (shared style) */
.ikowaina-address-form{ max-width:520px; }
.ikowaina-address-form-label-row{ margin-bottom:18px; }
.ikowaina-address-form-label{ display:block; font-weight:700; font-size:13.5px; margin-bottom:8px; color:var(--text); }
.ikowaina-address-label-picker{ display:flex; gap:10px; flex-wrap:wrap; }
.ikowaina-address-label-option input{ position:absolute; opacity:0; width:1px; height:1px; }
.ikowaina-address-label-option span{
  display:flex; align-items:center; gap:6px; padding:10px 16px; border:1.5px solid var(--border);
  border-radius:var(--radius-full,999px); font-weight:700; font-size:13.5px; color:var(--text2); cursor:pointer;
}
.ikowaina-address-label-option input:checked + span{ border-color:var(--primary); color:var(--primary); background:var(--orange-soft); }
.ikowaina-address-form-field{ margin-bottom:14px; }
.ikowaina-address-form-field label{ display:block; font-weight:700; font-size:13px; margin-bottom:6px; color:var(--text); }
.ikowaina-address-form-field input{
  width:100%; box-sizing:border-box; padding:12px 14px; border:1px solid var(--border);
  border-radius:var(--radius-md,10px); background:var(--bg); color:var(--text); font-size:14px; font-family:inherit;
}
.ikowaina-address-form-field input:focus{ outline:none; border-color:var(--primary); }
.ikowaina-address-default-check{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--text); margin:6px 0 20px; cursor:pointer; }
.ikowaina-address-form-actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* Settings hub */
.ikowaina-account-nav-v2-row{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  border:1px solid var(--border); border-radius:var(--radius-lg,14px); padding:18px 20px; color:var(--text);
}
.ikowaina-account-nav-v2-row:hover{ border-color:var(--primary); }

/* Payment Methods page */
.ikowaina-trust-badges{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:760px; margin:8px auto 0;
  border-top:1px solid var(--border); padding-top:32px;
}
.ikowaina-trust-badge{ display:flex; align-items:flex-start; gap:10px; text-align:start; }
.ikowaina-trust-badge svg{ flex:0 0 auto; margin-top:2px; color:var(--text); }
.ikowaina-trust-badge strong{ display:block; font-size:13.5px; font-weight:800; color:var(--text); }
.ikowaina-trust-badge span{ display:block; font-size:12.5px; color:var(--text2); margin-top:2px; }
.ikowaina-payment-default-pill{
  font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.03em;
  background:var(--orange-soft); color:var(--primary); padding:3px 10px; border-radius:var(--radius-full,999px);
}
.ikowaina-payment-card-actions{ display:flex; gap:16px; margin-top:14px; }
.ikowaina-payment-delete-link{ color:#c0362c; }
@media (max-width:640px){
  .ikowaina-trust-badges{ grid-template-columns:1fr; }
}

/* Notifications page */
.ikowaina-mark-read-btn{ display:inline-flex; align-items:center; gap:8px; padding:11px 18px; }
.ikowaina-notif-list{ display:flex; flex-direction:column; gap:12px; }
.ikowaina-notif-card{
  display:flex; align-items:center; gap:14px; border:1px solid var(--border);
  border-radius:var(--radius-lg,14px); padding:16px 18px;
}
.ikowaina-notif-icon{
  width:44px; height:44px; border-radius:50%; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
}
.ikowaina-notif-body{ display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.ikowaina-notif-body strong{ font-size:14.5px; font-weight:800; color:var(--text); }
.ikowaina-notif-body span{ font-size:13.5px; color:var(--text2); }
.ikowaina-notif-meta{ display:flex; align-items:center; gap:10px; flex:0 0 auto; color:var(--text2); }
.ikowaina-notif-meta time{ font-size:12.5px; white-space:nowrap; }
.ikowaina-notif-dot{ width:8px; height:8px; border-radius:50%; background:var(--primary); flex:0 0 auto; }
.ikowaina-notif-prefs-heading{ font-size:16px; font-weight:800; color:var(--text); margin:36px 0 4px; padding-top:24px; border-top:1px solid var(--border); }
@media (max-width:640px){
  .ikowaina-notif-card{ flex-wrap:wrap; }
  .ikowaina-notif-meta{ margin-inline-start:58px; }
}

.ikowaina-orders-table{ border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; }
.ikowaina-orders-table-head{
  display:grid; grid-template-columns:1.8fr 1fr 1.4fr 1fr 0.8fr 60px; gap:12px;
  padding:12px 16px; background:var(--surface);
  font-size:11.5px; font-weight:800; text-transform:uppercase; color:var(--text2); letter-spacing:.02em;
}
.ikowaina-orders-table-head .col-total{ text-align:end; }
.ikowaina-orders-table-head .col-actions{ text-align:center; }

.ikowaina-order-row{
  display:grid; grid-template-columns:1.8fr 1fr 1.4fr 1fr 0.8fr 60px; gap:12px; align-items:center;
  width:100%; padding:14px 16px;
  background:none; border:0; border-top:1px solid var(--border); cursor:pointer; text-align:start; font:inherit;
}
.ikowaina-order-row:first-of-type{ border-top:0; }
.ikowaina-order-row:hover{ background:var(--surface); }

.ikowaina-order-row-thumb{ display:none; }
.ikowaina-order-row-info{ display:flex; align-items:center; gap:12px; min-width:0; }
.ikowaina-order-row-info strong{ font-size:14.5px; color:var(--text); white-space:nowrap; }
.ikowaina-order-row-date-mobile{ display:none; font-size:12.5px; color:var(--text2); }
.ikowaina-order-row-date{ font-size:13.5px; color:var(--text2); }
.ikowaina-order-row-items{ font-size:13.5px; color:var(--text2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ikowaina-order-row-total{ font-size:14px; font-weight:700; color:var(--text); text-align:end; }
.ikowaina-order-row-arrow{ display:flex; align-items:center; justify-content:center; color:var(--text2); }

@media (min-width:481px){
  .ikowaina-order-row-thumb{ display:block; }
  .ikowaina-order-row-thumb img{ width:40px; height:40px; object-fit:cover; border-radius:8px; display:block; }
}

@media (max-width:900px){
  .ikowaina-orders-table-head{ display:none; }
  .ikowaina-order-row{ grid-template-columns:1fr auto auto; }
  .ikowaina-order-row .col-date,
  .ikowaina-order-row .col-items{ display:none; }
  .ikowaina-order-row-date-mobile{ display:block; }
  .ikowaina-order-row-total{ font-size:13.5px; }
}
.ikowaina-orders-showing{ text-align:center; color:var(--text2); font-size:13.5px; margin-top:16px; }

.ikowaina-order-status{
  font-size:12px; font-weight:800; padding:5px 12px; border-radius:999px; white-space:nowrap;
  background:var(--surface); color:var(--text2);
}
.ikowaina-order-status.status-completed,
.ikowaina-order-status.status-delivered{ background:#e3f8ec; color:#0f8a4a; }
.ikowaina-order-status.status-processing,
.ikowaina-order-status.status-shipped{ background:#fff2df; color:#c17a09; }
.ikowaina-order-status.status-cancelled,
.ikowaina-order-status.status-failed{ background:#fde3e3; color:#c0362c; }

/* Order-detail content is now only ever shown on its own full page —
   the duplicate slide-over-panel version of these rules (which used
   to load AFTER and silently override the real full-page styles
   above) has been removed entirely, since the panel HTML/JS is gone. */


/* =========================================================
   WISHLIST — white product image frames, count badge,
   and the "My Wishlist" page (account-style layout).
========================================================= */
ul.products li.product a.woocommerce-LoopProduct-link img{ background:#FFFFFF!important; }
ul.products li.product{ background:#FFFFFF; }
[data-theme="dark"] ul.products li.product{ background:var(--bg); }
.ikw-count-badge.is-wide{ border-radius:999px!important; min-width:22px; padding:0 4px; }

body.ikowaina-wishlist-page .page-inner{ max-width:none; margin:0; padding:0; }
body.ikowaina-wishlist-page .page-title{ display:none; }
body.ikowaina-wishlist-page .entry-content a{ text-decoration:none; }
body.ikowaina-wishlist-page,
body.ikowaina-wishlist-page .site-main{ background:#FFFFFF; }
[data-theme="dark"] body.ikowaina-wishlist-page,
[data-theme="dark"] body.ikowaina-wishlist-page .site-main{ background:var(--bg); }

.ikw-shell{ align-items:start; }
.ikw-content{
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-lg,16px);
  padding:28px; min-width:0;
}
.ikw-content--full{ grid-column:1 / -1; max-width:1200px; width:100%; margin:0 auto; }
.ikw-head{ display:flex; align-items:flex-start; gap:18px; margin-bottom:26px; }
.ikw-back{
  width:44px; height:44px; flex:0 0 auto; border-radius:12px; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center; color:var(--text)!important; background:var(--bg);
}
.ikw-titles{ flex:1; min-width:0; }
.ikw-titles h1{ font-size:30px; font-weight:900; margin:0; line-height:1.2; color:var(--text); }
.ikw-count{ color:var(--text2); font-size:15px; margin:6px 0 0; }
.ikw-tool{
  display:inline-flex; align-items:center; gap:9px; padding:11px 16px; border-radius:12px;
  background:var(--surface,#F7F7F8); border:1px solid var(--border); color:var(--text);
  font:inherit; font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap;
}
.ikw-tool:disabled{ opacity:.5; cursor:not-allowed; }
.ikw-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }

.ikw-check{ position:relative; display:inline-flex; align-items:center; gap:12px; cursor:pointer; }
.ikw-check input{ position:absolute; opacity:0; width:22px; height:22px; margin:0; cursor:pointer; }
.ikw-check span{
  width:22px; height:22px; border-radius:6px; border:1.5px solid #9A9AA0; background:#fff;
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; transition:all .15s ease-out;
}
.ikw-check input:checked + span{ background:var(--primary); border-color:var(--primary); }
.ikw-check input:checked + span::after{
  content:""; width:6px; height:11px; border:solid #fff; border-width:0 2.5px 2.5px 0; transform:rotate(45deg) translate(-1px,-1px);
}
.ikw-check input:focus-visible + span{ outline:2px solid var(--primary); outline-offset:2px; }
.ikw-check--inline em{ font-style:normal; font-size:15px; color:var(--text); }
.ikw-check--inline b{ font-weight:inherit; }

.ikw-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.ikw-card{
  border:1px solid var(--border); border-radius:14px; overflow:hidden; background:#FFFFFF;
  display:flex; flex-direction:column; transition:box-shadow .15s ease-out, border-color .15s ease-out;
}
[data-theme="dark"] .ikw-card{ background:var(--bg); }
.ikw-card.is-selected{ border-color:var(--primary); box-shadow:0 0 0 1px var(--primary); }
.ikw-media{ position:relative; background:#FFFFFF; }
.ikw-media .ikw-check{ position:absolute; top:14px; inset-inline-start:14px; z-index:3; }
.ikw-media .ik-wish{ top:12px; inset-inline-end:12px; }
.ikw-media .ik-wish svg{ fill:var(--primary); }
.ikw-img{ display:block; }
.ikw-img img{ display:block; width:100%; aspect-ratio:1 / 0.9; object-fit:contain; background:#FFFFFF; margin:0; border-radius:0!important; }
.ikw-info{ padding:14px 14px 16px; display:flex; flex-direction:column; gap:8px; flex:1; }
.ikw-name{ font-weight:800; font-size:16px; color:var(--text)!important; line-height:1.3; }
.ikw-price{ color:var(--primary); font-size:19px; font-weight:500; }
.ikw-price del{ color:var(--text2); opacity:.6; font-size:14px; margin-inline-end:6px; }
.ikw-price ins{ text-decoration:none; }
.ikw-stock{ display:flex; align-items:center; gap:7px; font-size:14px; font-weight:600; }
.ikw-stock-dot{ width:9px; height:9px; border-radius:50%; background:currentColor; }
.ikw-stock--in{ color:#1f8a3b; }
.ikw-stock--out{ color:#c0362c; }
.ikw-stock--back{ color:#b7791f; }
.ikw-btn{
  display:flex; align-items:center; justify-content:center; gap:9px; width:100%; min-height:44px;
  padding:10px 12px; border-radius:10px; font-size:15px; font-weight:700; text-align:center; box-sizing:border-box;
}
.ikw-info .ikw-btn--cart{ margin-top:4px; }
.ikw-btn--cart{ background:var(--primary); color:#fff!important; border:1px solid var(--primary); }
.ikw-btn--cart:hover{ background:#e85e12; }
.ikw-btn--cart.is-disabled{ background:#d9d9dc; border-color:#d9d9dc; color:#6b6b70!important; pointer-events:none; }
.ikw-btn--cart.loading{ opacity:.7; }
.ikw-btn--outline{ background:var(--bg); color:var(--text)!important; border:1px solid var(--border); }
.ikw-btn--outline:hover{ border-color:var(--text); }
.ikw-btn--auto{ display:inline-flex; width:auto; padding:10px 22px; }
.ikw-card .added_to_cart{ display:none!important; }

.ikw-banner{
  display:flex; align-items:center; gap:20px; margin-top:28px; padding:22px 26px; border-radius:14px;
  background:var(--orange-soft); color:var(--primary);
}
.ikw-banner div{ display:flex; flex-direction:column; gap:4px; }
.ikw-banner strong{ color:var(--text); font-weight:500; font-size:15.5px; }
.ikw-banner span{ color:var(--text2); font-size:14px; }

.ikw-toast{
  position:fixed; bottom:90px; left:50%; transform:translateX(-50%) translateY(10px); opacity:0; pointer-events:none;
  background:#0D0D0D; color:#fff; padding:10px 18px; border-radius:999px; font-size:14px; font-weight:600;
  transition:all .2s ease-out; z-index:999;
}
.ikw-toast.is-on{ opacity:1; transform:translateX(-50%) translateY(0); }

@media (max-width:1200px){ .ikw-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:900px){
  .ikw-shell{ grid-template-columns:1fr; }
  .ikw-shell .ikowaina-account-sidebar,
  .ikw-side{ display:none; }
}
@media (max-width:767px){
  .ikw-shell{ margin:0; padding:0; }
  .ikw-content{ border:0; border-radius:0; padding:18px 16px; }
  .ikw-head{ gap:12px; flex-wrap:wrap; }
  .ikw-back{ width:40px; height:40px; }
  .ikw-titles h1{ font-size:23px; }
  .ikw-share{ width:100%; justify-content:center; }
  .ikw-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .ikw-info{ padding:12px 10px 12px; }
  .ikw-name{ font-size:14px; }
  .ikw-price{ font-size:16px; }
  .ikw-btn{ font-size:13px; min-height:40px; gap:6px; }
  .ikw-btn--cart svg{ width:16px; height:16px; }
  .ikw-banner{ padding:16px; gap:14px; }
  .ikw-toolbar .ikw-tool span{ display:none; }
}


/* ---- Wishlist page v2: list layout (rows) ---- */
.ikw-side{ display:flex; flex-direction:column; gap:18px; min-width:0; }
.ikw-nav-badge{
  margin-inline-start:auto; min-width:24px; height:24px; padding:0 6px; border-radius:999px;
  background:var(--primary); color:#fff; font-size:12px; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center; line-height:1;
}
.ikw-promo{
  position:relative; overflow:hidden; border-radius:var(--radius-lg,16px); padding:22px 20px 26px;
  background:linear-gradient(160deg, var(--orange-soft), #fff 85%); border:1px solid var(--border);
  color:var(--primary);
}
[data-theme="dark"] .ikw-promo{ background:var(--orange-soft); }
.ikw-promo svg{ display:block; margin-bottom:10px; }
.ikw-promo p{ margin:0 0 6px; color:var(--text); font-size:15px; font-weight:600; line-height:1.45; }
.ikw-promo span{ color:var(--text2); font-size:13px; line-height:1.5; }
.ikw-content--full .ikw-promo{ margin-top:24px; }

.ikw-head{ margin-bottom:18px; }
.ikw-bar{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border-bottom:1px solid var(--border); margin-bottom:14px;
}
.ikw-tabs{ display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; }
.ikw-tabs::-webkit-scrollbar{ display:none; }
.ikw-tab{
  display:inline-flex; align-items:center; gap:7px; padding:12px 14px; margin-bottom:-1px;
  background:none; border:0; border-bottom:2px solid transparent; cursor:pointer; white-space:nowrap;
  font:inherit; font-size:14px; font-weight:600; color:var(--text2);
}
.ikw-tab b{ font-weight:inherit; }
.ikw-tab.is-active{ color:var(--text); font-weight:700; border-bottom-color:var(--primary); }
.ikw-tab-dot{ width:8px; height:8px; border-radius:50%; display:inline-block; }
.ikw-tab-dot--in{ background:#1f8a3b; }
.ikw-tab-dot--out{ background:#8e8e93; }
.ikw-sort{ display:flex; align-items:center; gap:10px; padding-bottom:10px; font-size:14px; color:var(--text2); }
.ikw-sort-select{
  appearance:none; -webkit-appearance:none; font:inherit; font-size:14.5px; font-weight:600; color:var(--text);
  padding:11px 40px 11px 16px; border-radius:12px; border:1px solid var(--border); background-color:var(--surface,#F7F7F8);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230D0D0D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-size:16px; background-position:right 14px center; cursor:pointer;
}
html[dir="rtl"] .ikw-sort-select{ padding:11px 16px 11px 40px; background-position:left 14px center; }

.ikw-selbar{
  display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px;
  padding:10px 14px; border-radius:12px; background:var(--orange-soft);
}
.ikw-selbar[hidden]{ display:none; }
.ikw-selbar .ikw-tool{ background:var(--bg); }
.ikw-selbar .ikw-tool b{ font-weight:inherit; }

.ikw-list{ display:flex; flex-direction:column; gap:10px; }
.ikw-none{ text-align:center; color:var(--text2); padding:40px 0; margin:0; }
.ikw-row{
  display:grid; grid-template-columns:auto 130px minmax(0,1.4fr) minmax(max-content,1fr) 150px auto;
  align-items:center; gap:18px; padding:12px 16px; border:1px solid var(--border); border-radius:14px;
  background:#FFFFFF; transition:border-color .15s ease-out, box-shadow .15s ease-out;
}
[data-theme="dark"] .ikw-row{ background:var(--bg); }
.ikw-row[hidden]{ display:none; }
.ikw-row.is-selected{ border-color:var(--primary); box-shadow:0 0 0 1px var(--primary); }
.ikw-row-check{ align-self:start; margin-top:6px; }
.ikw-row > .ikw-row-check{ grid-column:1; grid-row:1; }
.ikw-row > .ikw-row-img{ grid-column:2; grid-row:1; }
.ikw-row > .ikw-row-info{ grid-column:3; grid-row:1; }
.ikw-row > .ikw-row-price{ grid-column:4; grid-row:1; }
.ikw-row > .ikw-row-actions{ grid-column:5; grid-row:1; }
.ikw-row > .ikw-row-tools{ grid-column:6; grid-row:1; }
.ikw-row-img{ display:block; }
.ikw-row-img img{ display:block; width:130px; height:96px; object-fit:contain; background:#FFFFFF; margin:0; border-radius:8px!important; }
.ikw-row-info{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.ikw-row-info .ikw-name{ font-size:15.5px; font-weight:800; line-height:1.3; }
.ikw-meta{ display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--text2); flex-wrap:wrap; }
.ikw-meta i{ width:1px; height:14px; background:var(--border); display:inline-block; }
.ikw-stars{ display:flex; align-items:center; gap:6px; font-size:13px; color:var(--text2); }
.ikw-stars em{ font-style:normal; }
.ikw-stars-track{ position:relative; display:inline-block; color:#E3E3E6; letter-spacing:2px; font-size:14px; line-height:1; }
.ikw-stars-fill{ position:absolute; inset-block:0; inset-inline-start:0; overflow:hidden; white-space:nowrap; color:#F5A623; }
.ikw-row .ikw-stock{ font-size:13px; }
.ikw-row-price{ display:flex; align-items:center; gap:10px; flex-wrap:nowrap; white-space:nowrap; }
.ikw-row-price strong{ color:var(--primary); font-size:19px; font-weight:800; }
.ikw-row-price strong .amount, .ikw-row-price strong bdi{ color:inherit; }
.ikw-row-price del{ color:var(--text2); font-size:14.5px; }
.ikw-off{ background:#fde8e6; color:#d4382c; font-size:12px; font-weight:700; padding:3px 8px; border-radius:6px; }
.ikw-row-actions{ display:flex; flex-direction:column; gap:8px; }
.ikw-row-actions .ikw-btn{ min-height:38px; font-size:13.5px; padding:8px 10px; border-radius:9px; margin:0; }
.ikw-row-actions .added_to_cart{ display:none!important; }
.ikw-row-tools{ display:flex; align-items:center; gap:6px; }
.ikw-row-tools .ik-wish{ position:static; width:36px; height:36px; box-shadow:none; background:transparent; }
.ikw-row-tools .ik-wish svg{ fill:var(--primary); }
.ikw-row-tools .ik-wish:not(.is-active) svg{ fill:none; }
.ikw-more{ position:relative; }
.ikw-more-btn{
  width:32px; height:36px; border:0; background:none; color:var(--text); cursor:pointer; border-radius:8px;
  display:flex; align-items:center; justify-content:center;
}
.ikw-more-btn:hover{ background:var(--surface,#F7F7F8); }
.ikw-more-menu{
  position:absolute; top:100%; inset-inline-end:0; z-index:20; min-width:210px; margin-top:4px; padding:6px;
  background:var(--bg); border:1px solid var(--border); border-radius:12px; box-shadow:0 12px 30px rgba(0,0,0,.12);
}
.ikw-more-menu[hidden]{ display:none; }
.ikw-more-menu button{
  display:block; width:100%; text-align:start; padding:10px 12px; border:0; background:none; border-radius:8px;
  font:inherit; font-size:14px; font-weight:600; color:var(--text); cursor:pointer;
}
.ikw-more-menu button:hover{ background:var(--surface,#F7F7F8); }
.ikw-more-menu .ikw-menu-remove{ color:#c0362c; }

@media (max-width:1200px){
  .ikw-row{ grid-template-columns:auto 100px minmax(0,1fr) 140px auto; }
  .ikw-row-img img{ width:100px; height:80px; }
  .ikw-row > .ikw-row-check{ grid-row:1 / span 2; }
  .ikw-row > .ikw-row-img{ grid-row:1 / span 2; }
  .ikw-row > .ikw-row-price{ grid-column:3; grid-row:2; }
  .ikw-row > .ikw-row-actions{ grid-column:4; grid-row:1 / span 2; }
  .ikw-row > .ikw-row-tools{ grid-column:5; grid-row:1 / span 2; }
}
@media (max-width:900px){
  .ikw-side{ display:none; }
}
@media (max-width:767px){
  .ikw-bar{ flex-direction:column; align-items:stretch; gap:8px; }
  .ikw-bar > *{ min-width:0; max-width:100%; }
  .ikw-tab{ padding:12px 10px; font-size:13.5px; }
  .ikw-content{ min-width:0; overflow:hidden; }
  .ikw-sort{ justify-content:space-between; }
  .ikw-row{
    grid-template-columns:auto 84px minmax(0,1fr) auto; gap:10px 12px; padding:12px;
  }
  .ikw-row-img img{ width:84px; height:84px; }
  .ikw-row > .ikw-row-check{ grid-column:1; grid-row:1; }
  .ikw-row > .ikw-row-img{ grid-column:2; grid-row:1; }
  .ikw-row > .ikw-row-info{ grid-column:3; grid-row:1; }
  .ikw-row > .ikw-row-tools{ grid-column:4; grid-row:1; align-self:start; flex-direction:column; gap:0; }
  .ikw-row > .ikw-row-price{ grid-column:2 / span 3; grid-row:2; margin:0; flex-wrap:wrap; }
  .ikw-row > .ikw-row-actions{ grid-column:1 / -1; grid-row:3; flex-direction:row; }
  .ikw-row-actions .ikw-btn{ flex:1; }
}


/* =========================================================
   WISHLIST — FIXED DASHBOARD
   The page itself never scrolls: header, sidebar, title, Share,
   tabs/Sort and Select-all bar stay put. Only the product list
   (.ikw-list) scrolls, inside a height fitted to the screen.
   --ikw-top / --ikw-bottom are measured in assets/js/wishlist.js
   (real header / phone tab-bar heights).
========================================================= */
html:has(body.ikowaina-wishlist-page){ overflow:hidden; height:100%; overscroll-behavior:none; }
body.ikowaina-wishlist-page{ overflow:hidden; height:100dvh; overscroll-behavior:none; }
body.ikowaina-wishlist-page .site-footer{ display:none; }
body.ikowaina-wishlist-page .ikw-shell{
  position:fixed; top:var(--ikw-top, 110px); bottom:var(--ikw-bottom, 0px); inset-inline:0;
  margin:0; padding-block:24px; overflow:hidden;
  grid-template-rows:minmax(0,1fr); align-items:stretch; z-index:1;
}
body.ikowaina-wishlist-page .ikw-side{ min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; }
body.ikowaina-wishlist-page .ikw-side::-webkit-scrollbar{ display:none; }
body.ikowaina-wishlist-page .ikw-content{
  display:flex; flex-direction:column; min-height:0; height:100%; overflow:hidden;
}
body.ikowaina-wishlist-page .ikw-content > *{ flex:0 0 auto; }
body.ikowaina-wishlist-page .ikw-content > .ikw-list{
  flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch; touch-action:pan-y;
  padding:2px; padding-inline-end:8px; margin:-2px; margin-inline-end:-8px;
  scrollbar-width:thin; scrollbar-color:#c9c9ce transparent;
}
body.ikowaina-wishlist-page .ikw-list::-webkit-scrollbar{ width:6px; }
body.ikowaina-wishlist-page .ikw-list::-webkit-scrollbar-thumb{ background:#c9c9ce; border-radius:6px; }
body.ikowaina-wishlist-page .ikw-list::-webkit-scrollbar-track{ background:transparent; }
body.ikowaina-wishlist-page .ikw-content > .ik-wishlist-empty{ flex:1 1 auto; overflow-y:auto; }
.ikw-more-menu.is-up{ top:auto; bottom:100%; margin-top:0; margin-bottom:4px; }
@media (max-width:767px){
  body.ikowaina-wishlist-page .ikw-shell{ padding:0; }
  body.ikowaina-wishlist-page{ padding-bottom:0; }
  body.ikowaina-wishlist-page .ikw-content{ padding-bottom:12px; }
}


/* =========================================================
   WISHLIST — COMPACT SIZES (wishlist page only)
   Smaller spacing / images / text so the whole dashboard
   and more products fit on screen at once.
========================================================= */
@media (min-width:768px){
  body.ikowaina-wishlist-page .ikw-shell{ padding-block:16px; gap:22px; grid-template-columns:260px 1fr; }
  body.ikowaina-wishlist-page .ikw-side{ gap:12px; }
  body.ikowaina-wishlist-page .ikw-side .ikowaina-account-sidebar--v2{ padding:14px; }
  body.ikowaina-wishlist-page .ikw-side .ikowaina-account-header-v2{ padding:10px; margin-bottom:10px; gap:10px; }
  body.ikowaina-wishlist-page .ikw-side .ikowaina-avatar-initials{ width:42px; height:42px; font-size:14px; }
  body.ikowaina-wishlist-page .ikw-side .ikowaina-account-header-v2 strong{ font-size:13.5px; }
  body.ikowaina-wishlist-page .ikw-side .ikowaina-account-header-v2 span{ font-size:11.5px; }
  body.ikowaina-wishlist-page .ikw-side .ikowaina-account-nav-v2 a{ padding:8px 12px; font-size:13.5px; gap:10px; }
  body.ikowaina-wishlist-page .ikw-side .ikowaina-account-nav-v2 a svg{ width:18px; height:18px; }
  body.ikowaina-wishlist-page .ikw-side .ikowaina-account-v2-footer{ margin-top:10px; padding-top:10px; }
  body.ikowaina-wishlist-page .ikw-side .ikowaina-account-logout-v2{ margin-top:10px; padding:9px 12px; font-size:13.5px; }
  body.ikowaina-wishlist-page .ikw-nav-badge{ min-width:20px; height:20px; font-size:11px; }
  body.ikowaina-wishlist-page .ikw-promo{ padding:14px 16px 16px; }
  body.ikowaina-wishlist-page .ikw-promo svg{ width:26px; height:26px; margin-bottom:6px; }
  body.ikowaina-wishlist-page .ikw-promo p{ font-size:13.5px; margin-bottom:4px; }
  body.ikowaina-wishlist-page .ikw-promo span{ font-size:12px; }

  body.ikowaina-wishlist-page .ikw-content{ padding:18px 20px; }
  body.ikowaina-wishlist-page .ikw-head{ gap:14px; margin-bottom:10px; align-items:center; }
  body.ikowaina-wishlist-page .ikw-back{ width:36px; height:36px; border-radius:10px; }
  body.ikowaina-wishlist-page .ikw-titles h1{ font-size:23px; }
  body.ikowaina-wishlist-page .ikw-count{ font-size:13px; margin-top:2px; }
  body.ikowaina-wishlist-page .ikw-tool{ padding:8px 13px; font-size:13px; border-radius:10px; gap:7px; }
  body.ikowaina-wishlist-page .ikw-tool svg{ width:16px; height:16px; }
  body.ikowaina-wishlist-page .ikw-bar{ margin-bottom:10px; }
  body.ikowaina-wishlist-page .ikw-tab{ padding:9px 12px; font-size:13px; }
  body.ikowaina-wishlist-page .ikw-sort{ padding-bottom:7px; font-size:13px; gap:8px; }
  body.ikowaina-wishlist-page .ikw-sort-select{ padding:7px 34px 7px 12px; font-size:13px; border-radius:10px; background-size:14px; background-position:right 11px center; }
  html[dir="rtl"] body.ikowaina-wishlist-page .ikw-sort-select{ padding:7px 12px 7px 34px; background-position:left 11px center; }
  body.ikowaina-wishlist-page .ikw-selbar{ padding:6px 10px; margin-bottom:8px; }

  body.ikowaina-wishlist-page .ikw-list{ gap:8px; }
  body.ikowaina-wishlist-page .ikw-row{
    grid-template-columns:auto 84px minmax(0,1.4fr) minmax(max-content,1fr) 128px auto;
    gap:14px; padding:8px 12px; border-radius:12px;
  }
  body.ikowaina-wishlist-page .ikw-row-check{ margin-top:2px; }
  body.ikowaina-wishlist-page .ikw-check span{ width:18px; height:18px; border-radius:5px; }
  body.ikowaina-wishlist-page .ikw-check input{ width:18px; height:18px; }
  body.ikowaina-wishlist-page .ikw-check input:checked + span::after{ width:5px; height:9px; border-width:0 2px 2px 0; }
  body.ikowaina-wishlist-page .ikw-row-img img{ width:84px; height:64px; }
  body.ikowaina-wishlist-page .ikw-row-info{ gap:3px; }
  body.ikowaina-wishlist-page .ikw-row-info .ikw-name{ font-size:14px; }
  body.ikowaina-wishlist-page .ikw-meta{ font-size:12px; gap:8px; }
  body.ikowaina-wishlist-page .ikw-meta i{ height:11px; }
  body.ikowaina-wishlist-page .ikw-stars{ font-size:12px; }
  body.ikowaina-wishlist-page .ikw-stars-track{ font-size:12px; letter-spacing:1px; }
  body.ikowaina-wishlist-page .ikw-row .ikw-stock{ font-size:12px; gap:6px; }
  body.ikowaina-wishlist-page .ikw-stock-dot{ width:7px; height:7px; }
  body.ikowaina-wishlist-page .ikw-row-price{ gap:8px; }
  body.ikowaina-wishlist-page .ikw-row-price strong{ font-size:16px; }
  body.ikowaina-wishlist-page .ikw-row-price del{ font-size:12.5px; }
  body.ikowaina-wishlist-page .ikw-off{ font-size:11px; padding:2px 6px; }
  body.ikowaina-wishlist-page .ikw-row-actions{ gap:6px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn{ min-height:32px; font-size:12.5px; padding:6px 8px; border-radius:8px; gap:6px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn svg{ width:15px; height:15px; }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish{ width:30px; height:30px; }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish svg{ width:16px; height:16px; }
  body.ikowaina-wishlist-page .ikw-more-btn{ width:28px; height:30px; }
}
@media (min-width:768px) and (max-width:1200px){
  body.ikowaina-wishlist-page .ikw-row{ grid-template-columns:auto 76px minmax(0,1fr) 124px auto; }
  body.ikowaina-wishlist-page .ikw-row-img img{ width:76px; height:60px; }
}
@media (max-width:767px){
  body.ikowaina-wishlist-page .ikw-content{ padding:12px 14px; }
  body.ikowaina-wishlist-page .ikw-head{ margin-bottom:10px; gap:10px; }
  body.ikowaina-wishlist-page .ikw-back{ width:34px; height:34px; }
  body.ikowaina-wishlist-page .ikw-titles h1{ font-size:20px; }
  body.ikowaina-wishlist-page .ikw-count{ font-size:12.5px; margin-top:2px; }
  body.ikowaina-wishlist-page .ikw-share{ padding:8px 12px; font-size:13px; }
  body.ikowaina-wishlist-page .ikw-tab{ padding:8px 8px; font-size:12.5px; }
  body.ikowaina-wishlist-page .ikw-sort{ font-size:12.5px; padding-bottom:6px; }
  body.ikowaina-wishlist-page .ikw-sort-select{ padding:6px 30px 6px 10px; font-size:12.5px; background-size:13px; background-position:right 10px center; }
  body.ikowaina-wishlist-page .ikw-bar{ gap:4px; margin-bottom:10px; }
  body.ikowaina-wishlist-page .ikw-list{ gap:8px; }
  body.ikowaina-wishlist-page .ikw-row{ grid-template-columns:auto 64px minmax(0,1fr) auto; gap:6px 10px; padding:10px; }
  body.ikowaina-wishlist-page .ikw-row-img img{ width:64px; height:64px; }
  body.ikowaina-wishlist-page .ikw-row-info{ gap:2px; }
  body.ikowaina-wishlist-page .ikw-row-info .ikw-name{ font-size:13.5px; }
  body.ikowaina-wishlist-page .ikw-meta, body.ikowaina-wishlist-page .ikw-stars, body.ikowaina-wishlist-page .ikw-row .ikw-stock{ font-size:11.5px; }
  body.ikowaina-wishlist-page .ikw-row-price strong{ font-size:15px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn{ min-height:34px; font-size:12.5px; padding:6px 8px; }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish{ width:30px; height:30px; }
}

/* Phone: no "Save your favourite items…" card on the Wishlist page,
   so the product list gets the full height. */
@media (max-width:767px){
  body.ikowaina-wishlist-page .ikw-promo{ display:none!important; }
}

/* =========================================================
   WISHLIST — PHONE LAYOUT (compact, uses the space better)
   Title + Share on one line, tabs + Sort on one line, and each
   product as a compact row: image left, details middle, heart/⋮
   top-right, Add to Cart + View beside the price.
========================================================= */
.ikw-l-short{ display:none; }
@media (max-width:767px){
  .ikw-l-long{ display:none; }
  .ikw-l-short{ display:inline; }

  body.ikowaina-wishlist-page .ikw-content{ padding:10px 12px; }
  body.ikowaina-wishlist-page .ikw-head{ flex-wrap:nowrap; align-items:center; gap:10px; margin-bottom:8px; }
  body.ikowaina-wishlist-page .ikw-back{ width:34px; height:34px; border-radius:10px; }
  body.ikowaina-wishlist-page .ikw-titles h1{ font-size:19px; }
  body.ikowaina-wishlist-page .ikw-count{ font-size:12px; margin-top:1px; }
  body.ikowaina-wishlist-page .ikw-share{ width:auto; flex:0 0 auto; padding:7px 12px; font-size:12.5px; gap:6px; border-radius:10px; }
  body.ikowaina-wishlist-page .ikw-share svg{ width:15px; height:15px; }

  body.ikowaina-wishlist-page .ikw-bar{ flex-direction:row; flex-wrap:nowrap; align-items:center; gap:6px; margin-bottom:8px; }
  body.ikowaina-wishlist-page .ikw-tabs{ flex:1 1 auto; min-width:0; gap:0; }
  body.ikowaina-wishlist-page .ikw-tab{ padding:8px 6px; font-size:11.5px; gap:4px; }
  body.ikowaina-wishlist-page .ikw-tab-dot{ width:6px; height:6px; }
  body.ikowaina-wishlist-page .ikw-sort{ flex:0 0 auto; justify-content:flex-end; padding-bottom:5px; gap:5px; font-size:11px; }
  body.ikowaina-wishlist-page .ikw-sort-select{ padding:5px 24px 5px 9px; font-size:11.5px; border-radius:8px; background-size:12px; background-position:right 7px center; }
  html[dir="rtl"] body.ikowaina-wishlist-page .ikw-sort-select{ padding:5px 9px 5px 24px; background-position:left 7px center; }

  body.ikowaina-wishlist-page .ikw-list{ gap:6px; }
  body.ikowaina-wishlist-page .ikw-row{
    position:relative;
    grid-template-columns:auto 80px minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    gap:4px 10px; padding:8px 10px; border-radius:12px; align-items:start;
  }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-check{ grid-column:1; grid-row:1; margin-top:2px; }
  body.ikowaina-wishlist-page .ikw-check span{ width:18px; height:18px; border-radius:5px; }
  body.ikowaina-wishlist-page .ikw-check input{ width:18px; height:18px; }
  body.ikowaina-wishlist-page .ikw-check input:checked + span::after{ width:5px; height:9px; border-width:0 2px 2px 0; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-img{ grid-column:2; grid-row:1 / span 2; align-self:center; }
  body.ikowaina-wishlist-page .ikw-row-img img{ width:80px; height:80px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-info{ grid-column:3 / span 2; grid-row:1; gap:1px; padding-inline-end:58px; }
  body.ikowaina-wishlist-page .ikw-row-info .ikw-name{ font-size:13px; }
  body.ikowaina-wishlist-page .ikw-meta{ font-size:11px; gap:6px; }
  body.ikowaina-wishlist-page .ikw-meta i{ height:10px; }
  body.ikowaina-wishlist-page .ikw-stars, body.ikowaina-wishlist-page .ikw-stars-track{ font-size:11px; }
  body.ikowaina-wishlist-page .ikw-row .ikw-stock{ font-size:11px; gap:5px; }
  body.ikowaina-wishlist-page .ikw-stock-dot{ width:7px; height:7px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-price{ grid-column:3; grid-row:2; align-self:end; flex-wrap:wrap; gap:4px 6px; }
  body.ikowaina-wishlist-page .ikw-row-price strong{ font-size:14.5px; }
  body.ikowaina-wishlist-page .ikw-row-price del{ font-size:11px; }
  body.ikowaina-wishlist-page .ikw-off{ font-size:10px; padding:1px 5px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-actions{ grid-column:4; grid-row:2; align-self:end; flex-direction:row; gap:6px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn{ flex:0 0 auto; width:auto; min-height:30px; padding:5px 10px; font-size:11.5px; border-radius:8px; gap:5px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn svg{ width:14px; height:14px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-tools{
    position:absolute; top:4px; inset-inline-end:4px; flex-direction:row; gap:0; align-self:auto;
  }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish{ width:28px; height:28px; }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish svg{ width:16px; height:16px; }
  body.ikowaina-wishlist-page .ikw-more-btn{ width:24px; height:28px; }
  body.ikowaina-wishlist-page .ikw-more-btn svg{ width:18px; height:18px; }
}
@media (max-width:374px){
  body.ikowaina-wishlist-page .ikw-sort > span{ display:none; }
  body.ikowaina-wishlist-page .ikw-row{ grid-template-columns:auto 64px minmax(0,1fr) auto; }
  body.ikowaina-wishlist-page .ikw-row-img img{ width:64px; height:64px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart span{ display:none; }
}

/* =========================================================
   WISHLIST — COMPUTER + iPAD: ONE-LINE ROWS
   Each product on a single compact line: checkbox, image,
   details, price, [Add to Cart][View Product] side by side,
   heart, ⋮ — more products fit on screen.
========================================================= */
@media (min-width:768px){
  body.ikowaina-wishlist-page .ikw-list{ gap:0; }
  body.ikowaina-wishlist-page .ikw-row,
  body.ikowaina-wishlist-page .ikw-row:first-child{
    grid-template-columns:auto 76px minmax(0,1fr) 180px auto auto;
    grid-template-rows:auto; align-items:center;
    gap:16px; padding:8px 14px; border-radius:0; margin-top:-1px;
  }
  body.ikowaina-wishlist-page .ikw-row:first-of-type{ border-radius:12px 12px 0 0; margin-top:0; }
  body.ikowaina-wishlist-page .ikw-row:last-of-type{ border-radius:0 0 12px 12px; }
  body.ikowaina-wishlist-page .ikw-row:only-of-type{ border-radius:12px; }
  body.ikowaina-wishlist-page .ikw-row.is-selected{ position:relative; z-index:1; }

  body.ikowaina-wishlist-page .ikw-row > .ikw-row-check{ grid-column:1; grid-row:1; align-self:start; margin-top:4px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-img{ grid-column:2; grid-row:1; }
  body.ikowaina-wishlist-page .ikw-row-img img{ width:76px; height:76px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-info{ grid-column:3; grid-row:1; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-price{ grid-column:4; grid-row:1; margin:0; flex-wrap:wrap; justify-self:start; justify-content:flex-start; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-actions{ grid-column:5; grid-row:1; flex-direction:row; gap:10px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn{ width:auto; white-space:nowrap; min-height:36px; padding:7px 16px; font-size:13px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-tools{ grid-column:6; grid-row:1; gap:10px; }
  body.ikowaina-wishlist-page .ikw-row-price strong{ font-size:16.5px; }
}
/* iPad / narrower screens: slightly tighter so the line still fits */
@media (min-width:768px) and (max-width:1200px){
  body.ikowaina-wishlist-page .ikw-row,
  body.ikowaina-wishlist-page .ikw-row:first-child{
    grid-template-columns:auto 60px minmax(0,1fr) 84px auto auto; gap:10px; padding:8px 10px;
  }
  body.ikowaina-wishlist-page .ikw-row-img img{ width:60px; height:60px; }
  body.ikowaina-wishlist-page .ikw-row-actions{ gap:6px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn{ padding:6px 10px; font-size:12px; min-height:32px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn svg{ width:14px; height:14px; }
  body.ikowaina-wishlist-page .ikw-row-tools{ gap:2px; }
  body.ikowaina-wishlist-page .ikw-row-price strong{ font-size:15px; }
}
/* iPad / smaller laptops: compact buttons so the whole line fits —
   cart button shows its icon only, and "View" instead of "View Product". */
@media (min-width:768px) and (max-width:1200px){
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-l-long{ display:none; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-l-short{ display:inline; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart{ padding:6px 11px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart span{ display:none; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart svg{ width:17px; height:17px; }
  body.ikowaina-wishlist-page .ikw-row-price{ flex-direction:column; align-items:flex-start; gap:2px; }
}
/* Sidebar hidden (≤900px): content uses the full width. */
@media (min-width:768px) and (max-width:900px){
  body.ikowaina-wishlist-page .ikw-shell{ grid-template-columns:minmax(0,1fr); }
}
@media (min-width:1201px) and (max-width:1400px){
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn{ padding:7px 12px; }
}

/* =========================================================
   WISHLIST — PHONE v2 (matches the mobile design)
   Plain back arrow + orange "Share" text, centered tabs with
   orange active state, "Sort by: Recent" pill, separate rounded
   product cards with a grey image tile, full-width buttons, and
   a bottom selection bar: "N selected" · Remove · Add to Cart.
========================================================= */
.ikw-sel-label, .ikw-add-selected{ display:none; }
@media (max-width:767px){
  body.ikowaina-wishlist-page .ikw-content{ padding:10px 16px 12px; }

  /* Header */
  body.ikowaina-wishlist-page .ikw-head{ gap:12px; margin-bottom:6px; }
  body.ikowaina-wishlist-page .ikw-back{ width:32px; height:32px; border:0; background:none; border-radius:0; padding:0; }
  body.ikowaina-wishlist-page .ikw-back svg{ width:24px; height:24px; stroke-width:2.4; }
  body.ikowaina-wishlist-page .ikw-titles h1{ font-size:19px; font-weight:800; }
  body.ikowaina-wishlist-page .ikw-count{ font-size:12.5px; font-weight:600; }
  body.ikowaina-wishlist-page .ikw-share{
    background:none; border:0; padding:6px 0; color:var(--primary); font-size:15px; font-weight:700; gap:8px;
  }
  body.ikowaina-wishlist-page .ikw-share svg{ width:20px; height:20px; }

  /* Tabs + Sort */
  body.ikowaina-wishlist-page .ikw-bar{ flex-direction:column; align-items:stretch; gap:10px; border-bottom:0; margin-bottom:10px; }
  body.ikowaina-wishlist-page .ikw-tabs{ justify-content:center; gap:18px; }
  body.ikowaina-wishlist-page .ikw-tab{
    position:relative; padding:8px 0 10px; font-size:14px; font-weight:700; color:var(--text2); border-bottom:0;
  }
  body.ikowaina-wishlist-page .ikw-tab-dot{ display:none; }
  body.ikowaina-wishlist-page .ikw-tab.is-active{ color:var(--primary); border-bottom:0; }
  body.ikowaina-wishlist-page .ikw-tab.is-active::after{
    content:""; position:absolute; bottom:0; inset-inline-start:0; width:32px; height:3px; border-radius:3px; background:var(--primary);
  }
  body.ikowaina-wishlist-page .ikw-sort{
    align-self:flex-end; display:inline-flex; align-items:center; gap:4px; padding:0 12px 0 16px;
    background:var(--surface,#F3F4F6); border:1px solid var(--border); border-radius:12px;
  }
  body.ikowaina-wishlist-page .ikw-sort > .ikw-sort-label{ display:inline; font-size:13px; font-weight:700; color:var(--text2); }
  body.ikowaina-wishlist-page .ikw-sort > .ikw-sort-label::after{ content:":"; }
  body.ikowaina-wishlist-page .ikw-sort-select{
    border:0; background-color:transparent; font-size:13.5px; font-weight:800; padding:10px 22px 10px 2px;
    background-position:right 0 center; background-size:14px;
  }
  html[dir="rtl"] body.ikowaina-wishlist-page .ikw-sort{ padding:0 16px 0 12px; }
  html[dir="rtl"] body.ikowaina-wishlist-page .ikw-sort-select{ padding:10px 2px 10px 22px; background-position:left 0 center; }

  /* Product cards */
  body.ikowaina-wishlist-page .ikw-list{ gap:12px; }
  body.ikowaina-wishlist-page .ikw-row{
    grid-template-columns:auto 88px minmax(0,1fr);
    grid-template-rows:auto auto auto;
    gap:6px 12px; padding:16px 16px 16px 14px; border-radius:18px; align-items:start;
  }
  html[dir="rtl"] body.ikowaina-wishlist-page .ikw-row{ padding:16px 14px 16px 16px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-check{ grid-column:1; grid-row:1; margin-top:18px; }
  body.ikowaina-wishlist-page .ikw-check span{ width:20px; height:20px; border-radius:6px; border-width:2px; border-color:#1d1d1f; }
  body.ikowaina-wishlist-page .ikw-check input{ width:20px; height:20px; }
  body.ikowaina-wishlist-page .ikw-check input:checked + span{ border-color:var(--primary); }
  body.ikowaina-wishlist-page .ikw-check input:checked + span::after{ width:5px; height:10px; border-width:0 2.5px 2.5px 0; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-img{ grid-column:2; grid-row:1 / span 2; align-self:start; }
  body.ikowaina-wishlist-page .ikw-row-img{ background:#F3F4F6; border-radius:14px; overflow:hidden; }
  body.ikowaina-wishlist-page .ikw-row-img img{
    width:88px; height:88px; object-fit:contain; background:transparent; mix-blend-mode:multiply; border-radius:0!important;
  }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-info{ grid-column:3; grid-row:1; gap:4px; padding-inline-end:64px; }
  body.ikowaina-wishlist-page .ikw-row-info .ikw-name{ font-size:15px; font-weight:800; margin-bottom:6px; }
  body.ikowaina-wishlist-page .ikw-meta{ font-size:12px; font-weight:600; gap:5px; }
  body.ikowaina-wishlist-page .ikw-meta i{ width:auto; height:auto; background:none; }
  body.ikowaina-wishlist-page .ikw-meta i::before{ content:"|"; }
  body.ikowaina-wishlist-page .ikw-stars, body.ikowaina-wishlist-page .ikw-stars-track{ font-size:12px; }
  body.ikowaina-wishlist-page .ikw-row .ikw-stock{ font-size:12.5px; font-weight:600; color:var(--text2); gap:7px; }
  body.ikowaina-wishlist-page .ikw-row .ikw-stock--in .ikw-stock-dot{ background:#1f8a3b; }
  body.ikowaina-wishlist-page .ikw-row .ikw-stock--out .ikw-stock-dot{ background:#c0362c; }
  body.ikowaina-wishlist-page .ikw-row .ikw-stock--back .ikw-stock-dot{ background:#b7791f; }
  body.ikowaina-wishlist-page .ikw-stock-dot{ width:8px; height:8px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-price{ grid-column:3; grid-row:2; align-self:start; margin-top:2px; flex-wrap:wrap; gap:4px 8px; }
  body.ikowaina-wishlist-page .ikw-row-price strong{ font-size:17px; font-weight:800; }
  body.ikowaina-wishlist-page .ikw-row-price del{ font-size:12px; }
  body.ikowaina-wishlist-page .ikw-off{ font-size:10.5px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-actions{
    grid-column:3; grid-row:3; flex-direction:row; gap:8px; margin-top:4px; align-self:auto;
  }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn{
    flex:1 1 0; width:auto; min-width:0; min-height:36px; padding:6px 8px; font-size:13px; font-weight:800; border-radius:999px; gap:6px;
  }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart span{ display:inline; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn svg{ width:16px; height:16px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-tools{
    position:absolute; top:12px; inset-inline-end:10px; flex-direction:column; align-items:center; gap:2px;
  }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish{ width:32px; height:32px; }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish svg{ width:20px; height:20px; }
  body.ikowaina-wishlist-page .ikw-more-btn{ width:32px; height:28px; color:#6b7280; }
  body.ikowaina-wishlist-page .ikw-row{ position:relative; }

  /* Bottom selection bar (above the tab bar) */
  body.ikowaina-wishlist-page .ikw-selbar{
    position:fixed; left:0; right:0; bottom:var(--ikw-bottom, 0px); z-index:40; margin:0;
    display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; padding:12px 16px 14px;
    background:var(--bg); border-top:1px solid var(--border); border-radius:0; box-shadow:0 -6px 18px rgba(0,0,0,.05);
  }
  body.ikowaina-wishlist-page .ikw-selbar[hidden]{ display:none; }
  body.ikowaina-wishlist-page .ikw-selbar .ikw-check--inline{ display:none; }
  body.ikowaina-wishlist-page .ikw-sel-label{ display:block; grid-column:1 / -1; margin:0; font-size:14px; font-weight:800; color:var(--text); }
  body.ikowaina-wishlist-page .ikw-selbar .ikw-remove-selected{
    justify-content:center; min-height:44px; border-radius:999px; background:var(--bg); font-size:14px; font-weight:800;
  }
  body.ikowaina-wishlist-page .ikw-selbar .ikw-remove-selected .ikw-l-short{ display:inline; }
  body.ikowaina-wishlist-page .ikw-selbar .ikw-remove-selected span{ display:inline; }
  body.ikowaina-wishlist-page .ikw-selbar .ikw-remove-selected .ikw-l-long{ display:none; }
  body.ikowaina-wishlist-page .ikw-add-selected{
    display:flex; min-height:44px; border-radius:999px; font-size:14px; font-weight:800; margin:0; cursor:pointer;
  }
  body.ikowaina-wishlist-page .ikw-add-selected:disabled{ opacity:.6; }
  body.ikowaina-wishlist-page.ikw-has-selection .ikw-list{ padding-bottom:120px; }
  body.ikowaina-wishlist-page .ikw-toast{ bottom:calc(var(--ikw-bottom, 0px) + 130px); }

  /* Phone tab bar: Wishlist tab active on this page */
  body.ikowaina-wishlist-page .mobile-tabbar a:has(.ikw-count-badge){ color:var(--primary); }
  body.ikowaina-wishlist-page .mobile-tabbar a:has(.ikw-count-badge) svg{ fill:var(--primary); stroke:var(--primary); }
}
@media (max-width:767px){
  body.ikowaina-wishlist-page .ikw-row{ grid-template-columns:auto 80px minmax(0,1fr); gap:6px 10px; padding:14px 12px; }
  html[dir="rtl"] body.ikowaina-wishlist-page .ikw-row{ padding:14px 12px; }
  body.ikowaina-wishlist-page .ikw-row-img img{ width:80px; height:80px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-info{ padding-inline-end:34px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-tools{ top:10px; inset-inline-end:6px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn{ white-space:nowrap; padding:6px 4px; font-size:12.5px; gap:5px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn svg{ width:15px; height:15px; flex:0 0 auto; }
}
@media (max-width:359px){
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart span{ display:none; }
}

/* =========================================================
   WISHLIST — PHONE SIZES (proportional to the phone screen)
   Text and elements scale with the screen width (clamp) so they
   are never oversized on a phone, and iOS is stopped from
   enlarging the text on its own.
========================================================= */
html:has(body.ikowaina-wishlist-page){ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
@media (max-width:767px){
  body.ikowaina-wishlist-page .ikw-content{ padding:8px 14px 10px; }

  body.ikowaina-wishlist-page .ikw-head{ gap:10px; margin-bottom:4px; }
  body.ikowaina-wishlist-page .ikw-back{ width:28px; height:28px; }
  body.ikowaina-wishlist-page .ikw-back svg{ width:21px; height:21px; }
  body.ikowaina-wishlist-page .ikw-titles h1{ font-size:clamp(16px, 4.4vw, 18px); }
  body.ikowaina-wishlist-page .ikw-count{ font-size:clamp(11px, 3vw, 12px); }
  body.ikowaina-wishlist-page .ikw-share{ font-size:clamp(13px, 3.6vw, 14px); gap:6px; }
  body.ikowaina-wishlist-page .ikw-share svg{ width:17px; height:17px; }

  body.ikowaina-wishlist-page .ikw-bar{ gap:8px; margin-bottom:8px; }
  body.ikowaina-wishlist-page .ikw-tabs{ gap:clamp(12px, 4vw, 18px); }
  body.ikowaina-wishlist-page .ikw-tab{ font-size:clamp(12px, 3.4vw, 13.5px); padding:6px 0 8px; }
  body.ikowaina-wishlist-page .ikw-tab.is-active::after{ width:26px; height:2.5px; }
  body.ikowaina-wishlist-page .ikw-sort{ padding:0 10px 0 12px; border-radius:10px; }
  body.ikowaina-wishlist-page .ikw-sort > .ikw-sort-label{ font-size:clamp(11.5px, 3.2vw, 12.5px); }
  body.ikowaina-wishlist-page .ikw-sort-select{ font-size:clamp(12px, 3.3vw, 13px); padding-top:7px; padding-bottom:7px; background-size:12px; }

  body.ikowaina-wishlist-page .ikw-list{ gap:10px; }
  body.ikowaina-wishlist-page .ikw-row{
    grid-template-columns:auto clamp(64px, 19vw, 78px) minmax(0,1fr);
    gap:4px 10px; padding:12px 10px; border-radius:16px;
  }
  html[dir="rtl"] body.ikowaina-wishlist-page .ikw-row{ padding:12px 10px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-check{ margin-top:14px; }
  body.ikowaina-wishlist-page .ikw-check span{ width:18px; height:18px; border-radius:5px; }
  body.ikowaina-wishlist-page .ikw-check input{ width:18px; height:18px; }
  body.ikowaina-wishlist-page .ikw-check input:checked + span::after{ width:4.5px; height:9px; border-width:0 2px 2px 0; }
  body.ikowaina-wishlist-page .ikw-row-img{ border-radius:12px; }
  body.ikowaina-wishlist-page .ikw-row-img img{ width:clamp(64px, 19vw, 78px); height:clamp(64px, 19vw, 78px); }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-info{ gap:3px; padding-inline-end:30px; }
  body.ikowaina-wishlist-page .ikw-row-info .ikw-name{ font-size:clamp(13px, 3.6vw, 14.5px); margin-bottom:3px; }
  body.ikowaina-wishlist-page .ikw-meta{ font-size:clamp(11px, 3vw, 12px); }
  body.ikowaina-wishlist-page .ikw-stars, body.ikowaina-wishlist-page .ikw-stars-track{ font-size:11px; }
  body.ikowaina-wishlist-page .ikw-row .ikw-stock{ font-size:clamp(11px, 3vw, 12px); gap:6px; }
  body.ikowaina-wishlist-page .ikw-stock-dot{ width:7px; height:7px; }
  body.ikowaina-wishlist-page .ikw-row-price strong{ font-size:clamp(14.5px, 4vw, 16px); }
  body.ikowaina-wishlist-page .ikw-row-price del{ font-size:11px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-actions{ gap:6px; margin-top:4px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn{
    min-height:clamp(30px, 8.4vw, 34px); font-size:clamp(11.5px, 3.2vw, 12.5px); padding:4px; gap:4px;
  }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn svg{ width:14px; height:14px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-tools{ top:8px; inset-inline-end:4px; gap:0; }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish{ width:28px; height:28px; }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish svg{ width:18px; height:18px; }
  body.ikowaina-wishlist-page .ikw-more-btn{ width:28px; height:24px; }
  body.ikowaina-wishlist-page .ikw-more-btn svg{ width:17px; height:17px; }

  body.ikowaina-wishlist-page .ikw-selbar{ gap:8px 10px; padding:10px 14px 12px; }
  body.ikowaina-wishlist-page .ikw-sel-label{ font-size:13px; }
  body.ikowaina-wishlist-page .ikw-selbar .ikw-remove-selected,
  body.ikowaina-wishlist-page .ikw-add-selected{ min-height:40px; font-size:13px; }
  body.ikowaina-wishlist-page .ikw-selbar svg{ width:16px; height:16px; }
  body.ikowaina-wishlist-page.ikw-has-selection .ikw-list{ padding-bottom:108px; }
}

/* =========================================================
   PHONE: no top header on Cart and Wishlist pages only.
   The page starts directly with its content; the bottom
   navigation bar (Home / Wishlist / Cart / Profile) stays.
   All other pages keep the header unchanged.
========================================================= */
@media (max-width:767px){
  body.woocommerce-cart .mobile-topbar,
  body.woocommerce-cart .announce,
  body.ikowaina-wishlist-page .mobile-topbar,
  body.ikowaina-wishlist-page .announce{ display:none !important; }
  body.woocommerce-cart .site-content{ padding-top:env(safe-area-inset-top, 0px); }
  body.ikowaina-wishlist-page .ikw-content{ padding-top:calc(8px + env(safe-area-inset-top, 0px)); }
}

/* Phone: no title row (back arrow, "My Wishlist", item count, Share)
   on the Wishlist page — the space goes to the tabs and products. */
@media (max-width:767px){
  body.ikowaina-wishlist-page .ikw-head{ display:none !important; }
}

/* Phone: no title row on the Wishlist page (back arrow, "My Wishlist",
   item count, Share) — the tabs start at the top to save space. */
@media (max-width:767px){
  body.ikowaina-wishlist-page .ikw-head{ display:none !important; }
  body.ikowaina-wishlist-page .ikw-content{ padding-top:calc(4px + env(safe-area-inset-top, 0px)); }
}

/* =========================================================
   CART — PHONE LAYOUT (matches the mobile design)
   Computer / iPad: normal WooCommerce cart (.ikc-desktop).
   Phone: compact cards + fixed Subtotal / Checkout bar; the
   page does not scroll, only the product list does.
========================================================= */
.ikc-app{ display:none; }
@media (max-width:767px){
  body.ikowaina-cart-app .ikc-desktop{ display:none !important; }
  html:has(body.ikowaina-cart-app){ overflow:hidden; height:100%; overscroll-behavior:none; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  body.ikowaina-cart-app{ overflow:hidden; height:100dvh; overscroll-behavior:none; padding-bottom:0; }
  body.ikowaina-cart-app .site-footer,
  body.ikowaina-cart-app .page-title,
  body.ikowaina-cart-app .entry-header{ display:none; }

  body.ikowaina-cart-app .ikc-app{
    display:flex; flex-direction:column; position:fixed; left:0; right:0;
    top:var(--ikc-top, 0px); bottom:var(--ikc-bottom, 64px); z-index:5; background:var(--bg);
  }
  .ikc-list{
    flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
    display:flex; flex-direction:column; gap:10px;
    padding:calc(14px + env(safe-area-inset-top, 0px)) 14px 14px;
  }
  .ikc-item{
    display:grid; grid-template-columns:clamp(58px, 16vw, 64px) minmax(0,1fr) auto; align-items:center; gap:12px;
    padding:10px 12px; border:1px solid var(--border); border-radius:16px; background:var(--bg);
    transition:opacity .15s ease-out;
  }
  .ikc-item.is-busy{ opacity:.6; pointer-events:none; }
  .ikc-img{ display:block; background:#F3F4F6; border-radius:12px; overflow:hidden; }
  .ikc-img img{
    display:block; width:clamp(58px, 16vw, 64px); height:clamp(58px, 16vw, 64px);
    object-fit:contain; background:transparent; mix-blend-mode:multiply; margin:0; border-radius:0!important;
  }
  .ikc-mid{ min-width:0; display:flex; flex-direction:column; gap:8px; }
  .ikc-name{
    font-size:clamp(13px, 3.6vw, 14.5px); font-weight:800; color:var(--text)!important; text-decoration:none!important;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .ikc-qty{ display:flex; align-items:center; gap:10px; }
  .ikc-qty button{
    width:28px; height:28px; border-radius:8px; border:1px solid var(--border); background:var(--bg);
    color:var(--text); display:flex; align-items:center; justify-content:center; padding:0; cursor:pointer;
  }
  .ikc-qty button:disabled{ opacity:.4; cursor:default; }
  .ikc-qty button svg{ width:14px; height:14px; }
  .ikc-q{ min-width:14px; text-align:center; font-size:14px; font-weight:800; color:var(--text); }
  .ikc-end{ display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between; align-self:stretch; gap:10px; }
  .ikc-price{ color:var(--primary); font-size:clamp(13px, 3.6vw, 14.5px); font-weight:800; white-space:nowrap; }
  .ikc-price .amount, .ikc-price bdi{ color:inherit; }
  .ikc-remove{
    width:32px; height:32px; border:0; background:none; color:var(--text); padding:0; cursor:pointer;
    display:flex; align-items:center; justify-content:center; margin-inline-end:-4px;
  }
  .ikc-remove svg{ width:20px; height:20px; }

  .ikc-summary{
    flex:0 0 auto; padding:12px 14px 14px; border-top:1px solid var(--border); background:var(--bg);
    display:flex; flex-direction:column; gap:12px;
  }
  .ikc-subtotal{ display:flex; align-items:center; justify-content:space-between; }
  .ikc-subtotal span{ font-size:13.5px; font-weight:700; color:var(--text2); }
  .ikc-subtotal strong{ font-size:15px; font-weight:800; color:var(--text); }
  .ikc-subtotal strong .amount, .ikc-subtotal strong bdi{ color:inherit; }
  .ikc-checkout{
    display:flex; align-items:center; justify-content:center; min-height:44px; border-radius:999px;
    background:var(--primary); color:#fff!important; font-size:14.5px; font-weight:800; text-decoration:none!important;
  }
  .ikc-checkout:active{ opacity:.9; }
}

/* Product page: "Add to cart" button in the brand orange
   (WooCommerce's default is purple). */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button.alt,
.woocommerce button.button.alt.single_add_to_cart_button,
button.single_add_to_cart_button{
  background-color:var(--primary) !important; border-color:var(--primary) !important; color:#fff !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:focus-visible,
button.single_add_to_cart_button:hover{
  background-color:#e85e12 !important; border-color:#e85e12 !important; color:#fff !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button.disabled,
.woocommerce div.product form.cart .single_add_to_cart_button:disabled{
  background-color:var(--primary) !important; opacity:.5;
}

/* =========================================================
   CART — COMPUTER + iPAD (matches the desktop design)
   "Cart (N)" + Continue Shopping, item cards with checkbox /
   image / name / unit price / − qty + / delete / line total,
   and the Order Summary card. Phone view is unchanged.
========================================================= */
body.ikowaina-cart-app .page-inner{ max-width:none; margin:0; padding:0; }
body.ikowaina-cart-app .page-title{ display:none; }
body.ikowaina-cart-app .entry-content a{ text-decoration:none; }
.ikc-notices:empty{ display:none; }
.ikc-notices{ max-width:1200px; margin:20px auto 0; padding:0 40px; }
.ikcd{ max-width:1200px; margin:0 auto; padding:32px 40px 56px; }
.ikcd-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.ikcd-head h1{ margin:0; font-size:32px; font-weight:900; color:var(--text); line-height:1.2; }
.ikcd-continue{ display:inline-flex; align-items:center; gap:8px; color:var(--primary)!important; font-size:15px; font-weight:700; }
.ikcd-continue:hover{ text-decoration:underline!important; }
.ikcd-grid{ display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:22px; align-items:start; }
.ikcd-list{ display:flex; flex-direction:column; gap:14px; }
.ikcd-item{
  display:grid; grid-template-columns:auto 132px minmax(0,1fr) auto; align-items:center; gap:20px;
  padding:16px 26px 16px 20px; border:1px solid var(--border); border-radius:12px; background:var(--bg);
  transition:opacity .15s ease-out, border-color .15s ease-out;
}
.ikcd-item.is-busy{ opacity:.6; pointer-events:none; }
.ikcd-check{ align-self:start; margin-top:12px; }
.ikcd-check input:not(:checked) + span{ border-color:#1d1d1f; }
.ikcd-img{ display:block; background:#F3F4F6; border-radius:10px; overflow:hidden; }
.ikcd-img img{ display:block; width:132px; height:130px; object-fit:contain; mix-blend-mode:multiply; background:transparent; margin:0; border-radius:0!important; }
.ikcd-info{ display:flex; flex-direction:column; align-items:flex-start; gap:8px; min-width:0; align-self:start; padding-top:2px; }
.ikcd-name{ font-size:18px; font-weight:800; color:var(--text)!important; line-height:1.3; }
.ikcd-unit{ font-size:15.5px; color:var(--text); }
.ikcd-unit .amount, .ikcd-unit bdi{ color:inherit; font-weight:400; }
.ikcd-controls{ display:flex; align-items:center; gap:24px; margin-top:4px; }
.ikcd-qty{
  display:inline-flex; align-items:center; border:1px solid var(--border); border-radius:8px; height:44px; background:var(--bg);
}
.ikcd-qty button{
  width:48px; height:100%; border:0; background:none; font:inherit; font-size:20px; line-height:1; color:var(--text); cursor:pointer;
}
.ikcd-qty button:disabled{ opacity:.35; cursor:default; }
.ikcd-q{ min-width:56px; text-align:center; font-size:16px; font-weight:600; color:var(--text); }
.ikcd-remove{ width:36px; height:36px; border:0; background:none; color:var(--text); cursor:pointer; padding:0; display:flex; align-items:center; justify-content:center; }
.ikcd-remove:hover{ color:#c0362c; }
.ikcd-line{ font-size:19px; font-weight:800; color:var(--text); white-space:nowrap; }
.ikcd-line .amount, .ikcd-line bdi{ color:inherit; }

.ikcd-summary{
  border:1px solid var(--border); border-radius:12px; background:var(--surface,#F9FAFB); padding:22px 22px 20px;
  position:sticky; top:calc(var(--ikowaina-header-h, 90px) + 20px);
}
.ikcd-summary h2{ margin:0; padding-bottom:16px; border-bottom:1px solid var(--border); font-size:22px; font-weight:800; color:var(--text); }
.ikcd-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ikcd-row--sel{ padding:18px 0; border-bottom:1px solid var(--border); font-size:16px; color:var(--text); }
.ikcd-row--sel strong{ font-size:18px; font-weight:800; }
.ikcd-rows{ display:flex; flex-direction:column; gap:14px; padding:18px 0 22px; border-bottom:1px solid var(--border); }
.ikcd-row--muted span{ font-size:15.5px; color:var(--text2); }
.ikcd-row--muted strong{ font-size:16px; font-weight:800; color:var(--text); }
.ikcd-row--muted em{ font-style:normal; font-size:15.5px; color:var(--text2); }
.ikcd-row--total{ padding:22px 0 18px; }
.ikcd-row--total span{ font-size:19px; font-weight:800; color:var(--text); }
.ikcd-row--total strong{ font-size:28px; font-weight:900; color:var(--text); white-space:nowrap; }
.ikcd-proceed{
  display:flex; align-items:center; justify-content:center; min-height:56px; border-radius:10px;
  background:var(--primary); color:#fff!important; font-size:18px; font-weight:700;
}
.ikcd-proceed:hover{ background:#e85e12; }
.ikcd-proceed.is-disabled{ opacity:.5; pointer-events:none; }

@media (max-width:1100px){
  .ikcd{ padding:24px 24px 40px; }
  .ikcd-grid{ grid-template-columns:minmax(0,1fr) 320px; gap:18px; }
  .ikcd-item{ grid-template-columns:auto 100px minmax(0,1fr) auto; gap:14px; padding:14px 18px 14px 14px; }
  .ikcd-img img{ width:100px; height:100px; }
  .ikcd-name{ font-size:16px; }
  .ikcd-unit{ font-size:14px; }
  .ikcd-controls{ gap:14px; }
  .ikcd-qty{ height:38px; }
  .ikcd-qty button{ width:38px; font-size:18px; }
  .ikcd-q{ min-width:40px; font-size:15px; }
  .ikcd-line{ font-size:16.5px; }
  .ikcd-summary{ padding:18px; }
  .ikcd-summary h2{ font-size:19px; }
  .ikcd-row--total strong{ font-size:23px; }
  .ikcd-proceed{ min-height:50px; font-size:16px; }
}
@media (min-width:768px) and (max-width:900px){
  .ikcd-grid{ grid-template-columns:minmax(0,1fr); }
  .ikcd-summary{ position:static; }
}
@media (max-width:767px){
  .ikcd{ display:none!important; }
  .ikc-list > .ikc-notices{ margin:0; padding:0; max-width:none; }
  .ikc-list > .ikc-notices .woocommerce-error,
  .ikc-list > .ikc-notices .woocommerce-message,
  .ikc-list > .ikc-notices .woocommerce-info{ margin:0; font-size:13px; }
}

/* =========================================================
   CART — COMPUTER + iPAD: FIXED PAGE
   The page does not scroll: header, "Cart (N)", Continue
   Shopping and the Order Summary stay put. Only the product
   list scrolls when there are more products than fit.
   --ikcd-top is measured in assets/js/cart-mobile.js.
========================================================= */
@media (min-width:768px){
  html:has(body.ikowaina-cart-app){ overflow:hidden; height:100%; overscroll-behavior:none; }
  body.ikowaina-cart-app{ overflow:hidden; height:100vh; height:100dvh; overscroll-behavior:none; }
  body.ikowaina-cart-app .site-footer{ display:none; }
  body.ikowaina-cart-app .ikcd{
    position:fixed; top:var(--ikcd-top, 90px); bottom:0; left:0; right:0; margin:0 auto; max-width:1200px;
    display:flex; flex-direction:column; padding-bottom:24px; z-index:1;
  }
  body.ikowaina-cart-app .ikcd > *{ flex:0 0 auto; }
  body.ikowaina-cart-app .ikcd .ikc-notices{ margin:0 0 12px; padding:0; max-width:none; }
  body.ikowaina-cart-app .ikcd-grid{ flex:1 1 auto; min-height:0; grid-template-rows:minmax(0,1fr); }
  body.ikowaina-cart-app .ikcd-list{
    min-height:0; max-height:100%; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
    padding:1px; padding-inline-end:10px; margin:-1px; margin-inline-end:-10px;
    scrollbar-width:thin; scrollbar-color:#c9c9ce transparent;
  }
  body.ikowaina-cart-app .ikcd-list::-webkit-scrollbar{ width:6px; }
  body.ikowaina-cart-app .ikcd-list::-webkit-scrollbar-thumb{ background:#c9c9ce; border-radius:6px; }
  body.ikowaina-cart-app .ikcd-summary{ position:static; align-self:start; max-height:100%; overflow-y:auto; }
}
@media (min-width:768px) and (max-width:900px){
  body.ikowaina-cart-app .ikcd-grid{ grid-template-rows:minmax(0,1fr) auto; }
}
@media (min-width:768px) and (max-width:900px){
  .ikcd-grid,
  body.ikowaina-cart-app .ikcd-grid{ grid-template-columns:minmax(0,1fr) 260px; grid-template-rows:minmax(0,1fr); gap:14px; }
  .ikcd-summary{ position:static; padding:16px; }
  .ikcd-summary h2{ font-size:17px; padding-bottom:12px; }
  .ikcd-row--sel{ padding:12px 0; font-size:14px; }
  .ikcd-rows{ padding:12px 0 14px; gap:10px; }
  .ikcd-row--muted span, .ikcd-row--muted em{ font-size:13.5px; }
  .ikcd-row--muted em{ text-align:end; }
  .ikcd-row--total{ padding:14px 0 12px; }
  .ikcd-row--total span{ font-size:15px; }
  .ikcd-row--total strong{ font-size:20px; }
  .ikcd-proceed{ min-height:46px; font-size:15px; }
  .ikcd-item{ grid-template-columns:auto 80px minmax(0,1fr) auto; gap:12px; padding:12px 14px 12px 12px; }
  .ikcd-img img{ width:80px; height:80px; }
  .ikcd-name{ font-size:15px; }
  .ikcd-controls{ gap:10px; }
  .ikcd-qty{ height:34px; }
  .ikcd-qty button{ width:32px; font-size:16px; }
  .ikcd-q{ min-width:30px; font-size:14px; }
  .ikcd-line{ font-size:15px; }
}

/* =========================================================
   WISHLIST — COMPUTER + iPAD v3 (matches the "Favorites" design)
   Title "My Wishlist (N)" + tagline, Sort by in the title row;
   each product: image · name / brand | category / stock · price ·
   Add to Cart · heart · ⋮  — about five rows fit on screen.
   Phone view is unchanged.
========================================================= */
.ikw-title-count, .ikw-tagline{ display:none; }
@media (min-width:768px){
  body.ikowaina-wishlist-page .ikw-title-count{ display:inline; }
  body.ikowaina-wishlist-page .ikw-title-count b{ font-weight:inherit; }
  body.ikowaina-wishlist-page .ikw-count{ display:none; }
  body.ikowaina-wishlist-page .ikw-tagline{ display:block; margin:4px 0 0; font-size:14px; color:var(--text2); }
  body.ikowaina-wishlist-page .ikw-head{ align-items:center; margin-bottom:16px; gap:16px; }
  body.ikowaina-wishlist-page .ikw-back{ width:42px; height:42px; border-radius:10px; }
  body.ikowaina-wishlist-page .ikw-titles h1{ font-size:28px; font-weight:900; }
  body.ikowaina-wishlist-page .ikw-share,
  body.ikowaina-wishlist-page .ikw-bar,
  body.ikowaina-wishlist-page .ikw-selbar,
  body.ikowaina-wishlist-page .ikw-row-check,
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--outline{ display:none !important; }
  body.ikowaina-wishlist-page .ikw-head .ikw-sort{
    flex:0 0 auto; display:flex; align-items:center; gap:12px; padding:0; margin:0; font-size:14px; color:var(--text2);
  }
  body.ikowaina-wishlist-page .ikw-head .ikw-sort-select{
    min-width:170px; padding:10px 38px 10px 14px; font-size:14.5px; font-weight:500; border-radius:10px;
    background-color:var(--bg); background-position:right 12px center; background-size:15px;
  }
  html[dir="rtl"] body.ikowaina-wishlist-page .ikw-head .ikw-sort-select{ padding:10px 14px 10px 38px; background-position:left 12px center; }

  body.ikowaina-wishlist-page .ikw-list{ gap:10px; }
  body.ikowaina-wishlist-page .ikw-row,
  body.ikowaina-wishlist-page .ikw-row:first-child{
    grid-template-columns:clamp(84px, 9vw, 110px) minmax(0,1fr) auto auto auto;
    grid-template-rows:auto; align-items:center; gap:24px;
    padding:clamp(8px, 1vh, 10px) 20px; margin:0; border-radius:10px !important; position:relative;
  }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-img{ grid-column:1; grid-row:1; }
  body.ikowaina-wishlist-page .ikw-row-img{ background:#F3F4F6; border-radius:8px; overflow:hidden; }
  body.ikowaina-wishlist-page .ikw-row-img img{
    width:clamp(84px, 9vw, 110px); height:clamp(76px, calc((100dvh - var(--ikw-top, 90px) - 190px) / 5 - 22px), 96px);
    object-fit:contain; mix-blend-mode:multiply; background:transparent; border-radius:0 !important;
  }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-info{ grid-column:2; grid-row:1; gap:6px; padding:0; }
  body.ikowaina-wishlist-page .ikw-row-info .ikw-name{ font-size:16.5px; font-weight:800; }
  body.ikowaina-wishlist-page .ikw-meta{ flex-direction:row-reverse; justify-content:flex-end; font-size:14.5px; gap:10px; }
  body.ikowaina-wishlist-page .ikw-meta i{ height:14px; }
  body.ikowaina-wishlist-page .ikw-row .ikw-stock{ font-size:14.5px; font-weight:500; color:#1f8a3b; }
  body.ikowaina-wishlist-page .ikw-row .ikw-stock--out{ color:#c0362c; }
  body.ikowaina-wishlist-page .ikw-row .ikw-stock--back{ color:#b7791f; }
  body.ikowaina-wishlist-page .ikw-stock-dot{ width:9px; height:9px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-price{
    grid-column:3; grid-row:1; flex-direction:column; align-items:flex-end; gap:2px; justify-self:end;
  }
  body.ikowaina-wishlist-page .ikw-row-price strong{ font-size:21px; font-weight:800; color:var(--text); }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-actions{ grid-column:4; grid-row:1; flex-direction:row; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart{
    width:auto; min-width:200px; min-height:50px; padding:10px 24px; font-size:17px; font-weight:600; border-radius:8px; gap:12px;
  }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart span{ display:inline !important; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart svg{ width:22px; height:22px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-tools{ grid-column:5; grid-row:1; gap:20px; position:static; flex-direction:row; }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish{ width:32px; height:32px; }
  body.ikowaina-wishlist-page .ikw-row-tools .ik-wish svg{ width:24px; height:24px; }
  body.ikowaina-wishlist-page .ikw-more-btn{ width:28px; height:32px; }
}
/* iPad / smaller laptops: same line, a bit tighter */
@media (min-width:768px) and (max-width:1200px){
  body.ikowaina-wishlist-page .ikw-row,
  body.ikowaina-wishlist-page .ikw-row:first-child{ gap:14px; padding:8px 14px; }
  body.ikowaina-wishlist-page .ikw-row-info .ikw-name{ font-size:15px; }
  body.ikowaina-wishlist-page .ikw-meta, body.ikowaina-wishlist-page .ikw-row .ikw-stock{ font-size:13px; }
  body.ikowaina-wishlist-page .ikw-row-price strong{ font-size:17px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart{ min-width:0; min-height:42px; padding:8px 14px; font-size:14px; gap:8px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart svg{ width:18px; height:18px; }
  body.ikowaina-wishlist-page .ikw-row-tools{ gap:6px; }
  body.ikowaina-wishlist-page .ikw-titles h1{ font-size:23px; }
  body.ikowaina-wishlist-page .ikw-head .ikw-sort > .ikw-sort-label{ display:none; }
  body.ikowaina-wishlist-page .ikw-head .ikw-sort-select{ min-width:140px; }
}
@media (min-width:768px) and (max-width:1000px){
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart span{ display:none !important; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart{ padding:8px 12px; }
}

/* =========================================================
   CART — COMPUTER + iPAD: smaller rows so ~5 products fit
========================================================= */
@media (min-width:768px){
  body.ikowaina-cart-app .ikcd-head{ margin-bottom:12px; }
  body.ikowaina-cart-app .ikcd-head h1{ font-size:28px; }
  body.ikowaina-cart-app .ikcd-list{ gap:10px; }
  body.ikowaina-cart-app .ikcd-item{
    grid-template-columns:auto 88px minmax(0,1fr) auto; gap:16px; padding:8px 22px 8px 16px;
  }
  body.ikowaina-cart-app .ikcd-check{ margin-top:6px; }
  body.ikowaina-cart-app .ikcd-img img{
    width:88px; height:clamp(64px, calc((100dvh - var(--ikcd-top, 90px) - 150px) / 5 - 26px), 84px);
  }
  body.ikowaina-cart-app .ikcd-info{ gap:4px; }
  body.ikowaina-cart-app .ikcd-name{ font-size:16px; }
  body.ikowaina-cart-app .ikcd-unit{ font-size:14px; }
  body.ikowaina-cart-app .ikcd-controls{ gap:18px; margin-top:2px; }
  body.ikowaina-cart-app .ikcd-qty{ height:34px; }
  body.ikowaina-cart-app .ikcd-qty button{ width:36px; font-size:17px; }
  body.ikowaina-cart-app .ikcd-q{ min-width:40px; font-size:15px; }
  body.ikowaina-cart-app .ikcd-remove{ width:30px; height:30px; }
  body.ikowaina-cart-app .ikcd-remove svg{ width:19px; height:19px; }
  body.ikowaina-cart-app .ikcd-line{ font-size:17px; }
}
@media (min-width:768px) and (max-width:900px){
  body.ikowaina-cart-app .ikcd-item{ grid-template-columns:auto 72px minmax(0,1fr) auto; gap:10px; padding:8px 12px 8px 10px; }
  body.ikowaina-cart-app .ikcd-img img{ width:72px; height:64px; }
  body.ikowaina-cart-app .ikcd-name{ font-size:14.5px; }
  body.ikowaina-cart-app .ikcd-unit{ font-size:13px; }
  body.ikowaina-cart-app .ikcd-qty{ height:30px; }
  body.ikowaina-cart-app .ikcd-qty button{ width:30px; font-size:15px; }
  body.ikowaina-cart-app .ikcd-q{ min-width:28px; font-size:13.5px; }
  body.ikowaina-cart-app .ikcd-line{ font-size:14.5px; }
}
@media (min-width:768px){
  body.ikowaina-wishlist-page .ikw-content{ padding-top:14px; padding-bottom:14px; }
  body.ikowaina-wishlist-page .ikw-head{ margin-bottom:12px; }
  body.ikowaina-wishlist-page .ikw-list{ gap:8px; }
  body.ikowaina-wishlist-page .ikw-row,
  body.ikowaina-wishlist-page .ikw-row:first-child{ padding-top:7px; padding-bottom:7px; }
  body.ikowaina-wishlist-page .ikw-row > .ikw-row-info{ gap:3px; }
  body.ikowaina-wishlist-page .ikw-row-info .ikw-name{ font-size:16px; }
  body.ikowaina-wishlist-page .ikw-meta, body.ikowaina-wishlist-page .ikw-row .ikw-stock{ font-size:13.5px; }
  body.ikowaina-wishlist-page .ikw-stars, body.ikowaina-wishlist-page .ikw-stars-track{ font-size:11.5px; }
  body.ikowaina-wishlist-page .ikw-row-img img{ height:clamp(72px, calc((100dvh - var(--ikw-top, 90px) - 170px) / 5 - 22px), 96px); }
  body.ikowaina-wishlist-page .ikw-row-price{ flex-direction:row !important; align-items:center !important; gap:8px !important; }
}
@media (min-width:768px) and (max-width:1200px){
  body.ikowaina-wishlist-page .ikw-row-price{ flex-direction:column !important; align-items:flex-end !important; gap:1px !important; }
  body.ikowaina-wishlist-page .ikw-row-price del{ font-size:11.5px; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart span{ display:none !important; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart{ padding:8px 14px; min-height:40px; }
  body.ikowaina-wishlist-page .ikw-row,
  body.ikowaina-wishlist-page .ikw-row:first-child{ grid-template-columns:80px minmax(0,1fr) auto auto auto; }
  body.ikowaina-wishlist-page .ikw-row-img img{ width:80px; }
}

/* =========================================================
   WISHLIST — COMPUTER + iPAD: no side menu. The page shows only
   the Wishlist panel, full width and centered (like the design).
========================================================= */
@media (min-width:768px){
  body.ikowaina-wishlist-page .ikw-side{ display:none !important; }
  body.ikowaina-wishlist-page .ikw-shell{
    grid-template-columns:minmax(0,1fr) !important; max-width:1240px; margin-left:auto; margin-right:auto;
    padding-left:24px; padding-right:24px;
  }
  body.ikowaina-wishlist-page .ikw-content{ border:0; border-radius:0; padding-left:0; padding-right:0; background:transparent; }
}
@media (min-width:768px) and (max-width:1200px){
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart span{ display:inline !important; }
  body.ikowaina-wishlist-page .ikw-row-actions .ikw-btn--cart{ padding:8px 18px; }
}

/* =========================================================
   CHECKOUT — redesigned (computer, iPad, phone)
   Left card: contact · billing · payment · note · Place Order.
   Right card: Order summary (items, coupon, totals, badges).
========================================================= */
body.ikowaina-checkout .page-inner{ max-width:none; margin:0; padding:0; }
body.ikowaina-checkout .page-title{ display:none; }
.ikco{ max-width:1320px; margin:0 auto; padding:18px 40px 56px; box-sizing:border-box; }
.ikco-top{ margin-bottom:22px; }
.ikco-crumbs{ display:flex; align-items:center; gap:8px; font-size:14.5px; color:var(--text2); margin-bottom:10px; }
.ikco-crumbs a{ color:var(--text2)!important; text-decoration:none!important; }
.ikco-crumbs a:hover{ color:var(--text)!important; }
.ikco-crumbs span{ color:var(--text); font-weight:700; }
.ikco-title{ margin:0; font-size:36px; font-weight:900; line-height:1.15; color:var(--text); }
.ikco-sub{ margin:6px 0 0; font-size:16px; color:var(--text2); }

/* Hide WooCommerce bits the design replaces */
body.ikowaina-checkout .woocommerce-form-login-toggle,
body.ikowaina-checkout .woocommerce-form-coupon-toggle,
body.ikowaina-checkout form.checkout_coupon,
body.ikowaina-checkout #order_review_heading,
body.ikowaina-checkout .woocommerce-billing-fields > h3,
body.ikowaina-checkout .woocommerce-additional-fields > h3{ display:none!important; }
body.ikowaina-checkout form.woocommerce-form-login{
  max-width:none; margin:0 0 18px; padding:22px; border:1px solid var(--border); border-radius:12px; background:var(--bg);
}

/* Two columns */
body.ikowaina-checkout form.checkout{
  display:grid; grid-template-columns:minmax(0,1fr) 480px; gap:28px; align-items:start;
}
body.ikowaina-checkout form.checkout > *{ grid-column:1 / -1; }
body.ikowaina-checkout form.checkout > .ikco-left{ grid-column:1; grid-row:2; }
body.ikowaina-checkout form.checkout > #order_review{ grid-column:2; grid-row:2; position:sticky; top:calc(var(--ikowaina-header-h, 80px) + 20px); }
body.ikowaina-checkout form.checkout > .woocommerce-NoticeGroup{ grid-row:1; }
.ikco-left{ border:1px solid var(--border); border-radius:12px; background:var(--bg); padding:24px 22px 26px; min-width:0; }
body.ikowaina-checkout #customer_details.col2-set{ width:auto; float:none; display:block; }
body.ikowaina-checkout #customer_details .col-1,
body.ikowaina-checkout #customer_details .col-2{ width:100%!important; float:none!important; max-width:none; padding:0; }
body.ikowaina-checkout .col2-set::before, body.ikowaina-checkout .col2-set::after{ display:none; }

/* Section headings */
.ikco-h{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 4px; font-size:21px; font-weight:800; color:var(--text); }
.ikco-h--billing{ margin-top:14px; }
.ikco-h--payment{ margin:26px 0 14px; }
.ikco-login{ font-size:15px; font-weight:500; color:var(--text)!important; text-decoration:underline!important; }
.ikco-guest{ margin:-4px 0 0; font-size:13.5px; color:var(--text2); }

/* Billing fields as a grid (design order) */
body.ikowaina-checkout .woocommerce-billing-fields__field-wrapper,
body.ikowaina-checkout .woocommerce-shipping-fields__field-wrapper{
  display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start;
}
body.ikowaina-checkout .woocommerce-billing-fields__field-wrapper > *,
body.ikowaina-checkout .woocommerce-shipping-fields__field-wrapper > *{ grid-column:1 / -1; order:30; margin:0!important; width:auto!important; float:none!important; }
body.ikowaina-checkout .ikco-h--contact{ order:0; }
body.ikowaina-checkout #billing_email_field{ order:1; }
body.ikowaina-checkout .ikco-guest{ order:2; }
body.ikowaina-checkout .woocommerce-billing-fields__field-wrapper > .woocommerce-account-fields{ order:3; }
body.ikowaina-checkout .ikco-h--billing{ order:4; }
body.ikowaina-checkout [id$="_country_field"]{ order:5; }
body.ikowaina-checkout [id$="_first_name_field"]{ order:6; grid-column:auto; }
body.ikowaina-checkout [id$="_last_name_field"]{ order:7; grid-column:auto; }
body.ikowaina-checkout [id$="_company_field"]{ order:8; }
body.ikowaina-checkout [id$="_address_1_field"]{ order:9; }
body.ikowaina-checkout .ikco-apt, body.ikowaina-checkout [id$="_address_2_field"]{ order:10; }
body.ikowaina-checkout [id$="_postcode_field"]{ order:11; grid-column:auto; }
body.ikowaina-checkout [id$="_city_field"]{ order:12; grid-column:auto; }
body.ikowaina-checkout [id$="_state_field"]{ order:13; }
body.ikowaina-checkout [id$="_phone_field"]{ order:14; }
body.ikowaina-checkout .ikco-hidden{ display:none!important; }
.ikco-apt{
  justify-self:start; border:0; background:none; padding:0; margin:-2px 0 2px!important; cursor:pointer;
  font:inherit; font-size:14.5px; color:var(--text2);
}
.ikco-apt:hover{ color:var(--text); }

/* Inputs */
body.ikowaina-checkout #customer_details .form-row{ padding:0; position:relative; }
body.ikowaina-checkout #customer_details .form-row > label{
  position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;
}
body.ikowaina-checkout #customer_details .form-row .woocommerce-input-wrapper{ display:block; }
body.ikowaina-checkout #customer_details .input-text,
body.ikowaina-checkout #customer_details select,
body.ikowaina-checkout #customer_details .select2-container .select2-selection--single{
  height:52px; border:1px solid var(--border); border-radius:8px; background-color:var(--bg);
  font-size:15.5px; color:var(--text); box-shadow:none;
}
body.ikowaina-checkout #customer_details .input-text{ padding:0 16px; padding-inline-start:52px; background-repeat:no-repeat; background-position:17px center; background-size:21px; }
html[dir="rtl"] body.ikowaina-checkout #customer_details .input-text{ background-position:right 17px center; }
body.ikowaina-checkout #customer_details textarea.input-text{ height:auto; min-height:96px; padding:14px 16px; }
body.ikowaina-checkout #customer_details .input-text::placeholder{ color:#6b7280; opacity:1; }
body.ikowaina-checkout #customer_details .input-text:focus,
body.ikowaina-checkout #customer_details .select2-container--focus .select2-selection--single,
body.ikowaina-checkout #customer_details .select2-container--open .select2-selection--single{ border-color:var(--primary); outline:none; }
body.ikowaina-checkout #customer_details .woocommerce-invalid .input-text,
body.ikowaina-checkout #customer_details .woocommerce-invalid .select2-selection{ border-color:#d93025; }
body.ikowaina-checkout #customer_details [id$="_email"]{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
body.ikowaina-checkout #customer_details [id$="_first_name"],
body.ikowaina-checkout #customer_details [id$="_last_name"]{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 4-6 8-6s8 2 8 6'/%3E%3C/svg%3E"); }
body.ikowaina-checkout #customer_details [id$="_address_1"],
body.ikowaina-checkout #customer_details [id$="_address_2"]{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E"); }
body.ikowaina-checkout #customer_details [id$="_postcode"]{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M7 10h4M7 14h6M15 9l3 3-3 3'/%3E%3C/svg%3E"); }
body.ikowaina-checkout #customer_details [id$="_city"]{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='10' height='18' rx='1'/%3E%3Cpath d='M14 9h6v12h-6M8 7h2M8 11h2M8 15h2'/%3E%3C/svg%3E"); }
body.ikowaina-checkout #customer_details [id$="_phone"]{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
body.ikowaina-checkout #customer_details [id$="_company"]{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M9 7V5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E"); }
body.ikowaina-checkout #customer_details input[id$="_state"]{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-6.2 7-12a7 7 0 0 0-14 0c0 5.8 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }

/* Country / Region (and state select): small label inside the box */
body.ikowaina-checkout #customer_details [id$="_country_field"] > label,
body.ikowaina-checkout #customer_details [id$="_state_field"]:has(select) > label{
  position:absolute!important; width:auto; height:auto; clip:auto; overflow:visible; white-space:nowrap;
  top:8px; inset-inline-start:52px; z-index:2; margin:0; font-size:12px; font-weight:500; color:var(--text2); pointer-events:none;
}
body.ikowaina-checkout #customer_details [id$="_country_field"] > label .required,
body.ikowaina-checkout #customer_details [id$="_state_field"] > label .required{ display:none; }
body.ikowaina-checkout #customer_details [id$="_country_field"] .woocommerce-input-wrapper,
body.ikowaina-checkout #customer_details [id$="_state_field"]:has(select) .woocommerce-input-wrapper{
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-6.2 7-12a7 7 0 0 0-14 0c0 5.8 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") no-repeat 17px center / 21px; border-radius:8px;
}
html[dir="rtl"] body.ikowaina-checkout #customer_details [id$="_country_field"] .woocommerce-input-wrapper{ background-position:right 17px center; }
body.ikowaina-checkout #customer_details .select2-container{ width:100%!important; }
body.ikowaina-checkout #customer_details .select2-container .select2-selection--single{ background:transparent; }
body.ikowaina-checkout #customer_details .select2-container .select2-selection__rendered{
  line-height:1.2; padding:24px 44px 0 52px; font-size:15.5px; color:var(--text);
}
html[dir="rtl"] body.ikowaina-checkout #customer_details .select2-container .select2-selection__rendered{ padding:24px 52px 0 44px; }
body.ikowaina-checkout #customer_details .select2-container .select2-selection__arrow{ height:50px; width:44px; right:4px; }
body.ikowaina-checkout #customer_details select{ padding:18px 40px 0 52px; }
body.ikowaina-checkout #customer_details .woocommerce-input-wrapper strong{ display:block; padding:24px 16px 8px 52px; border:1px solid var(--border); border-radius:8px; font-weight:500; }

/* Account / shipping / notes checkboxes */
body.ikowaina-checkout .woocommerce-account-fields{ margin:0; }
body.ikowaina-checkout .woocommerce-account-fields p.create-account,
body.ikowaina-checkout #ship-to-different-address,
.ikco-note-toggle{ margin:0; }
body.ikowaina-checkout .woocommerce-form__label-for-checkbox,
.ikco-note-toggle{
  display:inline-flex!important; align-items:center; gap:10px; cursor:pointer; font-size:15.5px; font-weight:400; color:var(--text);
  position:static!important; width:auto!important; height:auto!important; clip:auto!important; overflow:visible!important; white-space:normal!important;
}
body.ikowaina-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"],
.ikco-note-toggle input{
  appearance:none; -webkit-appearance:none; width:20px; height:20px; margin:0; flex:0 0 auto; cursor:pointer;
  border:1.5px solid #9a9aa0; border-radius:4px; background:var(--bg) center / 13px no-repeat;
}
body.ikowaina-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"]:checked,
.ikco-note-toggle input:checked{
  background-color:var(--primary); border-color:var(--primary);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E");
}
.ikco-note-toggle span{ display:none; }
.ikco-note-toggle em{ font-style:normal; }
body.ikowaina-checkout .woocommerce-account-fields .create-account:not(p){ margin-top:10px; }
body.ikowaina-checkout #ship-to-different-address{ font-size:15.5px; font-weight:400; margin-top:16px; }
body.ikowaina-checkout .shipping_address{ margin-top:12px; }
body.ikowaina-checkout .woocommerce-shipping-fields .ikco-h{ display:none; }
body.ikowaina-checkout .ikco-notes{ margin-top:18px; }
body.ikowaina-checkout .ikco-notes .woocommerce-additional-fields__field-wrapper{ display:none; margin-top:12px; }
body.ikowaina-checkout .ikco-notes.is-open .woocommerce-additional-fields__field-wrapper{ display:block; }
body.ikowaina-checkout .ikco-notes .form-row{ margin:0; }

/* Payment */
body.ikowaina-checkout #payment{ background:none; border-radius:0; padding:0; }
body.ikowaina-checkout #payment ul.payment_methods{ list-style:none; margin:0; padding:0; border:0; display:flex; flex-direction:column; gap:10px; }
body.ikowaina-checkout #payment ul.payment_methods::before, body.ikowaina-checkout #payment ul.payment_methods::after{ display:none; }
body.ikowaina-checkout #payment li.wc_payment_method{
  margin:0; padding:14px 16px; border:1px solid var(--border); border-radius:10px; background:var(--bg); list-style:none;
}
body.ikowaina-checkout #payment li.wc_payment_method > input{ accent-color:var(--primary); margin-inline-end:8px; }
body.ikowaina-checkout #payment li.wc_payment_method > label{ font-size:15.5px; font-weight:700; color:var(--text); cursor:pointer; }
body.ikowaina-checkout #payment li.wc_payment_method > label img{ max-height:24px; margin-inline-start:6px; vertical-align:middle; }
body.ikowaina-checkout #payment div.payment_box{
  margin:12px 0 0; padding:12px 14px; border-radius:8px; background:var(--surface,#F7F7F8); color:var(--text2); font-size:14px;
}
body.ikowaina-checkout #payment div.payment_box::before{ display:none; }
body.ikowaina-checkout #payment ul.payment_methods li.woocommerce-notice,
body.ikowaina-checkout #payment ul.payment_methods li .woocommerce-info,
body.ikowaina-checkout #payment ul.payment_methods > li:only-child:not(.wc_payment_method){
  position:relative; list-style:none; margin:0; padding:16px 18px 16px 56px; border:1px solid #f1b3b3; border-radius:8px;
  background:#fdf0f0; color:var(--text); font-size:15px; line-height:1.45;
}
body.ikowaina-checkout #payment ul.payment_methods li.woocommerce-notice::before,
body.ikowaina-checkout #payment ul.payment_methods > li:only-child:not(.wc_payment_method)::before{
  content:"!"; position:absolute; top:50%; inset-inline-start:17px; transform:translateY(-50%);
  width:26px; height:26px; border-radius:50%; background:#d93025; color:#fff; font-weight:800; font-size:15px;
  display:flex; align-items:center; justify-content:center;
}
html[dir="rtl"] body.ikowaina-checkout #payment ul.payment_methods li.woocommerce-notice{ padding:16px 56px 16px 18px; }
body.ikowaina-checkout #payment .form-row.place-order{ margin:0; padding:0; }
body.ikowaina-checkout .woocommerce-terms-and-conditions-wrapper{ margin:22px 0 12px; font-size:14px; color:var(--text2); }
body.ikowaina-checkout .woocommerce-privacy-policy-text p{ margin:0 0 8px; font-size:14px; color:var(--text2); }
body.ikowaina-checkout .woocommerce-terms-and-conditions-wrapper a{ color:var(--text)!important; text-decoration:underline!important; }
body.ikowaina-checkout #place_order{
  display:flex; align-items:center; justify-content:center; width:100%; float:none; min-height:52px; margin:0;
  border:0; border-radius:8px; background:var(--primary)!important; color:#fff!important; font-size:18px; font-weight:600; cursor:pointer;
}
body.ikowaina-checkout #place_order:hover{ background:#e85e12!important; }

/* Order summary */
body.ikowaina-checkout #order_review{
  border:1px solid var(--border); border-radius:12px; background:var(--surface,#F9FAFB); padding:24px;
}
.ikco-summary{ border:0!important; margin:0!important; }
.ikco-sum-title{ margin:0 0 6px; font-size:24px; font-weight:800; color:var(--text); }
.ikco-items{ border-top:1px solid var(--border); }
.ikco-item{ display:grid; grid-template-columns:82px minmax(0,1fr) auto; gap:20px; align-items:start; padding:14px 0; border-bottom:1px solid var(--border); }
.ikco-item-img{ display:block; border-radius:8px; overflow:hidden; background:#F3F4F6; }
.ikco-item-img img{ display:block; width:82px; height:82px; object-fit:contain; mix-blend-mode:multiply; margin:0; border-radius:0!important; }
.ikco-item-info{ display:flex; flex-direction:column; gap:5px; min-width:0; padding-top:6px; }
.ikco-item-name{ font-size:15.5px; font-weight:700; color:var(--text); }
.ikco-item-meta{ font-size:13.5px; color:var(--text2); }
.ikco-item-meta dl, .ikco-item-meta p{ margin:0; }
.ikco-item-price{ padding-top:6px; font-size:15.5px; color:var(--text); white-space:nowrap; }
.ikco-coupon{ display:flex; gap:12px; padding:18px 0; }
.ikco-coupon.is-busy{ opacity:.6; pointer-events:none; }
.ikco-coupon-field{
  flex:1; display:flex; align-items:center; gap:12px; height:48px; padding:0 14px; min-width:0;
  border:1px solid var(--border); border-radius:8px; background:var(--bg); color:var(--text); cursor:text;
}
.ikco-coupon-field svg{ flex:0 0 auto; }
.ikco-coupon-input{ flex:1; min-width:0; height:100%; border:0!important; outline:none; background:transparent!important; padding:0!important; font:inherit; font-size:15px; color:var(--text); }
.ikco-coupon-input::placeholder{ color:var(--text2); }
.ikco-coupon-apply{
  height:48px; padding:0 18px; border:1px solid var(--border); border-radius:8px; background:#EEEFF1; color:var(--text);
  font:inherit; font-size:15px; font-weight:700; cursor:pointer;
}
.ikco-coupon-apply:hover{ background:#e4e5e8; }
.ikco-totals{ width:100%; border-collapse:collapse; margin:0; border:0; }
.ikco-totals th, .ikco-totals td{ padding:6px 0; border:0!important; background:none!important; font-size:16.5px; font-weight:400; color:var(--text); vertical-align:top; }
.ikco-totals th{ text-align:start; }
.ikco-totals td{ text-align:end; }
.ikco-totals tr.shipping td, .ikco-totals tr.woocommerce-shipping-totals td{ font-size:14px; color:var(--text2); }
.ikco-totals #shipping_method{ list-style:none; margin:0; padding:0; }
.ikco-totals #shipping_method li{ margin:0 0 4px; }
.ikco-totals #shipping_method input{ accent-color:var(--primary); margin-inline-end:6px; }
.ikco-totals .woocommerce-remove-coupon{ font-size:13px; color:var(--primary)!important; margin-inline-start:6px; }
.ikco-totals tr.order-total th, .ikco-totals tr.order-total td{ padding-top:22px; border-top:1px solid var(--border)!important; }
.ikco-totals tr.order-total th{ font-size:22px; font-weight:800; }
.ikco-totals tr.order-total td{ font-size:26px; font-weight:800; }
.ikco-totals tr.order-total td strong{ font-weight:800; }
.ikco-totals tr.order-total td .includes_tax{ display:block; margin-top:6px; font-size:14px; font-weight:400; color:var(--text2); }
.ikco-totals tr.order-total td .includes_tax .amount{ font-weight:400; }
.ikco-badges{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:20px; padding-top:22px; border-top:1px solid var(--border); }
.ikco-badges div{ display:flex; align-items:center; justify-content:center; gap:12px; color:var(--text); }
.ikco-badges svg{ flex:0 0 auto; }
.ikco-badges span{ font-size:14px; line-height:1.3; max-width:80px; }

/* Smaller laptops */
@media (max-width:1150px){
  .ikco{ padding:16px 24px 48px; }
  body.ikowaina-checkout form.checkout{ grid-template-columns:minmax(0,1fr) 380px; gap:20px; }
  body.ikowaina-checkout #order_review{ padding:20px; }
  .ikco-item{ grid-template-columns:64px minmax(0,1fr) auto; gap:14px; }
  .ikco-item-img img{ width:64px; height:64px; }
  .ikco-badges span{ font-size:12.5px; }
  .ikco-badges svg{ width:22px; height:22px; }
  .ikco-badges div{ gap:8px; }
}
/* iPad portrait + phone: one column, summary first */
@media (max-width:900px){
  body.ikowaina-checkout form.checkout{ grid-template-columns:minmax(0,1fr); }
  body.ikowaina-checkout form.checkout > #order_review{ grid-column:1; grid-row:2; position:static; }
  body.ikowaina-checkout form.checkout > .ikco-left{ grid-column:1; grid-row:3; }
  .ikco-title{ font-size:30px; }
}
/* Phone */
@media (max-width:767px){
  .ikco{ padding:12px 14px 24px; }
  .ikco-top{ margin-bottom:14px; }
  .ikco-crumbs{ font-size:13px; margin-bottom:6px; }
  .ikco-title{ font-size:clamp(22px, 6.4vw, 26px); }
  .ikco-sub{ font-size:13.5px; }
  body.ikowaina-checkout form.checkout{ gap:14px; }
  .ikco-left{ padding:16px 14px 18px; }
  body.ikowaina-checkout #order_review{ padding:16px 14px; }
  .ikco-h{ font-size:17px; }
  .ikco-h--payment{ margin:20px 0 10px; }
  .ikco-login{ font-size:13.5px; }
  .ikco-guest{ font-size:12.5px; }
  body.ikowaina-checkout .woocommerce-billing-fields__field-wrapper,
  body.ikowaina-checkout .woocommerce-shipping-fields__field-wrapper{ gap:10px; }
  body.ikowaina-checkout #customer_details .input-text,
  body.ikowaina-checkout #customer_details .select2-container .select2-selection--single{ height:48px; font-size:16px; }
  body.ikowaina-checkout #customer_details .input-text{ padding-inline-start:44px; background-position:14px center; background-size:18px; }
  html[dir="rtl"] body.ikowaina-checkout #customer_details .input-text{ background-position:right 14px center; }
  body.ikowaina-checkout #customer_details [id$="_country_field"] > label{ inset-inline-start:44px; top:6px; font-size:11px; }
  body.ikowaina-checkout #customer_details [id$="_country_field"] .woocommerce-input-wrapper{ background-position:14px center; background-size:18px; }
  body.ikowaina-checkout #customer_details .select2-container .select2-selection__rendered{ padding:21px 40px 0 44px; font-size:15px; }
  body.ikowaina-checkout #customer_details .select2-container .select2-selection__arrow{ height:46px; }
  body.ikowaina-checkout .woocommerce-form__label-for-checkbox, .ikco-note-toggle, .ikco-apt{ font-size:14px; }
  body.ikowaina-checkout #payment ul.payment_methods li.woocommerce-notice{ padding:12px 12px 12px 46px; font-size:13.5px; }
  body.ikowaina-checkout #payment ul.payment_methods li.woocommerce-notice::before{ inset-inline-start:12px; width:22px; height:22px; font-size:13px; }
  body.ikowaina-checkout .woocommerce-privacy-policy-text p, body.ikowaina-checkout .woocommerce-terms-and-conditions-wrapper{ font-size:12.5px; }
  body.ikowaina-checkout #place_order{ min-height:48px; font-size:16px; }
  .ikco-sum-title{ font-size:18px; }
  .ikco-item{ grid-template-columns:56px minmax(0,1fr) auto; gap:12px; padding:10px 0; }
  .ikco-item-img img{ width:56px; height:56px; }
  .ikco-item-info{ padding-top:2px; gap:2px; }
  .ikco-item-name, .ikco-item-price{ font-size:14px; }
  .ikco-item-meta{ font-size:12px; }
  .ikco-item-price{ padding-top:2px; }
  .ikco-coupon{ padding:14px 0; gap:8px; }
  .ikco-coupon-field, .ikco-coupon-apply{ height:44px; }
  .ikco-coupon-input{ font-size:16px; }
  .ikco-totals th, .ikco-totals td{ font-size:14.5px; }
  .ikco-totals tr.order-total th{ font-size:18px; }
  .ikco-totals tr.order-total td{ font-size:21px; }
  .ikco-totals tr.order-total th, .ikco-totals tr.order-total td{ padding-top:14px; }
  .ikco-badges{ margin-top:14px; padding-top:14px; gap:6px; }
  .ikco-badges div{ flex-direction:column; gap:4px; text-align:center; }
  .ikco-badges span{ font-size:11.5px; max-width:none; }
  .ikco-badges svg{ width:20px; height:20px; }
}

body.ikowaina-checkout form.checkout > .ikco-left,
body.ikowaina-checkout form.checkout > #order_review{ grid-row:1; }
body.ikowaina-checkout form.checkout:has(> .woocommerce-NoticeGroup) > .ikco-left,
body.ikowaina-checkout form.checkout:has(> .woocommerce-NoticeGroup) > #order_review{ grid-row:2; }
@media (max-width:900px){
  body.ikowaina-checkout form.checkout > #order_review{ grid-row:1; }
  body.ikowaina-checkout form.checkout > .ikco-left{ grid-row:2; }
  body.ikowaina-checkout form.checkout:has(> .woocommerce-NoticeGroup) > #order_review{ grid-row:2; }
  body.ikowaina-checkout form.checkout:has(> .woocommerce-NoticeGroup) > .ikco-left{ grid-row:3; }
}
body.ikowaina-checkout.woocommerce form.checkout .form-row label.woocommerce-form__label-for-checkbox,
body.ikowaina-checkout #customer_details .form-row label.woocommerce-form__label-for-checkbox{
  font-size:15.5px; font-weight:400; color:var(--text); margin:0;
}
body.ikowaina-checkout .woocommerce-billing-fields__field-wrapper > .woocommerce-account-fields{ margin:2px 0 0!important; }
body.ikowaina-checkout .ikco-h--billing{ margin-top:18px !important; }
body.ikowaina-checkout #customer_details [id$="_country_field"] select,
body.ikowaina-checkout #customer_details [id$="_state_field"] select{ background-color:transparent; }
@media (max-width:767px){
  body.ikowaina-checkout #customer_details .form-row label.woocommerce-form__label-for-checkbox{ font-size:14px; }
}
body.ikowaina-checkout #place_order{ box-shadow:none!important; }

/* Cart summary rows only shown when they apply (discount / fees / tax) */
.ikcd-row[hidden]{ display:none !important; }
.ikcd-summary.is-busy .ikcd-rows,
.ikcd-summary.is-busy .ikcd-row--total{ opacity:.55; transition:opacity .15s ease-out; }

/* Orders: page links + "Pay / Cancel" for unpaid orders */
.ikowaina-orders-pagination{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:18px; font-size:14px; color:var(--text2); }
.ikowaina-orders-pagination a{ padding:8px 14px; }
.ikowaina-order-pay-actions{ display:flex; flex-wrap:wrap; gap:10px; margin:16px 0; }
.ikowaina-order-pay-actions a{ width:auto; padding:10px 18px; }

/* iPad (768–1199px): the search field fills the space between the logo
   and the icons, like on computers — no empty gap after the logo. */
@media (min-width:768px) and (max-width:1199px){
  .header-row{ gap:16px; padding-left:24px; padding-right:24px; }
  .header-row .header-search{ flex:1 1 auto; width:auto; min-width:0; max-width:none; margin-inline-start:20px; }
  .header-row .header-search input{ min-width:0; }
  .header-row .header-actions{ gap:8px; }
}

/* =========================================================
   CHECKOUT v2 — "Shipping · Payment · Review" layout
   Left: Shipping Address / Shipping Method / Payment Method cards.
   Right: Order Total card with the "Pay …" button.
========================================================= */
.ikco-top{ display:flex; align-items:center; gap:40px; margin-bottom:18px; }
.ikco-top .ikco-title{ font-size:36px; margin:0; flex:0 0 auto; }
.ikco-steps{ list-style:none; margin:0 auto 0 0; padding:0; display:flex; flex:0 1 520px; min-width:0; }
html[dir="rtl"] .ikco-steps{ margin:0 0 0 auto; }
.ikco-step{ flex:1; position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; color:var(--text2); font-size:15px; }
.ikco-step:not(:last-child)::after{
  content:""; position:absolute; top:15px; inset-inline-start:calc(50% + 20px); width:calc(100% - 40px); height:2px; background:#c9cbd0;
}
.ikco-step-n{
  width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:#b4b7be; color:#fff; font-size:15px; font-weight:700; position:relative; z-index:1;
}
.ikco-step.is-current .ikco-step-n, .ikco-step.is-done .ikco-step-n{ background:var(--primary); }
.ikco-step.is-current, .ikco-step.is-done{ color:var(--primary); font-weight:600; }
.ikco-step.is-current:not(:last-child)::after{ background:linear-gradient(90deg, var(--primary) 50%, #c9cbd0 50%); }
html[dir="rtl"] .ikco-step.is-current:not(:last-child)::after{ background:linear-gradient(270deg, var(--primary) 50%, #c9cbd0 50%); }
.ikco-step.is-done:not(:last-child)::after{ background:var(--primary); }

body.ikowaina-checkout form.checkout{ grid-template-columns:minmax(0,1fr) 424px; gap:36px; }
.ikco-left{ border:0 !important; background:none !important; padding:0 !important; display:flex; flex-direction:column; gap:14px; }
.ikco-card{ border:1px solid var(--border); border-radius:10px; background:var(--bg); padding:14px 16px 16px; }
.ikco-card-head{ display:flex; align-items:center; gap:14px; margin:0 0 12px; font-size:20px; font-weight:700; color:var(--text); }
.ikco-card-ic{ color:var(--primary); display:flex; }
.ikco-card-ic svg{ width:28px; height:28px; }

/* Option rows (addresses, shipping rates, payment methods) */
.ikco-addr-list, .ikco-opt-list,
body.ikowaina-checkout #payment ul.payment_methods{ display:flex; flex-direction:column; gap:0; margin:0; padding:0; list-style:none; }
.ikco-opt{
  position:relative; display:grid; grid-template-columns:56px minmax(0,1fr); align-items:center; list-style:none;
  border:1px solid var(--border); margin:-1px 0 0 !important; background:var(--bg); border-radius:0;
}
.ikco-addr-list > .ikco-opt:first-child, .ikco-opt-list > .ikco-opt:first-child,
body.ikowaina-checkout #payment ul.payment_methods > .ikco-opt:first-child{ margin-top:0 !important; border-top-left-radius:6px; border-top-right-radius:6px; }
.ikco-addr-list > .ikco-opt:last-child, .ikco-opt-list > .ikco-opt:last-child,
body.ikowaina-checkout #payment ul.payment_methods > .ikco-opt:last-child{ border-bottom-left-radius:6px; border-bottom-right-radius:6px; }
.ikco-opt.is-selected{ border-color:#f4a77c; background:#fff6f0; z-index:1; }
.ikco-addr-list{ gap:8px; }
.ikco-addr-list > .ikco-opt{ margin:0 !important; border-radius:6px !important; }
.ikco-opt > input[type="radio"],
body.ikowaina-checkout #payment li.ikco-opt > input[type="radio"]{
  appearance:none; -webkit-appearance:none; width:22px; height:22px; margin:0 auto !important; border-radius:50%;
  border:1.5px solid #9ca3af; background:var(--bg); cursor:pointer; grid-column:1; grid-row:1; position:static;
}
.ikco-opt > input[type="radio"]:checked{ border-color:var(--primary); box-shadow:inset 0 0 0 4px var(--bg), inset 0 0 0 11px var(--primary); }
.ikco-opt.is-selected > input[type="radio"]:checked{ box-shadow:inset 0 0 0 4px #fff6f0, inset 0 0 0 11px var(--primary); }
.ikco-opt > input[type="radio"]:focus-visible{ outline:2px solid var(--primary); outline-offset:2px; }
.ikco-opt > label{
  grid-column:2; display:flex; align-items:center; gap:18px; padding:10px 18px 10px 0; margin:0; cursor:pointer; min-width:0;
  font-size:15px; color:var(--text);
}
html[dir="rtl"] .ikco-opt > label{ padding:10px 0 10px 18px; }
.ikco-opt-ic{
  flex:0 0 auto; width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:#f3f4f6; color:#374151;
}
.ikco-opt-ic svg{ width:24px; height:24px; }
.ikco-opt-ic.is-ship{ background:#fff1e8; color:var(--primary); }
.ikco-opt-ic.is-pickup{ background:#e8f1ff; color:#2563eb; }
.ikco-opt-ic.is-free{ background:#e9f8ee; color:#1f8a3b; }
.ikco-opt-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; font-size:14.5px; color:var(--text2); line-height:1.35; }
.ikco-opt-body strong{ font-size:16px; font-weight:600; color:var(--text); }
.ikco-opt-price{ flex:0 0 auto; font-size:16px; font-weight:600; color:var(--text); white-space:nowrap; }
.ikco-opt-price .amount, .ikco-opt-price bdi{ color:inherit; }
.ikco-ship-empty{ margin:0; padding:12px 14px; border-radius:6px; background:var(--surface,#f7f7f8); color:var(--text2); font-size:14.5px; }
.ikco-pkg-title{ margin:10px 0 6px; font-size:13px; font-weight:700; color:var(--text2); }
.ikco-opt-list > .ikco-opt > *:not(input):not(label){ grid-column:1 / -1; padding:0 18px 12px 74px; }

/* Address rows */
.ikco-addr{ grid-template-columns:56px minmax(0,1fr) auto; padding:8px 0; cursor:pointer; }
.ikco-addr > input{ grid-column:1; }
.ikco-addr .ikco-opt-body{ grid-column:2; font-size:14.5px; }
.ikco-addr--new .ikco-opt-body strong{ font-size:15px; }
.ikco-addr-edit{
  grid-column:3; align-self:start; margin:6px 18px 0; border:0; background:none; padding:0 0 0 24px; cursor:pointer;
  color:var(--primary); font:inherit; font-size:15px; text-decoration:underline; text-underline-offset:3px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E") no-repeat left center / 17px;
}
.ikco-addr:not(.is-selected) .ikco-addr-edit{ visibility:hidden; }
.ikco-card--address.has-saved .ikco-addr-form{ margin-top:14px; }
.ikco-card--address.is-saved-mode .woocommerce-billing-fields,
.ikco-card--address.is-saved-mode .woocommerce-account-fields{ display:none !important; }
.ikco-card--address.is-saved-mode .ikco-addr-form{ margin-top:10px; }

/* Payment rows */
body.ikowaina-checkout #payment li.ikco-opt{ padding:0 !important; border-radius:0; }
body.ikowaina-checkout #payment li.ikco-opt > label{ font-size:15px; font-weight:400; }
body.ikowaina-checkout #payment li.ikco-opt .ikco-pay-ic{ background:#1f2937; color:#fff; }
body.ikowaina-checkout #payment li.ikco-opt.payment_method_paypal .ikco-pay-ic,
body.ikowaina-checkout #payment li.ikco-opt[class*="ppcp"] .ikco-pay-ic{ background:#e8f0ff; color:#1d4ed8; }
body.ikowaina-checkout #payment li.ikco-opt[class*="klarna"] .ikco-pay-ic{ background:#fde2ea; color:#111; }
.ikco-pay-brands{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; margin-inline-start:auto; }
.ikco-pay-brands img{ max-height:28px !important; width:auto; margin:0 !important; float:none !important; }
body.ikowaina-checkout #payment li.ikco-opt > .payment_box{
  grid-column:1 / -1; margin:0 16px 14px 74px !important; padding:12px 14px; border-radius:8px; background:var(--surface,#f7f7f8);
}
html[dir="rtl"] body.ikowaina-checkout #payment li.ikco-opt > .payment_box{ margin:0 74px 14px 16px !important; }

/* Order Total card */
body.ikowaina-checkout #order_review{ background:var(--bg); padding:18px 26px 22px; border-radius:10px; }
body.ikowaina-checkout #order_review .ikco-card-head{ padding:0 0 16px; margin:0 -26px 16px; padding-inline:26px; border-bottom:1px solid var(--border); font-size:22px; }
.ikco-totals th, .ikco-totals td{ font-size:17px; padding:7px 0; color:var(--text2); font-weight:400; }
.ikco-totals td{ color:var(--text); }
.ikco-totals tr.ikco-shipping-row td, .ikco-totals tr.shipping td{ font-size:17px; color:var(--text); }
.ikco-totals tr.order-total th, .ikco-totals tr.order-total td{ padding-top:28px; padding-bottom:18px; vertical-align:middle; }
.ikco-totals tr.order-total th{ font-size:24px; font-weight:800; color:var(--text); }
.ikco-totals tr.order-total td, .ikco-totals tr.order-total td strong,
.ikco-totals tr.order-total td .amount{ font-size:32px; font-weight:800; color:var(--primary); }
.ikco-place-slot .place-order{ margin:0 !important; padding:0 !important; }
.ikco-place-slot .woocommerce-terms-and-conditions-wrapper{ margin:0 0 12px; }
body.ikowaina-checkout #place_order.ikco-pay,
body.ikowaina-checkout .ikco-place-slot #place_order{
  position:relative; display:flex; align-items:center; justify-content:center; gap:16px; width:100%; min-height:64px;
  border-radius:6px; font-size:22px; font-weight:500; padding:0 64px;
}
body.ikowaina-checkout .ikco-place-slot #place_order::before{
  content:""; position:absolute; inset-inline-start:84px; top:50%; width:26px; height:28px; transform:translateY(-55%);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2zm2 0h6V7a3 3 0 0 0-6 0z'/%3E%3Ccircle cx='12' cy='15.5' r='1.6' fill='%23ff6b1a'/%3E%3C/svg%3E") no-repeat center / contain;
}
body.ikowaina-checkout .ikco-place-slot #place_order::after{
  content:""; position:absolute; inset-inline-end:34px; top:50%; width:26px; height:26px; transform:translateY(-50%);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain;
}
html[dir="rtl"] body.ikowaina-checkout .ikco-place-slot #place_order::after{ transform:translateY(-50%) scaleX(-1); }
.ikco-secure{ display:flex; align-items:center; gap:12px; margin:18px 0 0; font-size:16px; color:var(--text2); }
.ikco-secure svg{ color:#4b5563; flex:0 0 auto; }
.ikco-coupon-wrap{ margin:4px 0 14px; }
.ikco-coupon-wrap > summary{ cursor:pointer; list-style:none; font-size:14px; color:var(--text2); text-decoration:underline; text-underline-offset:3px; }
.ikco-coupon-wrap > summary::-webkit-details-marker{ display:none; }
.ikco-coupon-wrap .ikco-coupon{ padding:10px 0 0; }
.ikco-summary .ikco-items, .ikco-badges{ display:none; }

@media (max-width:1150px){
  body.ikowaina-checkout form.checkout{ grid-template-columns:minmax(0,1fr) 360px; gap:22px; }
  .ikco-top{ gap:24px; }
  body.ikowaina-checkout .ikco-place-slot #place_order{ font-size:19px; min-height:56px; }
  body.ikowaina-checkout .ikco-place-slot #place_order::before{ inset-inline-start:36px; }
  body.ikowaina-checkout .ikco-place-slot #place_order::after{ inset-inline-end:22px; }
}
@media (max-width:900px){
  .ikco-top{ flex-direction:column; align-items:stretch; gap:14px; }
  .ikco-steps{ flex:1 1 auto; margin:0; }
}
@media (max-width:767px){
  .ikco-top .ikco-title{ font-size:24px; }
  .ikco-step{ font-size:12.5px; }
  .ikco-step-n{ width:26px; height:26px; font-size:13px; }
  .ikco-step:not(:last-child)::after{ top:12px; }
  .ikco-card{ padding:12px; }
  .ikco-card-head{ font-size:17px; gap:10px; }
  .ikco-card-ic svg{ width:22px; height:22px; }
  .ikco-opt{ grid-template-columns:40px minmax(0,1fr); }
  .ikco-addr{ grid-template-columns:40px minmax(0,1fr) auto; }
  .ikco-opt > label{ gap:10px; padding:8px 12px 8px 0; }
  .ikco-opt-ic{ width:36px; height:36px; border-radius:10px; }
  .ikco-opt-ic svg{ width:20px; height:20px; }
  .ikco-opt-body strong{ font-size:14.5px; }
  .ikco-opt-body, .ikco-opt-price{ font-size:13.5px; }
  .ikco-pay-brands img{ max-height:20px !important; }
  body.ikowaina-checkout #payment li.ikco-opt > .payment_box{ margin:0 10px 12px 10px !important; }
  .ikco-addr-edit{ margin:4px 10px 0; font-size:13.5px; }
  body.ikowaina-checkout #order_review{ padding:14px 14px 16px; }
  body.ikowaina-checkout #order_review .ikco-card-head{ margin:0 -14px 12px; padding-inline:14px; font-size:18px; }
  .ikco-totals th, .ikco-totals td{ font-size:15px; }
  .ikco-totals tr.order-total th{ font-size:19px; }
  .ikco-totals tr.order-total td, .ikco-totals tr.order-total td strong, .ikco-totals tr.order-total td .amount{ font-size:24px; }
  body.ikowaina-checkout .ikco-place-slot #place_order{ font-size:17px; min-height:52px; padding:0 48px; }
  body.ikowaina-checkout .ikco-place-slot #place_order::before{ inset-inline-start:20px; width:20px; height:22px; }
  body.ikowaina-checkout .ikco-place-slot #place_order::after{ inset-inline-end:18px; width:20px; height:20px; }
  .ikco-secure{ font-size:13.5px; }
}

/* =========================================================
   CHECKOUT v2 — iPad + phone (≤1024px)
   One column: Shipping Address → Shipping Method → Payment Method
   → Order Total with the "Pay" button at the end. Top bar: back
   arrow + "Secure Checkout"; the site header / tab bar are hidden
   on this page only so the payment flow has the whole screen.
========================================================= */
.ikco-bar{ display:none; }
@media (max-width:1024px){
  body.ikowaina-checkout .site-header,
  body.ikowaina-checkout .mobile-topbar,
  body.ikowaina-checkout .announce,
  body.ikowaina-checkout .mobile-tabbar{ display:none !important; }
  body.ikowaina-checkout{ padding-bottom:0 !important; }

  .ikco{ max-width:760px; padding:calc(14px + env(safe-area-inset-top, 0px)) 24px 32px; }
  .ikco-bar{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
  .ikco-back{ width:40px; height:40px; display:flex; align-items:center; justify-content:center; color:var(--text) !important; margin-inline-start:-8px; }
  .ikco-secure-top{ display:flex; align-items:center; gap:8px; font-size:14px; color:var(--text2); }
  .ikco-secure-top svg{ color:#4b5563; }

  .ikco-top{ flex-direction:column; align-items:center; gap:0; margin-bottom:18px; }
  .ikco-top .ikco-title{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .ikco-steps{ flex:0 0 auto; width:min(420px, 100%); margin:0 auto; }

  body.ikowaina-checkout form.checkout{ grid-template-columns:minmax(0,1fr); gap:14px; }
  body.ikowaina-checkout form.checkout > .ikco-left{ grid-column:1; grid-row:1; }
  body.ikowaina-checkout form.checkout > #order_review{ grid-column:1; grid-row:2; position:static; }
  body.ikowaina-checkout form.checkout:has(> .woocommerce-NoticeGroup) > .ikco-left{ grid-row:2; }
  body.ikowaina-checkout form.checkout:has(> .woocommerce-NoticeGroup) > #order_review{ grid-row:3; }

  body.ikowaina-checkout #order_review{ padding:14px 16px 16px; }
  body.ikowaina-checkout #order_review .ikco-card-head{ border-bottom:0; margin:0 0 12px; padding:0; font-size:20px; }
  .ikco-totals{ background:var(--surface,#f7f8fa); border-radius:8px; }
  .ikco-totals th, .ikco-totals td{ padding:3px 16px; font-size:16px; }
  .ikco-totals tr:first-child th, .ikco-totals tr:first-child td{ padding-top:14px; }
  .ikco-totals tr.order-total th, .ikco-totals tr.order-total td{ padding:12px 16px 14px; border-top:1px solid var(--border) !important; }
  .ikco-totals tr.order-total th{ font-size:21px; }
  .ikco-totals tr.order-total td, .ikco-totals tr.order-total td strong, .ikco-totals tr.order-total td .amount{ font-size:28px; }
  .ikco-coupon-wrap{ margin:12px 0; }
  .ikco-place-slot{ margin-top:14px; }
  body.ikowaina-checkout .ikco-place-slot #place_order{ min-height:56px; font-size:20px; }
  body.ikowaina-checkout .ikco-place-slot #place_order::before{ inset-inline-start:auto; position:static; transform:none; display:inline-block; margin-inline-end:4px; }
  .ikco-secure{ display:none; }
}

/* Phone */
@media (max-width:767px){
  .ikco{ padding:calc(8px + env(safe-area-inset-top, 0px)) 14px 20px; }
  .ikco-bar{ margin-bottom:4px; }
  .ikco-secure-top{ flex-direction:column; gap:2px; font-size:10.5px; }
  .ikco-secure-top svg{ width:17px; height:17px; }
  .ikco-top{ margin-bottom:12px; }
  .ikco-steps{ width:100%; }
  .ikco-step{ font-size:12px; gap:4px; }
  .ikco-step-n{ width:24px; height:24px; font-size:12px; }
  .ikco-step:not(:last-child)::after{ top:11px; inset-inline-start:calc(50% + 16px); width:calc(100% - 32px); }
  body.ikowaina-checkout form.checkout{ gap:10px; }
  .ikco-left{ gap:10px; }
  .ikco-card{ padding:10px 10px 12px; }
  .ikco-card-head{ font-size:16px; gap:10px; margin-bottom:8px; }
  .ikco-card-ic svg{ width:22px; height:22px; }
  .ikco-opt{ grid-template-columns:40px minmax(0,1fr); }
  .ikco-addr{ grid-template-columns:40px minmax(0,1fr) auto; padding:6px 0; }
  .ikco-opt > input[type="radio"]{ width:20px; height:20px; }
  .ikco-opt > input[type="radio"]:checked{ box-shadow:inset 0 0 0 3.5px var(--bg), inset 0 0 0 10px var(--primary); }
  .ikco-opt.is-selected > input[type="radio"]:checked{ box-shadow:inset 0 0 0 3.5px #fff6f0, inset 0 0 0 10px var(--primary); }
  .ikco-opt > label{ gap:10px; padding:7px 10px 7px 0; }
  html[dir="rtl"] .ikco-opt > label{ padding:7px 0 7px 10px; }
  .ikco-opt-ic{ width:34px; height:34px; border-radius:9px; }
  .ikco-opt-ic svg{ width:19px; height:19px; }
  .ikco-opt-body{ font-size:12px; }
  .ikco-opt-body strong{ font-size:13.5px; }
  .ikco-opt-price{ font-size:13.5px; }
  .ikco-addr .ikco-opt-body{ font-size:12.5px; }
  .ikco-addr-edit{ margin:2px 8px 0; font-size:13px; padding-inline-start:20px; background-size:14px; }
  /* Card brand icons under the payment title */
  body.ikowaina-checkout #payment li.ikco-opt > label{ display:grid; grid-template-columns:34px minmax(0,1fr); column-gap:10px; row-gap:4px; }
  body.ikowaina-checkout #payment li.ikco-opt > label .ikco-opt-ic{ grid-row:1 / span 2; align-self:center; }
  .ikco-pay-brands{ grid-column:2; justify-content:flex-start; margin:0; gap:6px; }
  .ikco-pay-brands:empty{ display:none; }
  .ikco-pay-brands img{ max-height:18px !important; }
  body.ikowaina-checkout #payment li.ikco-opt > .payment_box{ margin:0 10px 10px !important; font-size:13px; }
  body.ikowaina-checkout #order_review{ padding:12px 10px 12px; }
  body.ikowaina-checkout #order_review .ikco-card-head{ font-size:16px; margin-bottom:8px; }
  .ikco-totals th, .ikco-totals td{ font-size:14px; padding:2px 12px; }
  .ikco-totals tr:first-child th, .ikco-totals tr:first-child td{ padding-top:10px; }
  .ikco-totals tr.order-total th, .ikco-totals tr.order-total td{ padding:10px 12px 12px; }
  .ikco-totals tr.order-total th{ font-size:18px; }
  .ikco-totals tr.order-total td, .ikco-totals tr.order-total td strong, .ikco-totals tr.order-total td .amount{ font-size:24px; }
  body.ikowaina-checkout .ikco-place-slot #place_order{ min-height:50px; font-size:18px; padding:0 20px; border-radius:8px; }
  body.ikowaina-checkout .ikco-place-slot #place_order::after{ display:none; }
  .ikco-place-slot .woocommerce-privacy-policy-text p{ font-size:12px; }
}
@media (max-width:1024px){
  .ikco-totals tr.ikco-shipping-row td, .ikco-totals tr.shipping td{ font-size:16px; }
}
@media (max-width:767px){
  .ikco-totals tr.ikco-shipping-row td, .ikco-totals tr.shipping td{ font-size:14px; }
  body.ikowaina-checkout #payment li.ikco-opt > label:has(.ikco-pay-brands:empty) .ikco-opt-ic{ grid-row:1; }
  body.ikowaina-checkout #payment li.ikco-opt > label:has(.ikco-pay-brands:empty){ align-items:center; }
}

/* Checkout: "Create an account" checkbox sits on its own line (its label
   must not be caught by the visually-hidden field-label rule, which took
   it out of the flow and made it overlap the Country field). */
body.ikowaina-checkout #customer_details .form-row > label.woocommerce-form__label-for-checkbox,
body.ikowaina-checkout #customer_details .woocommerce-account-fields label.woocommerce-form__label-for-checkbox{
  position:static !important; width:auto !important; height:auto !important; clip:auto !important;
  overflow:visible !important; white-space:normal !important; display:inline-flex !important;
  align-items:center; gap:10px; margin:0; line-height:1.4;
}
body.ikowaina-checkout .woocommerce-billing-fields__field-wrapper > .woocommerce-account-fields{ margin:2px 0 10px !important; }
body.ikowaina-checkout .woocommerce-account-fields p.create-account{ margin:0 !important; min-height:24px; }
body.ikowaina-checkout .woocommerce-account-fields div.create-account{ margin-top:10px; }

/* Checkout: "complete your details" message + missing fields in red */
.ikco-missing-notice{
  grid-column:1 / -1; list-style:none; margin:0 0 4px !important; padding:14px 18px 14px 18px !important;
  border:1px solid #f1b3b3; border-radius:10px; background:#fdf0f0; color:var(--text); font-size:14.5px;
}
.ikco-missing-notice::before{ display:none !important; }
.ikco-missing-notice li{ margin:2px 0; padding-inline-start:14px; position:relative; }
.ikco-missing-notice li:first-child{ padding-inline-start:0; margin-bottom:6px; }
.ikco-missing-notice li:not(:first-child)::before{ content:"•"; position:absolute; inset-inline-start:0; color:#d93025; }
body.ikowaina-checkout #customer_details .woocommerce-invalid .input-text,
body.ikowaina-checkout #customer_details .woocommerce-invalid select,
body.ikowaina-checkout #customer_details .woocommerce-invalid .select2-selection{ border-color:#d93025 !important; background-color:#fffafa; }
body.ikowaina-checkout form.checkout > .ikco-missing-notice{ grid-row:1; }
body.ikowaina-checkout form.checkout:has(> .ikco-missing-notice) > .ikco-left{ grid-row:2; }
body.ikowaina-checkout form.checkout:has(> .ikco-missing-notice) > #order_review{ grid-row:2; }
@media (max-width:1024px){
  body.ikowaina-checkout form.checkout:has(> .ikco-missing-notice) > #order_review{ grid-row:3; }
}

/* Checkout — payment rows: radio and label always on the SAME line, even
   when a gateway (Stripe, PayPal…) adds extra elements inside its row. */
body.ikowaina-checkout #payment li.ikco-opt{ grid-template-rows:auto; }
body.ikowaina-checkout #payment li.ikco-opt > input[type="radio"]{ grid-row:1; align-self:center; }
body.ikowaina-checkout #payment li.ikco-opt > label{ grid-column:2; grid-row:1; }
body.ikowaina-checkout #payment li.ikco-opt > *:not(input):not(label){ grid-column:1 / -1; }
/* Gateway fields box (e.g. Stripe "Card / Klarna") stays inside the card */
body.ikowaina-checkout #payment li.ikco-opt > .payment_box{
  width:auto !important; max-width:calc(100% - 90px); box-sizing:border-box; overflow:hidden;
}
body.ikowaina-checkout #payment li.ikco-opt > .payment_box iframe{ max-width:100%; }
@media (max-width:767px){
  body.ikowaina-checkout #payment li.ikco-opt > .payment_box{ max-width:calc(100% - 20px); }
}
/* Express buttons (Apple Pay / Google Pay / Link) at the top of the Payment card */
.ikco-card--payment > [id*="express-checkout"],
.ikco-card--payment > [id*="payment-request"],
.ikco-card--payment > [class*="express-checkout"],
.ikco-card--payment > [id*="wcpay"]{ margin:0 0 12px; }
.ikco-card--payment > [id*="express-checkout-button-separator"],
.ikco-card--payment > [id*="payment-request-button-separator"]{ text-align:center; color:var(--text2); font-size:13px; margin:4px 0 12px; }

/* Express buttons locked until address + shipping are complete */
.ikco-locked{ position:relative; opacity:.4; filter:grayscale(1); cursor:not-allowed; }
.ikco-locked *, .ikco-locked iframe{ pointer-events:none !important; }
.ikco-express-lock{
  margin:0 0 12px; padding:10px 14px; border-radius:8px; background:#fff6f0; border:1px solid #f4c9ae;
  color:var(--text); font-size:14px; line-height:1.45;
}
.ikco-express-lock[hidden]{ display:none; }

/* Safety net: express pay buttons never show outside the checkout
   (they would skip the delivery address + shipping step). */
body:not(.woocommerce-checkout) #wc-stripe-express-checkout-element,
body:not(.woocommerce-checkout) #wc-stripe-express-checkout-button-separator,
body:not(.woocommerce-checkout) #wc-stripe-payment-request-wrapper,
body:not(.woocommerce-checkout) #wc-stripe-payment-request-button-separator,
body:not(.woocommerce-checkout) #wcpay-express-checkout-element,
body:not(.woocommerce-checkout) #wcpay-express-checkout-button-separator,
body:not(.woocommerce-checkout) #wcpay-payment-request-wrapper,
body:not(.woocommerce-checkout) #wcpay-payment-request-button-separator,
body:not(.woocommerce-checkout) .wcpay-express-checkout-wrapper,
body:not(.woocommerce-checkout) .ppc-button-wrapper,
body:not(.woocommerce-checkout) #ppc-button-ppcp-gateway,
body:not(.woocommerce-checkout) [id^="ppc-button-"]{ display:none !important; }

/* Checkout: "Save this address" */
.ikco-addr-save{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:12px; }
.ikco-card--address.is-saved-mode .ikco-addr-save{ display:none; }
.ikco-save-addr{
  display:inline-flex; align-items:center; gap:9px; min-height:44px; padding:0 18px; cursor:pointer;
  border:1px solid var(--border); border-radius:8px; background:var(--bg); color:var(--text);
  font:inherit; font-size:15px; font-weight:600;
}
.ikco-save-addr:hover{ border-color:var(--text); }
.ikco-save-addr:disabled{ opacity:.6; cursor:default; }
.ikco-addr-save-msg{ font-size:14px; color:#1f8a3b; }
.ikco-addr-save-msg.is-error{ color:#c0362c; }
@media (max-width:767px){
  .ikco-save-addr{ width:100%; justify-content:center; min-height:42px; font-size:14px; }
  .ikco-addr-save-msg{ width:100%; text-align:center; font-size:13px; }
}

/* "Save this address": orange like the rest of the checkout icons */
.ikco-save-addr{ color:var(--primary); border-color:#f4c9ae; }
.ikco-save-addr svg{ color:var(--primary); stroke:var(--primary); }
.ikco-save-addr:hover:not(:disabled){ background:#fff6f0; border-color:var(--primary); color:var(--primary); }

/* Wallet buttons blend into the Payment Method card (no separate box) */
.ikco-card--payment [id*="express-checkout-element"],
.ikco-card--payment [id*="payment-request-wrapper"],
.ikco-card--payment [id^="wcpay-express"]{
  margin:0 0 10px !important; padding:0 !important; border:0 !important; background:none !important; width:100% !important;
}
.ikco-card--payment [id*="express-checkout-button-separator"],
.ikco-card--payment [id*="payment-request-button-separator"]{
  /* NOTE: no "display" override here — Stripe/WooPayments hide this
     separator themselves when the wallet buttons cannot be shown. */
  align-items:center; gap:12px; margin:0 0 12px !important; padding:0 !important;
  border:0 !important; background:none !important; color:var(--text2); font-size:13px; text-transform:none;
}
.ikco-card--payment [id*="express-checkout-button-separator"]::before,
.ikco-card--payment [id*="express-checkout-button-separator"]::after,
.ikco-card--payment [id*="payment-request-button-separator"]::before,
.ikco-card--payment [id*="payment-request-button-separator"]::after{
  content:""; flex:1; height:1px; background:var(--border);
}
/* Admin-only diagnostics box */
.ikco-diag{ margin:0 0 12px; padding:10px 12px; border:1px dashed #c9cbd0; border-radius:8px; background:#fafafa; font-size:13px; color:var(--text2); }
.ikco-diag summary{ cursor:pointer; font-weight:700; color:var(--text); }
.ikco-diag ul{ margin:10px 0 0; padding:0; list-style:none; }
.ikco-diag li{ margin:4px 0; word-break:break-word; }
.ikco-diag li span{ font-weight:600; color:var(--text); }
.ikco-diag code{ font-size:12px; }

/* If the wallet buttons are not available on this device, hide the
   leftover "— OR —" separator and any empty wallet container. */
/* NOTE: the wallet container itself is never hidden — WooPayments /
   Stripe must be able to draw the Apple Pay / Google Pay button into it.
   Until a button exists, the whole wallet row (.ikco-wallets[hidden])
   stays hidden instead. */
.ikco-card--payment .ikco-express-hidden{ display:none !important; }

/* Payment rows: fallback icon when a gateway rewrites its own label
   (Stripe replaces the label content with its own title/icons). */
body.ikowaina-checkout #payment li.ikco-opt > label:not(:has(.ikco-opt-ic))::before{
  content:""; flex:0 0 auto; width:44px; height:44px; border-radius:12px; background:#1f2937 center / 24px no-repeat;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20M6 15h4'/%3E%3C/svg%3E");
}
@media (max-width:767px){
  body.ikowaina-checkout #payment li.ikco-opt > label:not(:has(.ikco-opt-ic))::before{ width:34px; height:34px; border-radius:9px; background-size:19px; }
}

/* =========================================================
   PAYMENT METHOD — one list, brand logos on the right
   (Card · Apple Pay · Google Pay · Klarna · PayPal), orange
   radios, and the wallet buttons shown as rows in the list.
========================================================= */
.ikco-pay-note{ margin:-6px 0 12px; font-size:15px; color:var(--text2); }
/* No left icon tile — the payment brand's own logo sits on the right */
body.ikowaina-checkout #payment li.ikco-opt .ikco-pay-ic{ display:none !important; }
body.ikowaina-checkout #payment li.ikco-opt > label:not(:has(.ikco-opt-ic))::before{ content:none !important; }
body.ikowaina-checkout #payment li.ikco-opt > label{ gap:12px; padding:14px 16px 14px 0; }
html[dir="rtl"] body.ikowaina-checkout #payment li.ikco-opt > label{ padding:14px 0 14px 16px; }
body.ikowaina-checkout #payment li.ikco-opt .ikco-opt-body strong{ font-size:17px; font-weight:500; }
/* Orange radios, like the design */
body.ikowaina-checkout #payment li.ikco-opt > input[type="radio"]{ width:24px; height:24px; border:2px solid var(--primary); }
body.ikowaina-checkout #payment li.ikco-opt > input[type="radio"]:checked{ box-shadow:inset 0 0 0 4px var(--bg), inset 0 0 0 12px var(--primary); }
body.ikowaina-checkout #payment li.ikco-opt.is-selected > input[type="radio"]:checked{ box-shadow:inset 0 0 0 4px #fff6f0, inset 0 0 0 12px var(--primary); }
/* Brand logos, right side, in a neutral frame like the design */
.ikco-pay-brands{ gap:8px; }
.ikco-pay-brands img{
  max-height:34px !important; width:auto; padding:3px 6px; border:1px solid var(--border); border-radius:6px; background:#fff;
}
/* Wallet buttons (Apple Pay / Google Pay) as rows inside the same list */
.ikco-card--payment [id*="express-checkout-element"]{
  margin:0 !important; padding:10px 16px !important; border:1px solid var(--border) !important;
  border-bottom:0 !important; border-radius:6px 6px 0 0 !important; background:var(--bg) !important;
}
.ikco-card--payment [id*="express-checkout-element"] + [id*="separator"]{ display:none !important; }
body.ikowaina-checkout #payment ul.payment_methods > .ikco-opt:first-child{ border-top-left-radius:0; border-top-right-radius:0; }
@media (max-width:767px){
  .ikco-pay-note{ font-size:13px; margin:-4px 0 10px; }
  body.ikowaina-checkout #payment li.ikco-opt > label{ padding:11px 12px 11px 0; }
  body.ikowaina-checkout #payment li.ikco-opt .ikco-opt-body strong{ font-size:14.5px; }
  body.ikowaina-checkout #payment li.ikco-opt > input[type="radio"]{ width:21px; height:21px; }
  body.ikowaina-checkout #payment li.ikco-opt > input[type="radio"]:checked{ box-shadow:inset 0 0 0 3.5px var(--bg), inset 0 0 0 10.5px var(--primary); }
  .ikco-pay-brands img{ max-height:24px !important; padding:2px 4px; }
  .ikco-card--payment [id*="express-checkout-element"]{ padding:8px 10px !important; }
}

/* Wallet buttons as the first rows of the payment list (one block) */
.ikco-wallets{
  border:1px solid var(--border); border-bottom:0; border-radius:6px 6px 0 0;
  padding:12px 14px; display:flex; flex-direction:column; gap:8px; background:var(--bg);
}
.ikco-wallets > *{ margin:0 !important; }
.ikco-card--payment.has-wallets #payment ul.payment_methods > .ikco-opt:first-child{ border-top-left-radius:0; border-top-right-radius:0; }

/* Payment rows are clickable (no visual change to the design) */
body.ikowaina-checkout #payment li.wc_payment_method{ cursor:pointer; }
body.ikowaina-checkout #payment li.wc_payment_method .payment_box{ cursor:auto; }

/* Wallet row (Apple Pay / Google Pay) — same row look as the other
   payment methods; its content opens/closes like the others. */
.ikco-wallets{ padding:0 !important; border:0 !important; background:none !important; gap:0 !important; }
.ikco-wallets .ikco-wallet-row{ margin:0 !important; border-top-left-radius:6px; border-top-right-radius:6px; }
.ikco-wallets.is-open .ikco-wallet-row{ border-bottom-left-radius:0; border-bottom-right-radius:0; }
/* Collapsed with height (not display:none) so the payment plugin can
   still measure and prepare its button while closed. */
.ikco-wallet-box{
  max-height:0; overflow:hidden;
  border:1px solid transparent; border-top:0; margin-top:-1px;
  transition:max-height .25s ease-out, opacity .2s ease-out;
}
.ikco-wallets.is-open .ikco-wallet-box{
  max-height:420px; padding:4px 16px 14px 56px;
  border-color:#f4a77c; background:#fff6f0;
}
html[dir="rtl"] .ikco-wallets.is-open .ikco-wallet-box{ padding:4px 56px 14px 16px; }
.ikco-wallet-box.ikco-flash{ box-shadow:0 0 0 3px rgba(255,107,26,.35); }
@media (max-width:767px){
  .ikco-wallets.is-open .ikco-wallet-box{ padding:4px 10px 12px 40px; }
}
/* Wallet row: identical look to the other payment rows */
.ikco-wallets .ikco-wallet-row > input[type="radio"]{ width:24px; height:24px; border:2px solid var(--primary); }
.ikco-wallets .ikco-wallet-row > input[type="radio"]:checked{ box-shadow:inset 0 0 0 4px #fff6f0, inset 0 0 0 12px var(--primary); }
.ikco-wallets .ikco-wallet-row > label{ gap:12px; padding:14px 16px 14px 0; }
html[dir="rtl"] .ikco-wallets .ikco-wallet-row > label{ padding:14px 0 14px 16px; }
.ikco-wallets .ikco-wallet-row .ikco-opt-body strong{ font-size:17px; font-weight:500; }
@media (max-width:767px){
  .ikco-wallets .ikco-wallet-row > input[type="radio"]{ width:21px; height:21px; }
  .ikco-wallets .ikco-wallet-row .ikco-opt-body strong{ font-size:14.5px; }
  .ikco-wallets .ikco-wallet-row > label{ padding:10px 10px 10px 0; }
}

/* =========================================================
   PAYMENT — one continuous list (design):
   Credit card → Apple Pay / Google Pay → Klarna → PayPal,
   then "Pay now" with the terms text underneath.
========================================================= */
.ikco-card--payment{ display:flex; flex-direction:column; }
.ikco-card--payment > *{ order:0; }
.ikco-card--payment.ikco-ordered #payment,
.ikco-card--payment.ikco-ordered #payment > ul.wc_payment_methods{ display:contents; }
.ikco-card--payment.ikco-ordered #payment ul.wc_payment_methods > li{ order:3; }
.ikco-card--payment.ikco-ordered #payment ul.wc_payment_methods > li.ikco-card-row{ order:1; }
.ikco-card--payment.ikco-ordered .ikco-wallets{ order:2; }
.ikco-card--payment.ikco-ordered #payment > :not(ul){ order:4; }
/* corners follow the VISUAL first/last row */
.ikco-card--payment.ikco-ordered #payment ul.wc_payment_methods > li,
.ikco-card--payment.ikco-ordered .ikco-wallets .ikco-wallet-row{ border-radius:0 !important; margin-top:-1px !important; }
.ikco-card--payment.ikco-ordered .ikco-list-first,
.ikco-card--payment.ikco-ordered .ikco-list-first.ikco-opt,
.ikco-card--payment.ikco-ordered .ikco-list-first .ikco-wallet-row{ border-top-left-radius:8px !important; border-top-right-radius:8px !important; margin-top:0 !important; }
.ikco-card--payment.ikco-ordered .ikco-list-last,
.ikco-card--payment.ikco-ordered .ikco-list-last.ikco-opt{ border-bottom-left-radius:8px !important; border-bottom-right-radius:8px !important; }
.ikco-card--payment.ikco-ordered .ikco-list-last:not(.is-open) .ikco-wallet-row{ border-bottom-left-radius:8px !important; border-bottom-right-radius:8px !important; }
.ikco-card--payment.ikco-ordered .ikco-wallets{ margin-top:-1px; }
.ikco-card--payment.ikco-ordered .ikco-wallets.ikco-list-first{ margin-top:0; }
/* the selected row sits on top so its orange border is complete */
.ikco-card--payment.ikco-ordered .ikco-opt.is-selected{ position:relative; z-index:2; }

/* "Pay now" first, the terms text underneath, links in orange */
.ikco-place-slot .place-order{ display:flex !important; flex-direction:column; }
.ikco-place-slot .place-order #place_order{ order:1; }
.ikco-place-slot .place-order .woocommerce-terms-and-conditions-wrapper{ order:2; margin:14px 0 0 !important; text-align:center; }
.ikco-place-slot .woocommerce-privacy-policy-text p{ text-align:center; }
.ikco-place-slot .woocommerce-terms-and-conditions-wrapper a,
.ikco-place-slot .woocommerce-privacy-policy-text a{ color:var(--primary) !important; }
/* Payment head: orange lock like the design */
.ikco-card--payment .ikco-card-head .ikco-card-ic svg{ color:var(--primary); }
/* Selected method (design): orange frame, light-orange header row,
   its fields on white inside the frame. */
body.ikowaina-checkout .ikco-card--payment #payment li.ikco-opt.is-selected,
body.ikowaina-checkout .ikco-card--payment .ikco-wallets.is-open .ikco-wallet-row{
  border-color:var(--primary) !important; background:#fff !important;
}
body.ikowaina-checkout .ikco-card--payment #payment li.ikco-opt.is-selected > label,
body.ikowaina-checkout .ikco-card--payment .ikco-wallets.is-open .ikco-wallet-row{ background:#fff3ea !important; }
body.ikowaina-checkout .ikco-card--payment #payment li.ikco-opt.is-selected > label{ border-radius:inherit; }
body.ikowaina-checkout .ikco-card--payment #payment li.ikco-opt > .payment_box{
  background:#fff !important; margin:0 !important; max-width:none !important; padding:14px 18px 16px !important; border-radius:0 0 8px 8px;
}
body.ikowaina-checkout .ikco-card--payment #payment li.ikco-opt{ overflow:hidden; }
.ikco-card--payment .ikco-wallets.is-open .ikco-wallet-box{ background:#fff !important; border-color:var(--primary) !important; padding:14px 18px 16px !important; }
@media (max-width:767px){
  body.ikowaina-checkout .ikco-card--payment #payment li.ikco-opt > .payment_box,
  .ikco-card--payment .ikco-wallets.is-open .ikco-wallet-box{ padding:12px 12px 14px !important; }
}
/* header colour across the whole row (radio included), fields on white */
body.ikowaina-checkout .ikco-card--payment #payment li.ikco-opt.is-selected{ background:#fff3ea !important; }
body.ikowaina-checkout .ikco-card--payment #payment li.ikco-opt.is-selected > label{ background:transparent !important; }
/* rounded corners on the visual first / last row (beats the ID rule) */
body.ikowaina-checkout .ikco-card--payment.ikco-ordered #payment ul.wc_payment_methods > li.ikco-list-first{ border-top-left-radius:8px !important; border-top-right-radius:8px !important; margin-top:0 !important; }
body.ikowaina-checkout .ikco-card--payment.ikco-ordered #payment ul.wc_payment_methods > li.ikco-list-last{ border-bottom-left-radius:8px !important; border-bottom-right-radius:8px !important; }
/* phone: logos stay on the right of the row, title on one line */
@media (max-width:767px){
  body.ikowaina-checkout .ikco-card--payment #payment li.ikco-opt > label{ display:flex !important; align-items:center; gap:8px; }
  body.ikowaina-checkout .ikco-card--payment #payment li.ikco-opt .ikco-opt-body strong{ white-space:nowrap; }
  body.ikowaina-checkout .ikco-card--payment .ikco-pay-brands{ margin-inline-start:auto !important; justify-content:flex-end; flex-wrap:nowrap; gap:4px; }
  body.ikowaina-checkout .ikco-card--payment .ikco-pay-brands img{ max-height:20px !important; }
}

/* =========================================================
   ORDERS — ACTIONS column: Cancel (30 min) · Return (14 days) ·
   Invoice. Same table look; the whole row still opens the order.
========================================================= */
.ikowaina-order-row{ position:relative; }
.ikowaina-orders-table-head + .ikowaina-order-row{ border-top:0; }
.ikowaina-order-row-link{ position:absolute; inset:0; z-index:1; }
.ikowaina-orders-table-head,
.ikowaina-order-row{ grid-template-columns:1.8fr 1fr 1.4fr 1fr 0.8fr minmax(60px, auto); }
.ikowaina-order-actions{ position:relative; z-index:2; display:flex; align-items:center; justify-content:flex-end; gap:6px; pointer-events:none; }
.ikowaina-order-actions > *{ pointer-events:auto; }
.ikowaina-order-actions .ikowaina-order-row-arrow{ pointer-events:none; width:20px; }
.ikowaina-order-action-form{ margin:0; display:inline-flex; }
.ikowaina-order-action{
  width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; padding:0; cursor:pointer;
  border:1px solid var(--border); border-radius:8px; background:var(--bg); color:var(--text2) !important; text-decoration:none !important;
}
.ikowaina-order-action:hover{ color:var(--text) !important; border-color:var(--text2); }
.ikowaina-order-action.is-cancel:hover{ color:#c0362c !important; border-color:#c0362c; }
.ikowaina-order-action.is-return:hover,
.ikowaina-order-action.is-invoice:hover{ color:var(--primary) !important; border-color:var(--primary); }
.ikowaina-order-action:focus-visible{ outline:2px solid var(--primary); outline-offset:2px; }
@media (max-width:900px){
  .ikowaina-order-row{ grid-template-columns:1fr auto auto; }
  .ikowaina-order-action{ width:32px; height:32px; }
}
/* Orders table grid: one column per part of the row (thumbnail, order,
   date, items, status, total, actions) — the header's first cell spans
   the thumbnail + order columns, so every value sits under its title. */
.ikowaina-orders-table-head,
.ikowaina-order-row{ grid-template-columns:40px 1.8fr 1fr 1.4fr 1fr 0.8fr minmax(60px, auto); }
.ikowaina-orders-table-head > span:first-child{ grid-column:span 2; }
@media (max-width:900px){
  .ikowaina-order-row{ grid-template-columns:40px minmax(0,1fr) auto auto auto; }
}
@media (max-width:480px){
  .ikowaina-order-row{ grid-template-columns:minmax(0,1fr) auto auto auto; gap:8px; }
  .ikowaina-order-actions{ gap:4px; }
}
/* same actions width on every row so the columns line up */
.ikowaina-orders-table-head,
.ikowaina-order-row{ grid-template-columns:40px 1.8fr 1fr 1.4fr 1fr 0.8fr 118px; }
@media (max-width:900px){
  .ikowaina-order-row{ grid-template-columns:40px minmax(0,1fr) auto auto 118px; }
}
@media (max-width:480px){
  .ikowaina-order-row{ grid-template-columns:minmax(0,1fr) auto auto; row-gap:10px; }
  .ikowaina-order-row-info{ flex-direction:column; align-items:flex-start; gap:2px; }
  .ikowaina-order-actions{ grid-column:1 / -1; justify-content:flex-end; }
}
@media (min-width:481px) and (max-width:900px){
  .ikowaina-order-row{ grid-template-columns:40px minmax(0,1fr) 110px auto 118px; }
  .ikowaina-order-row .col-status{ display:flex; justify-content:flex-end; }
}

/* The wallet row starts hidden (until a button is drawn) with the HTML
   "hidden" attribute. Keep it rendered but out of view instead of
   display:none, so the payment element inside can measure its width
   and draw the Apple Pay / Google Pay button. */
.ikco-wallets[hidden]{
  display:flex !important; position:absolute !important; left:-10000px !important; top:0 !important;
  width:100% !important; max-width:560px; height:auto !important; pointer-events:none;
}
.ikco-wallets[hidden] .ikco-wallet-box{ max-height:none; }

/* =========================================================
   HOME PRODUCT ROWS — horizontal swipe / drag
   Same cards, same widths and gaps as the grid (4 / 3 / 2 per
   screen); the products continue to the side instead of wrapping.
   Only the home page "Best Sellers" and "New Arrivals" blocks.
========================================================= */
.ikowaina-rail-section ul.products{
  grid-template-columns:none !important;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 3 * 22px) / 4);
  overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory; scroll-behavior:smooth;
  overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  /* room for the card hover lift + shadow, without changing the spacing */
  padding:6px 0 22px !important; margin:-6px 0 -22px !important;
}
.ikowaina-rail-section ul.products::-webkit-scrollbar{ display:none; }
.ikowaina-rail-section ul.products > li.product{ scroll-snap-align:start; }
.ikowaina-rail-section ul.products.is-dragging{ scroll-snap-type:none; scroll-behavior:auto; cursor:grabbing; user-select:none; }
.ikowaina-rail-section ul.products.is-dragging *{ pointer-events:none; }
@media (hover:hover) and (pointer:fine){
  .ikowaina-rail-section ul.products{ cursor:grab; }
}
@media (max-width:1024px){
  .ikowaina-rail-section ul.products{ grid-auto-columns:calc((100% - 2 * 22px) / 3); }
}
@media (max-width:767px){
  .ikowaina-rail-section ul.products{ grid-auto-columns:calc((100% - 14px) / 2); }
}

/* =========================================================
   Address form v2 — the "Adresse de livraison" layout.
   Scoped to .ikowaina-addr2-* so the Settings account-details
   form (which shares .ikowaina-address-form-*) is untouched.
   ========================================================= */
.ikowaina-addresses-page--form .ikowaina-orders-title-row{ margin-bottom:6px; }
.ikowaina-addr2-sub{
  margin:0 0 20px; color:var(--text2); font-size:14px; line-height:1.55; max-width:560px;
}
.ikowaina-addr2-form{ max-width:560px; }

.ikowaina-addr2-labelrow{ margin-bottom:20px; }
.ikowaina-addr2-legend{
  display:block; font-weight:800; font-size:13.5px; margin-bottom:9px; color:var(--text);
}

.ikowaina-addr2-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 12px;
}
.ikowaina-addr2-field{ grid-column:1 / -1; min-width:0; }
.ikowaina-addr2-field.is-half{ grid-column:span 1; }
.ikowaina-addr2-field label{
  display:block; font-weight:800; font-size:13.5px; margin-bottom:7px; color:var(--text); line-height:1.3;
}
.ikowaina-addr2-req{ color:#E5484D; margin-inline-start:3px; font-weight:800; }
.ikowaina-addr2-opt{ color:var(--text2); font-weight:600; font-size:12.5px; }

.ikowaina-addr2-field input[type="text"],
.ikowaina-addr2-field input[type="tel"],
.ikowaina-addr2-field select{
  width:100%; box-sizing:border-box; padding:13px 14px; border:1.5px solid var(--border);
  border-radius:var(--radius-md,12px); background:var(--bg); color:var(--text);
  font-size:15px; font-family:inherit; font-weight:600; line-height:1.3; -webkit-appearance:none; appearance:none;
}
.ikowaina-addr2-field input::placeholder{ color:var(--text2); font-weight:500; opacity:.75; }
.ikowaina-addr2-field input:focus,
.ikowaina-addr2-field select:focus{
  outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--orange-soft);
}

/* Select shell + caret (native arrow is suppressed above) */
.ikowaina-addr2-select{ position:relative; }
.ikowaina-addr2-select select{ padding-inline-end:38px; cursor:pointer; }
.ikowaina-addr2-caret{
  position:absolute; inset-inline-end:13px; top:50%; transform:translateY(-50%);
  color:var(--text2); pointer-events:none;
}

/* Phone = dial-code picker + national number */
.ikowaina-addr2-phone{ display:flex; gap:8px; align-items:stretch; }
.ikowaina-addr2-dial{ flex:0 0 auto; width:118px; }
.ikowaina-addr2-dial select{ padding-inline-end:30px; }
.ikowaina-addr2-dial .ikowaina-addr2-caret{ inset-inline-end:10px; }
.ikowaina-addr2-phone input[type="tel"]{ flex:1 1 auto; min-width:0; }

.ikowaina-addr2-default{
  display:flex; align-items:center; gap:9px; font-size:13.5px; font-weight:600;
  color:var(--text); margin:18px 0 20px; cursor:pointer;
}
.ikowaina-addr2-default input{ width:18px; height:18px; accent-color:var(--primary); flex:0 0 auto; }

.ikowaina-addr2-actions{ display:flex; flex-direction:column; align-items:stretch; gap:10px; }
.ikowaina-addr2-save{
  display:flex; align-items:center; justify-content:center; gap:9px; width:100%;
  padding:16px 20px; border:0; border-radius:var(--radius-full,999px); cursor:pointer;
  background:var(--primary); color:#fff; font-family:inherit; font-size:15.5px; font-weight:800;
  line-height:1; transition:filter .15s ease, transform .1s ease;
}
.ikowaina-addr2-save:hover{ filter:brightness(1.05); }
.ikowaina-addr2-save:active{ transform:translateY(1px); }
.ikowaina-addr2-cancel{
  display:block; text-align:center; padding:12px; font-size:14px; font-weight:700; color:var(--text2);
}
.ikowaina-addr2-cancel:hover{ color:var(--text); }

/* Phone: one column, a little tighter, button stays thumb-sized */
@media (max-width:600px){
  .ikowaina-addr2-sub{ font-size:13.5px; margin-bottom:16px; }
  .ikowaina-addr2-grid{ gap:13px 10px; }
  .ikowaina-addr2-field label{ font-size:13px; }
  .ikowaina-addr2-field input[type="text"],
  .ikowaina-addr2-field input[type="tel"],
  .ikowaina-addr2-field select{ padding:12px 13px; font-size:15px; }
  .ikowaina-addr2-dial{ width:104px; }
  .ikowaina-addr2-form{ max-width:none; }
}
@media (max-width:359px){
  .ikowaina-addr2-field.is-half{ grid-column:1 / -1; }
  .ikowaina-addr2-dial{ width:96px; }
}

/* =========================================================
   Help & Support — shortcut rows to the store's real pages.
   ========================================================= */
.ikowaina-help-list{ display:flex; flex-direction:column; gap:12px; max-width:560px; }
.ikowaina-help-row{
  display:flex; align-items:center; gap:14px; padding:17px 18px;
  border:1px solid var(--border); border-radius:var(--radius-lg,18px);
  background:var(--bg); color:var(--text); text-decoration:none;
  transition:border-color .15s ease, background .15s ease, transform .1s ease;
}
.ikowaina-help-row:hover{ border-color:var(--primary); background:var(--orange-soft); }
.ikowaina-help-row:active{ transform:translateY(1px); }
.ikowaina-help-row-icon{ display:flex; align-items:center; justify-content:center; flex:0 0 auto; color:var(--text); }
.ikowaina-help-row:hover .ikowaina-help-row-icon{ color:var(--primary); }
.ikowaina-help-row-label{ flex:1 1 auto; min-width:0; font-size:15.5px; font-weight:600; line-height:1.3; }
.ikowaina-help-row-go{ display:flex; align-items:center; justify-content:center; flex:0 0 auto; color:var(--text); opacity:.75; }
.ikowaina-help-row:hover .ikowaina-help-row-go{ color:var(--primary); opacity:1; }

@media (max-width:600px){
  .ikowaina-help-list{ gap:11px; max-width:none; }
  .ikowaina-help-row{ padding:15px 16px; gap:13px; border-radius:var(--radius-md,12px); }
  .ikowaina-help-row-label{ font-size:15px; }
}

/* =========================================================
   PHONE SIZING PASS — measured from the reference mockup.
   Appended last on purpose: every rule here is an override of
   an earlier one, so nothing above had to be edited and the
   whole pass can be removed in one piece.

   APPEARANCE ONLY. No markup, behaviour, link, hook or template
   is touched: the category strip still scrolls, the home product
   rails still drag/swipe, wishlist hearts and add-to-cart buttons
   keep their own elements, handlers and positions — they are only
   re-sized to the proportions taken from the reference.

   Every value is a fraction of the viewport width taken from the
   mockup (868px wide there), wrapped in clamp() so it holds from a
   320px phone to a 430px one. The clamp floors keep text at a
   readable size: the mockup's own type is drawn very small (its
   product titles work out to ~8px at phone width), so type is
   scaled to the same rhythm but never below a legible minimum.
   ========================================================= */
@media (max-width:767px){

  /* Reference gutters/gaps: 4.38% / 1.27% / 1.61% of viewport width. */
  .hero-section, .cat-section, .section, .promo-strip{
    --m-gutter:clamp(12px, 4.4vw, 20px);
  }
  .cat-grid{ --m-gap:clamp(4px, 1.3vw, 7px); }
  /* One card's real width, and from it the image height at the
     reference's 248:200 ratio. Computing them once here lets the
     image and the add-to-cart button land on exact pixel values
     instead of relying on aspect-ratio resolving against a child
     that is itself sized from its parent. */
  .product-grid, ul.products{
    --m-gap:clamp(5px, 1.6vw, 8px);
    --m-cardw:calc((100vw - 2 * clamp(12px, 4.4vw, 20px) - 2 * var(--m-gap)) / 3);
    --m-imgh:calc(var(--m-cardw) * 200 / 248);
    --m-btn:clamp(24px, 6.7vw, 32px);
  }

  /* ---- HERO: 56.6% of viewport tall, buttons stacked full width ---- */
  .hero-section{ padding:clamp(8px, 2.6vw, 14px) var(--m-gutter) 0; }
  .hero{
    padding:clamp(13px, 5.3vw, 24px);
    min-height:56.5vw;
    border-radius:clamp(14px, 4.6vw, 22px);
  }
  .hero .eyebrow{ font-size:clamp(9px, 2.6vw, 12px); letter-spacing:.07em; }
  .hero h1{
    font-size:clamp(18px, 4.9vw, 26px); line-height:1.14;
    margin-top:clamp(5px, 1.8vw, 10px);
  }
  .hero p{
    font-size:clamp(10.5px, 2.9vw, 13px); line-height:1.45;
    margin-top:clamp(5px, 1.8vw, 10px); max-width:none;
  }
  .hero .cta-row{
    flex-direction:column; align-items:stretch; flex-wrap:nowrap;
    gap:clamp(6px, 1.8vw, 10px); margin-top:clamp(9px, 3vw, 18px);
  }
  .hero .cta-row .btn{
    width:100%; box-sizing:border-box; justify-content:center;
    min-height:clamp(34px, 8.3vw, 44px); padding:0 14px;
    font-size:clamp(12px, 3.2vw, 15px);
  }
  .hero .cta-row .btn svg{ width:clamp(13px, 3.6vw, 17px); height:clamp(13px, 3.6vw, 17px); }
  .hero .hero-bell{
    width:clamp(28px, 7.6vw, 36px); height:clamp(28px, 7.6vw, 36px);
    top:clamp(12px, 4vw, 20px); inset-inline-end:clamp(12px, 4vw, 20px);
  }
  .hero .hero-bell svg{ width:clamp(14px, 3.8vw, 18px); height:clamp(14px, 3.8vw, 18px); }

  /* ---- CATEGORIES: three landscape tiles across, still scrollable ---- */
  .cat-section{ padding:clamp(7px, 2.1vw, 12px) var(--m-gutter) 0; }
  /* The mockup has no heading here — it is decorative and stays visible
     on desktop exactly as before; only the phone view hides it, which is
     also what the theme does at every other width. */
  .cat-section .section-label{ display:none; }
  .cat-grid{ gap:var(--m-gap); padding-bottom:2px; }
  .cat-card-img{
    flex:0 0 calc((100% - 2 * var(--m-gap)) / 3);
    height:auto; aspect-ratio:256 / 168;
    border-radius:clamp(10px, 3.2vw, 15px);
  }
  .cat-card-label{
    font-size:clamp(9.5px, 2.7vw, 12px); line-height:1.16;
    inset-inline-start:clamp(6px, 2.1vw, 10px);
    bottom:clamp(5px, 1.8vw, 9px);
    max-width:calc(100% - 2 * clamp(6px, 2.1vw, 10px));
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }

  /* ---- PRODUCTS: three per row, card 28.6% wide, image 248:200 ---- */
  .section{ padding:clamp(8px, 2.2vw, 14px) var(--m-gutter) 0; }
  .product-grid, ul.products{
    grid-template-columns:repeat(3, 1fr)!important;
    gap:var(--m-gap);
  }
  /* Home rails keep dragging/swiping — only how many fit a screen changes. */
  .ikowaina-rail-section ul.products{
    grid-auto-columns:calc((100% - 2 * clamp(5px, 1.6vw, 8px)) / 3);
    gap:clamp(5px, 1.6vw, 8px);
  }

  ul.products li.product{ border-radius:clamp(10px, 3.2vw, 15px); }
  /* The WooCommerce link keeps its height:auto (it wraps the name and
     price too) — only the photo itself is re-framed, matching the
     earlier rule's !important so this one actually takes effect. */
  .pcard .img-wrap{ height:var(--m-imgh); }
  .pcard .img-wrap img{ height:100%; }
  ul.products li.product a.woocommerce-LoopProduct-link img,
  ul.products li.product img{ height:var(--m-imgh)!important; }
  .pcard .img-wrap svg{
    width:clamp(22px, 6.4vw, 30px); height:clamp(22px, 6.4vw, 30px);
    position:absolute; inset:0; margin:auto;
  }

  .pcard .name,
  ul.products li.product .woocommerce-loop-product__title{
    font-size:clamp(10.5px, 2.9vw, 13px)!important; line-height:1.3;
    margin:clamp(5px, 1.8vw, 9px) clamp(6px, 2.1vw, 10px) 0!important;
    /* Two lines max, so a long name can never push the price out of
       line with the neighbouring cards. */
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; min-height:2.6em;
  }
  .pcard .price,
  ul.products li.product .price{
    font-size:clamp(11px, 3.1vw, 14px)!important;
    margin:clamp(3px, 1vw, 5px) clamp(6px, 2.1vw, 10px) clamp(6px, 2.1vw, 10px)!important;
  }
  .pcard .info{ padding:clamp(6px, 2.1vw, 10px); }
  .pcard .rating{ font-size:clamp(9px, 2.4vw, 11px); margin-top:clamp(2px, .8vw, 5px); }

  /* Wishlist heart + add-to-cart: same buttons, same handlers and the
     same corners of the photo as before — only smaller. The cart
     button is pinned to the bottom of the IMAGE (not the card), which
     is where the reference puts it, so a one- or two-line product name
     never moves it. */
  .ik-wish,
  .pcard .heart{
    width:clamp(21px, 5.9vw, 28px); height:clamp(21px, 5.9vw, 28px);
    top:clamp(5px, 1.8vw, 9px); inset-inline-end:clamp(5px, 1.8vw, 9px);
  }
  .ik-wish svg,
  .pcard .heart svg{ width:clamp(10px, 2.9vw, 14px); height:clamp(10px, 2.9vw, 14px); }
  .pcard .addbtn,
  ul.products li.product a.add_to_cart_button{
    width:var(--m-btn)!important; height:var(--m-btn)!important;
    top:calc(var(--m-imgh) - var(--m-btn) * .62)!important;
    bottom:auto!important;
    inset-inline-end:clamp(4px, 1.5vw, 8px)!important;
  }
  ul.products li.product a.add_to_cart_button::after{ font-size:clamp(13px, 3.7vw, 18px)!important; }
  .pcard .badge,
  ul.products li.product .onsale{
    font-size:clamp(7.5px, 2.1vw, 10px); padding:2px 6px; border-radius:6px;
    top:clamp(5px, 1.8vw, 9px); inset-inline-start:clamp(5px, 1.8vw, 9px);
  }
}

/* =========================================================
   DESKTOP SIZING PASS — measured from the desktop reference.
   Appended last and scoped to >=1025px only, so the phone pass
   above and the iPad rules in between are untouched.

   APPEARANCE ONLY. No markup, template, hook, link or script is
   involved: the category strip still scrolls with its arrows and
   dots, the home product rails still drag, the wishlist heart and
   the add-to-cart button keep their own elements, handlers and
   their corners of the photo. Only sizes, spacing and type change.

   Reference proportions (share of viewport width, 1707px there):
     gutter 2.64%   category card 18.28% wide, ratio 312:225
     product card 18.16% wide, photo ratio 310:234, gaps ~0.87%
   ========================================================= */
@media (min-width:1025px){

  /* ---- CATEGORIES: same five across, slightly shorter and tighter ---- */
  .cat-grid{ gap:12px; }
  .cat-card-img{
    flex:0 0 calc((100% - 4 * 12px) / 5);
    height:auto; aspect-ratio:312 / 225;
  }
  .cat-card-label{ font-size:clamp(14px, 1.3vw, 20px); inset-inline-start:18px; bottom:16px; }

  /* ---- SECTION HEADINGS ---- */
  .section-head{ margin-bottom:22px; }
  .section-head h2{ font-size:clamp(26px, 2.5vw, 40px); line-height:1.1; }
  .section-head p{ font-size:clamp(13px, 1.2vw, 18px); margin-top:8px; }

  /* ---- PRODUCTS: five per row ---- */
  .product-grid,
  ul.products{
    --d-gap:13px;
    /* One card's width, and the photo height at the reference's
       310:234 ratio — used below to pin the cart button to the
       bottom of the photo exactly as the reference shows it. */
    --d-cardw:calc((100vw - 80px - 4 * var(--d-gap)) / 5);
    --d-imgh:calc(var(--d-cardw) * 234 / 310);
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:var(--d-gap);
  }
  /* Home rails keep dragging/swiping — only how many fit a screen changes. */
  .ikowaina-rail-section ul.products{
    grid-auto-columns:calc((100% - 4 * 13px) / 5);
    gap:13px;
  }

  /* Equal height + aligned prices. The product name always occupies
     exactly two lines (reserved below, and clamped at two), so a short
     name and a long one give the same card height and the prices line
     up across the row — while the price still sits right under the
     name, as in the reference, instead of being pushed to the floor. */
  .pcard,
  ul.products li.product{ display:flex; flex-direction:column; }
  ul.products li.product a.woocommerce-LoopProduct-link{
    display:flex!important; flex-direction:column; flex:1 1 auto;
  }

  /* Photo: ratio instead of a fixed 220px, so it shrinks with the card. */
  .pcard .img-wrap{ height:auto; aspect-ratio:310 / 234; }
  .pcard .img-wrap img{ height:100%; }
  ul.products li.product a.woocommerce-LoopProduct-link img,
  ul.products li.product img{ height:auto!important; aspect-ratio:310 / 234; }

  /* Type: product name capped at two lines so every card in a row
     ends up the same height whatever the name's length. */
  .pcard .name,
  ul.products li.product .woocommerce-loop-product__title{
    font-size:clamp(14px, 1.25vw, 18px)!important; line-height:1.32;
    margin:14px 16px 0!important;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; min-height:2.64em;
  }
  .pcard .price,
  ul.products li.product .price{
    font-size:clamp(15px, 1.3vw, 19px)!important;
    margin:8px 16px 16px!important;
  }
  .ik-rating{ margin:6px 16px 0; font-size:12.5px; }

  /* Heart and cart button: same size, same corners of the photo —
     the cart button just follows the photo's new height. */
  .pcard .addbtn,
  ul.products li.product a.add_to_cart_button{
    top:calc(var(--d-imgh) - 19px)!important;
    bottom:auto!important;
    inset-inline-end:14px!important;
  }
  .ik-wish,
  .pcard .heart{ top:14px; inset-inline-end:14px; }
}

/* =========================================================
   iPAD SIZING PASS — measured from the iPad reference.
   Appended last and scoped to 768–1024px only, so the phone pass
   (max-width:767px) and the desktop pass (min-width:1025px) can
   never be reached by it, and neither can reach this range.

   APPEARANCE ONLY. Nothing here adds, removes or rewires a single
   component: the header keeps its own search, language, wishlist,
   cart and account controls, the category strip keeps its arrows
   and dots, the product rails keep their drag/swipe, and the
   wishlist heart and add-to-cart button keep their elements,
   their handlers and their corners of the photo. Only sizes,
   spacing and type change.

   Reference proportions (share of viewport width, 1448px there):
     gutter 4.0%   category card 17.7% wide, ratio 256:164
     product card 17.7% wide, photo ratio 256:145, gaps ~0.9%
     hero ~33% of viewport tall
   ========================================================= */
@media (min-width:768px) and (max-width:1024px){

  /* Shared iPad rhythm, so every section lines up on the same edges. */
  .header-row,
  .hero-section, .cat-section, .section, .promo-strip,
  .product-grid, ul.products, .cat-grid{
    --t-pad:clamp(20px, 4vw, 42px);
    --t-gap:clamp(7px, .9vw, 10px);
  }

  /* ---- HEADER: search fills the gap that sat between logo and icons ---- */
  .header-row{ padding:14px var(--t-pad); gap:16px; }
  .header-row .header-search{
    flex:1 1 auto; width:auto; max-width:none; margin-inline-start:0;
  }
  .header-actions{ gap:8px; }
  .icon-btn{ width:34px; height:34px; }

  /* ---- HERO ---- */
  .hero-section{ padding:clamp(14px, 2.2vw, 24px) var(--t-pad) 0; }
  .hero{
    padding:clamp(24px, 4.4vw, 44px);
    min-height:33vw;
    border-radius:clamp(16px, 2vw, 22px);
  }
  .hero .eyebrow{ font-size:clamp(11px, 1.3vw, 14px); }
  .hero h1{ font-size:clamp(26px, 4.2vw, 38px); line-height:1.12; margin-top:10px; }
  /* The text column is sized on the hero (the reference gives it ~37%
     of the banner), not on the paragraph — a percentage there would
     resolve against the already-capped 480px inner box and squeeze
     the description into four lines. */
  .hero-inner{ max-width:52%; }
  .hero p{ font-size:clamp(12px, 1.5vw, 16px); margin-top:12px; max-width:none; }
  .hero .cta-row{ gap:12px; margin-top:clamp(16px, 2.4vw, 26px); }
  .hero .cta-row .btn{ font-size:clamp(12px, 1.4vw, 15px); padding:12px 20px; }

  /* ---- CATEGORIES: five across, one row, shorter than desktop ---- */
  .cat-section{ padding:clamp(14px, 2.2vw, 24px) var(--t-pad) 0; }
  .cat-grid{ gap:var(--t-gap); }
  .cat-card-img{
    flex:0 0 calc((100% - 4 * var(--t-gap)) / 5);
    height:auto; aspect-ratio:256 / 164;
    border-radius:clamp(10px, 1.4vw, 16px);
  }
  .cat-card-label{ font-size:clamp(10px, 1.4vw, 14px); inset-inline-start:12px; bottom:10px; }

  /* ---- SECTION HEADINGS ---- */
  .section-head{ margin-bottom:16px; }
  .section-head h2{ font-size:clamp(18px, 2.5vw, 26px); line-height:1.12; }
  .section-head p{ font-size:clamp(11px, 1.3vw, 14px); margin-top:5px; }

  /* ---- PRODUCTS: five per row ---- */
  .section{ padding:clamp(16px, 2.6vw, 28px) var(--t-pad) 0; }
  .product-grid,
  ul.products{
    /* One card's width, and the photo height at the reference's
       256:145 ratio — used below to pin the cart button to the
       bottom of the photo, exactly where it sits today. */
    --t-cardw:calc((100vw - 2 * var(--t-pad) - 4 * var(--t-gap)) / 5);
    --t-imgh:calc(var(--t-cardw) * 145 / 256);
    --t-btn:30px;
    grid-template-columns:repeat(5, minmax(0, 1fr))!important;
    gap:var(--t-gap);
  }
  .ikowaina-rail-section ul.products{
    grid-auto-columns:calc((100% - 4 * var(--t-gap)) / 5);
    gap:var(--t-gap);
  }

  /* Equal height + aligned prices: the name always takes exactly two
     lines, so every card in the row ends up the same height and the
     prices sit on one line across the row. */
  .pcard,
  ul.products li.product{ display:flex; flex-direction:column; border-radius:clamp(10px, 1.4vw, 16px); }
  ul.products li.product a.woocommerce-LoopProduct-link{
    display:flex!important; flex-direction:column; flex:1 1 auto;
  }

  .pcard .img-wrap{ height:auto; aspect-ratio:256 / 145; }
  .pcard .img-wrap img{ height:100%; }
  ul.products li.product a.woocommerce-LoopProduct-link img,
  ul.products li.product img{ height:auto!important; aspect-ratio:256 / 145; }

  .pcard .name,
  ul.products li.product .woocommerce-loop-product__title{
    font-size:clamp(11px, 1.5vw, 15px)!important; line-height:1.3;
    margin:10px 12px 0!important;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; min-height:2.6em;
  }
  .pcard .price,
  ul.products li.product .price{
    font-size:clamp(11.5px, 1.6vw, 16px)!important;
    margin:6px 12px 12px!important;
  }
  .ik-rating{ margin:5px 12px 0; font-size:11px; }

  /* Heart and cart button: same buttons, same corners of the photo,
     scaled to the iPad card; the cart button follows the photo height. */
  .ik-wish,
  .pcard .heart{
    width:var(--t-btn, 30px); height:var(--t-btn, 30px);
    top:10px; inset-inline-end:10px;
  }
  .ik-wish svg,
  .pcard .heart svg{ width:15px; height:15px; }
  .pcard .addbtn,
  ul.products li.product a.add_to_cart_button{
    width:var(--t-btn)!important; height:var(--t-btn)!important;
    top:calc(var(--t-imgh) - var(--t-btn) / 2)!important;
    bottom:auto!important;
    inset-inline-end:10px!important;
  }
  ul.products li.product a.add_to_cart_button::after{ font-size:16px!important; }
}

/* =========================================================
   HEADER + HERO — the full-bleed banner with the header laid
   over it, from the design reference. Appended last so every
   rule here is an override; nothing above was edited.

   APPEARANCE ONLY. The header keeps its own logo, search,
   language, notifications, wishlist, cart and account controls
   with their links and handlers; the hero keeps its slides and
   its two arrow buttons (#hero-prev / #hero-next) driven by the
   same script as before. Only where things sit and how big they
   are changes here.

   Reference proportions (share of viewport width, 1460px there):
     header controls 3.7% tall   search pill ~45% wide
     side gutter ~5.5%           hero 44% of viewport wide, tall
     arrows ~4.3%, centred on the banner's left and right edges
   ========================================================= */

/* ---- 1. Header chrome, on every page and every screen size ---- */
.header-row{
  padding:clamp(12px, 1.6vw, 22px) clamp(16px, 4.5vw, 72px);
  gap:clamp(12px, 2vw, 28px);
}
.header-row .header-search{
  /* The reference leaves a clear run of space between the logo and the
     search field rather than butting them together. */
  flex:1 1 auto; width:auto; max-width:none;
  margin-inline-start:clamp(0px, 3.4vw, 64px);
  padding:clamp(10px, 1.1vw, 16px) clamp(14px, 1.4vw, 22px);
  border-radius:999px;
}
.header-row .header-search input{ font-size:clamp(13px, 1.05vw, 16px); }
.header-actions{ gap:clamp(6px, .8vw, 12px); }
.icon-btn{
  width:clamp(34px, 3.7vw, 54px); height:clamp(34px, 3.7vw, 54px);
}
.header-row .market-lang-toggle{
  min-height:clamp(34px, 3.7vw, 54px); border-radius:999px;
}

/* ---- 2. Full-bleed hero ---- */
.hero-section{ position:relative; padding:0; margin:0; }
.hero{
  border-radius:0; box-shadow:none;
  min-height:44vw;
  padding:clamp(86px, 13vw, 190px) clamp(20px, 5.5vw, 80px) clamp(36px, 6vw, 90px);
}
.hero-inner{ max-width:min(560px, 46%); }

/* Arrows: same two buttons, now laid over the banner's own edges
   and centred on it, instead of sitting in a row underneath. */
.hero-section .hero-arrows{
  position:absolute; inset:0; z-index:4;
  display:flex; align-items:center; justify-content:space-between;
  width:auto; margin:0; gap:0; pointer-events:none;
  padding:0 clamp(8px, 2.2vw, 34px);
}
.hero-section .hero-arrow{
  pointer-events:auto;
  width:clamp(36px, 4.3vw, 62px); height:clamp(36px, 4.3vw, 62px);
  border-radius:50%; color:#fff;
  background:rgba(255,255,255,.16);
  border:1.5px solid rgba(255,255,255,.55);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.hero-section .hero-arrow:hover{
  background:rgba(255,255,255,.3); border-color:#fff; color:#fff;
}
.hero-section .hero-arrow svg{
  width:clamp(16px, 1.7vw, 24px); height:clamp(16px, 1.7vw, 24px);
}

/* ---- 3. The header lies OVER the hero, on pages that have one ----
   Scoped so it can only ever happen where a banner is actually
   behind it: every other page keeps its solid, sticky header
   exactly as before. The controls themselves already have their own
   light pill backgrounds, so they stay perfectly readable over the
   photo without a single colour change. */
body.home .site-header,
body.home .mobile-topbar{
  position:absolute; top:0; inset-inline:0; z-index:50;
  background:transparent; border-bottom:0; box-shadow:none;
}
body.home{ position:relative; }
/* Same treatment for any other page that carries the hero shortcode.
   Browsers without :has() simply skip this and keep the solid header. */
body:has(.hero-section) .site-header,
body:has(.hero-section) .mobile-topbar{
  position:absolute; top:0; inset-inline:0; z-index:50;
  background:transparent; border-bottom:0; box-shadow:none;
}
body:has(.hero-section){ position:relative; }

/* ---- 4. Phone: same shape, sized for a small screen ---- */
@media (max-width:767px){
  .mobile-topbar{
    padding:clamp(10px, 3vw, 16px) clamp(12px, 4.2vw, 20px);
    gap:clamp(8px, 2.6vw, 12px);
  }
  .hero{
    min-height:0;
    padding:clamp(64px, 20vw, 96px) clamp(16px, 5.4vw, 26px) clamp(20px, 6vw, 30px);
  }
  .hero-inner{ max-width:none; }
  .hero-section .hero-arrows{ padding:0 clamp(6px, 2vw, 12px); }
  .hero-section .hero-arrow{ width:32px; height:32px; }
  .hero-section .hero-arrow svg{ width:15px; height:15px; }
  /* The banner's bell is the phone's notifications control (the top
     bar has none), so it stays exactly where it is — just moved down
     far enough to clear the now-overlaid top bar instead of sitting
     underneath it. */
  .hero .hero-bell{ top:clamp(62px, 17.5vw, 84px); }
}

/* ---- 5. iPad ---- */
@media (min-width:768px) and (max-width:1024px){
  .hero{
    min-height:46vw;
    padding:clamp(76px, 12vw, 120px) clamp(24px, 4.5vw, 48px) clamp(28px, 5vw, 56px);
  }
  .hero-inner{ max-width:56%; }
}

/* =========================================================
   LOGO SIZE — the only change in this pass.
   The IKOWAINA mark reads a little small next to the header's
   pill controls, so it is scaled up while keeping its own
   aspect ratio (height only; width stays auto). It still fits
   inside the existing header, so the header's own height,
   padding, search field, icons and spacing are all untouched —
   and so is the footer logo, which keeps its own smaller size.
   ========================================================= */
.logo-img{ height:34px !important; max-height:34px !important; }
.site-header .brand img,
.header-row .brand img,
.site-header .custom-logo-link img{
  height:34px !important; width:auto !important; max-height:34px !important; max-width:260px !important;
}
/* Text / inline-SVG fallback logo, for when no image logo is set. */
.brand svg{ width:34px; height:34px; }
.brand span{ font-size:24px; }

@media (max-width:767px){
  .mobile-topbar .brand img,
  .mobile-topbar .logo-img{ height:28px !important; max-height:28px !important; }
  .mobile-topbar .brand svg{ width:28px; height:28px; }
  .mobile-topbar .brand span{ font-size:19px; }
}
