/* ============================================================
   Mathilda & Björn – bröllopshemsida
   Delad stylesheet för alla sidor. Ändra färger/typsnitt här
   så uppdateras HELA sajten på en gång.
   ============================================================ */

:root{
  --cream:#FAF6EF;
  --cream-deep:#F1E7D6;
  --olive:#6B7A4F;
  --olive-deep:#4F5A39;
  --terracotta:#C1704F;
  --terracotta-deep:#A85B3D;
  --gold:#C9A66B;
  --charcoal:#3E3226;
  --charcoal-soft:#6b5f52;
  --white:#FFFFFF;
  --border:#e4d9c4;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--charcoal);
  font-family:'Jost',sans-serif;
  font-weight:300;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
/* Sidor med "djup" bakgrund (omväxlande känsla mellan sidorna) */
body.bg-deep{background:var(--cream-deep);}
body.bg-deep .card{background:var(--cream);}

h1,h2,h3,.script{
  font-family:'Playfair Display',serif;
  font-weight:500;
  color:var(--olive-deep);
}
.script{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--terracotta);}
a{color:inherit;text-decoration:none;}
.container{max-width:980px;margin:0 auto;padding:0 24px;}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.25em;
  font-size:.72rem;
  color:var(--terracotta-deep);
  font-weight:500;
}
main section{padding:96px 0;position:relative;}
.section-head{text-align:center;max-width:560px;margin:0 auto 56px;}
.section-head h2{font-size:2.1rem;margin:10px 0 16px;}
.section-head p{color:var(--charcoal-soft);font-size:1rem;}
.divider{
  width:64px;height:2px;background:var(--gold);
  margin:0 auto;position:relative;
}
.divider::before{
  content:"❦";
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  color:var(--terracotta);font-size:1rem;background:var(--cream);
  padding:0 10px;
}
body.bg-deep .divider::before{background:var(--cream-deep);}

/* ---------- NAV ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(250,246,239,.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--border);
}
.nav-inner{
  max-width:980px;margin:0 auto;padding:16px 24px;
  display:flex;align-items:center;justify-content:space-between;
}
.nav-brand{font-family:'Playfair Display',serif;font-size:1.05rem;letter-spacing:.05em;color:var(--olive-deep);}
.nav-links{display:flex;gap:22px;list-style:none;flex-wrap:wrap;}
.nav-links a{
  font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--charcoal-soft);transition:color .2s;
}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--terracotta);}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;}
.nav-toggle span{width:24px;height:2px;background:var(--olive-deep);display:block;}

@media(max-width:820px){
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    background:var(--cream);flex-direction:column;
    padding:20px 24px 28px;gap:16px;
    border-bottom:1px solid var(--border);
    display:none;
  }
  .nav-links.open{display:flex;}
  .nav-toggle{display:flex;}
}

/* ---------- Generic page header (för alla sidor utom Hem) ---------- */
.page-header{
  padding:150px 24px 40px;text-align:center;
}
.page-header .eyebrow{margin-bottom:14px;}
.page-header h1{font-size:clamp(2rem,5vw,2.8rem);}

/* ---------- HERO (Hem) ---------- */
.hero{
  min-height:90vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:150px 24px 60px;
  background:
    radial-gradient(circle at 20% 15%, rgba(107,122,79,.08), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(193,112,79,.10), transparent 45%),
    var(--cream);
}
.hero .eyebrow{margin-bottom:18px;}
.hero h1{font-size:clamp(2.6rem,7vw,4.4rem);line-height:1.1;margin-bottom:14px;}
.hero .amp{color:var(--terracotta);font-family:'Cormorant Garamond',serif;font-style:italic;}
.hero .date-line{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-style:italic;color:var(--charcoal-soft);margin-bottom:36px;}
.hero .place-line{font-size:.95rem;letter-spacing:.05em;color:var(--charcoal-soft);margin-bottom:48px;}

.countdown{display:flex;gap:20px;margin-bottom:52px;flex-wrap:wrap;justify-content:center;}
.countdown div{background:var(--white);border:1px solid var(--border);border-radius:6px;padding:16px 20px;min-width:78px;}
.countdown .num{font-family:'Playfair Display',serif;font-size:1.7rem;color:var(--olive-deep);display:block;}
.countdown .label{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--charcoal-soft);}

.btn{
  display:inline-block;padding:14px 36px;background:var(--olive);color:var(--white);
  border-radius:30px;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;
  transition:background .25s;border:1px solid var(--olive);cursor:pointer;
}
.btn:hover{background:var(--olive-deep);border-color:var(--olive-deep);}
.btn.outline{background:transparent;color:var(--olive-deep);}
.btn.outline:hover{background:var(--olive);color:var(--white);}

/* Senaste nytt-ruta */
.update-box{
  background:var(--white);border:1px solid var(--gold);border-radius:10px;
  padding:18px 26px;max-width:640px;margin:-40px auto 0;position:relative;z-index:2;
  display:flex;gap:14px;align-items:flex-start;
}
.update-box strong{font-family:'Playfair Display',serif;color:var(--olive-deep);font-size:.95rem;}
.update-box p{margin:4px 0 0;font-size:.88rem;color:var(--charcoal-soft);}

/* Startsida – snabblänkar till övriga sidor */
.quicklinks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:20px;}
.quicklink{
  background:var(--white);border:1px solid var(--border);border-radius:10px;
  padding:26px 22px;transition:transform .2s, border-color .2s;display:block;
}
.quicklink:hover{transform:translateY(-3px);border-color:var(--gold);}
.quicklink .ql-eyebrow{font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--terracotta);}
.quicklink h3{font-size:1.1rem;margin:8px 0 6px;}
.quicklink p{font-size:.88rem;color:var(--charcoal-soft);}

/* ---------- SCHEMA (timeline) ---------- */
.day-tabs{display:flex;justify-content:center;gap:12px;margin-bottom:44px;flex-wrap:wrap;}
.day-tab{
  padding:10px 26px;border:1px solid var(--olive);border-radius:30px;
  font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;
  color:var(--olive-deep);background:transparent;transition:.2s;
}
.day-tab.active,.day-tab:hover{background:var(--olive);color:#fff;}
.day-panel{display:none;max-width:640px;margin:0 auto;}
.day-panel.active{display:block;}
.timeline{list-style:none;border-left:2px solid var(--gold);padding-left:28px;}
.timeline li{position:relative;margin-bottom:28px;}
.timeline li::before{
  content:"";position:absolute;left:-34px;top:6px;width:11px;height:11px;border-radius:50%;
  background:var(--terracotta);border:2px solid var(--cream-deep);
}
.timeline time{display:block;font-family:'Playfair Display',serif;color:var(--olive-deep);font-size:1.05rem;}
.timeline .desc{color:var(--charcoal-soft);font-size:.95rem;}

/* ---------- GRID CARDS ---------- */
.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:26px;}
.card{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:32px 28px;}
.card h3{font-size:1.15rem;margin-bottom:10px;}
.card p,.card li{color:var(--charcoal-soft);font-size:.95rem;}
.card ul{padding-left:18px;margin-top:8px;}
.swatches{display:flex;gap:10px;margin-top:16px;}
.swatch{width:28px;height:28px;border-radius:50%;border:2px solid var(--white);box-shadow:0 0 0 1px var(--border);}

/* ---------- Checklist ---------- */
.checklist{max-width:640px;margin:0 auto;list-style:none;}
.checklist li{display:flex;gap:14px;padding:12px 0;border-bottom:1px dashed var(--border);font-size:.97rem;color:var(--charcoal-soft);}
.checklist li::before{content:"✓";color:var(--olive);font-weight:600;}

/* ---------- Q&A accordion ---------- */
.accordion{max-width:700px;margin:0 auto;}
.acc-item{border-bottom:1px solid var(--border);}
.acc-q{
  width:100%;text-align:left;background:none;border:none;cursor:pointer;
  padding:20px 4px;display:flex;justify-content:space-between;align-items:center;
  font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--olive-deep);
}
.acc-q .plus{transition:transform .25s;color:var(--terracotta);font-size:1.3rem;}
.acc-item.open .acc-q .plus{transform:rotate(45deg);}
.acc-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.acc-a p{padding:0 4px 20px;color:var(--charcoal-soft);font-size:.95rem;max-width:600px;}

/* ---------- OSA form ---------- */
.osa-form{max-width:560px;margin:0 auto;background:var(--white);padding:44px;border-radius:12px;border:1px solid var(--border);}
.field{margin-bottom:22px;}
.field label{display:block;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;color:var(--olive-deep);margin-bottom:8px;}
.field input,.field textarea,.field select{
  width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:6px;
  background:var(--cream);font-family:'Jost',sans-serif;font-size:.95rem;color:var(--charcoal);
}
.field textarea{resize:vertical;min-height:90px;}
.radio-row{display:flex;gap:24px;}
.radio-row label{display:flex;align-items:center;gap:8px;text-transform:none;font-size:.95rem;color:var(--charcoal);letter-spacing:0;}
.radio-row input{width:auto;}
.form-note{font-size:.82rem;color:var(--charcoal-soft);background:var(--cream-deep);border:1px dashed var(--gold);padding:14px 18px;border-radius:8px;margin-top:18px;}
.form-success{display:none;text-align:center;padding:30px 0;}
.form-success.show{display:block;}
.form-success .icon{font-size:2.2rem;color:var(--olive);margin-bottom:10px;}

/* ---------- Kontakt (helsides-stil, som en avslutande footer) ---------- */
.page-kontakt{background:var(--olive-deep);}
.page-kontakt .page-header,
.page-kontakt main{color:var(--cream);}
.page-kontakt .page-header .eyebrow{color:var(--gold);}
.page-kontakt .page-header h1{color:var(--cream);}
.page-kontakt .divider{background:var(--gold);}
.page-kontakt .divider::before{background:var(--olive-deep);color:var(--gold);}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:30px;max-width:700px;margin:44px auto;}
.contact-grid .role{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.contact-grid .name{font-family:'Playfair Display',serif;font-size:1.15rem;margin-bottom:4px;color:var(--cream);}
.contact-grid .info{font-size:.88rem;opacity:.8;}
.hashtag{margin-top:10px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.3rem;color:var(--gold);text-align:center;}

/* ---------- Slim footer (alla sidor utom Kontakt) ---------- */
.slim-footer{padding:50px 24px;text-align:center;border-top:1px solid var(--border);}
.slim-footer .hashtag{margin-bottom:10px;}
.slim-footer .fine-print{font-size:.82rem;color:var(--charcoal-soft);}
.slim-footer .fine-print a{text-decoration:underline;}

.placeholder{color:var(--terracotta);}
