/*
Theme Name: Homeschool Planning 365 Child
Theme URI: https://homeschoolplanner365.com/
Author: Homeschool Planning 365
Author URI: https://homeschoolplanner365.com/
Description: Child theme of Twenty Twenty-Five for Homeschool Planning 365, a shop selling a homeschool planner spreadsheet. Warm, bookish styling in cream, deep teal and amber. Homepage, pricing and product-page sections are added through the child theme only; the parent theme is never edited. WooCommerce cart, checkout and account pages are untouched. Version 1.0.0 is the first release: FAQPage JSON-LD for single posts from the custom field homeschool365_faq_json is in from the start, and the licence line is printed on every product page.
Version: 1.0.0
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: twentytwentyfive
Text Domain: homeschoolplanner365-child
Tags: homeschool, planner, education, ecommerce, woocommerce, warm, teal, serif
*/

/* ============================================================
   Homeschool Planning 365 — custom styles
   All colours and fonts are managed through the variables
   below and the palette in theme.json. Change a value here
   and in theme.json together so blocks and CSS stay in sync.
   No external fonts and no external JavaScript are loaded:
   headings use an elegant system serif stack (Georgia first),
   body text uses the system sans stack.
   ============================================================ */

:root {
    --hs365-cream: #fdf9f0;
    --hs365-cream-deep: #f5ecd6;
    --hs365-teal: #2f5d62;
    --hs365-teal-deep: #234549;
    --hs365-sage: #8fae94;
    --hs365-sage-light: #e2ece1;
    --hs365-amber: #d9a441;
    --hs365-amber-deep: #b3812c;
    --hs365-ink: #2e2a26;
    --hs365-ink-soft: #6e675c;
    --hs365-white: #fffdf8;
    --hs365-radius: 16px;
    --hs365-radius-lg: 24px;
}

/* ---------- Base ---------- */

body {
    background-color: var(--hs365-cream);
    color: var(--hs365-ink);
}

h1,
h2,
h3,
.hs365-serif {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-weight: 500;
    letter-spacing: 0.01em;
    color: var(--hs365-ink);
}

h1 {
    font-size: clamp(2.4rem, 6vw, 3.6rem);
    line-height: 1.12;
}

h2 {
    font-size: clamp(1.7rem, 4vw, 2.3rem);
    line-height: 1.25;
}

h3 {
    font-size: 1.25rem;
    line-height: 1.35;
}

a {
    color: var(--hs365-teal-deep);
}

a:hover,
a:focus-visible {
    color: var(--hs365-amber-deep);
}

:focus-visible {
    outline: 3px solid var(--hs365-amber);
    outline-offset: 2px;
}

/* ---------- Buttons: soft, rounded, deep teal ---------- */

.wp-block-button__link,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    border-radius: 999px;
    background-color: var(--hs365-teal);
    color: #fff;
    border: 2px solid var(--hs365-teal);
    padding: 0.7em 1.6em;
    font-weight: 600;
    text-decoration: none;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
.woocommerce button.button:hover,
.woocommerce a.button:hover {
    background-color: var(--hs365-teal-deep);
    border-color: var(--hs365-teal-deep);
    color: #fff;
}

.hs365-button--ghost .wp-block-button__link {
    background-color: transparent;
    color: var(--hs365-teal-deep);
}

.hs365-button--ghost .wp-block-button__link:hover,
.hs365-button--ghost .wp-block-button__link:focus-visible {
    background-color: var(--hs365-sage-light);
    color: var(--hs365-teal-deep);
}

/* ---------- Hero ---------- */

.hs365-hero {
    background: linear-gradient(160deg, var(--hs365-sage-light) 0%, var(--hs365-cream) 55%, #f3e3c8 100%);
    border-radius: var(--hs365-radius-lg);
    padding: clamp(2rem, 6vw, 4rem) clamp(1.25rem, 5vw, 3rem);
    text-align: center;
    margin-bottom: 2.5rem;
}

.hs365-eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--hs365-teal-deep);
    margin-bottom: 0.75rem;
}

.hs365-hero-sub {
    font-size: 1.15rem;
    line-height: 1.6;
    color: var(--hs365-ink-soft);
    max-width: 640px;
    margin: 1rem auto 1.5rem;
}

.hs365-trust-line {
    font-size: 0.95rem;
    color: var(--hs365-ink-soft);
    margin-top: 1.25rem;
}

/* ---------- Sections ---------- */

.hs365-section {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

.hs365-section--tint {
    background-color: var(--hs365-cream-deep);
    border-radius: var(--hs365-radius-lg);
    padding-left: clamp(1rem, 4vw, 2.5rem);
    padding-right: clamp(1rem, 4vw, 2.5rem);
}

.hs365-centre {
    text-align: center;
}

.hs365-lead {
    font-size: 1.1rem;
    line-height: 1.65;
    color: var(--hs365-ink-soft);
}

.hs365-sheet-list {
    columns: 2;
    column-gap: 2rem;
}

/* ---------- Pricing cards: never break words mid-word ---------- */

.hs365-price-card {
    background: var(--hs365-white);
    border: 2px solid var(--hs365-sage-light);
    border-radius: var(--hs365-radius);
    padding: 1.5rem;
    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
}

.hs365-price-card--popular {
    border-color: var(--hs365-teal);
    box-shadow: 0 8px 24px rgba(47, 93, 98, 0.16);
}

.hs365-badge {
    display: inline-block;
    background: var(--hs365-teal);
    color: #fff;
    font-weight: 700;
    font-size: 0.85rem;
    border-radius: 999px;
    padding: 0.25em 0.9em;
    margin-bottom: 0.5rem;
}

.hs365-price {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 2.4rem;
    line-height: 1;
    color: var(--hs365-ink);
    margin: 0.25rem 0;
}

.hs365-price-strike {
    font-size: 1.2rem;
    color: var(--hs365-ink-soft);
    text-decoration: line-through;
    margin-right: 0.5rem;
}

.hs365-price-note {
    color: var(--hs365-ink-soft);
}

.hs365-save {
    color: var(--hs365-amber-deep);
    font-weight: 700;
}

/* ---------- FAQ ---------- */

.hs365-faq details {
    background: var(--hs365-white);
    border: 1px solid var(--hs365-sage-light);
    border-radius: var(--hs365-radius);
    padding: 0.9rem 1.2rem;
    margin-bottom: 0.75rem;
}

.hs365-faq summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--hs365-ink);
}

.hs365-faq summary::marker {
    color: var(--hs365-teal);
}

.hs365-faq p {
    margin-top: 0.6rem;
    color: var(--hs365-ink-soft);
}

/* ---------- Product pages ---------- */

.hs365-inside,
.hs365-delivery {
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--hs365-sage-light);
}

.hs365-license {
    font-size: 0.9rem;
    color: var(--hs365-ink-soft);
    margin-top: 1rem;
}

/* ---------- Closing + footer ---------- */

.hs365-closing {
    text-align: center;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.hs365-footer {
    border-top: 1px solid var(--hs365-sage-light);
    margin-top: 2rem;
}

.hs365-footer-copy,
.hs365-footer-support {
    color: var(--hs365-ink-soft);
    font-size: 0.95rem;
}
