/* ============================================================ 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 { outline: none; box-shadow: none;}.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; }}