/*!
Theme Name: naantalinvenemessut
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
*/


/*** UNIVERSAL ***/
* {
    box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
    margin: 0;     
    background:var(--white);
    opacity: 0;
    font-family: "Open Sans", sans-serif;
}
.open-body {
    overflow-x: hidden;
}
img {
    display: block;
}
a:focus, button:focus, input:focus {
	outline:none;
}
:root {
    --black: #333333;
    --white: #ffffff;
    --light: #f5f6f8;
    --grey: #5b5b5b;
    --blue: #00ccff;    
    --medium-blue: #02b6e3;
    --dark-blue: #002e47;
    --max-width:1140px;
}
p, li {
    font-size: 14px;
    line-height: 1.6;
    font-weight: 400;
}
p strong {
    color:var(--black);
}
h1 {
    font-size: 48px;
    line-height: 1.2; 
    margin-top:0;
}
h2 {
    font-size: 40px;
    line-height: 1.2;
    margin-top: 40px;
}
h3 {
    font-size:32px;
    line-height: 1.2;
}
h4 {
    font-size: 20px;
    line-height: 1.2;
    font-weight: 600;
}
h5 {
    font-size: 18px;
    line-height: 1.2;
    font-weight: 600;
}
h6 {
    font-size: 13px;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--blue) !important;
    font-weight: 800;
    margin:0;
}
.post, .page {
	margin:0;
}

/*** HEADER ***/
#headercontainer {
	position: relative;
	background:var(--white);
	top: 0;
	width:100%;
	max-width: 100%;
	z-index: 9999;
    box-shadow: 0 5px 10px 0 rgba(50, 50, 50, 0.06);
	transition: 0.2s all ease-in-out;
}
.site-header {	
	position: relative;
	height:104px;
	max-width: var(--max-width);
	margin: 0 auto;
	transition: 0.2s all ease-in-out;
}
.site-title {
    position: absolute;
    top: 50%;
    left: 20px;
    transform: translateY(-50%);    
}
.site-title a {
    position: relative;
}


/*** TOP HEADER ***/
.site-top-header {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 28px;
    height: 42px;
}
.site-top-header .flex-container {
    height: 42px;
}
.language-selector img {
    max-width: 20px;
    margin-left: 4px;
    display: inline-block;
}

/*** BANNER ***/
.banner-container {
	height:60vh;
	min-height: 600px;
	position: relative;
	overflow: hidden;
}
.banner-cell {
    position: relative;
    width: 100%;
}
.banner-cell-content {
    position: absolute;
    top: 50%;
    left: 50%;
    padding:0 40px;
    max-width: var(--max-width);
    width:100%;
    transform: translate(-50%,-50%);
    z-index: 1;
}
.banner-cell-content h1, .banner-cell-content h2 {
	color:var(--white);
	margin-bottom: 40px;
	max-width: 600px;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    font-size: 46px;
    font-weight: 800;
    text-transform: uppercase;
    font-style: italic;
}
.banner-cell-content p {
    color: var(--white);
    max-width: 600px;
    margin-bottom: 40px;
    font-size: 24px;
}
.banner-cell-image img {
	height:60vh;
	min-height: 600px;
	width:100%;	
	object-fit: cover;
	object-position: center 50%;
}
.image-overlay {
	position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgb(3 59 89 / 60%), rgb(3 59 89 / 60%));
}
ol.flickity-page-dots {
    bottom: 30px;
}
.flickity-page-dots .dot {
    background:var(--white);
    height: 16px;
    width: 16px;
}
.flickity-page-dots .dot.is-selected {
    background:var(--blue);
}
pre {
    display: inline-block;
}
a.cta, pre a {
    display: inline-block;
    margin-top:20px;
    background: var(--blue);
    color: var(--black) !important;
    border-radius: 20px;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    transition: 0.3s all ease-in-out; 
    font-family: "Open Sans", sans-serif;
}
a.cta:hover, pre a:hover {
    filter: brightness(1.15);
}
a.current-link {
    background: var(--black);
    color: var(--blue) !important;
}

/*** MAIN MENU ***/
.main-navigation {
    position: absolute;
    right: 0;
    top:50%;
    transform: translateY(-50%);
}
.main-navigation ul {
    padding-left: 0;
}
.main-navigation ul li {
    list-style-type: none;
    display: inline-block;
    position: relative;
    margin: 0;
}
.main-navigation ul li a {
    position: relative;
    color: var(--black);
    padding: 20px 12px;
    font-size: 12px;
    text-decoration: none;
    border-radius: 16px;
    font-weight: 400;
    text-transform: uppercase;
    z-index: 2;
    transition: 0.3s all ease-in-out;
}
.main-navigation ul li a:hover {
    color:var(--blue);
}
.main-navigation ul ul {
    position: absolute;
    width: 260px;
    left: -15px;
    top: 60px;
    opacity: 0;
    background:var(--white);
    visibility: hidden;
    transition: 0.3s all ease-in-out;
    padding:20px;
}
.main-navigation ul ul li {
    margin: 0;
    margin-bottom: 4px;
    width: 100%;
    z-index:1;
}
.main-navigation ul li li:last-of-type {
	margin-bottom: 0;
}
.main-navigation ul ul li a {
    display: block;
    width: 100%;
    padding: 6px;
    color: var(--black)
}
.main-navigation ul ul ul {
    left: 240px;
    top: -20px !important;
}
.main-navigation .menu-item-has-children:hover > ul {
    opacity: 1;
    visibility: visible;
    top: 60px;
}
.main-navigation .menu-item-has-children:after {
    content: '';
    height: 40px;
    position: absolute;
    left: 0;
    bottom: -40px;
    width: 100%;
}
.current-menu-item.menu-item-has-children ul li a {
    color: var(--black) !important;
}
.current-menu-item.menu-item-has-children ul li a:hover {
    color: var(--blue) !important;
}


/*** MOBILE MENU ***/
.mobile-menu {  
	display: none;
    position: absolute;
    left:calc(50% + 160px);
    top:50%;
    transform: translate(-50%,-50%);
    z-index: 102;
    transition: all 300ms ease-in-out;
}
#nav-icon {
    width: 24px;
    height: 18px;
    position: relative;
    z-index: 100; 
    transform: rotate(0deg);
    transition: .5s ease-in-out;
  	cursor: pointer;
}
#nav-icon span {
    display: block;
    position: absolute;
    height: 3px;
    width: 24px;
    background: var(--black);
    opacity: 1;
    left: 0;
    transform: rotate(0deg);
    transition: .25s ease-in-out;
}
#nav-icon span:nth-child(1) {
    top: 0px;
}
#nav-icon span:nth-child(2),#nav-icon span:nth-child(3) {
    top: 8px;
}
#nav-icon span:nth-child(4) {
    top: 16px;
}
#nav-icon.open span:nth-child(1) {
    top: 14px;
    width: 0%;
    left: 50%;
}
#nav-icon.open span:nth-child(2) {
    transform: rotate(45deg);
}
#nav-icon.open span:nth-child(3) {
    transform: rotate(-45deg);
}
#nav-icon.open span:nth-child(4) {
    top: 14px;
    width: 0%;
    left: 50%;
}

/*** SIDENAV ***/
.overlay {
    background: var(--white);
    width:100%;    
    position: absolute;
    z-index: 10000;
    top: 146px;
    left:0;
    visibility: hidden;
    opacity: 0; 
    text-align: center;
}
.overlay ul {
    padding:0;
    margin:0;
}
.overlay ul li {
    position: relative;
    margin:0;
    cursor:pointer;
    list-style-type: none;
    border-bottom: solid 1px rgba(0,0,0,0.1);
}
.overlay ul li:first-of-type {
    border-top: solid 1px rgba(0,0,0,0.1);
}
.overlay ul li a {
    display: inline-block;
    position: relative;
    color: var(--black);
    padding: 12px 20px;
    font-size: 14px;
    text-decoration: none;
    text-transform: uppercase;
    z-index: 2;
    transition: 0.15s all ease-in-out;
}
.overlay ul li a:hover {
    color:var(--blue) !important;
}
.overlay ul ul li {
    border-bottom: none;
}
.overlay ul ul li a {
    font-size: 12px;    
}
.overlay ul ul ul li {
    border: none !important;
}
.overlay ul ul ul li a {
    font-size: 10px;    
}
.overlay ul.menu li.menu-item-has-children:after {
    content: '+';
    position: absolute;
    right: 40px;
    font-size: 24px;
    top: 6px;
    transition: 0.2s all ease-in-out;
}
.open-menu {
	visibility: visible;
    opacity: 1;
}


/*** CONTENT ***/
.white-container {
    position: relative;
	background:var(--white);
}
.white-container :is(h1, h2, h3, h4, h5, h6) {
  color: var(--black);
}
.white-container p, .white-container li {
	color:var(--black);
}
.white-container p a {
	color:var(--blue);
	text-decoration: none;
}
.white-container li a {
    color: var(--black);
    font-weight: 600;
    text-decoration: none;
}
.white-container p a:hover, .white-container li a:hover {
    color:var(--black);
    text-decoration: none;
}
.white-container a {
    color:var(--blue);
    text-decoration: none;
}
.black-container {
    position: relative;
    background:var(--black);
}
.light-container {
    position: relative;
    background:var(--light);
}
.light-container p, .light-container li {
    color:var(--black);
}
.light-container :is(h1, h2, h3, h4, h5, h6) {
  color: var(--black);
}
.light-container p a {
    color:var(--blue);
    text-decoration: none;
}
.light-container li a {
    color: var(--black);
    font-weight: 600;
    text-decoration: none;
}
.light-container p a:hover, .light-container li a:hover {
    color:var(--black);
    text-decoration: none;
}
.site-content {
    width:100%;
    max-width: var(--max-width);
    margin:0 auto;
    padding:80px 40px;
    position: relative;
}
.padding-top-80 {
    padding-top: 80px;
}
.padding-top-60 {
    padding-top: 60px;
}
.padding-top-40 {
    padding-top: 40px;
}
.padding-top-20 {
    padding-top: 20px;
}
.padding-bottom-80 {
    padding-bottom: 80px;
}
.padding-bottom-60 {
    padding-bottom: 60px;
}
.padding-bottom-40 {
    padding-bottom: 40px;
}
.padding-bottom-20 {
    padding-bottom: 20px;
}
.site-content ul, .site-content ol {
	padding-left: 20px;
}
.site-content ul li, .site-content ol li {
    margin-bottom: 12px;
}
.border-top-yes {
    border-top: solid 1px var(--blue);
}
.border-bottom-yes {
    border-bottom: solid 1px var(--blue);
}
.flex-container {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.flex-container img {
	width:100%;
}
.flex-start {
	justify-content: start;
}
.flex-center {
    justify-content: center;
}
.flex-end {
	justify-content: end;
}
.align-start {
    align-items: start;
}
.align-center {
    align-items: center;
}
.align-end {
    align-items: end;
}
.center {
    text-align: center;
    max-width: 991px;
    margin:0 auto;
}
.flex-100 {
    width:100%;
}
.flex-60 {
	width:calc(60% - 10px);
	position: relative;
}
.flex-50 {
    width:calc(50% - 10px);
    position: relative;
}
.flex-40 {
	width:calc(40% - 10px);
	position: relative;
}
.flex-33 {
    width:calc(33.33% - 20px);
    position: relative;
}
.flex-25 {
    width:calc(25% - 10px);
    position: relative;
}
.flex-box-text {
    padding: 40px;
}
.flex-box-text :is(h1, h2, h3, h4, h5, h6) {
    margin-top: 0;
    margin-bottom: 0;
}
.white-container .flex-box-text {
    background: var(--light);
}
.light-container .flex-box-text {
    background: var(--white);
}
.flex-box-icon {
    margin-bottom: 40px;
}
.flex-box-icon img {
    width:160px;
    max-height: 160px;
    object-fit: contain;
}
.flex-50-50 .flex-text {
    width: 50%;
}
.flex-66-33 .flex-text:nth-of-type(1) {
    width: calc(33.33% - 20px);
}
.flex-66-33 .flex-text:nth-of-type(2) {
    width: calc(66.66% - 20px);
}
.flex-33-66 .flex-text:nth-of-type(1) {
    width: calc(66.66% - 20px);
}
.flex-3-66 .flex-text:nth-of-type(2) {
    width: calc(33.33% - 20px);
}
.flex-50-50 .aligncenter {
    max-width: 320px;
    margin: 0 auto;
}


/*** SERVICES ***/
.service {
    background: var(--white);
	margin-bottom: 40px;
}
.service-image img {
    height: 240px;
    min-height: unset;
    object-fit: cover;
}
.service-content {
    padding: 20px 0;
}
.service-content :is(h2, h3, h4) {
    margin-top: 0;
    margin-bottom: 20px;
}

.flex-100.service-box {
    margin-bottom: 40px;
}
.flex-100.service-box:last-of-type {
    margin-bottom: 0;
}

/*** FULL WIDTH MEDIA ***/
.full-width-media img {
    width:100%;
    max-height: 500px;
    object-fit: cover;
}

/*** GALLERIA ***/
.gallery :is(h1, h2, h3, h4, h5, h6) {
    margin:0;
}
.flex-box-container {
    gap: 16px;
}
.gallery-image {
    width: calc(25% - 12px);
}
.gallery-image img {
    aspect-ratio: 1;
    max-height: 180px;
    object-fit: cover;
    transition: 0.2s opacity ease-in-out;
}
.gallery-image img:hover {
    opacity: 0.6;
}

/*** TABLES ***/
.tablepress {
    table-layout: fixed !important;
    width: 100%;
}
.tablepress td {
    width: 33.33%;
    padding: 14px !important;
    vertical-align: middle !important;
}
.tablepress img {
    width:100% !important;
    max-width: 350px !important;
    max-height: 350px;
    object-fit: contain;
}
figure {
    width: 100% !important;
}
figcaption {
    font-size: 13px;
    margin-top: 10px;
}
#table-filter-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap:2px;
    margin-bottom: 40px;
}
#table-filter-buttons button {
    display: inline-block;
    background: var(--blue);
    color: var(--black) !important;
    border-radius: 20px;
    padding: 10px 20px;
    min-width: 53px;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    transition: 0.3s all ease-in-out;
    font-family: "Open Sans", sans-serif;
    border: 0;
    cursor: pointer;
}

/*** WPFORMS ***/
ul#wpforms-509-field_12 {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.wpforms-container .wpforms-field, .wp-core-ui div.wpforms-container .wpforms-field {
    padding: 14px 0 0 0 !important;
}
label.wpforms-field-label {
    margin-bottom: 4px !important;
    font-size: 14px !important;
}
label.wpforms-field-label-inline {
    font-weight: bold !important;
    font-size: 14px !important;
}
.wpforms-field-large {
    height: 50px !important;
    border: none !important;
    background: var(--white) !important;
    color: var(--black) !important;
    font-size: 14px !important;
    padding-left: 30px !important;
}
.wpforms-submit {
    margin-top:20px !important;
	height: 39px !important;
	color:var(--black) !important;
    background: var(--blue) !important;
    border:none !important;
    border-radius: 40px !important;
    padding: 10px 20px !important;
    font-size: 14px !important;
    font-weight: bold !important;
    transition: 0.3s all ease-in-out !important;
    font-family: "Open Sans", sans-serif !important;
}
.wpforms-submit:hover {
    filter: brightness(1.15); !important;
}

/*** MAP ***/
iframe {
    display: block;
    width:100%;
}

/*** ACCORDION ***/
.accordion {
    margin-bottom: 20px;
}
.accordion-item {
    position: relative;
    overflow: hidden;
    transition: 0.2s all ease-in-out;
    cursor: pointer;
    padding: 0 20px;
    margin-bottom: 10px;
}
.white-container .accordion-item {
    background: var(--light);
}
.light-container .accordion-item {
    background: var(--white);
}
.accordion-item:hover {
    opacity: 0.9;
}
.accordion-title h5 {
    margin: 24px 0 24px 0;
    padding-bottom: 0;
}
.accordion-item::after {
    content: '+';
    position: absolute;
    top: 36px;
    right: 30px;
    transform: translateY(-50%);
    font-size: 32px;
    line-height: 0;
    transition: 0.2s all ease-in-out;
    border-radius: 50px;
}
.accordion-content {
    padding: 0px 40px 20px 0;
    display: none;
}
.accordion-content p {
    margin-top: 0;
}
.accordion-item.active::after {
    content: '+';
    transform: rotate(135deg);
}
.accordion-content ul {
    margin-top:0;
}

/*** FOOTERCONTAINER ***/
#footercontainer {
    background:linear-gradient(rgba(255,255,255,0.9), rgba(255,255,255,0.9)), url('https://naantalinvenemessut.fi/wp-content/uploads/2025/09/footer-image.jpg') no-repeat;
    background-size: cover;
    background-position: top center;
}
#footercontainer .site-content {
    max-width: 880px;
}
.top-footer {
    border-bottom: solid 1px var(--blue);
    margin-bottom: 20px;
    padding-bottom: 50px;
}
.top-footer img {
    max-width: 200px;
}
.bottom-footer {
    text-align: right;
    margin-top:40px;
}
#footercontainer h4 {
	color:var(--blue);
}
#footercontainer ul {
	padding:0;
	margin:0 0 20px 0;
}
#footercontainer ul li {
    list-style-type: none;
    color:var(--grey);
    margin-bottom: 0;
}
#footercontainer a {
	text-decoration: none;
    color:var(--blue);
    transition: 0.3s all ease-in-out;
}

/*** MEDIA QUERIES ***/
@media(max-width:1300px){
    .main-navigation {
        display: none;
    }
    .mobile-menu {
        display: block;
    }
    .site-title {
        left:50%;
        transform: translate(-50%,-50%);
    }
    h1 {
        font-size: 56px;
    }
    h2 {
        font-size: 36px;   
    }
    h3 {
        font-size: 22px;
    }
    .page-template-sub-page .banner-content, .page-template-services .banner-content {         
        bottom: 100px;
    }
}

@media(max-width:991px){
    h1 {
        font-size: 48px;
    }
    h2 {
        font-size: 32px;  
    }
    h3 {
        font-size: 20px;
    }
    p, li {
        font-size: 16px;
    }
    a.cta, pre a {
        font-size: 16px;        
    }   
    .gallery-image {
        width: calc(33.33% - 11px);
    }
    .flex-33 {
        width: calc(50% - 10px);     
    }
}

@media(max-width:768px){
    h1 {
        font-size: 42px;
    }
    h2 {
        font-size: 30px; 
    }
    h3 {
        font-size: 20px;
    }	
    .header-cta {
        display: none;
    }
    .flex-50 {
        width: 100%;
    }
    .flex-50:first-of-type {
        margin-bottom: 20px;
    }
    .gallery-image img {     
        max-height: 120px;
    }
    .flex-33 {
        width: 100%; 
        margin-bottom: 20px;
    }
    .flex-33:last-of-type {        
        margin-bottom: 0;
    }
    .banner-container {
        min-height: 500px;     
    }
    .banner-cell-image img {     
        min-height: 500px;
    }
}

@media(max-width:520px){
    h1 {
        font-size: 30px;
    }
    h2 {
        font-size: 26px;  
    }
    h3 {
        font-size: 18px;
    }   
    h4 {
        font-size: 18px;
    }	 
    p, li {
        font-size: 14px;
    }
    a.cta, pre a {
        font-size: 14px;        
    }
    .overlay-content {
        padding:30px;
    }
    .overlay ul ul li a {
        font-size: 15px;
    }   
    .site-content {     
        padding-left: 30px;
        padding-right: 30px;
    }
    .padding-top-80 {
        padding-top: 40px;
    }
    .padding-top-60 {
        padding-top: 30px;
    }
    .padding-top-40 {
        padding-top: 20px;
    }
    .padding-bottom-80 {
        padding-bottom: 40px;
    }
    .padding-bottom-60 {
        padding-bottom: 30px;
    }
    .padding-bottom-40 {
        padding-bottom: 20px;
    }
    .flex-box-text {
        padding: 30px;
    }
    .banner-cell-content {
        padding:0 30px;
    }
    .banner-cell-content h1, .banner-cell-content h2 {
        font-size: 38px;
    }
    .banner-cell-content p {     
        font-size: 20px;
    }
    .gallery-image {
        width: calc(50% - 8px);
    }
    a.cta, pre a {
        padding:8px 14px;
    }
    .tablepress td {
        font-size: 13px;
    }
}

@media(max-width:420px){
    .overlay-content {
        padding:20px;
    }
    .site-content {     
        padding-left: 20px;
        padding-right: 20px;
    }
    .flex-box-text {
        padding: 20px;
    }
    .banner-cell-content {
        padding:0 20px;
    }
    .banner-cell-content h1 , .banner-cell-content h2 {
        font-size: 34px;
    }
}