/*
Theme Name: Vilken Storlek
Theme URI: https://www.vilkenstorlek.se/
Author: Jalin Film AB / OpenAI
Description: Fristående preview-tema för Vilkenstorlek.se. Byggt för att ersätta Newspaper utan att ändra befintligt innehåll, URL:er eller shortcodes.
Version: 11
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: vilkenstorlek
*/

:root{
  --vs-bg:#f4f6f2;
  --vs-surface:#ffffff;
  --vs-text:#232824;
  --vs-muted:#667067;
  --vs-line:#dfe5dd;
  --vs-green:#6f9f52;
  --vs-green-dark:#456f34;
  --vs-green-soft:#e8f2e2;
  --vs-blue:#2878b8;
  --vs-radius:18px;
  --vs-shadow:0 10px 32px rgba(31,43,30,.07);
  --vs-max:1160px;
  --vs-article:780px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--vs-text);
  background:var(--vs-bg);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--vs-blue);text-decoration-thickness:.08em;text-underline-offset:.15em}
a:hover{color:#155d96}
img{max-width:100%;height:auto}

.vs-shell{width:min(calc(100% - 32px),var(--vs-max));margin-inline:auto}
.vs-site-header{
  position:sticky;top:0;z-index:1000;
  background:rgba(250,251,248,.94);
  border-bottom:1px solid rgba(101,121,98,.16);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.vs-header-inner{min-height:72px;display:flex;align-items:center;gap:28px}
.vs-brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--vs-text);white-space:nowrap}
.vs-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,#86b66a,#5f9148);display:grid;place-items:center;color:#fff;font-weight:800;font-size:18px;box-shadow:0 4px 12px rgba(78,117,58,.2)}
.vs-brand-text{font-weight:760;font-size:20px;letter-spacing:-.025em}
.vs-brand-text small{display:block;color:var(--vs-muted);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-top:-2px}
.vs-nav{margin-left:auto;display:flex;align-items:center;gap:20px;font-size:14px;font-weight:650}
.vs-nav a{color:#414941;text-decoration:none}.vs-nav a:hover{color:var(--vs-green-dark)}
.vs-search-toggle{appearance:none;border:1px solid var(--vs-line);background:#fff;border-radius:999px;padding:9px 14px;cursor:pointer;font:inherit;font-size:14px;color:#485048}

.vs-mobile-nav{display:none}

.vs-main{padding:34px 0 64px}
.vs-content-card{background:var(--vs-surface);border:1px solid var(--vs-line);border-radius:var(--vs-radius);box-shadow:var(--vs-shadow)}

/* Front page */
.vs-hero{padding:56px 0 30px}
.vs-hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:36px;align-items:end}
.vs-kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--vs-green-dark)}
.vs-hero h1{font-size:clamp(42px,7vw,78px);line-height:.98;letter-spacing:-.055em;margin:12px 0 18px;max-width:760px}
.vs-hero p{font-size:20px;line-height:1.55;color:#566056;max-width:720px;margin:0}
.vs-hero-search{background:#fff;border:1px solid var(--vs-line);border-radius:18px;padding:12px;box-shadow:var(--vs-shadow)}
.vs-hero-search form{display:flex;gap:8px}
.vs-hero-search input{min-width:0;flex:1;border:0;background:#f3f6f1;border-radius:12px;padding:14px 15px;font:inherit;outline:none}
.vs-hero-search button{border:0;background:var(--vs-green-dark);color:#fff;border-radius:12px;padding:0 18px;font-weight:700;cursor:pointer}
.vs-hero-search small{display:block;color:var(--vs-muted);font-size:12px;margin:8px 4px 0}

.vs-section{margin-top:34px}
.vs-section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px}
.vs-section-head h2{font-size:25px;letter-spacing:-.03em;margin:0}.vs-section-head p{margin:0;color:var(--vs-muted);font-size:14px}
.vs-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.vs-topic-card{display:block;text-decoration:none;color:var(--vs-text);background:#fff;border:1px solid var(--vs-line);border-radius:16px;padding:19px;min-height:146px;transition:.18s ease;box-shadow:0 3px 14px rgba(31,43,30,.035)}
.vs-topic-card:hover{transform:translateY(-2px);border-color:#c2d2bd;box-shadow:0 10px 24px rgba(31,43,30,.08);color:var(--vs-text)}
.vs-topic-card .vs-card-cat{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--vs-green-dark)}
.vs-topic-card h3{font-size:17px;line-height:1.25;letter-spacing:-.02em;margin:7px 0 7px}
.vs-topic-card p{font-size:13px;line-height:1.45;color:var(--vs-muted);margin:0}
.vs-cat-chips{display:flex;flex-wrap:wrap;gap:9px}
.vs-cat-chips a{background:#fff;border:1px solid var(--vs-line);border-radius:999px;color:#4b554b;text-decoration:none;padding:8px 13px;font-size:13px;font-weight:650}
.vs-cat-chips a:hover{background:var(--vs-green-soft);border-color:#c8ddbd;color:var(--vs-green-dark)}
.vs-home-about{padding:26px 28px}.vs-home-about h2{margin-top:0;font-size:26px}.vs-home-about p:last-child{margin-bottom:0}

/* Single / page */
.vs-entry-hero{
  margin:-1px -1px 0;
  padding:clamp(28px,5vw,48px) clamp(24px,5vw,52px) clamp(30px,5vw,46px);
  border-radius:calc(var(--vs-radius) - 1px) calc(var(--vs-radius) - 1px) 0 0;
  background:
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.62),transparent 31%),
    linear-gradient(135deg,#d3e2d5 0%,#e1eadf 55%,#cfded2 100%);
  border-bottom:1px solid rgba(83,128,67,.20);
}
.vs-entry-hero .vs-breadcrumbs{margin-bottom:22px}
.vs-entry-hero .vs-entry-header h1{max-width:720px}
.vs-entry-hero .vs-entry-meta{margin-bottom:0}
.vs-entry-content-inner{padding:clamp(22px,3vw,28px) clamp(24px,5vw,52px) clamp(28px,5vw,52px)}
.vs-article.vs-article--hero{padding:0;overflow:hidden}
.vs-article-wrap{width:min(calc(100% - 32px),var(--vs-article));margin-inline:auto}
.vs-article{padding:clamp(25px,5vw,52px)}
.vs-breadcrumbs{font-size:12px;color:var(--vs-muted);margin-bottom:18px}.vs-breadcrumbs a{color:inherit;text-decoration:none}.vs-breadcrumbs a:hover{text-decoration:underline}
.vs-entry-header h1{font-size:clamp(34px,5.5vw,55px);line-height:1.04;letter-spacing:-.048em;margin:0 0 16px}
.vs-entry-meta{color:var(--vs-muted);font-size:13px;margin-bottom:30px}
.vs-entry-content{font-size:18px;line-height:1.72;overflow-wrap:anywhere}
.vs-entry-content h2{font-size:31px;line-height:1.15;letter-spacing:-.035em;margin:50px 0 16px}
.vs-entry-content h3{font-size:23px;line-height:1.25;letter-spacing:-.025em;margin:36px 0 12px}
.vs-entry-content h4{font-size:18px;margin:30px 0 10px}
.vs-entry-content p{margin:0 0 22px}.vs-entry-content ul,.vs-entry-content ol{padding-left:1.3em;margin:0 0 24px}.vs-entry-content li{margin:7px 0}
.vs-entry-content blockquote{border-left:4px solid var(--vs-green);margin:30px 0;padding:3px 0 3px 22px;color:#566056;font-size:20px}
.vs-entry-content iframe{max-width:100%}
.vs-entry-content hr{border:0;border-top:1px solid var(--vs-line);margin:40px 0}

/* Legacy boxes – new visual language, same classes */
.textbox-white-line,.textbox-gray-line,.textbox-grey-line,.textbox-lightgrey-line,.textbox-green-line,.textbox-orange-line{
  border:1px solid var(--vs-line)!important;border-radius:14px!important;padding:20px 22px!important;margin:24px 0!important;color:var(--vs-text)!important;box-shadow:none!important
}
.textbox-white-line{background:#fff!important}.textbox-gray-line,.textbox-grey-line{background:#f5f7f4!important}.textbox-lightgrey-line{background:var(--vs-green-soft)!important}.textbox-green-line{background:#fff!important;border-color:#bcd2af!important}.textbox-orange-line{background:#fff!important;border-left:5px solid var(--vs-green)!important}
.textbox-none{width:100%!important;margin:0!important}

/* TablePress */
.tablepress{width:100%!important;border-collapse:separate!important;border-spacing:0!important;border:1px solid var(--vs-line)!important;border-radius:13px!important;overflow:hidden!important;margin:24px 0 32px!important;font-size:15px!important;background:#fff!important}
.tablepress thead th,.tablepress tfoot th{background:#e7f0e2!important;color:#2d4a26!important;font-weight:750!important;border:0!important;padding:12px 13px!important}
.tablepress td{padding:11px 13px!important;border:0!important;border-top:1px solid #edf0ec!important;vertical-align:top!important}.tablepress tbody tr:nth-child(even) td{background:#fafbf9!important}.tablepress tbody tr:hover td{background:#f2f7ef!important}
.tablepress caption{font-size:12px;color:var(--vs-muted);text-align:left;padding:6px 0}

/* Forms / calculators – generic compatibility */
.vs-entry-content input[type="text"],.vs-entry-content input[type="number"],.vs-entry-content input[type="email"],.vs-entry-content select,.vs-entry-content textarea{
  max-width:100%;border:1px solid #ccd4ca;background:#fff;border-radius:10px;padding:11px 12px;font:inherit;color:var(--vs-text)
}
.vs-entry-content button,.vs-entry-content input[type="submit"]{border:0;border-radius:10px;background:var(--vs-green-dark);color:#fff;padding:11px 16px;font:inherit;font-weight:700;cursor:pointer}

/* Old ad helpers */
.ad-small-font{font-size:9px!important;color:#8a918a!important;margin:0!important;padding:4px 0!important}.text-adframe{background:#7ea962!important;border-radius:4px!important}.text-link-color{color:#668b50!important}

/* Archive / search */
.vs-list-header{
  margin:0 0 24px;
  padding:26px 30px;
  border:1px solid rgba(83,128,67,.16);
  border-radius:18px;
  background:
    radial-gradient(circle at 92% 18%,rgba(255,255,255,.58),transparent 30%),
    linear-gradient(135deg,#d3e2d5 0%,#e1eadf 55%,#cfded2 100%);
}
.vs-list-header h1{font-size:clamp(30px,4vw,42px);line-height:1.08;letter-spacing:-.04em;margin:0 0 6px}
.vs-list-header p{color:#5f6b60;margin:0}

.vs-post-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.vs-post-item{
  position:relative;
  min-height:210px;
  background:linear-gradient(180deg,#fbfdf9 0%,#ffffff 40%);
  border:1px solid var(--vs-line);
  border-radius:17px;
  overflow:hidden;
  box-shadow:0 3px 14px rgba(31,43,30,.035);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.vs-post-item::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:5px;
  background:linear-gradient(90deg,#7fa765,#a9c49a);
  opacity:.72;
}
.vs-post-item:hover{
  transform:translateY(-3px);
  border-color:#bed0b8;
  box-shadow:0 14px 30px rgba(31,43,30,.09);
  background:linear-gradient(180deg,#f6faf3 0%,#ffffff 44%);
}
.vs-post-card-link{
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:210px;
  height:100%;
  padding:22px 22px 20px;
  color:var(--vs-text);
  text-decoration:none;
}
.vs-post-card-link:hover{color:var(--vs-text)}
.vs-post-item .vs-card-cat{
  font-size:10px;
  line-height:1.2;
  letter-spacing:.13em;
  text-transform:uppercase;
  font-weight:800;
  color:var(--vs-green-dark);
  margin:0 0 9px;
}
.vs-post-item h2{
  font-size:20px;
  line-height:1.23;
  letter-spacing:-.025em;
  margin:0 0 10px;
  transition:color .18s ease;
}
.vs-post-item:hover h2{color:#365b2a}
.vs-post-item p{
  font-size:14px;
  line-height:1.5;
  color:var(--vs-muted);
  margin:0 0 22px;
}
.vs-post-arrow{
  margin-top:auto;
  align-self:flex-end;
  width:30px;
  height:30px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#edf4e9;
  color:var(--vs-green-dark);
  font-size:18px;
  line-height:1;
  transition:transform .18s ease,background .18s ease;
}
.vs-post-item:hover .vs-post-arrow{
  transform:translateX(3px);
  background:#dcebd5;
}
.vs-pagination{margin-top:28px}.vs-pagination .page-numbers{display:inline-block;padding:7px 10px;border-radius:8px;background:#fff;border:1px solid var(--vs-line);text-decoration:none;color:var(--vs-text)}.vs-pagination .current{background:var(--vs-green-dark);color:#fff;border-color:var(--vs-green-dark)}

/* Search overlay */
.vs-search-panel{display:none;position:fixed;inset:0;z-index:2000;background:rgba(20,26,20,.45);backdrop-filter:blur(5px);padding:80px 16px 16px}.vs-search-panel.is-open{display:block}.vs-search-box{max-width:680px;margin:auto;background:#fff;border-radius:18px;padding:18px;box-shadow:0 25px 70px rgba(0,0,0,.18)}.vs-search-box form{display:flex;gap:8px}.vs-search-box input{flex:1;min-width:0;border:1px solid var(--vs-line);border-radius:12px;padding:14px;font:inherit}.vs-search-box button{border:0;border-radius:12px;padding:0 18px;background:var(--vs-green-dark);color:#fff;font-weight:700}.vs-search-close{display:block;margin:12px auto 0;border:0;background:none;color:var(--vs-muted);cursor:pointer}

.vs-site-footer{border-top:1px solid var(--vs-line);background:#edf1ea;padding:36px 0 44px;color:#576057;font-size:13px}.vs-footer-inner{display:flex;justify-content:space-between;gap:30px;align-items:flex-start}.vs-footer-links{display:flex;flex-wrap:wrap;gap:16px}.vs-footer-links a{color:#505a50;text-decoration:none}.vs-footer-links a:hover{text-decoration:underline}.vs-footer-copy{max-width:480px}

@media(max-width:900px){
  .vs-nav{display:none}.vs-mobile-nav{display:block;margin-left:auto}.vs-search-toggle{padding:8px 11px}
  .vs-hero-grid{grid-template-columns:1fr}.vs-card-grid{grid-template-columns:repeat(2,1fr)}.vs-post-list{grid-template-columns:repeat(2,1fr)}
}


/* Vilkenstorlek – manuella AdSense-zoner */
.vs-ad-zone{margin:34px auto;text-align:center;clear:both;min-height:0}
.vs-ad-zone ins.adsbygoogle{max-width:100%}
.vs-ad-zone--after{margin-top:42px;margin-bottom:8px}
.vs-ad-label{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#98a098;margin-bottom:7px}
@media(max-width:620px){
  body{font-size:16px}.vs-shell,.vs-article-wrap{width:min(calc(100% - 20px),var(--vs-max))}.vs-main{padding-top:18px}.vs-header-inner{min-height:62px}.vs-brand-text{font-size:18px}.vs-brand-text small{display:none}
  .vs-hero{padding-top:28px}.vs-hero h1{font-size:46px}.vs-hero p{font-size:18px}.vs-card-grid,.vs-post-list{grid-template-columns:1fr}.vs-topic-card{min-height:0}.vs-article{padding:26px 20px}.vs-entry-content{font-size:17px}.vs-entry-content h2{font-size:27px;margin-top:42px}.vs-entry-header h1{font-size:38px}.vs-footer-inner{display:block}.vs-footer-links{margin-top:20px}
  .vs-entry-hero{margin:-1px -1px 0;padding:24px 20px 28px;border-radius:17px 17px 0 0}.vs-entry-content-inner{padding:22px 20px 26px}
  .vs-list-header{padding:22px 20px;border-radius:16px}.vs-list-header h1{font-size:32px}
  .vs-post-item,.vs-post-card-link{min-height:0}.vs-post-card-link{padding:20px}
  .tablepress{display:block!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;white-space:normal!important}
}


/* =========================
   VERSION 6
   Grönt toppstreck även på startsidans kort
   ========================= */
.vs-topic-card{
  position:relative;
  overflow:hidden;
}

.vs-topic-card::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:5px;
  background:linear-gradient(90deg,#7fa765,#a9c49a);
  opacity:.72;
}


/* =========================
   VERSION 7
   "Andra läser just nu" under artiklar
   ========================= */
.vs-related{
  margin-top:22px;
  margin-bottom:6px;
}
.vs-related-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin:0 2px 14px;
}
.vs-related-head h2{
  margin:0;
  font-size:clamp(25px,3vw,32px);
  line-height:1.08;
  letter-spacing:-.035em;
}
.vs-related-head p{
  margin:0;
  color:var(--vs-muted);
  font-size:13px;
}
.vs-related-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.vs-related-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:175px;
  padding:20px 19px 18px;
  overflow:hidden;
  text-decoration:none;
  color:var(--vs-text);
  background:linear-gradient(180deg,#fbfdf9 0%,#fff 38%);
  border:1px solid var(--vs-line);
  border-radius:16px;
  box-shadow:0 3px 14px rgba(31,43,30,.035);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.vs-related-card::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:5px;
  background:linear-gradient(90deg,#7fa765,#a9c49a);
  opacity:.72;
}
.vs-related-card:hover{
  transform:translateY(-3px);
  border-color:#bed0b8;
  box-shadow:0 14px 30px rgba(31,43,30,.09);
  color:var(--vs-text);
}
.vs-related-cat{
  margin:3px 0 8px;
  color:var(--vs-green-dark);
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.vs-related-card h3{
  margin:0 0 8px;
  font-size:17px;
  line-height:1.25;
  letter-spacing:-.022em;
}
.vs-related-card p{
  margin:0 0 18px;
  color:var(--vs-muted);
  font-size:13px;
  line-height:1.45;
}
.vs-related-arrow{
  margin-top:auto;
  align-self:flex-end;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#edf4e9;
  color:var(--vs-green-dark);
  font-size:18px;
  transition:transform .18s ease,background .18s ease;
}
.vs-related-card:hover .vs-related-arrow{
  transform:translateX(3px);
  background:#dcebd5;
}
@media(max-width:980px){
  .vs-related-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .vs-related-head{display:block}
  .vs-related-head p{margin-top:5px}
  .vs-related-grid{grid-template-columns:1fr}
  .vs-related-card{min-height:0}
}


/* =========================
   VERSION 8
   AdSense-zoner
   ========================= */
.vs-ad-zone{
  clear:both;
  width:100%;
  margin:32px auto;
  padding:12px 0 8px;
  text-align:center;
  overflow:visible;
}
.vs-ad-zone--intro{
  margin-top:30px;
  margin-bottom:34px;
}
.vs-ad-zone--middle{
  margin-top:38px;
  margin-bottom:38px;
}
.vs-ad-zone--after{
  margin-top:44px;
  margin-bottom:4px;
}
.vs-ad-label{
  margin:0 0 7px;
  color:#899187;
  font-size:9px;
  line-height:1;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.vs-ad-zone .adsbygoogle{
  margin-left:auto;
  margin-right:auto;
}
@media(max-width:620px){
  .vs-ad-zone{margin-top:26px;margin-bottom:28px;padding-top:8px}
  .vs-ad-zone--after{margin-top:34px;margin-bottom:0}
}


/* =========================
   VERSION 11
   Mobil: en sökknapp + robustare tabeller
   ========================= */
.vs-mobile-nav{display:none!important}

/* Alla artikel-tabeller får samma lugna grundstil, även äldre råa HTML-tabeller. */
.vs-entry-content table{
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  border:1px solid var(--vs-line);
  border-radius:13px;
}
.vs-entry-content table th{
  background:#e7f0e2!important;
  color:#2d4a26!important;
  font-weight:750!important;
}
.vs-entry-content table th,
.vs-entry-content table td{
  vertical-align:top;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.vs-entry-content table .vs-empty-col{
  display:none!important;
}

/* Wrapper för tabeller. På desktop märks den knappt. */
.vs-table-scroll{
  width:100%;
  margin:24px 0 32px;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  border-radius:13px;
  scrollbar-width:thin;
}
.vs-table-scroll > table{
  margin:0!important;
}

/* Smala tabeller får fylla artikelbredden. */
.vs-table-scroll.is-compact > table{
  width:100%!important;
  min-width:0!important;
  table-layout:auto!important;
}

/* Breda tabeller behåller läsbara kolumner och scrollas i sidled på mobil. */
.vs-table-scroll.is-wide > table{
  width:var(--vs-table-min,680px)!important;
  min-width:var(--vs-table-min,680px)!important;
  max-width:none!important;
  table-layout:auto!important;
}

@media(max-width:620px){
  .vs-header-inner{
    gap:12px;
  }
  .vs-search-toggle{
    margin-left:auto;
    flex:0 0 auto;
  }

  /* Återställ den äldre TablePress-regeln som tryckte ihop breda tabeller. */
  .tablepress{
    display:table!important;
    overflow:visible!important;
    width:100%!important;
  }

  .vs-table-scroll{
    position:relative;
    margin-left:0;
    margin-right:0;
  }

  .vs-table-scroll.is-wide{
    padding-top:24px;
  }

  .vs-table-scroll.is-wide::before{
    content:"Svep åt sidan →";
    position:absolute;
    top:0;
    right:2px;
    color:#7b857a;
    font-size:11px;
    line-height:1;
    letter-spacing:.02em;
  }

  .vs-table-scroll.is-wide > table th,
  .vs-table-scroll.is-wide > table td{
    min-width:105px;
  }

  .vs-table-scroll.is-wide > table th:first-child,
  .vs-table-scroll.is-wide > table td:first-child{
    min-width:125px;
  }
}
