/*
Theme Name: Two Oaks Publishing
Theme URI: https://twooakspublishing.com
Author: Two Oaks Publishing, LLC
Description: Custom block theme for Two Oaks Publishing — a boutique publisher of clean romance, young adult and speculative fiction. Built to Author Media best practices: mobile-first, book-page centric, newsletter-forward.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: twooaks
*/

/* ---- Base polish ---- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
a { text-underline-offset: 0.15em; }
h1, h2, h3, h4 { letter-spacing: -0.01em; text-wrap: balance; }
img { height: auto; }

/* Buttons */
.wp-block-button__link { border-radius: 999px; padding: 0.8em 1.6em; font-weight: 600; letter-spacing: 0.01em; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.is-style-outline .wp-block-button__link { border-width: 2px; }

/* Header */
.tw-header { border-bottom: 1px solid rgba(46,90,49,.12); backdrop-filter: saturate(140%) blur(6px); }
.tw-header .wp-block-site-title a { text-decoration: none; }
.tw-header .wp-block-navigation-item__content { font-weight: 600; }
.tw-header .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--coral); }

/* Hero */
.tw-hero { position: relative; overflow: hidden; }
.tw-hero::after { content:""; position:absolute; inset:auto -10% -40% auto; width: 60vw; max-width: 720px; aspect-ratio:1; border-radius:50%; background: radial-gradient(circle at 30% 30%, rgba(232,115,74,.25), transparent 60%); pointer-events:none; }
.tw-eyebrow { text-transform: uppercase; letter-spacing: .18em; font-size: .78rem; font-weight: 700; }

/* Book cards */
.tw-book-card { transition: transform .2s ease; }
.tw-book-card:hover { transform: translateY(-4px); }
.tw-book-grid .wp-block-post { transition: transform .2s ease; }
.tw-book-grid .wp-block-post:hover { transform: translateY(-4px); }
.tw-book-grid .wp-block-post-featured-image img { border-radius: 10px; box-shadow: 0 14px 34px rgba(30,35,33,.18); aspect-ratio: 2/3; object-fit: contain; background: transparent; }
.tw-book-grid .wp-block-post-title { font-size: 1.05rem; line-height: 1.3; }
.tw-book-grid .wp-block-post-title a { text-decoration: none; }
.tw-book-grid .wp-block-post-title a:hover { color: var(--wp--preset--color--coral); }

/* Single book */
.tw-book-cover img { border-radius: 12px; box-shadow: 0 24px 48px rgba(30,35,33,.22); }
.tw-book-meta { font-size: .95rem; }
.tw-book-meta table { width: 100%; border-collapse: collapse; }
.tw-book-meta th { text-align: left; font-weight: 600; padding: .5em .8em .5em 0; width: 38%; color: var(--wp--preset--color--forest); vertical-align: top; }
.tw-book-meta td { padding: .5em 0; border-bottom: 1px solid rgba(46,90,49,.12); }
.tw-book-meta tr:last-child td { border-bottom: 0; }
.tw-buy-row { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.2rem 0 1.6rem; }
.tw-buy-row a { display:inline-block; border-radius: 999px; padding: .7em 1.4em; font-weight: 600; text-decoration: none; background: var(--wp--preset--color--coral); color: #fff; transition: transform .15s ease, box-shadow .15s ease; }
.tw-buy-row a:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,.14); color:#fff; }
.tw-buy-row a.secondary { background: transparent; color: var(--wp--preset--color--forest); border: 2px solid var(--wp--preset--color--forest); }
.tw-pitch { font-family: var(--wp--preset--font-family--heading); font-size: 1.35rem; line-height: 1.45; color: var(--wp--preset--color--forest-dark); }
.tw-badge { display:inline-block; font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:.3em .8em; border-radius:999px; background: rgba(46,90,49,.1); color: var(--wp--preset--color--forest); }

/* Cards */
.tw-card { background: var(--wp--preset--color--paper); border: 1px solid rgba(46,90,49,.12); border-radius: 16px; padding: 1.6rem; box-shadow: 0 8px 24px rgba(30,35,33,.06); }
.tw-card h3 { margin-top: 0; }

/* Footer */
.tw-footer a { text-decoration: none; }
.tw-footer a:hover { text-decoration: underline; }

/* Forms (Contact Form 7) */
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=number], .wpcf7 select, .wpcf7 textarea { width:100%; padding:.75em .9em; border:1px solid rgba(46,90,49,.3); border-radius:10px; background:#fff; font: inherit; }
.wpcf7 input[type=file] { padding:.5em 0; }
.wpcf7 label { display:block; font-weight:600; margin:.9em 0 .3em; color: var(--wp--preset--color--forest-dark); }
.wpcf7 input[type=submit] { background: var(--wp--preset--color--coral); color:#fff; border:0; border-radius:999px; padding:.85em 1.8em; font-weight:700; cursor:pointer; margin-top:1em; }
.wpcf7 input[type=submit]:hover { filter: brightness(.95); }
.wpcf7-not-valid-tip { color:#b3261e; font-size:.85rem; }
.wpcf7-response-output { border-radius:10px; }

/* Utility */
.tw-muted { color: rgba(30,35,33,.68); }
@media (max-width: 781px) {
  .tw-hero h1 { font-size: clamp(2rem, 8vw, 2.6rem) !important; }
}
