/* OC page blocks — solution / shop / applicator pages */
.ocp{
  --red:#c0392b; --red-dark:#96281b; --gold:#f39c12;
  --ink:#0d0d0d; --ink2:#1a1a1a; --body:#333; --muted:#6b7280; --line:#e7e7e9;
  --wash:#f6f7f8; --wash2:#eef0f2; --rp:50px; --r:16px; --rl:26px;
  --ease:cubic-bezier(.25,.46,.45,.94);
  font-family:'Open Sans',system-ui,sans-serif;color:var(--body);
}
.ocp *,.ocp *::before,.ocp *::after{box-sizing:border-box}
.ocp h1,.ocp h2,.ocp h3,.ocp h4{font-family:'Montserrat',system-ui,sans-serif;color:var(--ink);margin:0;letter-spacing:-.02em}
.ocp p{margin:0 0 1em;line-height:1.75}
.ocp p:last-child{margin-bottom:0}
.ocp-wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.ocp-wrap--narrow{max-width:880px}
.ocp .ocp-eyebrow{display:inline-block;font-family:'Montserrat',sans-serif;font-weight:800;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
html.ocbx-js .ocp [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
html.ocbx-js .ocp [data-reveal].is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.ocbx-js .ocp [data-reveal]{opacity:1!important;transform:none!important;transition:none}}

.ocp .ocp-btn{display:inline-flex;align-items:center;gap:10px;font-family:'Montserrat',sans-serif;font-weight:800;font-size:13px;letter-spacing:.09em;text-transform:uppercase;padding:15px 30px;border-radius:var(--rp);border:2px solid transparent;cursor:pointer;text-decoration:none;transition:all .35s var(--ease);line-height:1}
.ocp .ocp-btn--red{background:linear-gradient(135deg,var(--red),var(--red-dark));color:#fff;box-shadow:0 10px 26px rgba(192,57,43,.3)}
.ocp .ocp-btn--red:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(192,57,43,.44);color:#fff}
.ocp .ocp-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.ocp .ocp-btn--ghost:hover{background:#fff;color:var(--ink)}
.ocp .ocp-btn--outline{background:transparent;color:var(--ink);border-color:var(--ink)}
.ocp .ocp-btn--outline:hover{background:var(--ink);color:#fff}
.ocp .ocp-link{display:inline-flex;align-items:center;gap:8px;font-family:'Montserrat',sans-serif;font-weight:800;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--red);text-decoration:none;margin-top:auto;padding-top:16px}
.ocp .ocp-link:hover{gap:12px}

/* hero */
.ocp-hero{position:relative;padding:calc(var(--oc-headh,90px) + 58px) 0 96px;background:linear-gradient(135deg,#0d0d0d 0%,#1a1a1a 50%,#0d0d0d 100%);color:#fff;overflow:hidden}
.ocp-hero__deco{position:absolute;inset:0;opacity:.85;
  background:radial-gradient(760px 340px at 84% -12%,rgba(192,57,43,.42),transparent 68%),radial-gradient(640px 320px at 4% 116%,rgba(243,156,18,.2),transparent 70%)}
.ocp-hero::after{content:"";position:absolute;inset:0;opacity:.2;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:50px 50px;mask-image:radial-gradient(78% 78% at 50% 40%,#000,transparent)}
.ocp-hero .ocp-wrap{position:relative;z-index:1}
.ocp-hero--center .ocp-wrap{text-align:center}
.ocp .ocp-hero__h{color:#fff;font-size:clamp(32px,5.4vw,60px);font-weight:900;line-height:1.08;margin:0 0 20px;max-width:20ch;text-wrap:balance}
.ocp-hero--center .ocp-hero__h{margin-left:auto;margin-right:auto}
.ocp .ocp-hero__h em{font-style:normal;color:var(--gold)}
.ocp .ocp-hero__sub{color:rgba(255,255,255,.78);font-size:clamp(16px,2vw,19.5px);line-height:1.72;max-width:66ch;margin:0 0 34px}
.ocp-hero--center .ocp-hero__sub{margin-left:auto;margin-right:auto}
.ocp-hero__btns{display:flex;flex-wrap:wrap;gap:14px}
.ocp-hero--center .ocp-hero__btns{justify-content:center}
.ocp-hero__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px;margin-top:52px;padding-top:34px;border-top:1px solid rgba(255,255,255,.14)}
.ocp-hstat b{display:block;font-family:'Montserrat',sans-serif;font-size:clamp(26px,3.4vw,38px);font-weight:900;color:var(--gold);line-height:1}
.ocp-hstat span{display:block;margin-top:8px;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}

/* bands */
.ocp-band{padding:92px 0}
.ocp-band--light{background:#fff}
.ocp-band--wash{background:var(--wash)}
.ocp-band--dark{background:linear-gradient(160deg,#111,#1d1d1d);color:rgba(255,255,255,.78)}
.ocp-band--dark h2,.ocp-band--dark h3,.ocp-band--dark h4{color:#fff}
.ocp-band--dark .ocp-eyebrow{color:var(--gold)}
.ocp-head{max-width:760px;margin:0 0 46px}
.ocp-head--center{margin-left:auto;margin-right:auto;text-align:center}
.ocp .ocp-head h2{font-size:clamp(26px,3.8vw,42px);font-weight:900;line-height:1.16;margin:0 0 16px;text-wrap:balance}
.ocp .ocp-head p{font-size:17px;color:var(--muted);margin:0}
.ocp-band--dark .ocp-head p{color:rgba(255,255,255,.66)}

/* grid + cards */
.ocp-grid{display:grid;gap:26px}
.ocp-grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.ocp-grid--3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.ocp-grid--4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.ocp .ocp-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--rl);padding:32px 30px;margin:0;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s;--ca:#c0392b}
.ocp .ocp-card:hover{transform:translateY(-7px);box-shadow:0 24px 60px rgba(0,0,0,.14);border-color:transparent}
.ocp-band--dark .ocp-card{background:#181818;border-color:#262626;color:rgba(255,255,255,.72)}
.ocp-card__ico{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;background:color-mix(in srgb,var(--ca) 12%,transparent);color:var(--ca);margin-bottom:20px}
.ocp .ocp-card h3{font-size:20px;font-weight:800;line-height:1.32;margin:0 0 12px}
.ocp-card__b{font-size:15.3px;line-height:1.72;color:var(--muted)}
.ocp-band--dark .ocp-card__b{color:rgba(255,255,255,.66)}
.ocp-card__b ul{margin:12px 0 0;padding:0;list-style:none}
.ocp-card__b li{position:relative;padding-left:24px;margin-bottom:7px}
.ocp-card__b li::before{content:"";position:absolute;left:4px;top:.6em;width:7px;height:7px;border-radius:2px;background:var(--ca);transform:rotate(45deg)}
.ocp .ocp-tag{position:absolute;top:-11px;left:30px;background:var(--gold);color:var(--ink);font-family:'Montserrat',sans-serif;font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;padding:6px 13px;border-radius:var(--rp)}

/* stats */
.ocp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px}
.ocp-stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 22px;text-align:center}
.ocp-stats--dark .ocp-stat{background:#181818;border-color:#262626}
.ocp-stat b{display:block;font-family:'Montserrat',sans-serif;font-size:clamp(28px,4vw,40px);font-weight:900;color:var(--red);line-height:1}
.ocp-stats--dark .ocp-stat b{color:var(--gold)}
.ocp-stat span{display:block;margin-top:9px;font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}

/* steps */
.ocp-steps{counter-reset:ocps;list-style:none;margin:0;padding:0;display:grid;gap:18px}
.ocp .ocp-step{position:relative;counter-increment:ocps;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 28px 26px 84px;margin:0}
.ocp .ocp-step::before{content:counter(ocps);position:absolute;left:26px;top:26px;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--ink);color:#fff;font-family:'Montserrat',sans-serif;font-weight:900;font-size:16px}
.ocp .ocp-step h4{font-size:17.5px;font-weight:800;margin:0 0 8px}
.ocp-step div{font-size:15.2px;color:var(--muted);line-height:1.72}

/* faq */
.ocp-faq{display:grid;gap:12px;max-width:900px;margin:0 auto}
.ocp .ocp-q{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .3s,box-shadow .3s}
.ocp .ocp-q[open]{border-color:var(--red);box-shadow:0 12px 34px rgba(0,0,0,.07)}
.ocp .ocp-q summary{display:flex;align-items:center;gap:16px;padding:22px 26px;cursor:pointer;font-family:'Montserrat',sans-serif;font-weight:700;font-size:16.5px;color:var(--ink);list-style:none}
.ocp .ocp-q summary::-webkit-details-marker{display:none}
.ocp .ocp-q summary span{flex:1}
.ocp .ocp-q summary i{flex:none;position:relative;width:26px;height:26px;border-radius:50%;background:var(--wash2);transition:.3s}
.ocp .ocp-q summary i::before,.ocp .ocp-q summary i::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:2px;background:var(--ink);transform:translate(-50%,-50%);transition:.3s}
.ocp .ocp-q summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.ocp .ocp-q[open] summary i{background:var(--red)}
.ocp .ocp-q[open] summary i::before,.ocp .ocp-q[open] summary i::after{background:#fff}
.ocp .ocp-q[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.ocp-q__a{padding:0 26px 24px;font-size:15.4px;line-height:1.78;color:var(--muted)}

/* tabs */
.ocp-tabs__nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.ocp .ocp-tabs__nav button{border:1px solid var(--line);background:#fff;border-radius:var(--rp);padding:12px 22px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:13.5px;color:var(--body);cursor:pointer;transition:.3s}
.ocp .ocp-tabs__nav button:hover{border-color:var(--ink)}
.ocp .ocp-tabs__nav button.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.ocp-tabs__p{animation:ocpfade .45s var(--ease)}
@keyframes ocpfade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* checklist */
.ocp .ocp-check{background:#fff;border:1px solid var(--line);border-radius:var(--rl);padding:28px 30px}
.ocp-check__top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.ocp .ocp-check h4{font-size:18px;font-weight:800;flex:1}
.ocp-check__n{font-family:'Montserrat',sans-serif;font-weight:800;font-size:14px;color:var(--muted)}
.ocp-check__n b{color:var(--red)}
.ocp-check__bar{height:6px;border-radius:3px;background:var(--wash2);overflow:hidden;margin-bottom:20px}
.ocp-check__bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--red),var(--gold));transition:width .45s var(--ease)}
.ocp .ocp-check ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ocp .ocp-check li{margin:0}
.ocp .ocp-check label{display:flex;align-items:flex-start;gap:14px;padding:11px 12px;border-radius:11px;cursor:pointer;transition:background .25s;font-size:15.2px;line-height:1.6}
.ocp .ocp-check label:hover{background:var(--wash)}
.ocp .ocp-check input{position:absolute;opacity:0;width:0;height:0}
.ocp-check__box{flex:none;display:grid;place-items:center;width:23px;height:23px;margin-top:1px;border:2px solid var(--line);border-radius:7px;color:transparent;transition:.25s}
.ocp .ocp-check input:checked+.ocp-check__box{background:var(--red);border-color:var(--red);color:#fff}
.ocp .ocp-check input:focus-visible+.ocp-check__box{outline:2px solid var(--red);outline-offset:2px}
.ocp .ocp-check input:checked~.ocp-check__t{color:var(--muted);text-decoration:line-through}
.ocp .ocp-check__reset{margin-top:16px;border:0;background:none;color:var(--muted);font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:0}
.ocp .ocp-check__reset:hover{color:var(--red)}

/* table */
.ocp .ocp-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.ocp .ocp-table{width:100%;border-collapse:collapse;font-size:15px;margin:0}
.ocp .ocp-table th{background:var(--ink);color:#fff;font-family:'Montserrat',sans-serif;font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:15px 18px;text-align:left}
.ocp .ocp-table td{padding:14px 18px;border-top:1px solid var(--line);vertical-align:top}
.ocp .ocp-table tbody tr:nth-child(even){background:var(--wash)}
.ocp .ocp-table td:first-child{font-weight:600;color:var(--ink)}
.ocp .ocp-yes{color:#16a085;font-size:19px;font-weight:800}
.ocp .ocp-no{color:#c0392b;font-size:19px;font-weight:800}
.ocp .ocp-cap{font-size:13px;color:var(--muted);margin-top:12px;text-align:center}

/* calculators */
.ocp .ocp-calc{background:#fff;border:1px solid var(--line);border-radius:var(--rl);padding:32px 34px;box-shadow:0 14px 44px rgba(0,0,0,.07)}
.ocp-band--dark .ocp-calc{background:#151515;border-color:#282828}
.ocp-calc__head{display:flex;gap:18px;align-items:flex-start;margin-bottom:26px}
.ocp-calc__ico{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg,var(--red),var(--red-dark));color:#fff}
.ocp .ocp-calc h3{font-size:21px;font-weight:800;margin:0 0 6px}
.ocp-calc__head p{font-size:14.5px;color:var(--muted);margin:0;line-height:1.65}
.ocp-calc__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.ocp .ocp-calc label{display:flex;flex-direction:column;gap:7px;font-family:'Montserrat',sans-serif;font-size:12.5px;font-weight:700;color:var(--ink)}
.ocp-band--dark .ocp-calc label{color:#fff}
.ocp .ocp-calc label i{font-style:normal;font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ocp .ocp-calc input[type=number]{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 15px;font-family:inherit;font-size:16px;color:var(--ink);background:#fff;transition:.25s}
.ocp .ocp-calc input[type=number]:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 4px rgba(192,57,43,.1)}
.ocp-calc__out{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:26px;padding-top:26px;border-top:1px dashed var(--line)}
.ocp-out{background:var(--wash);border-radius:13px;padding:16px 18px}
.ocp-band--dark .ocp-out{background:#1e1e1e}
.ocp-out span{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.ocp-out b{font-family:'Montserrat',sans-serif;font-size:22px;font-weight:900;color:var(--ink)}
.ocp-band--dark .ocp-out b{color:#fff}
.ocp .ocp-calc__verdict{margin:20px 0 0;padding:16px 20px;border-radius:13px;font-weight:600;font-size:15px;display:none}
.ocp .ocp-calc__verdict.is-ok{display:block;background:rgba(22,160,133,.1);color:#0e6655;border-left:4px solid #16a085}
.ocp .ocp-calc__verdict.is-bad{display:block;background:rgba(192,57,43,.09);color:#96281b;border-left:4px solid var(--red)}
.ocp .ocp-calc__note{font-size:12.8px;color:var(--muted);margin:18px 0 0;line-height:1.65}
.ocp-hint{border-bottom:1px dotted var(--red);cursor:help}

/* quiz */
.ocp-quiz{position:relative}
.ocp-quiz__step{display:none}
.ocp-quiz__step.is-on{display:block;animation:ocpfade .4s var(--ease)}
.ocp .ocp-quiz__q{font-family:'Montserrat',sans-serif;font-size:19px;font-weight:700;line-height:1.5;color:var(--ink);margin:0 0 22px}
.ocp-band--dark .ocp-quiz__q{color:#fff}
.ocp-quiz__btns{display:flex;flex-wrap:wrap;gap:12px}
.ocp .ocp-quiz__btns button{border:2px solid var(--line);background:#fff;border-radius:var(--rp);padding:14px 34px;font-family:'Montserrat',sans-serif;font-weight:800;font-size:13.5px;letter-spacing:.06em;color:var(--ink);cursor:pointer;transition:.3s var(--ease)}
.ocp .ocp-quiz__btns button:hover{border-color:var(--red);background:var(--red);color:#fff;transform:translateY(-2px)}
.ocp-quiz__result{animation:ocpfade .45s var(--ease)}
.ocp-quiz__badge{display:inline-block;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;padding:7px 15px;border-radius:var(--rp);margin-bottom:16px;background:var(--wash2);color:var(--ink)}
.ocp-quiz__badge.is-yes{background:var(--red);color:#fff}
.ocp-quiz__badge.is-no{background:#16a085;color:#fff}
.ocp .ocp-quiz__result h4{font-size:24px;font-weight:900;margin:0 0 12px}
.ocp-quiz__result p{font-size:16px;line-height:1.75;color:var(--muted);margin:0 0 24px}
.ocp-quiz__acts{display:flex;flex-wrap:wrap;gap:12px}
.ocp-quiz__dots{display:flex;gap:7px;margin-top:26px}
.ocp-quiz__dots i{width:26px;height:4px;border-radius:2px;background:var(--wash2);transition:.3s}
.ocp-quiz__dots i.is-on{background:var(--red)}

/* products */
.ocp .ocp-prod{display:grid;grid-template-columns:300px 1fr;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--rl);overflow:hidden;margin:0 0 26px;transition:box-shadow .4s var(--ease)}
.ocp .ocp-prod:hover{box-shadow:0 26px 64px rgba(0,0,0,.13)}
.ocp-prod__vis{position:relative;display:grid;place-items:center;background:linear-gradient(140deg,var(--ink),#242424);color:rgba(255,255,255,.4);min-height:230px}
.ocp-prod__vis::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:34px 34px}
.ocp .ocp-prod__tag{position:absolute;top:18px;left:18px;background:var(--gold);color:var(--ink);font-family:'Montserrat',sans-serif;font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;padding:6px 13px;border-radius:var(--rp);z-index:1}
.ocp-prod__body{padding:32px 34px}
.ocp .ocp-prod h3{font-size:23px;font-weight:900;margin:0 0 12px}
.ocp-prod__desc{font-size:15.4px;color:var(--muted);line-height:1.72}
.ocp-prod__specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:22px 0 0;padding:20px 0 0;border-top:1px dashed var(--line)}
.ocp-prod__specs div{margin:0}
.ocp-prod__specs dt{font-size:10.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.ocp-prod__specs dd{margin:0;font-family:'Montserrat',sans-serif;font-size:15px;font-weight:700;color:var(--ink)}
.ocp-prod__foot{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.ocp-prod__price{font-family:'Montserrat',sans-serif;font-size:30px;font-weight:900;color:var(--red);margin-right:auto}
@media(max-width:820px){.ocp .ocp-prod{grid-template-columns:1fr}.ocp-prod__vis{min-height:150px}.ocp-prod__body{padding:26px 22px}}

@media(max-width:820px){
  .ocp-hero{padding:calc(var(--oc-headh,90px) + 36px) 0 66px}
  .ocp-band{padding:64px 0}
  .ocp .ocp-calc{padding:24px 20px}
  .ocp .ocp-card{padding:26px 22px}
  .ocp .ocp-step{padding:22px 22px 22px 74px}
  .ocp .ocp-step::before{left:20px;top:22px}
}

/* full-bleed hero sits flush under the site header on page templates */
.ocbx-page__body > p:empty{display:none}

.ocbx-page__body > .ocbx-cta:last-child,
.ocbx-page__body > .ocp:last-child{margin-bottom:-10px}


/* ---- late overrides ---- */
.ocp .ocp-band--dark .ocp-head p{color:rgba(255,255,255,.68)}
.ocp .ocp-band--dark .ocp-eyebrow{color:var(--gold)}
.ocp .ocp-band--dark .ocp-card__b{color:rgba(255,255,255,.68)}

/* safety net: never let a stray autop artefact take a grid cell */
.ocp .ocp-grid > p:empty,.ocp .ocp-grid > br,
.ocp .ocp-steps > p:empty,.ocp .ocp-steps > br,
.ocp .ocp-faq > p:empty,.ocp .ocp-faq > br,
.ocp .ocp-check ul > p:empty{display:none!important}
