*{
  padding: 0px;
  margin: 0px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
body {
  margin: 0;
  font-family: "Outfit", sans-serif;
}
.container{
  max-width: 1200px;
  margin: auto;
  padding: 0 20px;
}
.row{
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.col-lg-6,.col-md-6{
  width: 50%;
}
img{
  vertical-align: middle;
}

/* start header css */
.header-area{
  overflow: hidden;
  position: absolute;
  top: 0px;
  width: 100%;
  padding:10px 0px;
}
.logo-img img{
  max-width: 180px;
  width: 100%;
}
.nav-toggle {
	float: right;
  	cursor: pointer;
	position: fixed;
	right: 7%;
	top: 26px;
}
.nav-toggle div {
	width: 50px;
	height: 6px;
	background: #FFF;
	display: block;
	margin: 10px 0px;
	border-radius: 20px;
}
.header-area .row{
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.nav-toggle div:first-child {
  margin-top: 0px;
}
.nav-toggle div:last-child {
  margin-bottom: 0px;
}
/* Offcanvas Menu */
.main-menu {
  position: fixed;
  top: 0;
  right: -100%;
  width: 80%;
  max-width: 320px;
  height: 100vh;
  background: #e7f0ea;;
  -webkit-box-shadow: -5px 0 20px rgba(0, 0, 0, 0.1);
          box-shadow: -5px 0 20px rgba(0, 0, 0, 0.1);
  -webkit-transition: right 0.4s ease;
  -o-transition: right 0.4s ease;
  transition: right 0.4s ease;
  padding: 60px 25px;
  overflow-y: auto;
  z-index: 9999;
}
.main-menu.active {
  right: 0;
}

/* Menu Styling */
.main-menu .menu {
  list-style: none;
  padding: 0 20px;
}
.main-menu .menu li {
  margin-bottom: 15px;
}
.main-menu .menu li a,
.main-menu .menu .menu-heading {
  color: #222;
  text-decoration: none;
  font-size: 18px;
  display: block;
  -webkit-transition: color 0.3s ease;
  -o-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
.main-menu .menu li a:hover {
  color: #0a7a3f;
}

/* Submenu */
.has-sub .sub-menu {
  list-style: none;
  margin-top: 8px;
  margin-left: 15px;
  display: none;
}
.has-sub.open .sub-menu {
  display: block;
}
.has-sub .menu-heading {
  cursor: pointer;
  position: relative;
  width: max-content;
  padding-right: 25px;
}
.has-sub .menu-heading::after {
  content: "▾";
  position: absolute;
  right: 0;
  font-size: 30px;
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  -o-transition: transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
  top:-2px;
  line-height: 1;
}
.has-sub.open .menu-heading::after {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
}
body.menu-open::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 998;
  -webkit-transition: opacity 0.4s;
  -o-transition: opacity 0.4s;
  transition: opacity 0.4s;
}
#closeMenu {
	color: #000;
	font-size: 30px;
	position: absolute;
	right: 15px;
	top: 10px;
	cursor: pointer;
}
.menu-logo {
	text-align: center;
	padding-top: 60px;
}
.menu-logo a img {
	max-width: 95%;
	margin: auto;
}

/* start hero banner css */
.hero-banner{
  background: url(../images/cuffs.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  padding-top: 40px;
}
.hero-banner .row{
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.banner-content h3 {
	color: #FFF;
	font-size: 60px;
	font-weight: 100;
}
.banner-content h1, .banner-content .fake-h1 {
	color: #FFF;
	font-size: 120px;
	font-weight: 900;
	max-width: 460px;
	line-height: 0.85;
  padding-top: 15px;
  padding-bottom: 20px;
}
.banner-content a {
	color: #FFF;
	font-size: 65px;
	font-weight: 700;
	text-decoration: none;
}
.banner-content p {
	color: #FFF;
	font-size: 41px;
  font-weight: 300;
}
.banner-img{
  text-align: center;
}
.banner-img img {
	width: 80%;
}

/* defence css */
.defence-area {
	background: #d0d0d0;
	padding-top: 15px;
}
.defence-grid {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
  gap:0px 25px;
}
.defence-img {
	width: 260px;
	min-width: 260px;
	float: left;
}
.defence-img img {
	width: 100%;
  vertical-align: middle;
}
.defence-content {
	width: 100%;
}
.defence-content h2 {
	color: #0d6c28;
	font-size: 60px;
	font-weight: 900;
}
.defence-content p, .defence-content .defence-intro-text {
	color: #000;
	font-size: 35px;
	line-height: 1.4;
	font-weight: 500;
}
.defence-content p a, .defence-content .defence-intro-text a {
	background: #0d6c28;
	color: #FFF;
	padding: 3px 20px;
	border-radius: 8px;
	font-size: 26px;
	text-decoration: none;
	font-weight: 400;
	margin-left: 30px;
}
/* services css */
.services-item {
	padding: 20px 0px;
}
.services-item:nth-child(3n + 1) {
  background: #fff;
}
.services-item:nth-child(3n + 2) {
  background: #e7f0ea;
}
.services-item:nth-child(3n + 3) {
  background: #d0d0d0;
}
.services-content-area h2 {
	color: #0d6c28;
	font-size: 68px;
	font-weight: 900;
}
.services-grid{
  display: table-cell;
}
.services-image {
	float: left;
}
.services-image img {
	width: 320px;
	margin-right: 20px;
	height: 290px;
	-o-object-fit: cover;
	   object-fit: cover;
}
.services-content p {
	color: #000;
	font-size: 20px;
	font-weight: 500;  
  padding-top: 15px;
}
.services-content p span {
	color: #0d6c28;
	font-weight: 700;
}
.services-content p:first-child {
	padding-top: 0px;
}

/* contact css */
.contact-bar {
	background: #0d6c28;
	padding: 30px 0px;
}
.contact-bar .container {
	max-width: 1060px;
}
.contact-left-text p {
	color: #FFF;
	font-size: 38px;
	font-weight: 600;
}
.contact-right-text {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	gap: 0px 30px;
}
.contact-icon img {
	width: 90px;
}
.contact-details a {
	color: #FFF;
	font-size: 42px;
	font-weight: 700;
	text-decoration: none;
	text-align: center;
}
.contact-details a span {
	display: block;
	font-size: 25px;
	font-weight: 500;
	letter-spacing: 4px;
}

/* listen css */
.listen-area{
  background: #d0d0d0;
}
.custom-container {
	max-width: 1440px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	gap: 0 40px;
	-webkit-box-align: end;
		-ms-flex-align: end;
			align-items: flex-end;
	margin: auto;
}
.listen-img {
	width: 408px;
	min-width: 408px;
  padding-top: 20px;
}
.listen-img img {
	width: 100%;
}
.listen-content h2 {
	color: #0d6c28;
	font-size: 60px;
	font-weight: 900;
}
.listen-content ul li {
	list-style: none;
	font-size: 30px;
	color: #222;
	font-weight: 500;
	line-height: 1.6;
}
.listen-content p {
	font-size: 45px;
	color: #222;
	font-weight: 500;
	line-height: 1.5;
  padding-top: 10px;
  padding-bottom: 20px;
}

/* answer css */
.answer-area {
	background: #838383;
	padding-top: 20px;
  overflow: hidden;
}
.answer-content p {
	color: #000;
	font-size: 20px;
	font-weight: 400;
	padding-top: 15px;
}
.answer-content span {
	color: #222;
	font-size: 26px;
	font-weight: 300;
}
.answer-content h2 {
	color: #000;
	font-size: 60px;
	font-weight: 600;
	padding-top: 10px;
}
.emergency-contact {
	padding-top: 20px;
	text-align: center;
}
.emergency-contact span {
	color: #FFF;
	font-size: 30px;
	font-weight: 700;
}
.emergency-contact h3 {
	color: #FFF;
	font-size: 50px;
	font-weight: 700;
	line-height: 1;
}
.emergency-contact a {
	color: #FFF;
	font-size: 50px;
	font-weight: 700;
	text-decoration: none;
	line-height: 1;
}
.answer-img-area{
  width: 30%;
}
.answer-img {
	margin-right: -120px;
	margin-left: -45px;
	padding-top: 20px;
}
.answer-img img {
	width: 100%;
	margin-right: -140px;
}
.answer-content {
	width: 70%;
}

/* carousel css */
.carousel-area {
	background: #8bbfa8;
	padding: 60px 0px;
}
.carousel-title h2 {
	color: #000;
	text-align: center;
	font-size: 46px;
	font-weight: 500;
	text-transform: uppercase;
	padding-bottom: 30px;
}
/* contact css */
.contact-area{
  padding: 110px 0px 70px 0px;
  background: url(../images/granada.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center bottom;
}
.contact-area .row{
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.info-item {
	padding-bottom: 20px;
}
.info-item:last-child {
	padding-bottom: 0px;
}
.info-item h2,.info-item h2 a {
	color: #FFF;
	font-size: 42px;
	font-weight: 700;
}
.info-item p,.info-item a {
	color: #FFF;
	font-size: 30px;
	font-weight: 700;
  text-decoration: none;
}
.contact-map iframe {
	width: 100%;
	height: 308px;
}

/* legal css */
.legal-content-area {
	background: #848484;
	padding: 30px 0px 60px 0px;
}
.logo-image img {
	max-width: 245px;
}
.legal-descriptions h2 {
	padding-top: 40px;
	padding-bottom: 60px;
	text-align: center;
	color: #000;
	font-size: 40px;
	font-weight: 400;
}
.legal-descriptions h3 {
	color: #000;
	font-size: 25px;
	font-weight: 600;
	padding-bottom: 10px;
}
.legal-descriptions p {
	color: #000;
	font-size: 17px;
	line-height: 1.4;
	padding-bottom: 15px;
}

/* footer css */
.footer-area {
	background: #111;
	padding: 30px 0px 40px 0px;
}
.footer-logo a img {
	max-width: 408px;
	width: 100%;
  opacity: 0.8;
}
.footer-left p,.footer-left p a {
	color: #FFF;
	font-size: 30px;
  	opacity: 0.8;
	text-decoration: none;
}
.footer-content p {
	color: #FFF;
	font-size: 26px;
	line-height: 1.4;
	padding-left: 20px;
	padding-top: 25px;
  opacity: 0.8;
}

/* Base paragraph styling to ensure it flows together seamlessly */
.defence-intro-text {
    margin: 0;
    padding: 0;
    font-size: 1rem; /* Adjust base text size if needed */
    line-height: 1.5;
}

/* Fakes a span as an H1 visually without breaking the text layout */
.defence-intro-text .highlight-triple {
    color: #2e7d32 !important;         
    font-family: inherit;              
    font-size: 2.5rem !important;      
    font-weight: 800 !important;       
    letter-spacing: -0.02em;           
    display: inline !important;
    margin: 0; /* Add this to kill the default H1 spacing */
}
/* Ensures the phone number breaks to its own line cleanly */
.defence-content .phone-link {
    display: block;
    margin-top: 15px;
    font-weight: bold;
}

/* Fixes the phone link button size */
.defence-content .phone-link {
    display: inline-block !important; /* Shrinks the background to fit only the text */
    width: auto !important;           /* Prevents it from stretching full-width */
    padding: 10px 20px;               /* Adds some nice spacing inside the button */
    margin-top: 15px;                 /* Pushes it down away from the paragraph text */
    text-align: center;
}

/* =========================================================
   NEW PORT ORANGE LANDING PAGE VARIATION 
   These styles only apply when .hero-banner-alt is present
   ========================================================= */

/* Override the background image safely */
.hero-banner.hero-banner-alt {
    background: url(../images/Port-Orange-FL-city-hall.jpg); 
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

/* Override the H1 styling specifically for this banner */
.hero-banner-alt .banner-content h1 {
    font-size: 55px; 
    font-weight: 400; 
    line-height: 1.2;
    max-width: 100%; 
    padding-bottom: 30px;
    margin-top: 0;
}

/* New green highlight class */
.hero-banner-alt .banner-content h1 .highlight-green {
    color: #2e7d32; 
    font-weight: 700;
}

/* Adjustments for the phone link and subtext */
.hero-banner-alt .banner-content .phone-link {
    font-size: 60px;
    display: block; 
}

.hero-banner-alt .banner-content p {
    font-size: 38px;
}

/* Adjust image width for the new cutout */
.hero-banner-alt .banner-img img {
    width: 90%; 
}

/* New column widths for this specific layout to give text more room */
@media (min-width: 768px) {
    .col-md-7 {
        width: 58.333333%;
    }
    .col-md-5 {
        width: 41.666667%;
    }
}

/* =========================================================
   NEW VIDEO DEFENCE AREA 
   These styles only apply when .defence-area-alt is present
   ========================================================= */

/* Add some breathing room to the section */
.defence-area.defence-area-alt {
    padding: 50px 0;
    background: #d0d0d0; 
}

/* Adjust the grid to give the text MORE space than the video */
.defence-area-alt .defence-grid {
    display: flex;
    align-items: center;
    gap: 50px; /* Increased gap slightly for a cleaner look */
}

/* Shrink the video column */
.defence-area-alt .defence-img.video-thumbnail {
    width: 35%; /* Down from 45% */
    min-width: 250px; /* Reduced so it doesn't force text to squish */
    float: none; 
}

.defence-area-alt .defence-img.video-thumbnail img {
    width: 100%;
    border-radius: 20px; 
    box-shadow: 0 8px 16px rgba(0,0,0,0.15); 
}

/* Expand the text column */
.defence-area-alt .defence-content {
    width: 65%; /* Up from 55% */
}

/* Match the typography from the mockup */
.defence-area-alt .green-heading {
    color: #408146; 
    font-size: 36px; /* Slightly scaled to ensure a single line */
    font-weight: 800;
    margin-bottom: 15px;
    line-height: 1.2;
}

.defence-area-alt .defence-text {
    color: #111;
    font-size: 26px; /* Slightly scaled to flow better */
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 25px;
    padding-top: 0; 
}

/* Styling the button */
.defence-area-alt .phone-button {
    background: #2e7033; 
    color: #FFF;
    padding: 12px 25px;
    border-radius: 8px;
    font-size: 26px;
    text-decoration: none;
    font-weight: 600;
    display: inline-block;
    margin-left: 0; 
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
    .defence-area-alt .defence-grid {
        flex-direction: column;
        text-align: center;
        gap: 25px;
    }
    .defence-area-alt .defence-img.video-thumbnail,
    .defence-area-alt .defence-content {
        width: 100%;
    }
    .defence-area-alt .green-heading {
        font-size: 32px;
    }
    .defence-area-alt .defence-text {
        font-size: 22px;
    }
}

/* =========================================================
   DOMESTIC VIOLENCE Q&A SECTION 
   ========================================================= */

/* The alternating background colors (White -> Light Green -> Light Gray) */
.faq-item:nth-child(3n + 1) { background: #fff; }
.faq-item:nth-child(3n + 2) { background: #e7f0ea; }
.faq-item:nth-child(3n + 3) { background: #d0d0d0; }

/* Equalizing the spacing inside every panel */
.faq-item {
    padding: 35px 0;
}

.faq-content {
    max-width: 1000px; /* Keeps the text lines from getting too long on giant monitors */
    margin: 0 auto;
}

/* Main title styling */
.faq-content h2 {
    color: #2e7d32; 
    font-size: 42px;
    font-weight: 800;
    margin-bottom: 20px;
    line-height: 1.2;
}

/* Question styling */
.faq-content h3 {
    color: #2e7d32; 
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 12px;
    line-height: 1.3;
}

/* Paragraph text styling */
.faq-content p {
    color: #111;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 15px;
}

/* Removes the bottom margin from the last paragraph in a panel to keep spacing perfectly equal */
.faq-content p:last-child, 
.faq-content ul:last-child {
    margin-bottom: 0;
}

/* Bullet list formatting */
.faq-content ul {
    list-style-type: none; /* Remove default bullets */
    padding-left: 20px;
    margin-bottom: 15px;
}

.faq-content ul li {
    position: relative;
    color: #111;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 10px;
    padding-left: 20px;
}

/* Creates the custom green circle bullets matching the design */
.faq-content ul li::before {
    content: "●";
    color: #2e7d32; 
    font-size: 22px;
    position: absolute;
    left: -5px;
    top: -2px;
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
    .faq-item {
        padding: 25px 0;
    }
    .faq-content h2 {
        font-size: 32px;
    }
    .faq-content h3 {
        font-size: 24px;
    }
    .faq-content p, .faq-content ul li {
        font-size: 18px;
    }
}