:root {
  --cryc-bg: #f6f8fc;
  --cryc-panel: rgba(255,255,255,.88);
  --cryc-strong: #ffffff;
  --cryc-text: #111827;
  --cryc-muted: #526071;
  --cryc-border: rgba(148,163,184,.28);
  --cryc-primary: #0d6efd;
  --cryc-soft: rgba(13,110,253,.1);
  --cryc-shadow: 0 1.1rem 3rem rgba(15,23,42,.08);
}
html[data-bs-theme="dark"] {
  --cryc-bg: #07111f;
  --cryc-panel: rgba(15,23,42,.82);
  --cryc-strong: #0b1220;
  --cryc-text: #eef6ff;
  --cryc-muted: #aab7c8;
  --cryc-border: rgba(148,163,184,.18);
  --cryc-primary: #67b7ff;
  --cryc-soft: rgba(103,183,255,.14);
  --cryc-shadow: 0 1.5rem 3rem rgba(0,0,0,.28);
}
body { background: radial-gradient(circle at 15% 8%, rgba(13,110,253,.13), transparent 25rem), var(--cryc-bg); color: var(--cryc-text); }
.cry-public-page-hero { padding: 3.5rem 0 2.3rem; background: linear-gradient(135deg, rgba(2,6,23,.96), rgba(15,42,83,.94)); color: #fff; }
.cry-public-page-hero .cry-kicker { color: #8ed8ff; max-width: 800px; }
.cry-public-breadcrumb { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem; font-size:.92rem; opacity:.85; }
.cry-public-breadcrumb a { color:#dff3ff; text-decoration:none; }
.cry-seo-title {
    font-weight: 700;
    letter-spacing: -.065em;
    font-size: clamp(3rem, 6vw, 7.8rem);
    line-height: .9;
    margin: .8rem 0 1.2rem;
}
.cry-public-lead { max-width: 760px; color: rgba(255,255,255,.82); font-size: clamp(1.05rem, 1.6vw, 1.22rem); line-height:1.65; }
.cry-public-badges { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.2rem; }
.cry-public-badges span { display:inline-flex; align-items:center; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.08); border-radius:999px; padding:.7rem 1rem; font-size:.82rem; font-weight:800; letter-spacing:.04em; }
.cry-visual-card { background: rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); border-radius:1.5rem; padding:1rem; box-shadow: var(--cryc-shadow); }
.cry-visual-card img { width:100%; height:auto; display:block; border-radius:1rem; object-fit:contain; max-height:430px; background:#fff; }
.cry-public-section { padding: 2.4rem 0; }
.cry-public-panel { background: var(--cryc-panel); color: var(--cryc-text); border:1px solid var(--cryc-border); border-radius:1.35rem; padding:1.45rem; box-shadow: var(--cryc-shadow); }
.cry-public-panel h2 { letter-spacing:-.045em; font-size:clamp(1.45rem,2.3vw,2.25rem); margin-bottom:.9rem; }
.cry-public-panel p { color: var(--cryc-muted); line-height:1.68; }
.cry-public-panel-compact { padding:1.1rem 1.25rem; }
.cry-feature-grid, .cry-spec-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:.75rem; }
.cry-feature-grid span, .cry-feature-grid a, .cry-spec-grid div { border:1px solid var(--cryc-border); border-radius:1rem; background: color-mix(in srgb, var(--cryc-strong) 80%, transparent); padding:.85rem .9rem; text-decoration:none; color:var(--cryc-text); }
.cry-spec-grid strong { display:block; color:var(--cryc-primary); font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; margin-bottom:.35rem; }
.cry-spec-grid span { color:var(--cryc-muted); line-height:1.45; }
.cry-store-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding:1rem 1.2rem; border:1px solid var(--cryc-border); border-radius:1.1rem; background:var(--cryc-panel); margin-bottom:1rem; }
.cry-store-toolbar span { color:var(--cryc-muted); }
.cry-product-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:1rem; }
.cry-product-grid-small { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.cry-product-card { overflow:hidden; border:1px solid var(--cryc-border); border-radius:1.25rem; background:var(--cryc-panel); box-shadow:var(--cryc-shadow); display:flex; flex-direction:column; min-height:100%; }
.cry-product-card-software { grid-column: span 2; }
.cry-product-media { min-height:220px; display:grid; place-items:center; background: color-mix(in srgb, var(--cryc-strong) 78%, transparent); }
.cry-product-media img { width:100%; height:230px; object-fit:contain; padding:1rem; }
.cry-product-body { padding:1.15rem; display:flex; flex-direction:column; gap:.65rem; flex:1; }
.cry-product-body small, .cry-modal-model { color:var(--cryc-primary); text-transform:uppercase; letter-spacing:.14em; font-weight:800; font-size:.72rem; }
.cry-product-body h2 { font-size:1.15rem; margin:0; letter-spacing:-.025em; }
.cry-product-body p { color:var(--cryc-muted); line-height:1.56; margin:0; }
.cry-product-modal .modal-content { background:var(--cryc-strong); color:var(--cryc-text); border:1px solid var(--cryc-border); border-radius:1.25rem; }
.cry-product-image { width:100%; max-height:440px; object-fit:contain; background:#fff; border-radius:1rem; border:1px solid var(--cryc-border); }
.cry-official-copy p { margin-bottom:.75rem; color:var(--cryc-muted); }
.cry-commerce-float { position:fixed; right:1rem; bottom:1rem; z-index:1050; width:3.5rem; height:3.5rem; border-radius:50%; display:grid; place-items:center; color:#fff; background:#25d366; box-shadow:0 1rem 2rem rgba(0,0,0,.25); font-size:1.55rem; text-decoration:none; }
html[data-bs-theme="dark"] .form-control { background:#0f172a; border-color:var(--cryc-border); color:var(--cryc-text); }
@media (max-width: 991.98px) { .cry-product-card-software { grid-column: span 1; } .cry-seo-title { font-size:clamp(2.35rem, 11vw, 4.6rem); } }
@media (max-width: 576px) { .cry-public-page-hero { padding-top:2rem; } .cry-public-badges span { border-radius:1rem; } }




.cry-product-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
    gap: .85rem;
}
.cry-product-gallery figure {
    margin: 0;
    border: 1px solid var(--cry-public-border, rgba(148,163,184,.22));
    border-radius: 1rem;
    background: var(--cry-public-card, rgba(15,23,42,.76));
    min-height: 150px;
    display: grid;
    place-items: center;
    padding: .8rem;
    overflow: hidden;
}
.cry-product-gallery img,
.cry-section-product-image {
    width: 100%;
    height: auto;
    max-height: 230px;
    object-fit: contain;
    display: block;
}
.cry-section-product-image {
    border-radius: .9rem;
    background: rgba(255,255,255,.04);
    padding: .75rem;
}
.cry-product-bullets {
    margin: 1rem 0 0;
    padding-left: 1.1rem;
}
.cry-product-bullets li {
    margin-bottom: .4rem;
}
html[data-bs-theme="light"] .cry-product-gallery figure,
html[data-bs-theme="light"] .cry-section-product-image {
    background: rgba(248,250,252,.96);
}


/* Produto: imagem por seção técnica + ampliação ao clique. */
.cry-product-zoom {
    display: block;
    position: relative;
    border-radius: 1rem;
    overflow: hidden;
    background: rgba(255,255,255,.04);
    text-decoration: none;
    cursor: zoom-in;
}
.cry-product-zoom::after {
    content: "⌕";
    position: absolute;
    right: .75rem;
    bottom: .75rem;
    width: 2rem;
    height: 2rem;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(15,23,42,.78);
    color: #fff;
    font-size: 1.05rem;
    opacity: 0;
    transform: translateY(.2rem);
    transition: opacity .18s ease, transform .18s ease;
}
.cry-product-zoom:hover::after,
.cry-product-zoom:focus::after {
    opacity: 1;
    transform: translateY(0);
}
.cry-product-zoom img {
    transition: transform .2s ease;
}
.cry-product-zoom:hover img,
.cry-product-zoom:focus img {
    transform: scale(1.02);
}
.cry-product-lightbox {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: clamp(1rem, 4vw, 3rem);
    background: rgba(2,6,23,.88);
    backdrop-filter: blur(8px);
}
.cry-product-lightbox.is-open {
    display: flex;
}
.cry-product-lightbox-frame {
    margin: 0;
    max-width: min(1120px, 96vw);
    max-height: 92vh;
    display: grid;
    gap: .85rem;
    color: #fff;
    text-align: center;
}
.cry-product-lightbox-frame img {
    max-width: 100%;
    max-height: calc(92vh - 4rem);
    object-fit: contain;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 24px 80px rgba(0,0,0,.45);
}
.cry-product-lightbox-frame figcaption {
    font-size: .95rem;
    color: rgba(255,255,255,.86);
}
.cry-product-lightbox-close {
    position: fixed;
    top: 1rem;
    right: 1rem;
    width: 2.8rem;
    height: 2.8rem;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}
.cry-product-lightbox-open body {
    overflow: hidden;
}
