/*
Theme Name: Dedicated Bookkeeping
Theme URI: https://dedicatedbookkeeping.com.au/
Author: Dedicated Bookkeeping
Description: Custom theme for Dedicated Bookkeeping, built from the approved site design concept.
Version: 1.0
Requires PHP: 7.4
Text Domain: dedicated-bookkeeping
*/

:root{
  --navy:#0f2c47;
  --navy-deep:#0a1f33;
  --navy-mid:#173a5c;
  --gold:#b98a3e;
  --gold-light:#d9ad6a;
  --cream:#faf7f2;
  --ink:#1c2530;
  --slate:#5a6a7a;
  --line:#e4e0d8;
  --white:#ffffff;
  --radius:14px;
  --shadow:0 12px 32px rgba(15,44,71,0.10);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces',serif;
  font-weight:600;
  color:var(--navy-deep);
  line-height:1.2;
}
a{text-decoration:none; color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1160px; margin:0 auto; padding:0 28px;}
.eyebrow{
  text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; font-weight:700;
  color:var(--gold); margin-bottom:14px; display:inline-block;
}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 26px; border-radius:999px; font-weight:600; font-size:.95rem;
  cursor:pointer; border:2px solid transparent; transition:all .2s ease;
}
.btn-primary{background:var(--gold); color:var(--navy-deep);}
.btn-primary:hover{background:var(--gold-light); transform:translateY(-1px);}
.btn-ghost{border-color:rgba(255,255,255,.5); color:var(--white);}
.btn-ghost:hover{background:rgba(255,255,255,.12);}
.btn-outline-navy{border-color:var(--navy); color:var(--navy);}
.btn-outline-navy:hover{background:var(--navy); color:var(--white);}

/* Nav */
header.site-header{
  position:sticky; top:0; z-index:100; background:rgba(250,247,242,.92);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--line);
}
.navbar{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1160px; margin:0 auto;}
.logo{display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-weight:600; font-size:1.25rem; color:var(--navy-deep);}
.logo-mark{
  width:38px; height:38px; border-radius:9px; background:var(--navy);
  display:flex; align-items:center; justify-content:center; color:var(--gold-light); font-weight:700; font-size:1.1rem;
}
.logo small{display:block; font-family:'Inter',sans-serif; font-weight:600; font-size:.6rem; letter-spacing:.12em; color:var(--slate); text-transform:uppercase;}
nav.links{display:flex; gap:6px; align-items:center;}
nav.links a.nav-link{
  background:none; border:none; font-family:'Inter',sans-serif; font-size:.92rem; font-weight:600;
  color:var(--slate); padding:9px 16px; border-radius:999px; cursor:pointer; transition:all .15s ease; display:inline-block;
}
nav.links a.nav-link:hover{color:var(--navy);}
nav.links a.nav-link.active{color:var(--navy); background:#eee7d9;}
.nav-cta{display:none;}
@media(min-width:900px){.nav-cta{display:inline-flex;}}
.burger{display:none; background:none; border:none; font-size:1.4rem; cursor:pointer; color:var(--navy);}
@media(max-width:899px){
  nav.links{position:absolute; top:100%; left:0; right:0; background:var(--white); flex-direction:column; align-items:stretch;
    box-shadow:var(--shadow); padding:10px; display:none;}
  nav.links.open{display:flex;}
  nav.links a.nav-link{text-align:left;}
  .burger{display:block;}
}

section{padding:88px 0;}
section.tight{padding:64px 0;}

/* Hero */
.hero{
  background:linear-gradient(135deg,var(--navy-deep),var(--navy) 60%,var(--navy-mid));
  color:var(--white); padding:70px 0 90px; position:relative; overflow:hidden;
}
.hero::after{
  content:""; position:absolute; right:-120px; top:-120px; width:420px; height:420px;
  background:radial-gradient(circle,rgba(217,173,106,.18),transparent 70%);
}
.hero-grid{display:grid; grid-template-columns:1fr; gap:40px; align-items:center; position:relative; z-index:1;}
@media(min-width:960px){.hero-grid{grid-template-columns:1.15fr .85fr;}}
.hero h1{color:var(--white); font-size:2.6rem; margin-bottom:20px;}
@media(min-width:640px){.hero h1{font-size:3.3rem;}}
.hero p.lead{color:#c9d6e3; font-size:1.12rem; max-width:520px; margin-bottom:32px;}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px;}
.hero-card{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:var(--radius);
  padding:28px; backdrop-filter:blur(4px);
}
.hero-card h4{color:var(--gold-light); font-family:'Inter',sans-serif; font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:16px;}
.hero-stat{display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.12); color:#dfe8f0; font-size:.92rem;}
.hero-stat:last-child{border-bottom:none;}
.hero-stat span{flex-shrink:0;}
.hero-stat b{color:var(--white); font-family:'Fraunces',serif; font-size:1.1rem; text-align:right;}

/* Page header (non-Home pages) */
.page-hero{background:var(--navy-deep); color:var(--white); padding:64px 0;}
.page-hero .eyebrow{color:var(--gold-light);}
.page-hero h1{color:var(--white); font-size:2.2rem;}
.page-hero p{color:#c9d6e3; margin-top:14px; max-width:640px;}

/* Badge strip */
.badges{background:var(--white); border-bottom:1px solid var(--line);}
.badge-row{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; padding:26px 0;}
.badge-pill{
  display:flex; align-items:center; gap:8px; padding:9px 18px; border-radius:999px;
  background:var(--cream); border:1px solid var(--line); font-size:.85rem; font-weight:600; color:var(--navy);
}
.badge-pill .dot{width:7px; height:7px; border-radius:50%; background:var(--gold);}

/* Section headers */
.sec-head{max-width:640px; margin-bottom:48px;}
.sec-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.sec-head h2{font-size:2rem;}
.sec-head p{color:var(--slate); margin-top:14px; font-size:1.02rem;}

/* Cards grid */
.grid{display:grid; gap:22px;}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));}
.card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:30px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.card:hover{transform:translateY(-3px); box-shadow:var(--shadow);}
.card .icn{
  width:46px; height:46px; border-radius:12px; background:#eef2f6; color:var(--navy);
  display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:18px;
}
.card.featured{border-color:var(--gold); background:linear-gradient(180deg,#fffdf9,var(--white));}
.card h3{font-size:1.15rem; margin-bottom:10px;}
.card p{color:var(--slate); font-size:.94rem;}
.tag{display:inline-block; font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); background:#fbeed9; padding:4px 10px; border-radius:6px; margin-bottom:14px;}

/* Who we help strip */
.strip{background:var(--navy-deep); color:var(--white);}
.strip .grid-4{display:grid; grid-template-columns:repeat(2,1fr); gap:28px; text-align:center;}
@media(min-width:800px){.strip .grid-4{grid-template-columns:repeat(4,1fr);}}
.strip .num{font-family:'Fraunces',serif; font-size:2.1rem; color:var(--gold-light);}
.strip .lbl{font-size:.85rem; color:#b9c8d6; margin-top:6px;}

/* Testimonial */
.testimonial{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:44px; text-align:center; max-width:760px; margin:0 auto; box-shadow:var(--shadow);
}
.testimonial p.quote{font-family:'Fraunces',serif; font-size:1.3rem; color:var(--navy-deep); font-style:italic; line-height:1.5;}
.testimonial .who{margin-top:22px; font-weight:700; color:var(--navy);}
.testimonial .who span{display:block; font-weight:400; color:var(--slate); font-size:.85rem;}

/* FAQ */
.faq-list{max-width:760px; margin:0 auto;}
.faq-item{
  background:var(--cream); border:1px solid var(--line); border-radius:12px;
  padding:18px 22px; margin-bottom:12px;
}
.faq-item summary{
  cursor:pointer; font-weight:600; color:var(--navy-deep); font-size:1rem;
  list-style:none; display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+"; font-size:1.3rem; color:var(--gold); flex:none; transition:transform .2s ease;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{color:var(--slate); font-size:.94rem; margin-top:12px; line-height:1.6;}

/* CTA banner */
.cta-banner{
  background:linear-gradient(120deg,var(--gold),var(--gold-light)); border-radius:20px; padding:52px 40px;
  text-align:center; color:var(--navy-deep);
}
.cta-banner h2{margin-bottom:10px;}
.cta-banner p{max-width:520px; margin:0 auto 26px; color:#3a2d13;}

/* Fixed fee note */
.fixedfee{
  display:flex; gap:16px; align-items:flex-start; background:#eef2f6; border-left:4px solid var(--navy);
  border-radius:10px; padding:22px 24px; margin:36px 0;
}
.fixedfee .icn{font-size:1.4rem;}
.fixedfee p{color:var(--navy-mid); font-size:.94rem; margin:0;}
.fixedfee strong{color:var(--navy-deep);}

/* Industries */
.industry-card{position:relative; border-radius:var(--radius); overflow:hidden; min-height:220px; display:flex; align-items:flex-end;
  padding:26px; color:var(--white); background:linear-gradient(200deg,var(--navy-mid),var(--navy-deep));}
.industry-card h3{color:var(--white); font-size:1.2rem;}
.industry-card p{color:#cfdae5; font-size:.88rem; margin-top:8px;}

/* About */
.about-grid{display:grid; grid-template-columns:1fr; gap:44px;}
@media(min-width:900px){.about-grid{grid-template-columns:.9fr 1.1fr;}}
.portrait{
  border-radius:var(--radius); min-height:340px; overflow:hidden; position:relative;
  box-shadow:var(--shadow);
}
.portrait img{width:100%; height:100%; object-fit:cover; display:block;}
.portrait .caption{
  position:absolute; left:0; right:0; bottom:0; padding:22px 24px 18px;
  background:linear-gradient(0deg,rgba(10,31,51,.88),rgba(10,31,51,0));
  color:var(--white);
}
.portrait .caption b{font-family:'Fraunces',serif; font-size:1.15rem; display:block;}
.portrait .caption span{font-size:.8rem; color:#cfe0ee;}
.approach-step{display:flex; gap:18px; padding:18px 0; border-bottom:1px solid var(--line);}
.approach-step:last-child{border-bottom:none;}
.approach-step .n{
  width:34px; height:34px; border-radius:50%; background:var(--navy); color:var(--white); flex:none;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.9rem;
}
.approach-step h4{font-family:'Inter',sans-serif; font-size:1rem; margin-bottom:4px;}
.approach-step p{color:var(--slate); font-size:.92rem;}

/* Contact */
.contact-grid{display:grid; grid-template-columns:1fr; gap:36px;}
@media(min-width:900px){.contact-grid{grid-template-columns:1fr 1fr;}}
.contact-card{background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:34px;}
.contact-item{display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--line);}
.contact-item:last-child{border-bottom:none;}
.contact-item .icn{width:38px; height:38px; border-radius:10px; background:#eef2f6; display:flex; align-items:center; justify-content:center; flex:none;}
.contact-item h4{font-family:'Inter',sans-serif; font-size:.95rem; margin-bottom:2px;}
.contact-item p{color:var(--slate); font-size:.9rem;}
.form-row{margin-bottom:16px;}
.form-row label{display:block; font-size:.82rem; font-weight:600; color:var(--navy); margin-bottom:6px;}
.form-row input, .form-row select, .form-row textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:8px; font-family:'Inter',sans-serif; font-size:.92rem; background:var(--cream);
}
.map-block{
  border-radius:var(--radius); min-height:230px; background:repeating-linear-gradient(45deg,#eef2f6,#eef2f6 12px,#e6ebf0 12px,#e6ebf0 24px);
  display:flex; align-items:center; justify-content:center; color:var(--slate); font-size:.88rem; border:1px solid var(--line); margin-top:20px; text-align:center; padding:20px;
}

footer.site-footer{background:var(--navy-deep); color:#b9c8d6; padding:56px 0 26px; margin-top:20px;}
.footer-grid{display:grid; grid-template-columns:1fr; gap:36px;}
@media(min-width:800px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr;}}
footer h4{color:var(--white); font-family:'Inter',sans-serif; font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:16px;}
footer a{display:block; padding:6px 0; font-size:.9rem; color:#b9c8d6;}
footer a:hover{color:var(--gold-light);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1); margin-top:36px; padding-top:22px; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:.8rem; color:#8ea1b3;}

/* Blog — article content */
.entry-content{max-width:760px; margin:0 auto;}
.entry-content h2{font-size:1.5rem; margin:38px 0 14px;}
.entry-content h3{font-size:1.15rem; margin:28px 0 10px; color:var(--navy);}
.entry-content p{margin-bottom:16px; color:var(--ink); font-size:1.02rem;}
.entry-content ul, .entry-content ol{margin:0 0 20px 22px; color:var(--ink);}
.entry-content li{margin-bottom:8px; font-size:1.02rem;}
.entry-content strong{color:var(--navy-deep);}
.entry-content a{color:var(--navy); font-weight:600; text-decoration:underline;}
.entry-content .faq-list{margin-top:8px;}
.entry-content > p:first-of-type{font-size:1.08rem;}

/* Blog — listing cards */
.blog-card{display:flex; flex-direction:column; height:100%;}
.blog-card p{color:var(--slate); font-size:.94rem; margin-bottom:18px; flex:1;}
.blog-card .read-more{font-weight:700; color:var(--navy); font-size:.88rem;}

/* WordPress core alignment helpers (kept minimal) */
.alignwide, .alignfull{max-width:100%;}
