/* === Opskrift-Drikke — Green Modern Theme v3 (clean, centered, robust) === */

/* -------- Color System -------- */
:root{
  --bg:#f6fbf8;
  --surface:#ffffff;
  --ink:#0f1712;
  --muted:#66746b;
  --brand:#18a56d;
  --brand-2:#0f7f55;
  --line:#e3ebe6;
  --ring:rgba(24,165,109,.32);
  --shadow:0 12px 24px rgba(8,24,20,.08), 0 2px 8px rgba(8,24,20,.06);
  --shadow-sm:0 6px 14px rgba(8,24,20,.06), 0 1px 4px rgba(8,24,20,.05);

  /* Orange accent (søgefelt) */
  --accent:#f97316;
  --accent-2:#fb923c;
  --accent-bg:#fff7f2;
  --accent-ring:rgba(249,115,22,.25);
}

/* Dark theme */
[data-theme="dark"],
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0d1410;
    --surface:#0f1914;
    --ink:#e7f4ed;
    --muted:#a6b5ad;
    --brand:#27c184;
    --brand-2:#1ca070;
    --line:#213328;
    --ring:rgba(39,193,132,.38);
    --shadow:0 12px 24px rgba(0,0,0,.42), 0 2px 8px rgba(0,0,0,.32);
    --shadow-sm:0 6px 14px rgba(0,0,0,.38), 0 1px 4px rgba(0,0,0,.28);

    --accent:#f59e0b;
    --accent-2:#fbbf24;
    --accent-bg:#1a130c;
    --accent-ring:rgba(245,158,11,.35);
  }
}

/* -------- Base -------- */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font:16px/1.6 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial;
  color:var(--ink);
  background:var(--bg);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3{margin:0 0 10px}
h1{font-size:40px; line-height:1.15}
h2{font-size:24px}
h3{font-size:19px}
p{margin:0 0 12px}

/* -------- Layout -------- */
.container{max-width:1120px; margin:0 auto; padding:0 20px}

/* -------- Header -------- */
.site-header{
  position:sticky; top:0; z-index:30;
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
[data-theme="dark"] .site-header{background:rgba(15,25,20,.7)}
.site-header .inner{display:flex; align-items:center; gap:14px; height:64px}
.logo{display:flex; align-items:center; gap:10px; font-weight:800}
.logo-ico{width:24px; height:24px; color:var(--brand)}
nav{margin-left:auto; display:flex; align-items:center; gap:8px}
nav a{padding:8px 10px; border-radius:10px}
nav a:hover{background:rgba(24,165,109,.10)}

/* -------- Hero -------- */
.hero{
  padding:30px 0 16px;
  background:
    radial-gradient(900px 300px at 20% -10%, rgba(24,165,109,.12), transparent 60%),
    radial-gradient(600px 240px at 100% 0%, rgba(24,165,109,.10), transparent 60%);
}
.hero h1{font-size:44px}
.hero-sub{color:var(--muted); font-size:18px}

/* -------- Søgefelt (shared) -------- */
.search-box{
  display:flex; align-items:center; gap:10px;
  padding:12px 14px;
  border-radius:16px;
  background:var(--accent-bg);
  border:2px solid var(--accent);
  box-shadow:0 2px 8px rgba(249,115,22,.10);
  transition:box-shadow .2s ease, border-color .2s ease;
}
.search-box:focus-within{
  border-color:var(--accent-2);
  box-shadow:0 0 0 3px var(--accent-ring);
}
.search-box input{
  width:100%; background:transparent;
  border:none; outline:none;
  font-size:16px; color:var(--ink);
}
.search-box input::placeholder{color:#a1775c}
.search-box svg{color:var(--accent); width:20px; height:20px}

/* Hero-varianten */
.hero-search-wrap{position:relative; max-width:520px}
.hero-search{ composes: search-box; }

/* -------- Autocomplete -------- */
#suggestions {
  position:absolute; top:100%; left:0; right:0; margin-top:6px; z-index:50;
  background:#fff;
  border:1px solid rgba(249,115,22,0.25);
  border-radius:14px;
  box-shadow:0 8px 24px rgba(0,0,0,0.08);
  overflow:hidden;
  max-height:320px; overflow-y:auto;
  display:none;
}
#suggestions.active { display:block; }
#suggestions div{ padding:10px 14px; cursor:pointer; font-size:15px; border-bottom:1px solid rgba(0,0,0,0.04); }
#suggestions div:last-child{ border-bottom:none; }
#suggestions div:hover{ background:#fff7f2; }
#suggestions .suggest-meta{ display:block; color:#666; font-size:13px; margin-top:2px; }

/* -------- Cards -------- */
.card{
  display:flex; flex-direction:column;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--surface);
  box-shadow:var(--shadow-sm);
  transition:transform .15s ease;
}
.card:hover{transform:translateY(-3px)}

/* -------- Footer -------- */
.site-footer{
  margin-top:24px;
  padding:22px 0;
  border-top:1px solid var(--line);
  color:var(--muted);
  text-align:center;
}

/* -------- Input neutralisering -------- */
input, input[type="search"]{
  border:none !important;
  outline:none !important;
  box-shadow:none !important;
  background-clip:padding-box;
  -webkit-appearance:none;
  appearance:none;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration{ display:none !important; }

/* -------- Guide-typografi -------- */
#guideContent, #guideContent * { text-align:left; }
#guideContent img { max-width:100%; height:auto; }

.guide-article h2{ margin:20px 0 10px; font-size:22px; font-weight:600; }
.guide-article ol{ margin-left:1.25rem; list-style:decimal; }
.guide-article ul{ margin-left:1.25rem; list-style:disc; }
.guide-article p{ margin:8px 0; }

/* FAQ-kort */
.faq-card{
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:16px;
  padding:16px;
  box-shadow:var(--shadow-sm);
}
.faq-card h2{ margin-top:0; }
.faq-item{ border-top:1px dashed var(--line); padding-top:10px; margin-top:10px; }
.faq-item:first-child{ border-top:0; padding-top:0; margin-top:0; }
.faq-item summary{ cursor:pointer; font-weight:600; }

/* -------- Responsive -------- */
@media (max-width:860px){
  h1{font-size:36px}
}
@media (max-width:640px){
  h1{font-size:30px}
}
/* — Header spacing — */
.site-header .inner nav { gap: 6px; }
.site-header .inner nav a { padding: 6px 8px; }

/* — Kort uden billeder — */
.card { border-radius: 1rem; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
#results .card .aspect-[4/3],
#popularRecipes .card .aspect-[4/3] { display:none; }

/* — Grid på lister — */
#results { display:grid; gap:1.5rem; grid-template-columns:repeat(1,minmax(0,1fr)); }
@media (min-width:640px){ #results{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px){ #results{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
#popularRecipes { display:grid; gap:1.5rem; grid-template-columns:repeat(1,minmax(0,1fr)); }
@media (min-width:640px){ #popularRecipes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px){ #popularRecipes{ grid-template-columns:repeat(4,minmax(0,1fr)); } }

/* — Søgefelt — */
.search-box{
  display:flex; align-items:center; gap:10px;
  padding:12px 14px; border-radius:16px;
  background:#fff7f2; border:1px solid rgba(249,115,22,.4);
  box-shadow:0 2px 8px rgba(249,115,22,.1);
}
.search-box input[type="search"]{
  width:100%; background:transparent; border:none; outline:none;
  font-size:16px; color:var(--ink);
}
.search-box input::placeholder{ color:#a1775c }

/* — WebKit fix — */
input[type="search"]{
  -webkit-appearance:none; appearance:none; background-clip:padding-box;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration{ display:none; }

/* — Kompakte kort — */
#results .card {
  padding:16px; border-radius:16px; background:#fff;
  box-shadow:0 4px 18px rgba(0,0,0,.06);
}
#results .card .aspect-\[4\/3\]{display:none;}

/* — PriceRunner kort — */
#pr-recipe-slot > .card,
#pr-recipe-slot .pr-wrapper {
  border:1px solid var(--line,#e5e7eb);
  background:#fff;
  border-radius:16px;
  padding:16px;
  box-shadow:var(--shadow-sm,0 6px 14px rgba(0,0,0,.06));
}

/* ---- Favoritknap (hjerte) ---- */
.fav-btn{
  position:absolute; top:10px; right:10px;
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px;
  border-radius:999px; border:1px solid rgba(0,0,0,.08);
  background:#fff; box-shadow:0 6px 14px rgba(0,0,0,.06);
  transition:transform .12s ease, background .12s ease, border-color .12s ease;
}
.fav-btn:hover{ transform:translateY(-1px); background:#fff8f3; border-color:#f7c6a4; }
.fav-btn svg{ width:20px; height:20px; fill:none; stroke:#222; stroke-width:2; }
.fav-btn.is-fav{ background:#ffefe6; border-color:#f97316; }
.fav-btn.is-fav svg{ fill:#f97316; stroke:#f97316; }
.fav-requires-auth { opacity:.75; }
.fav-requires-auth:hover { opacity:1; }

/* ---- Guide content fix ---- */
#guideContent, #guideContent * {
  text-align:left !important;
  float:none !important;
}

/* ---- TOC venstrejustering ---- */
#toc{
  display:flex !important;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  text-align:left !important;
}
#toc a{
  display:block;
  width:100%;
  text-align:left !important;
}
/* --- Sæsonsektion --- */
.seasonal-section {
  margin: 40px 0;
  padding: 40px 0;
  background: #fff7f2;
  border-top: 1px solid #f0e3da;
  border-bottom: 1px solid #f0e3da;
}
.section-title {
  font-size: 24px;
  font-weight: 700;
  color: #f97316;
  margin-bottom: 6px;
  text-align: center;
}
.section-sub {
  color: #6b4c3a;
  text-align: center;
  margin-bottom: 24px;
}
.seasonal-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.seasonal-grid .card {
  border: 1px solid #f0e3da;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 6px 14px rgba(0,0,0,.05);
}
/* Sæsonens favoritter – kompakte kort */
#seasonalGrid .card{
  padding: 14px;           /* lidt mindre end standard */
  border-radius: 14px;
}

#seasonalGrid .card h3{
  font-size: 1rem;         /* kompakt titel (≈ text-base) */
  line-height: 1.35;
}

#seasonalGrid .card .text-sm{
  font-size: 0.9rem;       /* en anelse mindre brødtekst */
}
/* Leaf after "Sæsonens favoritter" */
#seasonal h2{
  display: inline-flex;
  align-items: center;
  gap: .5rem;          /* space between text and leaf */
}
#seasonal h2::after{
  content: "🍁";
  font-size: 1.15em;   /* a touch larger than text */
  line-height: 1;
  transform: translateY(1px);
}

/* (Optional) subtle float animation */
@media (prefers-reduced-motion: no-preference){
  #seasonal h2::after{
    animation: leaf-float 4s ease-in-out infinite;
  }
  @keyframes leaf-float{
    0%,100% { transform: translateY(1px) rotate(0deg); }
    50%    { transform: translateY(-2px) rotate(-6deg); }
  }
}
/* Sparkle after "Mest populære opskrifter" */
#popular h2{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}
#popular h2::after{
  content:"✨";          /* swap to 🏆 or 🔥 if you prefer */
  font-size:1.15em;
  line-height:1;
  transform:translateY(1px);
}
/* Popular title icon */
#popularTitle{
  display:inline-flex; align-items:center; gap:.5rem;
}
#popularTitle::after{
  content:"🏆 ✨";
  font-size:1.05em; line-height:1; transform:translateY(1px);
}

/* Tight spacing under the header and into the grid */
#popular .section-head{ margin-bottom: .5rem !important; }
#popular .text-stone-600{ margin-top: .25rem !important; }
#popular #popularRecipes{ margin-top: .5rem !important; }

/* Just in case: remove any stray top-margins on first row cards */
#popular #popularRecipes > *{ margin-top: 0 !important; }

/* If seasonal sits right above, keep the junction tight */
.seasonal-section + #popular{ margin-top: 1rem !important; }
/* --- Fix gap under "Mest populære" --- */
#popular #popularRecipes{ margin-top:.5rem !important; }     /* tighten grid start */
#popular #popularRecipes > *{ margin-top:0 !important; }      /* kill wrapper mt-* */
#popular #popularRecipes .card{ margin-top:0 !important; }    /* kill card mt-* */
/* Stram “Mest populære” spacing */
#popular .section-head p { margin-bottom: 0 !important; } /* fjern p’s default mb */
#popular .section-head     { margin-bottom: .5rem !important; } /* bevidst lille bundmargin */
#popular #popularRecipes   { margin-top: .5rem !important; }    /* lille afstand til grid */
/* ==== Stram ALT under "Mest populære" (hard reset) ==== */
#popular .section-head { margin-bottom: .25rem !important; }
#popular .section-head p { margin-top: .25rem !important; margin-bottom: 0 !important; }

/* Gridens topafstand helt i bund (uanset hvad JS/utility sætter) */
#popular #popularRecipes {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Hvis renderen lægger wrappers med mt/pt på første række */
#popular #popularRecipes > * {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
#popular #popularRecipes > *:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Og selve kortet – ingen utils “siver igennem” */
#popular #popularRecipes .card {
  margin-top: 0 !important;
  padding-top: inherit; /* behold kortets egen padding, men ingen ekstra på toppen */
}
/* === Top indhold — badge + stjerner === */
.top-card{
  position:relative;
  border:1px solid var(--line,#e5e7eb);
  background:#fff;
  border-radius:16px;
  padding:16px;
  box-shadow:var(--shadow-sm,0 6px 14px rgba(0,0,0,.06));
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.top-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(8,24,20,.10);
  border-color:#f7c6a4;
}

/* Lille bånd oppe i hjørnet */
.top-badge{
  position:absolute; top:10px; left:10px;
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px; font-weight:700;
  color:#7a3b00; /* mørk orange-brun */
  background:linear-gradient(180deg,#fff1e6, #ffe5d3);
  border:1px solid #f8ccae;
  box-shadow:0 6px 14px rgba(0,0,0,.06);
}
.top-badge .spark{
  display:inline-block; line-height:1;
  filter: drop-shadow(0 0 2px rgba(249,115,22,.25));
}

/* Titel + undertekst spacing */
.top-card h3{ margin:8px 0 2px; font-size:1rem; line-height:1.35; }
.top-card .sub{ font-size:0.9rem; opacity:.75; }

/* Stjernerække under titlen */
.top-stars{
  display:flex; align-items:center; gap:2px; margin-top:6px;
}
.top-stars svg{
  width:16px; height:16px; display:block;
}
.top-stars .fill{
  /* varm gul/amber gradient i stjernerne */
  fill:url(#top-star-grad);
}

/* Dark-mode polering */
[data-theme="dark"] .top-card{ background:#0f1914; border-color:#213328; }
[data-theme="dark"] .top-badge{
  color:#7a3b00;
  background:linear-gradient(180deg,#2b211a,#3a2a1f);
  border-color:#4a3a2e;
}

