/*
Theme Name: Good Catch Plumbing
Theme URI: https://github.com/shazilkhan/good-catch-plumbing
Author: Shazil Khan
Description: Custom WordPress theme for Good Catch Plumbing — Southwest Florida plumbing contractor. Classic templating on Timber v2, styled with Tailwind v4, content modelled with ACF Pro.
Version: 0.1.0
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 8.1
License: Proprietary
Text Domain: good-catch
Tags: custom-theme
*/

/* Base styles are compiled from src/css/app.css. Accessible refinements follow. */

/* Accessibility refinements. Loaded after the Vite stylesheet by functions.php. */
:root { --gcp-readable-aqua: #14737c; --wp--preset--color--muted-soft: #5a6b76; }
.bg-navy, .bg-navy-deep { --gcp-readable-aqua: #58cbd4; }
.bg-white, .bg-sand, [class*="bg-[#f5f2e9]"] { --gcp-readable-aqua: #14737c; }
.text-aqua, .gcp-eyebrow:not(.text-lime), main a:not(.gcp-btn):not(.gcp-card):not([class*="text-white"]):not([class*="text-navy"]) { color: var(--gcp-readable-aqua); }
main .hover\:text-aqua:hover, main a:not(.gcp-btn):not(.gcp-card):not([class*="text-white"]):not([class*="text-navy"]):hover { color: var(--gcp-readable-aqua); }
.gcp-btn-coral { background: #b14318; color: #fff; }
.gcp-btn-coral:hover, .gcp-btn-coral:active { background: #96350f; color: #fff; }
.gcp-btn-outline:hover { color: #14737c; border-color: #14737c; }
.text-coral { color: #b14318; }
main section[class*="linear-gradient(105deg"] { background-image: linear-gradient(105deg, #14737c, #0d5963); }
main section[class*="linear-gradient(105deg"] .text-white\/90 { color: #fff; }
main :is(p, li) a:not(.gcp-btn):not(.gcp-card), main aside a:not(.gcp-btn), main article a:not(.gcp-btn) { text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: .08em; }
#request :is(input:not([type="hidden"]), select, textarea) { border-color: #727b80; font-size: 16px; }
#request :is(input, textarea)::placeholder { color: #596670; opacity: 1; }
#request [aria-invalid="true"] { border-color: #a53019; border-width: 2px; }
.gcp-required-note { margin: 0 0 1.1rem; color: #4a5b66; font-size: 15px; line-height: 1.6; }
.gcp-required-marker { font-weight: 400; }
html { scroll-padding-top: 140px; }
:where(a, button, input, select, textarea, summary, [tabindex="0"]):focus-visible { outline: 3px solid #0b3c5d; outline-offset: 3px; box-shadow: 0 0 0 6px #fff; }
:where(input, select, textarea, summary) { scroll-margin-top: 140px; }
[data-reviews-controls] { display: grid; grid-template-columns: 44px minmax(0, auto) 44px; gap: 8px; }
[data-reviews-controls][hidden] { display: none; }
[data-reviews-dots] { gap: 0; }
[data-reviews-dots] button { width: 44px; height: 44px; flex: 0 0 44px; display: inline-flex; align-items: center; justify-content: center; background: transparent; border-radius: 50%; }
[data-reviews-dots] button::before { content: ""; display: block; width: 10px; height: 10px; border-radius: 50%; background: #aac1d0; }
[data-reviews-dots] button[aria-current="true"]::before { background: #aee13b; width: 14px; height: 14px; }
[data-reviews-prev], [data-reviews-next] { flex-shrink: 0; }
[data-reviews-prev]:not(:disabled):hover, [data-reviews-next]:not(:disabled):hover { background: #14737c; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Keep field labels compact and cover the custom blog template. */
#request label { display: block; }
#request :is(input:not([type="hidden"]), select, textarea) { display: block; width: 100%; margin-top: 6px; }
main .gcp-blog-kicker { color: #14737c; }

/* Homepage text hierarchy and contact disclosure. */
.gcp-hero-subheading { max-width: 520px; margin: 0 0 16px; font-size: clamp(20px, 2vw, 24px); line-height: 1.4; font-weight: 600; color: #0b3c5d; }
.gcp-form-disclosure { margin: 0; font-size: 13px; line-height: 1.6; color: #4a5b66; }

/* October 2026 water heater giveaway. */
.gcp-giveaway-banner { background: #ff8a16; color: #071b2e; border-bottom: 4px solid #b7ed26; }
.gcp-giveaway-banner-inner { max-width: 1240px; margin: 0 auto; padding: 14px 24px; display: flex; align-items: center; justify-content: center; gap: 24px; }
.gcp-giveaway-banner-copy { font-size: 15px; line-height: 1.45; }
.gcp-giveaway-banner-copy strong { display: block; font-size: 20px; font-weight: 850; }
.gcp-giveaway-banner a { flex-shrink: 0; display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 11px 20px; background: #071b2e; color: #d1ff50; border-radius: 8px; font-size: 14px; font-weight: 800; text-decoration: none; }
.gcp-giveaway-banner a:hover { background: #0b3c5d; color: #fff; }
.gcp-giveaway { color: #0b263b; line-height: 1.7; }
.gcp-giveaway-top { display: grid; grid-template-columns: 1.05fr 1fr; gap: 36px; align-items: center; margin-bottom: 40px; }
.gcp-giveaway-art { width: 100%; height: auto; border-radius: 16px; margin: 0; box-shadow: 0 10px 32px #071b2e18; }
.gcp-giveaway .gcp-giveaway-kicker { display: inline-block; margin: 0 0 16px; padding: 6px 12px; border-radius: 5px; background: #ff8a16; color: #071b2e; font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.gcp-giveaway h2 { color: #0b263b; font-size: clamp(26px,3vw,38px); line-height: 1.18; margin: 0 0 18px; font-weight: 800; }
.gcp-giveaway h3 { color: #0b263b; font-size: 23px; line-height: 1.3; margin: 0 0 16px; font-weight: 800; }
.gcp-giveaway p { margin: 0 0 18px; }
.gcp-giveaway .gcp-giveaway-dates { padding: 16px 18px; margin: 22px 0; border-left: 4px solid #ff8a16; background: #fff5e7; }
.gcp-giveaway-dates strong { display: block; }
main .gcp-giveaway a.gcp-giveaway-email { display: inline-flex; min-height: 48px; justify-content: center; align-items: center; background: #0b263b; color: #d1ff50 !important; padding: 14px 24px; border-radius: 8px; font-weight: 800; text-decoration: none; }
main .gcp-giveaway a.gcp-giveaway-email:hover { background: #14546b; color: #fff !important; }
.gcp-giveaway-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.gcp-giveaway-card { padding: 28px; background: #f5f8f8; border: 1px solid #d5e1e3; border-radius: 12px; }
.gcp-giveaway ol { list-style: decimal; padding-left: 24px; margin: 0 0 20px; }
.gcp-giveaway ul { list-style: disc; padding-left: 22px; margin: 0; }
.gcp-giveaway li { margin: 0 0 10px; }
.gcp-giveaway a { overflow-wrap: anywhere; }
.gcp-giveaway-note { padding: 22px 26px; margin-top: 26px; background: #fff5e7; border-left: 4px solid #ff8a16; border-radius: 0 8px 8px 0; }
.gcp-giveaway-note p:last-child { margin-bottom: 0; }
@media (max-width: 760px) {
.gcp-giveaway-banner-inner { gap: 12px; padding: 12px 16px; flex-direction: column; text-align: center; }
.gcp-giveaway-banner-copy strong { font-size: 18px; }
.gcp-giveaway-banner-copy { font-size: 13px; }
.gcp-giveaway-banner a { min-height: 44px; padding: 10px 18px; }
.gcp-giveaway-top, .gcp-giveaway-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
.gcp-giveaway-card { padding: 22px; }
}

main .gcp-giveaway { max-width: 1220px; margin: 0 auto; padding: 48px 24px 64px; font-size: 17px; }
.gcp-giveaway .gcp-giveaway-title { color: #0b263b; font-size: clamp(34px,4vw,52px); line-height: 1.12; font-weight: 800; margin: 0 0 38px; text-align: center; }
@media (max-width:760px) { main .gcp-giveaway { padding: 30px 20px 44px; font-size: 16px; } .gcp-giveaway .gcp-giveaway-title { margin-bottom: 26px; } }

/* Dark gold rating stars on white cards: 5.21:1 contrast against white. */
.bg-white > .text-amber,
.bg-white > .flex-col > .text-amber { color: #996000; }

/* Keep the skip link readable in both its hidden and keyboard-focus states. */
a.sr-only[href="#main"] { color: #0b3c5d; background-color: #fff; }
