/*
 * DigiBookNest Core: product, landing page and homepage section styles.
 * Colours and fonts come from the child theme (:root variables). The fallbacks below
 * keep this file working even if the child theme is missing.
 * Approved palette: navy #092B50, orange #F58A16, white, cream #F8F6F0, light grey #F3F5F8.
 * Orange buttons use NAVY text (about 5.8:1 contrast). White text on orange is NOT used.
 */

.dbn-page,
.dbn-section,
.dbn-newsletter {
	--dbn-navy: var(--navy, #092B50);
	--dbn-orange: var(--orange, #F58A16);
	--dbn-cream: var(--cream, #F8F6F0);
	--dbn-grey: var(--grey, #F3F5F8);
	--dbn-line: #E2E7EE;
	--dbn-text: #3E4A5A;
	--dbn-radius: 14px;
	--dbn-serif: var(--serif-font, "Source Serif 4", Georgia, "Times New Roman", serif);
	--dbn-sans: var(--sans-font, "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
	font-family: var(--dbn-sans);
	color: var(--dbn-text);
	line-height: 1.6;
}

.dbn-page { width: min(1200px, 92%); margin: 0 auto; padding: 32px 0 48px; }
.dbn-page h1, .dbn-page h2, .dbn-page h3,
.dbn-section h2, .dbn-section h3,
.dbn-newsletter h2 { font-family: var(--dbn-serif); color: var(--dbn-navy); line-height: 1.2; overflow-wrap: anywhere; }
.dbn-page h1 { font-size: clamp(2rem, 4vw, 3rem); margin: 8px 0 12px; }
.dbn-section h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin: 0 0 20px; }
.dbn-section { padding: 48px 0 8px; }
.dbn-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.dbn-section-head h2 { margin-bottom: 4px; }
.dbn-intro { margin: 0; max-width: 52ch; }
.dbn-link-more { font-weight: 600; color: var(--dbn-navy); white-space: nowrap; }
.dbn-page a:focus-visible, .dbn-section a:focus-visible, .dbn-newsletter :focus-visible,
.dbn-page button:focus-visible, .dbn-section button:focus-visible { outline: 3px solid var(--dbn-navy); outline-offset: 3px; border-radius: 4px; }

/* Buttons */
.dbn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 20px; border-radius: 999px; border: 2px solid transparent; font: 600 0.95rem/1.2 var(--dbn-sans); text-decoration: none; cursor: pointer; text-align: center; transition: background .2s, color .2s; }
.dbn-btn-primary { background: var(--dbn-orange); color: var(--dbn-navy); }
.dbn-btn-primary:hover { background: #FF9A2E; color: var(--dbn-navy); }
.dbn-btn-outline { background: transparent; color: var(--dbn-navy); border-color: var(--dbn-navy); }
.dbn-btn-outline:hover { background: var(--dbn-navy); color: #fff; }
.dbn-btn-block { width: 100%; margin-bottom: 10px; }
.dbn-btn[disabled] { opacity: .6; cursor: not-allowed; }

/* Landing page: hero */
.dbn-landing .dbn-hero { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
.dbn-hero-cover { width: min(340px, 100%); margin: 0 auto; aspect-ratio: 3 / 4; border-radius: 6px 12px 12px 6px; overflow: hidden; box-shadow: 0 24px 60px rgba(9,43,80,.22); background: var(--dbn-navy); }
.dbn-hero-cover .dbn-cover-img { width: 100%; height: 100%; object-fit: cover; }
.dbn-cover-empty { height: 100%; display: flex; align-items: center; justify-content: center; padding: 24px; color: #fff; font: 700 1.4rem/1.2 var(--dbn-serif); text-align: center; }
.dbn-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.dbn-badge-pill { display: inline-block; background: var(--dbn-navy); color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .06em; padding: 4px 12px; border-radius: 999px; }
.dbn-subtitle { font-size: 1.1rem; margin: 0 0 12px; }
.dbn-lead p:last-child { margin-bottom: 0; }
.dbn-breadcrumb { font-size: .85rem; }
.dbn-breadcrumb a { color: var(--dbn-navy); }

/* Buy box */
.dbn-buy-box { margin-top: 20px; padding: 20px; background: var(--dbn-cream); border: 1px solid var(--dbn-line); border-radius: var(--dbn-radius); max-width: 460px; }
.dbn-price-lg { font-size: 1.6rem; font-weight: 700; color: var(--dbn-navy); margin-bottom: 14px; }
.dbn-price-lg .amount, .dbn-price .amount { color: var(--dbn-navy); }
.dbn-price-lg del, .dbn-price del { opacity: .75; font-size: .85em; margin-right: 6px; }
.dbn-price-lg ins, .dbn-price ins { text-decoration: none; }
.dbn-add-form { margin: 0; }
.dbn-buy-notes { list-style: none; padding: 0; margin: 14px 0 0; font-size: .9rem; }
.dbn-buy-notes li { margin-bottom: 6px; }
.dbn-buy-notes a { color: var(--dbn-navy); }
.dbn-notice { background: #FDEBD7; color: var(--dbn-navy); padding: 10px 14px; border-radius: 10px; font-size: .92rem; }
.dbn-notice-light { background: rgba(255,255,255,.1); color: #E6EDF5; }

/* Content blocks */
.dbn-prose p:last-child { margin-bottom: 0; }
.dbn-block { margin-top: 24px; }
.dbn-block h3 { font-size: 1.1rem; margin: 0 0 8px; }
.dbn-checklist { margin: 0; padding-left: 0; list-style: none; }
.dbn-checklist li { position: relative; padding-left: 24px; margin-bottom: 6px; }
.dbn-checklist li::before { content: ""; position: absolute; left: 0; top: .55em; width: 10px; height: 10px; border-radius: 50%; background: var(--dbn-orange); }
.dbn-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin: 0; }
.dbn-facts > div { background: var(--dbn-grey); border-radius: 10px; padding: 14px 16px; }
.dbn-facts dt { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--dbn-navy); }
.dbn-facts dd { margin: 4px 0 0; color: var(--dbn-text); }

/* FAQ */
.dbn-faq-item { border-bottom: 1px solid var(--dbn-line); padding: 14px 0; }
.dbn-faq-item summary { cursor: pointer; font-weight: 600; color: var(--dbn-navy); }
.dbn-faq-item p { margin: 10px 0 0; }

/* Reviews */
.dbn-review { border-top: 1px solid var(--dbn-line); padding: 14px 0; }
.dbn-review p { margin: 6px 0; }
.dbn-review-meta { font-size: .85rem; }

/* Product grid and cards */
.dbn-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.dbn-card { background: #fff; border: 1px solid var(--dbn-line); border-radius: var(--dbn-radius); overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.dbn-card-cover { position: relative; display: block; aspect-ratio: 3 / 4; background: var(--dbn-navy); }
.dbn-cover-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dbn-badge { position: absolute; top: 10px; right: 10px; background: #fff; color: var(--dbn-navy); font-size: .7rem; font-weight: 700; padding: 4px 10px; border-radius: 999px; }
.dbn-card-body { padding: 14px; display: flex; flex-direction: column; flex: 1; min-width: 0; }
.dbn-card-title { font: 600 1.05rem/1.25 var(--dbn-serif); margin: 0 0 6px; color: var(--dbn-navy); overflow-wrap: anywhere; }
.dbn-card-title a { color: inherit; text-decoration: none; }
.dbn-card-desc { font-size: .9rem; margin: 0 0 10px; }
.dbn-price { font-weight: 700; color: var(--dbn-navy); margin: auto 0 12px; }
.dbn-card-actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
.dbn-card-actions .dbn-btn { font-size: .88rem; padding: 8px 12px; }
.dbn-cat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.dbn-cat-card { display: flex; flex-direction: column; background: var(--dbn-cream); border: 1px solid var(--dbn-line); border-radius: var(--dbn-radius); padding: 20px; text-decoration: none; color: var(--dbn-text); min-width: 0; }
.dbn-cat-card h3 { font: 600 1.15rem/1.2 var(--dbn-serif); color: var(--dbn-navy); margin: 0 0 6px; }
.dbn-cat-card p { font-size: .9rem; margin: 0 0 12px; }
.dbn-go { margin-top: auto; font-weight: 600; color: var(--dbn-navy); }
.dbn-cat-card:hover { box-shadow: 0 10px 30px rgba(9,43,80,.10); }

/* Sticky mobile purchase bar */
.dbn-sticky-buy { display: none; }

/* Newsletter (disabled until an email service is chosen) */
.dbn-newsletter { background: var(--dbn-navy); color: #DDE6F0; padding: 48px 0; margin-top: 48px; }
.dbn-newsletter-inner { width: min(1200px, 92%); margin: 0 auto; display: grid; gap: 24px; grid-template-columns: 1fr; align-items: center; }
.dbn-newsletter h2 { color: #fff; font-size: clamp(1.5rem, 2.6vw, 2rem); margin: 4px 0 8px; }
.dbn-newsletter p { color: #D5DFEA; }
.dbn-eyebrow { font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--dbn-orange); }
.dbn-news-form { border: 0; margin: 0; padding: 0; display: flex; gap: 10px; background: #fff; border-radius: 999px; padding: 8px; }
.dbn-news-form input { flex: 1; min-width: 0; border: 0; font: inherit; padding: 12px 16px; background: transparent; color: var(--dbn-navy); }
.dbn-newsletter .dbn-notice-light strong { color: #fff; }

/* Screen-reader text (WordPress standard class, repeated so this file stands alone) */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }

/* ---------- Tablet and up ---------- */
@media (min-width: 720px) {
	.dbn-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
	.dbn-cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dbn-card-actions { grid-template-columns: 1fr 1fr; }
	.dbn-card-body { padding: 18px; }
	.dbn-newsletter-inner { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 900px) {
	.dbn-landing .dbn-hero { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 48px; }
	.dbn-hero-cover { margin: 0; }
}
@media (min-width: 1000px) {
	.dbn-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.dbn-cat-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* ---------- Phone: sticky purchase bar ---------- */
@media (max-width: 719px) {
	.dbn-landing { padding-bottom: 88px; }
	.dbn-sticky-buy { display: flex; align-items: center; justify-content: space-between; gap: 12px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: #fff; border-top: 1px solid var(--dbn-line); padding: 10px max(16px, env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom)); box-shadow: 0 -6px 20px rgba(9,43,80,.08); }
	.dbn-sticky-price { font-weight: 700; color: var(--dbn-navy); }
	.dbn-sticky-buy .dbn-btn { min-height: 44px; padding: 10px 18px; }
	.dbn-news-form { flex-direction: column; border-radius: var(--dbn-radius); }
	.dbn-news-form input { padding: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	.dbn-btn { transition: none; }
}

/* ---------- Blog / resources grid ---------- */
.dbn-blog-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
.dbn-post { background: #fff; border: 1px solid var(--dbn-line); border-radius: var(--dbn-radius); overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.dbn-post-thumb { display: block; aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--dbn-grey), #E4E9F0); }
.dbn-post-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dbn-post-body { padding: 18px; display: flex; flex-direction: column; flex: 1; }
.dbn-post-cat { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--dbn-navy); }
.dbn-post h3 { font: 600 1.1rem/1.25 var(--dbn-serif); margin: 6px 0 8px; }
.dbn-post h3 a { color: var(--dbn-navy); text-decoration: none; }
.dbn-post p { font-size: .92rem; margin: 0 0 12px; }
.dbn-post-read { margin-top: auto; font-weight: 600; color: var(--dbn-navy); text-decoration: none; }
@media (min-width: 720px) { .dbn-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .dbn-blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Footer (from [dbn_footer]) ---------- */
.dbn-footer { background: var(--dbn-navy); color: #C9D6E5; padding: 56px 0 0; margin-top: 56px; font-family: var(--dbn-sans); font-size: .94rem; }
.dbn-footer-grid { width: min(1200px, 92%); margin: 0 auto; display: grid; grid-template-columns: 1fr; gap: 32px; }
.dbn-footer h4 { font: 700 .8rem/1.2 var(--dbn-sans); text-transform: uppercase; letter-spacing: .12em; color: #fff; margin: 0 0 14px; }
.dbn-footer ul { list-style: none; margin: 0; padding: 0; }
.dbn-footer li { margin-bottom: 9px; }
.dbn-footer a { color: #E6EDF5; text-decoration: none; }
.dbn-footer a:hover, .dbn-footer a:focus-visible { color: var(--dbn-orange); text-decoration: underline; }
.dbn-footer-tag { font: 600 1.2rem/1.2 var(--dbn-serif); color: #fff; margin: 0 0 8px; }
.dbn-footer .dbn-setup { color: var(--dbn-orange); border: 1px dashed var(--dbn-orange); border-radius: 4px; padding: 0 6px; font-weight: 600; }
.dbn-footer-bottom { width: min(1200px, 92%); margin: 40px auto 0; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.14); font-size: .86rem; }
@media (min-width: 720px) { .dbn-footer-grid { grid-template-columns: 1.3fr 1fr 1fr 1fr; } }
