/* ==========================================
CDL Rescue - Main Stylesheet
Easily customize colors in the :root section
========================================== */

:root {
/* Color Scheme */
--primary-color: #0056b3;
--secondary-color: #007bff;
--accent-color: #28a745;
--background-color: #f8f9fa;
--surface-color: #ffffff;
--text-color: #333333;
--title-color:  linear-gradient(to left, var(--primary-color), #ffffff);
--light-text: #ffffff;
--border-color: #dddddd;
--navbar-color: #ffffff;
```
/* Layout */
--max-width: 1200px;
--navbar-height: 100px;

/* Effects */
--shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
--transition: 0.3s ease;
```

}

/* ==========================================
Reset
========================================== */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  }

body {
font-family: Arial, Helvetica, sans-serif;
line-height: 1.6;
color: var(--text-color);
background-color: var(--background-color);

```
/* Prevent content from hiding behind navbar */
padding-top: calc(var(--navbar-height) + 20px);
```

}

/* ==========================================
Header / Navbar
========================================== */

#header {
position: sticky;
top: 0;
z-index: 1000;

height: var(--navbar-height);
width: 100%;

background-color: var(--surface-color);
box-shadow: var(--shadow);

display: flex;
justify-content: space-between;
align-items: center;

padding: 0 2rem;

}

/* Logo stays left */
.logo {
display: flex;
align-items: center;
flex-shrink: 0;
transition: background-color --transition;
border-radius: 30px;
}

.logo img {
height: 3.5rem;
width: auto;
display: block;
}

.logo:hover {
	background: var(--primary-color);
	transition: var(--transition);
}

/* Navigation stays right */
.navbar {
margin-left: auto;
}

.navbar ul {
display: flex;
flex-direction: row;
align-items: center;
gap: 2rem;

list-style: none;
margin: 0;
padding: 0;

}

.navbar li {
margin: 0;
padding: 0;
}

.navbar a {
display: block;
text-decoration: bold;
color: var(--text-color);
font-weight: 500;
padding: 0.8rem 0.85rem;
border-radius: 5px;
transition: var(--transition);
outline: 2px solid black;
}

.navbar a {
background-color: var(--navbar-color);
color: var(--light-text);
}

/* Mobile Layout */
@media (max-width: 768px) {

#header {
    flex-wrap: wrap;
    height: auto;
    padding: 1rem;
}

.logo {
    width: 100%;
    justify-content: center;
    margin-bottom: 1rem;
}

.navbar {
    width: 100%;
    margin-left: 0;
}

.navbar ul {
    justify-content: center;
    flex-wrap: wrap;
    gap: 1rem;
}

}

/* ==========================================
Navigation
========================================== */

.navbar ul {
display: flex;
align-items: center;
gap: 2rem;

```
list-style: none;
```

}

.navbar li {
list-style: none;
}

.navbar a {
text-decoration: none;
color: var(--text-color);
font-weight: 600;
transition: var(--transition);

```
padding: 0.5rem 0.75rem;
border-radius: 5px;
```

}

.navbar a:hover {
color: var(--light-text);
background-color: var(--primary-color);
}

.menu-toggle {
	font-size: 3rem;
	margin-right: 1rem;
	
}

/* ==========================================
Hero Banner
========================================== */

.hero-banner {
width: 100%;
height: 500px;
background-image:
    linear-gradient(
        rgba(0, 0, 0, 0.45),
        rgba(0, 0, 0, 0.45)
    ),
    url("../images/hero-desktop.webp");

background-size: cover;
background-position: center;
background-repeat: no-repeat;

display: flex;
align-items: center;
justify-content: center;

text-align: center;

margin: 0px 0px 0px;
}

.hero-content {
max-width: 900px;
padding: 2rem;
color: white;
}

.hero-content h1 {
font-size: 3rem;
margin-bottom: 1rem;
color: white;

text-shadow: 2px 2px 8px rgba(0,0,0,0.5);

}

.hero-content p {
font-size: 1.3rem;
text-shadow: 1px 1px 5px rgba(0,0,0,0.5);
}

.btn {
	background-color: white;
	color: white;
	font: bold;
	padding: .75em;
}

.btn a {
	background-color:black;
	color:black;
}

.btn:hover {
	color: --primary-color;
	background-color: --secondary-color;
}

/* Mobile */
@media (max-width: 768px) {

.hero-banner {
    height: 350px;
	
	background-image:
    linear-gradient(
        rgba(0, 0, 0, 0.45),
        rgba(0, 0, 0, 0.45)
    ),
    url("../images/hero-mobile.webp");
}

.hero-content h1 {
    font-size: 2rem;
}

.hero-content p {
    font-size: 1rem;
}

}

@media (min-width: 768px) {
	
	.hero-banner {
    background-color: transparent;
	background-image:
    linear-gradient(
        rgba(0, 0, 0, 0.45),
        rgba(0, 0, 0, 0.45)
    ),
    url("../images/hero-desktop.webp");
	}
	
}

/* ==========================================
Main Content
========================================== */

main {
max-width: var(--max-width);
margin: 0 auto;
padding: 2rem;
}

section {
margin-bottom: 4rem;
}

h1, h2, h3 {
margin-bottom: 1rem;
color: var(--primary-color);
}

p {
margin-bottom: 1rem;
}

/* Main content list styling */
main ul {
    list-style: none;
    padding: 0;
    margin: 2rem 0;
}

main ul li {
    position: relative;
    padding: 1rem 1rem 1rem 3rem;
    margin-bottom: 0.75rem;
    background: #ffffff;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    transition: all 0.25s ease;
    line-height: 1.6;
}

/* Custom bullet */
main ul li::before {
    content: "✓";
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, #4f46e5, #7c3aed);
    color: white;
    font-size: 0.9rem;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Hover effect */
main ul li:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(79, 70, 229, 0.15);
    border-color: #c7d2fe;
}

/* Optional spacing for nested lists */
main ul ul {
    margin-top: 0.75rem;
    margin-left: 1.5rem;
}


/* ==========================================
Form Submission
========================================== */

/* Contact Form Container */ .contact-form { max-width: 700px; margin: 2rem auto; padding: 2rem; background: #ffffff; border-radius: 12px; box-shadow: 0 4px 20px rgba(0,0,0,0.08); } .contact-form h2 { text-align: center; margin-bottom: 1.5rem; color: #1f2937; } /* Form Groups */ .form-group { margin-bottom: 1.25rem; } .form-group label { display: block; font-weight: 600; margin-bottom: 0.4rem; color: #374151; } /* Inputs & Selects */ .contact-form input, .contact-form select { width: 100%; padding: 12px; border: 1px solid #d1d5db; border-radius: 8px; font-size: 1rem; box-sizing: border-box; transition: all 0.2s ease; } .contact-form input:focus, .contact-form select:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,.15); } /* Required Field Indicator */ label:has(+ input[required])::after, label:has(+ select[required])::after { content: " *"; color: #dc2626; } /* Invalid Required Fields */ input:required:invalid, select:required:invalid { border-color: #dc2626; } /* Show Message When Empty */ input:required:invalid:not(:placeholder-shown), select:required:invalid { background-color: #fff5f5; } /* Submit Button */ .contact-form button { width: 100%; padding: 14px; background: #2563eb; color: #fff; border: none; border-radius: 8px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: background .2s ease; } .contact-form button:hover { background: #1d4ed8; } /* Success/Error Message */ #formMessage { margin-top: 1rem; text-align: center; font-weight: 600; } /* Checkbox Styling */ input[type="checkbox"] { width: auto; margin-right: 8px; } /* Mobile Responsive */ @media (max-width: 768px) { .contact-form { margin: 1rem; padding: 1.5rem; } }

.contact-form #email, .contact-form #email:focus, .contact-form #email:hover {
	color: var(--text-color);
	text-decoration: none;
}

/* ==========================================
Buttons
========================================== */

.btn {
display: inline-block;

```
padding: 0.75rem 1.5rem;

background-color: var(--primary-color);
color: var(--light-text);

text-decoration: none;
border-radius: 5px;

transition: var(--transition);
```

}

.btn:hover {
background-color: var(--secondary-color);
}


/* ===========================
   CDL Rescue Pricing Section
   =========================== */

.cdr-pricing-section{
    --cdr-primary:var(--primary-color);
    --cdr-secondary:#00a3e0;
    --cdr-accent:#ffb100;
    --cdr-dark:#1d2736;
    --cdr-light:#f5f8fc;
    --cdr-success:#22c55e;

    padding:80px 20px;
    max-width:1400px;
    margin:0 auto;
}

.cdr-pricing-section *,
.cdr-pricing-section *::before,
.cdr-pricing-section *::after{
    box-sizing:border-box;
}

.cdr-pricing-section .cdr-section-title{
    text-align:center;
    margin-bottom:15px;
    color:var(--cdr-dark);
    font-size:2.5rem;
    line-height:1.2;
}

.cdr-pricing-section .cdr-section-subtitle{
    text-align:center;
    max-width:800px;
    margin:0 auto 60px;
    color:#666;
}

.cdr-pricing-section .cdr-package-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:30px;
    margin-bottom:80px;
}

.cdr-pricing-section .cdr-package-card{
    background:#fff;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    border:1px solid #e8edf5;
    transition:all .3s ease;
}

.cdr-pricing-section .cdr-package-card:hover{
    transform:translateY(-8px);
}

.cdr-pricing-section .cdr-package-header{
    background:linear-gradient(
        135deg,
        var(--cdr-primary),
        var(--cdr-secondary)
    );
    color:#fff;
    padding:30px;
    text-align:center;
}

.cdr-package-header h2 { /*TODO: fix gradient to be inverse containing box*/
	color: linear-gradient(
        135deg,
        var(--cdr-secondary),
        var(--cdr-primary)
    );
}

.cdr-pricing-section .cdr-package-title{
    font-size:1.6rem;
    margin:0 0 10px;
}

.cdr-pricing-section .cdr-package-price{
    font-size:2.4rem;
    font-weight:700;
    line-height:1;
}

.cdr-pricing-section .cdr-package-subprice{
    display:block;
    margin-top:10px;
    opacity:.9;
}

.cdr-pricing-section .cdr-package-body{
    padding:30px;
}

.cdr-pricing-section .cdr-package-list{
    list-style:none;
    margin:0;
    padding:0;
}

.cdr-pricing-section .cdr-package-list li{
    padding:10px 0;
    border-bottom:1px solid #eee;
}

.cdr-pricing-section .cdr-package-list li::before{
    content:"✓";
    color:var(--cdr-success);
    font-weight:700;
    margin-right:10px;
}

.cdr-pricing-section .cdr-note{
    font-size:.9rem;
    color:#666;
    margin-top:20px;
}

.cdr-pricing-section .cdr-button{
    display:block;
    text-align:center;
    text-decoration:none;
	background: linear-gradient(
        135deg,
        var(--cdr-secondary),
        var(--cdr-primary)
    );
    color:#000;
    font-weight:700;
    padding:14px;
    border-radius:8px;
    margin-top:25px;
    transition:background .3s ease;
}

.cdr-pricing-section .cdr-button {
	background: linear-gradient(
    135deg,
	var(--cdr-primary),
    var(--cdr-secondary),
    var(--cdr-primary),
	var(--cdr-secondary),
    var(--cdr-primary)
	);
	background-size: 300% 300%;
	color: var(--cdr-light);
    background-size: 200% 200%;
    transition: background-position 0.3s ease;
}

.cdr-button:hover {
    animation: gradient-shift 3s linear infinite;
}

@keyframes gradient-shift {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}


.cdr-pricing-section {
    background:#e5a000;
    color:#000;
}

.cdr-pricing-section {
    background:var(--cdr-light);
    padding:50px;
    border-radius:20px;
}

.cdr-individual-services {
	background: #F1F1F1;
	padding:50px;
    border-radius:20px;
}

.cdr-pricing-section .cdr-individual-services-title{
    text-align:center;
    margin-bottom:30px;
    color:var(--cdr-dark);
}

.cdr-pricing-section .cdr-services-table{
    width:100%;
    border-collapse:collapse;
}

.cdr-pricing-section .cdr-services-table tr{
    border-bottom:1px solid #dbe3ee;
}

.cdr-pricing-section .cdr-services-table td{
    padding:18px 10px;
}

.cdr-pricing-section .cdr-services-table td:last-child{
    text-align:right;
    font-weight:700;
    color:var(--cdr-primary);
    white-space:nowrap;
}

/* Featured package */
.cdr-pricing-section .cdr-featured{
    position:relative;
    border:3px solid var(--cdr-accent);
}

.cdr-pricing-section .cdr-featured::before{
    content:"MOST POPULAR";
    position:absolute;
    top:15px;
    right:-35px;
    background:var(--cdr-accent);
    color:#000;
    font-size:.75rem;
    font-weight:700;
    padding:6px 40px;
    transform:rotate(45deg);
}

/* Tablet */

@media (max-width:991px){

    .cdr-pricing-section .cdr-package-grid{
        grid-template-columns:1fr;
    }

    .cdr-pricing-section .cdr-section-title{
        font-size:2rem;
    }
}

/* Mobile */

@media (max-width:768px){

    .cdr-pricing-section{
        padding:60px 15px;
    }

    .cdr-pricing-section .cdr-individual-services{
        padding:25px;
    }

    .cdr-pricing-section .cdr-services-table,
    .cdr-pricing-section .cdr-services-table tbody,
    .cdr-pricing-section .cdr-services-table tr,
    .cdr-pricing-section .cdr-services-table td{
        display:block;
        width:100%;
    }

    .cdr-pricing-section .cdr-services-table tr{
        padding:12px 0;
    }

    .cdr-pricing-section .cdr-services-table td{
        padding:6px 0;
    }

    .cdr-pricing-section .cdr-services-table td:last-child{
        text-align:left;
    }
}

/* ==========================================
Footer
========================================== */

footer {
background-color: var(--primary-color);
color: var(--light-text);
text-align: center;
```
padding: 2rem;
padding-top: 1.5rem;
padding-bottom: 1.5rem;
margin-bottom: 0;
```
}

.email, #tel {
	text-decoration: none;
	color: white;
	padding-bottom: .5em;
}

.email:hover {
	text-decoration:underline;
	color: blue;
}

#tel {
	font-size: 1.25em;
	align-content: center;
}


/* ==========================================
Responsive Design
========================================== */

/* Desktop Only */
@media (min-width: 768px) {

/* Hide hamburger on desktop */
.menu-toggle {
display: none;
background: none;
border: none;
font-size: 2rem;
cursor: pointer;
color: var(--text-color);
}

/* Desktop navigation */
.navbar ul {
display: flex;
gap: 2rem;
list-style: none;
}

.desktop-content .btn {
	display: inline-block;
}

.mobile-content {
	display: none;
}

}

/* Mobile Only */
@media (max-width: 768px) {
/* Hamburger Layout on mobile */

    #header {
        position: relative;

        display: flex;
        justify-content: center;
        align-items: center;

        padding: .75rem 1rem;
    }

    .logo {
        margin: 0 auto;
    }

    .logo img {
        height: 50px;
        width: auto;
    }

    .menu-toggle {
        position: absolute;
        right: 15px;
        top: 50%;

        transform: translateY(-50%);

        display: block;
        font-size: 2.5rem;

        background: none;
        border: none;
        cursor: pointer;
		padding-left: 15px;
    }


/* Hide nav by default */
.navbar {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;

    background: var(--surface-color);
    box-shadow: var(--shadow);

    display: none;
}

/* Show when active */
.navbar.active {
    display: block;
}

.navbar ul {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
}

.navbar li {
    width: 100%;
    border-bottom: 1px solid var(--border-color);
}

.navbar a {
    display: block;
    padding: 1rem;
    width: 100%;
}


```
#header {
    flex-direction: column;
    height: auto;
    padding: 1rem;
}

body {
    padding-top: 0px;
}

.navbar ul {
    flex-direction: column;
    gap: 1rem;
    margin-top: 1rem;
}

.logo img {
    max-height: 50px;
	height: 2rem;
	width: auto;
	display: block;
}
```
.logo:hover {
	background: none;
	transition: none;
}

.mobile-content .btn {
	display: inline-block;
}

.desktop-content {
	display: none;
}

}
