/* ================================================================
   lads.ie — Irish pop-culture + reality-TV commentary
   Palette: cherry #e63e62 on cream #fdf8f0, ink #1c1c24, gold #c9a227
   Fonts: Fraunces (display/serif) + Inter (body/UI)
   ================================================================ */

:root {
  --cherry: #e63e62;
  --cherry-dark: #b8284a;
  --cream: #fdf8f0;
  --cream-2: #f6eedd;
  --ink: #1c1c24;
  --ink-2: #3a3a45;
  --ink-soft: #6a6a78;
  --rule: #e5dcc6;
  --gold: #c9a227;
  --navy: #1f2948;
  --white: #ffffff;
  --radius: 4px;
  --radius-lg: 10px;
  --shadow-card: 0 4px 14px rgba(28, 28, 36, 0.08);
  --shadow-hover: 0 8px 24px rgba(28, 28, 36, 0.14);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--ink);
  background: var(--cream);
  line-height: 1.6;
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5 { font-family: 'Fraunces', 'Georgia', serif; line-height: 1.15; font-weight: 600; color: var(--ink); letter-spacing: -0.015em; }
h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.3rem); margin-bottom: 0.7rem; }
h3 { font-size: 1.28rem; margin-bottom: 0.5rem; }
h4 { font-size: 1.08rem; margin-bottom: 0.4rem; }

p { margin-bottom: 1rem; color: var(--ink-2); }
a { color: var(--cherry-dark); text-decoration: underline; text-underline-offset: 3px; transition: color 0.15s ease; }
a:hover { color: var(--cherry); }

.container { max-width: 1140px; margin: 0 auto; padding: 0 22px; }
.container-narrow { max-width: 760px; margin: 0 auto; padding: 0 22px; }

/* ---------------- NAV ---------------- */
.navbar {
  background: var(--cream);
  border-bottom: 1px solid var(--rule);
  padding: 18px 0;
  position: sticky; top: 0; z-index: 100;
  backdrop-filter: saturate(180%) blur(6px);
}
.nav-container {
  max-width: 1140px; margin: 0 auto; padding: 0 22px;
  display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
}
.logo {
  font-family: 'Fraunces', serif;
  font-weight: 700;
  font-size: 1.6rem;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: -0.03em;
  display: inline-flex; align-items: center; gap: 8px;
}
.logo-dot { color: var(--cherry); }
.nav-links { list-style: none; display: flex; gap: 22px; align-items: center; flex-wrap: wrap; }
.nav-links a { color: var(--ink-2); text-decoration: none; font-weight: 500; font-size: 0.95rem; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--cherry); }
.nav-tip {
  background: var(--ink);
  color: var(--cream) !important;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 0.88rem !important;
  font-weight: 600;
}
.nav-tip:hover { background: var(--cherry); color: var(--white) !important; }

/* ---------------- HERO ---------------- */
.hero {
  padding: 72px 0 56px;
  text-align: left;
  background: linear-gradient(180deg, var(--cream) 0%, var(--cream-2) 100%);
  border-bottom: 1px solid var(--rule);
}
.hero .eyebrow {
  display: inline-block;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cherry);
  margin-bottom: 14px;
}
.hero h1 { max-width: 20ch; margin-bottom: 1.1rem; }
.hero h1 em { font-style: italic; color: var(--cherry); font-family: 'Fraunces', serif; }
.hero .lede {
  font-size: 1.18rem;
  color: var(--ink-2);
  max-width: 60ch;
  margin-bottom: 1.5rem;
}
.hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------------- BUTTONS ---------------- */
.btn {
  display: inline-block;
  padding: 12px 22px;
  font-weight: 600;
  font-size: 0.96rem;
  text-decoration: none;
  border-radius: var(--radius);
  cursor: pointer;
  border: none;
  transition: transform 0.08s ease, background 0.15s ease;
  font-family: 'Inter', sans-serif;
}
.btn-primary {
  background: var(--cherry);
  color: var(--white);
}
.btn-primary:hover { background: var(--cherry-dark); color: var(--white); }
.btn-ghost {
  background: transparent;
  color: var(--ink);
  border: 1.5px solid var(--ink);
}
.btn-ghost:hover { background: var(--ink); color: var(--cream); }
.btn-gold {
  background: var(--gold);
  color: var(--ink);
}
.btn-gold:hover { background: var(--ink); color: var(--gold); }

/* ---------------- SECTIONS ---------------- */
section { padding: 56px 0; border-bottom: 1px solid var(--rule); }
section.tight { padding: 36px 0; }
section:last-of-type { border-bottom: 0; }
.section-head { margin-bottom: 28px; }
.section-head .eyebrow {
  font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--cherry); display: block; margin-bottom: 6px;
}
.section-head p { color: var(--ink-soft); max-width: 60ch; }

/* ---------------- GRID + CARDS ---------------- */
.grid { display: grid; gap: 22px; }
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }

.card {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  padding: 26px;
  transition: box-shadow 0.2s ease, transform 0.12s ease;
}
.card:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); }
.card .cat {
  font-size: 0.74rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--cherry); display: inline-block; margin-bottom: 10px;
}
.card h3 { margin-bottom: 8px; }
.card h3 a { color: var(--ink); text-decoration: none; }
.card h3 a:hover { color: var(--cherry); }
.card p { font-size: 0.98rem; }
.card .meta {
  font-size: 0.84rem;
  color: var(--ink-soft);
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px dashed var(--rule);
}

/* Feature card (big) */
.feature-row { display: grid; grid-template-columns: 1.4fr 1fr; gap: 28px; }
@media (max-width: 860px) { .feature-row { grid-template-columns: 1fr; } }
.feature-card {
  background: var(--ink);
  color: var(--cream);
  border-radius: var(--radius-lg);
  padding: 36px;
  position: relative;
  overflow: hidden;
}
.feature-card::after {
  content: ""; position: absolute; top: -40px; right: -40px;
  width: 180px; height: 180px; border-radius: 50%;
  background: radial-gradient(var(--cherry), transparent 70%); opacity: 0.35;
}
.feature-card .cat { color: var(--gold); }
.feature-card h2 { color: var(--cream); }
.feature-card h2 a { color: var(--cream); text-decoration: none; }
.feature-card h2 a:hover { color: var(--gold); }
.feature-card p { color: rgba(253, 248, 240, 0.82); }
.feature-card .meta { color: rgba(253, 248, 240, 0.6); border-color: rgba(253, 248, 240, 0.2); }

/* Category chip */
.chip {
  display: inline-block;
  padding: 5px 11px;
  background: var(--cream-2);
  color: var(--ink);
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid var(--rule);
}
.chip:hover { background: var(--cherry); color: var(--white); }
.chip.active { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }

/* ---------------- LISTICLE / POST BODY ---------------- */
.article-head {
  padding: 52px 0 28px;
  border-bottom: 1px solid var(--rule);
  background: var(--cream-2);
}
.article-head .cat {
  font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--cherry); display: block; margin-bottom: 12px;
}
.article-head h1 { max-width: 25ch; margin-bottom: 1rem; }
.article-head .standfirst {
  font-family: 'Fraunces', serif; font-size: 1.26rem; font-style: italic; color: var(--ink-2);
  max-width: 60ch; margin-bottom: 1rem; font-weight: 300;
}
.article-head .meta {
  display: flex; gap: 18px; flex-wrap: wrap; font-size: 0.88rem; color: var(--ink-soft);
}

.article-body {
  padding: 42px 0;
  font-size: 1.04rem;
  line-height: 1.75;
}
.article-body p { color: var(--ink-2); margin-bottom: 1.15rem; }
.article-body h2 { margin-top: 2rem; margin-bottom: 0.8rem; }
.article-body h3 { margin-top: 1.6rem; margin-bottom: 0.5rem; }
.article-body ul, .article-body ol { margin: 1rem 0 1.25rem 1.4rem; color: var(--ink-2); }
.article-body li { margin-bottom: 0.5rem; }
.article-body blockquote {
  border-left: 4px solid var(--cherry);
  padding: 8px 18px;
  margin: 1.4rem 0;
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 1.1rem;
  color: var(--ink);
  background: var(--cream-2);
  border-radius: 0 var(--radius) var(--radius) 0;
}
.article-body strong { color: var(--ink); }

/* Listicle entry */
.listicle-entry {
  padding: 28px 0;
  border-bottom: 1px dashed var(--rule);
}
.listicle-entry:last-of-type { border-bottom: 0; }
.listicle-entry h2 {
  display: flex; align-items: baseline; gap: 14px; font-size: 1.5rem;
}
.listicle-entry .num {
  font-family: 'Fraunces', serif; color: var(--cherry); font-size: 2.2rem; font-weight: 700;
  line-height: 1;
}

/* ---------------- FORM ---------------- */
.form-card {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  padding: 34px;
  max-width: 640px;
  margin: 0 auto;
}
.form-card label {
  display: block; font-weight: 600; font-size: 0.92rem; margin-bottom: 6px; color: var(--ink);
}
.form-card input[type="text"],
.form-card input[type="email"],
.form-card select,
.form-card textarea {
  width: 100%;
  padding: 11px 13px;
  margin-bottom: 16px;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  font: inherit;
  color: var(--ink);
  background: var(--cream);
}
.form-card input:focus, .form-card select:focus, .form-card textarea:focus {
  outline: 2px solid var(--cherry); outline-offset: 1px; border-color: var(--cherry);
}
.form-card textarea { min-height: 120px; resize: vertical; }
.form-card .hint { font-size: 0.84rem; color: var(--ink-soft); margin-top: -10px; margin-bottom: 14px; }
.honeypot { display: none !important; }

/* ---------------- NEWSLETTER STRIP ---------------- */
.newsletter {
  background: var(--ink);
  color: var(--cream);
  padding: 46px 0;
  border-bottom: 0;
}
.newsletter h2 { color: var(--cream); }
.newsletter p { color: rgba(253, 248, 240, 0.75); }
.newsletter-row {
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 28px; align-items: center;
}
@media (max-width: 760px) { .newsletter-row { grid-template-columns: 1fr; } }
.newsletter form { display: flex; gap: 8px; flex-wrap: wrap; }
.newsletter input[type="email"] {
  flex: 1; min-width: 200px; padding: 12px 14px; border: 0; border-radius: var(--radius);
  font: inherit; background: var(--cream); color: var(--ink);
}

/* ---------------- NOTICES ---------------- */
.notice {
  padding: 16px 20px;
  border-left: 4px solid var(--gold);
  background: var(--cream-2);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-size: 0.96rem;
  margin: 1.5rem 0;
}
.notice strong { color: var(--ink); }

/* ---------------- FOOTER ---------------- */
footer {
  background: var(--ink);
  color: rgba(253, 248, 240, 0.75);
  padding: 48px 0 28px;
  font-size: 0.92rem;
}
footer h4 { color: var(--cream); font-size: 0.92rem; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 14px; }
footer a { color: rgba(253, 248, 240, 0.82); text-decoration: none; }
footer a:hover { color: var(--gold); }
.footer-grid {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 32px;
}
@media (max-width: 780px) { .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 28px; } }
@media (max-width: 480px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-grid ul { list-style: none; }
.footer-grid li { margin-bottom: 6px; }
.footer-bottom {
  border-top: 1px solid rgba(253, 248, 240, 0.14);
  margin-top: 32px;
  padding-top: 20px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 0.84rem;
}

/* Utility */
.small { font-size: 0.88rem; }
.muted { color: var(--ink-soft); }
.mt-0 { margin-top: 0 !important; }
.text-center { text-align: center; }

/* Skip link */
.skip-link {
  position: absolute;
  top: -100px;
  left: 0;
  background: var(--ink);
  color: var(--cream);
  padding: 10px 14px;
  z-index: 999;
}
.skip-link:focus { top: 0; }
