/*
Theme Name:   Somentra Child
Theme URI:    https://themeforest.net/user/greatives
Description:  Somentra Child Theme
Version:      2.1.0
Author:       Greatives Team
Author URI:   https://greatives.eu
Template:     impeka
*/

/* ==========================================
=! globals / vars
------------------------------------------ */

:root {
  /* framework */
  --ws-grve-container: 1440px;
  --radius-default: 30px;

  --cnr-br-radius: var(--radius-default) var(--radius-default) 0
    var(--radius-default);
  --cnr-bl-radius: var(--radius-default) var(--radius-default)
    var(--radius-default) 0;
  --cnr-tr-radius: var(--radius-default) 0 var(--radius-default)
    var(--radius-default);
  --cnr-tl-radius: 0 var(--radius-default) var(--radius-default)
    var(--radius-default);
  --bl-br-radius: 0 0 var(--radius-default) var(--radius-default);
  --tl-tr-radius: var(--radius-default) var(--radius-default) 0 0;
  --filter-white: brightness(0) saturate(100%) invert(99%) sepia(3%)
    saturate(9%) hue-rotate(188deg) brightness(104%) contrast(100%);
  --filter-red: brightness(0) saturate(100%) invert(15%) sepia(76%)
    saturate(5355%) hue-rotate(348deg) brightness(97%) contrast(91%);
  --filter-grey: brightness(0) saturate(100%) invert(94%) sepia(17%)
    saturate(34%) hue-rotate(200deg) brightness(95%) contrast(90%);
}

body.grve-header-is-sticky.grve-header-overlapping.logged-in
  #grve-main-header.grve-sticky-ready:not(.grve-header-below) {
  top: 32px !important;
}

/*  override grve default word break */
* {
	word-break: normal;
	word-wrap: normal;
}

/* ==========================================
=! structure
------------------------------------------ */

.ws-row-wrapper {
  /*max-width: var(--ws-grve-container);*/
  max-width: 1150px;
  width: calc(100% - 10.5rem);
  margin-inline: auto;
}

.ws-row-wrapper-full {
  width: 100%;

  & .grve-column-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* ==========================================
=! header
------------------------------------------ */

.grve-header-text-element img {
  max-height: 110px;
  width: auto;
}

.grve-header-row,
#grve-header .grve-left-area,
#grve-header .grve-right-area {
  flex-flow: row;
}

.grve-header-row {
  background: #fff;
  border-radius: var(--bl-br-radius);
  box-shadow: -2px 2px 45px -20px rgba(0, 0, 0, 0.5);

  & .grve-left-area {
    flex-basis: 25%;
  }
  & .grve-right-area {
    flex-basis: 75%;
  }
}

/* ==========================================
=! footer
------------------------------------------ */

#grve-footer .grve-container {
  width: 100% !important;
}

.grve-footer-bar {
  padding-top: 5px !important;
  padding-bottom: 60px !important;
}

.grve-footer-row {
  background: #fff;
  border-radius: var(--bl-br-radius);
  flex-wrap: nowrap;
  padding: 10px 2em;

  & .grve-footer-column {
    flex-basis: 50%;
    padding-inline: 0 !important;
  }
  & .grve-footer-column:last-child {
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }
  & img {
    max-height: 90px;
    width: auto;
  }
}

.mobile-sticky-bar {
    display: none;
}


/* ==========================================
=! phone cta
------------------------------------------ */

.phone-cta {
  display: flex;
  flex-flow: row;
  align-items: center;
  gap: 10px;

  &::before {
    background: url(https://dev.arriveontime.com.au/wp-content/uploads/2026/04/ico-phone.svg)
      no-repeat;
    content: "";
    width: 34px;
    height: 40px;
  }
}

/* ==========================================
=! spacing
------------------------------------------ */

.flex-height {
  margin-top: auto;
}
.no-padding-inline {
  padding-inline: 0 !important;
}

/* ==========================================
=! page banner + form
------------------------------------------ */

.page-banner {
  & .banner-col-left .grve-column-inner-content {
    justify-content: space-around;
    height: 100% !important;
    display: flex;
    flex-direction: column;
  }

  & .grve-title,
  & .grve-subtitle-text {
    max-width: 720px;
    margin-inline: auto;
  }
}

.page-banner-title strong {
  font-weight: 600 !important;
  color: #fff;
}

.form-cta {
  max-width:580px;
  max-height:800px;
  padding-right: 0 !important;

  & .grve-column-wrapper-inner {
    background: #fff;
    border-radius: 20px;
    padding: 20px;
  }
}

.row-call-cta {
  background: url(https://dev.arriveontime.com.au/wp-content/uploads/2026/04/call-ato.png)
    no-repeat right bottom var(--wp--preset--color--primary-2);
  background-size: 65%;
  margin-left: -20px;
  margin-right: -20px;
  padding: 30px;
  height: 230px;
  color: #fff;
  display: flex;
  align-items: center;

  & a,
  h2 {
    color: #fff;
  }
}

/* ==========================================
=! buttons
------------------------------------------ */

.grve-btn.grve-round {
  border-radius: var(--radius-default) !important;
}
.btn-phone span {
  display: flex;
  flex-flow: row;
  align-content: center;
  gap: 10px;
  transition: all 0.3s ease-in;
}

.btn-phone span::before {
  content: "";
  display: inline-flex;
  background: url(https://dev.arriveontime.com.au/wp-content/uploads/2026/04/ico-phone.svg)
    no-repeat center center;
  width: 40px;
  height: 45px;
}
.btn-phone span:hover::before,
.btn-phone:hover span::before {
  filter: var(--filter-white);
}

/* ==========================================
=! lists
------------------------------------------ */

.checklist-map h3 {
  &::before {
    content: "\f3c5";
    font-family: "FontAwesome";
    color: var(--wp--preset--color--primary-2);
    margin-right: 10px;
  }
}

/* ==========================================
=! icons
------------------------------------------ */

.row-machines .grve-image {
  max-width: 160px;
  margin-inline: auto;
}

/* ==========================================
=! accordions
------------------------------------------ */

.grve-accordion {
  & .grve-title-wrapper,
  & .grve-accordion-content {
    padding-inline: 20px !important;
  }

  & .grve-accordion-content p {
    font-size: 17px;
  }
  & .grve-title {
    font-weight: 400;
    color: var(--wp--preset--color--primary-3);
    font-size: 17px;
  }

  & .grve-title-wrapper {
    &:hover .grve-title {
      color: var(--wp--preset--color--primary-2);
    }

    & .grve-accordion-chevron {
      transform: rotate(180deg) !important;
      filter: var(--filter-grey);
    }
  }

  & .grve-title-wrapper.active {
    & .grve-title {
      color: var(--wp--preset--color--primary-2);
    }
    &::after {
      opacity: 0;
    }
  }

  & .grve-title-wrapper:not(.active) {
    & .grve-accordion-chevron {
      transform: rotate(0) !important;
      filter: var(--filter-red);
    }
    &:hover .grve-accordion-chevron {
      filter: var(--filter-grey);
    }
  }
}

/* ==========================================
=! ctas
------------------------------------------ */

.cta-box-blue {
  background: var(--wp--preset--color--primary-1);
  border: 5px solid var(--wp--preset--color--primary-2);
  padding: 40px;
  border-radius: var(--cnr-tr-radius);

  &::before {
    background: var(--wp--preset--color--primary-2);
    border-radius: var(--cnr-tr-radius);
    text-align: center;
    content: "";
    color: #fff;
    font-size: 24px;
    font-weight: 600;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 0;
    top: 0;
  }

  &.cta-box-1::before {
    content: "1";
  }
  &.cta-box-2::before {
    content: "2";
  }
  &.cta-box-3::before {
    content: "3";
  }
}

.cta-box-white {
  background: #fff;
  border: 2px solid var(--wp--preset--color--primary-1);
  padding: 20px;
  border-radius: var(--cnr-br-radius);

  & .grve-column-inner-content {
    display: flex;
    flex-direction: row;
    gap: 10px;
  }
  & .grve-image {
    max-width: 90px;
  }
  & .grve-text {
    margin-top: 10px;
  }
  & h3 {
    margin-bottom: 10px;
  }
}

.cta-aot-icon {
  background: url(https://dev.arriveontime.com.au/wp-content/uploads/2026/04/ico-cta-bg.svg)
    no-repeat center center;
  padding-bottom: 50px;
  background-size: contain;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  width: 320px;
  height: 270px;
  margin-inline: auto;
  margin-bottom: -35px;
}

.cta-box-logo {
  max-width: 310px;
  margin-inline: auto;
  display: flex;
  flex-direction: column-reverse;

  & .grve-box-content {
    border-radius: var(--tl-tr-radius);
    background: #41a135;
    color: #fff;
  }

  & .grve-box-title {
    font-size: 20px;
    text-transform: none;
    margin-block: 8px !important;
  }

  & .grve-media {
    background: #fff;
    border-radius: var(--bl-br-radius);
    padding: 10px 20px;
  }
}




/* ==========================================
=! AOT Locations Grid
------------------------------------------ */

.aot-locations-grid {
    padding: 20px 0;
}

.aot-locations-list {
    column-count: 4;
    column-gap: 40px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.aot-location-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    break-inside: avoid; /* prevents an item splitting across columns */
    margin-bottom: 10px;
}

@media ( max-width: 1024px ) {
    .aot-locations-list {
        column-count: 3;
    }
}

@media ( max-width: 600px ) {
    .aot-locations-list {
        column-count: 2;
    }
}


.aot-location-item a {
    display: flex;
    align-items: center;
    gap: 6px;
    color: inherit;
    text-decoration: none;
}

.aot-location-item a:hover {
    color: var(--wp--preset--color--primary-4);
}

.aot-location-pin::before{
	font-size:19px;
    flex-shrink: 0;
	content: "\f3c5";
    font-family: "FontAwesome";
    color: var(--wp--preset--color--primary-2);
}


/* ==========================================
=! cf7 contact form
------------------------------------------ */

.wpcf7 .sr-only-label label,
.wpcf7 label.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

::placeholder {
  opacity: 1;
}

.wpcf7 {
  & .wpcf7-form-control-wrap {
    margin-bottom: 10px;
  }

  & input[type="text"],
  & input[type="tel"],
  & input[type="email"],
  & input[type="number"],
  & textarea {
    background: var(--wp--preset--color--primary-5) !important;
    border-radius: calc(var(--radius-default) / 2);
  }
  & select {
    background-color: var(--wp--preset--color--primary-5) !important;
    border-radius: calc(var(--radius-default) / 2);
  }
  & input[type="text"],
  & input[type="tel"],
  & input[type="email"],
  & input[type="number"],
  & textarea,
  & select {
    font-weight: 500;
    font-size: 14px;
    color: #000;
    padding: 10px 12px;
  }
  & input[type="submit"] {
    background: var(--wp--preset--color--primary-3) !important;
    border-radius: var(--cnr-tl-radius) !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
    font-size: 25px !important;
    padding: 15px 20px !important;
    min-width: unset !important;
  }
  & input[type="submit"]:hover {
    background: var(--wp--preset--color--primary-4) !important;
  }
}

.form-col-wrapper {
  display: flex;
  flex-flow: row;
  gap: 10px;

  & .wpcf7-form-control-wrap:first-child {
    flex-basis: 54%;
  }
  & .wpcf7-form-control-wrap:last-child {
    flex-basis: 46%;
  }
}

.form-submit-wrapper {
  display: flex;
  flex-flow: column;
  gap: 10px;
  align-items: flex-end;
  padding-top: 10px;
}

/* ==========================================
=! reviews
------------------------------------------ */

.page-banner {
  & .rpi-cnt {
    flex-direction: row-reverse;
    align-items: end;
  }

  & .rpi-header.rpi-header_row {
    max-width: 220px !important;
  }

  & .rpi-slider .rpi-header .rpi-card-inner {
    background: rgba(255, 255, 255, 0.75);
  }

  & .rpi-slider .rpi-card-inner {
    margin: 0 0 0 8px !important;
  }

  & .rpi-content.rpi-content_row {
    max-width: 590px;
  }
  & .rpi-header.rpi-header_row::before {
    content: "Google rates \A Arrive on Time";
    white-space: pre;
    font-size: 20px;
    color: #fff;
    font-weight: bold;
    padding: 10px 15px;
    display: block;
  }
}

.rpi-slider .rpi-header .rpi-card-inner {
  border-radius: var(--cnr-bl-radius) !important;
}

.rpi-header .rpi-scale {
  color: var(--wp--preset--color--primary-1) !important;
}

.rpi-content .rpi-card-inner {
  border-radius: var(--cnr-br-radius) !important;
  background: var(--wp--preset--color--primary-5) !important;
  border-color: var(--wp--preset--color--primary-5) !important;
}

.rpi-logo::before {
  width: 30px !important;
  height: 30px !important;
  top: 20px !important;
  right: 20px !important;
}

/* ==========================================
=! responsive
------------------------------------------ */

@media (min-width: 1768px) {
	
	.page-banner .grve-background-wrapper {
		max-width: 56% !important;
	}
}

@media (min-width: 1468px) {
	
	.page-banner .grve-background-wrapper {
		max-width: 57% !important;
	}
}



@media (min-width: 1160px) and (max-width: 1390px) {
	#grve-main-header .grve-logo:not(.grve-logo-text) a {
		height: 80px;
	}
	
	.grve-header-menu li a {
		font-size: 15px !important;
	}
	
	.grve-header-text-element img {
		max-height: 90px;
	}
	
	.grve-horizontal-menu > .grve-menu > .grve-first-level + .grve-first-level {
		margin-left: 18px;
	}
}

@media (max-width: 1158px) {
	
	/* responsive menu */
	#grve-main-responsive-header {
		background-color: transparent;
		padding-top: 0;
		padding-bottom: 0;
	}

	.grve-header-row {
		padding: 15px;
	}

	/* footer */
	#grve-footer .ws-row-wrapper-full {
		padding-inline: 32px;
	}

	.grve-copyright {
		display: flex;
		justify-content: center;
	}
	
	/* hero phone cta resize */
	/*.row-call-cta h2 {
		font-size: 20px;
	}*/
	
	.phone-cta::before {
		width: 20px;
		height: 20px;
		background-size: contain;
	}
}

@media (min-width: 1024px) {
	
	.page-banner .grve-background-wrapper {
		max-width: 59%;
	}
}

@media (max-width: 1023px) {
	
	/* header */
	.grve-header-row {
		& .grve-left-area {
			flex-basis: 30%;
		}
		& .grve-right-area {
			flex-basis: 70%;
		}
	}

	.row-call-cta {
		background-size: 50%;
	}

	.form-cta .grve-title {
		font-size: 1.3rem;
		padding-bottom: 16px;
	}

	.rpi-slider {
		gap: 1rem !important;
	}

	.cta-box-white .grve-column-inner-content {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	
	.page-banner :is(.grve-custom-width-95, .grve-column-inner.grve-custom-width-95 .grve-column-inner-content, .grve-column.grve-custom-width-95 .grve-column-content) {
		max-width: unset;
	}
}


@media (min-width: 768px) and (max-width: 1301px){
	.ws-row-wrapper {
		padding-top:80px !important;
		padding-bottom:20px !important;
	}
}


@media (min-width: 768px) and (max-width: 1023px){

	/* --- hero / call --- */

	/* hero phone cta resize */
	.row-call-cta h2 {
		font-size: 24px;
	}

	/* override brb local vars and push card stack earlier than default */
	.rpi-col-x .rpi-card, .rpi-col-x .rpi-content_row, .rpi-col-x .rpi-header_row, .rpi-content, .rpi-header {
		--col: 1 !important;
		--gap: 0 !important;
	}
	
	/* override grves stupidly high specificity for buttons */
	:root #grve-theme-wrapper .page-banner .ws-row-wrapper .wpcf7 input[type="submit"] {
			font-size: 16px !important;
		}
	
	.page-banner {
		
		/* equal cols */
		& :is(.grve-column-2-3, .grve-column-1-3) {
			width: 50%;
		}

		.grve-background-wrapper {
			max-width: 50%;
		}
	
		/* approximate header grid / padding */
		.ws-row-wrapper {
			width: calc(100% - 7rem);
		}
		
		.grve-column-2-3.banner-col-left {
			padding-left: 0px !important;
			padding-right: 30px !important;
		}
		
	}
	
}


@media (max-width: 767px) {
	
	body {
		font-size: 17px;
	}
	
	p {
		margin-bottom: 17px;
	}

	.ws-row-wrapper {
		width: calc(100% - 2rem);
	}
	
	

	.page-banner {
		padding-bottom: 0 !important;

		& .grve-background-wrapper {
			max-width: 100% !important;
		}

		& .banner-col-left .grve-column-inner-content {
			padding-inline: 10px;
		}
		
		& .grve-subtitle-text {
			margin-bottom: unset !important;
		}

		& .rpi-cnt {
			flex-direction: column-reverse;
		}

		& .rpi-header.rpi-header_row {
			width: 100% !important;
			display: flex;
			align-items: center;
			padding-top: 1rem;
			padding-bottom: 2rem;
			max-width: unset !important;
		}

		& .rpi-content.rpi-content_row {
			max-width: 100%;
		}

		& .rpi-header.rpi-header_row::before {
			margin-left: auto;
		}
		
		& .rpi-cards {
			width: 48%;
		}
		
		& .rpi-slider {
			gap: 0.5rem !important;
		}
		
	}


	.row-machines {
		& .grve-row-inner {
			justify-content: center;
		}

		& .grve-column-1-5 {
			width: 33.3%;
		}
		& .grve-image {
			max-width: 100px;
		}
	}


	.form-cta {
		padding-left: 0 !important;
		padding-right: 0 !important;
		background-color: #41435a;

		& .grve-column-wrapper-inner {
			background: unset !important;
			padding-inline: 0;
			padding-block: 32px;
		}

		& .grve-column-inner-content {
			background: white !important;
			padding-top: 32px;
			border-radius: 30px;

			& :is(.grve-element, .wpcf7) {
				padding-inline: 40px;
			}
		} 

		& .grve-title {
			max-width: unset !important;
		}
	}
 
	.row-call-cta {
		background-size: 40%;
		background-position: 94% 100%;
		padding-inline: 40px;
		margin-left: 0;
	}

	.cta-aot-icon {
		margin-bottom: -25px;
	}
	
	.cta-box-white h3 {
		font-size: 20px;
	}
	
	.row-locations {
		padding-bottom: 0 !important;
	}

	.grve-footer-row {
		gap: 10px;

		& .grve-footer-column {
			flex-basis: 100%;
			text-align: center;
		}

		& img {
			max-height: 70px;
		}

		& img:last-of-type {
			margin-left: 0;
			margin-right: 0;
		}
	}
	
	#grve-footer .grve-container {
  		max-width: 100% !important;
	}
	
	.grve-footer-bar {
		padding-bottom: 30px !important;
		padding-top: 0px !important;
	}
		
	.grve-copyright {
		justify-content: space-between;
	}

	#grve-footer .grve-footer-bar.grve-align-center .grve-column-content {
		margin-inline: auto;
	}

	#grve-footer .grve-container {
		padding-inline: 0;
	}
	
	#grve-footer .ws-row-wrapper-full .grve-column-inner {
		padding-left: 15px !important;
		padding-right: 15px !important;
	}
	


	.grve-row .grve-column-1-4:has(.checklist-map) {
		margin-top: 15px !important;
	}

	.grve-row .grve-column-1-4:has(.checklist-map):last-of-type {
		margin-top: 0px !important;
	}

	.grve-row.grve-mobile-vertical-gap-30
	.grve-column:not(.grve-empty-column):has(.grve-accordion) {
		margin-top: 0 !important;
	}
	
	.mobile-sticky-bar {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 83px;
        background: rgba(255,255,255,.85);
        color: #fff;
        align-items: center;
        justify-content: center;
        z-index: 9999;
		padding-inline:20px;
		box-shadow: 0 -3px 5px rgba(49, 49, 49, 0.2);
		
		& .grve-btn {
			color: #ffffff;
			padding: 10px 15px;
			font-size:15px;
			display:flex;
			border:0;
    	}
		
		& .grve-btn + .grve-btn{
			margin-left:15px;
		}
	
		& .grve-btn:hover {
			background-color: var(--wp--preset--color--primary-4);
		}
		
		& .btn-phone span::before {
			width: 22px;
			height: 23px;
			background-size: contain;
		}
		
    }
    body {
        padding-bottom: 83px;
    }
    
	
}



@media (max-width: 480px) {
	
	.rpi-cards {
		width: 100% !important;
	}
	.rpi-header.rpi-header_row {
		flex-direction: column;
	}

	.rpi-header.rpi-header_row::before {
		margin-left: unset !important;
	}

	.row-call-cta {
		background-size: 65%;
		min-height: 150px;
	}

	.cta-aot-icon {
		height: 200px;
		padding-bottom: 35px;
		margin-bottom: -20px;
		width: auto;
		font-size: 14px;
	}

	.cta-box-logo {
		max-width: 220px;
	}
	
	.row-machines .grve-column-1-5 {
		width: 50%;
	}
		
	#grve-footer .page-banner-title {
		font-size: 20px;
		
		& br {
			display: none;
		}
	}
}

@media (max-width: 375px) {
	
	.row-call-cta {
		background-size: 50%;
	}

	.grve-footer-row img {
			max-height: 55px;
	}
}
