/*
Theme Name: The Enchanted Hollow v1.3
Theme URI: https://enchantedhollow.com.au/
Author: The Enchanted Hollow
Description: Custom brand theme for The Enchanted Hollow. Built for WordPress + WooCommerce with Hearth Keeper integration boundaries.
Version: 1.3.1
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
Text Domain: enchanted-hollow
*/

:root {
  --eh-night: #1a151b;
  --eh-plum: #452032;
  --eh-burgundy: #89465b;
  --eh-rose: #d3b9b0;
  --eh-gold: #c9a67a;
  --eh-cream: #e6d7c9;
  --eh-forest: #6b773f;
  --eh-leaf: #8b2d2d;
  --eh-light: #f4e0c6;
  --eh-ink: #2b1b1e;
  --eh-shadow: 0 18px 40px rgba(14, 7, 10, .28);
  --eh-radius: 18px;
  --eh-max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--eh-ink);
  background: #f6eadc;
  font-family: Georgia, 'Times New Roman', serif;
  line-height: 1.6;
}
a { color: var(--eh-burgundy); text-decoration: none; }
a:hover { color: var(--eh-plum); }
img { max-width: 100%; height: auto; }

.eh-wrap { width: min(var(--eh-max), calc(100% - 32px)); margin-inline: auto; }
.eh-section { padding: 72px 0; }
.eh-section--tight { padding: 36px 0; }
.eh-section-title {
  margin: 0 0 12px;
  color: var(--eh-plum);
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.05;
  letter-spacing: .02em;
}
.eh-kicker { color: var(--eh-burgundy); font-size: .82rem; text-transform: uppercase; letter-spacing: .2em; font-weight: 700; }

/* Header */
.eh-topbar {
  background: linear-gradient(90deg, #351120, #170d13 45%, #351120);
  color: var(--eh-light);
  border-bottom: 1px solid rgba(201,166,122,.55);
  font-size: .83rem;
}
.eh-topbar .eh-wrap { min-height: 38px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.eh-topbar span { opacity: .92; }
.eh-site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(27, 12, 18, .97);
  border-bottom: 1px solid rgba(201,166,122,.32);
  backdrop-filter: blur(12px);
}
.eh-header-inner { display:grid; grid-template-columns: 220px 1fr auto; gap:28px; align-items:center; min-height:88px; }
.eh-brand img { display:block; width: 205px; max-height: 66px; object-fit: contain; }
.eh-brand-text { color: var(--eh-light); font-size: 1.45rem; letter-spacing:.04em; }
.eh-nav ul { display:flex; list-style:none; margin:0; padding:0; gap:26px; align-items:center; justify-content:center; flex-wrap:wrap; }
.eh-nav a { color:#f5dfc6; font-size:.96rem; }
.eh-nav a:hover, .eh-nav .current-menu-item > a { color: #e9b67b; }
.eh-header-actions { display:flex; align-items:center; gap:10px; }
.eh-mini-link { color:#f5dfc6; padding:8px 10px; border-radius:999px; }
.eh-button {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:46px; padding: 12px 22px; border-radius: 999px;
  border:1px solid var(--eh-gold); background: var(--eh-burgundy); color:#fff7eb;
  font-size:.92rem; letter-spacing:.06em; text-transform:uppercase; cursor:pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.eh-button:hover { transform:translateY(-1px); box-shadow:0 8px 24px rgba(137,70,91,.28); background:#713649; color:#fff; }
.eh-button--ghost { background:rgba(18,9,13,.68); color:var(--eh-light); }
.eh-button--light { background:#f4e6d5; color:#3d2029; border-color:#e8c899; }
.eh-menu-toggle { display:none; background:none; border:1px solid rgba(201,166,122,.5); color:#f4e0c6; padding:8px 12px; border-radius:10px; }

/* Hero */
.eh-hero {
  position:relative; overflow:hidden; min-height: 610px;
  background:
    linear-gradient(90deg, rgba(14,7,10,.18), rgba(14,7,10,.8) 32%, rgba(14,7,10,.92) 50%, rgba(14,7,10,.8) 68%, rgba(14,7,10,.18)),
    url('assets/images/hero-left.jpg') left center / 44% 100% no-repeat,
    url('assets/images/hero-right.jpg') right center / 44% 100% no-repeat,
    #1a0d12;
  color:#fff5e8;
  border-bottom: 5px solid #d9c3a2;
}
.eh-hero:after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(circle at 50% 28%, rgba(223,156,87,.22), transparent 34%), linear-gradient(180deg, transparent 72%, rgba(0,0,0,.55));
}
.eh-hero-inner { position:relative; z-index:2; min-height:610px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:58px 16px 76px; }
.eh-hero-logo { width:min(650px, 88vw); filter: drop-shadow(0 18px 24px rgba(0,0,0,.42)); margin-bottom:18px; }
.eh-hero h1 { margin:0 0 12px; font-size:clamp(2.3rem,5.8vw,5.4rem); line-height:.98; font-weight:400; letter-spacing:.04em; text-shadow:0 3px 18px #000; }
.eh-hero p { max-width:720px; font-size:clamp(1rem,2vw,1.35rem); color:#f4e1cf; margin:0 auto 26px; }
.eh-hero-actions { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* Category cards */
.eh-category-grid { display:grid; grid-template-columns: repeat(6, 1fr); gap:12px; margin-top:-42px; position:relative; z-index:5; }
.eh-category-card { min-height:180px; border-radius:14px; overflow:hidden; position:relative; box-shadow:var(--eh-shadow); border:2px solid #efe1ce; background:#241016 center/cover no-repeat; }
.eh-category-card:before { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.05), rgba(10,3,5,.86)); }
.eh-category-card a { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:18px; color:#fff4df; }
.eh-category-card strong { font-size:1.35rem; font-weight:400; letter-spacing:.04em; }
.eh-category-card span { font-size:.8rem; color:#ecd3b3; }
.eh-category-card--books { background-image:url('assets/images/category-books.jpg'); }
.eh-category-card--coffee { background-image:url('assets/images/category-coffee.jpg'); }
.eh-category-card--games { background-image:url('assets/images/category-games.jpg'); }
.eh-category-card--art { background-image:url('assets/images/category-art-crafts.jpg'); }
.eh-category-card--events { background-image:url('assets/images/category-events.jpg'); }
.eh-category-card--community { background-image:url('assets/images/category-community.jpg'); }

/* Feature strip */
.eh-feature-strip { background:#f6ebdd; border-block:1px solid #dbc7aa; }
.eh-feature-grid { display:grid; grid-template-columns:repeat(5,1fr); }
.eh-feature { padding:24px 18px; border-right:1px solid #dfcdb5; text-align:center; }
.eh-feature:last-child { border-right:0; }
.eh-feature b { display:block; color:var(--eh-burgundy); font-size:.92rem; text-transform:uppercase; letter-spacing:.06em; }
.eh-feature span { font-size:.84rem; color:#6b5654; }

/* Cards & content */
.eh-panel { background:#fff7ec; border:1px solid #e1c9ab; border-radius:var(--eh-radius); box-shadow:0 14px 34px rgba(81,43,48,.08); padding:32px; }
.eh-story-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:36px; align-items:center; }
.eh-story-art { min-height:380px; background:linear-gradient(135deg,#241016,#4b2130); border-radius:var(--eh-radius); position:relative; overflow:hidden; }
.eh-story-art:before { content:''; position:absolute; inset:12%; background:url('assets/images/logo-primary.jpg') center/contain no-repeat; filter:saturate(.9); opacity:.92; }
.eh-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.eh-card { background:#fff7ec; border:1px solid #e0c6a8; border-radius:16px; padding:26px; box-shadow:0 10px 28px rgba(67,36,44,.08); }
.eh-card h3 { margin-top:0; color:var(--eh-plum); font-size:1.35rem; }

/* Community CTA */
.eh-community-band { background:linear-gradient(120deg,#3d1524,#6b2d43 48%,#251018); color:#f9ead8; position:relative; overflow:hidden; }
.eh-community-band:after { content:'✦'; position:absolute; right:5%; top:8%; color:#d4a65e; font-size:8rem; opacity:.08; }
.eh-community-grid { display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:center; }
.eh-community-band .eh-section-title { color:#f5dbc0; }

/* Page templates */
.eh-page-hero { background:linear-gradient(135deg,#241016,#56273a); color:#f7e5d0; padding:88px 0 58px; border-bottom:1px solid #b8875b; }
.eh-page-hero h1 { margin:0; font-size:clamp(2.4rem,5vw,4.4rem); line-height:1; font-weight:400; }
.eh-page-content { width:min(900px, calc(100% - 32px)); margin:0 auto; padding:56px 0 80px; }
.eh-page-content h2, .eh-page-content h3 { color:var(--eh-plum); }

/* Forms */
.eh-page-content input[type=text], .eh-page-content input[type=email], .eh-page-content input[type=tel], .eh-page-content input[type=url], .eh-page-content textarea, .eh-page-content select,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea {
  width:100%; border:1px solid #cdb798; background:#fffaf3; color:#302126; border-radius:10px; padding:12px 14px; font:inherit;
}
.eh-page-content button, .eh-page-content input[type=submit], .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
  background:var(--eh-burgundy)!important; color:#fff6e8!important; border:1px solid var(--eh-gold)!important; border-radius:999px!important; padding:12px 20px!important; font-weight:600!important;
}

/* WooCommerce */
.woocommerce .woocommerce-breadcrumb { color:#725b55; margin-bottom:24px; }
.woocommerce ul.products li.product { background:#fff7ec; border:1px solid #e3cdb1; border-radius:16px; padding:14px; box-shadow:0 8px 22px rgba(70,35,45,.07); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { color:var(--eh-plum); font-size:1.08rem; }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price { color:var(--eh-burgundy); font-weight:700; }
.woocommerce span.onsale { background:var(--eh-burgundy); }
.woocommerce-message, .woocommerce-info { border-top-color:var(--eh-burgundy); background:#fff7ec; }

/* Footer */
.eh-footer { background:#171015; color:#ead6c0; border-top:1px solid rgba(201,166,122,.4); }
.eh-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:36px; padding:56px 0; }
.eh-footer h3 { color:#f1c995; margin-top:0; }
.eh-footer a { color:#ead6c0; }
.eh-footer-bottom { border-top:1px solid rgba(255,255,255,.08); padding:18px 0; font-size:.82rem; color:#baa9a0; }

/* WordPress alignment */
.alignwide { width:min(1100px,100%); margin-inline:auto; }
.alignfull { width:100vw; margin-left:calc(50% - 50vw); }

@media (max-width: 1080px) {
  .eh-header-inner { grid-template-columns:190px 1fr auto; }
  .eh-nav ul { gap:15px; }
  .eh-category-grid { grid-template-columns:repeat(3,1fr); }
  .eh-feature-grid { grid-template-columns:repeat(2,1fr); }
  .eh-feature { border-bottom:1px solid #dfcdb5; }
}
@media (max-width: 820px) {
  .eh-topbar .eh-wrap { justify-content:center; text-align:center; }
  .eh-topbar span:nth-child(2) { display:none; }
  .eh-header-inner { grid-template-columns:1fr auto; min-height:74px; }
  .eh-brand img { width:180px; }
  .eh-menu-toggle { display:block; }
  .eh-nav { display:none; grid-column:1/-1; padding:0 0 18px; }
  .eh-nav.is-open { display:block; }
  .eh-nav ul { display:block; }
  .eh-nav li { border-top:1px solid rgba(255,255,255,.08); }
  .eh-nav a { display:block; padding:12px 2px; }
  .eh-header-actions .eh-mini-link { display:none; }
  .eh-hero { min-height:560px; background-size:72% 100%, 72% 100%; }
  .eh-hero-inner { min-height:560px; }
  .eh-hero-logo { width:min(520px,92vw); }
  .eh-category-grid { grid-template-columns:repeat(2,1fr); margin-top:-24px; }
  .eh-story-grid, .eh-community-grid, .eh-footer-grid { grid-template-columns:1fr; }
  .eh-card-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 560px) {
  .eh-wrap { width:min(100% - 22px, var(--eh-max)); }
  .eh-header-actions .eh-button { display:none; }
  .eh-hero { min-height:520px; background-size:96% 100%, 96% 100%; }
  .eh-hero-inner { min-height:520px; padding-top:46px; }
  .eh-hero h1 { font-size:2.55rem; }
  .eh-category-grid { grid-template-columns:1fr; }
  .eh-category-card { min-height:150px; }
  .eh-feature-grid, .eh-card-grid { grid-template-columns:1fr; }
  .eh-feature { border-right:0; }
  .eh-section { padding:54px 0; }
  .eh-panel { padding:22px; }
}


/* v1.1 populated-site components */
.eh-community-band .eh-panel,
.eh-community-band .eh-panel h2,
.eh-community-band .eh-panel h3,
.eh-community-band .eh-panel p { color: var(--eh-plum); }
.eh-community-band .eh-panel .eh-button { color:#fff7eb; }
.eh-lead { font-size:1.18rem; color:#574044; }
.eh-content-section { margin:0 0 46px; }
.eh-content-section:last-child { margin-bottom:0; }
.eh-highlight-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:26px 0; }
.eh-highlight-card { background:#fff7ec; border:1px solid #e0c6a8; border-radius:16px; padding:24px; box-shadow:0 10px 28px rgba(67,36,44,.07); }
.eh-highlight-card h3 { margin-top:0; }
.eh-note { background:#f3dfc7; border-left:4px solid var(--eh-burgundy); padding:18px 20px; border-radius:0 12px 12px 0; margin:26px 0; }
.eh-dark-note { background:linear-gradient(135deg,#31131f,#56273a); color:#f8e8d5; border:1px solid #a16e6b; border-radius:16px; padding:24px; margin:26px 0; }
.eh-dark-note h2,.eh-dark-note h3 { color:#f1c995; }
.eh-checklist { columns:2; column-gap:34px; }
.eh-survey-placeholder { background:linear-gradient(135deg,#fff7ec,#f2dfca); border:1px solid #dcbf9d; border-radius:18px; padding:30px; text-align:center; margin:30px 0; }
.eh-survey-placeholder h2 { color:var(--eh-plum); }
.eh-contact-box { background:#fff7ec; border:1px solid #e0c6a8; border-radius:16px; padding:28px; }
@media(max-width:820px){ .eh-highlight-grid{grid-template-columns:1fr 1fr;} .eh-checklist{columns:1;} }
@media(max-width:560px){ .eh-highlight-grid{grid-template-columns:1fr;} }


/* v1.2 mobile/homepage refinement */
.eh-hero-actions--survey-first { align-items:center; }
.eh-button--survey { padding-inline:26px; font-weight:700; box-shadow:0 12px 28px rgba(0,0,0,.28); }
.eh-explore-block { padding-top:34px; padding-bottom:20px; }
.eh-explore-block .eh-category-grid { margin-top:20px; }
.eh-section-title--compact { font-size:clamp(1.8rem,3.4vw,2.8rem); }
.eh-category-card:after { content:''; position:absolute; inset:auto 0 0 0; height:58%; background:linear-gradient(180deg,rgba(12,4,7,0),rgba(12,4,7,.88) 44%,rgba(12,4,7,.98)); z-index:1; pointer-events:none; }
.eh-category-card a { z-index:2; }
.eh-category-card strong { text-shadow:0 2px 8px rgba(0,0,0,.9); }
.eh-category-card span { text-shadow:0 2px 6px rgba(0,0,0,.9); }
.eh-where { background:#f6ebdd; border-block:1px solid #dbc7aa; }
.eh-where-card { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; overflow:hidden; border:1px solid #dfc9ac; border-radius:18px; background:#dfc9ac; box-shadow:0 10px 28px rgba(67,36,44,.07); margin-top:24px; }
.eh-where-card > div { background:#fff7ec; padding:24px 22px; }
.eh-where-card strong { display:block; color:var(--eh-burgundy); text-transform:uppercase; letter-spacing:.06em; font-size:.86rem; margin-bottom:7px; }
.eh-where-card span { color:#654f50; font-size:.92rem; }
.eh-footer-stage { color:#baa9a0; font-size:.9rem; }
.eh-footer-socials { display:flex; gap:12px; flex-wrap:wrap; margin-top:12px; }

/* Common back-to-top controls: compact and kept clear of mobile content. */
#back-to-top, #scroll-to-top, .back-to-top, .scroll-to-top, .wpfront-scroll-top-container {
  right:14px !important; bottom:14px !important; width:40px !important; height:40px !important;
  min-width:40px !important; min-height:40px !important; max-width:40px !important; max-height:40px !important;
  z-index:45 !important; font-size:18px !important;
}

@media (max-width: 900px) {
  .eh-where-card { grid-template-columns:1fr 1fr; }
}
@media (max-width: 560px) {
  .eh-hero { min-height:500px; }
  .eh-hero-inner { min-height:500px; padding:34px 11px 48px; }
  .eh-hero-logo { width:min(430px,94vw); margin-bottom:12px; }
  .eh-hero h1 { font-size:2.15rem; line-height:1.02; letter-spacing:.025em; }
  .eh-hero p { font-size:.98rem; line-height:1.5; margin-bottom:18px; }
  .eh-hero-actions { gap:10px; width:100%; }
  .eh-hero-actions .eh-button { width:min(100%,390px); min-height:44px; padding:10px 16px; font-size:.79rem; }
  .eh-explore-block { padding-top:26px; }
  .eh-section-title { font-size:2rem; line-height:1.08; }
  .eh-section-title--compact { font-size:1.72rem; }
  .eh-category-card strong { font-size:1.2rem; }
  .eh-category-card span { font-size:.78rem; line-height:1.35; }
  .eh-where-card { grid-template-columns:1fr; }
  .eh-where-card > div { padding:18px; }
  .eh-community-band p { font-size:.96rem; }
  #back-to-top, #scroll-to-top, .back-to-top, .scroll-to-top, .wpfront-scroll-top-container {
    right:10px !important; bottom:10px !important; width:34px !important; height:34px !important;
    min-width:34px !important; min-height:34px !important; max-width:34px !important; max-height:34px !important; font-size:16px !important;
  }
}

