/**
 * KiwiSheets Theme Custom Styles
 */

/* WordPress Core Alignment */
.alignwide { max-width: 1200px; margin-left: auto; margin-right: auto; }
.alignfull { width: 100%; max-width: 100%; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignleft { float: left; margin-right: 1.5rem; }
.alignright { float: right; margin-left: 1.5rem; }

/* WordPress Navigation */
.nav-links { display: flex; justify-content: center; gap: 0.5rem; flex-wrap: wrap; }
.nav-links a, .nav-links span { padding: 0.5rem 1rem; border: 1px solid #e5e7eb; border-radius: 0.5rem; }
.nav-links .current { background: #00857C; color: white; border-color: #00857C; }
.nav-links a:hover { background: #f9fafb; }

/* Custom Logo */
.custom-logo-link { display: flex; align-items: center; }
.custom-logo { max-height: 40px; width: auto; }

/* Navigation Menu Items */
.menu-item a { color: #374151; font-weight: 500; transition: color 0.15s; }
.menu-item a:hover { color: #00857C; }
.current-menu-item a { color: #00857C; }

/* Widget Styles */
.widget { margin-bottom: 2rem; }
.widget-title { font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 1rem; color: white; }
.widget ul { list-style: none; padding: 0; margin: 0; }
.widget ul li { margin-bottom: 0.5rem; }
.widget ul li a { color: #9ca3af; transition: color 0.15s; }
.widget ul li a:hover { color: white; }


/* Download Button Animation */
.download-btn { position: relative; overflow: hidden; }
.download-btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}
.download-btn:active::after { width: 200px; height: 200px; }

/* Mobile Menu */
#mobile-menu.active { display: block; }

/* Cookie Banner Animation */
#cookie-banner.show { display: block; animation: slideUp 0.3s ease; }
@keyframes slideUp {
    from { transform: translateY(100%); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

/* Skeleton Loading */
.skeleton {
    background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
}
@keyframes skeleton-loading {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Scroll to Top Button */
#scroll-to-top {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    width: 3rem;
    height: 3rem;
    background: #00857C;
    color: white;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    transition: all 0.3s;
    z-index: 40;
}
#scroll-to-top:hover { background: #00665f; transform: translateY(-2px); }
#scroll-to-top.show { display: flex; }

/* Print Styles */
@media print {
    header, footer, .download-btn, #cookie-banner, #scroll-to-top { display: none !important; }
    body { font-size: 12pt; }
    a[href]::after { content: " (" attr(href) ")"; font-size: 10pt; }
}

/* Focus Visible for Accessibility */
:focus-visible {
    outline: 2px solid #00857C;
    outline-offset: 2px;
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* =====================================================
   EXCEL MOCKUP STYLES
   ===================================================== */

.excel-mockup-container {
    position: relative;
    transform: perspective(1000px) rotateY(-5deg) rotateX(2deg);
    transition: transform 0.3s ease;
}

.excel-mockup-container:hover {
    transform: perspective(1000px) rotateY(-2deg) rotateX(1deg);
}

.excel-window {
    background: #f3f3f3;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.4);
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    font-size: 11px;
}

/* Title Bar */
.excel-titlebar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: linear-gradient(180deg, #217346 0%, #1a5c38 100%);
    padding: 6px 12px;
    color: white;
}

.excel-titlebar-left {
    display: flex;
    align-items: center;
    gap: 8px;
}

.excel-icon {
    width: 18px;
    height: 18px;
}

.excel-filename {
    font-size: 12px;
    font-weight: 500;
    opacity: 0.95;
}

.excel-titlebar-buttons {
    display: flex;
    gap: 8px;
}

.excel-btn {
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.excel-btn.minimize { background: #f5c242; }
.excel-btn.maximize { background: #3dc04f; }
.excel-btn.close { background: #ed594a; }

/* Ribbon */
.excel-ribbon {
    background: #217346;
    padding: 4px 12px;
    border-bottom: 1px solid #1a5c38;
}

.excel-ribbon-tabs {
    display: flex;
    gap: 16px;
    color: white;
    font-size: 11px;
}

.excel-ribbon-tabs span {
    padding: 4px 0;
    opacity: 0.7;
    cursor: pointer;
}

.excel-ribbon-tabs span.active {
    opacity: 1;
    border-bottom: 2px solid white;
}

/* Formula Bar */
.excel-formula-bar {
    display: flex;
    align-items: center;
    background: white;
    border-bottom: 1px solid #d6d6d6;
    padding: 4px 8px;
    gap: 8px;
}

.excel-cell-ref {
    min-width: 50px;
    padding: 2px 6px;
    background: #f5f5f5;
    border: 1px solid #d6d6d6;
    font-size: 10px;
    text-align: center;
}

.excel-fx {
    color: #666;
    font-style: italic;
    font-size: 10px;
}

.excel-formula-input {
    flex: 1;
    padding: 2px 6px;
    background: white;
    border: 1px solid #d6d6d6;
    font-size: 10px;
    color: #333;
    min-height: 18px;
}

/* Spreadsheet Grid */
.excel-sheet-area {
    background: white;
    overflow: hidden;
}

.excel-grid {
    display: grid;
    grid-template-columns: 30px repeat(5, 1fr);
    border: 1px solid #d6d6d6;
}

.excel-corner {
    background: #f5f5f5;
    border-right: 1px solid #c0c0c0;
    border-bottom: 1px solid #c0c0c0;
}

.excel-col-header {
    background: #f5f5f5;
    border-right: 1px solid #c0c0c0;
    border-bottom: 1px solid #c0c0c0;
    padding: 4px;
    text-align: center;
    font-weight: 500;
    color: #333;
}

.excel-row-header {
    background: #f5f5f5;
    border-right: 1px solid #c0c0c0;
    border-bottom: 1px solid #c0c0c0;
    padding: 4px;
    text-align: center;
    font-weight: 500;
    color: #333;
}

.excel-cell {
    border-right: 1px solid #e0e0e0;
    border-bottom: 1px solid #e0e0e0;
    padding: 4px 6px;
    min-height: 22px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #333;
}

/* Cell Types */
.excel-cell.header-cell {
    background: #217346;
    color: white;
    font-weight: 600;
}

.excel-cell.number-cell {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.excel-cell.currency-cell {
    text-align: right;
    color: #1a5c38;
    font-weight: 500;
}

.excel-cell.total-label {
    font-weight: 600;
    text-align: right;
}

.excel-cell.total-cell {
    font-weight: 700;
    text-align: right;
    background: #f0f7f4;
}

.excel-cell.total-cell.highlight {
    background: #d4edda;
    color: #155724;
}

.excel-cell.positive {
    color: #28a745;
}

.excel-cell.warning {
    color: #ffc107;
}

.excel-cell.critical {
    color: #dc3545;
    font-weight: 600;
}

/* Sheet Tabs */
.excel-sheet-tabs {
    display: flex;
    align-items: flex-end;
    background: #e0e0e0;
    padding: 4px 8px 0;
    gap: 2px;
}

.excel-sheet-tab {
    background: #f5f5f5;
    padding: 4px 12px;
    border-radius: 4px 4px 0 0;
    font-size: 10px;
    color: #666;
    cursor: pointer;
    border: 1px solid #c0c0c0;
    border-bottom: none;
}

.excel-sheet-tab.active {
    background: white;
    color: #333;
    font-weight: 500;
}

.excel-sheet-tab-add {
    padding: 4px 8px;
    color: #888;
    cursor: pointer;
    font-size: 12px;
}

/* Status Bar */
.excel-status-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #217346;
    padding: 3px 12px;
    color: white;
    font-size: 10px;
}

.excel-status-left {
    opacity: 0.9;
}

.excel-zoom {
    opacity: 0.8;
}

/* Decorative Elements */
.excel-mockup-shadow {
    position: absolute;
    bottom: -15px;
    left: 10%;
    right: 10%;
    height: 20px;
    background: radial-gradient(ellipse at center, rgba(0,0,0,0.2) 0%, transparent 70%);
    filter: blur(8px);
    z-index: -1;
}

.excel-mockup-reflection {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 40%;
    background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 100%);
    pointer-events: none;
    border-radius: 8px 8px 0 0;
}

/* Preview Notice */
.excel-preview-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 16px;
    padding: 12px 16px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    backdrop-filter: blur(4px);
}

.excel-preview-notice .notice-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: rgba(255, 255, 255, 0.8);
    margin-top: 2px;
}

.excel-preview-notice p {
    margin: 0;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.5;
}

.excel-preview-notice strong {
    color: white;
}

/* ════════════════════════════════════════════════════════════
   KS Search (header + hero + mobile)  [renamed from donor avg-search-*]
   Restructured DOM: input wrapped in .ks-find, icon/submit as siblings
   ════════════════════════════════════════════════════════════ */
.ks-find { position: relative; }
.ks-find--header { display: none; }
@media (min-width: 768px) {
  .ks-find--header { display: flex; align-items: center; }
}
.ks-find__input {
  width: 100%; padding: 0.58rem 0.9rem 0.58rem 2.5rem;
  font-size: 0.875rem; color: #0B0B0C;
  background: #f4f6f6; border: 1px solid #d9e0e0; border-radius: 0.65rem;
  outline: none; transition: box-shadow .15s, border-color .15s; -webkit-appearance: none;
}
.ks-find__input:focus { border-color: var(--ks-accent,#00857C); box-shadow: 0 0 0 3px rgba(0,133,124,.18); background:#fff; }
.ks-find__icon { position:absolute; left:0.85rem; top:50%; transform:translateY(-50%); width:1rem; height:1rem; color:#7b8585; pointer-events:none; }
.ks-find__submit { position:absolute; right:0.35rem; top:50%; transform:translateY(-50%); background:transparent; border:0; cursor:pointer; padding:0.3rem; color:#7b8585; display:flex; align-items:center; }
.ks-find__submit:hover { color: var(--ks-accent,#00857C); }
/* hero variant */
.ks-find--hero { max-width:36rem; margin:0 auto 2rem; }
.ks-find--hero .ks-find__input { padding:1rem 7.5rem 1rem 3rem; font-size:1rem; background:#fff; border:0; border-radius:0.85rem; box-shadow:0 22px 44px -14px rgba(0,0,0,.45); }
.ks-find--hero .ks-find__icon { left:1.15rem; width:1.25rem; height:1.25rem; }
.ks-find__button { position:absolute; right:0.5rem; top:50%; transform:translateY(-50%); background:var(--ks-accent,#00857C); color:#fff; font-weight:600; border:0; border-radius:0.6rem; padding:0.6rem 1.4rem; cursor:pointer; transition:background .15s; }
.ks-find__button:hover { background:#00665f; }
/* mobile variant */
.ks-find--mobile { padding:0 0.5rem 0.5rem; display:block; }

/* nav (renamed from donor avg-header-nav) */
.ks-nav { gap: 1.75rem; }
.ks-nav > ul { display:flex; align-items:center; gap:1.75rem; margin:0; padding:0; list-style:none; }
.ks-nav > ul > a, .ks-nav > ul > li { white-space: nowrap; }
.ks-find--header { max-width: 30rem; margin-left: 2.5rem; margin-right: 2.5rem; }
@media (max-width: 1100px){ .ks-find--header { margin-left:1.25rem; margin-right:1.25rem; } }

/* ════════════════════════════════════════════════════════════
   KS structural classes (self-contained, breakpoint-safe)
   Built so the DOM diverges from the donor without relying on
   purged Tailwind utilities.
   ════════════════════════════════════════════════════════════ */
/* Brand wordmark + fern mark in header/footer */
.ks-brand { display:inline-flex; align-items:center; gap:0.6rem; text-decoration:none; }
.ks-brand__mark { width:2.1rem; height:2.1rem; flex-shrink:0; }
.ks-brand__name { font-weight:800; letter-spacing:-0.02em; font-size:1.4rem; line-height:1; color:#0B0B0C; }
.ks-brand__name .ks-brand__sheets { color: var(--ks-accent,#00857C); }
footer .ks-brand__name { color:#fff; }

/* Template card (renamed from donor "bg-white rounded-lg shadow-sm border border-gray-100 overflow-hidden") */
.ks-card { background:#fff; border-radius:0.9rem; border:1px solid #e6eaea; overflow:hidden; transition:box-shadow .3s, transform .3s, border-color .3s; }
.ks-card:hover { box-shadow:0 18px 38px -16px rgba(11,11,12,.28); transform:translateY(-3px); border-color:#bfeae6; }
.ks-card__body { padding:1.35rem; display:flex; flex-direction:column; gap:0.55rem; height:100%; }
.ks-card__tag { align-self:flex-start; display:inline-block; padding:0.2rem 0.7rem; border-radius:999px; font-size:0.7rem; font-weight:600; color:#fff; }
.ks-card__title { font-weight:700; color:#0B0B0C; line-height:1.3; }
.ks-card__title a:hover { color:var(--ks-accent,#00857C); }
.ks-card__desc { font-size:0.85rem; color:#5d6666; flex-grow:1; }
.ks-card__meta { display:flex; align-items:center; justify-content:space-between; font-size:0.8rem; margin-top:0.4rem; padding-top:0.7rem; border-top:1px solid #f0f2f2; }
.ks-card__dl { display:inline-flex; align-items:center; gap:0.3rem; color:#8a9292; }
.ks-card__link { color:var(--ks-accent,#00857C); font-weight:600; }
.ks-card__link:hover { color:#00665f; }

/* Masonry-ish responsive template grid (donor used grid-cols-1/2/3) */
.ks-tpl-grid { display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media (min-width:640px){ .ks-tpl-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .ks-tpl-grid { grid-template-columns:repeat(2,1fr); gap:1.75rem; } }
@media (min-width:1280px){ .ks-tpl-grid { grid-template-columns:repeat(3,1fr); } }

/* Hero split layout (diverges from donor centered hero) */
.ks-hero { background:linear-gradient(135deg,#0B0B0C 0%,#13201f 55%,#063b38 100%); color:#fff; position:relative; overflow:hidden; }
.ks-hero::after { content:""; position:absolute; right:-8%; top:-20%; width:46%; height:140%; background:radial-gradient(circle at center, rgba(0,133,124,.35), transparent 65%); pointer-events:none; }
.ks-hero__wrap { max-width:80rem; margin:0 auto; padding:4.5rem 1rem; display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:center; position:relative; z-index:1; }
@media (min-width:1024px){ .ks-hero__wrap { grid-template-columns:1.05fr 0.95fr; padding:6rem 2rem; gap:3.5rem; } }
.ks-hero__eyebrow { display:inline-flex; align-items:center; gap:0.5rem; font-size:0.78rem; font-weight:600; text-transform:uppercase; letter-spacing:0.12em; color:#7fe3db; margin-bottom:1.1rem; }
.ks-hero__title { font-size:2.4rem; line-height:1.08; font-weight:800; letter-spacing:-0.02em; margin:0 0 1.1rem; }
@media (min-width:1024px){ .ks-hero__title { font-size:3.3rem; } }
.ks-hero__lead { font-size:1.15rem; line-height:1.6; color:#cdd6d5; margin:0 0 1.8rem; max-width:34rem; }
.ks-hero__stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2rem; max-width:30rem; }
.ks-hero__stat-n { font-size:1.9rem; font-weight:800; color:#fff; }
.ks-hero__stat-l { font-size:0.8rem; color:#9fb1af; }
.ks-hero__aside { position:relative; }
.ks-hero__panel { background:rgba(255,255,255,.06); border:1px solid rgba(0,133,124,.4); border-radius:1.1rem; padding:1.4rem; backdrop-filter:blur(6px); }
.ks-hero__panel-row { display:flex; align-items:center; gap:0.8rem; padding:0.7rem 0; border-bottom:1px solid rgba(255,255,255,.08); }
.ks-hero__panel-row:last-child { border-bottom:0; }
.ks-hero__panel-ico { width:2.2rem; height:2.2rem; border-radius:0.6rem; background:rgba(0,133,124,.22); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:#7fe3db; }
.ks-hero__panel-t { font-weight:600; color:#fff; font-size:0.92rem; }
.ks-hero__panel-d { font-size:0.78rem; color:#9fb1af; }

/* Section header helper */
.ks-sec-head { text-align:center; max-width:42rem; margin:0 auto 3rem; }
.ks-sec-kicker { font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:0.12em; color:var(--ks-accent,#00857C); }
.ks-sec-title { font-size:2rem; font-weight:800; letter-spacing:-0.02em; color:#0B0B0C; margin:0.4rem 0 0.6rem; }
.ks-sec-sub { font-size:1.05rem; color:#5d6666; }

/* Feature list — left-aligned alternating rows (diverges from donor 4-col centered) */
.ks-feat-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; max-width:64rem; margin:0 auto; }
@media (min-width:768px){ .ks-feat-grid { grid-template-columns:repeat(2,1fr); gap:1.5rem; } }
.ks-feat { display:flex; gap:1rem; padding:1.5rem; border-radius:1rem; background:#fff; border:1px solid #e6eaea; }
.ks-feat__ico { width:3rem; height:3rem; border-radius:0.8rem; flex-shrink:0; background:#e6f4f3; color:var(--ks-accent,#00857C); display:flex; align-items:center; justify-content:center; }
.ks-feat__t { font-weight:700; color:#0B0B0C; margin:0 0 0.35rem; }
.ks-feat__d { color:#5d6666; font-size:0.95rem; line-height:1.55; }

/* Categories — horizontal pill rows (diverges from donor 6-col icon grid) */
.ks-cat-grid { display:grid; grid-template-columns:1fr; gap:1rem; }
@media (min-width:640px){ .ks-cat-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .ks-cat-grid { grid-template-columns:repeat(3,1fr); } }
.ks-cat { display:flex; align-items:center; gap:1rem; padding:1.1rem 1.25rem; background:#fff; border:1px solid #e6eaea; border-radius:0.9rem; transition:border-color .25s, box-shadow .25s; text-decoration:none; }
.ks-cat:hover { border-color:#bfeae6; box-shadow:0 12px 26px -16px rgba(11,11,12,.3); }
.ks-cat__ico { width:2.8rem; height:2.8rem; border-radius:0.7rem; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ks-cat__name { display:block; font-weight:700; color:#0B0B0C; }
.ks-cat:hover .ks-cat__name { color:var(--ks-accent,#00857C); }
.ks-cat__count { display:block; font-size:0.8rem; color:#8a9292; }

/* FAQ accordion (renamed faq-toggle -> ks-faq-q; restructured wrapper) */
.ks-faq { max-width:48rem; margin:0 auto; display:flex; flex-direction:column; gap:0.85rem; }
.ks-faq-item { border:1px solid #e6eaea; border-radius:0.85rem; background:#fff; overflow:hidden; }
.ks-faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.15rem 1.3rem; text-align:left; font-weight:600; color:#0B0B0C; background:transparent; border:0; cursor:pointer; transition:background .15s; }
.ks-faq-q:hover { background:#f4f6f6; }
.ks-faq-q svg { width:1.25rem; height:1.25rem; color:#8a9292; flex-shrink:0; transition:transform .25s; }
.ks-faq-q[aria-expanded="true"] svg { transform:rotate(180deg); }
.ks-faq-a { padding:0 1.3rem 1.25rem; color:#5d6666; }

/* CTA band (diverges from donor centered gradient) */
.ks-cta { background:#0B0B0C; color:#fff; border-radius:0; }
.ks-cta__wrap { max-width:72rem; margin:0 auto; padding:4rem 1.5rem; display:grid; grid-template-columns:1fr; gap:1.5rem; align-items:center; }
@media (min-width:1024px){ .ks-cta__wrap { grid-template-columns:1.4fr 1fr; padding:4.5rem 2rem; } }
.ks-cta__title { font-size:2rem; font-weight:800; letter-spacing:-0.02em; margin:0 0 0.6rem; }
.ks-cta__lead { color:#b9c2c1; font-size:1.05rem; line-height:1.6; }
.ks-cta__actions { display:flex; flex-direction:column; gap:0.75rem; align-items:flex-start; }
@media (min-width:1024px){ .ks-cta__actions { align-items:flex-end; } }
.ks-btn-accent { display:inline-flex; align-items:center; gap:0.5rem; padding:0.95rem 1.8rem; background:var(--ks-accent,#00857C); color:#fff; font-weight:600; border-radius:0.7rem; text-decoration:none; transition:background .15s; }
.ks-btn-accent:hover { background:#00665f; }
.ks-cta__note { font-size:0.82rem; color:#8a9292; }

/* Footer layout (diverges from donor 4-col grid) */
.ks-foot-brand { min-width:0; }
.ks-foot-col { min-width:0; }
.ks-foot-top { display:grid; grid-template-columns:1fr; gap:2.5rem; }
@media (min-width:768px){ .ks-foot-top { grid-template-columns:1.4fr 2fr; gap:3rem; } }
.ks-foot-links { display:grid; grid-template-columns:1fr; gap:2rem; }
@media (min-width:640px){ .ks-foot-links { grid-template-columns:repeat(3,1fr); } }

/* Consent banner (renamed wrapper #cookie-banner -> .ks-consent kept on same node) */
.ks-consent { position:fixed; left:1rem; right:1rem; bottom:1rem; max-width:34rem; margin-left:auto; background:#0B0B0C; color:#e7ecec; border:1px solid #1d2a29; border-radius:1rem; box-shadow:0 20px 50px -12px rgba(0,0,0,.55); padding:1.25rem 1.4rem; z-index:60; }
.ks-consent.is-hidden { display:none; }
.ks-consent__text { font-size:0.85rem; line-height:1.55; color:#c2cbca; }
.ks-consent__text a { color:#7fe3db; text-decoration:underline; }
.ks-consent__actions { display:flex; gap:0.6rem; margin-top:0.9rem; }
.ks-consent__btn { flex:1; padding:0.6rem 0.9rem; font-size:0.85rem; font-weight:600; border:0; border-radius:0.6rem; cursor:pointer; }
.ks-consent__btn--decline { background:#21302f; color:#cdd6d5; }
.ks-consent__btn--decline:hover { background:#2a3938; }
.ks-consent__btn--accept { background:var(--ks-accent,#00857C); color:#fff; }
.ks-consent__btn--accept:hover { background:#00665f; }
.ks-consent.show { animation: ksSlideUp .3s ease; }
@keyframes ksSlideUp { from { transform: translateY(120%); opacity:0; } to { transform: translateY(0); opacity:1; } }

/* ═══════════════════════════════════════════════════
   KiwiSheets identity — near-black + pounamu/teal accent
   Overrides the donor's hardcoded Tailwind blue, site-wide.
   ═══════════════════════════════════════════════════ */
:root { --avg-primary: #0B0B0C; --avg-secondary: #00857C; --ks-accent: #00857C; --ks-ink: #0B0B0C; }
/* gradients */
.from-blue-900 { --tw-gradient-from:#0B0B0C !important; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(11,11,12,0)) !important; }
.via-blue-800 { --tw-gradient-stops: var(--tw-gradient-from), #11201f, var(--tw-gradient-to, rgba(17,32,31,0)) !important; }
.to-blue-700 { --tw-gradient-to:#063b38 !important; }
.from-blue-600 { --tw-gradient-from:#00857C !important; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(0,133,124,0)) !important; }
.via-blue-700 { --tw-gradient-stops: var(--tw-gradient-from), #00665f, var(--tw-gradient-to, rgba(0,102,95,0)) !important; }
.bg-gradient-to-r.from-blue-600, .bg-gradient-to-br.from-blue-600 { background:linear-gradient(to right,#00857C,#00665f) !important; }
/* backgrounds */
.bg-blue-50 { background-color:#e6f4f3 !important; }
.bg-blue-100 { background-color:#cfeae8 !important; }
.bg-blue-600 { background-color:#00857C !important; }
.bg-blue-700 { background-color:#00665f !important; }
.bg-blue-800 { background-color:#0B0B0C !important; }
.bg-blue-900 { background-color:#0B0B0C !important; }
.hover\:bg-blue-50:hover { background-color:#e6f4f3 !important; }
.hover\:bg-blue-600:hover { background-color:#00857C !important; }
.hover\:bg-blue-700:hover { background-color:#00665f !important; }
.group:hover .group-hover\:bg-blue-100 { background-color:#cfeae8 !important; }
/* text */
.text-blue-100 { color:#cde9e7 !important; }
.text-blue-200 { color:#a7dbd6 !important; }
.text-blue-600 { color:#00857C !important; }
.text-blue-700 { color:#00665f !important; }
.text-blue-800 { color:#0B0B0C !important; }
.text-blue-900 { color:#0B0B0C !important; }
.hover\:text-blue-600:hover { color:#00857C !important; }
.hover\:text-blue-700:hover { color:#00665f !important; }
.group:hover .group-hover\:text-blue-600 { color:#00857C !important; }
/* borders + rings */
.border-blue-200 { border-color:#bfeae6 !important; }
.border-blue-600 { border-color:#00857C !important; }
.hover\:border-blue-200:hover { border-color:#bfeae6 !important; }
.ring-blue-500 { --tw-ring-color:#00857C !important; }
.focus\:ring-blue-500:focus { --tw-ring-color:#00857C !important; }
.focus\:border-blue-500:focus { border-color:#00857C !important; }
.bg-white\/10 { background-color: rgba(255,255,255,0.12) !important; }

/* === Blindaje azul->paleta NZ (variantes que pudieran faltar) === */
.text-blue-100,.text-blue-200,.text-blue-300{color:#b9d9d6!important}
.text-blue-400,.text-blue-500,.text-blue-600,.text-blue-700,.text-blue-800,.text-blue-900{color:#00857C!important}
.bg-blue-50{background-color:#f0f7f6!important}.bg-blue-100{background-color:#cce7e4!important}
.bg-blue-500,.bg-blue-600,.bg-blue-700,.bg-blue-800,.bg-blue-900{background-color:#00857C!important}
.border-blue-100,.border-blue-200,.border-blue-600,.border-blue-700{border-color:#00857C!important}
.hover\:text-blue-600:hover,.hover\:text-blue-700:hover{color:#00857C!important}
.hover\:bg-blue-700:hover{background-color:#006b63!important}
.group:hover .group-hover\:text-blue-600{color:#00857C!important}
.from-blue-600,.from-blue-700,.from-blue-800,.from-blue-900{--tw-gradient-from:#0B0B0C!important}
.to-blue-600,.to-blue-700,.to-blue-800,.to-blue-900{--tw-gradient-to:#00857C!important}
.ring-blue-500,.ring-blue-600,.focus\:ring-blue-500:focus{--tw-ring-color:#00857C!important}

/* ════════════════════════════════════════════════════════════
   KS internal templates — single, archive, legal/about/contact pages
   Same visual language as the homepage: near-black #0B0B0C hero,
   pounamu teal #00857C accent, white surfaces, slate greys.
   Self-contained (does not rely on purged Tailwind utilities).
   ════════════════════════════════════════════════════════════ */

/* Shared content shell */
.ks-shell { max-width:80rem; margin:0 auto; padding-left:1rem; padding-right:1rem; }
@media (min-width:640px){ .ks-shell { padding-left:1.5rem; padding-right:1.5rem; } }
@media (min-width:1024px){ .ks-shell { padding-left:2rem; padding-right:2rem; } }
.ks-shell--narrow { max-width:56rem; }

/* Page hero (black → teal, like the home hero) — for legal/about/contact + archive */
.ks-page-hero { background:linear-gradient(135deg,#0B0B0C 0%,#13201f 55%,#063b38 100%); color:#fff; position:relative; overflow:hidden; }
.ks-page-hero::after { content:""; position:absolute; right:-6%; top:-30%; width:42%; height:160%; background:radial-gradient(circle at center, rgba(0,133,124,.32), transparent 65%); pointer-events:none; }
.ks-page-hero__wrap { position:relative; z-index:1; padding:3.5rem 0; }
@media (min-width:1024px){ .ks-page-hero__wrap { padding:4.5rem 0; } }
.ks-page-hero--center { text-align:center; }
.ks-page-hero__eyebrow { display:inline-flex; align-items:center; gap:0.5rem; font-size:0.76rem; font-weight:700; text-transform:uppercase; letter-spacing:0.12em; color:#7fe3db; margin-bottom:0.9rem; }
.ks-page-hero__title { font-size:2.2rem; line-height:1.1; font-weight:800; letter-spacing:-0.02em; margin:0 0 1rem; color:#fff; }
@media (min-width:1024px){ .ks-page-hero__title { font-size:3rem; } }
.ks-page-hero__lead { font-size:1.12rem; line-height:1.6; color:#cdd6d5; margin:0; max-width:42rem; }
.ks-page-hero--center .ks-page-hero__lead { margin-left:auto; margin-right:auto; }
.ks-page-hero__date { font-size:0.82rem; color:#8fb6b2; margin-top:1rem; }
.ks-page-hero__crumb { font-size:0.82rem; color:#9fb1af; margin-bottom:0.9rem; }
.ks-page-hero__crumb a { color:#cdd6d5; text-decoration:none; }
.ks-page-hero__crumb a:hover { color:#7fe3db; }

/* Single-template hero (split, with screenshot/mockup like the home) */
.ks-tpl-hero { background:linear-gradient(135deg,#0B0B0C 0%,#13201f 55%,#063b38 100%); color:#fff; position:relative; overflow:hidden; }
.ks-tpl-hero::after { content:""; position:absolute; right:-8%; top:-20%; width:46%; height:140%; background:radial-gradient(circle at center, rgba(0,133,124,.3), transparent 65%); pointer-events:none; }
.ks-tpl-hero__wrap { position:relative; z-index:1; padding:3.5rem 0; display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:center; }
@media (min-width:1024px){ .ks-tpl-hero__wrap { grid-template-columns:1.05fr 0.95fr; padding:4.5rem 0; gap:3.5rem; } }
.ks-tpl-hero__tag { align-self:flex-start; display:inline-flex; align-items:center; padding:0.3rem 0.85rem; border-radius:999px; font-size:0.8rem; font-weight:600; background:rgba(0,133,124,.28); color:#bff0ec; text-decoration:none; margin-bottom:1.1rem; transition:background .15s; }
.ks-tpl-hero__tag:hover { background:rgba(0,133,124,.45); }
.ks-tpl-hero__title { font-size:2.1rem; line-height:1.1; font-weight:800; letter-spacing:-0.02em; margin:0 0 1.1rem; }
@media (min-width:1024px){ .ks-tpl-hero__title { font-size:2.9rem; } }
.ks-tpl-hero__lead { font-size:1.12rem; line-height:1.6; color:#cdd6d5; margin:0 0 1.6rem; max-width:34rem; }
.ks-tpl-hero__facts { display:flex; flex-wrap:wrap; gap:1.4rem; margin-bottom:1.8rem; }
.ks-tpl-hero__fact { display:inline-flex; align-items:center; gap:0.45rem; font-size:0.9rem; color:#bcc8c7; }
.ks-tpl-hero__fact svg { width:1.15rem; height:1.15rem; color:#7fe3db; flex-shrink:0; }
.ks-tpl-hero__media { border-radius:1rem; overflow:hidden; box-shadow:0 30px 60px -20px rgba(0,0,0,.6); border:1px solid rgba(0,133,124,.3); }
.ks-tpl-hero__media img { display:block; width:100%; height:auto; }
.ks-hide-mobile { display:none; }
@media (min-width:1024px){ .ks-hide-mobile { display:block; } }

/* Big teal download button (the prominent CTA) */
.ks-dl-btn { display:inline-flex; align-items:center; justify-content:center; gap:0.65rem; padding:1rem 2rem; background:var(--ks-accent,#00857C); color:#fff; font-weight:700; font-size:1.05rem; border-radius:0.8rem; text-decoration:none; box-shadow:0 16px 32px -12px rgba(0,133,124,.6); transition:background .15s, transform .15s; }
.ks-dl-btn:hover { background:#00665f; transform:translateY(-2px); }
.ks-dl-btn svg { width:1.4rem; height:1.4rem; }
.ks-dl-btn--block { width:100%; }

/* Single-template content layout */
.ks-single { padding:4rem 0; }
.ks-single__grid { display:grid; grid-template-columns:1fr; gap:3rem; }
@media (min-width:1024px){ .ks-single__grid { grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:3rem; } }
.ks-single__main { display:flex; flex-direction:column; gap:3rem; min-width:0; }
.ks-prose-block { color:#3f4a49; }
.ks-block__title { font-size:1.6rem; font-weight:800; letter-spacing:-0.01em; color:#0B0B0C; margin:0 0 1.4rem; }

/* Benefits list */
.ks-benefits { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1rem; }
.ks-benefit { display:flex; align-items:flex-start; gap:0.85rem; }
.ks-benefit__ico { width:1.6rem; height:1.6rem; flex-shrink:0; border-radius:0.5rem; background:#e6f4f3; color:var(--ks-accent,#00857C); display:flex; align-items:center; justify-content:center; margin-top:0.1rem; }
.ks-benefit__ico svg { width:1rem; height:1rem; }
.ks-benefit span.ks-benefit__txt { color:#3f4a49; line-height:1.6; }

/* Feature chips grid */
.ks-feat-chips { display:grid; grid-template-columns:1fr; gap:0.9rem; }
@media (min-width:640px){ .ks-feat-chips { grid-template-columns:repeat(2,1fr); } }
.ks-chip { display:flex; align-items:center; gap:0.75rem; padding:1rem 1.1rem; background:#f4f6f6; border:1px solid #e6eaea; border-radius:0.75rem; }
.ks-chip svg { width:1.25rem; height:1.25rem; color:var(--ks-accent,#00857C); flex-shrink:0; }
.ks-chip span { color:#3f4a49; font-size:0.95rem; }

/* Sidebar */
.ks-aside { display:flex; flex-direction:column; gap:1.5rem; }
@media (min-width:1024px){ .ks-aside { position:sticky; top:6rem; } }
.ks-aside__card { background:#fff; border:1px solid #e6eaea; border-radius:1rem; padding:1.5rem; box-shadow:0 18px 40px -24px rgba(11,11,12,.25); }
.ks-aside__card--ink { background:#0B0B0C; border-color:#1d2a29; color:#fff; }
.ks-aside__title { font-size:1.05rem; font-weight:700; color:#0B0B0C; margin:0 0 1.1rem; }
.ks-aside__card--ink .ks-aside__title { color:#fff; }
.ks-spec { display:flex; flex-direction:column; gap:0.7rem; margin-bottom:1.4rem; }
.ks-spec__row { display:flex; align-items:center; justify-content:space-between; gap:1rem; font-size:0.88rem; }
.ks-aside__card--ink .ks-spec__row { color:#cdd6d5; }
.ks-spec__k { color:#8a9292; }
.ks-aside__card--ink .ks-spec__k { color:#9fb1af; }
.ks-spec__v { font-weight:600; color:#0B0B0C; text-align:right; }
.ks-aside__card--ink .ks-spec__v { color:#fff; }
.ks-spec__v--free { color:var(--ks-accent,#00857C); }
.ks-aside__card--ink .ks-spec__v--free { color:#7fe3db; }

/* Category mini-card in sidebar */
.ks-catlink { display:flex; align-items:center; gap:0.8rem; padding:0.9rem; background:#f4f6f6; border:1px solid #e6eaea; border-radius:0.75rem; text-decoration:none; transition:border-color .2s, box-shadow .2s; }
.ks-catlink:hover { border-color:#bfeae6; box-shadow:0 10px 22px -14px rgba(11,11,12,.3); }
.ks-catlink__ico { width:2.5rem; height:2.5rem; border-radius:0.6rem; background:#e6f4f3; color:var(--ks-accent,#00857C); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ks-catlink__ico svg { width:1.25rem; height:1.25rem; }
.ks-catlink__name { display:block; font-weight:700; color:#0B0B0C; }
.ks-catlink:hover .ks-catlink__name { color:var(--ks-accent,#00857C); }
.ks-catlink__count { display:block; font-size:0.8rem; color:#8a9292; }

/* Single-template FAQ (reuse home accordion look) */
.ks-tpl-faq { display:flex; flex-direction:column; gap:0.85rem; }

/* Related strip */
.ks-related { padding:4rem 0; background:#f4f6f6; }
.ks-related__grid { display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media (min-width:640px){ .ks-related__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .ks-related__grid { grid-template-columns:repeat(4,1fr); } }

/* ── Archive: sidebar + grid ── */
.ks-archive { padding:3.5rem 0; }
.ks-archive__layout { display:flex; flex-direction:column; gap:2rem; }
@media (min-width:1024px){ .ks-archive__layout { flex-direction:row; gap:2.5rem; } }
.ks-archive__side { flex-shrink:0; }
@media (min-width:1024px){ .ks-archive__side { width:17rem; } }
.ks-side-sticky { display:flex; flex-direction:column; gap:1.75rem; }
@media (min-width:1024px){ .ks-side-sticky { position:sticky; top:6rem; } }
.ks-side-label { font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:#0B0B0C; margin:0 0 0.85rem; }
.ks-filter-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.3rem; }
.ks-filter-link { display:flex; align-items:center; justify-content:space-between; gap:0.75rem; padding:0.6rem 0.85rem; border-radius:0.65rem; text-decoration:none; color:#3f4a49; font-size:0.92rem; transition:background .15s, color .15s; }
.ks-filter-link:hover { background:#f4f6f6; }
.ks-filter-link.is-active { background:#e6f4f3; color:var(--ks-accent,#00857C); font-weight:600; }
.ks-filter-link__n { font-size:0.8rem; color:#8a9292; }
.ks-filter-link.is-active .ks-filter-link__n { color:var(--ks-accent,#00857C); }
.ks-archive__main { flex:1; min-width:0; }
.ks-archive__bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; color:#5d6666; font-size:0.95rem; }
.ks-empty { text-align:center; padding:3.5rem 1rem; }
.ks-empty svg { width:3rem; height:3rem; color:#bcc8c7; margin:0 auto 1rem; }
.ks-empty__t { font-size:1.15rem; font-weight:700; color:#0B0B0C; margin:0 0 0.4rem; }
.ks-empty__d { color:#8a9292; }
.ks-pager { margin-top:3rem; }

/* ── Static content pages (about/contact/legal) ── */
.ks-page-body { background:#f4f6f6; }
.ks-page-content { padding:3rem 0 4rem; }
.ks-panel { background:#fff; border:1px solid #e6eaea; border-radius:1rem; padding:2rem; margin-bottom:1.75rem; box-shadow:0 18px 40px -28px rgba(11,11,12,.2); }
@media (min-width:1024px){ .ks-panel { padding:2.75rem; } }
.ks-panel--accent { background:#0B0B0C; color:#fff; border-color:#1d2a29; }
.ks-panel--soft { background:#e6f4f3; border-color:#bfeae6; }
.ks-panel__title { font-size:1.5rem; font-weight:800; letter-spacing:-0.01em; color:#0B0B0C; margin:0 0 1.25rem; }
.ks-panel--accent .ks-panel__title { color:#fff; }
.ks-grid-2 { display:grid; grid-template-columns:1fr; gap:1.75rem; }
@media (min-width:768px){ .ks-grid-2 { grid-template-columns:repeat(2,1fr); } }

/* People / process rows */
.ks-person { display:flex; gap:1rem; }
.ks-avatar { width:3.5rem; height:3.5rem; border-radius:999px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.1rem; background:#e6f4f3; color:var(--ks-accent,#00857C); }
.ks-person__name { font-weight:700; color:#0B0B0C; margin:0; }
.ks-person__role { font-size:0.85rem; color:var(--ks-accent,#00857C); font-weight:600; margin:0.1rem 0 0.5rem; }
.ks-person__bio { color:#5d6666; line-height:1.6; margin:0; }
.ks-row { display:flex; gap:1rem; }
.ks-row__ico { width:3rem; height:3rem; border-radius:0.75rem; flex-shrink:0; background:#e6f4f3; color:var(--ks-accent,#00857C); display:flex; align-items:center; justify-content:center; }
.ks-row__ico svg { width:1.5rem; height:1.5rem; }
.ks-row__t { font-weight:700; color:#0B0B0C; margin:0 0 0.4rem; }
.ks-row__d { color:#5d6666; line-height:1.6; margin:0; }

/* Contact info rows */
.ks-contact-row { display:flex; align-items:flex-start; gap:1rem; }
.ks-contact-row + .ks-contact-row { margin-top:1.5rem; }
.ks-link { color:var(--ks-accent,#00857C); font-weight:600; text-decoration:none; }
.ks-link:hover { color:#00665f; text-decoration:underline; }
.ks-q-card { padding:1.1rem 1.25rem; background:#f4f6f6; border:1px solid #e6eaea; border-radius:0.75rem; }
.ks-q-card + .ks-q-card { margin-top:1rem; }
.ks-q-card__q { font-weight:700; color:#0B0B0C; margin:0 0 0.4rem; }
.ks-q-card__a { font-size:0.9rem; color:#5d6666; margin:0; line-height:1.55; }

/* Button variants used on content pages */
.ks-btn-ghost { display:inline-flex; align-items:center; justify-content:center; gap:0.5rem; padding:0.9rem 1.6rem; background:#fff; color:var(--ks-accent,#00857C); font-weight:600; border:1px solid #bfeae6; border-radius:0.7rem; text-decoration:none; transition:background .15s, border-color .15s; }
.ks-btn-ghost:hover { background:#e6f4f3; border-color:#00857C; }
.ks-btn-row { display:flex; flex-direction:column; gap:0.85rem; }
@media (min-width:640px){ .ks-btn-row { flex-direction:row; } }
.ks-btn-row--center { justify-content:center; }

/* Legal/long-form prose inside panels (replaces Tailwind prose-* modifiers) */
.ks-legal h2 { font-size:1.3rem; font-weight:800; color:#0B0B0C; margin:2rem 0 0.85rem; letter-spacing:-0.01em; }
.ks-legal h2:first-child { margin-top:0; }
.ks-legal h3 { font-size:1.08rem; font-weight:700; color:#0B0B0C; margin:1.5rem 0 0.6rem; }
.ks-legal p { color:#4b5655; line-height:1.7; margin:0 0 1rem; }
.ks-legal ul { margin:0 0 1.2rem; padding-left:1.3rem; color:#4b5655; line-height:1.7; }
.ks-legal li { margin-bottom:0.5rem; }
.ks-legal a { color:var(--ks-accent,#00857C); text-decoration:underline; }
.ks-legal a:hover { color:#00665f; }
.ks-legal strong { color:#0B0B0C; }

/* Default page (page.php) */
.ks-doc { background:#fff; border:1px solid #e6eaea; border-radius:1rem; padding:2rem; box-shadow:0 18px 40px -28px rgba(11,11,12,.2); }
@media (min-width:1024px){ .ks-doc { padding:2.75rem; } }
.ks-doc__title { font-size:2rem; font-weight:800; letter-spacing:-0.02em; color:#0B0B0C; margin:0; }
.ks-doc__meta { font-size:0.82rem; color:#8a9292; margin-top:0.5rem; }
