/* =========================================================
   Premium Themes Shop — main stylesheet
   ========================================================= */

/* ---------- Fonts (bundled, OFL-licensed) ---------- */
@font-face{
  font-family:'Bricolage Grotesque';
  font-style:normal; font-weight:700 800; font-display:swap;
  src:url('../fonts/bricolage-grotesque.woff2') format('woff2');
}
@font-face{
  font-family:'Instrument Sans';
  font-style:normal; font-weight:400 600; font-display:swap;
  src:url('../fonts/instrument-sans.woff2') format('woff2');
}
@font-face{
  font-family:'Instrument Serif';
  font-style:italic; font-weight:400; font-display:swap;
  src:url('../fonts/instrument-serif-italic.woff2') format('woff2');
}

/* ---------- Tokens ---------- */
:root{
  --paper:#F7F6F3;
  --card:#FFFFFF;
  --ink:#0E0E11;
  --ink-soft:#26262C;
  --muted:#6B6862;
  --line:#E8E5DF;
  --line-dark:#DAD6CE;
  --violet:#5B4EF5;
  --violet-dark:#4638E8;
  --violet-ghost:#EEECFE;
  --lime:#DDF64B;
  --green:#14A44D;
  --green-deep:#0C7A38;
  --green-deeper:#0A6830;
  --red:#D33A2C;
  --sky1:#DCE7F7;
  --r-s:10px; --r-m:14px; --r-l:20px;
  --sh-s:0 2px 8px -2px rgba(14,14,17,.08);
  --sh-m:0 12px 32px -12px rgba(14,14,17,.16);
  --sh-l:0 32px 64px -24px rgba(14,14,17,.22);
  --w:1440px;
  --gut:48px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --font-display:'Bricolage Grotesque','Helvetica Neue',sans-serif;
  --font-body:'Instrument Sans','Helvetica Neue',Arial,sans-serif;
  --font-serif:'Instrument Serif',Georgia,serif;
}
@media (max-width:900px){ :root{--gut:24px;} }

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:16.5px; line-height:1.55;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img{max-width:100%; height:auto;}
a{color:inherit;}
a:not(.btn){text-decoration-thickness:1px; text-underline-offset:2px;}
p a{color:var(--violet-dark);}
button{font:inherit; cursor:pointer;}
:where(a,button,summary,label,select){cursor:pointer;}
:focus-visible{outline:2px solid var(--violet); outline-offset:2px; border-radius:4px;}

h1,h2,h3,h4{font-family:var(--font-display); letter-spacing:-0.02em; text-wrap:balance; margin:0; color:var(--ink);}
.display{font-weight:800; font-size:clamp(2.9rem,6.4vw,6rem); line-height:.98; letter-spacing:-0.03em;}
.h2{font-weight:800; font-size:clamp(2rem,4vw,3.4rem); line-height:1.02;}
.h3{font-weight:700; font-size:1.35rem;}
.serif{font-family:var(--font-serif); font-style:italic; font-weight:400; letter-spacing:0;}
.accent{color:var(--violet);}
.band .accent, .cta-band .accent{color:var(--lime);}
.sub{color:var(--muted); font-size:1.13rem; line-height:1.65; max-width:58ch; margin:0;}
.eyebrow{display:inline-flex; align-items:center; gap:.6em; font-size:.8rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted); font-weight:600; margin:0;}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--muted);}
.eyebrow.center::after{content:""; width:26px; height:1px; background:var(--muted);}

.wrap{max-width:var(--w); margin:0 auto; padding-left:var(--gut); padding-right:var(--gut);}
section{padding:110px 0;}
@media (max-width:900px){ section{padding:72px 0;} }

svg.ic{width:1.1em; height:1.1em; stroke:currentColor; stroke-width:2; fill:none;
  stroke-linecap:round; stroke-linejoin:round; vertical-align:-.16em; flex:none;}

.screen-reader-text{clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px;
  overflow:hidden; position:absolute !important; word-wrap:normal;}
.skip-link{position:absolute; left:8px; top:-60px; z-index:200; background:var(--ink); color:#fff;
  padding:10px 18px; border-radius:8px; transition:top .15s;}
.skip-link:focus{top:8px;}

/* ---------- Buttons ---------- */
.btn, .woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button,
.woocommerce input.button, .wp-block-button__link, button[type=submit]{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em; border-radius:10px;
  padding:.95em 1.9em; font-weight:600; font-size:.98rem; border:1px solid transparent; white-space:nowrap;
  text-decoration:none; line-height:1.2; font-family:var(--font-body);
  transition:transform .18s var(--ease), background .18s, border-color .18s, box-shadow .18s;
  background:var(--ink); color:#fff;}
.btn:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, button[type=submit]:hover{
  transform:translateY(-2px); background:var(--ink-soft); color:#fff;}
.btn:active{transform:translateY(0) scale(.98);}
.btn-primary, .woocommerce .button.checkout, .woocommerce button.single_add_to_cart_button,
.woocommerce #payment #place_order{
  background:var(--violet); color:#fff; box-shadow:0 10px 24px -10px rgba(91,78,245,.55);}
.btn-primary:hover, .woocommerce button.single_add_to_cart_button:hover,
.woocommerce #payment #place_order:hover{background:var(--violet-dark); color:#fff;}
.btn-ghost{background:var(--card); border-color:var(--line-dark); color:var(--ink); box-shadow:none;}
.btn-ghost:hover{border-color:var(--ink); background:var(--card); color:var(--ink);}
.btn-dark{background:var(--ink); color:#fff;}
.btn-lg{padding:1.1em 2.3em; font-size:1.04rem; border-radius:12px;}

/* ---------- Reveal motion ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .6s var(--ease), transform .6s var(--ease);}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
}

/* ---------- Announcement ---------- */
.announce{background:var(--ink); color:#EDEDF2; font-size:.9rem;}
.announce .wrap{display:flex; align-items:center; justify-content:center; gap:18px; padding-top:11px; padding-bottom:11px; flex-wrap:wrap;}
.pill-lime{background:var(--lime); color:var(--ink); font-weight:700; border-radius:999px; padding:.34em 1em; font-size:.82rem; letter-spacing:.02em;}
.announce a{display:inline-flex; align-items:center; gap:.4em; font-weight:600; color:#fff; text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:1px;}
.announce a:hover{border-color:#fff;}

/* ---------- Header ---------- */
header.site{position:sticky; top:0; z-index:80; background:rgba(247,246,243,.88); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line); transition:box-shadow .2s;}
header.site.scrolled{box-shadow:var(--sh-s);}
header.site .wrap{display:flex; align-items:center; justify-content:space-between; min-height:80px; gap:24px;}
.logo{display:flex; align-items:center; gap:13px; font-family:var(--font-display); font-weight:800;
  letter-spacing:-0.02em; font-size:1.45rem; text-decoration:none; color:var(--ink);}
.logo-img{max-height:52px; width:auto;}
.site-footer .logo{font-size:1.25rem;}
/* wp_nav_menu's items_wrap drops the <ul> but keeps the <li>s, and a bare <li>
   still renders its marker — that was the row of dots in the menu. */
nav.main{display:flex; align-items:center; gap:38px; font-size:.96rem; font-weight:500;
  list-style:none; margin:0; padding:0;}
nav.main li{list-style:none; display:block; margin:0; padding:0;}
nav.main li::marker{content:"";}
nav.main a{position:relative; display:inline-block; padding:8px 2px; opacity:.82;
  text-decoration:none; transition:opacity .15s; white-space:nowrap;}
nav.main a:hover{opacity:1;}
nav.main a::after{content:""; position:absolute; left:2px; right:100%; bottom:2px; height:2px;
  background:var(--ink); transition:right .22s var(--ease);}
nav.main a:hover::after{right:2px;}
nav.main .current-menu-item > a{opacity:1;}
nav.main .current-menu-item > a::after{right:2px;}
.hdr-actions{display:flex; align-items:center; gap:14px;}
.icon-btn{display:inline-flex; align-items:center; gap:8px; font-weight:500; font-size:.95rem;
  padding:8px 10px; border-radius:8px; background:none; border:0; text-decoration:none; color:var(--ink);}
.icon-btn:hover{background:var(--line);}
.icon-btn svg.ic{width:1.25em; height:1.25em;}
.cart-count{background:var(--violet); color:#fff; font-size:.68rem; font-weight:700; border-radius:999px;
  min-width:17px; height:17px; display:inline-flex; align-items:center; justify-content:center; margin-left:-14px; margin-top:-16px; padding:0 4px;}
.nav-toggle{display:none;}
.nav-toggle .ic-close{display:none;}
@media (max-width:960px){
  .hide-m{display:none;}
  .nav-toggle{display:inline-flex;}
  nav.main{position:fixed; inset:0; top:0; z-index:90; background:var(--paper); flex-direction:column;
    justify-content:center; gap:28px; font-size:1.4rem; transform:translateY(-102%); transition:transform .3s var(--ease);}
  body.nav-open nav.main{transform:none;}
  body.nav-open{overflow:hidden;}
  body.nav-open .nav-toggle{position:relative; z-index:95;}
  body.nav-open .nav-toggle .ic-open{display:none;}
  body.nav-open .nav-toggle .ic-close{display:inline-block;}
}

/* ---------- Hero ---------- */
.hero{position:relative; overflow:hidden; text-align:center; padding:110px 0 56px;
  background:
    radial-gradient(900px 480px at 18% -10%, rgba(91,78,245,.16), transparent 60%),
    radial-gradient(1100px 520px at 85% -14%, rgba(221,246,75,.28), transparent 55%),
    linear-gradient(180deg, var(--sky1) 0%, var(--paper) 90%);}
.hero .chip{display:inline-flex; align-items:center; gap:.6em; background:var(--card); border:1px solid var(--line);
  border-radius:999px; padding:.55em 1.2em; font-size:.86rem; font-weight:600; box-shadow:var(--sh-s); margin-bottom:34px;}
.hero .chip .dot{width:8px; height:8px; border-radius:50%; background:var(--green); animation:ptpulse 2s infinite;}
@keyframes ptpulse{0%,100%{opacity:1;} 50%{opacity:.35;}}
.hero .display{max-width:17ch; margin:0 auto 26px;}
.hero .display .serif{font-size:1.06em;}
.hero .sub{margin:0 auto 42px;}
.hero .actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:34px;}
.assure{display:flex; gap:28px; justify-content:center; flex-wrap:wrap; color:var(--muted); font-size:.9rem; font-weight:500;}
.assure span{display:inline-flex; align-items:center; gap:.5em;}
.assure svg.ic{color:var(--green);}

/* ---------- Marquee ---------- */
.marquee{overflow:hidden; padding:56px 0 8px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.mtrack{display:flex; gap:28px; width:max-content;}
.mtrack.is-looping{animation:ptscroll 46s linear infinite;}
.marquee:hover .mtrack{animation-play-state:paused;}
@keyframes ptscroll{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){ .mtrack{animation:none !important;} .marquee{overflow-x:auto;} }
.mcard{width:420px; flex:none;}
@media (max-width:640px){ .mcard{width:300px;} }

/* ---------- Browser card ---------- */
.browser{background:var(--card); border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden; box-shadow:var(--sh-m);}
.browser .bar{display:flex; align-items:center; gap:6px; padding:11px 14px; border-bottom:1px solid var(--line);}
.browser .bar i{width:9px; height:9px; border-radius:50%; background:var(--line-dark); display:block;}
.browser .bar .url{margin-left:10px; flex:1; height:16px; border-radius:5px; background:var(--paper); border:1px solid var(--line);}
.shot-link{display:block; aspect-ratio:840/500; overflow:hidden; background:var(--paper);}
.shot-img{width:100%; height:100%; object-fit:cover; object-position:top; display:block;
  transition:transform .5s var(--ease);}
.tcard:hover .shot-img{transform:scale(1.03);}
.shot-fallback{display:flex; align-items:center; justify-content:center; height:100%; width:100%;
  padding:26px; text-align:center; overflow:hidden;
  background:linear-gradient(150deg,#6C63FF,#3B2FD1); color:#fff;}
.shot-fallback b{font-family:var(--font-display); font-size:1.15rem; font-weight:700;
  line-height:1.3; letter-spacing:-0.01em; display:-webkit-box; -webkit-line-clamp:3;
  -webkit-box-orient:vertical; overflow:hidden;}

/* ---------- Trust strip ---------- */
.strip-stats{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--card);}
.strip-stats .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
.stat{padding:44px 36px; display:flex; flex-direction:column; gap:10px; border-left:1px solid var(--line);}
.stat:first-child{border-left:0;}
.stat svg.ic{width:26px; height:26px; color:var(--violet);}
.stat b{font-family:var(--font-display); font-size:1.3rem; letter-spacing:-0.01em;}
.stat span{color:var(--muted); font-size:.95rem; line-height:1.55;}
@media (max-width:900px){ .strip-stats .wrap{grid-template-columns:1fr 1fr;} .stat:nth-child(3){border-left:0;} .stat{padding:30px 22px;} }

/* ---------- Split / cards ---------- */
.split{display:grid; grid-template-columns:340px 1fr; gap:72px; align-items:start;}
.split .sticky{position:sticky; top:130px; display:flex; flex-direction:column; gap:22px; align-items:flex-start;}
@media (max-width:1000px){ .split{grid-template-columns:1fr; gap:40px;} .split .sticky{position:static;} }
.cards{display:grid; grid-template-columns:repeat(2,1fr); gap:36px;}
@media (max-width:700px){ .cards{grid-template-columns:1fr;} }
.center-head{text-align:center; display:flex; flex-direction:column; gap:18px; align-items:center;}

/* ---------- Dark band ---------- */
.band{background:var(--ink); color:#fff; overflow:hidden;}
.band .eyebrow{color:#8F8D99;} .band .eyebrow::before,.band .eyebrow::after{background:#8F8D99;}
.band .h2{color:#fff; max-width:16ch; margin:0 auto;}
.band .head{text-align:center; margin-bottom:64px; display:flex; flex-direction:column; gap:16px; align-items:center;}
.band .bsub{color:#A5A3AE; max-width:52ch; margin:0 auto; font-size:1.08rem;}
.tiles{display:flex; gap:10px; height:460px;}
.tile{position:relative; flex:1; border-radius:var(--r-m); overflow:hidden; display:flex; align-items:flex-end;
  padding:24px; transition:flex .45s var(--ease); text-decoration:none; color:#fff;}
.tile:hover{flex:2.6;}
.tile .tinfo{position:relative; z-index:2; display:flex; flex-direction:column; gap:4px; min-width:150px;}
.tile .tinfo b{font-family:var(--font-display); font-size:1.3rem; letter-spacing:-0.01em; color:#fff;}
.tile .tinfo span{font-size:.86rem; color:rgba(255,255,255,.78); opacity:0; transform:translateY(6px); transition:.3s var(--ease) .1s;}
.tile:hover .tinfo span{opacity:1; transform:none;}
.tile .tag{position:absolute; z-index:2; top:16px; left:16px; background:rgba(255,255,255,.92); color:var(--ink);
  font-size:.74rem; font-weight:600; border-radius:6px; padding:.4em .7em;}
.tile::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.55));}
.g1{background:linear-gradient(150deg,#6C63FF,#3B2FD1);} .g2{background:linear-gradient(150deg,#8C9B7A,#55613F);}
.g3{background:linear-gradient(150deg,#2C3E50,#0E1B26);} .g4{background:linear-gradient(150deg,#B08968,#6E4F33);}
.g5{background:linear-gradient(150deg,#88B3D8,#3E6C96);} .g6{background:linear-gradient(150deg,#C98A7D,#8C4B3F);}
@media (max-width:900px){ .tiles{flex-direction:column; height:auto;} .tile{height:120px; flex:none;}
  .tile:hover{flex:none;} .tile .tinfo span{opacity:1; transform:none;} }

/* ---------- Feature grid ---------- */
.fgrid3{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:64px;}
@media (max-width:960px){ .fgrid3{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .fgrid3{grid-template-columns:1fr;} }
.feat{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l); padding:34px;
  display:flex; flex-direction:column; gap:14px; transition:transform .22s var(--ease), box-shadow .22s var(--ease);}
.feat:hover{transform:translateY(-4px); box-shadow:var(--sh-m);}
.fic{width:48px; height:48px; border-radius:12px; background:var(--violet-ghost); color:var(--violet);
  display:flex; align-items:center; justify-content:center; flex:none;}
.fic svg.ic{width:22px; height:22px;}
.feat b{font-family:var(--font-display); font-size:1.16rem;}
.feat p{color:var(--muted); font-size:.97rem; line-height:1.6; margin:0;}

/* ---------- Reviews ---------- */
.rgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:64px;}
@media (max-width:900px){ .rgrid{grid-template-columns:1fr;} }
.rcard{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l); padding:32px;
  display:flex; flex-direction:column; gap:16px;}
.stars{display:flex; align-items:center; gap:3px; color:var(--green);}
.stars .star-ic{width:17px; height:17px; fill:currentColor; stroke:none;}
.stars b{color:var(--ink); font-size:.9rem; margin-left:10px; font-weight:600;}
.rcard p{line-height:1.65; font-size:1rem; flex:1; margin:0;}
.rcard footer{display:flex; align-items:center; gap:12px;}
.avatar{width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:.82rem; color:#fff;}
.rcard footer span:last-child{color:var(--muted); font-size:.9rem; font-weight:500;}

/* ---------- CTA band ---------- */
.cta-sec{padding-top:0;}
.cta-band{position:relative; overflow:hidden; background:linear-gradient(130deg,#4638E8,#7A6FFF 60%,#9C93FF);
  color:#fff; text-align:center; border-radius:24px; padding:96px 40px;}
.cta-band::before{content:""; position:absolute; inset:-40%;
  background:radial-gradient(closest-side, rgba(221,246,75,.25), transparent 70%); transform:translate(30%,30%);}
.cta-band .h2{color:#fff; margin-bottom:16px; position:relative;}
.cta-band p{opacity:.9; margin:0 0 38px; position:relative; font-size:1.1rem;}
.cta-band .btn{position:relative; background:#fff; color:var(--ink); box-shadow:none;}
.cta-band .btn:hover{background:var(--lime); color:var(--ink);}

/* ---------- Footer ---------- */
.site-footer{background:var(--card); border-top:1px solid var(--line); margin-top:80px; font-size:.96rem;}
.home .site-footer, .woocommerce-page .site-footer{margin-top:0;}

/* Trust row */
.footer-trust{border-bottom:1px solid var(--line); background:var(--paper);}
.footer-trust .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
.ft-item{display:flex; align-items:center; gap:14px; padding:26px 28px; border-left:1px solid var(--line);}
.ft-item:first-child{border-left:0;}
.ft-item svg.ic{width:22px; height:22px; color:var(--violet); flex:none;}
.ft-item span{display:flex; flex-direction:column; line-height:1.35;}
.ft-item b{font-size:.97rem; font-weight:600;}
.ft-item span span, .ft-item span{color:var(--muted); font-size:.87rem;}
.ft-item b{color:var(--ink);}
@media (max-width:900px){
  .footer-trust .wrap{grid-template-columns:1fr 1fr;}
  .ft-item:nth-child(3){border-left:0;}
  .ft-item{padding:20px 16px;}
}
@media (max-width:520px){ .footer-trust .wrap{grid-template-columns:1fr;} .ft-item{border-left:0; border-top:1px solid var(--line);} .ft-item:first-child{border-top:0;} }

.footer-main{padding:64px 0 32px;}
.site-footer .fcols{display:grid; grid-template-columns:2.2fr 1fr 1fr 1.5fr; gap:52px; margin-bottom:52px;}
@media (max-width:960px){ .site-footer .fcols{grid-template-columns:1fr 1fr; gap:40px;} }
@media (max-width:600px){ .site-footer .fcols{grid-template-columns:1fr; gap:34px;} }
.site-footer h4{font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  margin:0 0 20px; font-weight:700; font-family:var(--font-body);}
.fbrand p{color:var(--muted); line-height:1.65; max-width:36ch; margin:18px 0 20px;}
.fmail{display:inline-flex; align-items:center; gap:9px; font-weight:600; text-decoration:none;
  color:var(--ink); margin-bottom:12px;}
.fmail svg.ic{color:var(--violet);}
.fmail:hover{text-decoration:underline;}
.fhours{display:flex; align-items:center; gap:9px; color:var(--muted); font-size:.9rem; margin:0 !important;}
.fhours svg.ic{color:var(--violet); flex:none;}
.fmenu{list-style:none; display:flex; flex-direction:column; gap:13px; margin:0; padding:0;}
.fmenu a{text-decoration:none; color:var(--ink-soft); transition:color .15s;}
.fmenu a:hover{color:var(--violet-dark);}
.fnews p{color:var(--muted); line-height:1.6; margin:0 0 18px; max-width:32ch;}
.fnews-btn{display:inline-flex;}

.fbottom{border-top:1px solid var(--line); padding-top:26px; display:flex; align-items:center;
  justify-content:space-between; gap:18px 28px; flex-wrap:wrap; color:var(--muted); font-size:.87rem;}
.fcopy{margin-right:auto;}
.fpay{margin-left:auto;}
.fpay{display:flex; gap:7px; flex-wrap:wrap;}
.pay-chip{border:1px solid var(--line-dark); border-radius:6px; padding:.34em .7em;
  font-size:.72rem; font-weight:600; letter-spacing:.02em; color:var(--ink-soft); background:var(--paper);}
.flegal{display:flex; gap:18px; flex-wrap:wrap;}
.flegal a{text-decoration:none;}
.flegal a:hover{text-decoration:underline; color:var(--ink);}
.fdisclaimer{margin-top:22px; padding-top:20px; border-top:1px solid var(--line);
  color:var(--muted); font-size:.79rem; line-height:1.6; max-width:92ch;}

/* ---------- Page scaffolding ---------- */
.page-head{padding-top:88px; padding-bottom:40px; text-align:center; display:flex; flex-direction:column; gap:16px; align-items:center;}
.single-head .post-meta{color:var(--muted); font-size:.92rem;}
.single-hero{margin-bottom:40px;}
.single-thumb{border-radius:var(--r-l); box-shadow:var(--sh-m); width:100%;}
.content-area{padding-bottom:100px;}
.page-prose{max-width:760px; margin:0 auto; font-size:1.06rem; line-height:1.75;}
.page-prose h2{font-size:1.8rem; margin:1.6em 0 .6em;}
.page-prose h3{font-size:1.3rem; margin:1.4em 0 .5em;}
.page-prose p{margin:0 0 1.2em;}
.page-prose ul,.page-prose ol{margin:0 0 1.2em; padding-left:1.3em;}
.page-prose img{border-radius:var(--r-m);}
.page-prose blockquote{border-left:3px solid var(--violet); margin:1.4em 0; padding:.2em 0 .2em 1.2em; color:var(--muted); font-style:italic;}

.post-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
@media (max-width:1000px){ .post-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .post-grid{grid-template-columns:1fr;} }
.post-card{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden;
  display:flex; flex-direction:column; transition:transform .22s var(--ease), box-shadow .22s var(--ease);}
.post-card:hover{transform:translateY(-4px); box-shadow:var(--sh-m);}
.post-thumb{display:block; aspect-ratio:840/500; overflow:hidden;}
.post-thumb img{width:100%; height:100%; object-fit:cover;}
.post-body{padding:26px; display:flex; flex-direction:column; gap:12px; flex:1;}
.post-meta{color:var(--muted); font-size:.86rem;}
.post-title{font-size:1.3rem; line-height:1.25;}
.post-title a{text-decoration:none;}
.post-title a:hover{text-decoration:underline;}
.post-excerpt{color:var(--muted); font-size:.97rem; line-height:1.6; flex:1;}
.post-excerpt p{margin:0;}
.post-more{font-weight:600; text-decoration:none; color:var(--violet-dark);}
.pagination-wrap{margin-top:56px; text-align:center;}
.pagination-wrap .nav-links{display:inline-flex; gap:8px;}
.pagination-wrap .page-numbers{display:inline-flex; min-width:42px; height:42px; align-items:center; justify-content:center;
  border:1px solid var(--line-dark); border-radius:10px; text-decoration:none; padding:0 12px; background:var(--card);}
.pagination-wrap .page-numbers.current{background:var(--ink); color:#fff; border-color:var(--ink);}
.post-nav{display:flex; justify-content:space-between; gap:20px; max-width:760px; margin:56px auto 0; font-weight:600;}
.post-nav a{text-decoration:none;}
.err404{text-align:center; padding-top:120px; display:flex; flex-direction:column; gap:22px; align-items:center;}
.err404 .actions{display:flex; gap:14px; flex-wrap:wrap; justify-content:center;}
.none-found{text-align:center; padding:60px 0; display:flex; flex-direction:column; gap:16px; align-items:center;}
.search-form{display:flex; gap:10px; max-width:440px; width:100%;}
.search-form input[type=search]{flex:1;}

/* ---------- Forms ---------- */
input[type=text],input[type=email],input[type=url],input[type=tel],input[type=password],
input[type=search],input[type=number],select,textarea{
  border:1.5px solid var(--line-dark); border-radius:10px; padding:.8em 1em; font:inherit;
  background:var(--card); width:100%; max-width:100%; color:var(--ink); transition:border-color .15s;}
input:hover,select:hover,textarea:hover{border-color:var(--muted);}
input:focus,select:focus,textarea:focus{outline:none; border-color:var(--violet); box-shadow:0 0 0 3px rgba(91,78,245,.15);}
label{font-weight:600; font-size:.92rem;}

/* ---------- Comments ---------- */
.comments-area{max-width:760px; margin:64px auto 0;}
.comment-list{list-style:none; padding:0; margin:24px 0;}
.comment-list .comment{border:1px solid var(--line); border-radius:var(--r-m); background:var(--card); padding:20px; margin-bottom:16px;}
.comment-list .children{list-style:none; margin-top:16px; padding-left:24px;}
.comment-form p{margin:0 0 16px;}
.comment-form label{display:block; margin-bottom:6px;}

/* =========================================================
   WooCommerce
   ========================================================= */

.wc-wrap{padding-top:36px; padding-bottom:100px;}

/* Shop header */
.shop-head{padding:72px 0 8px; text-align:center;}
.shop-head .wrap{display:flex; flex-direction:column; align-items:center; gap:18px;}
.shop-head .h2{max-width:20ch;}
.shop-head__desc{max-width:62ch; margin:0 auto;}
.shop-head__desc p{margin:0;}
.shop-head__count{color:var(--muted); font-size:.92rem; margin:0;
  border:1px solid var(--line-dark); border-radius:999px; padding:.5em 1.2em; background:var(--card);}
.shop-head__count b{color:var(--ink); font-variant-numeric:tabular-nums;}
.woocommerce-products-header{display:none;}
.woocommerce-products-header__title{font-weight:800; font-size:clamp(2rem,4vw,3.4rem); letter-spacing:-0.02em;}
.term-description{max-width:58ch; margin:16px auto 0; color:var(--muted);}

/* Sorting row */
.woocommerce-ordering{margin:0 0 32px; display:flex; justify-content:flex-end;}
.woocommerce-ordering select{width:auto; padding:.6em 2.2em .6em 1em; font-size:.92rem;}
.woocommerce-notices-wrapper:empty{display:none;}

/* Product grid */
.woocommerce ul.products{list-style:none; margin:0; padding:0; display:grid;
  grid-template-columns:repeat(3,1fr); gap:44px 32px;}
.woocommerce ul.products li.product{margin:0; padding:0; width:auto; float:none;}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none;}
@media (max-width:1100px){ .woocommerce ul.products{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .woocommerce ul.products{grid-template-columns:1fr;} }

/* Result count hidden (we removed the hook, belt & braces) */
.woocommerce-result-count{display:none;}

/* Pagination */
.woocommerce nav.woocommerce-pagination{margin-top:56px; text-align:center;}
.woocommerce nav.woocommerce-pagination ul{border:0; display:inline-flex; gap:8px; margin:0;}
.woocommerce nav.woocommerce-pagination ul li{border:0; margin:0;}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{display:inline-flex; min-width:42px; height:42px; align-items:center;
  justify-content:center; border:1px solid var(--line-dark); border-radius:10px; background:var(--card); color:var(--ink); padding:0 12px;}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--ink); color:#fff; border-color:var(--ink);}

/* ---------- Single product ----------
 * WooCommerce core floats .images/.summary at 48% width from a selector with
 * higher specificity than a plain class, so each float reset below has to match
 * or beat `.woocommerce div.product div.images`. */
.woocommerce div.product,
.woocommerce-page div.product{display:grid; grid-template-columns:minmax(0,1fr) 420px;
  gap:56px; align-items:start;}
@media (max-width:1080px){
  .woocommerce div.product, .woocommerce-page div.product{grid-template-columns:minmax(0,1fr);}
}
.woocommerce div.product div.images,
.woocommerce-page div.product div.images{width:100%; float:none; margin:0; min-width:0;}
.woocommerce div.product div.summary,
.woocommerce-page div.product div.summary{width:100%; float:none; margin:0; min-width:0;
  position:sticky; top:104px; background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-l); padding:32px; box-shadow:var(--sh-m);
  display:flex; flex-direction:column; gap:16px;}
@media (max-width:1080px){
  .woocommerce div.product div.summary, .woocommerce-page div.product div.summary{position:static;}
}
/* The head is injected as a direct child of div.product, so it becomes a grid
   item too — it must span both tracks or it steals the first column and pushes
   the gallery into the sidebar slot. */
.woocommerce div.product .product-head{grid-column:1 / -1;}
.product-head{padding:8px 0 30px; display:flex; justify-content:space-between;
  align-items:flex-end; gap:26px; flex-wrap:wrap;}
.product-head .product_title{font-weight:800; font-size:clamp(2rem,3.8vw,3.1rem);
  letter-spacing:-0.03em; margin:0; max-width:22ch;}
.product-head .head-sub{color:var(--muted); font-size:1.08rem; margin-top:10px; max-width:60ch;}
.pbadges{display:flex; gap:8px; flex-wrap:wrap;}
.badge{background:var(--violet-ghost); color:var(--violet-dark); font-size:.8rem; font-weight:600; border-radius:999px; padding:.45em 1em;}
.single-product .summary .price{font-size:1.6rem;}
.single-product .summary .woocommerce-product-details__short-description{color:var(--muted); line-height:1.65;}
.single-product .summary form.cart{display:flex; flex-direction:column; gap:16px; margin:0;}
.single-product .summary form.cart .quantity{display:none;}
.single-product .summary button.single_add_to_cart_button{width:100%; padding:1.1em 2em; font-size:1.04rem; border-radius:12px;}
.btn-demo{width:100%;}
.badge-gpl{background:#E8F6ED; color:#0C6B34;}
.badge-platform{background:var(--ink); color:#fff;}

/* Licensed-domain input on the product page */
.domain-field{display:flex; flex-direction:column; gap:7px;}
.domain-field label{font-size:.9rem; font-weight:600;}
.domain-field label em{color:var(--muted); font-style:normal; font-weight:400;}
.domain-field input{width:100%;}
.domain-field small{display:flex; gap:8px; align-items:flex-start; color:var(--muted);
  font-size:.84rem; line-height:1.5;}
.domain-field small svg.ic{color:var(--violet); margin-top:2px; flex:none;}
.domain-note{background:var(--violet-ghost); border-radius:12px; padding:16px 18px; font-size:.92rem;
  color:var(--ink-soft); line-height:1.6; display:flex; gap:12px; align-items:flex-start;}
.domain-note svg.ic{color:var(--violet); margin-top:2px;}
.plist{display:flex; flex-direction:column; gap:10px; list-style:none; font-size:.96rem; margin:16px 0 0; padding:0;}
.plist li{display:flex; gap:11px; align-items:baseline;}
.plist li svg.ic{color:var(--green); width:.95em; height:.95em;}
.trust-mini{display:flex; align-items:center; justify-content:center; gap:8px; color:var(--muted); font-size:.87rem;
  flex-wrap:wrap; margin:6px 0 0;}
.trust-mini svg.ic{color:var(--green);}
.product_meta{font-size:.88rem; color:var(--muted); border-top:1px solid var(--line); padding-top:16px;}
.product_meta a{color:var(--ink);}

/* Gallery */
.woocommerce-product-gallery{border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden;
  background:var(--card); box-shadow:var(--sh-m);}
.woocommerce-product-gallery .flex-viewport{border-radius:0;}
.woocommerce-product-gallery .flex-control-thumbs{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:12px; margin:0;}
.woocommerce-product-gallery .flex-control-thumbs li{border-radius:8px; overflow:hidden; border:2px solid transparent;}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active{border:0;}
.woocommerce-product-gallery .flex-control-thumbs li:has(img.flex-active){border-color:var(--ink);}

/* Tabs */
.woocommerce div.product .woocommerce-tabs{grid-column:1 / -1; margin-top:24px;}
.woocommerce div.product .woocommerce-tabs ul.tabs{list-style:none; padding:0; margin:0 0 28px;
  display:flex; gap:6px; border-bottom:1px solid var(--line);}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:none; border:0; border-radius:0; margin:0; padding:0;}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{padding:14px 20px; font-weight:600; color:var(--muted);
  border-bottom:2px solid transparent; margin-bottom:-1px; display:inline-block; text-decoration:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--ink); border-color:var(--ink);}
.woocommerce-Tabs-panel{max-width:76ch; line-height:1.7; font-size:1.03rem;}
.woocommerce-Tabs-panel h2:first-child{display:none;}
.chlog p{padding:14px 0; border-bottom:1px solid var(--line); margin:0;}

/* Related / upsells */
.related.products, .upsells.products{grid-column:1 / -1; margin-top:80px;}
.related.products > h2, .upsells.products > h2{font-size:clamp(1.6rem,3vw,2.4rem); font-weight:800; margin-bottom:40px;}

/* Sale flash: hidden, price shows the deal */
.onsale{display:none !important;}

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  border:1px solid var(--line); border-top:0; border-radius:var(--r-m); background:var(--card);
  box-shadow:var(--sh-s); padding:1em 1.4em 1em 3em; margin-bottom:28px; color:var(--ink);}
.woocommerce-message{border-left:4px solid var(--green);}
.woocommerce-info{border-left:4px solid var(--violet);}
.woocommerce-error{border-left:4px solid var(--red); list-style:none;}
.woocommerce-message::before{color:var(--green);}
.woocommerce-info::before{color:var(--violet);}
.woocommerce-error::before{color:var(--red);}
.woocommerce-message .button, .woocommerce-info .button{padding:.5em 1.1em; font-size:.88rem;}

/* ---------- Cart ---------- */
.woocommerce table.shop_table{border:1px solid var(--line); border-radius:var(--r-m); border-collapse:separate;
  border-spacing:0; background:var(--card); overflow:hidden;}
.woocommerce table.shop_table th, .woocommerce table.shop_table td{border-top:1px solid var(--line); padding:14px 16px;}
.woocommerce table.shop_table thead th{border-top:0; background:var(--paper); font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
.woocommerce-cart table.cart img{width:96px; border-radius:8px;}
.woocommerce-cart table.cart td.product-name a{font-weight:600; text-decoration:none;}
.woocommerce a.remove{color:var(--red) !important; font-weight:500;}
.woocommerce a.remove:hover{background:var(--red); color:#fff !important;}
.cart_totals h2, #order_review_heading{font-size:1.4rem; font-weight:800;}
.wc-proceed-to-checkout .checkout-button{width:100%; font-size:1.04rem;}
.coupon input[type=text]{width:180px;}

/* ---------- Checkout ---------- */
.woocommerce-checkout form.checkout{display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:start;}
@media (max-width:960px){ .woocommerce-checkout form.checkout{grid-template-columns:1fr;} }
.woocommerce-checkout #customer_details{display:flex; flex-direction:column; gap:8px;}
.woocommerce-checkout .col-1, .woocommerce-checkout .col-2{width:100% !important; float:none !important;}
.woocommerce-checkout h3{font-size:1.25rem; font-weight:700; margin:0 0 18px;}
.woocommerce form .form-row{margin-bottom:16px; padding:0;}
.woocommerce form .form-row label{display:block; margin-bottom:6px;}
.woocommerce form .form-row .input-checkbox{display:inline-block; margin-right:8px; width:auto;}
.woocommerce-checkout #order_review_wrap, .woocommerce-checkout #order_review{
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-l); padding:30px; box-shadow:var(--sh-m);}
.woocommerce-checkout #order_review table.shop_table{border:0; box-shadow:none;}
#payment{background:transparent !important;}
#payment ul.payment_methods{border-bottom:1px solid var(--line) !important; padding:0 0 18px !important;}
#payment div.payment_box{background:var(--paper) !important; border-radius:10px;}
#payment div.payment_box::before{display:none;}
.woocommerce #payment #place_order{width:100%; font-size:1.04rem; margin-top:16px;}
.select2-container--default .select2-selection--single{border:1.5px solid var(--line-dark); border-radius:10px; height:auto; padding:.55em .6em;}
.select2-container--default .select2-selection--single .select2-selection__arrow{top:50%; transform:translateY(-50%);}

/* ---------- My Account ---------- */
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password{
  border:1px solid var(--line) !important; border-radius:var(--r-l) !important; background:var(--card);
  padding:36px !important; box-shadow:var(--sh-s);}
.woocommerce form.login .button, .woocommerce form.register .button{width:100%;
  background:var(--violet); color:#fff;}
.woocommerce form.login .button:hover, .woocommerce form.register .button:hover{background:var(--violet-dark);}
.woocommerce-LostPassword{text-align:center;}

/* Downloads table */
.woocommerce-table--order-downloads .woocommerce-MyAccount-downloads-file{width:100%;}

/* ---------- Order received ---------- */
.woocommerce-order .woocommerce-thankyou-order-received{font-family:var(--font-display); font-size:1.5rem; font-weight:700; margin-bottom:24px;}
.woocommerce ul.order_details{list-style:none; padding:22px; margin:0 0 32px; display:flex; flex-wrap:wrap; gap:24px;
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-m);}
.woocommerce ul.order_details li{border:0; float:none; margin:0; padding:0; font-size:.82rem;}
.ptshop-domains{background:var(--violet-ghost); border-radius:10px; padding:14px 18px;}

/* ---------- Quantity ---------- */
.woocommerce .quantity .qty{width:5em; text-align:center;}

/* =========================================================
   Block Cart & Checkout (WooCommerce 8+ default)
   The classic rules above only reach shortcode pages; these
   pages are Gutenberg blocks with their own class names.
   ========================================================= */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout{max-width:var(--w); margin:0 auto; padding:0 var(--gut) 90px;}

/* Page titles */
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.wp-block-post-title{font-weight:800; font-size:clamp(2.2rem,5vw,3.6rem);
  letter-spacing:-0.03em; text-align:center; padding:64px 0 44px;}

/* Two-column shell: main + sticky sidebar */
.wc-block-components-sidebar-layout{display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);
  gap:56px; align-items:start;}
@media (max-width:1000px){ .wc-block-components-sidebar-layout{grid-template-columns:minmax(0,1fr); gap:36px;} }
.wc-block-components-main,
.wc-block-components-sidebar{width:100% !important; max-width:none !important;
  padding:0 !important; float:none !important;}

/* Sidebar becomes a real card */
.wc-block-components-sidebar{position:sticky; top:104px; background:var(--card);
  border:1px solid var(--line); border-radius:var(--r-l); padding:30px !important;
  box-shadow:var(--sh-m);}
@media (max-width:1000px){ .wc-block-components-sidebar{position:static;} }
.wc-block-cart__sidebar .wc-block-components-panel,
.wc-block-checkout__sidebar .wc-block-components-panel{background:transparent;}

/* Section headings */
.wc-block-components-title,
.wc-block-components-checkout-step__title{font-family:var(--font-display) !important;
  font-weight:700 !important; letter-spacing:-0.02em; color:var(--ink) !important;
  font-size:1.3rem !important;}
.wc-block-components-checkout-step{padding-left:0 !important; border:0 !important;}
.wc-block-components-checkout-step__heading{margin:0 0 18px !important;}
.wc-block-components-checkout-step__container::after{display:none !important;}
.wc-block-components-checkout-step__description{color:var(--muted);}

/* Cart line items */
.wc-block-cart-items{border:1px solid var(--line); border-radius:var(--r-l);
  background:var(--card); overflow:hidden;}
.wc-block-cart-items__header{background:var(--paper); font-size:.8rem !important;
  letter-spacing:.08em; text-transform:uppercase; color:var(--muted) !important;
  border-bottom:1px solid var(--line);}
.wc-block-cart-items__header th{padding:16px 22px !important;}
.wc-block-cart-items__row{border-top:1px solid var(--line);}
.wc-block-cart-items__row:first-child{border-top:0;}
.wc-block-cart-items__row td{padding:22px !important; border:0 !important;}
.wc-block-cart-item__image img{border-radius:10px; border:1px solid var(--line);
  width:104px !important; max-width:none;}
.wc-block-components-product-name{font-family:var(--font-display); font-weight:700 !important;
  font-size:1.06rem !important; letter-spacing:-0.01em; color:var(--ink) !important;
  text-decoration:none !important; line-height:1.3;}
.wc-block-components-product-name:hover{text-decoration:underline !important;}
.wc-block-cart-item__wrap .wc-block-components-product-metadata{color:var(--muted); font-size:.9rem;}
.wc-block-components-product-details__licensed-domain{color:var(--violet-dark);}

/* Prices */
.wc-block-components-product-price__value,
.wc-block-components-formatted-money-amount{font-variant-numeric:tabular-nums; font-weight:700;}
.wc-block-components-product-price__regular,
.wc-block-components-sale-price ~ del,
.wc-block-components-product-price del{color:var(--muted) !important;
  font-weight:500 !important; text-decoration:line-through;}
.wc-block-components-sale-price{color:var(--green) !important;}
.wc-block-components-sale-badge{background:var(--lime) !important; color:var(--ink) !important;
  border-radius:6px !important; font-weight:700 !important; font-size:.76rem !important;
  padding:.35em .7em !important; border:0 !important;}

/* Quantity stepper */
.wc-block-components-quantity-selector{border:1.5px solid var(--line-dark) !important;
  border-radius:10px !important; overflow:hidden; max-width:132px;}
.wc-block-components-quantity-selector::after{display:none !important;}
.wc-block-components-quantity-selector__button{color:var(--ink) !important; font-weight:600;
  min-width:38px; background:transparent !important;}
.wc-block-components-quantity-selector__button:hover{background:var(--paper) !important;}
.wc-block-components-quantity-selector__input{font-variant-numeric:tabular-nums; color:var(--ink) !important;}

/* Totals */
.wc-block-components-totals-item{padding:12px 0 !important; font-size:.98rem;}
.wc-block-components-totals-item__label{color:var(--ink-soft);}
.wc-block-components-totals-footer-item{border-top:1px solid var(--line) !important;
  margin-top:8px; padding-top:18px !important;}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-family:var(--font-display); font-weight:800 !important; font-size:1.3rem !important;
  letter-spacing:-0.02em; color:var(--ink) !important;}
.wc-block-components-totals-wrapper{padding:0 !important; border-top:1px solid var(--line) !important;
  margin-top:14px; padding-top:14px !important;}
.wc-block-components-totals-wrapper:first-child{border-top:0 !important; margin-top:0; padding-top:0 !important;}

/* Coupon panel */
.wc-block-components-panel__button{font-weight:600 !important; color:var(--ink) !important; padding:14px 0 !important;}
.wc-block-components-totals-coupon__form{gap:10px; display:flex; margin-top:6px;}
.wc-block-components-totals-coupon__input{flex:1;}

/* Buttons */
.wc-block-components-button:not(.is-link){background:var(--violet) !important; color:#fff !important;
  border-radius:11px !important; font-weight:600 !important; font-size:1rem !important;
  padding:1.05em 2em !important; border:0 !important; min-height:0 !important;
  box-shadow:0 10px 24px -10px rgba(91,78,245,.5); transition:transform .18s, background .18s;}
.wc-block-components-button:not(.is-link):hover{background:var(--violet-dark) !important; transform:translateY(-2px);}
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button{width:100%; justify-content:center;}
.wc-block-components-button.is-link{color:var(--violet-dark) !important; font-weight:600;}

/* Form fields */
.wc-block-components-text-input input[type=text],
.wc-block-components-text-input input[type=email],
.wc-block-components-text-input input[type=tel],
.wc-block-components-text-input input[type=number],
.wc-block-components-textarea,
.wc-block-components-select__container{border:1.5px solid var(--line-dark) !important;
  border-radius:10px !important; background:var(--card) !important; color:var(--ink) !important;
  padding:1.5em 1em .55em !important; height:auto !important; box-shadow:none !important;}
.wc-block-components-select__container{padding:0 !important;}
.wc-block-components-select__select{padding:1.5em 1em .55em !important; height:auto !important; color:var(--ink) !important;}
.wc-block-components-text-input input:focus,
.wc-block-components-select__select:focus{border-color:var(--violet) !important;
  outline:none !important; box-shadow:0 0 0 3px rgba(91,78,245,.15) !important;}
.wc-block-components-text-input label,
.wc-block-components-select__label{color:var(--muted) !important;}
.wc-block-components-address-form,
.wc-block-components-address-form__address_1{display:grid; gap:14px;}
.wc-block-components-address-form .wc-block-components-text-input{margin-top:0 !important;}

/* Payment methods */
.wc-block-components-radio-control__option{border:1.5px solid var(--line) !important;
  border-radius:12px !important; padding:16px 18px 16px 46px !important; margin-bottom:10px;
  background:var(--card);}
.wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted{
  border-color:var(--ink) !important; background:var(--paper) !important;}
.wc-block-components-radio-control__option::after{display:none !important;}

/* Notices */
.wc-block-components-notice-banner{border-radius:var(--r-m) !important; border-width:1px !important;
  border-left-width:4px !important; background:var(--card) !important; color:var(--ink) !important;
  box-shadow:var(--sh-s); align-items:flex-start;}
.wc-block-components-notice-banner.is-error{border-left-color:var(--red) !important;}
.wc-block-components-notice-banner.is-success{border-left-color:var(--green) !important;}
.wc-block-components-notice-banner.is-info{border-left-color:var(--violet) !important;}

/* Order summary block inside checkout sidebar */
.wc-block-components-order-summary__content{border:0;}
.wc-block-components-order-summary-item{padding:16px 0 !important; border-bottom:1px solid var(--line);}
.wc-block-components-order-summary-item:last-child{border-bottom:0;}
.wc-block-components-order-summary-item__image img{border-radius:8px; border:1px solid var(--line);}
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata__description{display:none;}

/* Empty cart */
.wp-block-woocommerce-empty-cart-block{text-align:center; padding:40px 0 80px;}

/* ---------- Star ratings (Woo core) ---------- */
.woocommerce .star-rating span::before, .woocommerce .star-rating::before{color:var(--green);}
.woocommerce p.stars a{color:var(--green);}

/* =========================================================
   Services / About page templates
   ========================================================= */

.svc-wrap, .about-wrap{padding-bottom:100px; display:flex; flex-direction:column; gap:96px;}
@media (max-width:900px){ .svc-wrap, .about-wrap{gap:64px;} }

/* Installation offer */
.svc-offer{display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:0;
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-l);
  overflow:hidden; box-shadow:var(--sh-m);}
@media (max-width:860px){ .svc-offer{grid-template-columns:1fr;} }
.svc-offer__body{padding:44px;}
.svc-offer__title{margin:14px 0 12px; font-size:1.9rem;}
.svc-offer__body > p{color:var(--muted); line-height:1.65; max-width:52ch; margin-bottom:8px;}
.svc-offer__price{padding:44px; background:var(--paper); border-left:1px solid var(--line);
  display:flex; flex-direction:column; gap:10px; align-items:flex-start; justify-content:center;}
@media (max-width:860px){ .svc-offer__price{border-left:0; border-top:1px solid var(--line);} }
.svc-price{font-family:var(--font-display); font-size:3.2rem; font-weight:800;
  letter-spacing:-0.03em; line-height:1; font-variant-numeric:tabular-nums; color:var(--ink);}
.svc-price__note{color:var(--muted); font-size:.94rem; margin-bottom:12px;}
.svc-price__fine{color:var(--muted); font-size:.83rem; line-height:1.55; margin:4px 0 0;}
.svc-offer__price .btn{width:100%; justify-content:center;}

/* Custom work */
.svc-custom__inner{background:var(--ink); color:#fff; border-radius:var(--r-l); padding:56px;
  display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:48px; align-items:center;}
@media (max-width:900px){ .svc-custom__inner{grid-template-columns:1fr; padding:38px; gap:30px;} }
.svc-custom__inner .h2{color:#fff; margin:14px 0 14px;}
.svc-custom__inner .eyebrow{color:#8F8D99;}
.svc-custom__inner .eyebrow::before{background:#8F8D99;}
.svc-custom__inner .sub{color:#A5A3AE;}
.svc-tags{list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0;}
.svc-tags li{border:1px solid rgba(255,255,255,.22); border-radius:999px;
  padding:.55em 1.15em; font-size:.9rem; color:#EDEDF2;}

/* Enquiry form */
.svc-form{display:flex; flex-direction:column; gap:34px;}
.svc-form .form-card{max-width:820px; margin:0 auto; width:100%;}
.svc-form__alt{text-align:center; color:var(--muted); font-size:.94rem;}
.svc-form__alt a{font-weight:600;}

/* About */
.about-intro{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:64px; align-items:start;}
@media (max-width:900px){ .about-intro{grid-template-columns:1fr; gap:26px;} }
.about-intro__lead .h2{max-width:14ch;}
.about-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
@media (max-width:900px){ .about-stats{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .about-stats{grid-template-columns:1fr;} }
.stat-box{padding:34px 30px; border-left:1px solid var(--line);
  display:flex; flex-direction:column; gap:9px;}
.stat-box:first-child{border-left:0;}
@media (max-width:900px){ .stat-box:nth-child(3){border-left:0;} }
.stat-box b{font-family:var(--font-display); font-size:1.16rem; letter-spacing:-0.01em;}
.stat-box span{color:var(--muted); font-size:.94rem; line-height:1.6;}
.about-cta .cta-band{padding:80px 40px;}

/* Fluent Forms inside our cards */
.form-card .fluentform .ff-el-group{margin-bottom:18px;}
.form-card .fluentform .ff-el-input--label label{font-weight:600; font-size:.92rem; margin-bottom:7px;}
.form-card .fluentform input[type=text], .form-card .fluentform input[type=email],
.form-card .fluentform input[type=tel], .form-card .fluentform input[type=url],
.form-card .fluentform textarea, .form-card .fluentform select{
  border:1.5px solid var(--line-dark) !important; border-radius:10px !important;
  padding:.8em 1em !important; background:var(--card) !important; color:var(--ink) !important;
  font:inherit !important; box-shadow:none !important; height:auto !important;}
.form-card .fluentform input:focus, .form-card .fluentform textarea:focus,
.form-card .fluentform select:focus{border-color:var(--violet) !important;
  box-shadow:0 0 0 3px rgba(91,78,245,.15) !important; outline:none !important;}
.form-card .fluentform .ff-btn-submit{background:var(--violet) !important; color:#fff !important;
  border:0 !important; border-radius:11px !important; padding:1.05em 2em !important;
  font-weight:600 !important; font-size:1rem !important; width:100%;
  box-shadow:0 10px 24px -10px rgba(91,78,245,.5); transition:transform .18s, background .18s;}
.form-card .fluentform .ff-btn-submit:hover{background:var(--violet-dark) !important; transform:translateY(-2px);}

/* =========================================================
   v1.2 — layout corrections
   Everything below assumes woocommerce-layout.css is dequeued
   (see ptshop_dequeue_wc_layout) so no float resets are needed.
   ========================================================= */

/* ---- Full-width shell for Cart / Checkout / Account pages ---- */
.wc-page{padding-bottom:100px;}
.wc-page > .woocommerce,
.wc-page > .wp-block-woocommerce-cart,
.wc-page > .wp-block-woocommerce-checkout{max-width:var(--w); margin:0 auto;
  padding-left:var(--gut); padding-right:var(--gut);}
.wc-page .page-head{padding-bottom:34px;}

/* ---- Product grid: cards must fill their track ---- */
.woocommerce ul.products li.product{width:100%; max-width:none; margin:0; float:none; min-width:0;}
.woocommerce ul.products li.product .tcard,
.woocommerce ul.products li.product .browser{width:100%;}
.woocommerce ul.products li.product a img{width:100%; margin:0;}

/* Sorting row sits inside the same container as the grid */
.woocommerce .woocommerce-ordering{margin:0 0 28px; display:flex; justify-content:flex-end;}

/* ---- Product page: gallery placeholder shouldn't shrink ---- */
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{width:100%;}
.woocommerce div.product div.images img{width:100%;}
.woocommerce-product-gallery__image--placeholder img{max-width:100%;}

/* ---- Form slot placeholder ---- */
.form-slot{border:2px dashed var(--line-dark); border-radius:var(--r-m); padding:38px 30px;
  text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px;
  background:var(--paper);}
.form-slot__icon{width:30px; height:30px; color:var(--muted); opacity:.75;}
.form-slot b{font-family:var(--font-display); font-size:1.15rem;}
.form-slot p{color:var(--muted); font-size:.95rem; line-height:1.6; max-width:48ch; margin:0;}
.form-slot__how{font-size:.9rem !important;}
.form-slot code{background:var(--card); border:1px solid var(--line); border-radius:7px;
  padding:.45em .85em; font-size:.88rem; color:var(--violet-dark);}
.form-slot__note{color:var(--muted); font-size:.78rem; letter-spacing:.04em; text-transform:uppercase;}
.form-slot__public{color:var(--muted);}
.form-card__title{margin-bottom:22px;}

/* ---- Tighter rhythm on the content pages ---- */
.svc-wrap, .about-wrap{gap:80px; padding-top:8px;}
@media (max-width:900px){ .svc-wrap, .about-wrap{gap:56px;} }
.svc-wrap > section, .about-wrap > section{padding:0;}
.svc-form{gap:26px;}
.about-intro{align-items:center;}
.about-cta .cta-band{padding:72px 40px;}
.page-head{padding-top:72px; padding-bottom:32px;}

/* =========================================================
   v1.3 — product card, account, cart/checkout, contact page
   ========================================================= */

/* ---------- Product card ---------- */
.tcard{display:flex; flex-direction:column; transition:transform .25s var(--ease);}
.tcard:hover{transform:translateY(-6px);}
.tcard__frame{background:var(--card); border:1px solid var(--line); border-radius:var(--r-m);
  overflow:hidden; box-shadow:var(--sh-m); transition:box-shadow .25s var(--ease);}
.tcard:hover .tcard__frame{box-shadow:var(--sh-l);}
.tcard__bar{display:flex; align-items:center; gap:6px; padding:11px 14px; border-bottom:1px solid var(--line);}
.tcard__bar i{width:9px; height:9px; border-radius:50%; background:var(--line-dark); display:block;}
.tcard__url{margin-left:10px; flex:1; height:16px; border-radius:5px; background:var(--paper); border:1px solid var(--line);}
.tcard__shot{position:relative; overflow:hidden;}
.tcard__link{display:block; aspect-ratio:840/500; background:var(--paper);}
.tcard__img{width:100%; height:100%; object-fit:cover; object-position:top; display:block;
  transition:transform .5s var(--ease);}
.tcard:hover .tcard__img{transform:scale(1.04);}
.tcard__ph{display:flex; align-items:center; justify-content:center; height:100%; width:100%;
  padding:26px; text-align:center; background:linear-gradient(150deg,#6C63FF,#3B2FD1); color:#fff;}
.tcard__ph b{font-family:var(--font-display); font-size:1.1rem; font-weight:700; line-height:1.3;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}

/* Action panel slides up over the screenshot */
.tcard__actions{position:absolute; left:0; right:0; bottom:0; z-index:2;
  display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:16px;
  background:var(--card); border-top:1px solid var(--line);
  transform:translateY(101%); transition:transform .26s var(--ease);}
.tcard:hover .tcard__actions, .tcard:focus-within .tcard__actions{transform:none;}
.tcard__actions .btn,
.tcard__actions .button{width:100%; padding:.78em 1em; font-size:.9rem; border-radius:9px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:inline-flex;}
.tcard__actions .added_to_cart{display:none;}
.tcard__actions .button.loading{opacity:.7;}
@media (hover:none){
  .tcard__actions{position:static; transform:none; border-top:0; padding:14px 0 0; background:transparent;}
}

.tcard__meta{display:flex; justify-content:space-between; align-items:baseline; gap:8px 16px;
  padding:18px 4px 0; flex-wrap:wrap;}
.tcard__title{font-family:var(--font-display); font-weight:700; font-size:1.06rem;
  letter-spacing:-0.01em; line-height:1.35; margin:0; flex:1 1 60%; min-width:0;}
.tcard__title a{text-decoration:none; color:var(--ink);}
.tcard__title a:hover{color:var(--violet-dark);}
.tcard__price{font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; margin-left:auto;}
.tcard__price del{color:var(--muted); font-weight:500; font-size:.84em; margin-right:.35em;}
.tcard__price ins{text-decoration:none; color:var(--green);}
.tcard__cats{color:var(--muted); font-size:.88rem; margin:5px 4px 0;}
.tcard__cats a{color:var(--muted); text-decoration:none;}
.tcard__cats a:hover{text-decoration:underline;}

/* ---------- Product page head: one line, black + green ---------- */
.product-head{padding:4px 0 26px; display:flex; align-items:center; justify-content:space-between;
  gap:20px 28px; flex-wrap:wrap;}
.product-head__text{flex:1 1 60%; min-width:0;}
.woocommerce div.product .product-head .product_title{font-size:clamp(1.5rem,2.5vw,2.15rem);
  font-weight:800; letter-spacing:-0.025em; margin:0; line-height:1.2;}
.product-head .head-sub{color:var(--muted); font-size:.99rem; margin:6px 0 0;}
.pbadges{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.badge{background:var(--paper); border:1px solid var(--line-dark); color:var(--ink-soft);
  font-size:.79rem; font-weight:600; border-radius:999px; padding:.42em 1em; white-space:nowrap;}
.badge-platform{background:var(--ink); border-color:var(--ink); color:#fff;}
.badge-gpl{background:#E8F6ED; border-color:#BCE5CC; color:#0C6B34;
  display:inline-flex; align-items:center; gap:.4em;}
.badge-gpl svg.ic{width:.85em; height:.85em; stroke-width:2.6;}

/* Summary is no longer sticky: pinning it let the card float over the
   Related products block further down the page. */
.woocommerce div.product div.summary{position:static;}
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products{position:relative; z-index:1; background:var(--paper);}
.related.products > h2, .upsells.products > h2{font-size:clamp(1.5rem,2.6vw,2.1rem); margin-bottom:34px;}
.related.products ul.products, .upsells.products ul.products{gap:40px 32px;}

/* ---------- My Account ---------- */
.pt-account{display:grid; grid-template-columns:250px minmax(0,1fr); gap:40px; align-items:start;}
@media (max-width:880px){ .pt-account{grid-template-columns:minmax(0,1fr); gap:22px;} }
.pt-account__nav{min-width:0;}
.pt-account .woocommerce-MyAccount-navigation{background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-l); padding:12px; box-shadow:var(--sh-s);}
.pt-account .woocommerce-MyAccount-navigation ul{list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:3px;}
.pt-account .woocommerce-MyAccount-navigation li{margin:0; padding:0; list-style:none;}
.pt-account .woocommerce-MyAccount-navigation li a{display:block; padding:12px 16px; border-radius:10px;
  text-decoration:none; font-weight:500; font-size:.97rem; color:var(--ink-soft); transition:.15s;}
.pt-account .woocommerce-MyAccount-navigation li a:hover{background:var(--paper); color:var(--ink);}
.pt-account .woocommerce-MyAccount-navigation li.is-active a{background:var(--ink); color:#fff;}
.pt-account__main{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l);
  padding:34px; box-shadow:var(--sh-s); min-width:0; font-size:1rem;}
.pt-account__main > :last-child{margin-bottom:0;}
.pt-account__main p{line-height:1.7; margin:0 0 1em;}
.pt-account__main h2, .pt-account__main h3{margin:0 0 18px; font-size:1.3rem;}
.pt-account__main table{width:100%; border-collapse:separate; border-spacing:0;
  border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden;}
.pt-account__main table th{background:var(--paper); font-size:.78rem; letter-spacing:.07em;
  text-transform:uppercase; color:var(--muted); padding:14px 16px; text-align:left; border:0;}
.pt-account__main table td{padding:16px; border-top:1px solid var(--line); vertical-align:middle;}
.pt-account__main table td.woocommerce-orders-table__cell-order-actions{white-space:nowrap;}
.pt-account__main table .button{display:inline-flex; padding:.55em 1.1em; font-size:.85rem;
  border-radius:8px; margin:2px 4px 2px 0;}
.woocommerce-account .addresses .title h3{font-size:1.1rem;}
.woocommerce-EditAccountForm fieldset{border:1px solid var(--line); border-radius:var(--r-m);
  padding:22px; margin-top:24px;}

/* ---------- Cart: larger, more legible left column ---------- */
.wc-block-cart-items__row td{padding:24px 22px !important;}
.wc-block-components-product-name{font-size:1.12rem !important; line-height:1.35;}
.wc-block-cart-item__wrap .wc-block-components-product-metadata,
.wc-block-components-product-metadata__description{font-size:.95rem !important; line-height:1.6;}
.wc-block-cart-item__wrap .wc-block-components-product-price{font-size:1.05rem;}
.wc-block-cart-item__total .wc-block-components-formatted-money-amount{font-size:1.08rem;}
.wc-block-cart-items__header th{font-size:.8rem !important; padding:18px 22px !important;}
.wc-block-cart-item__image img{width:112px !important;}
.wc-block-cart-item__quantity{margin-top:14px;}

/* ---------- Checkout / cart sidebar: fewer rules, uniform type ---------- */
.wc-block-components-totals-wrapper{border-top:0 !important; padding:0 !important; margin:0 !important;}
.wc-block-components-totals-wrapper:empty{display:none !important;}
.wc-block-components-totals-item{padding:13px 0 !important; font-size:1rem; display:flex;
  align-items:baseline; justify-content:space-between; gap:16px;}
.wc-block-components-totals-item__label{color:var(--ink-soft); font-weight:500;}
.wc-block-components-totals-item__value{font-weight:600; font-variant-numeric:tabular-nums;}
/* Exactly one rule above the grand total. */
.wc-block-components-totals-footer-item{border-top:1px solid var(--line) !important;
  margin-top:6px !important; padding-top:18px !important;}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label{
  font-family:var(--font-display); font-weight:800 !important; font-size:1.25rem !important;
  letter-spacing:-0.02em; color:var(--ink) !important;}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-family:var(--font-display); font-weight:800 !important; font-size:1.5rem !important;
  letter-spacing:-0.02em; color:var(--ink) !important;}
.wc-block-components-panel__button{padding:16px 0 !important; font-size:.98rem !important;}
.wc-block-components-totals-coupon{border-top:1px solid var(--line) !important; padding-top:4px !important;}
.wc-block-components-order-summary__content{border:0 !important;}
.wc-block-components-order-summary-item{padding:18px 0 !important;}
.wc-block-components-order-summary-item__description .wc-block-components-product-name{font-size:1rem !important;}
.wc-block-components-order-summary .wc-block-components-panel__button{border-bottom:0 !important;}
.wc-block-components-sidebar .wc-block-components-panel{border:0 !important;}

/* ---------- Missing page styles (Contact / Services / About shared) ---------- */
.prose{line-height:1.75;}
.fcol{min-width:0;}
.logo-text{white-space:nowrap;}
.reviews-sec{padding-top:0;}
.about-intro__body{font-size:1.05rem;}
.about-values, .svc-need, .svc-custom{display:block;}
.comments-title{margin-bottom:18px;}

/* ---------- Contact page ---------- */
.ct-hero{text-align:center; padding:76px 0 44px;}
.ct-hero .wrap{display:flex; flex-direction:column; align-items:center; gap:16px;}
.ct-hero .sub{max-width:60ch; margin:0 auto;}

.ct-tiles{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media (max-width:900px){ .ct-tiles{grid-template-columns:1fr;} }
.ct-tile{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l);
  padding:28px; display:flex; flex-direction:column; gap:9px; text-decoration:none; color:var(--ink);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s;}
.ct-tile:hover{transform:translateY(-4px); box-shadow:var(--sh-m); border-color:var(--line-dark);}
.ct-tile__ic{width:46px; height:46px; border-radius:12px; background:var(--violet-ghost);
  color:var(--violet); display:flex; align-items:center; justify-content:center; margin-bottom:4px;}
.ct-tile__ic svg.ic{width:21px; height:21px;}
.ct-tile b{font-family:var(--font-display); font-size:1.12rem;}
.ct-tile__val{color:var(--muted); font-size:.95rem; line-height:1.6; flex:1;}
.ct-tile__go{display:inline-flex; align-items:center; gap:.4em; color:var(--violet-dark);
  font-weight:600; font-size:.92rem; margin-top:4px;}

.ct-main{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:40px;
  align-items:start; padding-top:56px;}
@media (max-width:960px){ .ct-main{grid-template-columns:minmax(0,1fr); gap:28px;} }
.ct-form{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l);
  padding:40px; box-shadow:var(--sh-s); min-width:0;}
@media (max-width:600px){ .ct-form{padding:26px;} }
.ct-form__lead{color:var(--muted); margin:10px 0 26px; line-height:1.65;}
.ct-side{display:flex; flex-direction:column; gap:20px; min-width:0;}
.ct-panel{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l); padding:28px;}
.ct-panel__title{font-family:var(--font-display); font-size:1.15rem; font-weight:700; margin:0 0 16px;}
.ct-hours{display:flex; align-items:center; gap:10px; color:var(--ink-soft); margin:0 0 18px; line-height:1.6;}
.ct-hours svg.ic{color:var(--violet); flex:none;}
.ct-promise{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px;}
.ct-promise li{display:flex; gap:11px; align-items:flex-start; color:var(--ink-soft);
  font-size:.95rem; line-height:1.55;}
.ct-promise svg.ic{color:var(--green); margin-top:.28em; flex:none;}
.ct-panel--dark{background:var(--ink); border-color:var(--ink); color:#fff;}
.ct-panel--dark .ct-panel__title{color:#fff;}
.ct-panel--dark p{color:#A5A3AE; margin:0; line-height:1.7;}

.ct-faq{padding:80px 0 100px; display:grid; grid-template-columns:minmax(0,320px) minmax(0,1fr); gap:56px;
  align-items:start;}
@media (max-width:900px){ .ct-faq{grid-template-columns:minmax(0,1fr); gap:26px; padding:56px 0 72px;} }
.ct-faq__head{display:flex; flex-direction:column; gap:14px;}
.ct-faq__list{display:flex; flex-direction:column; border-top:1px solid var(--line);}
.ct-faq__list details{border-bottom:1px solid var(--line);}
.ct-faq__list summary{padding:22px 4px; font-weight:600; font-size:1.04rem; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:18px;}
.ct-faq__list summary::-webkit-details-marker{display:none;}
.ct-faq__list summary::marker{content:"";}
.ct-faq__list summary svg.ic{color:var(--muted); flex:none; transition:transform .2s var(--ease);}
.ct-faq__list details[open] summary{color:var(--violet-dark);}
.ct-faq__list details[open] summary svg.ic{transform:rotate(45deg); color:var(--violet);}
.ct-faq__list details p{padding:0 4px 24px; color:var(--muted); line-height:1.7; max-width:70ch; margin:0;}

/* ---------- Footer: full-width divider + disclaimer ---------- */
.fdisclaimer-bar{border-top:1px solid var(--line); background:var(--paper); padding:20px 0;}
.fdisclaimer{margin:0; padding:0; border:0; color:var(--muted); font-size:.8rem; line-height:1.65; max-width:none;}

/* =========================================================
   v1.4 — unified card, sticky buy box, account licences
   ========================================================= */

/* ---- Header / footer icon sizing ---- */
.icon-btn svg.ic{width:1.5em; height:1.5em;}
.hdr-actions{gap:10px;}
.cart-count{min-width:19px; height:19px; font-size:.7rem; margin-left:-13px; margin-top:-18px;}
.ft-item svg.ic{width:26px; height:26px;}
.fmail svg.ic, .fhours svg.ic{width:1.25em; height:1.25em;}

/* ---- Product card: one enclosing card (Balancia reference) ---- */
.tcard{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l);
  overflow:hidden; box-shadow:var(--sh-s);}
.tcard:hover{box-shadow:var(--sh-l);}
.tcard__frame{border:0; border-radius:0; box-shadow:none; background:transparent;}
.tcard:hover .tcard__frame{box-shadow:none;}
.tcard__bar{background:var(--card);}
.tcard__actions{border-top:1px solid var(--line);}
/* Name, category and price all live inside the same card body. */
.tcard__meta{padding:22px 24px 0; align-items:flex-start;}
.tcard__title{font-size:1.1rem;}
.tcard__price{font-size:1.05rem;}
.tcard__cats{margin:6px 24px 22px;}
@media (max-width:600px){ .tcard__meta{padding:18px 18px 0;} .tcard__cats{margin:6px 18px 18px;} }

/* ---- Product page head: use the empty right-hand space ---- */
.product-head{align-items:flex-start;}
.product-head__aside{display:flex; flex-direction:column; align-items:flex-end; gap:14px;}
@media (max-width:820px){ .product-head__aside{align-items:flex-start;} }
.head-points{list-style:none; margin:0; padding:0; display:flex; gap:22px; flex-wrap:wrap;}
.head-points li{display:inline-flex; align-items:center; gap:8px; color:var(--muted);
  font-size:.9rem; font-weight:500; white-space:nowrap;}
.head-points svg.ic{color:var(--green); width:1.05em; height:1.05em;}

/* ---- Buy box sticky again, without escaping over Related products ---- */
.woocommerce div.product div.summary{position:sticky; top:100px; align-self:start;}
@media (max-width:1080px){ .woocommerce div.product div.summary{position:static;} }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products{z-index:3;}

/* ---- Shop description on two lines ---- */
.shop-head__desc{max-width:74ch;}
.shop-head__desc p{margin:0;}

/* ---- My Account: centred column ---- */

/* ---- My Licences ---- */
.lic-intro{color:var(--muted); margin-bottom:22px;}
.lic-list{display:flex; flex-direction:column; border:1px solid var(--line);
  border-radius:var(--r-m); overflow:hidden;}
.lic-row{display:flex; align-items:center; justify-content:space-between; gap:20px 28px;
  padding:20px 22px; border-top:1px solid var(--line); flex-wrap:wrap;}
.lic-row:first-child{border-top:0;}
.lic-row__main{display:flex; flex-direction:column; gap:5px; min-width:0; flex:1 1 55%;}
.lic-row__name{font-family:var(--font-display); font-size:1.02rem; font-weight:700; line-height:1.35;}
.lic-row__name a{text-decoration:none; color:var(--ink);}
.lic-row__name a:hover{color:var(--violet-dark);}
.lic-row__order{color:var(--muted); font-size:.86rem; font-variant-numeric:tabular-nums;}
.lic-row__domain{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
.lic-badge{display:inline-flex; align-items:center; gap:.4em; border-radius:999px;
  padding:.36em .9em; font-size:.79rem; font-weight:700;}
.lic-badge svg.ic{width:.9em; height:.9em; stroke-width:2.6;}
.lic-badge--active{background:#E8F6ED; color:#0C6B34;}
.lic-badge--pending{background:var(--paper); color:var(--muted); border:1px solid var(--line-dark);}
.lic-domain{display:inline-flex; align-items:center; gap:7px; font-weight:600;
  font-size:.95rem; color:var(--ink);}
.lic-domain svg.ic{color:var(--violet);}
.lic-add{display:inline-flex; align-items:center; gap:.35em; font-weight:600;
  font-size:.9rem; color:var(--violet-dark);}
.lic-note{color:var(--muted); font-size:.9rem; margin-top:20px; line-height:1.65;}

/* =========================================================
   v1.4.1 — card image ratio, stacked meta, equal heights
   ========================================================= */

/* Artwork is 590×300, so the frame matches it exactly — no letterbox strip
   under the image and nothing cropped. */
.tcard__link{aspect-ratio:590/300;}
.tcard__img{display:block; width:100%; height:100%; object-fit:cover; object-position:center;}
/* The shot wrapper was leaving a sliver of background under the image. */
.tcard__shot{display:block; font-size:0; line-height:0;}
.tcard__shot .tcard__actions{font-size:1rem; line-height:1.55;}

/* Equal-height cards across every grid they appear in. */
.woocommerce ul.products li.product,
.cards > div,
.related.products li.product{display:flex;}
.tcard{width:100%; display:flex; flex-direction:column;}
.tcard__meta{flex:1;}

/* Title, then price, then category — all left aligned. */
.tcard__meta{display:flex; flex-direction:column; align-items:flex-start; gap:10px;
  padding:22px 24px 24px;}
.tcard__title{flex:none; min-height:2.7em; font-size:1.08rem; line-height:1.35; margin:0;}
.tcard__price{margin:0; font-size:1.35rem; font-weight:800; font-family:var(--font-display);
  letter-spacing:-0.02em; line-height:1.1;}
.tcard__price del{font-family:var(--font-body); font-size:.66em; font-weight:500; margin-right:.45em;}
.tcard__price ins{color:var(--green); font-weight:800;}
.tcard__cats{margin:0; font-size:.9rem; color:var(--muted);}
@media (max-width:600px){ .tcard__meta{padding:18px 18px 20px;} }

/* =========================================================
   v1.5 — product page rebuild
   Explicit grid placement so the gallery, the facts block under it and
   the buy box can never auto-flow into the wrong column.
   ========================================================= */

/* ---- Licence rows with inline activation ---- */
.lic-saved{display:flex; align-items:center; gap:9px; background:#E8F6ED; color:#0C6B34;
  border-radius:10px; padding:13px 16px; font-weight:600; margin-bottom:20px;}
.lic-saved svg.ic{stroke-width:2.6;}
.lic-row{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px 24px; align-items:center;}
.lic-row__state{display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:flex-end;}
.lic-form{grid-column:1 / -1; display:flex; gap:10px; padding-top:14px;
  border-top:1px dashed var(--line); flex-wrap:wrap;}
.lic-form input[type=text]{flex:1; min-width:200px; padding:.7em .95em;}
.lic-form .btn{padding:.7em 1.6em; font-size:.92rem; white-space:nowrap;}
.lic-row.is-active .lic-form{border-top-color:transparent; padding-top:6px;}
@media (max-width:640px){
  .lic-row{grid-template-columns:minmax(0,1fr);}
  .lic-row__state{justify-content:flex-start;}
}

/* =========================================================
   v1.6 — product page, rebuilt around a 55/45 split
   ========================================================= */

/* Two columns, ONE row. The gallery and the trust facts live inside
   .product-left together, so a tall buy box can no longer stretch the image
   row and open a gap under the picture. */
.woocommerce div.product,
.woocommerce-page div.product{grid-template-columns:minmax(0,55fr) minmax(0,45fr);
  grid-template-rows:auto; gap:0 44px; padding-top:4px; align-items:start;}
@media (max-width:1080px){
  .woocommerce div.product, .woocommerce-page div.product{grid-template-columns:minmax(0,1fr);}
}
.product-left{grid-column:1; grid-row:1; min-width:0; display:flex; flex-direction:column; gap:24px;}
.woocommerce div.product div.summary{grid-column:2; grid-row:1; align-self:start;
  position:static !important; margin:0;}
.woocommerce div.product .woocommerce-tabs{grid-column:1 / -1; margin-top:44px;}
.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products{grid-column:1 / -1; margin-top:56px;}
.related-more{grid-column:1 / -1; display:flex; justify-content:center; padding:32px 0 0;}
@media (max-width:1080px){
  .product-left, .woocommerce div.product div.summary,
  .woocommerce div.product .woocommerce-tabs,
  .woocommerce div.product .related.products, .related-more{grid-column:1;}
  .woocommerce div.product div.summary{margin-top:26px;}
}

/* Gallery: no stray space underneath. */
.woocommerce div.product div.images{margin:0 !important; width:100%;}
.woocommerce-product-gallery{margin:0 !important; border:1px solid var(--line);
  border-radius:var(--r-l); overflow:hidden; background:var(--card); box-shadow:var(--sh-s);}
.woocommerce-product-gallery__wrapper{margin:0;}
.woocommerce-product-gallery__image{margin:0; line-height:0;}
.woocommerce-product-gallery__image img{width:100%; aspect-ratio:590/300;
  object-fit:cover; display:block; margin:0;}
.woocommerce-product-gallery .flex-control-thumbs:empty{display:none;}
.woocommerce div.product div.images .flex-control-thumbs{margin:0; padding:12px;}

/* (6) Guarantees: two columns, two rows. */
.product-facts{padding:0; display:flex; flex-direction:column; gap:20px;}
.fact-list{list-style:none; margin:0; padding:0; display:grid;
  grid-template-columns:repeat(2,1fr); gap:20px 26px;}
@media (max-width:520px){ .fact-list{grid-template-columns:1fr;} }
.fact-list li{display:flex; gap:13px; align-items:flex-start; list-style:none; margin:0;}
.fact-list li::before{display:none;}
.fact-list li > svg.ic{width:22px; height:22px; color:var(--green); flex:none; margin-top:2px;}
.fact-list li > span{display:flex; flex-direction:column; gap:3px; min-width:0;
  color:var(--muted); font-size:.89rem; line-height:1.45;}
.fact-list li > span > b{color:var(--ink); font-family:var(--font-display); font-weight:700;
  font-size:1.02rem; letter-spacing:-0.01em; line-height:1.3;}

/* ---- Buy box ---- */
.woocommerce div.product div.summary{background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-l); padding:30px; box-shadow:var(--sh-m); display:flex;
  flex-direction:column; gap:0;}
.summary-heading{padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--line);}
.woocommerce div.product .summary-heading .product_title{font-size:1.4rem; font-weight:800;
  letter-spacing:-0.025em; line-height:1.3; margin:0;}
.summary-heading__sub{color:var(--muted); font-size:.94rem; margin:7px 0 0; line-height:1.5;}

/* (3) Sale price in the action blue used by the cart badge. */
.woocommerce div.product .summary p.price,
.woocommerce div.product .summary span.price{font-family:var(--font-display); font-weight:800;
  font-size:1.95rem; letter-spacing:-0.03em; line-height:1.1; color:var(--violet);
  display:flex; align-items:baseline; gap:.45rem; flex-wrap:wrap; margin:0 0 20px;}
.woocommerce div.product .summary .price del{font-family:var(--font-body); font-size:.48em;
  font-weight:500; color:var(--muted); opacity:1;}
.woocommerce div.product .summary .price ins{text-decoration:none; color:var(--violet); font-weight:800;}
.woocommerce div.product .summary .price .woocommerce-Price-currencySymbol{font-size:.8em;}

/* (4) Add to cart in brand green. Deepened from the checkmark green so white
   label text clears WCAG AA (5.4:1 rather than 3.3:1). */
.woocommerce div.product .summary button.single_add_to_cart_button,
.tcard__actions .btn-primary, .tcard__actions .button{
  background:var(--green-deep) !important; color:#fff !important;
  box-shadow:0 10px 24px -12px rgba(12,122,56,.55) !important;}
.woocommerce div.product .summary button.single_add_to_cart_button:hover,
.tcard__actions .btn-primary:hover, .tcard__actions .button:hover{
  background:var(--green-deeper) !important;}
.woocommerce div.product .summary form.cart{gap:16px; margin:0;}
.trust-mini{justify-content:flex-start; margin:14px 0 0; padding-top:14px;
  border-top:1px solid var(--line); width:100%;}

/* (8) Description: proper editorial typography. */
.woocommerce div.product .woocommerce-tabs ul.tabs{margin-bottom:24px;}
.woocommerce-Tabs-panel{max-width:none; font-size:1.02rem; line-height:1.75; color:var(--ink-soft);}
.woocommerce-Tabs-panel > p:first-of-type{font-size:1.12rem; line-height:1.65; color:var(--ink);}
.woocommerce-Tabs-panel p{margin:0 0 1.05em; max-width:78ch;}
.woocommerce-Tabs-panel h3{font-family:var(--font-display); font-size:1.22rem; font-weight:700;
  letter-spacing:-0.015em; color:var(--ink); margin:2.1em 0 .85em; padding-top:1.1em;
  border-top:1px solid var(--line);}
.woocommerce-Tabs-panel h3:first-child{margin-top:.4em; padding-top:0; border-top:0;}
.woocommerce-Tabs-panel ul{list-style:none; padding:0; margin:0 0 1.2em;
  columns:2; column-gap:52px;}
@media (max-width:860px){ .woocommerce-Tabs-panel ul{columns:1;} }
.woocommerce-Tabs-panel ul li{position:relative; padding-left:26px; margin:0 0 .62em;
  break-inside:avoid; color:var(--ink-soft);}
.woocommerce-Tabs-panel ul li::before{content:""; position:absolute; left:2px; top:.62em;
  width:7px; height:7px; border-radius:2px; background:var(--green); transform:rotate(45deg);}
.woocommerce-Tabs-panel strong{color:var(--ink); font-weight:700;}

/* (7) Tighter rhythm into Related products. */
.woocommerce div.product .woocommerce-tabs .panel{margin-bottom:0; padding-bottom:0;}
.related.products > h2{margin-bottom:28px;}

/* =========================================================
   v1.7 — cart line items + order confirmation
   ========================================================= */

/* Short description adds nothing once the item is already in the cart. */
.wc-block-cart-item__wrap .wc-block-components-product-metadata__description,
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata__description,
.wc-block-components-product-metadata__description{display:none !important;}

/* The licensed domain is the one piece of metadata that matters here, so it
   reads as a chip rather than fine print. */
.wc-block-components-product-details,
.wc-block-components-product-details__licensed-domain{list-style:none; margin:10px 0 0 !important; padding:0;}
.wc-block-components-product-details__licensed-domain{display:inline-flex; align-items:baseline;
  gap:.4em; background:var(--violet-ghost); border-radius:8px; padding:.45em .85em;
  font-size:.95rem !important; line-height:1.4;}
.wc-block-components-product-details__licensed-domain .wc-block-components-product-details__name{
  color:var(--muted); font-weight:600; font-size:.95rem;}
.wc-block-components-product-details__licensed-domain .wc-block-components-product-details__value{
  color:var(--violet-dark); font-weight:700; font-size:.95rem;}

/* ---- Order received ---- */
.oc-wrap{max-width:900px; margin:0 auto; padding:0 var(--gut) 90px;
  display:flex; flex-direction:column; gap:34px;}
.oc-head{text-align:center; display:flex; flex-direction:column; align-items:center; gap:14px;}
.oc-tick{width:62px; height:62px; border-radius:50%; background:#E8F6ED; color:var(--green-deep);
  display:flex; align-items:center; justify-content:center;}
.oc-tick svg.ic{width:30px; height:30px; stroke-width:3;}
.oc-title{font-size:clamp(1.9rem,4vw,2.7rem); font-weight:800; letter-spacing:-0.03em; margin:0;}
.oc-sub{color:var(--muted); font-size:1.06rem; line-height:1.65; max-width:56ch; margin:0;}

.oc-facts{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr);
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden;}
@media (max-width:700px){ .oc-facts{grid-template-columns:1fr 1fr;} }
.oc-facts li{padding:20px 22px; border-left:1px solid var(--line);
  display:flex; flex-direction:column; gap:5px;}
.oc-facts li:first-child{border-left:0;}
@media (max-width:700px){ .oc-facts li:nth-child(3){border-left:0;} }
.oc-facts span{font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:600;}
.oc-facts b{font-size:1.02rem; font-weight:700; font-variant-numeric:tabular-nums;}

.oc-downloads{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l);
  padding:28px; box-shadow:var(--sh-s);}
.oc-downloads__head{display:flex; align-items:baseline; justify-content:space-between;
  gap:16px; margin-bottom:18px; flex-wrap:wrap;}
.oc-downloads__head h2{font-size:1.3rem; font-weight:800; margin:0;}
.oc-alllink{display:inline-flex; align-items:center; gap:.35em; font-weight:600;
  font-size:.92rem; color:var(--violet-dark); text-decoration:none;}
.oc-files{display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden;}
.oc-file{display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:18px 20px; border-top:1px solid var(--line); flex-wrap:wrap;}
.oc-file:first-child{border-top:0;}
.oc-file__info{display:flex; flex-direction:column; gap:3px; min-width:0;}
.oc-file__info b{font-size:1rem; font-weight:700; line-height:1.35;}
.oc-file__info span{color:var(--muted); font-size:.88rem;}
.oc-file .btn{padding:.7em 1.5em; font-size:.93rem; white-space:nowrap;}

.oc-pending{background:var(--violet-ghost); border-radius:var(--r-l); padding:26px;
  display:flex; gap:16px; align-items:flex-start;}
.oc-pending > svg.ic{width:24px; height:24px; color:var(--violet); flex:none; margin-top:2px;}
.oc-pending b{display:block; font-size:1.05rem; margin-bottom:6px;}
.oc-pending p{color:var(--ink-soft); line-height:1.65; margin:0 0 16px; max-width:62ch;}

.oc-next h2{font-size:1.3rem; font-weight:800; margin:0 0 18px;}
.oc-next__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
@media (max-width:760px){ .oc-next__grid{grid-template-columns:1fr;} }
.oc-card{background:var(--card); border:1px solid var(--line); border-radius:var(--r-m);
  padding:22px; display:flex; flex-direction:column; gap:8px; text-decoration:none; color:var(--ink);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);}
.oc-card:hover{transform:translateY(-3px); box-shadow:var(--sh-m);}
.oc-card__ic{width:40px; height:40px; border-radius:10px; background:var(--violet-ghost);
  color:var(--violet); display:flex; align-items:center; justify-content:center; margin-bottom:4px;}
.oc-card b{font-size:1rem;}
.oc-card__txt{color:var(--muted); font-size:.9rem; line-height:1.55;}

.oc-receipt{border:1px solid var(--line); border-radius:var(--r-m); background:var(--card);}
.oc-receipt summary{padding:18px 22px; font-weight:600; list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:14px;}
.oc-receipt summary::-webkit-details-marker{display:none;}
.oc-receipt summary svg.ic{color:var(--muted); transition:transform .2s var(--ease);}
.oc-receipt[open] summary svg.ic{transform:rotate(45deg);}
.oc-receipt > *:not(summary){padding:0 22px 22px;}
.oc-receipt .woocommerce-order-details__title,
.oc-receipt .woocommerce-column__title{font-size:1.05rem; margin:0 0 14px;}

.oc-failed{background:var(--card); border:1px solid var(--line); border-left:4px solid var(--red);
  border-radius:var(--r-l); padding:32px; text-align:center;}
.oc-failed h2{font-size:1.5rem; margin:0 0 10px;}
.oc-failed p{color:var(--muted); margin:0 0 22px;}
.oc-actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}

/* The default thank-you notice is replaced by the header above. */
.woocommerce-order > .woocommerce-notice--success,
.woocommerce-order > ul.order_details{display:none;}

/* ---- Pills on the gallery artwork ---- */
.woocommerce-product-gallery{position:relative;}
.woocommerce-product-gallery__wrapper{position:static;}
.gallery-badges{position:absolute; left:16px; bottom:16px; z-index:4;
  display:flex; gap:8px; flex-wrap:wrap; line-height:1;}
.gallery-badges .badge{backdrop-filter:blur(8px); box-shadow:0 4px 14px -4px rgba(14,14,17,.35);
  font-size:.78rem; padding:.5em 1.05em;}
.gallery-badges .badge-platform{background:rgba(14,14,17,.92); border-color:transparent; color:#fff;}
.gallery-badges .badge-gpl{background:rgba(232,246,237,.95); border-color:transparent; color:#0C6B34;}
.gallery-badges .badge-ver{background:rgba(255,255,255,.94); border-color:transparent; color:var(--ink-soft);}
@media (max-width:520px){ .gallery-badges{left:12px; bottom:12px;} }

/* Guarantees sit directly under the artwork. */
.product-facts{padding-top:4px;}

/* Product title in the buy box. */
.woocommerce div.product .summary-heading .product_title{font-size:1.9rem; line-height:1.22;}
@media (max-width:1200px){
  .woocommerce div.product .summary-heading .product_title{font-size:1.6rem;}
}
