/*
Theme Name: Kadie Vellis
Theme URI: https://kadievellis.com
Author: Kadie Vellis
Description: Dark, atmospheric author theme for Kadie Vellis psychological thrillers and London crime fiction. On activation it creates Home, Books, About and Contact pages and sets Home as the front page.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kadie-vellis
*/

/* No automatic hyphenation anywhere */
body, p, h1, h2, h3, h4, li, a { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; }

body { -webkit-font-smoothing: antialiased; }
/* Sections sit flush against each other */
.wp-site-blocks > *, main > .wp-block-post-content, .wp-block-post-content > .alignfull, main > .alignfull { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.wp-site-blocks { padding-top: 0; }

/* ---------- Header ---------- */
.kv-header { padding: 1.4rem clamp(1.25rem, 4vw, 3rem); border-bottom: 1px solid rgba(232,226,214,.08); }
.kv-header .wp-block-site-title a { text-decoration: none; letter-spacing: .32em; text-transform: uppercase; font-size: 1.05rem; font-family: var(--wp--preset--font-family--display); font-weight: 600; }
.kv-header .wp-block-navigation a { text-transform: uppercase; letter-spacing: .18em; font-size: .78rem; text-decoration: none; }
.kv-header .wp-block-navigation a:hover { color: var(--wp--preset--color--blood-light); }

/* ---------- Shared bits ---------- */
.kv-eyebrow { text-transform: uppercase; letter-spacing: .3em; font-size: .72rem !important; color: var(--wp--preset--color--blood-light); margin-bottom: .6rem; }
.kv-tagline { font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: clamp(1.3rem, 2.4vw, 1.7rem) !important; color: var(--wp--preset--color--bone); line-height: 1.3; }
.kv-muted { color: var(--wp--preset--color--ash); }
.kv-rule { border: 0 !important; height: 1px !important; width: 64px !important; background: var(--wp--preset--color--blood) !important; opacity: 1 !important; margin: 1.6rem auto !important; }
.kv-section { padding: clamp(3.5rem, 8vw, 6.5rem) clamp(1.25rem, 4vw, 3rem); }
.kv-section.kv-alt { background: var(--wp--preset--color--coal); }
.kv-centre, .kv-centre p, .kv-centre h1, .kv-centre h2 { text-align: center; }
.kv-centre .wp-block-buttons { justify-content: center; }
.kv-centre .kv-intro { max-width: 36rem; margin-left: auto; margin-right: auto; }

/* ---------- Hero ---------- */
.kv-hero {
  min-height: 82vh; display: flex; flex-direction: column; justify-content: center;
  padding: 6rem 1.25rem;
  background: radial-gradient(ellipse at 50% 40%, rgba(110,20,20,.28) 0%, rgba(14,13,12,0) 60%), var(--wp--preset--color--ink);
  position: relative; overflow: hidden;
}
.kv-hero::after { /* fine grain */
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .07;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.kv-hero h1 { font-size: clamp(3.4rem, 11vw, 8.5rem) !important; letter-spacing: .12em; text-transform: uppercase; line-height: .95; margin: .2em 0; font-weight: 600; }

/* ---------- Buttons ---------- */
.wp-block-button__link { text-transform: uppercase; letter-spacing: .2em; font-size: .74rem !important; padding: 1.05em 2.1em !important; border-radius: 0 !important; transition: background .2s, color .2s; }
.is-style-outline .wp-block-button__link { border: 1px solid var(--wp--preset--color--bone) !important; color: var(--wp--preset--color--bone) !important; background: transparent !important; }
.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--bone) !important; color: var(--wp--preset--color--ink) !important; }

/* ---------- Book grids ---------- */
.kv-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12.5rem), 1fr)); gap: 2.4rem 1.8rem; max-width: 72rem; margin: 2.8rem auto 0 !important; }
.kv-grid.kv-three { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); max-width: 58rem; }
.kv-book { text-align: center; }
.kv-book p { margin: .3rem 0; text-align: center; }
.kv-book .kv-booktitle { font-family: var(--wp--preset--font-family--display); font-size: 1.35rem !important; font-weight: 600; line-height: 1.2; margin-top: 1rem; }
.kv-book .kv-booktitle a { text-decoration: none; color: inherit; }
.kv-cover { margin: 0 !important; }
.kv-cover img { width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; box-shadow: 0 18px 40px rgba(0,0,0,.6); transition: transform .35s ease, box-shadow .35s ease; }
.kv-cover a:hover img, .kv-book:hover .kv-cover img { transform: translateY(-6px); box-shadow: 0 26px 50px rgba(0,0,0,.75), 0 0 0 1px rgba(155,28,28,.5); }

/* ---------- Spotlight + book list ---------- */
.kv-feature { max-width: 64rem; margin: 0 auto !important; gap: clamp(2rem, 6vw, 5rem) !important; align-items: center !important; }
.kv-feature .kv-cover img { max-width: 380px; }
.kv-entry { max-width: 64rem; margin: 0 auto !important; padding: 3.2rem 0; border-bottom: 1px solid rgba(232,226,214,.08); gap: clamp(1.8rem, 5vw, 4rem) !important; align-items: center !important; }
.kv-entry .kv-cover img { max-width: 300px; }
.kv-entry h2, .kv-feature h2 { margin-top: .2rem; }
.kv-series-head { margin-top: 3rem !important; text-align: center; }

/* ---------- Newsletter / follow ---------- */
.kv-signup { border-top: 1px solid rgba(155,28,28,.4); border-bottom: 1px solid rgba(155,28,28,.4); }

/* ---------- Footer ---------- */
.kv-footer { padding: 3rem clamp(1.25rem, 4vw, 3rem); border-top: 1px solid rgba(232,226,214,.08); text-align: center; }
.kv-footer p { font-size: .8rem !important; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--ash); text-align: center; }
.kv-footer .wp-block-social-links { justify-content: center; }

/* ---------- Page titles ---------- */
.kv-pagehead { padding: clamp(4rem, 9vw, 7rem) 1.25rem 1rem; text-align: center; }
.kv-pagehead h1 { text-transform: uppercase; letter-spacing: .14em; font-size: clamp(2.4rem, 6vw, 4.2rem) !important; text-align: center; }
.kv-prose { max-width: 40rem; margin: 0 auto; padding: 1rem 1.25rem 5rem; }

@media (max-width: 600px) {
  .kv-grid, .kv-grid.kv-three { grid-template-columns: repeat(2, 1fr); gap: 2rem 1.1rem; }
  .kv-book .kv-booktitle { font-size: 1.1rem !important; }
  .kv-feature .kv-cover img, .kv-entry .kv-cover img { max-width: 240px; }
}
@media (max-width: 781px) {
  .kv-feature, .kv-entry { text-align: center; }
  .kv-feature .kv-cover img, .kv-entry .kv-cover img { margin: 0 auto; display: block; }
  .kv-feature .wp-block-buttons, .kv-entry .wp-block-buttons { justify-content: center; }
}
