/* =========================================================
   JOHN IAN LUXURY COMMERCE — RC5
   WooCommerce owns data and transaction logic. The theme owns presentation.
   ========================================================= */
:root{
  --ji-commerce-line:rgba(17,19,15,.14);
  --ji-commerce-soft:#e7e0d5;
  --ji-commerce-panel:#f8f4ed;
}
.ji-commerce-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(30px,6vw,100px);align-items:end;margin-bottom:clamp(45px,7vw,88px)}
.ji-commerce-heading h2{max-width:1000px;margin-bottom:18px}.ji-commerce-heading__lead{max-width:680px;margin:0;font-family:var(--serif);font-size:clamp(19px,2vw,28px);line-height:1.45}.ji-commerce-heading__link,.ji-commerce-card__link{display:inline-flex;align-items:center;align-self:end;padding-bottom:5px;border-bottom:1px solid currentColor;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.ji-commerce-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px)}.ji-commerce-grid--signature{grid-template-columns:repeat(4,minmax(0,1fr))}.ji-commerce-card{display:flex;min-width:0;flex-direction:column;margin:0!important;width:auto!important}.ji-commerce-card--featured{grid-column:span 2;grid-row:span 2}.ji-commerce-card__media{position:relative;display:block;overflow:hidden;background:var(--ji-commerce-soft);aspect-ratio:4/5}.ji-commerce-card--featured .ji-commerce-card__media{aspect-ratio:4/5}.ji-commerce-card__image{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.ji-commerce-card:hover .ji-commerce-card__image{transform:scale(1.018)}.ji-commerce-card__badges{position:absolute;top:16px;left:16px;display:flex;gap:7px;flex-wrap:wrap}.ji-commerce-badge{padding:7px 9px;background:rgba(255,255,255,.92);font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.ji-commerce-badge--muted{background:rgba(17,19,15,.86);color:#fff}.ji-commerce-card__body{display:flex;flex:1;flex-direction:column;padding-top:20px}.ji-commerce-card__meta{margin:0 0 8px;color:rgba(17,19,15,.58);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.ji-commerce-card__title{margin:0 0 10px;font-size:clamp(25px,2vw,34px);line-height:1.08}.ji-commerce-card__excerpt{max-width:42ch;margin:0 0 17px;color:rgba(17,19,15,.72);font-size:14px;line-height:1.65}.ji-commerce-card__footer{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-top:auto;padding-top:12px}.ji-commerce-card__price{font-family:var(--serif);font-size:clamp(20px,1.7vw,28px)}.ji-commerce-card__price del{margin-right:7px;opacity:.46}.ji-commerce-card__price ins{text-decoration:none}.ji-commerce-empty{padding:42px;border:1px solid var(--ji-commerce-line);background:rgba(255,255,255,.25)}
.ji-commerce-hero{display:flex;min-height:54svh;align-items:flex-end;padding:160px 0 72px;background:var(--green);color:#fff}.ji-commerce-hero__inner>p:last-child,.ji-commerce-hero .term-description{max-width:700px;font-family:var(--serif);font-size:clamp(20px,2vw,30px)}.ji-commerce-hero h1{max-width:1000px}.ji-commerce-toolbar{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:45px;padding-bottom:20px;border-bottom:1px solid var(--ji-commerce-line)}.ji-commerce-toolbar .woocommerce-result-count{margin:0;color:rgba(17,19,15,.58);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.ji-commerce-toolbar .woocommerce-ordering{margin:0}.ji-commerce-toolbar select{min-height:44px;padding:0 38px 0 0;border:0;border-bottom:1px solid var(--ji-commerce-line);border-radius:0;background:transparent}.ji-commerce-pagination{margin-top:70px}.woocommerce nav.woocommerce-pagination ul{display:flex;gap:8px;border:0}.woocommerce nav.woocommerce-pagination ul li{border:0}.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{display:grid;min-width:42px;min-height:42px;place-items:center;border:1px solid var(--ji-commerce-line);background:transparent}.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--green);color:#fff}
.ji-commerce-single{padding:clamp(125px,12vw,180px) 0 var(--space);background:var(--paper)}.ji-commerce-single .woocommerce-breadcrumb{margin-bottom:36px;color:rgba(17,19,15,.55);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.ji-commerce-single div.product{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);gap:clamp(45px,7vw,110px)}.ji-commerce-single div.product div.images,.ji-commerce-single div.product div.summary{float:none;width:auto;margin:0}.ji-commerce-single div.product div.summary{position:sticky;top:120px;align-self:start}.ji-commerce-single .product_title{font-size:clamp(46px,5.3vw,80px)}.ji-commerce-single .price{margin:20px 0!important;color:var(--ink)!important;font-family:var(--serif);font-size:clamp(28px,3vw,42px)!important}.ji-commerce-single .woocommerce-product-details__short-description{max-width:600px;font-size:17px;line-height:1.8}.ji-commerce-single form.cart{display:grid;gap:22px;margin:34px 0!important}.ji-commerce-single .quantity .qty{width:84px;min-height:52px;border:1px solid var(--ji-commerce-line);background:transparent}.woocommerce button.button,.woocommerce a.button,.woocommerce input.button,.woocommerce #respond input#submit{min-height:52px;padding:0 25px!important;border:1px solid var(--green)!important;border-radius:0!important;background:var(--green)!important;color:#fff!important;font-size:11px!important;font-weight:700!important;letter-spacing:.13em!important;text-transform:uppercase!important}.woocommerce button.button:hover,.woocommerce a.button:hover{background:#20291d!important}.ji-commerce-single .variations{margin:0!important}.ji-commerce-single .variations th,.ji-commerce-single .variations td{display:block;padding:0 0 12px}.ji-commerce-single .variations label{font-size:10px;letter-spacing:.13em;text-transform:uppercase}.ji-commerce-single .variations select{width:100%;min-height:52px;padding:0 14px;border:1px solid var(--ji-commerce-line);border-radius:0;background:transparent}.ji-commerce-single .product_meta{display:grid;gap:8px;padding-top:24px;border-top:1px solid var(--ji-commerce-line);font-size:11px;line-height:1.7}.ji-commerce-single .woocommerce-tabs{grid-column:1/-1;margin-top:80px}.ji-commerce-single .woocommerce-tabs ul.tabs{display:flex;gap:30px;padding:0!important;border-bottom:1px solid var(--ji-commerce-line)}.ji-commerce-single .woocommerce-tabs ul.tabs::before{display:none!important}.ji-commerce-single .woocommerce-tabs ul.tabs li{margin:0!important;padding:0!important;border:0!important;background:transparent!important}.ji-commerce-single .woocommerce-tabs ul.tabs li a{padding:14px 0!important;font-size:10px!important;letter-spacing:.12em;text-transform:uppercase}.ji-commerce-single .woocommerce-tabs .panel{max-width:820px;padding:45px 0}.ji-commerce-single .related.products,.ji-commerce-single .upsells.products{grid-column:1/-1;margin-top:75px}.ji-commerce-single .related.products>h2,.ji-commerce-single .upsells.products>h2{margin-bottom:45px}
.woocommerce-cart .site-main,.woocommerce-checkout .site-main,.woocommerce-account .site-main{padding:clamp(130px,12vw,180px) var(--gutter) var(--space);background:var(--paper)}.woocommerce-cart .woocommerce,.woocommerce-checkout .woocommerce,.woocommerce-account .woocommerce{width:min(100%,1200px);margin:auto}.woocommerce table.shop_table{border:0;border-radius:0;border-collapse:collapse}.woocommerce table.shop_table th,.woocommerce table.shop_table td{padding:20px 12px;border-color:var(--ji-commerce-line)}.woocommerce-cart .cart_totals,.woocommerce-checkout #order_review{padding:30px;background:var(--ji-commerce-panel)}.woocommerce-checkout .col2-set{display:grid;grid-template-columns:1fr 1fr;gap:60px;width:100%}.woocommerce-checkout .col2-set .col-1,.woocommerce-checkout .col2-set .col-2{float:none;width:auto}.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{min-height:52px;padding:10px 0;border:0;border-bottom:1px solid var(--ji-commerce-line);border-radius:0;background:transparent}.woocommerce form .form-row label{font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.woocommerce-message,.woocommerce-info,.woocommerce-error{border-top-color:var(--gold);background:var(--ji-commerce-panel)}.woocommerce-account .woocommerce-MyAccount-navigation{float:none;width:auto;margin-bottom:35px}.woocommerce-account .woocommerce-MyAccount-navigation ul{display:flex;gap:8px;flex-wrap:wrap;list-style:none;margin:0;padding:0}.woocommerce-account .woocommerce-MyAccount-navigation a{display:block;padding:11px 14px;border:1px solid var(--ji-commerce-line);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.woocommerce-account .woocommerce-MyAccount-content{float:none;width:auto;max-width:900px}
@media(max-width:1050px){.ji-commerce-grid--signature{grid-template-columns:repeat(2,minmax(0,1fr))}.ji-commerce-card--featured{grid-column:span 1;grid-row:span 1}.ji-commerce-single div.product{grid-template-columns:1fr}.ji-commerce-single div.product div.summary{position:static}.woocommerce-checkout .col2-set{grid-template-columns:1fr;gap:25px}}
@media(max-width:700px){.ji-commerce-heading{grid-template-columns:1fr}.ji-commerce-heading__link{justify-self:start}.ji-commerce-grid,.ji-commerce-grid--signature{grid-template-columns:1fr}.ji-commerce-card__media{aspect-ratio:4/5}.ji-commerce-hero{min-height:46svh;padding:125px 0 55px}.ji-commerce-toolbar{display:block}.ji-commerce-toolbar .woocommerce-ordering{margin-top:18px}.ji-commerce-single{padding-top:105px}.ji-commerce-single .woocommerce-tabs ul.tabs{gap:18px;overflow-x:auto}.woocommerce-cart .site-main,.woocommerce-checkout .site-main,.woocommerce-account .site-main{padding:105px 20px 70px}.woocommerce table.shop_table_responsive tr td::before{font-size:10px;letter-spacing:.08em;text-transform:uppercase}}

/* =========================================================
   DIPPS PRODUCT PASSPORT — THEME PRESENTATION CONTRACT
   Connector/API logic lives outside the theme.
   ========================================================= */
.ji-dipps{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:clamp(50px,8vw,120px);margin-top:clamp(80px,10vw,150px);padding:clamp(65px,8vw,120px);background:var(--green);color:#fff}
.ji-dipps__content h2{max-width:780px;margin:0 0 24px;color:#fff;font-size:clamp(43px,5.5vw,80px);line-height:1.02}
.ji-dipps__lead{max-width:700px;margin:0;color:rgba(255,255,255,.76);font-family:var(--serif);font-size:clamp(20px,2.1vw,30px);line-height:1.48}
.ji-dipps__principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:clamp(40px,6vw,75px) 0;border-top:1px solid rgba(255,255,255,.2)}
.ji-dipps__principles span{padding:17px 18px 17px 0;border-bottom:1px solid rgba(255,255,255,.2);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.ji-dipps__cta{display:inline-flex;background:#fff!important;color:var(--ink)!important;border-color:#fff!important}
.ji-dipps__prepared{display:inline-flex;margin:0;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.45);color:rgba(255,255,255,.78);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ji-dipps__identity{align-self:start;padding:clamp(30px,4vw,52px);border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.035)}
.ji-dipps__circle{width:clamp(78px,8vw,116px);aspect-ratio:1;margin-bottom:32px;border:clamp(5px,.55vw,8px) solid rgba(255,255,255,.94);border-radius:50%}
.ji-dipps__status{margin:0 0 30px;font-family:var(--serif);font-size:clamp(24px,2.4vw,34px);line-height:1.2}
.ji-dipps__meta{margin:0;border-top:1px solid rgba(255,255,255,.2)}
.ji-dipps__meta>div{display:grid;grid-template-columns:1fr auto;gap:24px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.2)}
.ji-dipps__meta dt{color:rgba(255,255,255,.58);font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.ji-dipps__meta dd{margin:0;font-size:11px;overflow-wrap:anywhere;text-align:right}
.ji-dipps__qr{display:block;width:min(170px,70%);margin:34px 0 0;padding:12px;background:#fff}
.ji-dipps__qr img{display:block;width:100%;height:auto}
.ji-dipps__circle-link{display:inline-flex;margin-top:28px;padding-bottom:5px;border-bottom:1px solid currentColor;color:#fff;font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
@media(max-width:900px){.ji-dipps{grid-template-columns:1fr}.ji-dipps__identity{max-width:560px}.ji-dipps__principles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ji-dipps{margin-inline:-20px;padding:70px 20px}.ji-dipps__principles{grid-template-columns:1fr}.ji-dipps__identity{padding:28px 22px}.ji-dipps__meta>div{grid-template-columns:1fr}.ji-dipps__meta dd{text-align:left}}

/* =========================================================
   PRODUCT EXPERIENCE 2.0 — BUILD 8.2
   ========================================================= */
.ji-commerce-single{padding:96px 0 var(--space)}
.ji-commerce-single__shell{width:min(100%,1440px);margin-inline:auto;padding-inline:var(--gutter)}
.ji-commerce-single .woocommerce-breadcrumb{margin:0 0 18px;font-size:9px;line-height:1.4}
.ji-commerce-single div.product.ji-product-experience{display:block}
.ji-product-stage{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(330px,.58fr);gap:clamp(36px,5vw,78px);align-items:start}
.ji-product-stage__media,.ji-product-purchase{min-width:0}
.ji-product-stage__media div.images{float:none!important;width:100%!important;margin:0!important}
.ji-product-purchase{position:sticky!important;top:104px!important;align-self:start;max-width:460px;padding:0!important}
.ji-product-collection{margin:0 0 14px;color:rgba(17,19,15,.56);font-size:9px;font-weight:700;letter-spacing:.16em;line-height:1.4;text-transform:uppercase}
.ji-commerce-single .product_title{margin:0 0 14px;font-size:clamp(38px,4.1vw,62px);line-height:1.02}
.ji-commerce-single .price{margin:0 0 14px!important;font-size:clamp(25px,2.4vw,34px)!important;line-height:1.1}
.ji-commerce-single .woocommerce-product-details__short-description{margin:0 0 18px;max-width:48ch;font-size:15px;line-height:1.65}
.ji-commerce-single .woocommerce-product-details__short-description p:last-child{margin-bottom:0}
.ji-commerce-single form.cart{gap:14px;margin:22px 0!important}
.ji-commerce-single .variations th,.ji-commerce-single .variations td{padding-bottom:8px}
.ji-commerce-single .variations select{min-height:46px}
.ji-commerce-single .quantity .qty{min-height:48px}
.ji-commerce-single .single_add_to_cart_button{min-height:48px!important}
.ji-commerce-single .product_meta{gap:5px;padding-top:16px;font-size:9px;line-height:1.55}
.ji-product-after-stage{margin-top:clamp(50px,7vw,90px)}
.ji-product-tabs{margin:0;border-top:1px solid var(--ji-commerce-line)}
.ji-product-tabs__nav{display:flex;gap:clamp(22px,3vw,46px);overflow-x:auto;border-bottom:1px solid var(--ji-commerce-line);scrollbar-width:none}
.ji-product-tabs__nav::-webkit-scrollbar{display:none}
.ji-product-tabs__tab{position:relative;flex:0 0 auto;padding:18px 0 16px;border:0;background:transparent;color:rgba(17,19,15,.55);font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;cursor:pointer}
.ji-product-tabs__tab::after{content:"";position:absolute;right:100%;bottom:-1px;left:0;height:1px;background:var(--ink);transition:right .25s ease}
.ji-product-tabs__tab.is-active{color:var(--ink)}
.ji-product-tabs__tab.is-active::after{right:0}
.ji-product-tabs__panel{max-width:none!important;margin:0!important;padding:clamp(38px,5vw,68px) 0!important}
.ji-product-tabs__content{max-width:900px;color:rgba(17,19,15,.76);font-size:16px;line-height:1.75}
.ji-product-tabs__content>h2:first-child{margin-top:0;font-size:clamp(28px,3vw,42px)}
.ji-product-tabs__accordion{display:none}
.ji-product-tabs table.shop_attributes{max-width:760px;border:0}
.ji-product-tabs table.shop_attributes th,.ji-product-tabs table.shop_attributes td{padding:14px 0;border:0;border-bottom:1px solid var(--ji-commerce-line);background:transparent!important}
.ji-product-tabs table.shop_attributes th{width:34%;font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.ji-shipping-tab{max-width:760px}
.ji-shipping-tab h2{font-size:clamp(30px,3vw,44px)}
.ji-text-link{display:inline-flex;margin-top:12px;padding-bottom:4px;border-bottom:1px solid currentColor;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ji-dipps--compact{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(35px,6vw,80px);margin:0;padding:clamp(42px,5vw,70px);background:var(--green)}
.ji-dipps--compact .ji-dipps__content h2{font-size:clamp(34px,4vw,58px)}
.ji-dipps--compact .ji-dipps__lead{font-size:clamp(18px,1.7vw,24px)}
.ji-dipps--compact .ji-dipps__principles{margin:35px 0}
.ji-product-after-stage .related.products,.ji-product-after-stage .upsells.products{width:100%;margin:clamp(65px,8vw,110px) 0 0!important}
.ji-product-after-stage .related.products>h2,.ji-product-after-stage .upsells.products>h2{margin:0 0 10px;font-size:clamp(34px,4vw,58px)}
.ji-product-after-stage .related.products>h2::after{content:"Carefully selected pieces to accompany your journey.";display:block;margin-top:12px;color:rgba(17,19,15,.62);font-family:var(--sans);font-size:14px;font-weight:400;letter-spacing:0;line-height:1.6;text-transform:none}
.ji-product-after-stage .related.products ul.products,.ji-product-after-stage .upsells.products ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:clamp(20px,2.4vw,36px)!important;width:100%!important;margin:35px 0 0!important;padding:0!important}
.ji-product-after-stage .related.products ul.products li.product,.ji-product-after-stage .upsells.products ul.products li.product{float:none!important;clear:none!important;width:auto!important;margin:0!important}

@media(max-width:1050px){
  .ji-product-stage{grid-template-columns:minmax(0,1.12fr) minmax(310px,.68fr);gap:34px}
  .ji-product-purchase{top:96px!important}
  .ji-product-after-stage .related.products ul.products,.ji-product-after-stage .upsells.products ul.products{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:820px){
  .ji-commerce-single{padding-top:88px}
  .ji-product-stage{grid-template-columns:1fr}
  .ji-product-purchase{position:static!important;max-width:none}
  .ji-dipps--compact{grid-template-columns:1fr}
}
@media(max-width:720px){
  .ji-commerce-single__shell{padding-inline:20px}
  .ji-product-after-stage{margin-top:44px}
  .ji-product-tabs{border-top:0}
  .ji-product-tabs__nav{display:none}
  .ji-product-tabs__panels{border-top:1px solid var(--ji-commerce-line)}
  .ji-product-tabs__panel{display:block!important;padding:0!important;border-bottom:1px solid var(--ji-commerce-line)}
  .ji-product-tabs__accordion{display:flex;width:100%;align-items:center;justify-content:space-between;padding:18px 0;border:0;background:transparent;color:var(--ink);font-size:10px;font-weight:700;letter-spacing:.12em;text-align:left;text-transform:uppercase}
  .ji-product-tabs__accordion span:last-child{font-size:19px;font-weight:300;transition:transform .2s ease}
  .ji-product-tabs__panel.is-active .ji-product-tabs__accordion span:last-child{transform:rotate(45deg)}
  .ji-product-tabs__content{padding:8px 0 30px;font-size:15px}
  .ji-dipps--compact{margin:0;padding:45px 22px}
  .ji-product-after-stage .related.products ul.products,.ji-product-after-stage .upsells.products ul.products{grid-template-columns:1fr!important}
}

/* BUILD 8.2.1 — ensure custom tab panels override WooCommerce's default hidden panels. */
.single-product .ji-product-tabs .ji-product-tabs__panel[hidden] {
  display: none !important;
}
.single-product .ji-product-tabs .ji-product-tabs__panel.is-active:not([hidden]),
.single-product .ji-product-tabs .ji-product-tabs__panel.active:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.single-product .ji-product-tabs .ji-product-tabs__content {
  display: block;
  visibility: visible;
  opacity: 1;
}
@media (max-width: 720px) {
  .single-product .ji-product-tabs .ji-product-tabs__panel {
    display: block !important;
  }
  .single-product .ji-product-tabs .ji-product-tabs__content[hidden] {
    display: none !important;
  }
}

/* BUILD 8.2.2 — Related products grid origin fix.
   WooCommerce adds clearfix pseudo-elements to ul.products. Once the list is
   converted to CSS Grid, those pseudo-elements become real grid items and
   consume the first cell. Remove them and force every product card to use
   normal grid auto-placement from column one. */
.single-product .ji-product-after-stage .related.products ul.products::before,
.single-product .ji-product-after-stage .related.products ul.products::after,
.single-product .ji-product-after-stage .upsells.products ul.products::before,
.single-product .ji-product-after-stage .upsells.products ul.products::after {
  content: none !important;
  display: none !important;
}
.single-product .ji-product-after-stage .related.products ul.products,
.single-product .ji-product-after-stage .upsells.products ul.products {
  grid-auto-flow: row !important;
}
.single-product .ji-product-after-stage .related.products ul.products > li.product,
.single-product .ji-product-after-stage .upsells.products ul.products > li.product {
  grid-column: auto !important;
  grid-row: auto !important;
  order: initial !important;
}
