/*
Theme Name: Dream Home Magazine
Theme URI: http://www.dreamhomemagazine.co.uk/
Author: Dream Home Magazine
Author URI: http://www.dreamhomemagazine.co.uk/
Description: An editorial-luxe WordPress theme for Dream Home Magazine — interiors, gardens, architecture & lifestyle. Cream & gold palette, Playfair Display headlines, reusable block patterns for hero banners, post grids and featured collections.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
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: dreamhome
Tags: magazine, blog, editorial, two-columns, custom-menu, featured-images, block-patterns, translation-ready
*/

/* ------------------------------------------------------------------
   Dream Home Magazine — Editorial Luxe
   Palette: Cream #FBF7F0  Ink #1B1A17  Gold #B8924E  Soft #EDE3D2
------------------------------------------------------------------- */

:root{
  --dh-cream:#FBF7F0;
  --dh-cream-2:#F4ECD8;
  --dh-ink:#1B1A17;
  --dh-ink-soft:#4A463F;
  --dh-gold:#B8924E;
  --dh-gold-dark:#8E6F36;
  --dh-line:#E6DCC6;
  --dh-shadow:0 20px 60px -25px rgba(27,26,23,.25);
  --dh-serif:'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  --dh-sans:'Inter', system-ui, -apple-system, Segoe UI, Helvetica, Arial, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--dh-sans);
  font-size:17px;
  line-height:1.7;
  color:var(--dh-ink);
  background:var(--dh-cream);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--dh-ink);text-decoration:none;transition:color .2s ease}
a:hover{color:var(--dh-gold)}

h1,h2,h3,h4,h5{
  font-family:var(--dh-serif);
  font-weight:600;
  line-height:1.15;
  letter-spacing:-.01em;
  color:var(--dh-ink);
  margin:0 0 .5em;
}
h1{font-size:clamp(2.2rem,5vw,4rem)}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
h3{font-size:1.4rem}
p{margin:0 0 1.2em}

.dh-container{max-width:1240px;margin:0 auto;padding:0 28px}
.dh-eyebrow{
  font-family:var(--dh-sans);
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--dh-gold);
  font-weight:600;
}
.dh-divider{
  display:flex;align-items:center;gap:14px;
  color:var(--dh-gold);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;
  margin:48px 0;
}
.dh-divider::before,.dh-divider::after{content:"";flex:1;height:1px;background:var(--dh-gold)}

/* ---------- Header ---------- */
.dh-topbar{
  background:var(--dh-ink);color:var(--dh-cream);
  font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;
  padding:10px 0;text-align:center;
}
.dh-topbar a{color:var(--dh-cream)}
.dh-header{
  background:var(--dh-cream);
  border-bottom:1px solid var(--dh-line);
  padding:30px 0 24px;
}
.dh-masthead{display:flex;flex-direction:column;align-items:center;gap:6px}
.dh-masthead .dh-tagline{
  font-family:var(--dh-sans);font-size:.7rem;
  letter-spacing:.4em;text-transform:uppercase;color:var(--dh-ink-soft);
}
.dh-logo{
  font-family:var(--dh-serif);
  font-size:clamp(2.4rem,5vw,3.6rem);
  font-style:italic;font-weight:600;
  letter-spacing:.01em;
  color:var(--dh-ink);
}
.dh-logo span{color:var(--dh-gold)}
.dh-nav{
  border-top:1px solid var(--dh-line);
  border-bottom:1px solid var(--dh-line);
  background:var(--dh-cream);
  position:sticky;top:0;z-index:50;
}
.dh-nav ul{
  list-style:none;margin:0;padding:0;
  display:flex;justify-content:center;flex-wrap:wrap;gap:36px;
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;
  padding:18px 0;
}
.dh-nav a{font-weight:500;color:var(--dh-ink)}
.dh-nav .current-menu-item > a{color:var(--dh-gold);border-bottom:1px solid var(--dh-gold);padding-bottom:4px}

/* ---------- Hero ---------- */
.dh-hero{
  position:relative;overflow:hidden;
  margin:0 0 80px;
}
.dh-hero__media{
  position:relative;height:clamp(420px,72vh,720px);
  background:#000 center/cover no-repeat;
}
.dh-hero__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(0,0,0,.65) 100%);
}
.dh-hero__inner{
  position:absolute;inset:auto 0 0 0;
  padding:0 28px 56px;color:#fff;
  max-width:1240px;margin:0 auto;
  z-index:2;
}
.dh-hero__inner .dh-eyebrow{color:#E8C98A}
.dh-hero h1{color:#fff;max-width:900px;margin:8px 0 14px}
.dh-hero p{color:rgba(255,255,255,.9);max-width:620px;font-size:1.05rem}
.dh-hero__cta{
  display:inline-block;margin-top:18px;
  padding:14px 28px;background:var(--dh-gold);color:#fff;
  font-size:.75rem;letter-spacing:.28em;text-transform:uppercase;font-weight:600;
}
.dh-hero__cta:hover{background:var(--dh-gold-dark);color:#fff}

/* ---------- Sections ---------- */
.dh-section{padding:64px 0}
.dh-section-head{text-align:center;margin-bottom:48px}
.dh-section-head h2{margin:8px 0 0}
.dh-section-head .dh-rule{
  width:60px;height:1px;background:var(--dh-gold);margin:18px auto 0;
}

/* ---------- Featured grid ---------- */
.dh-featured{
  display:grid;gap:40px;
  grid-template-columns:1.4fr 1fr;
}
.dh-card{background:transparent}
.dh-card__media{
  position:relative;overflow:hidden;
  aspect-ratio:4/3;background:var(--dh-cream-2);
}
.dh-card--lead .dh-card__media{aspect-ratio:5/4}
.dh-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.dh-card:hover .dh-card__media img{transform:scale(1.04)}
.dh-card__cat{
  position:absolute;top:16px;left:16px;z-index:2;
  background:var(--dh-cream);color:var(--dh-ink);
  padding:6px 14px;font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;font-weight:600;
}
.dh-card__body{padding:22px 0 0}
.dh-card h3{
  font-size:clamp(1.3rem,2vw,1.7rem);margin:0 0 10px;
}
.dh-card--lead h3{font-size:clamp(1.7rem,2.6vw,2.3rem)}
.dh-card__meta{
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--dh-ink-soft);margin-bottom:8px;
}
.dh-card__excerpt{color:var(--dh-ink-soft);font-size:.97rem}
.dh-card__sub{display:grid;gap:30px}

/* ---------- Categories pattern ---------- */
.dh-cats{
  display:grid;gap:24px;
  grid-template-columns:repeat(4,1fr);
}
.dh-cat{
  position:relative;display:block;overflow:hidden;
  aspect-ratio:3/4;color:#fff;
}
.dh-cat img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.dh-cat:hover img{transform:scale(1.06)}
.dh-cat::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.7));
}
.dh-cat__label{
  position:absolute;left:0;right:0;bottom:22px;text-align:center;z-index:2;
  font-family:var(--dh-serif);font-size:1.4rem;letter-spacing:.04em;color:#fff;
}
.dh-cat__label small{
  display:block;font-family:var(--dh-sans);font-size:.65rem;
  letter-spacing:.3em;text-transform:uppercase;color:#E8C98A;margin-bottom:6px;
}

/* ---------- Banner / Pull quote pattern ---------- */
.dh-banner{
  background:var(--dh-ink);color:var(--dh-cream);
  padding:80px 28px;text-align:center;
}
.dh-banner h2{color:var(--dh-cream);font-style:italic;max-width:820px;margin:0 auto}
.dh-banner cite{
  display:block;margin-top:24px;font-style:normal;
  font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--dh-gold);
}

/* ---------- Post grid (archive) ---------- */
.dh-grid{
  display:grid;gap:48px 32px;
  grid-template-columns:repeat(3,1fr);
}

/* ---------- Single post ---------- */
.dh-single-hero{
  position:relative;height:clamp(360px,56vh,560px);
  background:#000 center/cover no-repeat;margin-bottom:0;
}
.dh-single-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.65));
}
.dh-single-hero__inner{
  position:absolute;inset:auto 0 0 0;padding:0 28px 60px;color:#fff;
  max-width:900px;margin:0 auto;text-align:center;z-index:2;
}
.dh-single-hero__inner h1{color:#fff;font-size:clamp(2rem,4.5vw,3.4rem)}
.dh-single-hero__inner .dh-meta{color:rgba(255,255,255,.85)}
.dh-meta{
  font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--dh-ink-soft);
}
.dh-article{
  max-width:760px;margin:0 auto;padding:64px 28px;
  font-size:1.08rem;line-height:1.85;
}
.dh-article p:first-of-type::first-letter{
  font-family:var(--dh-serif);float:left;font-size:5rem;line-height:.85;
  padding:6px 14px 0 0;color:var(--dh-gold);
}
.dh-article blockquote{
  border-left:3px solid var(--dh-gold);
  margin:32px 0;padding:6px 0 6px 24px;
  font-family:var(--dh-serif);font-style:italic;font-size:1.4rem;color:var(--dh-ink);
}

/* ---------- Sidebar / widgets ---------- */
.dh-with-sidebar{display:grid;grid-template-columns:1fr 320px;gap:56px;align-items:start}
.dh-sidebar{position:sticky;top:90px}
.dh-widget{margin-bottom:40px;padding-bottom:32px;border-bottom:1px solid var(--dh-line)}
.dh-widget h4{
  font-family:var(--dh-sans);font-size:.7rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--dh-gold);margin-bottom:18px;
}
.dh-widget ul{list-style:none;padding:0;margin:0}
.dh-widget li{padding:8px 0;border-bottom:1px dotted var(--dh-line);font-size:.95rem}

/* ---------- Footer ---------- */
.dh-footer{
  background:var(--dh-ink);color:var(--dh-cream);
  padding:80px 0 30px;margin-top:80px;
}
.dh-footer a{color:var(--dh-cream)}
.dh-footer a:hover{color:var(--dh-gold)}
.dh-footer__cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:60px}
.dh-footer .dh-logo{color:var(--dh-cream)}
.dh-footer h5{
  font-family:var(--dh-sans);font-size:.72rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--dh-gold);margin-bottom:16px;
}
.dh-footer ul{list-style:none;padding:0;margin:0;font-size:.92rem;line-height:2}
.dh-newsletter input[type=email]{
  width:100%;padding:14px 16px;background:transparent;color:var(--dh-cream);
  border:1px solid rgba(255,255,255,.3);font-family:var(--dh-sans);font-size:.9rem;
}
.dh-newsletter button{
  margin-top:10px;padding:13px 24px;background:var(--dh-gold);color:#fff;
  border:none;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;cursor:pointer;
}
.dh-newsletter button:hover{background:var(--dh-gold-dark)}
.dh-footer__base{
  text-align:center;border-top:1px solid rgba(255,255,255,.15);
  padding-top:30px;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(251,247,240,.55);
}

/* ---------- Pagination ---------- */
.dh-pagination{display:flex;justify-content:center;gap:8px;margin:60px 0}
.dh-pagination a, .dh-pagination span{
  padding:10px 16px;border:1px solid var(--dh-line);
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
}
.dh-pagination .current{background:var(--dh-ink);color:var(--dh-cream);border-color:var(--dh-ink)}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .dh-featured{grid-template-columns:1fr}
  .dh-cats{grid-template-columns:repeat(2,1fr)}
  .dh-grid{grid-template-columns:repeat(2,1fr)}
  .dh-with-sidebar{grid-template-columns:1fr}
  .dh-sidebar{position:static}
  .dh-footer__cols{grid-template-columns:1fr 1fr;gap:32px}
  .dh-nav ul{gap:20px;font-size:.7rem}
}
@media (max-width:560px){
  .dh-cats,.dh-grid{grid-template-columns:1fr}
  .dh-footer__cols{grid-template-columns:1fr}
}
