/*
THEME NAME: Kamaaina K9 2025
THEME URI: https://deliciousdesign.com/
VERSION: 3.1
AUTHOR: Delicious Design
AUTHOR URI:
*/

/* -------------------------------------------------------------------------- RESET --- */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin: 0; padding: 0; border: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline;}  table {border-collapse: separate; border-spacing: 0;}  caption, th, td { text-align: left; font-weight: normal; }  table, td, th { vertical-align: middle; }  blockquote:before, blockquote:after, q:before, q:after { content: ""; }  blockquote, q { quotes: "" ""; }  a img { border: none; } 
a:active, a:focus { outline: none; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:none; }
textarea, select, input, progress, input[type=submit], input[type=button] { appearance: none; -webkit-appearance: none; -moz-appearance: none; }
p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }


/* ------------------------------------------------------------------------ GLOBALS --- */
:root {
	--body-color: #363636;

	--kk9-entry-color: #dbefca;
	--kk9-page-color: #c7e6ab;
	--kk9-bright-yellow: #defb47;
	--kk9-medium-teal: #019392; 
	--kk9-bright-green: #98c75d;
	--kk9-dark-green: #136d6b;
	--kk9-dark-brown: #764c1c;
	--kk9-black: #1d1b1c;
	--kk9-white: #ffffff;

	--main-radius: 5px;
	--button-radius: 10px;
	--icon-padding: 20px; 

	}
.red { color:red; }


/* --------------------------------------------------------------------------- BODY --- */
html {
	font-size: 20px;
	line-height:1;
	text-align: left;
	}
body {
	background: var(--kk9-page-color);
	overflow-x: hidden;
	}
body.modal_open {
	overflow: hidden;
	}
body.compact_header div#pre_header {
	transform: translateY(-100%);
	transition: transform 2s ease;
	}
body.compact_header div#header {
	top: 0;
	transition: top 1s ease;
	}
body.compact_header div#logo {
	width:120px;
	height:120px;
	top:-10px;
	}
body, 
input,
textarea,
select {
	color: var(--kk9-black);
	}


/* ------------------------------------------------------------------------- COLORS --- */
a {
	transition: all .3s;
	cursor:pointer;
	}
div.entry_verbose a {
	font-weight: 700;
	}
a:link, 
a:visited {
	color: var(--kk9-dark-green);
	text-decoration:none;
	}
a:hover, 
a:active {
	color: var(--kk9-medium-teal);
	}
.headlines, h1, h2, h3, h4, h5, h6 {
	color: var(--kk9-dark-green);
	font-family: "kari", sans-serif;
	font-weight: 400;
	font-style: normal;
	}
blockquote {
	background:var(--kk9-page-color);
	}
div#menu ul.menu li.menu-item a {
	background-color:var(--kk9-medium-teal);
	color: var(--kk9-white);
	}
div#menu ul.menu li.menu-item a:hover {
	background-color:var(--kk9-medium-teal);
	color: var(--kk9-bright-yellow);
	padding-left: 18px;
	padding-right: 12px;
	cursor:pointer;
	}
div#menu ul.menu li.current_page_item a,
div#menu ul.menu li.current_page_item a:hover {
	background-color:var(--kk9-medium-teal);
	color: var(--kk9-bright-green);
	padding-left: 15px;
	padding-right: 15px;
	cursor:default;
	}

div.entry_verbose div.map_buttons a.button {
	font-weight: 300;
	} 
a.button, 
span.button,
input[type=submit],
input[type=button] {
	display: inline-block;
	background-color: var(--kk9-bright-green);
	color: var(--kk9-black);
	border-radius:var(--button-radius);
	cursor:pointer;
	text-align:center;
	padding: 11px 16px 10px 16px;
	margin: 0 0 0 0;
	text-decoration: none;
	border:transparent;
	font-size: 0.8rem;
	line-height: 1;
	text-transform:uppercase;
	font-family: "davis-sans", sans-serif;
	font-weight: 300;
	font-style: normal;
	transition: all .3s;
	}
a.button.reservations {
	font-family: "davis-sans", sans-serif;
	font-weight: 500;
	font-style: normal;
	background-color:var(--kk9-dark-green);
	color: var(--kk9-white);
	} 
div#header a.button.reservations,
div#modal_buttons a.button {
	background-color:var(--kk9-bright-yellow);
	color: var(--kk9-black);
	} 
div#header a.button.reservations:hover,
div#modal_buttons a.button:hover,
a#nav_toggle {
	background-color:var(--kk9-medium-teal);
	color: var(--kk9-white);
	} 
.button.w_margin {
	margin-right: 15px;
	margin-left: 15px;
	} 
.button.v_margin {
	margin-top: 10px;
	} 
.button.min_width {
	min-width:135px;
	} 
.button span {
	padding: 0 2px;
	}

a.button:hover, 
a#nav_toggle:hover, 
input[type=submit]:hover,
input[type=button]:hover {
	background-color: var(--kk9-bright-yellow);
	color: var(--kk9-black);
	}
a.one_icon:hover span.button {
	background-color: var(--kk9-dark-green);
	color: var(--kk9-white);
	}

hr {
	border: none;
	border-top: 1px dotted var(--kk9-bright-green);
	margin: 1rem 0;
	}

/* --------------------------------------------------------------------- TYPOGRAPHY --- */
body,
input[type=text], 
input[type=email],
input[type=tel],
textarea,
.davis_lgt {
	font-family: "davis-sans", sans-serif;
	font-weight: 300;
	font-style: normal;
	}
.davis_med {
	font-family: "davis-sans", sans-serif;
	font-weight: 500;
	font-style: normal;
	}
.davis_bold {
	font-family: "davis-sans", sans-serif;
	font-weight: 700;
	font-style: normal;
	}
.kari_regular {
	font-family: "kari", sans-serif;
	font-weight: 400;
	font-style: normal;
	}



div#blog-description {
	margin:0 0 0 2px;
	font-size:0.9rem;
	}
div.super_header {
	margin: 0 0 0 0;
	text-transform: uppercase;
	color: var(--kk9-dark-green);
	font-weight: 300;
	font-size: 1.0rem;
	line-height: 1em;
	}
h1 {
	font-size:2.8rem;
	line-height:1.0em;
	margin: 0 0 15px 0;
	color:var(--kk9-dark-brown);
	}
h1#blog_title {
	display:block;
	position:fixed;
	top:-1000px;
	left:0px;
	}
h2 {
	font-size:1.6em;
	line-height:1.0em;
	margin: 0 0 1.0rem 0;
	}
div.one_home_excerpt h2 {
	font-size:1.6em;
	line-height:1.0em;
	margin: 0 0 10px 0;
	}
h3 {
	font-size:1.42rem;
	line-height:1.1rem;
	margin: 0 0 1.0rem 0;
	}
#icon_container_services h3,
#video_unit h3 {
	font-size:1.1rem;
	line-height:1;
	margin: 0 0 15px 0;
	letter-spacing: 2px;
	}
h4 {
	font-size:0.95rem;
	line-height:1.1rem;
	text-transform: uppercase;
	margin: 0 0 1.0rem 0;
	}
p {
	font-size: 1.0rem;
	line-height: 1.5rem;
	display:block;
	margin: 0 0 16px 0;
	}
ul,
ol {
	display:block;
	margin-left:33px;
	margin-bottom:0.85rem;
	}
ul li, 
ol li {
	font-size: 1.0rem;
	line-height: 1.2em;
	margin-bottom:8px;
	}
div.entry_verbose ul,
div.entry_verbose ol {
	display:block;
	margin-left:33px;
	margin-bottom:26px;
	}

blockquote {
	display:block;
	box-sizing: border-box;
	width:100%;
	padding: 16px 20px 1px 20px;
	margin: 3px 0 24px -2px;
	border-radius: var(--button-radius);
	}	
em, 
i {
	font-style: italic;
	}
strong, 
b {
	font-weight:700;
	}

/* ---------------------------------------------------------------------- STRUCTURE --- */
div#pre_header {
	position:fixed;
	text-align: right;
	box-sizing:border-box;
	top:0px;
	left:0px;
	width:100%;
	height: 24px;
	padding: 5px 0 0 0;
	background-color:var(--kk9-medium-teal);
	color:var(--kk9-white);
	font-size: 0.7rem;
	z-index:8;
	}
div#header {
	position:fixed;
	box-sizing:border-box;
	top:24px;
	left:0px;
	width:100%;
	height: 53px;
	padding: 7px 0 0 0;
	background-color:var(--kk9-dark-green);
	z-index:10;
	}
div#logo {
	position: absolute;
	width:160px;
	height:160px;
	background:var(--kk9-white);
	box-shadow: 0px 0px 12px rgba(0,0,0,0.8);
	top:-37px;
	left: 50%;
	transform: translateX(-50%);
	border-radius: 50%;
	overflow:hidden;
	transition: width 1s, height 1s, top 2s, left 2s;
	}
div#ftr_logo {
	position:relative;
	width:130px;
	height:130px;
	top:auto;
	left:auto;
	margin:10px 30px 10px 0;
	background:var(--kk9-white);
	box-shadow: 0px 0px 12px rgba(0,0,0,0.8);
	border-radius: 50%;
	overflow:hidden;
	}

div#logo img,
div#ftr_logo img {
	width:100%;
	height:auto;
	transition: transform 0.3s;
	transform: rotate(-16deg);
	}
div#logo:hover img,
div#ftr_logo:hover img {
	transform: scale(0.98) rotate(-16deg);
	}
div#wrapper {
	width: 100%;
	/* max-width: 960px; */
	padding: 76px 0 0 0;
	position:relative;
	background-color: var(--kk9-page-color);
	}
div.container {
	box-sizing: border-box;
	width:100%;
	margin: 0 auto;
	}
div.content {
	box-sizing: border-box;
	width:100%;
	padding: 0;
	margin: 0 auto;
	z-index:1;
	transition: width .5s;
	}
div.ultra_float {
	position:relative;
	box-sizing: border-box;
	width:calc(100% - 120px);
	max-width: 3600px;
	margin:0 auto;
	transition: width 1s;
	}
div.slide_float {
	position:relative;
	box-sizing: border-box;
	width:calc(100% - 20px);
	max-width: 1760px;
	margin:0 auto;
	}
div.max_float {
	position:relative;
	box-sizing: border-box;
	width:calc(100% - 120px);
	max-width: 1600px;
	margin:0 auto;
	transition: width 1s;
	}
div.min_float {
	position:relative;
	box-sizing: border-box;
	width:calc(100% - 120px);
	max-width: 1000px;
	margin:0 auto;
	transition: width 1s;
	}
div.gutter_40 {
	padding-right:40px;
	padding-left:40px;
	}


div.post {
	}
div.entry_content,
div.entry_buttons {
	box-sizing:border-box;
	width: calc(100% - 60px);
	margin: 10px auto 0px auto;
	padding: 40px 40px 40px 40px;
	background: var(--kk9-entry-color);
	border-radius:  var(--main-radius)  var(--main-radius) 0 0;
	}
div.entry_buttons {
	box-sizing:border-box;
	width: calc(100% - 60px);
	margin: 0px auto 30px auto;
	padding: 0px 40px 40px 40px;
	background: var(--kk9-entry-color);
	border-radius: 0 0  var(--main-radius)  var(--main-radius);
	}
div.entry_content.standard {
	margin: 10px auto 60px auto;
	border-radius: var(--main-radius);
	background:transparent;
	padding-right: 0px;
	padding-left: 0px;
	}
div.entry_content.simple {
	margin: 10px auto 60px auto;
	border-radius: var(--main-radius);
	}
div.entry_body {
	width:80%;
	max-width:860px;
	}
div.standard div.entry_body {
	width:100%;
	max-width:100%;
	}
div.entry_icon {
	position: relative;
	width:40%;
	transition: width 1s;
	}
div.entry_icon img {
	position: relative;
	display:block;
	width:130%;
	height:auto;
	top:-190px;
	transition: top 1s;
	}


iframe#g_map {
	width:100%;
	min-height:400px;
	height: 60vh;
	}
table.pricing {
	margin: 0 0 20px 0;
	border:none;
	width:100%;
	}
table.pricing tr {
	background:#d1eeb6;
	}
table.pricing tr:nth-child(odd) {
	background:var(--kk9-page-color);
	}
table.pricing td {
	font-weight: 300;
	padding: 8px 12px;
	text-align: right;
	}
table.pricing td:first-child {
	text-align: left;
	}


/* ---------------------------------------------------------------------- BILLBOARD --- */
#billboard {
	position: absolute;
	top:0px;
	left:0px;
	width: 100%;
	aspect-ratio: 16/8;
	overflow: hidden;
	background: #000;
	}
.billboard_slide {
	position: absolute;
	top: 50px;
	left: 0;
	width: 100%;
	height:100%;
	opacity: 0;
	transition: opacity 1s ease-in-out;
	z-index: 0;
	}
.billboard_slide img {
	width:100%;
	height:100%;
	object-fit: cover;
	}
.billboard_slide.active {
	opacity: 1;
	z-index: 1;
	}
#billboard_buffer {
	margin-top:-76px;
	width: 100%;
	transition: height .5s ease-in-out;
	}
#billboard_headline {
	box-sizing:border-box;
	position: absolute;
	left:0px;
	bottom:0px;
	width:100%;
	background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.7) 100%);
	text-align:center;
	z-index: 2;
	padding: 40px 0 160px 0;
	}
#main_headline,
#sub_headline  {
	box-sizing:border-box;
	color:var(--kk9-white);
	line-height: 1;
	padding: 0 20px 10px 20px;
	text-shadow: 0 0 8px rgba(0,0,0,0.8);
	}
#main_headline  {
	font-size: 2.7rem;
	}
#sub_headline  {
	font-size: 1.2rem;
	text-transform:uppercase;
	}
div.entry_header_service {
	margin-bottom: 30px;
	}

/* -------------------------------------------------------------------------- ICONS --- */
div#icon_container {
	position:relative;
	box-sizing: border-box;
	text-align:center;
	width:100%;
	z-index: 2;
	padding: 0 0 60px 0;
	background: linear-gradient(to bottom, var(--kk9-white) 0%, var(--kk9-page-color) 100%);
	}
div#icon_container_services {
	position:relative;
	box-sizing: border-box;
	text-align:center;
	width:100%;
	z-index: 2;
	padding: 10px 0 60px 0;
	}
div#icon_content {
	position:relative;
	box-sizing: border-box;
	justify-content: center;
	width:calc(100% - 120px);
	max-width: 1600px;
	margin:0 auto;
	}
div#icon_container_services div#icon_content {
		position:relative;
		box-sizing: border-box;
		justify-content: center;
	width:calc(100% - 120px);
	max-width: 1200px;
		margin:0 auto;
	}


div#icon_container a {
	display:block;
	position:relative;
	text-align:center;
	width:calc(25% - (var(--icon-padding) * 2));
	padding: var(--icon-padding) var(--icon-padding) 0 var(--icon-padding);
	margin-top:-90px;
	}
div#icon_container_services a {
	display:block;
	position:relative;
	text-align:center;
	width:calc(25% - (var(--icon-padding) * 2));
	padding: var(--icon-padding) var(--icon-padding) 0 var(--icon-padding);
	margin-top:80px;
	}

div.service_title {
	background-color: var(--kk9-dark-green);
	color:var(--kk9-white);
	font-family: "kari", sans-serif;
	font-weight: 400;
	font-style: normal;
	padding: 15px 5px;
	font-size:1.0rem;
	line-height: 1;
	margin: 0 0 15px 0;
	border-radius: 0 0 var(--main-radius) var(--main-radius);
	}
div.service_icon {
	position:relative;
	aspect-ratio: 16/8;
	border-radius: var(--main-radius) var(--main-radius) 0 0;
	background: linear-gradient(to bottom, var(--kk9-bright-green) 0%, var(--kk9-bright-green) 50%, var(--kk9-bright-yellow) 100%);
	background-position: top;
	background-size: 100% 200%;
	transition: background-position 0.3s ease;
	}
div#icon_content a:hover div.service_icon {
	background-position: bottom;
	}


div.icon_float {
	position:absolute;
	bottom:1px;
	left: calc(-1 * var(--icon-padding));
	width:calc(100% + (var(--icon-padding) * 2));
	height:100%;
	}
div.icon_float img {
	display:block;
	position:absolute;
	left:0px;
	bottom:-23%;
	width:100%;
	height:auto;
	aspect-ratio:671/563;
	}

/* ----------------------------------------------------------------- HOMEPAGE CELLS --- */
div.one_home_excerpt {
	box-sizing: border-box;
	position: relative;
	width: calc(100% - 60px);
	margin: 0px 30px 40px 30px;
	border-radius: 24px;
	background: var(--kk9-entry-color);
	box-shadow: 0 0 15px rgba(0,0,0,0.3);
	overflow:hidden;
	}
div.standard div.one_home_excerpt {
	margin: 0px 0px 30px 0px;
	width:100%;
	min-height: 360px;
	}
div.one_home_excerpt:nth-of-type(even) {
	flex-direction: row-reverse;
	}

div.k9_thumbnail {
	box-sizing: border-box;	
	width:40%;
	aspect-ratio: 621/414;
	overflow:hidden;
	background: var(--kk9-dark-green);
	}
div.k9_thumbnail img {
	width:100%;
	height:100%;
	object-fit:cover;
	}
div.home_excerpt {
	box-sizing: border-box;	
	position: relative;
	width:60%;
	}
div.excerpt_float {
	padding: 35px 30px 40px 30px;
	}
div.home_excerpt p {
	line-height:1.3em;
	margin: 0 0 10px 0;
	}





/* -------------------------------------------------------------------------- VIDEO --- */
div#video_unit {
	background:black;
	padding: 40px 10px 60px 10px;
	text-align:center;
	}

div.video_swap {
	box-sizing: border-box;
	position: relative;
	width:100%;
	max-width:800px;
	height:auto;
	padding: 12px;
	background:var(--type-color-light);
	box-shadow: 0px 0px 10px rgba(0,0,0,0.5);
	margin: 0 auto 0 auto;
	cursor:pointer;
	}
div.v_play_button {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color:red;
	font-size: 2.0rem;
	line-height: 1em;
	transition: color .5s;
	z-index: 2;
	}
div.v_play_button i.fa-circle-play {
	color:#000;
	transition: color .5s;
	}
div.video_swap:hover div.v_play_button {
	color:#000;
	} 
div.video_swap:hover div.v_play_button i.fa-circle-play {
	color:white;
	}
div.video_swap img {
	display:block;
	width:100%;
	height:auto;
	opacity: 0.8;
	z-index: 1;
	border-radius:var(--button-radius);
	transition: opacity 1s;
	}
div.video_swap:hover img {
	opacity: 1.0;
	}
iframe.v_frame {
	display:block;
	width:100%;
	height:auto;
	background:#000;
	aspect-ratio: 100/42;
	border-radius:var(--button-radius);
	}
/* ----------------------------------------------------------------------- CALENDAR --- */
div.calendar {
	background:#c5e6ab;
	width:calc(33.32% - 14px);
	border-radius: 5px;
	margin: 7px;
	font-size: 14px;
	}
header {
	background: #146d6b;
	padding: 7px;
	margin: 0 0 3px 0;
	border-radius: 5px 5px 0 0;
	}
header h3 {
	font-size:1.2em;
	line-height:1;
	margin: 0 0 0 0;
	color:#fff;
	}
div.calendar ul, 
div.calendar ol {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	grid-gap: 3px;
	margin: 0 auto;
	max-width: 64em;
	padding: 0 5px 5px 5px;
	}
div.calendar ul li, 
div.calendar ol li {
	display: flex;
	align-items: center;
	justify-content: center;
	list-style: none;
	margin: 0px;
	font-size: 1em;
	line-height: 1;
	color:var(--kk9-black);
	border-radius: 4px;
	}
div.calendar ul.weekdays {
	margin-bottom: 0;
	}
div.calendar ul.weekdays li {
	height: auto;
	color:#000;
	}
div.calendar ol.day-grid li {
	max-height: 125px;
	padding: 4px 0 2px 0;
	}
div.calendar ol.day-grid li.peak_rate {
	background: #146d6b;
	color:#fff;
	}
div.calendar ul.weekdays abbr[title] {
	border: none;
	font-weight: 800;
	text-decoration: none;
	}
div.calendar ul.weekdays li {
	font-size: 0.8em;
	}
div.calendar ul.weekdays > li abbr:after {
	content: attr(title);
	font-size: 0.9em;
	text-align: center;
	}

/* --------------------------------------------------------------------- SLIDE SHOW --- */
div#slide_framework div {
	
	}
div#slide_framework {
	box-sizing:border-box; 
	width:100%;
	/* height: 527px; */
	height: auto;
	aspect-ratio: 2975/1350;
	margin:0px auto 40px auto; 
	overflow:hidden;
	}
div#slide_show {
	box-sizing: border-box;
	margin: 00px 0 10px 0;
	padding: 0;
	position: relative;
	}
div#slide_frame {
	width: 100%;
	height:400px;
	position: relative;
	overflow-x: hidden;
	transition: height .5s;
	}
div.slide_single {
	box-sizing: border-box;
	width: auto;
	position: absolute;
	width: 92%;
	width:calc(100% - 120px);
	aspect-ratio: 2450/1321;
	margin: 0 4%;
	margin: 0 60px;
	top: 0px;
	left: 0px;
	opacity: 1.0;
	transition: left 1s, opacity 1s, height .5s;
	z-index:10;
	}

div#slide_frame div.stage_left {
	opacity: 0.0;
	left: -77%;
	z-index:1;
	}
div#slide_frame div.stage_right {
	opacity: 0.0;
	left: 77%;
	z-index:1;
	}

div.one_slide {
	box-sizing: border-box;
	margin: 5px auto;
	transition: transform 1s;
	height: 100%;
	}
div.one_slide img {
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	}
div#slide_navigation {
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0px;
	left: 0px;
	padding: 0 0 0 0;
	z-index: 5;
	}
div.slide_single.stage_left div.one_slide,
div.slide_single.stage_right div.one_slide {
	transform: scale(0.90);
	}
div#previous_slide {
	margin: 0 0 0 20px;
	}
div#next_slide {
	margin: 0 20px 0 0;
	}
div.slide_nav {
	font-size:2.0rem;
	line-height: 1;
	display:inline-block;
	padding: 0 5px;
	cursor:pointer;
	transition: color .8s, opacity .8s;
	color: var(--kk9-medium-teal);
	}
div.slide_nav:hover {
	line-height: 1;
	display:inline-block;
	color: var(--kk9-bright-green);
	}
div.slide_nav.off,
div.slide_nav.off:hover {
	color: rgba(0,0,0,0.3);
	opacity:0.2;
	cursor:default;
	}


/* --------------------------------------------------------------------------- FAQs --- */

div.one_faq {
	box-sizing: border-box;	
	margin: 4px 0 18px 0;
	}
div.faq_title {
	box-sizing: border-box;	
	padding: 12px 10px 10px 14px;
	background: var(--kk9-page-color);
	border-radius: var(--main-radius);
	transition: background .3s;
	cursor:pointer;
	}
div.faq_title h3 {
	box-sizing: border-box;	
	font-family: "davis-sans", sans-serif;
	font-weight: 500;
	font-size: 1.1rem;
	line-height: 1;
	color: var(--kk9-dark-green);
	margin:0;
	margin: 0 0 0 20px;
	transition: color .3s;
	}
div.faq_title h3 i {
	display:inline-block;
	width: 20px;
	margin-left:-26px;
	}

div.faq_title:hover {
	background: var(--kk9-dark-green);
	}
div.faq_title:hover h3 {
	color: var(--kk9-white);
	}
div.one_faq div.faq_body {
	box-sizing: border-box;	
	padding: 15px 24px 24px 24px;
	max-height: 120rem;
	overflow:hidden;
	background:rgba(255,255,255,0.5);
	border-radius: 0 0 var(--main-radius) var(--main-radius);
	transition: padding .1s, max-height 2s;
	}
div.one_faq.closed div.faq_body {
	box-sizing: border-box;	
	padding: 0px 24px 0px 24px;
	max-height: 0px;
	transition: padding .1s, max-height 0.3s;
	}
div.faq_body p {
	margin-top:4px;
	margin-bottom:4px;
	}
div.faq_body img {
	box-sizing:border-box;
	display:block;
	width:100%;
	height:auto;
	margin: 20px 0 10px 0;
	box-shadow: 0px 0px 8px rgba(0,0,0,0.2);
	}
div.faq_body ul {
	margin-top:14px;
	margin-bottom:4px;
	margin-left:18px;
	}


div.map_container {
	
	}
div.map_container img {
	width:100%;
	height:auto;
	}

div.one_staff {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	}
div.staff_thumb {
	box-sizing: border-box;
	width:32%;
	aspect-ratio: 1/1;
	border-radius: 50%;
	overflow:hidden;
	border: 12px solid #fff;
	box-shadow: 0 0 20px rgba(0,0,0,0.3);
	margin-bottom: 15px;
	}
div.staff_thumb img {
	width:100%;
	height:100%;
	margin: 0;
	}
div.staff_verbose {
	width:66%;
	padding-bottom: 15px;
	}


/* --------------------------------------------------------------------------- FLEX --- */
div.flex_container {
	display: flex;
	}
div.flex_wrap {
	flex-wrap: wrap;
	}
div.flex_inverse_order {
	flex-direction: row-reverse;
	}
div.flex_align_v_center {
	align-items: center;
	}
div.flex_align_h_center {
	justify-content: center;
	}
div.flex_space_between {
	justify-content: space-between;
	}
div.flex_direction_column {
	flex-direction: column;
	}

.f_100 {
	width:100%;
	}
.f_80 {
	width:80%;
	}
.f_60 {
	width:60%;
	}
.f_40 {
	width:38%;
	}
.f_50 {
	width:50%;
	}
.f_49 {
	width:49%;
	}
.f_33 {
	width:33.332%;
	}
.f_20 {
	width:20%;
	}


/* ------------------------------------------------------------------------- MODALS --- */
div#res_modal_access {
	position:fixed;
	top:0px;
	left:0px;
	width: 100vw;
	height: 100vh;
	display: none;
	background-color:rgba(0,0,0,0.5);
	z-index: 22;
	backdrop-filter: blur(2px);
	}
div#res_modal_access.res_modal_open {
	display: block;
	}
div#modal_buttons {
	background:var(--kk9-dark-green);
	box-shadow: 0 0 8px rgba(0,0,0,0.5);
	padding: 50px;
	border-radius: var(--button-radius);
	}
div#modal_buttons hr {
	margin: 10px 0;
	}
div#modal_buttons a.button {
	min-width:180px;
	}
div#close_res_modal {
	position: absolute;
	top:10px;
	right:12px;
	line-height: 1em;
	color:var(--kk9-white);
	cursor:pointer;
	transition:color .3s;
	}
div#close_res_modal:hover {
	color:var(--kk9-bright-yellow);
	}

/* ------------------------------------------------------------------------ BROADLY --- */
div#front_page_review_container {
	padding: 60px 0;
	background:var(--kk9-medium-teal);
	}
div#stars {
	text-align: center;
	color:var(--kk9-bright-yellow);
	margin: 0 0 20px 0;
	font-size: 1.3rem;
	}
div#front_page_review_container h3 {
	text-align: center;
	color:var(--kk9-white);
	margin-bottom: 10px;
	}
div#broadly-reviews-container.front_page_reviews {
	}
div#broadly-reviews-container.front_page_reviews div.broadly-response-heading,
div#broadly-reviews-container.front_page_reviews div.broadly-response-body,
div#broadly-reviews-container.front_page_reviews div.broadly-review-via,
div#broadly-reviews-container.front_page_reviews div.broadly-clearfix,
div#broadly-reviews-container.front_page_reviews time {
	display:none;
	}
div#broadly-reviews-container.front_page_reviews div.broadly-reviews {
	box-sizing: border-box;
	display:flex;
	justify-content: space-between;
	flex-wrap: wrap;
	width:calc(100% - 60px);
	margin: 0 auto 0 auto;
	padding: 20px 0;
	}
div#broadly-reviews-container.front_page_reviews div.broadly-reviews div.broadly-review {
	background: var(--kk9-white);
	width: calc((100% / 4) - 16px);
	box-sizing: border-box;
	padding: 20px 20px 20px 20px !important;
	border-radius: var(--main-radius);
	}
div#broadly-reviews-container.front_page_reviews div.broadly-reviews div.broadly-review-heading {
	font-size: 0.8rem;
	}
div#broadly-reviews-container.front_page_reviews div.broadly-reviews div.broadly-review-body p {
	font-size: 0.9rem;
	line-height: 1.4em;
	}
div#broadly-reviews-container.front_page_reviews div.broadly-reviews div.broadly-review-body a {
	display:none;
	}


/* --------------------------------------------------------------------- NAVIGATION --- */
a#nav_toggle {
	box-sizing: border-box;
	display:block;
	z-index: 21;
	}
a#nav_toggle.button.menu_open {
	border-radius: var(--button-radius) var(--button-radius) 0 0;
	}
nav#access {
	box-sizing: border-box;
	position:fixed;
	top:0px;
	right:-100vw;
	width: 100vw;
	margin:0px;
	min-height: 1500px;
	z-index: -1;
	background-color:rgba(0,0,0,0.3);
	opacity:0;
	backdrop-filter: blur(2px);
	transition: opacity .5s;
	}
nav#access.visible_menu {
	right:0px;
	opacity:1.0;
	z-index: 20;
	}
div#menu {
	margin:0;
	padding:0;
	position:absolute;
	top:50px;
	right:0px;
	height: calc(100vh - 100px);
	overflow-y: auto;
	scroll-behavior: smooth;
	}
div#menu ul {
	list-style:none;
	margin:0;
	padding:0;
	}
li.menu-item a {
	box-sizing: border-box;
	display:block;
	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1;
	text-decoration:none;
	text-align:left;
	padding: 6px 15px 6px 15px;
	margin:0 0 0 0;
	width:auto;
	min-width: 180px;
	}
li#menu-item-10 a {
	border-radius: var(--button-radius) 0 0 0;
	}
li#menu-item-10 a,
li#menu-item-21 a,
li#menu-item-33 a,
li#menu-item-42 a {
	border-bottom: 1px dotted var(--kk9-bright-yellow);
	padding-bottom: 18px;
	}
li#menu-item-48 a {
	padding-bottom: 18px;
	}
li#menu-item-10 a,
li#menu-item-12 a,
li#menu-item-24 a,
li#menu-item-36 a,
li#menu-item-45 a {
	padding-top: 18px;
	}
li#menu-item-48 a {
	border-radius: 0 0 var(--button-radius) var(--button-radius);
	}

div#menu ul li {
	float:none;
	margin:0;
	}



/* ------------------------------------------------------------------------- FOOTER --- */
div#footer { 
	width:100%;
	box-sizing: border-box;
	background-color: var(--kk9-dark-green);
	color: var(--kk9-white);
	clear: both;
	padding: 40px 0 60px 0;
	}
div.footer_left { 
	width:auto;
	box-sizing: border-box;
	margin: 0 0 80px 0;
	}

div.footer_contact {
	font-size:0.8rem;
	line-height: 1.4em;
	margin: 0 0 15px 0;
	}
div.cc_footer {
	font-size:0.60rem;
	line-height:1.3em;
	margin: 0 0 60px 0;
	}
div#footer a,
div#footer .copyright a:hover,
div#pre_header a:hover  {
	color: var(--kk9-bright-yellow);
	}
div#footer a:hover,
div#footer .copyright a,
div#pre_header a {
	color: var(--kk9-white);
	}

/* ------------------------------------------------------------------------- SOCIAL --- */
div.social {
	font-size:1.7rem;
	line-height:1;
	}
div.social a {
	margin-right: 8px;
	}

/* ----------------------------------------------------------------- SEARCH RESULTS --- */
.search_result_blox {
	margin: 0 0 20px 0;
	background-color: rgba(194,194,194,0.5);
	}
div#nav_below {
	}
div#nav_below div {
	width:50%;
	background-color: rgba(194,194,194,0.5);
	float:left;
	}
div#nav_below div.nav_next {
	text-align: right;
	float:right;
	}

/* ------------------------------------------------------------- IMAGES / ALIGNENTS --- */
img.alignright {
	float:right;
	margin:3px 0 5px 14px;
	}
img.alignleft {
	float:left;
	margin:3px 14px 5px 0;
	}
img.aligncenter {
	display:block;
	margin:0 auto;
	text-align:center;
	width:100%;
	height:auto;
	}
.alignright {
	float:right;
	margin:3px 0 0 14px;
	text-align:right;
	}
.alignleft {
	float:left;
	margin:3px 14px 0 0;
	text-align:left;
	}
.aligncenter, .alignnone {
	display:block;
	margin:0 auto;
	text-align:center;
	margin-top:16px;
	margin-bottom:24px;
	width:100%;
	height:auto;
	border-radius: var(--button-radius);
	box-shadow: 0 0 12px rgba(0,0,0,0.2);
	}
.wp-caption p {
	font-size: 0.9rem;
	line-height:1.3rem;
	margin: 4px 0 0 0;
	text-transform:uppercase;
	}
div.wp-caption.aligncenter, 
div.wp-caption.alignnone {
	width:100% !important;
	max-width:100%;
	}

/* -------------------------------------------------------------------------- FORMS --- */
form.wpcf7-form {
	display:block;
	padding: 1rem 0 0.5rem 0;
	}
form.wpcf7-form p {
	margin: 0 0 0.5rem 0;
	}
.wpcf7-list-item {
	margin-left:0;
	}
div.label {
	padding: 0 0 0 0;
	padding: 0 0 0 0;
	}

input[type=text], 
input[type=email],
input[type=tel],
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	box-sizing: border-box;
	width:100%;
	padding:10px;	
	font-size: 1.0rem;
	line-height:1.0rem;
	border-radius:var(--main-radius);
	background-color:#fff;
	border: .5px solid rgba(0,0,0,0.5);
	margin: 0 0 10px 0;
	transition: all .3s;
	}
textarea {
	height:250px;
	transition: all .3s;
	}
input[type=radio] {
	box-sizing: border-box;
	height:20px;
	transition: all .3s;
	}
select {
	-webkit-appearance: none;
	-moz-appearance: none;
	box-sizing: border-box;
	width:100%;
	padding:8px;	
	font-size: 1.0rem;
	line-height:1.0em !important;
	border-radius:var(--main-radius);
	border: .5px solid rgba(0,0,0,0.5);
	background: url(images/select-pattern.png) #f0f0f0 no-repeat center right;
	transition: all .3s;
	}
input[type=text]:focus, 
input[type=email]:focus,
input[type=tel]:focus,
textarea:focus,
select:focus {
	border: .5px solid rgba(0,0,0,1.0);
	}
input[type=checkbox] {
	border: 1px solid rgba(25,23,17,.48);
	background: #fff;
	border-radius: 3px;
	box-sizing: border-box;
	font-size: 1rem;
	width: 1.3em;
	height: 1.3em;
	margin: -4px 6px 0 0;
	min-width: 1.3;
	min-height: 1.3em;
	position: relative;
	vertical-align: middle;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	}
input[type=checkbox]:checked {
	background: #000;
	}
input[type=checkbox]:checked::after {
	content: '\f00d'; /* fa-times (×) */
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	color: #fff;
	font-size: 1em;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
	}

/* -------------------------------------------------------------------- FORM ERRORS --- */
div.wpcf7 form div.wpcf7-response-output {
	display:block;
	box-sizing: border-box;
	margin: 0 0 40px 0;
	padding: 20px;
	float:none;
	clear:both;
	font-size: 1.0rem;
	border-radius:5px;
	border:1px solid #ebbc00;
	color:#da7726;
	background:#faeebd;
	}
input[type=text].wpcf7-not-valid, 
input[type=email].wpcf7-not-valid,
input[type=tel].wpcf7-not-valid,
textarea.wpcf7-not-valid,
select.wpcf7-not-valid {
	background:#faeebd;
	border:1px solid #ebbc00;
	}
span.wpcf7-not-valid-tip {
	text-align:right;
	color:#da7726;
	display:block;
	line-height: 1.0rem;
	margin-top:-8px;
	}

/* -------------------------------------------------------------------------- CRUFT --- */
.clr, 
.cld { 
	font-size: .1rem; 
	line-height: .1rem; 
	clear:both; 
	}
.d_hidden { 
	display: none; 
	}
.fixme { 
	color:darkred;
	background:#faeebd;
	}
div#edit {
	background:rgba(0,0,0,0.5);
	border-radius: 0 10px 10px 0;
	position: fixed;
	left:0;
	bottom:60px;
	padding: 10px 12px 10px 10px;
	z-index:30;
	}
div#edit a {
	font-size: 0.8rem;
	line-height:1;
	color:#fff;
	cursor:pointer;
	}

/* ------------------------------------------------------------------------------------ */
/* --------------------------------------------------------------------- RESPONSIVE --- */
div#viewport {
	position:fixed;
	z-index:999;
	right:0px;
	bottom:0px;
	display:flex;
	}
div#viewport div {
	background: #CCC;
	color:#fff;
	padding: 10px;
	opacity:0.7;
	}
div#viewport div {
	display:none;
	}
div#viewport div#vp_3600 {
	display:block;
	}

/* ----------------------------------------------------------------------------- < 3600 */
@media (max-width: 3600px) { 
div#viewport div { display:none; }
div#viewport div#vp_3600 { display:block; }
}

/* ----------------------------------------------------------------------------- < 2400 */
@media (max-width: 2400px) { 
div#viewport div#vp_3600 { display:none; }
div#viewport div#vp_2400 { display:block; opacity:0.9; }
}

/* ----------------------------------------------------------------------------- < 1600 */
@media (max-width: 1600px) { 
div#viewport div#vp_2400 { display:none; }
div#viewport div#vp_1600 { display:block; opacity:0.9; }
div.entry_icon {
	width:30%;
	}
}

/* ----------------------------------------------------------------------------- < 1400 */
@media (max-width: 1400px) { 
div#viewport div#vp_1600 { display:none; }
div#viewport div#vp_1400 { display:block; opacity:0.9; }
div.entry_icon img {
	top:-100px;
	}
}

/* ----------------------------------------------------------------------------- < 1200 */
@media (max-width: 1200px) { 
div#viewport div#vp_1400 { display:none; }
div#viewport div#vp_1200 { display:block; opacity:0.9; }
:root {
	--icon-padding: 10px; 
	}
div#broadly-reviews-container.front_page_reviews div.broadly-reviews div.broadly-review {
	width: calc((100% / 2) - 16px);
	}


}

/* ----------------------------------------------------------------------------- < 1000 */
@media (max-width: 1000px) { 
div#viewport div#vp_1200 { display:none; }
div#viewport div#vp_1000 { display:block; opacity:0.9; }
:root {
	--icon-padding: 5px;
	}
div.entry_icon img {
	top:-40px;
	}
div.ultra_float {
	width: calc(100% - 60px);
	}
div.min_float {
	width: calc(100% - 20px);
	}
div.max_float {
	width: calc(100% - 20px);
	}
div.entry_content, 
div.entry_buttons {
	width: calc(100% - 20px);
	padding: 40px 20px 40px 20px;
	}
div.one_home_excerpt a.button.min_width {
	min-width:10px;
	padding: 11px 10px 10px 10px;
	}
div.one_home_excerpt a.button.min_width.w_margin {
	margin-right: 8px;
	margin-left: 8px;
	}
div#icon_content {
	width: calc(100% - 60px);
	}
div#icon_container a {
	margin-top: -30px;
	}
#billboard_headline {
	padding: 40px 0 80px 0;
	}
#main_headline  {
	font-size: 2.2rem;
	}
#sub_headline  {
	font-size: 1.0rem;
	}
div.entry_header_service {
	margin: 0 auto 30px auto;
	padding: 0 40px;
	}
div#icon_container_services div#icon_content {
	width: calc(100% - 40px);
	}


}

/* -----------------------------------------------------------------  TABLETS  -- < 760 */
@media (max-width: 760px) { 
div#viewport div#vp_1000 { display:none; }
div#viewport div#vp_760 { display:block; opacity:0.9; }
#billboard {
	aspect-ratio: 16/11;
	}
div#ftr_logo {
	width: 110px;
	height: 110px;
	}
div.ultra_float {
	width: calc(100% - 30px);
	}
div.one_home_excerpt,
div.one_home_excerpt:nth-of-type(2n) {
	flex-direction: column;
	}
div.k9_thumbnail,
div.home_excerpt {
	width: 100%;
	}
div.excerpt_float {
	padding: 20px 30px 20px 30px;
	}
div#facility_container {
	flex-direction: column-reverse;
	}
div#facility_container div.f_40,
div#facility_container div.f_60 {
	width:100%;
	}
div.map_container {
	margin: 0 0 15px 0;
	}
div.one_home_excerpt {
	width: calc(100% - 20px);
	margin: 0px 10px 30px 10px;
	}
div#icon_content {
	width: calc(100% - 20px);
	}
div#icon_container a {
	width: calc(50% - (var(--icon-padding) * 2));
	}
div#icon_container a {
	margin-top: 40px;
	}
#icon_container a:nth-of-type(1),
#icon_container a:nth-of-type(2) {
	margin-bottom: 80px;
	}

div#broadly-reviews-container.front_page_reviews div.broadly-reviews div.broadly-review {
	width: calc((100% / 1) - 16px);
	}
#billboard_headline {
	padding: 40px 0 30px 0;
	}
#main_headline  {
	font-size: 2.0rem;
	}
#sub_headline  {
	font-size: 0.9rem;
	}
div#service_entry_content.entry_content {
	flex-wrap:wrap;
	flex-direction: column-reverse;
	}
div#service_entry_content.entry_content div.entry_body {
	width:100%;
	}
div#service_entry_content.entry_content div.entry_icon {
	top:-30px;
	width:300px;
	margin: 0 auto;
	}
div#service_entry_content.entry_content div.entry_icon img {
	width:100%;
	top:0px;
	}
div#icon_container_services a {
	width: calc(33.332% - (var(--icon-padding) * 2));
	margin-top: 50px;
	}
}

/* ------------------------------------------------------------------------------ < 600 */
@media (max-width: 600px) { 
div#viewport div#vp_760 { display:none; }
div#viewport div#vp_600 { display:block; opacity:0.9; }
.d_hidden { 
	display: inline; 
	}
.m_hidden { 
	display: none; 
	}
#billboard {
	aspect-ratio: 16/14;
	}
div#ftr_logo {
	margin:5px auto 30px auto;
	}
div.footer_left {
	text-align: center;
	margin:0px auto 50px auto;
	}
div#contact_block {
	width:100%;
	}
div.cc_footer {
	text-align: center;
	margin:0px auto 80px auto;
	}
div.min_float {
	width: calc(100% - 20px);
	}
div.entry_content, 
div.entry_buttons {
	width: 100%;
	padding: 5px 10px 20px 10px;
	}
div#ftr_logo {
	width: 100px;
	height: 100px;
	}
div.ultra_float {
	width: calc(100% - 20px);
	}
div#logo {
	width: 120px;
	height: 120px;
	left: 15px;
	transform: translateX(0%);
	}
body.compact_header div#logo {
	width:110px;
	height:110px;
	}
div#header div.ultra_float.flex_space_between {
	justify-content: flex-end;
	}
div#header div.ultra_float.flex_space_between a#nav_toggle {
	margin-left:10px;
	}
div.excerpt_float {
	padding: 20px 20px 10px 20px;
	}
.home div.excerpt_float {
	padding: 20px 20px 30px 20px;
	}
div.one_staff {
	flex-direction: column;
	}
div.staff_thumb {
	margin: 0 auto 10px auto;
	width: 260px;
	height: 260px;
	}
div.staff_verbose {
	width: 100%;
	}
#billboard_headline {
	padding: 10px 0 15px 0;
	}
#main_headline  {
	font-size: 2.0rem;
	}
#sub_headline  {
	font-size: 0.9rem;
	}
div#icon_container a {
	margin-top: 40px;
	}
#icon_container a:nth-of-type(1),
#icon_container a:nth-of-type(2) {
	margin-bottom: 50px;
	}
div#previous_slide {
	margin: 0 0 0 10px;
	}
div#next_slide {
	margin: 0 10px 0 0;
	}
div.slide_nav {
	font-size:1.3rem;
	}
div.slide_single {
	box-sizing: border-box;
	width: auto;
	position: absolute;
	width: 92%;
	width:calc(100% - 80px);
	aspect-ratio: 2450/1321;
	margin: 0 4%;
	margin: 0 40px;
	top: 0px;
	left: 0px;
	opacity: 1.0;
	transition: left 1s, opacity 1s, height .5s;
	z-index:10;
	}
div.entry_header_service {
	margin: 0 auto 30px auto;
	padding: 0 10px;
	text-align:center;
	}
h1 {
	font-size: 2.3rem;
	}
h2 {
	font-size: 1.4em;
	}
div#service_entry_content.entry_content div.entry_icon {
	top:-10px;
	width:250px;
	margin: 0 auto;
	}
div#slide_framework {
	margin: 0px auto 30px auto;
	}
a.button.h_margin {
	margin-bottom: 15px;
	}
 div#icon_container_services a {
	width: calc(50% - (var(--icon-padding) * 2));
	margin-top: 50px;
	}
div.calendar {
	width: calc(50% - 14px);
	}
}

/* ------------------------------------------------------------------  PHONES  -- < 430 */
@media (max-width: 430px) { 
div#viewport div#vp_600 { display:none; }
div#viewport div#vp_430 { display:block; opacity:0.9; }
#billboard {
	aspect-ratio: 16/16;
	}
div#icon_container a {
	margin-top: 40px;
	}
#icon_container a:nth-of-type(1),
#icon_container a:nth-of-type(2) {
	margin-bottom: 30px;
	}
h1 {
	font-size: 2.0rem;
	}
h2 {
	font-size: 1.3em;
	}
div#service_entry_content.entry_content div.entry_icon {
	top:-10px;
	width:220px;
	margin: 0 auto;
	}
div#slide_framework {
	margin: 0px auto 20px auto;
	}

}





