/*
Theme Name: The NAS Guy
Theme URI: https://www.thenasguy.com
Description: Modern, fast block theme for The NAS Guy. Child of Twenty Twenty-Five. Light/dark mode, card layout, source filters.
Author: The NAS Guy
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: thenasguy
*/

:root{
  --tng-bg:#f5f8fc; --tng-surface:#ffffff; --tng-surface-2:#eef3f9; --tng-text:#0f172a; --tng-muted:#526077;
  --tng-border:#e1e8f1; --tng-primary:#0b64c0; --tng-primary-ink:#ffffff; --tng-accent:#0fb5a8;
  --tng-aws:#b45309; --tng-veeam:#047857; --tng-shadow:0 1px 2px rgba(15,23,42,.06),0 8px 24px rgba(15,23,42,.06);
  --tng-radius:16px; color-scheme:light;
}
:root[data-theme="dark"]{
  --tng-bg:#0a101c; --tng-surface:#131b2c; --tng-surface-2:#182238; --tng-text:#e7ecf4; --tng-muted:#9aa8bf;
  --tng-border:#25314a; --tng-primary:#6db3ff; --tng-primary-ink:#06101f; --tng-accent:#2dd4bf;
  --tng-aws:#fbbf24; --tng-veeam:#34d399; --tng-shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
  color-scheme:dark;
}
html{scroll-behavior:smooth}
body{background:var(--tng-bg);color:var(--tng-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{text-underline-offset:.18em;text-decoration-thickness:.07em}
:where(a,button,input,textarea,summary):focus-visible{outline:3px solid var(--tng-accent);outline-offset:2px;border-radius:6px}
.screen-reader-text,.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:12px;top:12px;z-index:100;background:var(--tng-surface);padding:.6rem 1rem;border-radius:8px}

/* Header */
.tng-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--tng-surface) 88%,transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--tng-border)}
.tng-brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--tng-text)}
.tng-brand img{width:44px;height:auto;border-radius:10px}
.tng-brand strong{font-size:1.15rem;letter-spacing:-.02em;line-height:1.1;display:block}
.tng-brand small{display:block;color:var(--tng-muted);font-size:.72rem;line-height:1.2}
.tng-logo-dark{display:none}
:root[data-theme="dark"] .tng-logo-light{display:none}
:root[data-theme="dark"] .tng-logo-dark{display:block}
.tng-header .wp-block-navigation a{font-weight:600;text-decoration:none;color:var(--tng-text);padding:.35rem .2rem;border-bottom:2px solid transparent}
.tng-header .wp-block-navigation a:hover,.tng-header .wp-block-navigation .current-menu-item>a{border-bottom-color:var(--tng-accent)}
.tng-toggle{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:999px;border:1px solid var(--tng-border);
  background:var(--tng-surface);color:var(--tng-text);cursor:pointer;transition:transform .15s,background .15s}
.tng-toggle:hover{transform:scale(1.07);background:var(--tng-surface-2)}
.tng-toggle svg{width:20px;height:20px}
.tng-toggle .tng-sun{display:none}
:root[data-theme="dark"] .tng-toggle .tng-sun{display:block}
:root[data-theme="dark"] .tng-toggle .tng-moon{display:none}
.tng-header .wp-block-search__button{background:transparent;color:var(--tng-text);border:1px solid var(--tng-border);border-radius:999px}

/* Hero */
.tng-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--tng-border);
  background:radial-gradient(900px 380px at 85% -10%,color-mix(in srgb,var(--tng-accent) 22%,transparent),transparent 70%),
             radial-gradient(700px 360px at 0% 0%,color-mix(in srgb,var(--tng-primary) 16%,transparent),transparent 70%)}
.tng-hero h1{font-size:clamp(2.1rem,5.2vw,3.6rem);line-height:1.04;letter-spacing:-.035em;font-weight:800;margin:0 0 1rem}
.tng-hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--tng-primary),var(--tng-accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.tng-hero p.lede{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--tng-muted);max-width:38rem}
.tng-hero-art{display:grid;place-items:center}
.tng-hero-art img{width:min(100%,260px);height:auto;filter:drop-shadow(0 18px 28px rgba(15,23,42,.18));animation:tng-float 6s ease-in-out infinite}
@keyframes tng-float{50%{transform:translateY(-8px)}}
@media (prefers-reduced-motion:reduce){.tng-hero-art img{animation:none}html{scroll-behavior:auto}}
.tng-hero-search .wp-block-search__inside-wrapper{border:1px solid var(--tng-border);border-radius:999px;background:var(--tng-surface);padding:.25rem;box-shadow:var(--tng-shadow)}
.tng-hero-search input{border:0!important;background:transparent!important;color:var(--tng-text);padding:.6rem 1rem}
.tng-hero-search button{border-radius:999px!important;background:var(--tng-primary)!important;color:var(--tng-primary-ink)!important;border:0!important;font-weight:700;padding:.6rem 1.3rem}

/* Buttons + chips */
.wp-block-button__link,.tng-btn{border-radius:999px;font-weight:700;text-decoration:none}
.is-style-outline>.wp-block-button__link{border:1.5px solid var(--tng-border);color:var(--tng-text);background:var(--tng-surface)}
.tng-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}
.tng-chips a{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .95rem;border-radius:999px;border:1px solid var(--tng-border);
  background:var(--tng-surface);color:var(--tng-text);font-weight:600;font-size:.9rem;text-decoration:none;transition:.15s}
.tng-chips a:hover{border-color:var(--tng-primary);color:var(--tng-primary)}
.tng-chips a.is-active{background:var(--tng-primary);border-color:var(--tng-primary);color:var(--tng-primary-ink)}
.tng-dot{width:.6rem;height:.6rem;border-radius:50%;display:inline-block}
.tng-dot.aws{background:var(--tng-aws)} .tng-dot.veeam{background:var(--tng-veeam)} .tng-dot.all{background:var(--tng-primary)}
.tng-cat a{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;
  padding:.18rem .6rem;border-radius:999px;background:var(--tng-surface-2);color:var(--tng-muted)}
.tng-cat a[rel~="tag"][href$="/category/aws/"]{color:var(--tng-aws);background:color-mix(in srgb,var(--tng-aws) 14%,transparent)}
.tng-cat a[href$="/category/veeam/"]{color:var(--tng-veeam);background:color-mix(in srgb,var(--tng-veeam) 14%,transparent)}

/* Cards */
.tng-grid .wp-block-post-template{gap:1.25rem}
.tng-card{height:100%;display:flex;flex-direction:column;gap:.55rem;background:var(--tng-surface);border:1px solid var(--tng-border);
  border-top-width:4px;border-radius:var(--tng-radius);padding:1.35rem 1.4rem;box-shadow:var(--tng-shadow);transition:transform .18s,box-shadow .18s,border-color .18s}
.tng-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--tng-primary) 45%,var(--tng-border))}
.wp-block-post.category-aws .tng-card{border-top-color:var(--tng-aws)}
.wp-block-post.category-veeam .tng-card{border-top-color:var(--tng-veeam)}
.tng-card .wp-block-post-title{font-size:1.18rem;line-height:1.3;letter-spacing:-.015em;margin:.2rem 0 0}
.tng-card .wp-block-post-title a{text-decoration:none;color:var(--tng-text)}
.tng-card .wp-block-post-title a:hover{color:var(--tng-primary)}
.tng-card .wp-block-post-excerpt{color:var(--tng-muted);font-size:.95rem;margin:0;flex:1}
.tng-card .wp-block-post-excerpt__more-link{display:inline-block;margin-top:.5rem;font-weight:700;text-decoration:none;color:var(--tng-primary)}
.tng-card .wp-block-post-date{font-size:.8rem;color:var(--tng-muted)}
.tng-feature .tng-card{border-top-width:1px;border-left:6px solid var(--tng-primary);padding:1.8rem 2rem}
.tng-feature .wp-block-post-title{font-size:clamp(1.5rem,3vw,2.1rem)}

/* Source columns (shortcode) */
.tng-sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.25rem}
.tng-source{background:var(--tng-surface);border:1px solid var(--tng-border);border-radius:var(--tng-radius);padding:1.4rem 1.5rem;box-shadow:var(--tng-shadow)}
.tng-source h3{margin:0 0 .8rem;display:flex;align-items:center;gap:.5rem;font-size:1.1rem}
.tng-source ul{list-style:none;margin:0;padding:0}
.tng-source li{padding:.65rem 0;border-top:1px solid var(--tng-border)}
.tng-source li:first-child{border-top:0}
.tng-source a{font-weight:600;text-decoration:none;color:var(--tng-text);line-height:1.35;display:block}
.tng-source a:hover{color:var(--tng-primary)}
.tng-source time{font-size:.78rem;color:var(--tng-muted)}
.tng-source .more{display:inline-block;margin-top:.8rem;font-weight:700;color:var(--tng-primary)}

/* Article */
.tng-article{max-width:44rem;margin-inline:auto}
.tng-article h1{font-size:clamp(1.9rem,4.4vw,2.9rem);line-height:1.1;letter-spacing:-.03em;font-weight:800}
.tng-meta{display:flex;flex-wrap:wrap;gap:.4rem .9rem;align-items:center;color:var(--tng-muted);font-size:.9rem}
.tng-content{font-size:1.125rem;line-height:1.75}
.tng-content :is(h2,h3,h4){letter-spacing:-.02em;line-height:1.25;margin-top:2em}
.tng-content img,.tng-content video{max-width:100%;height:auto;border-radius:12px}
.tng-content iframe{max-width:100%}
.tng-content table{display:block;overflow-x:auto;border-collapse:collapse;width:100%}
.tng-content :is(td,th){border:1px solid var(--tng-border);padding:.5rem .7rem}
.tng-content pre{overflow-x:auto;background:var(--tng-surface-2);border:1px solid var(--tng-border);border-radius:12px;padding:1rem;font-size:.9rem}
.tng-content code{background:var(--tng-surface-2);padding:.1em .35em;border-radius:6px;font-size:.92em}
.tng-content pre code{background:none;padding:0}
.tng-content blockquote{border-left:4px solid var(--tng-accent);margin-inline:0;padding:.2rem 1.2rem;color:var(--tng-muted)}
.tng-content a{color:var(--tng-primary)}
.tng-source-line{margin-top:2rem;padding:.9rem 1.1rem;border:1px dashed var(--tng-border);border-radius:12px;color:var(--tng-muted);font-size:.95rem;background:var(--tng-surface)}
.tng-source-line a{font-weight:700}
.tng-postnav a{text-decoration:none;font-weight:700}

/* Forms (search, Contact Form 7) */
.wpcf7 form p{margin:0 0 1.1rem}
.wpcf7 label{font-weight:600;display:block}
.wpcf7 :is(input[type=text],input[type=email],input[type=url],input[type=tel],textarea,select),
.wp-block-search__input{width:100%;box-sizing:border-box;padding:.8rem 1rem;border:1px solid var(--tng-border);border-radius:12px;background:var(--tng-surface);color:var(--tng-text);font:inherit}
.wpcf7 :is(input,textarea):focus{border-color:var(--tng-primary);outline:3px solid color-mix(in srgb,var(--tng-primary) 25%,transparent)}
.wpcf7 input[type=submit]{background:var(--tng-primary);color:var(--tng-primary-ink);border:0;border-radius:999px;padding:.85rem 1.8rem;font-weight:800;cursor:pointer}
.wpcf7 input[type=submit]:hover{filter:brightness(1.08)}
.wpcf7-response-output{border-radius:12px!important}

/* Pagination */
.wp-block-query-pagination{gap:.5rem;justify-content:center;margin-top:2.5rem}
.wp-block-query-pagination :is(a,.page-numbers){padding:.45rem .9rem;border:1px solid var(--tng-border);border-radius:999px;background:var(--tng-surface);text-decoration:none;font-weight:600;color:var(--tng-text)}
.wp-block-query-pagination .current{background:var(--tng-primary);border-color:var(--tng-primary);color:var(--tng-primary-ink)}

/* Footer */
.tng-footer{background:var(--tng-surface);border-top:1px solid var(--tng-border);color:var(--tng-muted)}
.tng-footer h2,.tng-footer h3{font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;color:var(--tng-text)}
.tng-footer a{color:var(--tng-muted);text-decoration:none}
.tng-footer a:hover{color:var(--tng-primary)}
.tng-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.tng-footer .tng-fine{border-top:1px solid var(--tng-border);font-size:.85rem}
.tng-cta{background:linear-gradient(135deg,var(--tng-primary),color-mix(in srgb,var(--tng-primary) 55%,var(--tng-accent)));color:#fff;border-radius:24px}
.tng-cta h2,.tng-cta p{color:#fff}
.tng-cta .wp-block-button__link{background:#fff;color:#0b3b73}
.wp-block-archives-dropdown select{padding:.5rem .9rem;border-radius:999px;border:1px solid var(--tng-border);background:var(--tng-surface);color:var(--tng-text)}
@media (max-width:781px){.tng-hero-art{order:-1}.tng-hero-art img{width:150px}}

/* --- polish pass 1 --- */
.tng-hero-art img{border-radius:32px;border:1px solid var(--tng-border);background:#fff;box-shadow:var(--tng-shadow)}
:root[data-theme="dark"] .tng-hero-art img{background:transparent}
.tng-header .wp-block-search__inside-wrapper{width:auto;min-width:0}
.tng-header .wp-block-search__button{width:42px;height:42px;min-width:42px;padding:0;margin:0;display:inline-grid;place-items:center;border-radius:999px;background:var(--tng-surface);color:var(--tng-text);border:1px solid var(--tng-border)}
.tng-header .wp-block-search__button svg{fill:currentColor;width:20px;height:20px}
.wp-block-separator,.tng-content hr{border:0;border-top:1px solid var(--tng-border)!important;background:transparent!important;color:var(--tng-border);opacity:1}
@media (max-width:640px){.tng-brand small{display:none}.tng-brand strong{font-size:1.05rem}.tng-header .wp-block-search{display:none}}

/* --- polish pass 2: legacy share buttons from old posts, overflow safety --- */
body{overflow-x:clip}
.tng-content{overflow-wrap:anywhere}
.tng-content :is(.spice_social_share,[class*="spice_share"]):is(ul,div){display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:1.2rem 0;list-style:none}
.tng-content [class*="spice_share_item"]{list-style:none;margin:0}

/* --- contact page (mailto instead of a form) --- */
.tng-contact{background:var(--tng-surface);border:1px solid var(--tng-border);border-radius:24px;padding:clamp(1.5rem,4vw,2.5rem);box-shadow:var(--tng-shadow);text-align:center}
.tng-contact p{color:var(--tng-muted)}
.tng-contact .tng-btn{display:inline-block;background:var(--tng-primary);color:var(--tng-primary-ink)!important;padding:.9rem 2rem;border-radius:999px;font-weight:800;text-decoration:none;font-size:1.1rem;margin:.5rem 0}
.tng-contact .tng-btn:hover{filter:brightness(1.1)}
.tng-contact .tng-alt{font-size:.95rem}
.tng-contact .tng-alt a{font-weight:600}
