/*
Theme Name: ZK Tiling and Stone
Theme URI: https://zktilingandstone.com.au
Author: ZK Tiling and Stone
Description: Professional WordPress theme for Z&K Tiling and Stone — Adelaide's trusted tiling, waterproofing and renovation specialists. Fully editable with Elementor and WordPress Block Editor.
Version: 2.0.0
Requires at least: 5.9
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: zk-tiling-stone
Tags: business, elementor, custom-colors, custom-logo, full-width-template, responsive-layout
*/

/* ===================================================
   GLOBAL RESET & BASE
   =================================================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: #f8f5f0;
    color: #141414;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { cursor: pointer; font: inherit; border: none; background: none; }
input, textarea, select { font: inherit; }

h1, h2, h3, h4, h5, h6 {
    font-family: 'Playfair Display', Georgia, serif;
    letter-spacing: -0.02em;
    line-height: 1.1;
}

/* ===================================================
   CSS VARIABLES
   =================================================== */
:root {
    --gold:       #f0a818;
    --gold-light: #f7c43a;
    --fg:         #141414;
    --bg:         #f8f5f0;
    --card:       #ffffff;
    --muted:      #5a5a5a;
    --border:     #e0d9d0;
    --secondary:  #f0ece4;
    --radius:     0.5rem;
    --grad-gold:  linear-gradient(135deg, #f0a818, #f7c43a);
    --grad-dark:  linear-gradient(180deg, #1a1a1a, #111111);
    --grad-hero:  linear-gradient(135deg, rgba(20,20,20,0.85), rgba(10,10,10,0.70));
    --shadow-sm:  0 4px 20px -4px rgba(0,0,0,0.08);
    --shadow-md:  0 20px 60px -20px rgba(0,0,0,0.25);
    --shadow-gold:0 10px 40px -10px rgba(240,168,24,0.40);
    --ease:       cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===================================================
   LAYOUT HELPERS
   =================================================== */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
}
.zk-section { padding: 5rem 0; }
.zk-section-alt { background: var(--secondary); }
.zk-section-dark { background: var(--grad-dark); color: var(--bg); }
.zk-text-center { text-align: center; }
.zk-eyebrow {
    color: var(--gold);
    text-transform: uppercase;
    letter-spacing: 0.3em;
    font-size: 0.72rem;
    margin-bottom: 0.75rem;
}
.zk-title { font-size: clamp(1.8rem, 4vw, 3.5rem); }
.zk-subtitle { margin-top: 1rem; color: var(--muted); max-width: 600px; font-size: 1.05rem; }
.zk-subtitle-light { margin-top: 1rem; color: rgba(248,245,240,0.75); max-width: 600px; font-size: 1.05rem; }

/* ===================================================
   BUTTONS
   =================================================== */
.zk-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.75rem;
    border-radius: var(--radius);
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.35s var(--ease);
    white-space: nowrap;
    cursor: pointer;
    border: 2px solid transparent;
}
.zk-btn-gold  { background: var(--gold); color: var(--fg); border-color: var(--gold); box-shadow: var(--shadow-gold); }
.zk-btn-gold:hover { background: var(--gold-light); border-color: var(--gold-light); transform: scale(1.04); }
.zk-btn-dark  { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.zk-btn-dark:hover { background: var(--gold); color: var(--fg); border-color: var(--gold); }
.zk-btn-outline { background: transparent; color: var(--bg); border-color: rgba(255,255,255,0.4); }
.zk-btn-outline:hover { background: var(--bg); color: var(--fg); border-color: var(--bg); }
.zk-btn-outline-dark { background: transparent; color: var(--fg); border-color: var(--fg); }
.zk-btn-outline-dark:hover { background: var(--fg); color: var(--bg); }
.zk-btn-lg { padding: 1rem 2.25rem; font-size: 1rem; }

/* ===================================================
   NAVBAR
   =================================================== */
.zk-header {
    position: fixed; top: 0; left: 0; right: 0; z-index: 999;
    background: rgba(248,245,240,0.75);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid transparent;
    transition: all 0.4s var(--ease);
}
.zk-header.scrolled {
    background: rgba(248,245,240,0.97);
    border-bottom-color: var(--border);
    box-shadow: var(--shadow-sm);
}
.zk-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 72px;
}
.zk-logo img { height: 36px; width: auto; max-width: 150px; display: block; }
.zk-logo:hover img { opacity: 0.85; }
.zk-nav-links {
    display: none;
    align-items: center;
    gap: 2rem;
}
.zk-nav-links a {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--fg);
    position: relative;
    padding-bottom: 4px;
    transition: color 0.25s;
}
.zk-nav-links a::after {
    content: '';
    position: absolute; bottom: 0; left: 0;
    width: 0; height: 2px;
    background: var(--gold);
    transition: width 0.3s var(--ease);
}
.zk-nav-links a:hover,
.zk-nav-links a.active { color: var(--gold); }
.zk-nav-links a:hover::after,
.zk-nav-links a.active::after { width: 100%; }
.zk-nav-right { display: none; align-items: center; gap: 0.75rem; }
.zk-nav-abn { font-size: 0.68rem; color: var(--muted); letter-spacing: 0.04em; }
.zk-hamburger {
    display: flex; flex-direction: column; gap: 5px; padding: 8px;
}
.zk-hamburger span {
    display: block; width: 22px; height: 2px;
    background: var(--fg); transition: all 0.3s var(--ease);
    border-radius: 2px;
}
.zk-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.zk-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.zk-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.zk-mobile-nav {
    display: none; flex-direction: column;
    background: var(--card); border-top: 1px solid var(--border);
    padding: 1rem 0 1.25rem;
}
.zk-mobile-nav.open { display: flex; }
.zk-mobile-nav a {
    padding: 0.7rem 1.5rem;
    font-size: 0.82rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--fg); transition: color 0.2s;
}
.zk-mobile-nav a:hover, .zk-mobile-nav a.active { color: var(--gold); }
.zk-mobile-nav .zk-btn { margin: 0.75rem 1.5rem; align-self: flex-start; }
@media (min-width: 1024px) {
    .zk-nav-links { display: flex; }
    .zk-nav-right { display: flex; }
    .zk-hamburger { display: none; }
}

/* ===================================================
   PAGE HEADER BANNER
   =================================================== */
.zk-page-header {
    background: var(--grad-dark);
    color: var(--bg);
    padding: 8rem 0 4.5rem;
    position: relative;
    overflow: hidden;
}
.zk-page-header::before {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(circle at 15% 50%, rgba(240,168,24,0.12), transparent 55%);
}
.zk-page-header > .container { position: relative; }
.zk-page-header h1 { font-size: clamp(2rem,5vw,3.8rem); color: var(--bg); }
.zk-page-header .zk-page-sub { margin-top: 1rem; color: rgba(248,245,240,0.75); font-size: 1.05rem; max-width: 650px; }

/* ===================================================
   HERO SLIDER
   =================================================== */
.zk-hero { position: relative; min-height: 88vh; display: flex; align-items: center; overflow: hidden; }
.zk-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease-in-out; }
.zk-slide.active { opacity: 1; }
.zk-slide img { width: 100%; height: 100%; object-fit: cover; }
.zk-slide-overlay { position: absolute; inset: 0; background: var(--grad-hero); }
.zk-hero-content { position: relative; z-index: 10; color: var(--bg); max-width: 860px; padding-top: 72px; }
.zk-hero-eyebrow { color: var(--gold); text-transform: uppercase; letter-spacing: 0.3em; font-size: 0.72rem; margin-bottom: 1.5rem; }
.zk-hero-title { font-family: 'Playfair Display', serif; font-size: clamp(2.2rem,5.5vw,4.5rem); font-weight: 600; line-height: 1.04; }
.zk-hero-sub { margin-top: 1.25rem; font-size: 1.05rem; color: rgba(248,245,240,0.85); max-width: 580px; }
.zk-hero-btns { margin-top: 2.5rem; display: flex; flex-wrap: wrap; gap: 1rem; }
.zk-hero-prev, .zk-hero-next {
    display: none;
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 20;
    width: 48px; height: 48px; border-radius: 50%;
    background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2);
    backdrop-filter: blur(4px); color: var(--bg);
    align-items: center; justify-content: center;
    transition: all 0.3s var(--ease);
}
.zk-hero-prev:hover, .zk-hero-next:hover { background: var(--gold); color: var(--fg); }
.zk-hero-prev { left: 1.5rem; }
.zk-hero-next { right: 1.5rem; }
.zk-hero-dots { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); z-index: 20; display: flex; gap: 0.5rem; }
.zk-dot { height: 8px; width: 8px; border-radius: 4px; background: rgba(255,255,255,0.5); transition: all 0.4s var(--ease); cursor: pointer; border: none; }
.zk-dot.active { width: 40px; background: var(--gold); }
@media(min-width:768px){ .zk-hero-prev,.zk-hero-next{display:flex;} }

/* ===================================================
   HIGHLIGHT CARDS (3-col)
   =================================================== */
.zk-highlights { display: grid; gap: 1.5rem; }
@media(min-width:768px){ .zk-highlights{grid-template-columns:repeat(3,1fr);} }
.zk-highlight-card {
    padding: 2rem; background: var(--card);
    border: 1px solid var(--border); border-radius: 0.75rem;
    box-shadow: var(--shadow-sm); transition: all 0.4s var(--ease);
    position: relative; overflow: hidden;
}
.zk-highlight-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
    border-radius: 0.75rem 0.75rem 0 0;
}
.zk-highlight-card:nth-child(1)::before { background: var(--grad-gold); }
.zk-highlight-card:nth-child(2)::before { background: linear-gradient(90deg,#1a56db,#3f83f8); }
.zk-highlight-card:nth-child(3)::before { background: linear-gradient(90deg,#0e9f6e,#31c48d); }
.zk-highlight-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.zk-highlight-card:nth-child(1):hover { background: #b37e12; color: var(--bg); }
.zk-highlight-card:nth-child(2):hover { background: #1a56db; color: var(--bg); }
.zk-highlight-card:nth-child(3):hover { background: #0e9f6e; color: var(--bg); }
.zk-highlight-card:hover p { color: rgba(255,255,255,0.85); }
.zk-hcard-icon {
    width: 54px; height: 54px; border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1.25rem; transition: all 0.4s var(--ease);
}
.zk-highlight-card:nth-child(1) .zk-hcard-icon { background: linear-gradient(135deg,#f0a818,#f7c43a); }
.zk-highlight-card:nth-child(2) .zk-hcard-icon { background: linear-gradient(135deg,#1a56db,#3f83f8); }
.zk-highlight-card:nth-child(3) .zk-hcard-icon { background: linear-gradient(135deg,#0e9f6e,#31c48d); }
.zk-highlight-card:hover .zk-hcard-icon { background: rgba(255,255,255,0.2); }
.zk-hcard-icon svg { width: 24px; height: 24px; color: #fff; }
.zk-highlight-card h3 { font-size: 1.35rem; margin-bottom: 0.5rem; }
.zk-highlight-card p { font-size: 0.875rem; color: var(--muted); transition: color 0.4s; }

/* ===================================================
   SERVICE CARDS
   =================================================== */
.zk-services-grid { display: grid; gap: 1.5rem; }
@media(min-width:640px){ .zk-services-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:1024px){ .zk-services-grid{grid-template-columns:repeat(3,1fr);} }

/* Card accent colours */
--sc-colors: #f0a818, #1a56db, #0e9f6e, #c05621, #7e3af2, #e02424;

.zk-service-card {
    padding: 1.75rem; background: var(--card);
    border: 1px solid var(--border); border-radius: 0.75rem;
    box-shadow: var(--shadow-sm); transition: all 0.4s var(--ease);
    position: relative; overflow: hidden;
}
.zk-service-card::before {
    content:''; position:absolute; top:0; left:0; right:0; height:3px;
    border-radius: 0.75rem 0.75rem 0 0;
}

/* Repeating 6-colour cycle */
.zk-service-card:nth-child(6n+1)::before { background: #f0a818; }
.zk-service-card:nth-child(6n+2)::before { background: #1a56db; }
.zk-service-card:nth-child(6n+3)::before { background: #0e9f6e; }
.zk-service-card:nth-child(6n+4)::before { background: #c05621; }
.zk-service-card:nth-child(6n+5)::before { background: #7e3af2; }
.zk-service-card:nth-child(6n+6)::before { background: #e02424; }

.zk-service-card:nth-child(6n+1):hover { background: #b37e12; border-color: #b37e12; }
.zk-service-card:nth-child(6n+2):hover { background: #1a56db; border-color: #1a56db; }
.zk-service-card:nth-child(6n+3):hover { background: #0e9f6e; border-color: #0e9f6e; }
.zk-service-card:nth-child(6n+4):hover { background: #c05621; border-color: #c05621; }
.zk-service-card:nth-child(6n+5):hover { background: #7e3af2; border-color: #7e3af2; }
.zk-service-card:nth-child(6n+6):hover { background: #e02424; border-color: #e02424; }
.zk-service-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); color: var(--bg); }
.zk-service-card:hover h3, .zk-service-card:hover p { color: rgba(255,255,255,0.92); }

.zk-sc-icon {
    width: 52px; height: 52px; border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1.25rem; transition: all 0.4s var(--ease);
}
.zk-service-card:nth-child(6n+1) .zk-sc-icon { background:#fff8e6; }
.zk-service-card:nth-child(6n+2) .zk-sc-icon { background:#eff6ff; }
.zk-service-card:nth-child(6n+3) .zk-sc-icon { background:#ecfdf5; }
.zk-service-card:nth-child(6n+4) .zk-sc-icon { background:#fff7ed; }
.zk-service-card:nth-child(6n+5) .zk-sc-icon { background:#f5f3ff; }
.zk-service-card:nth-child(6n+6) .zk-sc-icon { background:#fff1f2; }
.zk-service-card:nth-child(6n+1) .zk-sc-icon svg { color:#f0a818; }
.zk-service-card:nth-child(6n+2) .zk-sc-icon svg { color:#1a56db; }
.zk-service-card:nth-child(6n+3) .zk-sc-icon svg { color:#0e9f6e; }
.zk-service-card:nth-child(6n+4) .zk-sc-icon svg { color:#c05621; }
.zk-service-card:nth-child(6n+5) .zk-sc-icon svg { color:#7e3af2; }
.zk-service-card:nth-child(6n+6) .zk-sc-icon svg { color:#e02424; }
.zk-service-card:hover .zk-sc-icon { background: rgba(255,255,255,0.2); }
.zk-service-card:hover .zk-sc-icon svg { color: #fff; }
.zk-service-card h3 { font-size: 1.15rem; margin-bottom: 0.5rem; transition: color 0.4s; }
.zk-service-card p { font-size: 0.85rem; color: var(--muted); line-height: 1.6; transition: color 0.4s; }

/* ===================================================
   GALLERY MASONRY + LIGHTBOX
   =================================================== */
.zk-masonry { column-count:1; column-gap:1rem; }
@media(min-width:640px){ .zk-masonry{column-count:2;} }
@media(min-width:1024px){ .zk-masonry{column-count:3;} }
.zk-mitem {
    break-inside:avoid; margin-bottom:1rem; position:relative;
    overflow:hidden; border-radius:0.75rem; cursor:pointer; display:block; width:100%;
}
.zk-mitem img { width:100%; height:auto; display:block; transition:transform 0.5s var(--ease); }
.zk-mitem:hover img { transform:scale(1.08); }
.zk-mitem-overlay {
    position:absolute; inset:0;
    background:linear-gradient(to top,rgba(20,20,20,0.85),rgba(20,20,20,0.2),transparent);
    opacity:0; transition:opacity 0.4s; display:flex; align-items:flex-end; padding:1.25rem;
}
.zk-mitem:hover .zk-mitem-overlay { opacity:1; }
.zk-mitem-overlay p { color:var(--bg); font-family:'Playfair Display',serif; font-size:0.95rem; line-height:1.3; }

.zk-lightbox {
    display:none; position:fixed; inset:0; z-index:9999;
    background:rgba(20,20,20,0.96); align-items:center; justify-content:center; padding:1rem;
}
.zk-lightbox.open { display:flex; animation:zkFadeIn 0.25s ease; }
.zk-lb-img { max-width:100%; max-height:88vh; border-radius:0.75rem; box-shadow:var(--shadow-md); animation:zkScaleIn 0.3s ease; }
.zk-lb-close,.zk-lb-prev,.zk-lb-next { position:absolute; color:var(--bg); transition:color 0.2s; background:none; border:none; cursor:pointer; }
.zk-lb-close:hover,.zk-lb-prev:hover,.zk-lb-next:hover { color:var(--gold); }
.zk-lb-close { top:1.5rem; right:1.5rem; }
.zk-lb-close svg,.zk-lb-prev svg,.zk-lb-next svg { width:32px; height:32px; }
.zk-lb-prev { left:1rem; top:50%; transform:translateY(-50%); }
.zk-lb-next { right:1rem; top:50%; transform:translateY(-50%); }
.zk-lb-caption { position:absolute; bottom:1.5rem; left:50%; transform:translateX(-50%); color:var(--bg); font-family:'Playfair Display',serif; font-size:1rem; text-align:center; width:90%; }

/* ===================================================
   CINEMATIC SHOWCASE
   =================================================== */
.zk-cinematic { position:relative; border-radius:1rem; overflow:hidden; aspect-ratio:21/9; border:1px solid rgba(255,255,255,0.1); box-shadow:var(--shadow-md); }
@media(max-width:768px){ .zk-cinematic{aspect-ratio:16/9;} }
.zk-cin-slide { position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease-in-out; }
.zk-cin-slide.active { opacity:1; }
.zk-cin-slide img { width:100%; height:100%; object-fit:cover; }
.zk-cin-slide .zk-cin-grad { position:absolute; inset:0; background:linear-gradient(to top,rgba(20,20,20,0.85),rgba(20,20,20,0.15),transparent); }
.zk-cin-caption { position:absolute; bottom:0; left:0; right:0; padding:2rem 2.5rem; }
.zk-cin-label { color:var(--gold); text-transform:uppercase; letter-spacing:0.25em; font-size:0.62rem; margin-bottom:0.4rem; }
.zk-cin-caption p { font-family:'Playfair Display',serif; font-size:clamp(1rem,2.5vw,1.75rem); color:var(--bg); max-width:600px; }
.zk-cin-dots { position:absolute; top:1.25rem; right:1.25rem; display:flex; gap:6px; z-index:10; }
.zk-cin-dot { height:4px; width:16px; border-radius:2px; background:rgba(255,255,255,0.4); transition:all 0.5s ease; }
.zk-cin-dot.active { width:32px; background:var(--gold); }

/* ===================================================
   SERVICE AREAS GRID
   =================================================== */
.zk-areas { display:grid; grid-template-columns:repeat(2,1fr); gap:0.75rem; max-width:900px; margin:0 auto; }
@media(min-width:768px){ .zk-areas{grid-template-columns:repeat(4,1fr);} }
.zk-area-badge { display:flex; align-items:center; gap:0.5rem; padding:0.7rem 1rem; background:var(--card); border:1px solid var(--border); border-radius:0.5rem; font-size:0.875rem; }
.zk-area-badge svg { width:15px; height:15px; color:var(--gold); flex-shrink:0; }

/* ===================================================
   TRUST SECTION
   =================================================== */
.zk-trust-grid { display:grid; gap:3rem; align-items:center; }
@media(min-width:768px){ .zk-trust-grid{grid-template-columns:1fr 1fr;} }
.zk-creds { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.zk-cred { padding:1.5rem; border:1px solid rgba(255,255,255,0.15); border-radius:0.75rem; }
.zk-cred-label { font-size:0.62rem; text-transform:uppercase; letter-spacing:0.15em; color:rgba(248,245,240,0.6); margin-bottom:0.25rem; }
.zk-cred p { font-family:'Playfair Display',serif; font-size:1.15rem; }
.zk-review { grid-column:1/-1; padding:1.5rem; border:1px solid rgba(255,255,255,0.15); border-radius:0.75rem; }
.zk-stars { display:flex; gap:3px; margin-bottom:0.75rem; }
.zk-stars svg { width:15px; height:15px; fill:var(--gold); color:var(--gold); }
.zk-trust-list { margin-top:2rem; display:flex; flex-direction:column; gap:0.875rem; }
.zk-trust-item { display:flex; gap:0.75rem; align-items:flex-start; }
.zk-trust-item svg { width:20px; height:20px; color:var(--gold); flex-shrink:0; margin-top:1px; }
.zk-trust-item span { color:rgba(248,245,240,0.9); font-size:0.95rem; }

/* ===================================================
   FAQ ACCORDION
   =================================================== */
.zk-faq-item { border-bottom:1px solid var(--border); }
.zk-faq-trigger {
    width:100%; display:flex; justify-content:space-between; align-items:center;
    padding:1.5rem 0; background:none; border:none; cursor:pointer; text-align:left; gap:1rem;
    transition: color 0.2s;
}
.zk-faq-trigger:hover { color:var(--gold); }
.zk-faq-trigger h3 { font-family:'Playfair Display',serif; font-size:clamp(1rem,2vw,1.18rem); font-weight:500; line-height:1.4; }
.zk-faq-icon { flex-shrink:0; width:22px; height:22px; transition:transform 0.3s ease; }
.zk-faq-item.open .zk-faq-icon { transform:rotate(180deg); }
.zk-faq-body { display:none; padding-bottom:1.5rem; color:var(--muted); line-height:1.7; font-size:0.97rem; }
.zk-faq-item.open .zk-faq-body { display:block; }
.zk-faq-cta { margin-top:3.5rem; padding:2rem; background:var(--secondary); border-radius:0.75rem; text-align:center; }
.zk-faq-cta h3 { font-size:1.5rem; margin-bottom:0.5rem; }
.zk-faq-cta p { color:var(--muted); margin-bottom:1.25rem; }

/* ===================================================
   CONTACT
   =================================================== */
.zk-contact-grid { display:grid; gap:3rem; }
@media(min-width:1024px){ .zk-contact-grid{grid-template-columns:1fr 1.2fr;} }
.zk-contact-info { display:flex; flex-direction:column; gap:1.25rem; }
.zk-cinfo-card {
    background:var(--card); border:1px solid var(--border); border-radius:0.75rem;
    padding:1.5rem; box-shadow:var(--shadow-sm); display:flex; gap:1rem;
    align-items:flex-start; transition:all 0.35s var(--ease); color:inherit; text-decoration:none;
}
a.zk-cinfo-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.zk-cinfo-icon { width:42px; height:42px; background:var(--grad-gold); border-radius:0.5rem; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.zk-cinfo-icon svg { width:18px; height:18px; }
.zk-cinfo-label { font-size:0.62rem; text-transform:uppercase; letter-spacing:0.15em; color:var(--muted); margin-bottom:0.2rem; }
.zk-cinfo-card p { font-weight:500; font-size:0.93rem; }
.zk-form-wrap { background:var(--card); border:1px solid var(--border); border-radius:0.75rem; padding:2rem; box-shadow:var(--shadow-sm); }
.zk-form-wrap h2 { font-size:1.7rem; margin-bottom:1.5rem; }
.zk-form-group { margin-bottom:1.25rem; }
.zk-form-row { display:grid; gap:1.25rem; }
@media(min-width:640px){ .zk-form-row{grid-template-columns:1fr 1fr;} }
.zk-form-label { display:block; font-size:0.85rem; font-weight:500; margin-bottom:0.4rem; }
.zk-form-input,.zk-form-textarea {
    width:100%; padding:0.7rem 1rem;
    border:1px solid var(--border); border-radius:0.5rem;
    background:var(--bg); color:var(--fg); font:inherit; font-size:0.9rem;
    transition:border-color 0.2s, box-shadow 0.2s; outline:none;
}
.zk-form-input:focus,.zk-form-textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(240,168,24,0.15); }
.zk-form-textarea { resize:vertical; min-height:130px; }
.zk-form-submit {
    width:100%; padding:0.875rem; background:var(--fg); color:var(--bg);
    border:none; border-radius:0.5rem; font-size:0.95rem; font-weight:600;
    cursor:pointer; transition:all 0.35s var(--ease);
}
.zk-form-submit:hover { background:var(--gold); color:var(--fg); }
.zk-notice { display:none; padding:0.75rem 1rem; border-radius:0.5rem; margin-bottom:1rem; font-size:0.88rem; }
.zk-map { border-radius:0.75rem; overflow:hidden; border:1px solid var(--border); box-shadow:var(--shadow-sm); height:420px; }
.zk-map iframe { width:100%; height:100%; border:none; display:block; }

/* ===================================================
   ABOUT PAGE
   =================================================== */
.zk-about-grid { display:grid; gap:3.5rem; align-items:center; }
@media(min-width:1024px){ .zk-about-grid{grid-template-columns:1fr 1fr;} }
.zk-about-img-wrap { position:relative; }
.zk-about-img-wrap img { border-radius:0.75rem; box-shadow:var(--shadow-md); width:100%; object-fit:cover; }
.zk-about-badge { position:absolute; bottom:-1.5rem; right:-1.5rem; background:var(--grad-gold); padding:1.5rem; border-radius:0.75rem; box-shadow:var(--shadow-gold); display:none; }
@media(min-width:768px){ .zk-about-badge{display:block;} }
.zk-about-badge p { font-weight:700; font-size:1.2rem; line-height:1.3; color:#000; }
.zk-about-badge span { font-size:0.78rem; font-weight:400; }
.zk-promise-grid { display:grid; gap:2rem; }
@media(min-width:640px){ .zk-promise-grid{grid-template-columns:1fr 1fr;} }
@media(min-width:1024px){ .zk-promise-grid{grid-template-columns:repeat(4,1fr);} }
.zk-promise-card { padding:1.5rem; background:var(--card); border-radius:0.75rem; box-shadow:var(--shadow-sm); text-align:center; }
.zk-promise-card svg { margin:0 auto 1rem; width:36px; height:36px; color:var(--gold); display:block; }
.zk-promise-card h3 { font-size:1.05rem; margin-bottom:0.4rem; }
.zk-promise-card p { font-size:0.85rem; color:var(--muted); }

/* ===================================================
   FOOTER
   =================================================== */
.zk-footer { background:var(--grad-dark); color:var(--bg); }
.zk-footer-grid { display:grid; gap:2.5rem; padding:4rem 0 2.5rem; }
@media(min-width:768px){ .zk-footer-grid{grid-template-columns:1fr 1fr;} }
@media(min-width:1024px){ .zk-footer-grid{grid-template-columns:repeat(4,1fr);} }
.zk-footer-logo { background:rgba(248,245,240,0.95); display:inline-block; padding:0.65rem; border-radius:0.5rem; margin-bottom:1rem; }
.zk-footer-logo img { height:38px; width:auto; max-width:140px; display:block; }
.zk-footer-tagline { font-size:0.85rem; color:rgba(248,245,240,0.7); line-height:1.6; }
.zk-footer-heading { font-family:'Playfair Display',serif; font-size:1.05rem; color:var(--gold); margin-bottom:1rem; }
.zk-footer-list { display:flex; flex-direction:column; gap:0.55rem; }
.zk-footer-list li { display:flex; gap:0.55rem; align-items:flex-start; font-size:0.85rem; color:rgba(248,245,240,0.8); }
.zk-footer-list li svg { width:15px; height:15px; color:var(--gold); margin-top:2px; flex-shrink:0; }
.zk-footer-list a { color:rgba(248,245,240,0.8); transition:color 0.2s; }
.zk-footer-list a:hover { color:var(--gold); }
.zk-footer-bar { border-top:1px solid rgba(255,255,255,0.1); }
.zk-footer-bar-inner { padding:1.5rem 0; display:flex; flex-direction:column; gap:0.4rem; align-items:center; justify-content:space-between; font-size:0.72rem; color:rgba(248,245,240,0.55); text-align:center; }
@media(min-width:768px){ .zk-footer-bar-inner{flex-direction:row;text-align:left;} }

/* ===================================================
   SPEC BANNER (Services page)
   =================================================== */
.zk-spec-banner { display:grid; gap:2.5rem; align-items:center; }
@media(min-width:768px){ .zk-spec-banner{grid-template-columns:auto 1fr;} }
.zk-spec-icon { width:90px; height:90px; border-radius:50%; background:var(--grad-gold); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-gold); margin:0 auto; }
@media(min-width:768px){ .zk-spec-icon{margin:0;} }
.zk-spec-icon svg { width:38px; height:38px; }

/* ===================================================
   GALLERY PREVIEW (Home)
   =================================================== */
.zk-gallery-prev-grid { display:grid; gap:1rem; }
@media(min-width:768px){ .zk-gallery-prev-grid{grid-template-columns:repeat(3,1fr);} }
.zk-gallery-prev-item { position:relative; overflow:hidden; border-radius:0.75rem; aspect-ratio:4/5; }
.zk-gallery-prev-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s var(--ease); }
.zk-gallery-prev-item:hover img { transform:scale(1.1); }
.zk-gallery-prev-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(20,20,20,0.8),transparent); opacity:0; transition:opacity 0.4s; display:flex; align-items:flex-end; padding:1.5rem; }
.zk-gallery-prev-item:hover .zk-gallery-prev-overlay { opacity:1; }
.zk-gallery-prev-overlay p { color:var(--bg); font-family:'Playfair Display',serif; font-size:1.05rem; }

/* ===================================================
   SEO STRIP
   =================================================== */
.zk-seo-strip { padding:2.5rem 0; border-bottom:1px solid var(--border); text-align:center; }
.zk-seo-strip p { color:var(--muted); line-height:1.7; max-width:700px; margin:0 auto; font-size:0.95rem; }

/* ===================================================
   ANIMATIONS
   =================================================== */
@keyframes zkFadeUp { from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);} }
@keyframes zkFadeIn { from{opacity:0;}to{opacity:1;} }
@keyframes zkScaleIn { from{opacity:0;transform:scale(0.96);}to{opacity:1;transform:scale(1);} }
.zk-fade-up { animation:zkFadeUp 0.7s ease both; }

/* ===================================================
   ELEMENTOR INTEGRATION
   =================================================== */
/* When page is edited with Elementor, its content fills the content area */
.zk-content-area { min-height: 10px; }
/* Remove body top padding added by some Elementor versions */
.elementor-page .zk-content-area { padding-top: 0; }

/* ===================================================
   WORDPRESS ALIGNMENT & BLOCK STYLES
   =================================================== */
.alignwide { max-width: 1400px; margin-left: auto; margin-right: auto; }
.alignfull { width: 100%; max-width: 100%; }
.wp-block-image img { border-radius: var(--radius); }

/* ===================================================
   UTILITIES
   =================================================== */
.mt-4{margin-top:1rem;} .mt-6{margin-top:1.5rem;} .mt-8{margin-top:2rem;}
.mb-6{margin-bottom:1.5rem;} .mb-10{margin-bottom:2.5rem;} .mb-12{margin-bottom:3rem;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}
