@import url('https://fonts.googleapis.com/css2?family=Cardo:ital,wght@0,400;0,700;1,400&family=Questrial&display=swap');

/* ================= TOKENS ================= */
:root{
  --forest:#303B2D;
  --sage:#777957;
  --rose:#C48E91;
  --sand:#CBBBA2;
  --pink:#D65D7A;
  --cream:#F5EAD6;
  --gold:#D7B968;
  --white:#FFFAF1;

  --ink:var(--forest);
  --ink-70:rgba(48,59,45,.72);
  --ink-45:rgba(48,59,45,.46);
  --cream-70:rgba(245,234,214,.72);
  --cream-45:rgba(245,234,214,.46);

  --serif:'Cardo','Iowan Old Style',ui-serif,Georgia,serif;
  --sans:'Questrial',ui-sans-serif,system-ui,sans-serif;
  --wrap:1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
[id]{ scroll-margin-top:90px; }
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--sans); line-height:1.65; -webkit-font-smoothing:antialiased;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}
:focus-visible{ outline:2px solid var(--pink); outline-offset:3px; }

.wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(20px,5vw,56px); }

h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; line-height:1.08; margin:0; letter-spacing:-.01em; }
h1{ font-size:clamp(2.7rem,4.6vw + 1rem,5.6rem); font-weight:400; letter-spacing:-.02em; }
h2{ font-size:clamp(2.1rem,2.6vw + 1.2rem,3.6rem); font-weight:400; letter-spacing:-.015em; }
h3{ font-size:clamp(1.35rem,.7vw + 1.1rem,1.7rem); font-weight:500; }
p{ margin:0 0 1em; max-width:62ch; }
.lede{ font-size:clamp(1.05rem,.3vw + 1rem,1.25rem); color:var(--ink-70); max-width:54ch; }
.italic{ font-style:italic; }
em{ font-style:normal; color:var(--gold); }

.eyebrow{
  display:inline-flex; gap:9px; align-items:center;
  color:var(--pink); font-size:.76rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
}
.eyebrow::before{ content:'✦'; color:var(--gold); font-size:1rem; }
.on-dark .eyebrow{ color:var(--gold); }
.on-dark .eyebrow::before{ color:var(--cream); }

/* ================= BUTTONS ================= */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  border:1px solid transparent; border-radius:999px;
  padding:.95em 1.7em; font-family:var(--sans); font-weight:600; font-size:.98rem;
  text-decoration:none; cursor:pointer; transition:.28s ease;
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(48,59,45,.16); }
.btn-primary{ color:var(--white); background:var(--pink); }
.btn-primary:hover{ background:#C44E6C; }
.btn-light{ color:var(--forest); background:var(--cream); }
.btn-outline{ color:inherit; border-color:currentColor; background:transparent; }
.text-link{ text-decoration:underline; text-underline-offset:.25em; text-decoration-color:var(--ink-45); }
.text-link:hover{ text-decoration-color:var(--ink); }

/* ================= NAV ================= */
.site-nav{
  position:sticky; top:0; z-index:50;
  background:rgba(48,59,45,.72);
  backdrop-filter:blur(10px);
}
.site-nav .wrap{ display:flex; align-items:center; justify-content:space-between; padding-block:20px; }
.logo{ display:flex; align-items:center; gap:12px; font-family:var(--serif); font-size:1.3rem; color:var(--cream); text-decoration:none; }
.logo-mark{ width:32px; height:32px; border-radius:50%; flex:none; object-fit:cover; }
.navlinks{ display:flex; gap:30px; align-items:center; list-style:none; margin:0; padding:0; }
.navlinks a{ color:var(--cream-70); text-decoration:none; font-size:.94rem; transition:color .25s ease; }
.navlinks a:hover, .navlinks a[aria-current="page"]{ color:var(--gold); }
.navlinks a.btn-light, .navlinks a.btn-light:hover, .navlinks a.btn-light[aria-current="page"]{ color:var(--forest); }
.navlinks .btn-light{ color:var(--forest); }
.navlinks .btn-light:hover{ color:var(--forest); opacity:.85; }
.nav-toggle{ display:none; background:none; border:0; color:var(--cream); font-size:1.5rem; cursor:pointer; }
@media (max-width:780px){
  .nav-toggle{ display:block; }
  .navlinks{
    display:none; position:absolute; top:100%; left:14px; right:14px;
    flex-direction:column; align-items:flex-start; gap:4px;
    padding:18px; background:var(--forest); border:1px solid rgba(245,234,214,.15); border-radius:12px;
  }
  .navlinks.open{ display:flex; }
  .navlinks li{ width:100%; padding-block:8px; }
}

/* ================= SECTIONS (generic) ================= */
section{ padding-block:clamp(64px,10vw,128px); }
.on-dark{ background:var(--forest); color:var(--cream); }
.on-dark .lede{ color:var(--cream-70); }
.on-sand{ background:var(--sand); }
.on-rose{ background:var(--rose); color:var(--white); }
.on-rose .lede{ color:rgba(255,250,241,.85); }

.section-head{ display:flex; justify-content:space-between; gap:30px; align-items:flex-end; margin-bottom:56px; flex-wrap:wrap; }
.section-head .lede{ max-width:390px; }
.section-head h2{ margin-top:16px; }

/* ================= HERO (photo) ================= */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:center;
  color:var(--cream); overflow:clip;
  padding-block:110px 70px;
}
.hero-photo{
  position:absolute; inset:-3%; z-index:0;
  background-image:url('assets/hero-garden.jpg');
  background-size:cover; background-position:center 42%;
  filter:saturate(1.05) brightness(.97);
  animation:kenBurns 30s ease-in-out infinite alternate;
}
@keyframes kenBurns{
  0%{ transform:scale(1) translate(0,0); }
  100%{ transform:scale(1.1) translate(-1.4%,-1%); }
}
.hero::before{
  content:''; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(100deg, rgba(19,24,17,.82) 0%, rgba(19,24,17,.58) 42%, rgba(19,24,17,.3) 64%, rgba(19,24,17,.55) 100%),
    linear-gradient(180deg, rgba(19,24,17,.4) 0%, transparent 26%, transparent 74%, rgba(19,24,17,.62) 100%);
}
.hero-sparkles{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.sparkle{
  position:absolute; width:5px; height:5px; border-radius:50%;
  background:var(--gold); box-shadow:0 0 9px 1px rgba(215,185,104,.8);
  animation:twinkle 3.6s ease-in-out infinite;
}
@keyframes twinkle{ 0%,100%{ opacity:.25; transform:scale(.75);} 50%{ opacity:1; transform:scale(1.2);} }
@media (prefers-reduced-motion: reduce){ .hero-photo{ animation:none; } .sparkle{ animation:none; opacity:.7; } }

/* Winter variant — used for The Root and any future cold-season event pages */
.hero-photo--winter{
  background-image:url('assets/atmosphere-forest.jpg');
  background-position:center 30%;
  filter:grayscale(.45) brightness(.55) saturate(.8) sepia(.15) hue-rotate(150deg);
}
.hero-photo--root{
  background-image:url('assets/hero-root.jpg');
  background-position:center 22%;
  filter:saturate(1.05) brightness(.92);
}
.hero--winter::before{
  background:
    linear-gradient(100deg, rgba(10,16,22,.86) 0%, rgba(10,16,22,.62) 42%, rgba(10,16,22,.35) 64%, rgba(10,16,22,.6) 100%),
    linear-gradient(180deg, rgba(10,16,22,.45) 0%, transparent 26%, transparent 74%, rgba(10,16,22,.66) 100%);
}
.hero--root::before{
  background:
    linear-gradient(100deg, rgba(15,10,7,.9) 0%, rgba(15,10,7,.72) 42%, rgba(15,10,7,.45) 64%, rgba(15,10,7,.7) 100%),
    linear-gradient(180deg, rgba(15,10,7,.55) 0%, transparent 26%, transparent 74%, rgba(15,10,7,.75) 100%);
}
.sparkle--snow{
  background:var(--cream); box-shadow:0 0 7px 1px rgba(245,234,214,.75);
  animation-name:snowfall;
  animation-timing-function:ease-in-out;
  animation-iteration-count:infinite;
}
@keyframes snowfall{
  0%{ transform:translateY(-6px); opacity:.2; }
  50%{ opacity:.9; }
  100%{ transform:translateY(14px); opacity:.2; }
}
@media (prefers-reduced-motion: reduce){ .sparkle--snow{ animation:none; opacity:.6; } }

.hero-content{ position:relative; z-index:2; max-width:720px; padding-top:40px; }
.hero h1{ margin:22px 0; color:var(--cream); }
.hero-copy{ max-width:540px; color:rgba(245,234,214,.85); font-size:1.14rem; }
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-top:32px; }
.hero-microcopy{ margin-top:18px; font-size:.85rem; letter-spacing:.03em; color:rgba(245,234,214,.7); }
.scroll-note{
  position:absolute; z-index:2; bottom:30px; left:50%; transform:translateX(-50%);
  color:rgba(245,234,214,.75); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:6px; text-decoration:none;
}
.scroll-note .chev{ animation:driftDown 2.4s ease-in-out infinite; }
@keyframes driftDown{ 0%,100%{ transform:translateY(0); opacity:.7;} 50%{ transform:translateY(6px); opacity:1;} }
@media (prefers-reduced-motion: reduce){ .scroll-note .chev{ animation:none; } }

/* Simpler page-hero (used on Om / Kontakt) */
.page-hero{ background:var(--forest); color:var(--cream); padding-block:clamp(90px,12vw,150px) clamp(56px,8vw,96px); }
.page-hero .lede{ color:var(--cream-70); margin-top:.8em; }

/* ================= INTRO ================= */
.intro-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:start; }
.intro-text{ font-size:1.28rem; max-width:620px; }
.intro-text p + p{ margin-top:22px; }
.signature{ margin-top:30px; color:var(--pink); font-family:var(--serif); font-style:italic; font-size:1.3rem; }
@media (max-width:860px){ .intro-grid{ grid-template-columns:1fr; gap:32px; } }

/* ================= PILLAR CARDS ================= */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.card{
  min-height:280px; padding:32px; border-radius:6px; background:var(--white);
  display:flex; flex-direction:column; justify-content:space-between;
  box-shadow:0 24px 50px -30px rgba(48,59,45,.35);
}
.card:nth-child(2){ background:var(--pink); color:var(--white); transform:translateY(28px); }
.card:nth-child(3){ background:var(--forest); color:var(--cream); }
.card-icon{ font-size:1.9rem; color:var(--gold); }
.card p{ margin-top:12px; opacity:.85; max-width:none; }
.card strong, .card a{ font-family:var(--serif); font-weight:500; font-size:1.05rem; }
.card a{ text-decoration:none; color:inherit; transition:opacity .25s ease, gap .25s ease; display:inline-flex; }
.card a:hover{ opacity:.75; }
@media (max-width:860px){ .cards{ grid-template-columns:1fr; } .card:nth-child(2){ transform:none; } }

/* ================= WHEEL (season columns) ================= */
.seasons{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(245,234,214,.2); }
.season{ padding:30px 22px 6px 0; border-right:1px solid rgba(245,234,214,.2); margin-right:22px; }
.season:last-child{ border-right:0; }
.season small{ letter-spacing:.13em; font-weight:700; font-size:.78rem; }
.season h3{ margin:16px 0 10px; color:var(--cream); }
.season p{ color:var(--cream-70); }
.season--var small{ color:var(--sage); } .season--sommar small{ color:var(--rose); }
.season--host small{ color:var(--gold); } .season--vinter small{ color:var(--sand); }
@media (max-width:780px){
  .seasons{ grid-template-columns:1fr; }
  .season{ border-right:0; border-bottom:1px solid rgba(245,234,214,.18); padding:24px 0; margin:0; }
}

/* ================= JOURNAL ================= */
.journal-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
@media (max-width:860px){ .journal-grid{ grid-template-columns:1fr; gap:60px; } }

/* ================= CTA ================= */
.cta-section{ text-align:center; }
.cta-section h2{ max-width:700px; margin:16px auto 22px; }
.cta-section .lede{ max-width:520px; margin:0 auto 30px; }
.value-recap{
  list-style:none; margin:0 auto 34px; padding:0; max-width:460px;
  display:flex; flex-direction:column; gap:12px; text-align:left;
}
.value-recap li{
  position:relative; padding-left:28px; font-size:.98rem; color:var(--ink-70);
}
.value-recap li::before{ content:'✦'; position:absolute; left:0; top:0; color:var(--gold); font-size:.9rem; }
.btn-lg{ padding:1.1em 2.1em; font-size:1.05rem; }

/* Sticky booking bar */
.sticky-cta{
  position:fixed; left:50%; bottom:18px; transform:translate(-50%,140%);
  z-index:60;
  display:flex; align-items:center; gap:14px;
  background:var(--forest); color:var(--cream);
  padding:14px 22px; border-radius:999px;
  text-decoration:none; font-size:.95rem; font-weight:600;
  box-shadow:0 18px 40px rgba(19,24,17,.35);
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.sticky-cta.is-visible{ transform:translate(-50%,0); }
.sticky-cta:hover{ background:#243020; }
.sticky-cta-price{ color:var(--gold); font-family:var(--serif); font-size:1.05rem; }
@media (max-width:600px){
  .sticky-cta{ left:16px; right:16px; bottom:16px; transform:translateY(140%); justify-content:center; }
  .sticky-cta.is-visible{ transform:translateY(0); }
}

/* ================= QUOTE ================= */
.quote-block{ text-align:left; }
.quote-block blockquote{
  margin:0; max-width:28ch; font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(1.7rem,2.2vw + 1rem,2.6rem); line-height:1.28;
}
.quote-block cite{ display:block; margin-top:20px; font-style:normal; color:var(--ink-45); font-size:.9rem; }
.on-dark .quote-block cite{ color:var(--cream-70); }

/* ================= TIMELINE (Om page) ================= */
.timeline{ position:relative; margin-top:10px; }
.timeline::before{
  content:''; position:absolute; left:9px; top:6px; bottom:6px; width:1px;
  background:linear-gradient(var(--sage),var(--rose),var(--gold),var(--forest));
}
.timeline-item{ position:relative; padding-left:38px; padding-bottom:36px; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{
  content:''; position:absolute; left:2px; top:5px; width:15px; height:15px; border-radius:50%;
  background:var(--cream); border:2px solid var(--forest);
}
.timeline-item p{ color:var(--ink-70); margin:0; }

/* ================= PILL LIST ================= */
.pill-list{ list-style:none; margin:1.3em 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.pill-list li{ border:1px solid rgba(48,59,45,.22); border-radius:999px; padding:.5em 1.1em; font-size:.9rem; color:var(--ink-70); }

/* ================= CONTACT PAGE ================= */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
.field{ margin-bottom:22px; }
.field label{ display:block; font-size:.92rem; color:var(--ink-70); margin-bottom:.5em; }
.field input, .field textarea, .field select{
  width:100%; font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:var(--white); border:1px solid rgba(48,59,45,.2); border-radius:8px; padding:.85em 1em;
}
.field textarea{ resize:vertical; min-height:130px; }
.field input:focus, .field textarea:focus, .field select:focus{ outline:2px solid var(--pink); outline-offset:1px; }
.info-card{ background:var(--forest); color:var(--cream); border-radius:14px; padding:clamp(28px,4vw,44px); }
.info-card h3{ margin-bottom:.6em; color:var(--cream); }
.scarcity-note{
  font-size:.92rem; color:var(--gold); margin:0 0 24px; padding-bottom:20px;
  border-bottom:1px solid rgba(245,234,214,.16);
}
.scarcity-note strong{ color:var(--cream); }
.info-line{ display:flex; justify-content:space-between; gap:16px; padding:.85em 0; border-bottom:1px solid rgba(245,234,214,.16); font-size:.96rem; }
.info-line:last-child{ border-bottom:none; }
.info-line span:first-child{ color:var(--cream-70); }
.info-line a{ text-decoration:none; } .info-line a:hover{ text-decoration:underline; }
.note{ font-size:.85rem; color:var(--ink-45); margin-top:14px; }
.on-dark .note{ color:var(--cream-70); }

/* ================= FOOTER ================= */
.site-footer{ padding:32px 0; background:var(--forest); color:var(--cream); }
.footer-row{ display:flex; justify-content:space-between; gap:20px; align-items:center; font-size:.85rem; flex-wrap:wrap; }
.footer-row span{ color:var(--cream-70); }
.footer-row .logo{ color:var(--cream); }

/* ================= REVEAL / MOTION ================= */
/* Reveal-on-scroll disabled for reliability — content is always visible by default,
   regardless of whether JavaScript runs. (Previously this depended on JS to un-hide
   content, which broke in restrictive preview viewers.) */
.reveal{ }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }
@keyframes riseIn{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:translateY(0);} }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Decorative giant background glyph (used sparingly, once per page at most) */
.bg-glyph{
  position:absolute; z-index:0; pointer-events:none; user-select:none;
  font-family:var(--serif); line-height:1; color:rgba(215,185,104,.12);
}

/* ================= FAQ ================= */
.faq-list{ margin-top:28px; display:flex; flex-direction:column; gap:2px; }
.faq-item{
  background:var(--white); border-radius:8px; padding:18px 22px;
}
.faq-item + .faq-item{ margin-top:10px; }
.faq-item summary{
  cursor:pointer; font-family:var(--serif); font-size:1.15rem; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; font-size:1.4rem; color:var(--pink); flex:none; transition:transform .25s ease; }
.faq-item[open] summary::after{ content:'−'; }
.faq-item p{ margin-top:14px; color:var(--ink-70); max-width:none; }

/* ================= SPARK narrative block ================= */
.spark-block{ max-width:620px; text-align:left; }
.story-line{
  font-family:var(--serif); font-size:clamp(1.2rem,1vw + 1rem,1.5rem);
  line-height:1.5; color:var(--ink-70); margin:0 0 26px;
  max-width:none;
}
.story-emphasis{ font-style:italic; color:var(--pink); }
.story-line--signature{
  color:var(--ink); font-style:italic; margin-top:38px; margin-bottom:0;
  padding-top:26px; border-top:1px solid rgba(48,59,45,.15);
}

/* ================= EVENING FLOW (Eventet page) ================= */
.evening-flow{
  list-style:none; counter-reset:flow; margin:0; padding:0;
  display:grid; gap:0;
}
.evening-flow li{
  counter-increment:flow;
  display:grid; grid-template-columns:52px 1fr; gap:18px; align-items:baseline;
  padding:22px 0; border-bottom:1px solid rgba(48,59,45,.15);
}
.evening-flow li:first-child{ border-top:1px solid rgba(48,59,45,.15); }
.evening-flow li::before{
  content:counter(flow, decimal-leading-zero);
  font-family:var(--serif); font-size:1.3rem; color:var(--pink);
}
.evening-flow .flow-text{ display:flex; flex-direction:column; gap:4px; }
.evening-flow strong{ font-family:var(--serif); font-size:1.15rem; font-weight:500; }
.evening-flow span{ color:var(--ink-70); font-size:.95rem; }
@media (max-width:600px){
  .evening-flow li{ grid-template-columns:36px 1fr; }
}

.launch-badge{
  display:inline-block; margin-top:22px;
  font-size:.82rem; letter-spacing:.04em; color:var(--gold);
  border:1px solid rgba(215,185,104,.4); border-radius:999px;
  padding:.6em 1.2em;
}

/* ================= HEART LIST (Eventet page) ================= */
.heart-list{
  list-style:none; margin:1em 0 0; padding:0;
  display:flex; flex-direction:column; gap:12px;
}
.heart-list li{
  position:relative; padding-left:30px; color:var(--ink-70); font-size:1rem;
}
.heart-list li::before{ content:'♡'; position:absolute; left:0; top:0; color:var(--pink); }

.closing-line{
  margin:56px auto 0; max-width:32ch; text-align:center;
  font-family:var(--serif); font-style:italic; font-size:clamp(1.3rem,1vw+1.1rem,1.7rem);
  line-height:1.5; color:var(--ink);
}

/* ================= MAGIC SECTION (Eventet — "Mer än en kväll") ================= */
.magic-section{ position:relative; overflow:clip; }
.magic-glow{
  position:absolute; z-index:0; pointer-events:none;
  left:50%; top:38%; width:60%; max-width:560px; aspect-ratio:1/.8;
  transform:translate(-50%,-50%);
  background:radial-gradient(ellipse at center, rgba(215,185,104,.20), transparent 70%);
  filter:blur(30px);
  animation:magicBreathe 7s ease-in-out infinite;
}
@keyframes magicBreathe{
  0%,100%{ opacity:.6; transform:translate(-50%,-50%) scale(1); }
  50%{ opacity:1; transform:translate(-50%,-50%) scale(1.08); }
}
.magic-sparkles{ position:absolute; inset:0; z-index:0; pointer-events:none; }
@media (prefers-reduced-motion: reduce){ .magic-glow{ animation:none; opacity:.7; } }
.magic-glow--frost{ background:radial-gradient(ellipse at center, rgba(203,187,162,.22), transparent 70%); }

/* ================= LIVING ICONS (Om page — Boken/Trädgården/Årshjulet) ================= */
.living-item{ display:flex; gap:18px; align-items:flex-start; }
.living-item + .living-item{ margin-top:26px; }
.living-item p{ margin:0; }
.living-icon{
  flex:none; width:46px; height:46px; margin-top:2px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1.35rem;
  animation:iconFloat 4.5s ease-in-out infinite;
}
.living-icon--rose{ background:rgba(196,142,145,.22); animation-delay:0s, 0s; }
.living-icon--sage{ background:rgba(119,121,87,.22); animation-delay:.9s, .9s; }
.living-icon--gold{ background:rgba(215,185,104,.28); animation-delay:1.8s, 1.8s; }
@keyframes iconFloat{
  0%,100%{ transform:translateY(0) scale(1); }
  50%{ transform:translateY(-7px) scale(1.06); }
}
@media (prefers-reduced-motion: reduce){ .living-icon{ animation:none; } }

/* ================= CHECKBOX FIELD ================= */
.field-checkbox label{
  display:flex; align-items:flex-start; gap:12px; cursor:pointer;
  font-size:.92rem; color:var(--ink-70); margin:0;
}
.field-checkbox input[type="checkbox"]{
  width:19px; height:19px; margin-top:2px; flex:none; accent-color:var(--pink); cursor:pointer;
}

/* ================= PLAIN SUMMARY CALLOUT ================= */
.plain-summary{
  background:var(--sand); border-radius:12px; padding:18px 22px;
  font-size:.98rem; color:var(--ink); max-width:none;
}
.plain-summary strong{ color:var(--forest); }

/* ================= WHEEL OF THE YEAR — circular version ================= */
.wheel-block{ display:grid; justify-items:center; gap:34px; }
.wheel-stage{ position:relative; width:min(420px, 78vw); aspect-ratio:1; }
.wheel-glow{
  position:absolute; inset:-14%; z-index:0; border-radius:50%;
  background:radial-gradient(circle, var(--glow-color, rgba(215,185,104,.35)), transparent 70%);
  filter:blur(26px);
  transition:background .6s ease;
  animation:magicBreathe 6s ease-in-out infinite;
}
.wheel-stage .sparkle{ z-index:2; }
.wheel-circle{
  position:relative; z-index:1; inset:0; width:100%; aspect-ratio:1; border-radius:50%;
  background:conic-gradient(from -45deg,
    var(--sage) 0deg 90deg,
    var(--rose) 90deg 180deg,
    var(--gold) 180deg 270deg,
    var(--sand) 270deg 360deg);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.5);
}
.wheel-core{
  position:absolute; inset:22%; border-radius:50%;
  background:var(--forest); color:var(--cream);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:8%;
  box-shadow:inset 0 0 0 1px rgba(245,234,214,.12);
}
.wheel-core .core-label{ font-family:var(--serif); font-style:italic; font-size:1.05rem; color:var(--cream-70); }

.wheel-radio{ position:absolute; opacity:0; width:1px; height:1px; pointer-events:none; }

.wheel-seg{
  position:absolute; transform:translate(-50%,-50%);
  display:flex; flex-direction:column; align-items:center; gap:2px;
  cursor:pointer; padding:10px;
  color:var(--forest); font-family:var(--sans);
  transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.wheel-seg .seg-name{ font-family:var(--serif); font-size:1.15rem; font-weight:600; }
.wheel-seg .seg-theme{ font-size:.78rem; letter-spacing:.06em; opacity:.75; }
.wheel-seg:hover{ transform:translate(-50%,-50%) scale(1.08); }

.pos-top{ top:11%; left:50%; }
.pos-right{ top:50%; left:89%; }
.pos-bottom{ top:89%; left:50%; }
.pos-left{ top:50%; left:11%; }

.wheel-detail{
  max-width:420px; text-align:center;
  min-height:110px;
}
.wheel-detail .wd-panel{ display:none; }
.wheel-detail .detail-tag{ color:var(--gold); font-family:var(--serif); font-style:italic; font-size:1.1rem; margin-bottom:.3em; }
.wheel-detail h3{ color:var(--cream); margin-bottom:.4em; }
.wheel-detail p{ color:var(--cream-70); margin:0 auto; }

/* Pure-CSS interactivity: whichever radio is checked drives the active
   segment style, the glow color, and which detail panel is shown. */
#wheel-var:checked ~ .wheel-stage label[for="wheel-var"],
#wheel-sommar:checked ~ .wheel-stage label[for="wheel-sommar"],
#wheel-host:checked ~ .wheel-stage label[for="wheel-host"],
#wheel-vinter:checked ~ .wheel-stage label[for="wheel-vinter"]{
  transform:translate(-50%,-50%) scale(1.12);
}
#wheel-var:checked ~ .wheel-stage label[for="wheel-var"] .seg-name,
#wheel-sommar:checked ~ .wheel-stage label[for="wheel-sommar"] .seg-name,
#wheel-host:checked ~ .wheel-stage label[for="wheel-host"] .seg-name,
#wheel-vinter:checked ~ .wheel-stage label[for="wheel-vinter"] .seg-name{
  text-decoration:underline; text-decoration-color:rgba(48,59,45,.4); text-underline-offset:4px;
}
#wheel-var:checked ~ .wheel-stage .wheel-glow{ --glow-color:rgba(119,121,87,.4); }
#wheel-sommar:checked ~ .wheel-stage .wheel-glow{ --glow-color:rgba(196,142,145,.4); }
#wheel-host:checked ~ .wheel-stage .wheel-glow{ --glow-color:rgba(215,185,104,.4); }
#wheel-vinter:checked ~ .wheel-stage .wheel-glow{ --glow-color:rgba(203,187,162,.4); }

#wheel-var:checked ~ .wheel-detail .wd-panel[data-season="var"],
#wheel-sommar:checked ~ .wheel-detail .wd-panel[data-season="sommar"],
#wheel-host:checked ~ .wheel-detail .wd-panel[data-season="host"],
#wheel-vinter:checked ~ .wheel-detail .wd-panel[data-season="vinter"]{
  display:block;
}

@media (max-width:520px){
  .wheel-seg .seg-name{ font-size:.95rem; }
  .wheel-seg .seg-theme{ font-size:.68rem; }
}

/* ================= ATMOSPHERE PHOTO (Eventet — "Rummet du kliver in i") ================= */
.atmosphere-photo{
  width:100%; min-height:340px; border-radius:18px;
  background-image:url('assets/atmosphere-forest.jpg');
  background-size:cover; background-position:center;
  box-shadow:0 30px 60px -28px rgba(48,59,45,.4);
}
@media (max-width:860px){ .atmosphere-photo{ min-height:280px; } }
.atmosphere-photo--winter{ filter:grayscale(.4) brightness(.75) saturate(.8) sepia(.12) hue-rotate(150deg); }

/* ================= REVIEWS CAROUSEL ================= */
.reviews-carousel{
  display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:6px 6px 18px; margin:0 -6px; -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.review-card{
  flex:0 0 82%; scroll-snap-align:start;
  background:rgba(245,234,214,.06); border:1px solid rgba(245,234,214,.16);
  border-radius:16px; padding:26px;
  display:flex; flex-direction:column; justify-content:space-between;
}
.review-card p{ font-family:var(--serif); font-style:italic; font-size:1.08rem; color:var(--cream); margin:0; }
.review-card cite{ display:block; margin-top:18px; font-style:normal; color:var(--gold); font-size:.92rem; }
@media (min-width:640px){ .review-card{ flex:0 0 320px; } }

/* ================= EARLY PROOF STRIP (Hem) ================= */
.proof-strip{
  display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:14px;
  max-width:1000px; margin:0 auto; padding-inline:clamp(20px,5vw,56px);
}
.proof-strip .atmosphere-photo:nth-child(1){ min-height:320px; }
.proof-strip .atmosphere-photo:nth-child(2){ min-height:260px; margin-top:40px; }
.proof-strip .atmosphere-photo:nth-child(3){ min-height:260px; }
@media (max-width:760px){
  .proof-strip{ grid-template-columns:1fr 1fr; }
  .proof-strip .atmosphere-photo:nth-child(1){ grid-column:1/3; min-height:220px; }
  .proof-strip .atmosphere-photo:nth-child(2){ margin-top:0; min-height:180px; }
  .proof-strip .atmosphere-photo:nth-child(3){ min-height:180px; }
}

/* ================= PRICING TOGGLE (Brevet) — pure CSS, no JS ================= */
.price-radio{ position:absolute; opacity:0; width:1px; height:1px; pointer-events:none; }
.price-toggle{
  display:inline-flex; gap:4px; background:rgba(48,59,45,.08);
  border-radius:999px; padding:5px; margin:0 auto 32px;
}
.price-toggle label{
  cursor:pointer; padding:.6em 1.4em; border-radius:999px; font-size:.95rem;
  color:var(--ink-70); transition:background .25s ease, color .25s ease;
}
#price-single:checked ~ .price-toggle label[for="price-single"],
#price-sub:checked ~ .price-toggle label[for="price-sub"]{
  background:var(--forest); color:var(--cream);
}
.price-panel{ display:none; }
#price-single:checked ~ .price-panels .price-panel[data-plan="single"],
#price-sub:checked ~ .price-panels .price-panel[data-plan="sub"]{ display:block; }

/* Nav: lång etikett ("A Letter From The Garden") på medelbreda skärmar */
@media (min-width:781px) and (max-width:1120px){
  .navlinks{ gap:16px; }
  .navlinks a{ font-size:.86rem; }
}
