/* ============================================================
 PICTURE PERFECT HHI — Custom Styles
 Luxury Home Installation Services
 ============================================================ */

/* --- Self-Hosted Fonts --- */
@font-face {
 font-family: 'Playfair Display';
 font-style: normal;
 font-weight: 700;
 font-display: swap;
 src: url('../fonts/playfair-display-700.woff2') format('woff2');
}

@font-face {
 font-family: 'Raleway';
 font-style: normal;
 font-weight: 300;
 font-display: swap;
 src: url('../fonts/raleway.woff2') format('woff2');
}

@font-face {
 font-family: 'Raleway';
 font-style: normal;
 font-weight: 400;
 font-display: swap;
 src: url('../fonts/raleway.woff2') format('woff2');
}

@font-face {
 font-family: 'Raleway';
 font-style: normal;
 font-weight: 600;
 font-display: swap;
 src: url('../fonts/raleway.woff2') format('woff2');
}

/* --- Accessibility --- */
.skip-link {
 position: absolute;
 left: -9999px;
 top: auto;
 width: 1px;
 height: 1px;
 overflow: hidden;
 z-index: 10000;
}
.skip-link:focus {
 position: fixed;
 top: 10px;
 left: 10px;
 width: auto;
 height: auto;
 padding: 12px 24px;
 background: #0a0a0a;
 color: #C9A96E;
 font-size: 16px;
 font-weight: 600;
 text-decoration: none;
 border-radius: 4px;
 z-index: 10000;
}

*:focus-visible {
 outline: 2px solid #C9A96E;
 outline-offset: 2px;
}

.sr-only {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 white-space: nowrap;
 border: 0;
}

@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after {
 animation-duration: 0.01ms !important;
 animation-iteration-count: 1 !important;
 transition-duration: 0.01ms !important;
 scroll-behavior: auto !important;
 }
}

/* --- CSS Variables --- */
:root {
 --color-primary: #2C2C2C;
 --color-accent: #C9A96E;
 --color-accent-hover: #B8944F;
 --color-bg-light: #FAF8F5;
 --color-bg-alt: #F0ECE3;
 --color-text: #4A4A4A;
 --color-text-light: #8C8C8C;
 --color-white: #FFFFFF;
 --color-black: #1A1A1A;
 --color-border: #E5E0D8;
 --color-overlay: rgba(28, 28, 28, 0.65);
 --font-heading: 'Playfair Display', Georgia, serif;
 --font-body: 'Raleway', 'Segoe UI', sans-serif;
 --transition: all 0.3s ease;
 --shadow-sm: 0 2px 8px rgba(0,0,0,0.06);
 --shadow-md: 0 4px 20px rgba(0,0,0,0.08);
 --shadow-lg: 0 8px 40px rgba(0,0,0,0.12);
 --border-radius: 4px;
}

/* --- Reset & Base --- */
*,
*::before,
*::after {
 margin: 0;
 padding: 0;
 box-sizing: border-box;
}

html {
 scroll-behavior: smooth;
 scroll-padding-top: 80px;
}

body {
 font-family: var(--font-body);
 font-weight: 400;
 font-size: 16px;
 line-height: 1.7;
 color: var(--color-text);
 background-color: var(--color-white);
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
}

img {
 max-width: 100%;
 height: auto;
 display: block;
}

a {
 color: var(--color-accent);
 text-decoration: none;
 transition: var(--transition);
}

a:hover {
 color: var(--color-accent-hover);
}

/* --- Typography --- */
h1, h2, h3, h4, h5, h6 {
 font-family: var(--font-heading);
 color: var(--color-primary);
 font-weight: 700;
 line-height: 1.3;
 margin-bottom: 1rem;
}

h1 { font-size: 3rem; }
h2 { font-size: 2.25rem; }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.25rem; }

p {
 margin-bottom: 1rem;
 font-weight: 300;
}

.lead {
 font-size: 1.15rem;
 font-weight: 300;
 line-height: 1.8;
 color: var(--color-text);
}

/* --- Utility Classes --- */
.section-padding {
 padding: 100px 0;
}

.section-padding-sm {
 padding: 60px 0;
}

.bg-light-custom {
 background-color: var(--color-bg-light);
}

.bg-alt {
 background-color: var(--color-bg-alt);
}

.bg-dark-custom {
 background-color: var(--color-primary);
}

.text-accent {
 color: var(--color-accent);
}

.section-label {
 font-family: var(--font-body);
 font-size: 0.8rem;
 font-weight: 600;
 letter-spacing: 3px;
 text-transform: uppercase;
 color: #8B7340;
 margin-bottom: 0.75rem;
 display: block;
}

.section-title {
 font-size: 2.25rem;
 margin-bottom: 1.25rem;
}

.section-subtitle {
 font-size: 1.1rem;
 font-weight: 300;
 color: var(--color-text);
 max-width: 650px;
}

.section-subtitle.centered {
 margin-left: auto;
 margin-right: auto;
}

.divider {
 width: 60px;
 height: 2px;
 background-color: var(--color-accent);
 margin: 1.5rem 0;
}

.divider.centered {
 margin-left: auto;
 margin-right: auto;
}

/* --- Buttons --- */
.btn-accent {
 display: inline-block;
 background-color: var(--color-accent);
 color: var(--color-white);
 font-family: var(--font-body);
 font-weight: 600;
 font-size: 0.85rem;
 letter-spacing: 1.5px;
 text-transform: uppercase;
 padding: 14px 36px;
 border: 2px solid var(--color-accent);
 border-radius: var(--border-radius);
 transition: var(--transition);
 cursor: pointer;
}

.btn-accent:hover {
 background-color: var(--color-accent-hover);
 border-color: var(--color-accent-hover);
 color: var(--color-white);
 transform: translateY(-1px);
 box-shadow: var(--shadow-md);
}

.btn-outline {
 display: inline-block;
 background-color: transparent;
 color: var(--color-white);
 font-family: var(--font-body);
 font-weight: 600;
 font-size: 0.85rem;
 letter-spacing: 1.5px;
 text-transform: uppercase;
 padding: 14px 36px;
 border: 2px solid var(--color-white);
 border-radius: var(--border-radius);
 transition: var(--transition);
 cursor: pointer;
}

.btn-outline:hover {
 background-color: var(--color-white);
 color: var(--color-primary);
 transform: translateY(-1px);
 box-shadow: var(--shadow-md);
}

.btn-outline-dark {
 display: inline-block;
 background-color: transparent;
 color: var(--color-primary);
 font-family: var(--font-body);
 font-weight: 600;
 font-size: 0.85rem;
 letter-spacing: 1.5px;
 text-transform: uppercase;
 padding: 14px 36px;
 border: 2px solid var(--color-primary);
 border-radius: var(--border-radius);
 transition: var(--transition);
 cursor: pointer;
}

.btn-outline-dark:hover {
 background-color: var(--color-primary);
 color: var(--color-white);
 transform: translateY(-1px);
 box-shadow: var(--shadow-md);
}

/* --- Announcement Bar --- */
.announcement-bar {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 background-color: var(--color-primary);
 z-index: 1060;
 overflow: hidden;
 height: 36px;
 display: flex;
 align-items: center;
}

.announcement-bar-track {
 display: flex;
 white-space: nowrap;
 animation: marquee 22s linear infinite;
}

.announcement-bar-content {
 display: flex;
 align-items: center;
 flex-shrink: 0;
}

.announcement-bar-content span {
 font-family: var(--font-body);
 font-size: 0.75rem;
 font-weight: 600;
 letter-spacing: 1.5px;
 text-transform: uppercase;
 color: rgba(255,255,255,0.85);
}

.announcement-bar-content .bar-accent {
 color: var(--color-accent);
}

.announcement-bar-content .bar-divider {
 display: inline-block;
 width: 4px;
 height: 4px;
 background-color: var(--color-accent);
 border-radius: 50%;
 margin: 0 24px;
 flex-shrink: 0;
}

.announcement-bar-content a {
 color: var(--color-accent);
 font-weight: 700;
 text-decoration: none;
}

.announcement-bar-content a:hover {
 color: var(--color-white);
}

@keyframes marquee {
 0% { transform: translateX(0); }
 100% { transform: translateX(-50%); }
}

/* Push nav down for announcement bar */
.navbar-custom {
 top: 36px !important;
}

/* Adjust hero padding for announcement bar */
.hero {
 margin-top: 36px;
}

/* Adjust legal pages top padding */
.legal-top-offset {
 padding-top: 176px !important;
}

/* 404 offset */
.four04-offset {
 padding-top: 156px !important;
}

@media (max-width: 767px) {
 .announcement-bar {
 height: 32px;
 }

 .announcement-bar-track {
 animation-duration: 26.5s;
 }

 .announcement-bar-content span {
 font-size: 0.68rem;
 letter-spacing: 1px;
 }

 .navbar-custom {
 top: 32px !important;
 }

 .hero {
 margin-top: 32px;
 }

 .legal-top-offset {
 padding-top: 162px !important;
 }

 .four04-offset {
 padding-top: 142px !important;
 }
}

/* --- Navigation --- */
.navbar-custom {
 background-color: transparent;
 padding: 20px 0;
 transition: var(--transition);
 z-index: 1050;
}

.navbar-custom.scrolled {
 background-color: var(--color-white);
 padding: 12px 0;
 box-shadow: var(--shadow-sm);
}

.navbar-custom .navbar-brand {
 font-family: var(--font-heading);
 font-size: 1.5rem;
 font-weight: 700;
 color: var(--color-white);
 letter-spacing: 1px;
}

.navbar-custom.scrolled .navbar-brand {
 color: var(--color-primary);
}

.navbar-custom .nav-link {
 font-family: var(--font-body);
 font-size: 0.8rem;
 font-weight: 600;
 letter-spacing: 1.5px;
 text-transform: uppercase;
 color: var(--color-white);
 padding: 8px 18px !important;
 transition: var(--transition);
}

.navbar-custom.scrolled .nav-link {
 color: var(--color-primary);
}

.navbar-custom .nav-link:hover,
.navbar-custom .nav-link.active {
 color: var(--color-accent);
}

.navbar-custom.scrolled .nav-link:hover,
.navbar-custom.scrolled .nav-link.active {
 color: var(--color-accent);
}

.navbar-phone {
 font-family: var(--font-body);
 font-size: 0.85rem;
 font-weight: 600;
 color: var(--color-white);
 letter-spacing: 0.5px;
}

.navbar-phone i {
 margin-right: 6px;
 color: var(--color-accent);
}

.navbar-custom.scrolled .navbar-phone {
 color: var(--color-primary);
}

/* Logo in nav */
.nav-logo {
 height: 65px;
 width: auto;
 filter: brightness(0) invert(1);
 transition: filter 0.3s ease;
}

.navbar-custom.scrolled .nav-logo {
 filter: brightness(0);
}

/* Hamburger / Toggler */
.navbar-toggler-custom {
 background: none;
 border: none;
 padding: 8px;
 cursor: pointer;
 display: none;
 align-items: center;
 justify-content: center;
}

.navbar-toggler-custom:focus:not(:focus-visible) {
 outline: none;
 box-shadow: none;
}

.navbar-toggler-custom:focus-visible {
 outline: 2px solid #C9A96E;
 outline-offset: 2px;
}

.navbar-toggler-icon-custom {
 display: flex;
 flex-direction: column;
 justify-content: space-between;
 width: 26px;
 height: 18px;
}

.navbar-toggler-icon-custom span {
 display: block;
 width: 100%;
 height: 2px;
 background-color: var(--color-white);
 transition: var(--transition);
}

.navbar-custom.scrolled .navbar-toggler-icon-custom span {
 background-color: var(--color-primary);
}

/* Mobile Nav Overlay */
.mobile-nav-overlay {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 background-color: rgba(0,0,0,0.5);
 z-index: 1040;
 opacity: 0;
 visibility: hidden;
 transition: var(--transition);
}

.mobile-nav-overlay.active {
 opacity: 1;
 visibility: visible;
}

.mobile-nav {
 position: fixed;
 top: 0;
 right: 0;
 width: 300px;
 max-width: 85vw;
 transform: translateX(100%);
 visibility: hidden;
 height: 100%;
 background-color: var(--color-white);
 z-index: 1060;
 transition: transform 0.35s ease, visibility 0.35s ease;
 padding: 30px;
 overflow-y: auto;
 box-shadow: var(--shadow-lg);
}

.mobile-nav.active {
 transform: translateX(0);
 visibility: visible;
}

.mobile-nav-close {
 position: absolute;
 top: 20px;
 right: 20px;
 background: none;
 border: none;
 font-size: 1.5rem;
 color: var(--color-primary);
 cursor: pointer;
 padding: 5px;
 line-height: 1;
}

.mobile-nav-links {
 list-style: none;
 padding: 0;
 margin-top: 50px;
}

.mobile-nav-links li {
 margin-bottom: 0;
}

.mobile-nav-links a {
 display: block;
 font-family: var(--font-body);
 font-size: 0.85rem;
 font-weight: 600;
 letter-spacing: 1.5px;
 text-transform: uppercase;
 color: var(--color-primary);
 padding: 14px 0;
 border-bottom: 1px solid var(--color-border);
 transition: var(--transition);
}

.mobile-nav-links a:hover,
.mobile-nav-links a.active {
 color: var(--color-accent);
 padding-left: 8px;
}

.mobile-nav-contact {
 margin-top: 30px;
 padding-top: 20px;
}

.mobile-nav-contact a {
 display: block;
 color: var(--color-text);
 font-size: 0.9rem;
 font-weight: 400;
 margin-bottom: 10px;
}

.mobile-nav-contact a i {
 width: 20px;
 color: var(--color-accent);
 margin-right: 8px;
}

/* --- Hero Sections --- */
.hero {
 position: relative;
 min-height: 90vh;
 display: flex;
 align-items: center;
 justify-content: center;
 text-align: center;
 background-size: cover;
 background-position: center;
 background-repeat: no-repeat;
 overflow: hidden;
}

.hero::before {
 content: '';
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 background: var(--color-overlay);
 z-index: 1;
}

.hero-content {
 position: relative;
 z-index: 2;
 max-width: 800px;
 padding: 0 20px;
}

.hero h1 {
 color: var(--color-white);
 font-size: 3.5rem;
 font-weight: 700;
 margin-bottom: 1.25rem;
 line-height: 1.2;
}

.hero p {
 color: rgba(255,255,255,0.85);
 font-size: 1.15rem;
 font-weight: 300;
 margin-bottom: 2rem;
 max-width: 600px;
 margin-left: auto;
 margin-right: auto;
}

.hero-buttons {
 display: flex;
 gap: 16px;
 justify-content: center;
 flex-wrap: wrap;
}

/* Page heroes (shorter) */
.hero-page {
 min-height: 45vh;
 background-position: center 30%;
 padding-top: 100px;
}

.hero-page h1 {
 font-size: 2.75rem;
}

/* --- Service Cards (Home) --- */
.service-card {
 background-color: var(--color-white);
 border-radius: var(--border-radius);
 overflow: hidden;
 box-shadow: var(--shadow-sm);
 transition: var(--transition);
 height: 100%;
}

.service-card:hover {
 transform: translateY(-6px);
 box-shadow: var(--shadow-lg);
}

.service-card .card-img {
 height: 240px;
 overflow: hidden;
}

.service-card .card-img img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 border-radius: 0;
}

.service-card .card-body {
 padding: 30px;
}

.service-card .card-icon {
 width: 50px;
 height: 50px;
 background-color: var(--color-bg-alt);
 border-radius: 50%;
 display: flex;
 align-items: center;
 justify-content: center;
 margin-bottom: 16px;
}

.service-card .card-icon i {
 font-size: 1.2rem;
 color: var(--color-accent);
}

.service-card h3 {
 font-size: 1.25rem;
 margin-bottom: 0.75rem;
}

.service-card p {
 font-size: 0.95rem;
 color: var(--color-text);
 margin-bottom: 0;
}

/* --- Our Work Gallery (Bento Grid) --- */
.work-grid {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 grid-auto-rows: 200px;
 gap: 6px;
}

/* Hero image — large 2×2 anchor, top-left */
.work-item:nth-child(1) {
 grid-column: span 2;
 grid-row: span 2;
}

/* TV & Art Installation — shift image down inside frame */
.work-item:nth-child(1) .work-img-wrap img {
 object-position: center calc(50% + 10px);
}

/* Hallway Framed Art — shift image up inside frame */
.work-item:nth-child(6) .work-img-wrap img {
 object-position: center top;
}

/* Vanity & Mirror Install — show top of mirror */
.work-item:nth-child(7) .work-img-wrap img {
 object-position: center top;
}

/* Bottom-right — wide 2×1 */
.work-item:nth-child(8) {
 grid-column: span 2;
}

.work-img-wrap {
 position: relative;
 border-radius: 10px;
 overflow: hidden;
 height: 100%;
 cursor: pointer;
}

.work-img-wrap img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 transition: transform 0.6s ease, filter 0.6s ease;
}

.work-img-wrap:hover img {
 transform: scale(1.06);
 filter: brightness(1.05);
}

/* Always-visible label overlay */
.work-overlay {
 position: absolute;
 bottom: 0;
 left: 0;
 right: 0;
 padding: 14px 18px;
 background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, transparent 100%);
 opacity: 1;
 transition: background 0.35s ease;
}

.work-img-wrap:hover .work-overlay {
 background: linear-gradient(to top, rgba(0,0,0,0.72) 0%, transparent 100%);
}

.work-overlay span {
 color: var(--color-white);
 font-family: var(--font-body);
 font-size: 0.7rem;
 font-weight: 600;
 letter-spacing: 1.5px;
 text-transform: uppercase;
}

/* Hero overlay gets slightly larger text */
.work-item:nth-child(1) .work-overlay span {
 font-size: 0.8rem;
 letter-spacing: 2px;
}

/* Desktop small: fix bento 2×2 border-radius clipping */
@media (min-width: 1024px) and (max-width: 1199px) {
 .work-item:nth-child(1) .work-img-wrap img {
 object-position: center calc(50% - 10px);
 }
}

/* Tablet: 2-column grid */
@media (min-width: 768px) and (max-width: 1023px) {
 .work-grid {
 grid-template-columns: repeat(2, 1fr);
 grid-auto-rows: 200px;
 gap: 6px;
 }

 .work-item:nth-child(1) {
 grid-column: span 2;
 grid-row: span 1;
 }

 .work-item:nth-child(8) {
 grid-column: span 2;
 }
}

/* Mobile: single column, equal tiles */
@media (max-width: 767px) {
 .work-grid {
 grid-template-columns: 1fr;
 grid-auto-rows: 220px;
 gap: 6px;
 }

 .work-item:nth-child(1),
 .work-item:nth-child(8) {
 grid-column: span 1;
 grid-row: span 1;
 }

 /* Show only 6 on mobile for cleaner scroll */
 .work-item:nth-child(n+7) {
 display: none;
 }
}

/* --- Trust / Feature Blocks --- */
.trust-item {
 text-align: center;
 padding: 30px 20px;
}

.trust-icon {
 width: 70px;
 height: 70px;
 background-color: var(--color-bg-alt);
 border-radius: 50%;
 display: flex;
 align-items: center;
 justify-content: center;
 margin: 0 auto 20px;
}

.trust-icon i {
 font-size: 1.5rem;
 color: var(--color-accent);
}

.trust-item h4 {
 font-size: 1.1rem;
 margin-bottom: 0.5rem;
}

.trust-item p {
 font-size: 0.9rem;
 color: var(--color-text);
 margin-bottom: 0;
}

/* --- Testimonials --- */
.testimonial-card {
 background-color: var(--color-white);
 padding: 40px;
 border-radius: var(--border-radius);
 box-shadow: var(--shadow-sm);
 height: 100%;
 position: relative;
}

.testimonial-card::before {
 content: '\201C';
 font-family: var(--font-heading);
 font-size: 4rem;
 color: var(--color-accent);
 opacity: 0.3;
 position: absolute;
 top: 15px;
 left: 25px;
 line-height: 1;
}

.testimonial-stars {
 color: var(--color-accent);
 margin-bottom: 16px;
 font-size: 0.9rem;
}

.testimonial-text {
 font-size: 1rem;
 font-style: italic;
 font-weight: 300;
 line-height: 1.8;
 margin-bottom: 20px;
 color: var(--color-text);
}

.testimonial-author {
 font-weight: 600;
 font-size: 0.9rem;
 color: var(--color-primary);
}

.testimonial-location {
 font-size: 0.8rem;
 color: var(--color-text);
}

/* --- Service Area --- */
.service-area-section {
 background-color: var(--color-primary);
 color: var(--color-white);
 text-align: center;
}

.service-area-section h2 {
 color: var(--color-white);
}

.service-area-section .section-label {
 color: var(--color-accent);
}

.area-tags {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 justify-content: center;
 margin-top: 30px;
}

.area-tag {
 background-color: rgba(255,255,255,0.1);
 border: 1px solid rgba(255,255,255,0.2);
 color: var(--color-white);
 padding: 8px 22px;
 border-radius: 30px;
 font-size: 0.85rem;
 font-weight: 400;
 letter-spacing: 0.5px;
}

/* --- CTA Banner --- */
.cta-banner {
 background-color: var(--color-accent);
 padding: 70px 0;
 text-align: center;
}

.cta-banner h2 {
 color: var(--color-white);
 margin-bottom: 0.5rem;
}

.cta-banner p {
 color: #FFFFFF;
 font-size: 1.1rem;
 margin-bottom: 2rem;
}

.cta-banner .btn-outline {
 border-color: var(--color-white);
 color: var(--color-white);
}

.cta-banner .btn-outline:hover {
 background-color: var(--color-white);
 color: var(--color-accent);
}

/* --- Services Page — Service Blocks --- */
.service-block {
 padding: 80px 0;
}

.service-block:nth-child(even) {
 background-color: var(--color-bg-light);
}

.service-block .service-img {
 border-radius: var(--border-radius);
 overflow: hidden;
 box-shadow: var(--shadow-md);
}

.service-block h3 {
 font-size: 1.75rem;
 margin-bottom: 1rem;
}

.service-block .service-content {
 display: flex;
 flex-direction: column;
 justify-content: center;
 height: 100%;
}

/* --- Pricing Table --- */
.pricing-section {
 background-color: var(--color-primary);
 color: var(--color-white);
}

.pricing-section h2 {
 color: var(--color-white);
}

.pricing-card {
 background-color: rgba(255,255,255,0.05);
 border: 1px solid rgba(255,255,255,0.12);
 border-radius: var(--border-radius);
 padding: 40px 30px;
 text-align: center;
 height: 100%;
 transition: var(--transition);
}

.pricing-card:hover {
 background-color: rgba(255,255,255,0.1);
 transform: translateY(-4px);
}

.pricing-card .price {
 font-family: var(--font-heading);
 font-size: 2.5rem;
 color: var(--color-accent);
 margin-bottom: 0.25rem;
}

.pricing-card .price-label {
 font-size: 0.85rem;
 color: rgba(255,255,255,0.8);
 margin-bottom: 1rem;
 font-weight: 300;
}

.pricing-card h4 {
 color: var(--color-white);
 font-size: 1.15rem;
 margin-bottom: 0.5rem;
}

.pricing-card p {
 color: rgba(255,255,255,0.85);
 font-size: 0.9rem;
 margin-bottom: 0;
}

/* --- About Page --- */
.about-story p {
 font-size: 1.05rem;
 line-height: 1.9;
}

.owner-section {
 text-align: center;
}

.owner-photo {
 width: 200px;
 height: 200px;
 border-radius: 50%;
 margin: 0 auto 20px;
 overflow: hidden;
}

.values-card {
 text-align: center;
 padding: 40px 25px;
 background-color: var(--color-white);
 border-radius: var(--border-radius);
 box-shadow: var(--shadow-sm);
 height: 100%;
 transition: var(--transition);
}

.values-card:hover {
 transform: translateY(-4px);
 box-shadow: var(--shadow-md);
}

.values-card i {
 font-size: 2rem;
 color: var(--color-accent);
 margin-bottom: 16px;
}

.values-card h4 {
 font-size: 1.1rem;
 margin-bottom: 0.75rem;
}

.values-card p {
 font-size: 0.9rem;
 color: var(--color-text-light);
 margin-bottom: 0;
}

/* Designer partnership section */
.designer-section {
 background-color: var(--color-bg-alt);
}

.designer-section blockquote {
 font-family: var(--font-heading);
 font-size: 1.5rem;
 font-style: italic;
 color: var(--color-primary);
 line-height: 1.6;
 border-left: 3px solid var(--color-accent);
 padding-left: 25px;
 margin: 30px 0;
}

/* --- Contact Page --- */
.contact-form-section .form-control,
.contact-form-section .form-select {
 border: 1px solid var(--color-border);
 border-radius: var(--border-radius);
 padding: 14px 18px;
 font-family: var(--font-body);
 font-size: 0.95rem;
 font-weight: 300;
 color: var(--color-text);
 background-color: var(--color-white);
 transition: var(--transition);
}

.contact-form-section .form-control:focus,
.contact-form-section .form-select:focus {
 border-color: var(--color-accent);
 box-shadow: 0 0 0 3px rgba(201,169,110,0.15);
 outline: none;
}

.contact-form-section .form-label {
 font-size: 0.8rem;
 font-weight: 600;
 letter-spacing: 1px;
 text-transform: uppercase;
 color: var(--color-primary);
 margin-bottom: 8px;
}

.contact-form-section textarea.form-control {
 min-height: 150px;
 resize: vertical;
}

.contact-info-card {
 background-color: var(--color-primary);
 color: var(--color-white);
 border-radius: var(--border-radius);
 padding: 45px 40px;
 text-align: center;
}

.contact-info-card h3 {
 color: var(--color-white);
 font-size: 1.5rem;
 margin-bottom: 0.75rem;
}

.contact-info-item {
 display: flex;
 align-items: center;
 justify-content: center;
 margin-bottom: 18px;
}

.contact-info-item i {
 color: var(--color-accent);
 font-size: 1.1rem;
 margin-right: 12px;
 width: 20px;
 text-align: center;
 flex-shrink: 0;
}

.contact-info-item span {
 font-size: 0.95rem;
 font-weight: 300;
 line-height: 1.6;
 text-align: left;
}

.contact-info-item a {
 color: var(--color-white);
}

.contact-info-item a:hover {
 color: var(--color-accent);
}

/* Google Maps */
.map-container {
 border-radius: var(--border-radius);
 overflow: hidden;
 box-shadow: var(--shadow-md);
 height: 400px;
}

.map-container iframe {
 width: 100%;
 height: 100%;
 border: none;
}

/* --- Footer --- */
.footer {
 background-color: var(--color-primary);
 color: rgba(255,255,255,0.85);
 padding: 70px 0 0;
}

.footer h3 {
 color: var(--color-white);
 font-family: var(--font-body);
 font-size: 0.8rem;
 font-weight: 600;
 letter-spacing: 2px;
 text-transform: uppercase;
 margin-bottom: 1.25rem;
}

.footer p {
 font-size: 0.9rem;
 font-weight: 300;
 line-height: 1.7;
 margin-bottom: 0.5rem;
}

.footer-logo {
 height: 60px;
 width: auto;
 filter: brightness(0) invert(1);
 opacity: 0.7;
 margin-bottom: 16px;
}

.footer-links {
 list-style: none;
 padding: 0;
 margin: 0;
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 0 16px;
}

.footer-links li {
 margin-bottom: 8px;
}

.footer-links a {
 color: rgba(255,255,255,0.8);
 font-size: 0.9rem;
 font-weight: 300;
 transition: var(--transition);
}

.footer-links a:hover {
 color: var(--color-accent);
 padding-left: 4px;
}

.footer-contact-item {
 display: flex;
 align-items: center;
 margin-bottom: 10px;
 font-size: 0.9rem;
}

.footer-contact-item i {
 color: var(--color-accent);
 width: 18px;
 margin-right: 10px;
 font-size: 0.85rem;
}

.footer-contact-item a {
 color: rgba(255,255,255,0.8);
}

.footer-contact-item a:hover {
 color: var(--color-accent);
}

.footer-areas {
 list-style: none;
 padding: 0;
 margin: 0;
}

.footer-areas li {
 font-size: 0.9rem;
 font-weight: 300;
 margin-bottom: 4px;
 color: rgba(255,255,255,0.8);
}

.footer-bottom {
 border-top: 1px solid rgba(255,255,255,0.1);
 padding: 20px 0;
 margin-top: 20px;
 text-align: center;
}

.footer-bottom p {
 font-size: 0.8rem;
 color: rgba(255,255,255,0.7);
 margin-bottom: 0;
}

.footer-bottom a {
 color: rgba(255,255,255,0.75);
 text-decoration: underline;
}

.footer-bottom a:hover {
 color: var(--color-accent);
}

/* --- Terms / Privacy Pages --- */
.legal-content {
 max-width: 800px;
 margin: 0 auto;
}

.legal-content h2 {
 font-size: 1.5rem;
 margin-top: 2.5rem;
 margin-bottom: 1rem;
}

.legal-content h3 {
 font-size: 1.2rem;
 margin-top: 2rem;
 margin-bottom: 0.75rem;
}

.legal-content p,
.legal-content li {
 font-size: 0.95rem;
 line-height: 1.8;
 color: var(--color-text);
}

.legal-content ul {
 padding-left: 1.5rem;
 margin-bottom: 1rem;
}

.legal-content li {
 margin-bottom: 0.5rem;
}

/* --- Form Success Message --- */
.form-success {
 display: none;
 text-align: center;
 padding: 40px;
}

.form-success i {
 font-size: 3rem;
 color: var(--color-accent);
 margin-bottom: 16px;
}

.form-success h3 {
 margin-bottom: 0.75rem;
}

/* ============================================================
 RESPONSIVE — Tablet (1023px and below = hamburger)
 ============================================================ */
@media (max-width: 1023px) {
 .announcement-bar-track {
 animation-duration: 26.5s;
 }

 /* Force nav container full-width so logo/hamburger stay at edges */
 .navbar-custom .container {
 max-width: 100%;
 padding-left: 20px;
 padding-right: 20px;
 }

 /* Nav: hide desktop links, show hamburger */
 .navbar-desktop-links {
 display: none !important;
 }

 .navbar-toggler-custom {
 display: flex !important;
 }

 .navbar-phone-desktop {
 display: none !important;
 }

 /* Hero */
 .hero h1 {
 font-size: 2.5rem;
 }

 .hero-page h1 {
 font-size: 2.25rem;
 }

 /* Intro image height — tablet */
 .section-padding img[style*="height: 500px"] {
 height: 380px !important;
 }

 /* Sections */
 .section-padding {
 padding: 70px 0;
 }

 .section-title {
 font-size: 2rem;
 }

 /* Service blocks - stack image on top */
 .service-block .row {
 flex-direction: column;
 }

 .service-block .service-img {
 margin-bottom: 30px;
 }

}

/* ============================================================
 RESPONSIVE — Service blocks stacking fix (992-1023px)
 Forces image-first order when columns stack at lg breakpoint
 ============================================================ */
@media (min-width: 992px) and (max-width: 1023px) {
 .service-block .order-lg-1 { order: 2 !important; }
 .service-block .order-lg-2 { order: 1 !important; }
}

/* ============================================================
 RESPONSIVE — Desktop (1024px and above = full nav)
 ============================================================ */
@media (min-width: 1024px) {
 .navbar-toggler-custom {
 display: none !important;
 }

 .navbar-desktop-links {
 display: flex !important;
 }

 .mobile-nav,
 .mobile-nav-overlay {
 display: none !important;
 }
}

/* ============================================================
 RESPONSIVE — Mobile (767px and below)
 ============================================================ */
@media (max-width: 767px) {
 h1 { font-size: 2.25rem; }
 h2 { font-size: 1.75rem; }
 h3 { font-size: 1.25rem; }

 .hero {
 min-height: 75vh;
 }

 .hero-content {
 padding-top: 80px;
 }

 .hero h1 {
 font-size: 2rem;
 }

 .hero p {
 font-size: 1rem;
 }

 .hero-page {
 min-height: 35vh;
 }

 .hero-page h1 {
 font-size: 1.75rem;
 }

 .hero-buttons {
 flex-direction: column;
 align-items: center;
 }

 .hero-buttons .btn-accent,
 .hero-buttons .btn-outline {
 width: 100%;
 max-width: 280px;
 text-align: center;
 }

 .section-padding {
 padding: 50px 0;
 }

 .section-padding-sm {
 padding: 40px 0;
 }

 .section-title {
 font-size: 1.75rem;
 }

 .section-subtitle {
 font-size: 1rem;
 }

 /* Cards */
 .service-card .card-body {
 padding: 24px;
 }

 .testimonial-card {
 padding: 30px;
 }

 /* Pricing */
 .pricing-card {
 padding: 30px 20px;
 }

 .pricing-card .price {
 font-size: 2rem;
 }

 /* Contact */
 .contact-info-card {
 padding: 35px 25px;
 margin-top: 30px;
 }

 .map-container {
 height: 300px;
 }

 /* Footer */
 .footer {
 padding: 50px 0 0;
 text-align: center;
 }

 .footer .col-lg-3 {
 margin-bottom: 30px;
 }

 .footer-logo {
 margin-left: auto;
 margin-right: auto;
 }

 .footer-contact-item {
 justify-content: center;
 }

 .footer-links,
 .footer-areas {
 text-align: center;
 }

 .footer-links {
 grid-template-columns: 1fr;
 }

 .footer-bottom {
 margin-top: 15px;
 }

 /* CTA */
 .cta-banner {
 padding: 50px 0;
 }

 /* Service blocks */
 .service-block {
 padding: 50px 0;
 }

 /* Service images — reduce from 1:1 square to 4:3 on mobile */
 .service-block .service-img img {
 aspect-ratio: 4 / 3 !important;
 }

 /* Installation & Assembly — shift image down on mobile */
 #installation .service-img img {
 object-position: center calc(50% + 60px);
 }

 /* Service bullet list — tighten line-height on mobile */
 .service-block ul {
 line-height: 1.6 !important;
 }

 /* Intro image on index — reduce from 500px */
 .section-padding img[style*="height: 500px"] {
 height: 280px !important;
 }

 /* Lead text — slightly smaller on mobile */
 .lead {
 font-size: 1rem;
 }

 /* Submit button full-width on mobile */
 .btn-accent[type="submit"],
 #submitBtn {
 width: 100%;
 }

 /* Hide 3rd testimonial on mobile */
 .row > .col-lg-4:last-child:has(.testimonial-card) {
 display: none;
 }

 /* Legal */
 .legal-content h2 {
 font-size: 1.3rem;
 }

 /* Designer quote */
 .designer-section blockquote {
 font-size: 1.2rem;
 }
}

/* ============================================================
 RESPONSIVE — Small Mobile (480px and below)
 ============================================================ */
@media (max-width: 480px) {
 .hero h1 {
 font-size: 1.75rem;
 }

 .hero-page h1 {
 font-size: 1.5rem;
 }

 .btn-accent,
 .btn-outline,
 .btn-outline-dark {
 padding: 12px 28px;
 font-size: 0.8rem;
 }

 .section-padding {
 padding: 40px 0;
 }

 .area-tags {
 gap: 8px;
 }

 .area-tag {
 padding: 6px 16px;
 font-size: 0.8rem;
 }

 /* Tighten values cards on small mobile */
 .values-card {
 padding: 30px 20px;
 }
}

/* --- AOS Overrides (prevent horizontal scroll) --- */
[data-aos] {
 overflow-anchor: none;
}

html, body {
 overflow-x: clip;
}

/* --- Floating Call Button (Mobile Only) --- */
.floating-call-btn {
 display: none;
 border: none;
 outline: none;
 position: fixed;
 bottom: 24px;
 right: 24px;
 width: 56px;
 height: 56px;
 background-color: var(--color-accent);
 color: var(--color-primary);
 border-radius: 50%;
 align-items: center;
 justify-content: center;
 font-size: 1.25rem;
 box-shadow: 0 4px 16px rgba(0,0,0,0.3);
 cursor: pointer;
 z-index: 9999;
 transition: transform 0.2s ease, background-color 0.2s ease;
}

.floating-call-btn:active {
 transform: scale(0.92);
}

.floating-call-btn.active {
 background-color: var(--color-primary);
 color: var(--color-white);
}

.floating-call-popup {
 display: none;
 position: fixed;
 bottom: 90px;
 right: 24px;
 background-color: var(--color-white);
 padding: 12px 20px;
 border-radius: var(--border-radius);
 box-shadow: 0 4px 20px rgba(0,0,0,0.2);
 z-index: 9999;
 opacity: 0;
 transform: translateY(10px);
 pointer-events: none;
 transition: opacity 0.25s ease, transform 0.25s ease;
}

.floating-call-popup.active {
 opacity: 1;
 transform: translateY(0);
 pointer-events: auto;
}

.floating-call-popup a {
 color: var(--color-primary);
 font-family: var(--font-body);
 font-weight: 600;
 font-size: 1.1rem;
 text-decoration: none;
 white-space: nowrap;
}

@media (max-width: 575px) {
 .floating-call-btn {
 display: flex;
 }

 .floating-call-popup {
 display: block;
 }
}


/* --- Testimonial Banner --- */
.testimonial-banner {
 display: flex;
 align-items: center;
 gap: 24px;
 background: var(--color-bg-light);
 border-left: 4px solid var(--color-accent);
 border-radius: var(--border-radius);
 padding: 32px 40px;
 box-shadow: var(--shadow-md);
}

.testimonial-banner-icon {
 color: var(--color-accent);
 font-size: 2rem;
 flex-shrink: 0;
}

.testimonial-banner-text {
 color: var(--color-primary);
 font-family: var(--font-heading);
 font-size: 1.1rem;
 font-style: italic;
 line-height: 1.6;
 margin: 0;
 border: none;
 padding: 0;
}

.testimonial-banner-cite {
 color: var(--color-accent);
 font-family: var(--font-body);
 font-size: 0.9rem;
 font-style: normal;
 font-weight: 600;
 letter-spacing: 1px;
 text-transform: uppercase;
 white-space: nowrap;
 flex-shrink: 0;
}

@media (max-width: 768px) {
 .testimonial-banner {
 flex-direction: column;
 text-align: center;
 padding: 24px 20px;
 gap: 16px;
 }

 .testimonial-banner-text {
 font-size: 1rem;
 }
}
