/*
Theme Name: D&D Final Touch
Theme URI: https://ddfinaltouch.com
Author: D&D Final Touch
Description: Custom WordPress theme for D&D Final Touch Home Services.
Version: 2.0.4
Text Domain: ddfinaltouch
*/
:root {
  --black:#0A0A0C; --black-2:#121216; --panel:#16161B; --white:#FFFFFF;
  --text:#ECECEE; --muted:#A6A6AD; --gold:#D4AF37; --gold-lt:#F4D77E; --gold-deep:#B0891F;
  --glass-bg:rgba(255,255,255,0.055); --glass-bg-2:rgba(255,255,255,0.09);
  --glass-brd:rgba(255,255,255,0.14); --glass-hi:inset 0 1px 0 rgba(255,255,255,0.18);
  --shadow:0 18px 50px rgba(0,0,0,0.45); --shadow-sm:0 8px 24px rgba(0,0,0,0.35);
  --radius:20px; --maxw:1160px;
  --gold-grad:linear-gradient(135deg, var(--gold-lt), var(--gold) 55%, var(--gold-deep));
}
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--text);
  background:var(--black); line-height:1.65; font-size:17px; -webkit-font-smoothing:antialiased;
  position:relative; overflow-x:hidden; }
body::before, body::after { content:""; position:fixed; z-index:-2; border-radius:50%;
  filter:blur(90px); opacity:0.5; pointer-events:none; }
body::before { width:520px; height:520px; top:-160px; right:-120px;
  background:radial-gradient(circle, rgba(212,175,55,0.55), transparent 70%); }
body::after { width:480px; height:480px; bottom:-180px; left:-140px;
  background:radial-gradient(circle, rgba(212,175,55,0.28), transparent 70%); }
.bg-base { position:fixed; inset:0; z-index:-3;
  background:radial-gradient(1200px 600px at 80% -10%, rgba(212,175,55,0.10), transparent 60%),
  linear-gradient(180deg, #0C0C0F, #08080A); }
h1,h2,h3,h4 { font-family:"Fraunces",Georgia,serif; color:var(--white); line-height:1.12;
  font-weight:600; letter-spacing:-0.01em; }
h1 { font-size:clamp(2.3rem,5.2vw,3.6rem); }
h2 { font-size:clamp(1.8rem,3.6vw,2.5rem); }
h3 { font-size:1.28rem; }
p { margin-bottom:1rem; color:var(--text); }
a { color:var(--gold-lt); text-decoration:none; }
a:hover { text-decoration:underline; }
img { max-width:100%; display:block; }
.container { width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px; }
.section { padding:84px 0; position:relative; }
.section.tight { padding:54px 0; }
.center { text-align:center; }
.lead { font-size:1.18rem; color:var(--muted); max-width:640px; }
.center .lead { margin-left:auto; margin-right:auto; }
.gold-text { background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.eyebrow { display:inline-block; text-transform:uppercase; letter-spacing:0.2em; font-size:0.78rem;
  font-weight:700; margin-bottom:14px; background:var(--gold-grad); -webkit-background-clip:text;
  background-clip:text; color:transparent; }
.btn { display:inline-block; padding:14px 30px; border-radius:999px; font-weight:700; font-size:1rem;
  cursor:pointer; border:1px solid transparent; text-decoration:none;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease; }
.btn:hover { text-decoration:none; transform:translateY(-2px); }
.btn-primary { background:var(--gold-grad); color:#201a05; box-shadow:0 8px 26px rgba(212,175,55,0.35), var(--glass-hi); }
.btn-primary:hover { box-shadow:0 12px 32px rgba(212,175,55,0.5); }
.btn-glass { background:var(--glass-bg-2); color:var(--white); border:1px solid var(--glass-brd);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:var(--glass-hi); }
.btn-glass:hover { background:rgba(255,255,255,0.16); }
.btn-outline { background:transparent; color:var(--gold-lt); border:1px solid var(--gold); }
.btn-outline:hover { background:rgba(212,175,55,0.12); }
.glass { background:var(--glass-bg); backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%); border:1px solid var(--glass-brd);
  box-shadow:var(--shadow), var(--glass-hi); border-radius:var(--radius); }
.site-header { position:sticky; top:0; z-index:50; }
.site-header .nav-wrap { margin:14px auto 0; max-width:var(--maxw); background:rgba(18,18,22,0.55);
  backdrop-filter:blur(18px) saturate(160%); -webkit-backdrop-filter:blur(18px) saturate(160%);
  border:1px solid var(--glass-brd); border-radius:999px; box-shadow:var(--shadow-sm), var(--glass-hi); }
.nav { display:flex; align-items:center; justify-content:space-between; height:66px; padding:0 12px 0 20px; }
.brand { display:flex; align-items:center; gap:12px; }
.brand:hover { text-decoration:none; }
.nav-links { display:flex; align-items:center; gap:4px; list-style:none; }
.nav-links a { color:var(--text); font-weight:600; font-size:0.96rem; padding:8px 15px; border-radius:999px; }
.nav-links a:hover { background:rgba(255,255,255,0.08); text-decoration:none; }
.nav-links a.active { color:var(--gold-lt); }
.nav-cta { margin-left:6px; }
.nav-cta a { padding:10px 20px; }
.nav-checkbox { display:none; }
.nav-toggle { display:none; background:none; border:0; cursor:pointer; font-size:1.5rem;
  color:var(--white); padding:6px 10px; line-height:1; user-select:none; }
.hero { position:relative; padding:60px 0 40px; }
.hero-grid { display:grid; grid-template-columns:1.05fr 0.95fr; gap:48px; align-items:center; }
.hero h1 { max-width:16ch; }
.hero h1 .gold-text { display:inline; }
.hero p { color:var(--muted); font-size:1.18rem; max-width:50ch; margin-top:20px; }
.hero .btn-row { margin-top:30px; display:flex; gap:14px; flex-wrap:wrap; }
.hero-badges { margin-top:32px; display:flex; gap:12px; flex-wrap:wrap; }
.hero-badge { display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:0.92rem;
  color:var(--text); background:var(--glass-bg); border:1px solid var(--glass-brd); padding:8px 15px;
  border-radius:999px; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.hero-badge .dot { color:var(--gold); }
.hero-visual { position:relative; }
.hero-visual .frame { border-radius:24px; overflow:hidden; border:1px solid var(--glass-brd);
  box-shadow:var(--shadow), var(--glass-hi); background:var(--black-2); }
.hero-visual .frame img { width:100%; display:block; }
.hero-visual .float { position:absolute; left:-18px; bottom:26px; padding:14px 18px; border-radius:16px;
  background:rgba(18,18,22,0.6); border:1px solid var(--glass-brd); backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px); box-shadow:var(--shadow-sm), var(--glass-hi);
  display:flex; align-items:center; gap:12px; }
.hero-visual .float .rating { font-family:"Fraunces",serif; font-size:1.5rem; color:var(--white); font-weight:600; line-height:1; }
.hero-visual .float .stars { color:var(--gold); font-size:0.85rem; letter-spacing:1px; }
.hero-visual .float .sub { font-size:0.72rem; color:var(--muted); }
.grid { display:grid; gap:22px; }
.grid-2 { grid-template-columns:repeat(2,1fr); }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.grid-4 { grid-template-columns:repeat(4,1fr); }
.card { background:var(--glass-bg); backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%); border:1px solid var(--glass-brd);
  border-radius:var(--radius); padding:30px; box-shadow:var(--shadow-sm), var(--glass-hi);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.card:hover { transform:translateY(-5px); border-color:rgba(212,175,55,0.5); box-shadow:var(--shadow); }
.card .icon { width:54px; height:54px; border-radius:14px; background:rgba(212,175,55,0.12);
  border:1px solid rgba(212,175,55,0.3); color:var(--gold-lt); display:grid; place-items:center;
  font-size:1.5rem; margin-bottom:18px; font-family:"Fraunces",serif; font-weight:600; }
.card h3 { margin-bottom:8px; color:var(--white); }
.card p { color:var(--muted); margin-bottom:0; font-size:0.98rem; }
.pill { display:inline-block; background:var(--glass-bg-2); color:var(--text); border:1px solid var(--glass-brd);
  padding:7px 15px; border-radius:999px; font-size:0.9rem; font-weight:600; margin:4px; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.split .media { border-radius:var(--radius); overflow:hidden; border:1px solid var(--glass-brd);
  box-shadow:var(--shadow), var(--glass-hi); background:var(--black-2); min-height:320px; }
.split .media img { width:100%; height:100%; object-fit:cover; display:block; }
.band .container, .band-brown .container { position:relative; z-index:1; }
.band-brown { background:var(--glass-bg); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-top:1px solid var(--glass-brd); border-bottom:1px solid var(--glass-brd); }
.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; text-align:center; }
.stat .num { font-family:"Fraunces",serif; font-size:2.7rem; font-weight:600; background:var(--gold-grad);
  -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat .label { color:var(--muted); font-weight:600; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.gallery-item { position:relative; aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--glass-brd); box-shadow:var(--shadow-sm); background:var(--black-2);
  transition:transform .2s ease, border-color .2s ease; }
.gallery-item:hover { transform:translateY(-4px); border-color:rgba(212,175,55,0.5); }
.gallery-item img { width:100%; height:100%; object-fit:cover; }
.gallery-item .cap { position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(transparent, rgba(6,6,8,0.9)); color:#fff; padding:30px 16px 15px;
  font-weight:600; font-size:0.95rem; }
.gallery-item .cap span { color:var(--gold-lt); display:block; font-size:0.76rem; text-transform:uppercase; letter-spacing:0.12em; }
.review { background:var(--glass-bg); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border:1px solid var(--glass-brd); border-radius:var(--radius); padding:30px; box-shadow:var(--shadow-sm), var(--glass-hi); }
.review .stars { color:var(--gold); font-size:1.05rem; letter-spacing:2px; margin-bottom:12px; }
.review blockquote { font-size:1.05rem; color:var(--text); margin-bottom:18px; font-style:italic; }
.review .who { display:flex; align-items:center; gap:12px; }
.review .avatar { width:44px; height:44px; border-radius:50%; background:var(--gold-grad); color:#1a1503;
  display:grid; place-items:center; font-weight:700; font-family:"Fraunces",serif; }
.review .who .name { font-weight:700; color:var(--white); }
.review .who .meta { font-size:0.85rem; color:var(--muted); }
.rating-hero { display:flex; align-items:center; gap:24px; flex-wrap:wrap; background:var(--glass-bg);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border:1px solid var(--glass-brd);
  border-radius:var(--radius); padding:28px 32px; box-shadow:var(--shadow-sm), var(--glass-hi); }
.rating-hero .big { font-family:"Fraunces",serif; font-size:3rem; font-weight:600; line-height:1;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.rating-hero .stars { color:var(--gold); font-size:1.3rem; letter-spacing:3px; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.info-row { display:flex; gap:16px; padding:16px 0; border-bottom:1px solid rgba(255,255,255,0.08); }
.info-row:last-child { border-bottom:0; }
.info-row .ico { width:48px; height:48px; flex:none; border-radius:13px; background:rgba(212,175,55,0.12);
  border:1px solid rgba(212,175,55,0.3); color:var(--gold-lt); display:grid; place-items:center; font-size:1.2rem; }
.info-row .label { font-size:0.76rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--gold); font-weight:700; }
.info-row .val { font-weight:600; color:var(--white); }
.info-row .val a { color:var(--white); }
.info-row .val a:hover { color:var(--gold-lt); }
form .field { margin-bottom:18px; }
form label { display:block; font-weight:600; margin-bottom:6px; color:var(--white); font-size:0.95rem; }
form input, form select, form textarea { width:100%; padding:13px 15px; border:1px solid var(--glass-brd);
  border-radius:12px; font-family:inherit; font-size:1rem; background:rgba(255,255,255,0.04); color:var(--white); }
form input::placeholder, form textarea::placeholder { color:#6f6f77; }
form input:focus, form select:focus, form textarea:focus { outline:none; border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(212,175,55,0.2); background:rgba(255,255,255,0.06); }
form select option { background:var(--black-2); color:var(--white); }
form textarea { min-height:130px; resize:vertical; }
.form-note { font-size:0.85rem; color:var(--muted); margin-top:4px; }
.page-head { padding-top:40px; }
.page-head .container { padding-top:40px; padding-bottom:30px; }
.page-head h1 { margin-bottom:10px; }
.page-head p { color:var(--muted); max-width:60ch; margin:0; }
.breadcrumb { font-size:0.85rem; color:var(--muted); margin-bottom:16px; }
.breadcrumb a { color:var(--gold-lt); }
.cta-band .glass-cta { text-align:center; border-radius:28px; padding:60px 30px;
  background:linear-gradient(135deg, rgba(212,175,55,0.18), rgba(212,175,55,0.05));
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(212,175,55,0.35); box-shadow:var(--shadow), var(--glass-hi); }
.cta-band h2 { color:var(--white); }
.cta-band p { color:var(--muted); max-width:52ch; margin:12px auto 26px; font-size:1.12rem; }
.site-footer { margin-top:20px; border-top:1px solid rgba(255,255,255,0.08); padding:56px 0 26px; }
.site-footer h4 { color:var(--white); margin-bottom:14px; font-family:"Manrope",sans-serif;
  font-size:0.82rem; text-transform:uppercase; letter-spacing:0.14em; }
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; }
.site-footer a { color:var(--muted); }
.site-footer a:hover { color:var(--gold-lt); }
.footer-links { list-style:none; }
.footer-links li { margin-bottom:9px; color:var(--muted); }
.footer-brand p { color:var(--muted); margin-top:14px; max-width:34ch; font-size:0.95rem; }
.socials { display:flex; gap:12px; margin-top:16px; }
.socials a { width:42px; height:42px; border-radius:12px; background:var(--glass-bg-2);
  border:1px solid var(--glass-brd); display:grid; place-items:center; color:var(--white);
  font-weight:700; font-size:0.82rem; }
.socials a:hover { background:var(--gold-grad); color:#1a1503; text-decoration:none; }
.footer-bottom { margin-top:40px; padding-top:20px; border-top:1px solid rgba(255,255,255,0.08);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.88rem; color:#77777e; }
@media (max-width:900px) {
  .hero-grid { grid-template-columns:1fr; gap:34px; }
  .hero-visual { max-width:520px; }
}
@media (max-width:860px) {
  .nav-links { position:absolute; top:78px; left:0; right:0; background:rgba(18,18,22,0.92);
    backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:1px solid var(--glass-brd);
    border-radius:20px; flex-direction:column; align-items:stretch; gap:2px; padding:12px; display:none; box-shadow:var(--shadow); }
  .nav-checkbox:checked ~ .nav-links { display:flex; }
  .nav-links a { padding:12px 14px; }
  .nav-cta { margin:6px 0 0; }
  .nav-cta a { text-align:center; }
  .nav-toggle { display:block; }
  .split, .contact-grid { grid-template-columns:1fr; gap:28px; }
  .grid-3, .grid-4 { grid-template-columns:repeat(2,1fr); }
  .gallery-grid { grid-template-columns:repeat(2,1fr); }
  .stats { grid-template-columns:1fr; gap:16px; }
  .footer-grid { grid-template-columns:1fr; gap:28px; }
}
@media (max-width:520px) {
  .grid-2, .grid-3, .grid-4, .gallery-grid { grid-template-columns:1fr; }
  .section { padding:58px 0; }
}

/* ---------- shared design refresh ---------- */
:root {
  --black:#10100E;
  --black-2:#171713;
  --panel:#1D1C17;
  --white:#FFFDF7;
  --text:#F1EEE5;
  --muted:#BBB4A5;
  --gold:#D6AA3A;
  --gold-lt:#F0D276;
  --gold-deep:#9B7523;
  --sage:#91A076;
  --sage-deep:#586649;
  --glass-bg:rgba(255,253,247,0.07);
  --glass-bg-2:rgba(255,253,247,0.11);
  --glass-brd:rgba(255,253,247,0.16);
  --shadow:0 18px 44px rgba(0,0,0,0.34);
  --shadow-sm:0 10px 24px rgba(0,0,0,0.24);
  --radius:8px;
  --gold-grad:linear-gradient(135deg, #F1D47A, #D6AA3A 58%, #9B7523);
}
body { background:#10100E; color:var(--text); letter-spacing:0; }
body::before, body::after { display:none; }
.bg-base {
  background:
    linear-gradient(rgba(255,253,247,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,253,247,0.02) 1px, transparent 1px),
    linear-gradient(180deg, #14140F 0%, #0D0D0B 54%, #15140F 100%);
  background-size:72px 72px,72px 72px,auto;
}
.container { padding-left:28px; padding-right:28px; }
.section { padding:78px 0; }
p, .lead, .card p, .review .who .meta, .footer-brand p, .footer-links li, .site-footer a, .form-note, .page-head p, .hero p { color:var(--muted); }
h1, h2, h3, h4 { letter-spacing:0; }
h1 { font-size:clamp(2.45rem, 4.7vw, 4.75rem); line-height:0.98; }
h2 { font-size:clamp(1.75rem, 3vw, 3rem); }
.eyebrow { color:var(--sage); background:none; letter-spacing:0.16em; }
.gold-text, .stat .num, .rating-hero .big { background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.site-header { top:12px; }
.site-header .container { max-width:1220px; }
.site-header .nav-wrap { margin-top:0; background:rgba(20,20,15,0.84); border-color:rgba(255,253,247,0.18); box-shadow:0 16px 34px rgba(0,0,0,0.24); }
.nav { height:72px; }
.brand-logo { height:42px !important; filter:drop-shadow(0 8px 16px rgba(0,0,0,0.28)); }
.nav-links { gap:2px; }
.nav-links a { color:#E8E2D2; }
.nav-links a:hover, .nav-links a.active { color:var(--white); background:rgba(145,160,118,0.16); }
.btn { border-radius:999px; box-shadow:none; }
.btn-primary { color:#171205; box-shadow:0 12px 24px rgba(214,170,58,0.24); }
.btn-glass, .btn-outline { border-color:rgba(255,253,247,0.2); }
.btn-outline { background:rgba(145,160,118,0.08); color:#F1D47A; }
.hero { padding:72px 0 54px; }
.hero-grid { grid-template-columns:minmax(0, 1fr) minmax(360px, 0.82fr); gap:58px; }
.hero h1 { max-width:12ch; }
.hero p { font-size:1.14rem; max-width:56ch; }
.hero-badge, .pill { background:rgba(255,253,247,0.08); border-color:rgba(255,253,247,0.16); color:#EDE8DA; }
.hero-visual .frame, .split .media, .svc-banner, .gallery-item { border-radius:12px; border-color:rgba(255,253,247,0.18); }
.hero-visual .frame { aspect-ratio:4/5; }
.hero-visual .frame img, .split .media img { height:100%; object-fit:cover; }
.hero-visual .float { left:22px; right:22px; bottom:22px; width:auto; justify-content:space-between; background:rgba(16,16,14,0.76); border-radius:8px; }
.band, .band-brown { background:rgba(255,253,247,0.035); border-top:1px solid rgba(255,253,247,0.08); border-bottom:1px solid rgba(255,253,247,0.08); backdrop-filter:none; -webkit-backdrop-filter:none; }
.grid { gap:20px; }
.card, .review, .rating-hero, .glass { background:linear-gradient(180deg, rgba(255,253,247,0.095), rgba(255,253,247,0.045)); border:1px solid rgba(255,253,247,0.14); border-radius:8px; box-shadow:var(--shadow-sm); backdrop-filter:none; -webkit-backdrop-filter:none; }
.card { min-height:100%; }
.card:hover, .gallery-item:hover { transform:translateY(-3px); border-color:rgba(214,170,58,0.44); box-shadow:0 18px 38px rgba(0,0,0,0.3); }
.card .icon, .info-row .ico { border-radius:8px; background:linear-gradient(180deg, rgba(214,170,58,0.2), rgba(145,160,118,0.12)); border-color:rgba(214,170,58,0.28); }
.stat { padding:12px 8px; }
.stat .num { font-size:clamp(2rem, 3.2vw, 2.8rem); }
.gallery-grid { gap:16px; }
.gallery-item { box-shadow:var(--shadow-sm); }
.gallery-item .cap { padding:46px 18px 17px; }
.svc-card { overflow:hidden; }
.svc-media { height:auto; aspect-ratio:4/3; }
.svc-body { padding:22px 24px 24px; }
.svc-banner { height:clamp(260px, 32vw, 380px); }
.svc-banner .ov { background:linear-gradient(90deg, rgba(16,16,14,0.88), rgba(16,16,14,0.18)); }
.page-head .container { padding-top:56px; padding-bottom:36px; }
.breadcrumb { color:#98907F; }
.contact-grid .card, .contact-grid .glass { padding:32px !important; }
form input, form select, form textarea { background:rgba(255,253,247,0.075); border-color:rgba(255,253,247,0.16); border-radius:8px; }
form input:focus, form select:focus, form textarea:focus { border-color:var(--sage); box-shadow:0 0 0 3px rgba(145,160,118,0.22); }
.cta-band .glass-cta { border-radius:8px; background:linear-gradient(135deg, rgba(214,170,58,0.16), rgba(145,160,118,0.12)), rgba(255,253,247,0.04); border-color:rgba(214,170,58,0.28); }
.site-footer { background:#0B0B09; }
.socials a { border-radius:8px; }
@media (max-width:900px) {
  .site-header { top:0; }
  .hero-grid { grid-template-columns:1fr; }
  .hero h1 { max-width:13ch; }
  .hero-visual { max-width:none; }
  .hero-visual .frame { aspect-ratio:16/11; }
}
@media (max-width:860px) {
  .site-header .nav-wrap { border-radius:18px; }
  .nav { height:68px; }
  .nav-links { top:76px; background:rgba(17,17,13,0.97); border-radius:8px; }
  .nav-links a, .nav-cta a { border-radius:8px; }
}
@media (max-width:620px) {
  .container { padding-left:18px; padding-right:18px; }
  .section { padding:54px 0; }
  .hero { padding-top:48px; }
  .hero .btn-row, .cta-band .btn-row { display:grid !important; grid-template-columns:1fr; }
  .btn { width:100%; text-align:center; padding-left:18px; padding-right:18px; }
  .hero-badges { gap:8px; }
  .hero-badge { width:100%; justify-content:flex-start; }
  .hero-visual .float { position:static; margin-top:10px; }
  .contact-grid .card, .contact-grid .glass { padding:24px !important; }
  .info-row { gap:12px; }
}

/* Homepage service image cards */
.home-services-grid {
  align-items:stretch;
}

.home-service-card {
  padding:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.home-service-media {
  aspect-ratio:16/10;
  overflow:hidden;
  background:#15140F;
  border-bottom:1px solid rgba(255,253,247,0.12);
}

.home-service-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(0.94) contrast(1.03);
  transition:transform .45s ease, filter .45s ease;
}

.home-service-card:hover .home-service-media img {
  transform:scale(1.045);
  filter:saturate(1.02) contrast(1.06);
}

.home-service-body {
  position:relative;
  padding:34px 26px 28px;
  flex:1;
}

.home-service-body .icon {
  position:absolute;
  top:-28px;
  left:24px;
  margin:0;
  background:linear-gradient(180deg, rgba(32,29,19,0.96), rgba(21,20,15,0.96));
  box-shadow:0 10px 22px rgba(0,0,0,0.28);
}

.home-service-body h3 {
  margin-top:2px;
}

@media (max-width:620px) {
  .home-service-media {
    aspect-ratio:16/9;
  }

  .home-service-body {
    padding:32px 22px 24px;
  }
}


/* Photo-led trust and service discount sections */
.feature-showcase {
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(320px, 0.92fr);
  gap:24px;
  align-items:stretch;
}
.feature-showcase-reverse .feature-media { order:2; }
.feature-media {
  min-height:430px;
  overflow:hidden;
  border:1px solid var(--glass-brd);
  border-radius:var(--radius);
  background:var(--black-2);
  box-shadow:var(--shadow), var(--glass-hi);
}
.feature-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(0.88) contrast(1.04);
  transition:transform .55s ease, filter .55s ease;
}
.feature-media:hover img {
  transform:scale(1.025);
  filter:saturate(0.98) contrast(1.06);
}
.feature-points { display:grid; gap:14px; }
.feature-point {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:18px;
  align-items:start;
  padding:24px;
  border:1px solid var(--glass-brd);
  border-radius:var(--radius);
  background:var(--glass-bg);
  box-shadow:var(--shadow-sm), var(--glass-hi);
  transition:transform .2s ease, border-color .2s ease;
}
.feature-point:hover {
  transform:translateX(4px);
  border-color:rgba(212,175,55,0.5);
}
.feature-point .icon {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(212,175,55,0.3);
  border-radius:14px;
  background:rgba(212,175,55,0.12);
  color:var(--gold-lt);
  font-family:"Fraunces",serif;
  font-size:1.25rem;
}
.feature-point h3 { margin-bottom:7px; }
.feature-point p {
  margin:0;
  color:var(--muted);
  font-size:0.96rem;
}
@media (max-width:860px) {
  .feature-showcase { grid-template-columns:1fr; }
  .feature-showcase-reverse .feature-media { order:0; }
  .feature-media { min-height:0; aspect-ratio:16/10; }
}
@media (max-width:620px) {
  .feature-media { aspect-ratio:4/3; }
  .feature-point { gap:14px; padding:20px; }
}
/* Conversion and trust upgrades */
.mobile-contact-bar {
  display:none;
}

.service-area-grid {
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap:36px;
  align-items:center;
}

.area-list {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}

.area-list span {
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:8px 14px;
  border:1px solid rgba(255,253,247,0.14);
  border-radius:999px;
  background:rgba(255,253,247,0.075);
  color:#EDE8DA;
  font-weight:700;
  font-size:0.92rem;
}

.faq-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}

.faq-item {
  border:1px solid rgba(255,253,247,0.14);
  border-radius:8px;
  background:linear-gradient(180deg, rgba(255,253,247,0.095), rgba(255,253,247,0.045));
  box-shadow:var(--shadow-sm);
  padding:0;
  overflow:hidden;
}

.faq-item summary {
  cursor:pointer;
  list-style:none;
  padding:20px 22px;
  color:var(--white);
  font-weight:800;
}

.faq-item summary::-webkit-details-marker {
  display:none;
}

.faq-item summary::after {
  content:"+";
  float:right;
  color:var(--gold-lt);
  font-weight:800;
}

.faq-item[open] summary::after {
  content:"-";
}

.faq-item p {
  margin:0;
  padding:0 22px 22px;
  color:var(--muted);
}

.quick-contact-row {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin:18px 0 22px;
}

.quick-contact-row a {
  display:grid;
  place-items:center;
  min-height:42px;
  border-radius:8px;
  border:1px solid rgba(255,253,247,0.16);
  background:rgba(145,160,118,0.12);
  color:var(--white);
  font-weight:800;
}

.quick-contact-row a:hover {
  text-decoration:none;
  border-color:rgba(214,170,58,0.44);
  background:rgba(214,170,58,0.14);
}

.form-row {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

@media (max-width:760px) {
  .service-area-grid,
  .faq-grid,
  .form-row {
    grid-template-columns:1fr;
  }

  .area-list {
    justify-content:flex-start;
  }
}

@media (max-width:620px) {
  body {
    padding-bottom:72px;
  }

  .mobile-contact-bar {
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:80;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:8px;
    padding:8px;
    border:1px solid rgba(255,253,247,0.18);
    border-radius:14px;
    background:rgba(17,17,13,0.94);
    box-shadow:0 16px 34px rgba(0,0,0,0.34);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
  }

  .mobile-contact-bar a {
    display:grid;
    place-items:center;
    min-height:44px;
    border-radius:10px;
    background:rgba(255,253,247,0.08);
    color:var(--white);
    font-weight:800;
  }

  .mobile-contact-bar a:last-child {
    background:var(--gold-grad);
    color:#171205;
  }

  .mobile-contact-bar a:hover {
    text-decoration:none;
  }

  .quick-contact-row {
    grid-template-columns:1fr;
  }
}

/* WordPress theme helpers */
.admin-bar .site-header { top:44px; }
.quote-alert {
  margin:0 0 18px;
  padding:14px 16px;
  border-radius:8px;
  border:1px solid rgba(255,253,247,0.16);
  background:rgba(145,160,118,0.14);
  color:var(--white);
  font-weight:700;
}
.quote-alert.error {
  background:rgba(214,80,58,0.14);
  border-color:rgba(214,80,58,0.32);
}
/* Services page WordPress layout fix */
.svc-banner {
  position:relative;
  overflow:hidden;
  min-height:260px;
  isolation:isolate;
}

.svc-banner img {
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
  display:block;
}

.svc-banner .ov {
  position:absolute;
  inset:0;
  z-index:1;
  display:flex;
  align-items:center;
  background:linear-gradient(90deg, rgba(16,16,14,0.88), rgba(16,16,14,0.2));
}

.svc-banner .ov > div {
  max-width:620px;
  padding:0 42px;
}

.svc-banner .ov h2,
.svc-banner .ov p {
  position:relative;
  z-index:2;
}

.svc-banner .ov h2 {
  color:var(--white);
  max-width:13ch;
}

.svc-banner .ov p {
  max-width:48ch;
  margin:8px 0 0;
  color:rgba(255,253,247,0.84);
}

.svc-card {
  padding:0 !important;
  overflow:hidden;
}

.svc-card .svc-media {
  display:block;
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
}

.svc-card .svc-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.svc-card .svc-body {
  padding:22px 24px 26px;
}

.svc-card .svc-body h3 {
  margin-bottom:8px;
}

.svc-card .svc-body p {
  margin:0;
}

@media (max-width:620px) {
  .svc-banner {
    min-height:300px;
  }

  .svc-banner img {
    min-height:300px;
  }

  .svc-banner .ov {
    align-items:flex-end;
    background:linear-gradient(180deg, rgba(16,16,14,0.18), rgba(16,16,14,0.9));
  }

  .svc-banner .ov > div {
    padding:0 24px 28px;
  }

  .svc-banner .ov h2 {
    max-width:14ch;
  }
}

/* Image-free logo lockup for WordPress hosts that block SVG theme assets */
.brand-lockup {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--white);
  line-height:1;
}

.brand-lockup:hover {
  text-decoration:none;
}

.brand-monogram {
  display:grid;
  place-items:center;
  width:50px;
  height:38px;
  border:1px solid rgba(214,170,58,0.46);
  border-radius:8px;
  background:linear-gradient(135deg, rgba(214,170,58,0.22), rgba(145,160,118,0.12));
  color:var(--gold-lt);
  font-family:"Fraunces", Georgia, serif;
  font-size:1.08rem;
  font-weight:700;
  letter-spacing:0;
  box-shadow:0 8px 18px rgba(0,0,0,0.24);
}

.brand-copy {
  display:grid;
  gap:4px;
}

.brand-copy span {
  color:var(--white);
  font-weight:800;
  font-size:1rem;
}

.brand-copy small {
  color:var(--gold-lt);
  font-size:0.62rem;
  font-weight:800;
  letter-spacing:0.16em;
  text-transform:uppercase;
}

.footer-logo {
  margin-bottom:14px;
}

.footer-logo .brand-monogram {
  width:62px;
  height:46px;
  font-size:1.22rem;
}

.footer-logo .brand-copy span {
  font-size:1.16rem;
}

@media (max-width:420px) {
  .brand-copy {
    display:none;
  }
}

/* Unified founders and dual-service homepage */
.hero-brand-mark {
  width:94px;
  aspect-ratio:1;
  object-fit:cover;
  margin-bottom:22px;
  border-radius:50%;
  box-shadow:0 14px 38px rgba(0,0,0,.34);
}
.founders-hero h1 { max-width:11ch; }
.founders-visual .frame img { object-position:center 20%; }
.founder-caption { gap:18px !important; }
.founder-caption > div:not(.caption-divider) { display:grid; gap:2px; }
.founder-caption strong { color:var(--white); font-family:"Fraunces",serif; font-size:.98rem; }
.founder-caption span { color:var(--muted); font-size:.74rem; }
.caption-divider { width:1px; align-self:stretch; background:rgba(255,255,255,.18); }
.section-intro { margin-bottom:44px; }
.section-intro .lead { max-width:760px; }
.division-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.division-card {
  overflow:hidden;
  border:1px solid rgba(255,253,247,.15);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,253,247,.095),rgba(255,253,247,.04));
  box-shadow:var(--shadow-sm);
}
.division-media { height:360px; overflow:hidden; background:#171713; border-bottom:1px solid rgba(255,255,255,.12); }
.division-media img { width:100%; height:100%; object-fit:cover; object-position:center 20%; transition:transform .5s ease; }
.division-card:hover .division-media img { transform:scale(1.025); }
.division-media.portrait-focus img { object-position:center 28%; }
.division-content { padding:32px; }
.division-kicker { display:block; margin-bottom:10px; color:var(--gold-lt); text-transform:uppercase; letter-spacing:.14em; font-size:.73rem; font-weight:800; }
.division-content h3 { font-size:1.65rem; margin-bottom:13px; }
.division-content p { color:var(--muted); }
.service-checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 16px; margin:22px 0; padding:0; list-style:none; }
.service-checks li { position:relative; padding-left:19px; color:#E7E2D6; font-size:.91rem; }
.service-checks li::before { content:"\2713"; position:absolute; left:0; color:var(--gold); font-weight:800; }
.text-link { display:inline-flex; color:var(--gold-lt); font-weight:800; }
.story-grid { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); gap:58px; align-items:center; }
.story-photo { min-height:650px; overflow:hidden; border:1px solid rgba(255,253,247,.16); border-radius:14px; box-shadow:var(--shadow); }
.story-photo img { width:100%; height:100%; object-fit:cover; object-position:center 18%; }
.story-copy p { color:var(--muted); }
.story-copy blockquote { margin-top:27px; padding:22px 0 4px 24px; border-left:2px solid var(--gold); color:var(--white); font-family:"Fraunces",serif; font-size:1.55rem; line-height:1.35; }
.flyer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:start; }
.flyer-card { position:relative; display:block; height:540px; overflow:hidden; border:1px solid rgba(255,253,247,.15); border-radius:12px; background:#171713; box-shadow:var(--shadow-sm); }
.flyer-card img { width:100%; height:100%; object-fit:cover; object-position:top center; transition:transform .45s ease,filter .45s ease; }
.flyer-card:hover img { transform:scale(1.02); filter:brightness(.82); }
.flyer-card span { position:absolute; left:0; right:0; bottom:0; padding:42px 20px 18px; background:linear-gradient(transparent,rgba(7,7,7,.96)); color:var(--white); font-family:"Fraunces",serif; font-size:1.16rem; }
.brand-logo-original { width:48px !important; height:48px !important; border-radius:50%; object-fit:cover; filter:none !important; }
.footer-brand-image { width:96px; height:96px; object-fit:cover; border-radius:50%; margin-bottom:18px; }
@media (max-width:900px) {
  .division-grid,.story-grid { grid-template-columns:1fr; }
  .story-photo { min-height:0; aspect-ratio:4/3; }
  .flyer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .hero-brand-mark { width:78px; }
  .founder-caption { position:static !important; margin-top:10px; display:grid !important; grid-template-columns:1fr 1px 1fr; }
  .division-media { height:290px; }
  .division-content { padding:24px 20px; }
  .service-checks { grid-template-columns:1fr; }
  .story-photo { aspect-ratio:3/4; }
  .story-copy blockquote { font-size:1.3rem; }
  .flyer-grid { grid-template-columns:1fr; }
  .flyer-card { height:500px; }
}