/* CannaCompare visual foundation. Feature styles consume these semantic tokens. */
:root{
 --cc-font-body:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--cc-font-display:Georgia,"Times New Roman",serif;
 --cc-text-xs:.75rem;--cc-text-sm:.875rem;--cc-text-base:1rem;--cc-text-lg:1.125rem;--cc-text-title:clamp(2.25rem,5vw,3.5rem);--cc-leading:1.6;
 --cc-space-1:.25rem;--cc-space-2:.5rem;--cc-space-3:.75rem;--cc-space-4:1rem;--cc-space-5:1.25rem;--cc-space-6:1.5rem;--cc-space-7:2rem;--cc-space-8:2.5rem;--cc-space-9:3rem;--cc-space-10:4rem;
 --cc-canvas:#f6f7f1;--cc-surface:#ffffff;--cc-raised:#edf1e7;--cc-text:#173c31;--cc-muted:#54665d;--cc-subtle:#63746a;--cc-border:#cfd9cb;--cc-control-border:#7c9182;--cc-accent:#28573d;--cc-on-accent:#ffffff;--cc-accent-soft:#e6edd7;--cc-focus:#326849;
 --cc-success:#20543b;--cc-success-soft:#e6f3e9;--cc-warning:#81501a;--cc-warning-soft:#fff2d9;--cc-danger:#9c332d;--cc-danger-soft:#fff0ec;
 --cc-radius-sm:6px;--cc-radius-md:12px;--cc-radius-lg:18px;--cc-radius-pill:999px;--cc-shadow-sm:0 2px 8px #173c3108,0 10px 30px #173c3105;--cc-shadow-md:0 8px 24px #173c3112,0 24px 60px #173c310d;
 --cc-container:1280px;--cc-reading:76ch;--cc-control-height:44px;--cc-duration:150ms;
 /* Compatibility aliases until each feature adopts semantic tokens. */
 --font-body:var(--cc-font-body);--serif:var(--cc-font-display);--green:var(--cc-accent);--ink:var(--cc-text);--muted:var(--cc-muted);--paper:var(--cc-canvas);--panel:var(--cc-surface);--line:var(--cc-border);--accent:var(--cc-accent);--lime:var(--cc-accent-soft);--radius:var(--cc-radius-md);
 color-scheme:light;
}
@media screen{:root:not([data-theme="light"]){--cc-canvas:#10231b;--cc-surface:#183126;--cc-raised:#213b2d;--cc-text:#f0f4e7;--cc-muted:#b0c2b2;--cc-subtle:#a2b6a5;--cc-border:#3b5846;--cc-control-border:#779780;--cc-accent:#c3d69c;--cc-on-accent:#14271b;--cc-accent-soft:#2a422e;--cc-focus:#d1e9a5;--cc-success:#b4e2bc;--cc-success-soft:#234331;--cc-warning:#f3d0a0;--cc-warning-soft:#3b3020;--cc-danger:#ffb9ab;--cc-danger-soft:#432923;--cc-shadow-sm:0 2px 12px #0002;--cc-shadow-md:0 12px 40px #0005;color-scheme:dark}}
body{font-family:var(--cc-font-body);font-size:var(--cc-text-base);line-height:var(--cc-leading);color:var(--cc-text);background:var(--cc-canvas)}
button,input,select,textarea{font-family:var(--cc-font-body)}
:focus-visible{outline:3px solid var(--cc-focus);outline-offset:3px}
:where(button,a,input,select,textarea,summary){-webkit-tap-highlight-color:transparent}
:where(button,[role=button],summary){touch-action:manipulation}
:where(button,input,select,textarea)[disabled],:where(button,input,select,textarea):disabled{cursor:not-allowed}
:where(input,select,textarea)[aria-invalid=true]{border-color:var(--cc-danger)}
.cc-icon{display:inline-block;flex:none;vertical-align:-.2em;width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.cc-icon-lg{width:1.75rem;height:1.75rem}.cc-icon-sm{width:1rem;height:1rem}
.cc-icon-tile{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:var(--cc-radius-md);background:var(--cc-accent-soft);color:var(--cc-accent)}
.cc-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--cc-space-2);min-height:var(--cc-control-height);padding:.65rem 1rem;border:1px solid var(--cc-accent);border-radius:var(--cc-radius-sm);background:var(--cc-accent);color:var(--cc-on-accent);font:600 var(--cc-text-sm)/1.4 var(--cc-font-body);text-decoration:none;cursor:pointer;transition:background var(--cc-duration),box-shadow var(--cc-duration),border-color var(--cc-duration)}
.cc-button-secondary{color:var(--cc-text);background:var(--cc-surface);border-color:var(--cc-border)}.cc-button-quiet{color:var(--cc-text);background:transparent;border-color:transparent}.cc-button:disabled,.cc-button[aria-disabled=true]{opacity:.5;pointer-events:none;cursor:not-allowed}
.cc-button[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--cc-accent);background:var(--cc-accent-soft);color:var(--cc-text)}
.cc-field{display:grid;gap:var(--cc-space-2);min-width:0;font-size:var(--cc-text-sm);font-weight:600}.cc-field input,.cc-field select,.cc-field textarea,.cc-input{width:100%;min-width:0;min-height:var(--cc-control-height);padding:.65rem .8rem;border:1px solid var(--cc-control-border);border-radius:var(--cc-radius-sm);background:var(--cc-surface);color:var(--cc-text);font:400 var(--cc-text-base)/1.5 var(--cc-font-body)}
.cc-field input::placeholder,.cc-field textarea::placeholder{color:var(--cc-subtle);opacity:1}.cc-field input:disabled{background:var(--cc-raised);color:var(--cc-muted)}.cc-help{margin:0;color:var(--cc-muted);font-size:var(--cc-text-sm);line-height:1.55;font-weight:400}.cc-error{display:flex;gap:var(--cc-space-2);align-items:flex-start;color:var(--cc-danger);font-size:var(--cc-text-sm);font-weight:500;margin:.25rem 0 0}
.cc-card{min-width:0;padding:var(--cc-space-6);background:var(--cc-surface);border:1px solid var(--cc-border);border-radius:var(--cc-radius-md);box-shadow:var(--cc-shadow-sm)}.cc-card h2,.cc-card h3{margin:0;font-size:1.25rem;line-height:1.3;letter-spacing:-.025em}.cc-card p{font-size:var(--cc-text-sm);line-height:1.65}.cc-card-link{color:inherit;text-decoration:none;transition:border-color var(--cc-duration),box-shadow var(--cc-duration)}
.cc-badge{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;padding:.3rem .6rem;border-radius:var(--cc-radius-pill);background:var(--cc-raised);color:var(--cc-text);font-size:var(--cc-text-sm);font-weight:550;line-height:1.4}.cc-badge .cc-icon{width:1rem;height:1rem}.cc-badge-success{background:var(--cc-success-soft);color:var(--cc-success)}.cc-badge-warning{background:var(--cc-warning-soft);color:var(--cc-warning)}.cc-badge-danger{background:var(--cc-danger-soft);color:var(--cc-danger)}
.cc-disclosure{border-top:1px solid var(--cc-border);padding:var(--cc-space-4) 0;font-size:var(--cc-text-sm)}.cc-disclosure summary{display:flex;align-items:center;gap:.6rem;cursor:pointer;font-weight:600;list-style:none;min-height:32px}.cc-disclosure summary::-webkit-details-marker{display:none}.cc-disclosure summary .cc-icon:last-child{margin-left:auto;transition:transform var(--cc-duration)}.cc-disclosure[open] summary .cc-icon:last-child{transform:rotate(180deg)}.cc-disclosure>div{padding-top:var(--cc-space-3)}
.cc-data-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,1.4fr);gap:var(--cc-space-4);padding:.8rem 0;border-bottom:1px solid var(--cc-border);font-size:var(--cc-text-sm);line-height:1.55}.cc-data-row>:first-child{color:var(--cc-muted)}.cc-data-row>:last-child{margin:0;font-weight:550;overflow-wrap:anywhere}.cc-number{font-variant-numeric:tabular-nums}.cc-price{font-size:2rem;font-weight:700;letter-spacing:-.055em;line-height:1.2;font-variant-numeric:tabular-nums}.cc-section-title{font:400 1.75rem/1.2 var(--cc-font-display);letter-spacing:-.03em}.cc-stack{display:grid;gap:var(--cc-space-5)}.cc-cluster{display:flex;align-items:center;flex-wrap:wrap;gap:var(--cc-space-3)}.cc-divider{border:0;border-top:1px solid var(--cc-border);margin:var(--cc-space-5) 0}
@media(hover:hover){.cc-button:hover:not(:disabled){box-shadow:0 0 0 3px var(--cc-accent-soft);filter:brightness(.96)}.cc-button-secondary:hover,.cc-button-quiet:hover{background:var(--cc-raised);border-color:var(--cc-accent)}.cc-card-link:hover{border-color:var(--cc-accent);box-shadow:var(--cc-shadow-md)}}
@media(max-width:430px){.cc-card{padding:var(--cc-space-5)}.cc-data-row{grid-template-columns:minmax(90px,.9fr) minmax(0,1.2fr);gap:var(--cc-space-3)}}
@media(prefers-reduced-motion:reduce){:root{--cc-duration:0ms}*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Review-only component specimen; no production route is generated. */
.cc-demo{max-width:var(--cc-container);margin:auto;padding:var(--cc-space-7)}.cc-demo h1{font:400 var(--cc-text-title)/1.08 var(--cc-font-display);letter-spacing:-.04em;margin:0 0 1rem}.cc-demo-header{max-width:var(--cc-reading);margin-bottom:2rem}.cc-demo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.cc-demo-media{display:grid;place-items:center;min-height:120px;border-radius:var(--cc-radius-sm);background:var(--cc-raised);margin-bottom:1.25rem}.cc-demo-media .cc-icon{width:64px;height:64px;color:var(--cc-accent)}.cc-demo-section{margin-top:2rem}.cc-demo-icons{display:flex;flex-wrap:wrap;gap:1rem}.cc-demo-icon{display:grid;justify-items:center;gap:.5rem;font-size:var(--cc-text-sm);min-width:110px}.cc-demo-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media(max-width:900px){.cc-demo-grid{grid-template-columns:1fr}.cc-demo{padding:1.25rem}.cc-demo-inputs{grid-template-columns:1fr}}

.cc-field input[aria-invalid=true],.cc-field select[aria-invalid=true],.cc-field textarea[aria-invalid=true],.cc-input[aria-invalid=true]{border-color:var(--cc-danger)}

/* The optional footer switch stays absent until its behavior is ready. */
.cc-theme-toggle{min-height:44px;max-width:100%;white-space:normal;text-align:center}.cc-theme-toggle[hidden]{display:none}

/* Exact listing and reviewed homepage affiliate CTAs remain separate actions. */
.canna-commerce-links{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px;max-width:100%;margin-block:8px;min-width:0}
.canna-commerce-links>a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:0;max-width:100%;margin:0;padding:10px 14px;border:1px solid var(--cc-control-border);border-radius:var(--cc-radius-sm);font-size:14px;line-height:1.5;text-align:center;white-space:normal;overflow-wrap:anywhere}
.canna-commerce-links>a:focus-visible{outline:3px solid var(--cc-focus);outline-offset:3px}
@media(max-width:700px){.canna-commerce-links{flex-direction:column}.canna-commerce-links>a{width:100%}}

/* Brand record-link rules must not shrink the paired shopping targets. */
.profile-product .record-links .canna-commerce-links>a{min-height:44px}
