/*
Theme Name: Exoskeleton World
Theme URI: https://exoskeletonworld.com
Description: Independent exoskeleton catalog & guide. Classic WordPress theme — a pixel-for-pixel port of the Exoskeleton World design. No build step, no paid plugins — native custom post types, taxonomies and meta only.
Version: 1.2.0
Author: Exoskeleton World
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: exovia
Tags: catalog, blog, custom-colors, custom-menu, featured-images, translation-ready
*/

/* ===========================================================================
   EXOVIA — visual system
   Inline styles in the templates carry layout verbatim from the design export.
   This file holds only what inline styles cannot express:
   design tokens, :hover, ::selection, @keyframes, @media, reveal animation.
   ========================================================================= */

:root{
  --accent:#0E6E62;
  --paper:#F4F0E9;
  --surface:#FCFAF6;
  --ink:#211E1A;
  --ink-2:#5C564C;
  --muted:#8C857A;
  --muted-2:#A79E8E;
  --border:#E7E0D5;
  --border-2:#E0D8CB;
  --border-3:#D8CFC0;
  --hair:#EFE9DF;
  --img-dark:#2A2620;
  --img-cream:#ECE6DB;
  --radius:12px;
  --radius-lg:20px;
  --display:'Playfair Display';
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:#F4F0E9;
  color:#211E1A;
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  overflow-x:hidden;
}
a{color:inherit}
img{max-width:100%;display:block}
::selection{background:#0E6E62;color:#fff}

/* WordPress core helpers */
.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute;word-wrap:normal!important;
}
.skip-link{position:absolute;left:-9999px;z-index:100;}
.skip-link:focus{
  left:8px;top:8px;background:#fff;color:#211E1A;padding:10px 16px;border-radius:10px;
  border:1px solid #D8CFC0;font-weight:600;
}

/* Image zoom-on-hover (decorative panels) */
.ev-zoom img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.ev-zoom:hover img{transform:scale(1.05)}

/* Neutral image placeholder fills its slot */
.ev-ph{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.ev-ph svg{width:46px;height:46px;opacity:.32}
.ev-ph--dark{background:#2A2620}
.ev-ph--dark svg{stroke:#fff;opacity:.28}
.ev-ph--cream{background:#ECE6DB}
.ev-ph--cream svg{stroke:#8C857A;opacity:.5}
.ev-slot-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

@keyframes evDrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ---- Hover states (inline carries the base; these override on :hover) ---- */
.ev-link-accent:hover{color:var(--accent)!important}
.ev-btn:hover{background:color-mix(in srgb, var(--accent) 84%, #000)!important}
.ev-btn-sec:hover{border-color:var(--ink)!important}
.ev-pill:hover{border-color:var(--accent)!important;color:var(--accent)!important}
.ev-card:hover{border-color:var(--border-3)!important}
.ev-row:hover{background:#F7F3EC!important}
.ev-fade:hover{opacity:.72!important}
.ev-foot-link:hover{color:#fff!important}
.ev-social:hover{border-color:var(--accent)!important;color:#fff!important}
.ev-btn-news:hover{background:color-mix(in srgb, var(--accent) 80%, #fff)!important}

/* ---- Responsive nav: render both, CSS picks one at 860px ---- */
.ev-nav-desktop{display:flex}
.ev-nav-burger{display:none}
.ev-mobile-menu{display:none}
.ev-mobile-menu.is-open{display:flex}
@media (max-width:859px){
  .ev-nav-desktop{display:none}
  .ev-nav-burger{display:inline-flex}
}

/* ---- Custom logo: clamp to the nav height so an upload never overflows ---- */
.custom-logo-link{display:inline-flex;align-items:center;max-width:60vw;overflow:hidden}
.custom-logo{max-height:44px!important;width:auto!important;height:auto;max-width:260px;object-fit:contain}

/* ---- Footer round social buttons ---- */
.ev-social-round:hover{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}

/* ---- Single review: balanced content + sticky spec sidebar ---- */
.ev-review-grid{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,48px);align-items:start}
.ev-review-grid .ev-prose{max-width:none}
@media (min-width:920px){
  .ev-review-grid{grid-template-columns:300px minmax(0,1fr)}
  .ev-review-grid > aside{position:sticky;top:88px}
}

/* ---- Single review: at-a-glance stat tiles ---- */
.ev-glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:clamp(12px,1.4vw,16px)}
.ev-tile{background:#fff;border:1px solid #E7E0D5;border-radius:var(--radius-lg);padding:clamp(16px,1.8vw,22px);display:flex;flex-direction:column;gap:12px}
.ev-tile-ic{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:color-mix(in srgb,var(--accent) 12%,#fff);color:var(--accent)}
.ev-tile-label{font-family:'Hanken Grotesk',sans-serif;font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8C857A}
.ev-tile-value{font-family:'Newsreader',serif;font-weight:600;font-size:clamp(18px,2vw,22px);color:#211E1A;line-height:1.15}

/* ---- Single review: pros / cons ---- */
.ev-proscons{display:grid;grid-template-columns:1fr;gap:clamp(16px,2vw,24px)}
@media (min-width:760px){.ev-proscons{grid-template-columns:1fr 1fr}}
.ev-pc{background:#fff;border:1px solid #E7E0D5;border-radius:var(--radius-lg);padding:clamp(20px,2.4vw,28px)}
.ev-pc h3{font-family:'Newsreader',serif;font-weight:600;font-size:clamp(18px,2vw,22px);color:#211E1A;margin:0 0 16px;display:flex;align-items:center;gap:10px}
.ev-pc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.ev-pc li{display:flex;align-items:flex-start;gap:11px;font-family:'Hanken Grotesk',sans-serif;font-size:15px;line-height:1.5;color:#3A352D}
.ev-pc li svg{flex:none;margin-top:2px}
.ev-pc--pro h3 svg,.ev-pc--pro li svg{color:var(--accent)}
.ev-pc--con h3 svg,.ev-pc--con li svg{color:#B25A45}

/* ---- Single review: full specifications (freeform key:value) ---- */
.ev-specgrid{display:grid;grid-template-columns:1fr;gap:0;background:#fff;border:1px solid #E7E0D5;border-radius:var(--radius-lg);overflow:hidden}
@media (min-width:640px){.ev-specgrid{grid-template-columns:1fr 1fr}}
.ev-specrow{display:flex;justify-content:space-between;gap:16px;padding:13px clamp(16px,2vw,20px);border-bottom:1px solid #EFE9DF}
.ev-specrow .k{font-family:'Hanken Grotesk',sans-serif;font-size:13px;font-weight:600;color:#8C857A}
.ev-specrow .v{font-family:'Newsreader',serif;font-size:16px;color:#211E1A;text-align:right}

/* ---- Scroll reveal: hidden only once JS confirms it can animate ---- */
.ev-reveal-ready [data-reveal]{
  opacity:0;transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.22,.7,.2,1), transform .75s cubic-bezier(.22,.7,.2,1);
  will-change:opacity, transform;
}
.ev-reveal-ready [data-reveal].ev-shown{opacity:1;transform:none}

/* ---- Pagination (the_posts_pagination / the_post_navigation) ---- */
.pagination .nav-links,.posts-navigation .nav-links{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
}
.pagination .page-numbers,.posts-navigation a{
  display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;
  padding:0 12px;border:1px solid #D8CFC0;border-radius:10px;background:#fff;
  font-family:'Hanken Grotesk',sans-serif;font-weight:600;font-size:15px;color:#211E1A;text-decoration:none;
}
.pagination .page-numbers.current{background:var(--accent);border-color:var(--accent);color:#fff}
.pagination a.page-numbers:hover,.posts-navigation a:hover{border-color:var(--accent);color:var(--accent)}
.pagination .page-numbers.dots{border:none;background:none}

/* ---- Default search form ---- */
.search-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.search-form .search-field{
  flex:1;min-width:220px;padding:13px 16px;border:1px solid #D8CFC0;border-radius:var(--radius);
  background:#fff;font-family:'Hanken Grotesk',sans-serif;font-size:16px;color:#211E1A;
}
.search-form .search-submit{
  padding:13px 22px;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;
  font-family:'Hanken Grotesk',sans-serif;font-weight:600;font-size:16px;cursor:pointer;
}

/* ---- Long-form prose (the_content on reviews & posts) ---- */
.ev-prose{font-family:'Hanken Grotesk',sans-serif;font-size:17px;line-height:1.75;color:#2A2620}
.ev-prose>*{margin:0 0 1.1em}
.ev-prose h2{font-family:'Newsreader',serif;font-weight:600;font-size:clamp(24px,3vw,32px);line-height:1.15;color:#211E1A;margin:1.6em 0 .5em}
.ev-prose h3{font-family:'Newsreader',serif;font-weight:600;font-size:clamp(20px,2.2vw,24px);line-height:1.2;color:#211E1A;margin:1.4em 0 .4em}
.ev-prose h4{font-family:'Hanken Grotesk',sans-serif;font-weight:700;font-size:18px;color:#211E1A;margin:1.3em 0 .3em}
.ev-prose a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.ev-prose ul,.ev-prose ol{padding-left:1.3em}
.ev-prose li{margin:.4em 0}
.ev-prose img{border-radius:var(--radius);height:auto}
.ev-prose blockquote{margin:1.4em 0;padding:4px 0 4px 22px;border-left:3px solid var(--accent);font-family:'Newsreader',serif;font-style:italic;font-size:20px;color:#211E1A}
.ev-prose code{background:#ECE6DB;padding:2px 6px;border-radius:6px;font-size:.9em}
.ev-prose hr{border:none;border-top:1px solid #E7E0D5;margin:2em 0}
.ev-prose figcaption{font-size:13px;color:#8C857A;margin-top:6px}

/* ---- Editor / block defaults so wp_head content stays on-brand ---- */
.aligncenter{margin-left:auto;margin-right:auto}
.alignleft{float:left;margin:0 1.5em 1em 0}
.alignright{float:right;margin:0 0 1em 1.5em}
.wp-caption-text{font-size:13px;color:#8C857A}
