/*

SAM.EDITINGMEDIA

https://www.editing.media/

*/

/*---------------------------------------
  CUSTOM PROPERTIES ( VARIABLES )             
-----------------------------------------*/
:root {
  --white-color:                  #ffffff;
  --primary-color:                #414833;
  --secondary-color:              #737A5D;
  --section-bg-color:             #737A5D;
  --custom-btn-bg-color:          #737A5D;
  --custom-btn-bg-hover-color:    #A4AC86;
  --dark-color:                   #191b13;
  --p-color:                      #717275;
  --border-color:                 #474338;
  --link-hover-color:             #CCBFA3;
  
  --body-font-family:             'OUTFIT', lighter;

  --h1-font-size:                 60px;
  --h2-font-size:                 46px;
  --h3-font-size:                 32px;
  --h4-font-size:                 28px;
  --h5-font-size:                 24px;
  --h6-font-size:                 22px;
  --p-font-size:                  16px;
  --btn-font-size:                16px;
  --form-btn-font-size:           18px;
  --menu-font-size:               16px;

  --border-radius-large:          100px;
  --border-radius-medium:         20px;
  --border-radius-small:          10px;

  --font-weight-thin:             00;
  --font-weight-light:            200;
  --font-weight-normal:           300;
  --font-weight-bold:             600;
}

body {
  background-color: var(--dark-color);
  font-family: var(--body-font-family); 
  text-transform: uppercase;
}

/* 1) Reserve space for the navbar */
:root{
  --nav-offset: 130px; /* adjust once and you’re done */
}

@media (max-width: 991px){
  :root{ --nav-offset: 150px; }
}

/*---------------------------------------
  TYPOGRAPHY               
-----------------------------------------*/

h2,
h3,
h4,
h5,
h6 {
  color: var(--dark-color);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: var(--font-weight-bold);
}

h1 {
  font-size: var(--h1-font-size);
  letter-spacing: -2px;
}

h2 {
  font-size: var(--h2-font-size);
}

h3 {
  font-size: var(--h3-font-size);
}

h4 {
  font-size: var(--h4-font-size);
}

h5 {
  font-size: var(--h5-font-size);
}

h6 {
  font-size: var(--h6-font-size);
}

p {
  color: var(--p-color);
  font-size: var(--p-font-size);
  font-weight: var(--font-weight-light);
}

ul li {
  color: var(--p-color);
  font-size: var(--p-font-size);
  font-weight: var(--font-weight-light);
}

a, 
button {
  touch-action: manipulation;
  transition: all 0.3s;
}

a {
  display: inline-block;
  color: var(--primary-color);
  text-decoration: none;
}

a:hover {
  color: var(--link-hover-color);
}

b,
strong {
  font-weight: var(--font-weight-bold);
}


/*---------------------------------------
  SECTION               
-----------------------------------------*/
.section-padding {
  padding-top: 100px;
  padding-bottom: 100px;
}

.section-bg {
  background-color: var(--section-bg-color);
}

.section-overlay {
  background-color: var(--dark-color);
  position: absolute;
  z-index: 9;
  top: 0;
  left: 0;
  pointer-events: none;
  width: 100%;
  height: 100%;
  opacity: 0.65;
}

.section-overlay + .container {
  position: relative;
  z-index: 22;
}

.back-top-icon {
  font-size: var(--h2-font-size);
}

html, body {
  margin: 0;
  padding: 0;
}
/*---------------------------------------
  TIMELINE               
-----------------------------------------*/
.timeline {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
}

.timeline::after {
  content: '';
  position: absolute;
  width: 5px;
  background-color: var(--white-color);
  top: 0;
  bottom: 0;
  left: 50%;
  margin-left: -3px;
}

.timeline-container {
  padding: 10px 40px;
  padding-top: 0;
  position: relative;
  background-color: inherit;
  width: 50%;
}

.timeline-container::after {
  content: '';
  position: absolute;
  width: 25px;
  height: 25px;
  right: -12px;
  background-color: var(--white-color);
  border: 5px solid #7c5c52;
  top: 15px;
  border-radius: 50%;
  z-index: 1;
}

.timeline-container-left {
  left: 0;
}

.timeline-container-right {
  left: 50%;
}

.timeline-container-left::before {
  content: " ";
  height: 0;
  position: absolute;
  top: 9px;
  width: 0;
  z-index: 1;
  right: 25px;
  border: medium solid white;
  border-width: 20px 0 20px 20px;
  border-color: transparent transparent transparent white;
}

.timeline-container-right::before {
  content: " ";
  height: 0;
  position: absolute;
  top: 9px;
  width: 0;
  z-index: 1;
  left: 25px;
  border: medium solid white;
  border-width: 20px 20px 20px 0;
  border-color: transparent white transparent transparent;
}

.timeline-container-right::after {
  left: -13px;
}

.timeline-content {
  padding: 5px;
  background-color: var(--white-color);
  position: relative;
  border-radius: var(--border-radius-medium);
}

@media screen and (max-width: 991px) {
  .timeline::after {
    left: 31px;
  }

  .timeline-container {
    width: 100%;
    padding-left: 70px;
    padding-right: 25px;
  }

  .timeline-container::before {
    left: 58px;
    border: medium solid white;
    border-width: 20px 20px 20px 0;
    border-color: transparent white transparent transparent;
  }

  .timeline-container-left::after, .timeline-container-right::after {
    left: 6px;
  }

  .timeline-container-right {
    left: 0%;
  }
}
/*---------------------------------------
  POPUP             
-----------------------------------------*/
.lead-modal{ display:none; position:fixed; inset:0; z-index:999999; }
.lead-modal.is-open{ display:block; }

.lead-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.65); }

.lead-modal__panel{
  position:relative;
  width:min(560px, calc(100vw - 32px));
  margin:12vh auto 0;
  background:rgba(0,0,0,0.55);
  border:1px solid rgba(255,255,255,0.18);
  border-radius:20px;
  padding:18px;
  box-shadow:0 20px 40px rgba(0,0,0,0.45);
}

.lead-modal__close{
  position:absolute; top:10px; right:12px;
  width:40px; height:40px;
  border:0; border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:24px;
  cursor:pointer;
}
.hs-form-frame .hs-form .hs-input{
  width:100% !important;
  background: rgba(0,0,0,0.15) !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
  color: #fff !important;
  border-radius: 12px !important;
  padding: 12px 14px !important;
}

.hs-form-frame .hs-form label{
  color:#fff !important;
  font-weight:600;
}

.hs-form-frame .hs-form input[type="submit"],
.hs-form-frame .hs-form .hs-button{
  background: var(--custom-btn-bg-color) !important;
  border: 2px solid transparent !important;
  border-radius: var(--border-radius-large) !important;
  color: #fff !important;
  font-weight: 600 !important;
  padding: 12px 28px !important;
  width: 100% !important;
}

.google-map{
  width: 100% !important;
  max-width: 100% !important;
  height: 450px;
  display: block;
}
@media (max-width: 991px){
  .google-map{ height: 320px; }
}
/* ===== Popup-only HubSpot form fixes ===== */
@media (max-width: 991px){

  /* Make the popup panel fit the viewport and scroll internally */
  #leadModal .lead-modal__panel{
    width: calc(100vw - 24px) !important;
    margin: 10vh auto 0 !important;
    max-height: 80vh;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding: 16px !important;
  }

  /* Ensure embedded form never exceeds panel width */
  #leadModal .hs-form-frame,
  #leadModal .hs-form-frame .hs-form{
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Force HubSpot fields to stack and fit */
  #leadModal .hs-form-frame .hs-form fieldset,
  #leadModal .hs-form-frame .hs-form .hs-form-field,
  #leadModal .hs-form-frame .hs-form .hs-input{
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    box-sizing: border-box !important;
  }

  /* Reduce spacing so the submit button stays reachable */
  #leadModal .hs-form-frame .hs-form .hs-form-field{
    margin-bottom: 12px;
  }

  /* Keep submit button full width */
  #leadModal .hs-form-frame .hs-form input[type="submit"],
  #leadModal .hs-form-frame .hs-form .hs-button{
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Safety: keep everything in popup from causing horizontal overflow */
#leadModal *{
  box-sizing: border-box;
}
/*---------------------------------------
  CUSTOM BUTTON               
-----------------------------------------*/
.custom-btn {
  background: var(--custom-btn-bg-color);
  border: 2px solid transparent;
  border-radius: var(--border-radius-large);
  color: var(--white-color);
  font-size: var(--btn-font-size);
  font-weight: var(--font-weight-bold);
  line-height: normal;
  transition: all 0.3s;
  padding: 12px 28px;
}

.custom-btn:hover {
  background: var(--custom-btn-bg-hover-color);
  color: var(--white-color);
}

.custom-border-btn {
  background: transparent;
  border: 2px solid var(--white-color);
  color: var(--white-color);
}

.custom-border-btn:hover {
  background: var(--white-color);
  color: var(--secondary-color);
}

.custom-btn-bg-white {
  border-color: var(--white-color);
  color: var(--white-color);
}

.custom-btn-italic {
  font-style: italic;
}


/*---------------------------------------
  NAVIGATION BAR & OFFCANVAS              
-----------------------------------------*/
.sticky-wrapper {
  position: absolute;
  z-index: 999999;
  top: 0 !important;
  right: 0;
  left: 0;
  height: auto;
}

.sticky-wrapper.is-sticky .container {
	padding: 12px 20px !important;   /* MUST match .navbar .container */
	border-radius: var(--border-radius-medium) !important;
	background: rgba(0,0,0,0.35) !important; /* match too */
}

.navbar {
  background: transparent;
  z-index: 999999;
  padding-top: 20px;
  padding-bottom: 20px;
}

.navbar .container {
  background: rgba(0, 0, 0, 0.35);
  border-radius: var(--border-radius-medium);
  padding: 12px 20px;
}

.navbar-brand,
.navbar-brand:hover {
  font-size: var(--h4-font-size);
  font-weight: var(--font-weight-bold);
  display: block;
  color: var(--white-color);
  position: absolute;
}

.navbar .navbar-brand-image {
  filter: brightness(0) invert(1);
}

.navbar-brand-image {
  width: 100px;
  height: auto;
  margin-right: 10px;
}

.navbar .custom-btn {
  padding: 10px 20px;
}

.navbar-expand-lg .navbar-nav .nav-link {
  border-radius: var(--border-radius-large);
  margin: 10px;
  padding: 10px;
}

.navbar-nav .nav-link {
  display: inline-block;
  color: var(--white-color);
  font-size: var(--menu-font-size);
  font-weight: var(--font-weight-bold);
  padding-top: 15px;
  padding-bottom: 15px;
}

.navbar-nav .nav-link.active, 
.navbar-nav .nav-link:hover {
  color: var(--secondary-color);
}

.navbar .dropdown-menu {
  background: var(--white-color);
  box-shadow: 0 1rem 3rem rgba(0,0,0,.175);
  border: 0;
  display: inherit;
  opacity: 0;
  min-width: 9rem;
  margin-top: 20px;
  padding: 13px 0 10px 0;
  transition: all 0.3s;
  pointer-events: none;
}

.navbar .dropdown-menu::before {
  content: "";
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-bottom: 15px solid var(--white-color);
  position: absolute;
  top: -10px;
  left: 10px;
}

.navbar .dropdown-item {
  display: inline-block;
  color: var(--p-color);
  font-size: var(--menu-font-size);
  font-weight: var(--font-weight-medium);
  position: relative;
}

.navbar .dropdown-item.active, 
.navbar .dropdown-item:active,
.navbar .dropdown-item:focus, 
.navbar .dropdown-item:hover {
  background: transparent;
  color: var(--link-hover-color);
}

.navbar .dropdown-toggle::after {
  content: "\f282";
  display: inline-block;
  font-family: bootstrap-icons !important;
  font-size: var(--menu-font-size);
  font-style: normal;
  font-weight: normal !important;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: -.125em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: relative;
  left: 2px;
  border: 0;
}

/* MOBILE navbar: keep toggler on the right, logo on the left */
@media (max-width: 991px){
	.navbar .container{
		position: relative;
	}

	/* stop the brand being absolute on mobile so it doesn't overlap */
	.navbar-brand,
	.navbar-brand:hover{
		position: relative;
	}

	/* push the hamburger to the right */
	.navbar-toggler{
		position: absolute;
		right: 16px;   /* match your container padding */
		top: 50%;
		transform: translateY(-50%);
		margin-left: auto;
	}

	/* add a little right padding so content doesn't sit under the toggler */
	.navbar .container{
		padding-right: 70px;
	}
}

@media screen and (min-width: 992px) {
  .navbar .dropdown:hover .dropdown-menu {
    opacity: 1;
    margin-top: 0;
    pointer-events: auto;
  }
}

.navbar-toggler {
  border: 0;
  padding: 0;
  cursor: pointer;
  margin: 0;
  width: 30px;
  height: 35px;
  outline: none;
}

.navbar-toggler:focus {
  outline: none;
  box-shadow: none;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
  background: transparent;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:before,
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:after {
  transition: top 300ms 50ms ease, -webkit-transform 300ms 350ms ease;
  transition: top 300ms 50ms ease, transform 300ms 350ms ease;
  transition: top 300ms 50ms ease, transform 300ms 350ms ease, -webkit-transform 300ms 350ms ease;
  top: 0;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:before {
  transform: rotate(45deg);
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:after {
  transform: rotate(-45deg);
}

.navbar-toggler .navbar-toggler-icon {
  background: var(--white-color);
  transition: background 10ms 300ms ease;
  display: block;
  width: 30px;
  height: 2px;
  position: relative;
}

.navbar-toggler .navbar-toggler-icon:before,
.navbar-toggler .navbar-toggler-icon:after {
  transition: top 300ms 350ms ease, -webkit-transform 300ms 50ms ease;
  transition: top 300ms 350ms ease, transform 300ms 50ms ease;
  transition: top 300ms 350ms ease, transform 300ms 50ms ease, -webkit-transform 300ms 50ms ease;
  position: absolute;
  right: 0;
  left: 0;
  background: var(--white-color);
  width: 30px;
  height: 2px;
  content: '';
}

.navbar-toggler .navbar-toggler-icon::before {
  top: -8px;
}

.navbar-toggler .navbar-toggler-icon::after {
  top: 8px;
}

/* --- Mobile: keep navbar compact (normal + sticky must match) --- */
@media (max-width: 991px){
	/* Do NOT add safe-area padding unless you specifically need iPhone notch support */
	body{
		padding-top: 0px !important;
    padding-bottom: 6px !important;
		background: transparent;
	}

	.navbar{
		padding-top: 4px !important;
		padding-bottom: 4px !important;
		margin-top: 0 !important;
	}

	.navbar .container{
		padding-top: 6px !important;
    padding-bottom: 6px !important;
    padding-left: 12px !important;
    padding-right: 56px !important; /* space for toggler */
	}

	.sticky-wrapper.is-sticky .container{
		padding: 8px 12px !important;
		padding-right: 70px !important;
	}

	/* Logo is often the biggest contributor to height */
  .navbar-brand-image{
    width: 56px !important;
    height: auto !important;
	}

	/* ensure brand doesn't overlap on mobile */
	.navbar-brand,
	.navbar-brand:hover{
		position: relative;
	}

	/* keep hamburger on the right */
	.navbar-toggler{
		position: absolute;
		right: 16px;
		top: 50%;
		transform: translateY(-50%);
    height: 28px !important;
	}

  /* If the menu is opened, make items less tall */
  .navbar-nav .nav-link{
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    margin: 0px !important;
    line-height: 1 !important;
  }
}
/* Mobile: collapse opens, but links are horizontal */
@media (max-width: 991px){

  /* When menu is open, make the list a horizontal row */
  .navbar-collapse .navbar-nav{
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center;
    gap: 0px;
    padding: 0px 0;
  }

  /* Make each link a compact “pill” */
  .navbar-collapse .navbar-nav .nav-link{
    padding: 6px 5px !important;
    margin: 0 !important;
    font-size: 10px !important;
    border-radius: 999px;
  }

  /* Optional: keep the CTA button full width under the links */
  .navbar-collapse .ms-lg-3{
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: 0px;
  }
  @media (max-width: 991px){
  /* Smaller CTA button in navbar */
  .navbar .custom-btn{
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    font-size: 12px !important;
    line-height: 1 !important;
  }

  /* Optional: reduce the arrow icon size or hide it */
  .navbar .custom-btn i{
    font-size: 12px !important;
    margin-left: 6px !important;
  }
  /* or: .navbar .custom-btn i{ display:none; } */
}
}

/*---------------------------------------
  HERO        
-----------------------------------------*/
.hero-section {
  background-color: var(--dark-color);
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  text-align: center;
   padding-bottom: 48px;
    display: flex;
  align-items: flex-start; /* stop vertical centering */
  justify-content: center;
  
}


.hero-title-box{
	display: inline-block;      /* shrink-to-fit */
	flex-direction: column;
	align-items: center;

  width: auto;
  max-width: max-content;
	padding: 22px 26px;

	border-radius: 20px;
	background: rgba(0,0,0,0.45);

	margin: 0 auto;                  /* centered */
  text-align: center;
  flex: 0 0 auto;
  margin-top: 20vh; 
}

@media (min-width: 992px){
	.hero-title-box {
		white-space: nowrap;          /* keeps SAM.EDITINGMEDIA on one line */
	}
}

@media (max-width: 480px){
	.hero-title-box{
		max-width: calc(100vw - 32px); /* 16px gutter each side */
	}
}

@media (max-width: 480px){
	.hero-section {
		line-height: 1;
		margin-bottom: 0;
	}

	/* If your box is a pseudo element behind the hero text */
	.hero-section::after{
		top: 50%;
		transform: translate(-50%, -50%) rotate(90deg);
	}
}

@media screen and (min-width: 991px) {
  .hero-section {
    height: 100vh;
  }
}

.hero-section h1 {
  color: var(--white-color);
}

.small-text {
  color: var(--secondary-color);
}

.hero-section .custom-border-btn {
  border-color: transparent;
}

.hero-section .container {
  position: relative;
  z-index: 9;
  padding-top: 0 !important;   
  margin-bottom: 0 !important;
}

.hero-slides {
  width: 100%;
  height: 100%;
  position: absolute  !important;
}

.opening-hours-list {
  margin: 0;
  padding: 0;
}

.opening-hours-list li {
  color: rgba(255, 255, 255, 0.75);
  font-size: var(--btn-font-size);
  font-weight: var(--font-weight-normal);
  margin-bottom: 10px;
}

.opening-hours-list li .underline {
  background-color: rgba(255, 255, 255, 0.75);
  width: 35%;
  height: 1px;
  margin: auto 15px 0 15px;
}

/* Mobile: hero must cover the top of the page */
@media (max-width: 991px){
  .hero-section{
    min-height: 105vh !important;
    height: 105vh !important;
    padding-top: 0 !important;   /* avoid showing page background above hero bg */
    padding-bottom: 0 !important;
  }

  /* move spacing to the content, not the section background */
  .hero-section .container{
    padding-top: 300px;          /* keep your existing spacing */
    padding-bottom: 100px;
  }
}
/* Mobile: keep SAM.EDITINGMEDIA on one line and prevent overlap */
@media (max-width: 480px){
  .hero-title-box{
    white-space: nowrap !important;
    word-break: normal !important;
    padding: 14px 16px;           /* slightly smaller box */
    margin-top: 26vh !important; /* try 25vh–40vh */
  }

  .hero-title-box h1{
    font-size: clamp(28px, 8vw, 60px);              /* adjust if you want */
    letter-spacing: -1px;
  }

}
/* ===== Hero title box sizing by common desktop widths ===== */

/* 1920px and down (standard desktop) */
@media (max-width: 1920px){
  .hero-title-box{ padding: 14px 16px; }
  .hero-title-box h1{ font-size: 50px; }
}

/* 1536px and down (common Windows scaling) */
@media (max-width: 1536px){
  .hero-title-box{ padding: 14px 16px; }
  .hero-title-box h1{ font-size: 48px; }
}

/* 1440px and down (large laptop / smaller desktop) */
@media (max-width: 1440px){
  .hero-title-box{ padding: 14px 16px; }
  .hero-title-box h1{ font-size: 40px; }
}
@media (max-width: 1366px){
  .hero-title-box{ padding: 14px 16px; }
  .hero-title-box h1{ font-size: 40px; }
}

@media (max-width: 992px){
  .hero-title-box{ padding: 14px 16px; }
  .hero-title-box h1{ font-size: clamp(28px, 8vw, 60px); }
}

@media (max-width: 480px){
  .hero-title-box{ padding: 14px 16px; } 
  .hero-title-box h1{ font-size: clamp(28px, 8vw, 60px); }
  
}
/*---------------------------------------
  ABOUT              
-----------------------------------------*/
.about-section {
  background-color: var(--dark-color);
  position: relative;
}

.about-section .ratio {
  border-radius: var(--border-radius-medium);
}

.custom-video {
  border-radius: var(--border-radius-medium);
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-image-wrap {
  border-radius: var(--border-radius-medium);
  position: relative;
  overflow: hidden;
}

.about-video-info {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.35), #191b13);
  border-radius: var(--border-radius-medium);
  bottom: 0;
  height: auto;
  padding: 40px;
}

.about-video-info h4 {
  color: var(--white-color);
}

.about-section h6 {
  color: var(--secondary-color);
}

.team-block-wrap {
  background-color: var(--secondary-color);
  border-radius: var(--border-radius-medium);
  position: relative;
  overflow: hidden;
  max-height: 450px;
  cursor: pointer;
}

.team-block-wrap:hover .team-block-image {
  transform: scale(1.2);
}

.team-block-image-wrap {
  width: 100%;
}

.team-block-image {
  display: block;
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: all 0.3s;
}

.team-block-info {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.35), rgba(188, 108, 37, 1));
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 30px;
}

.team-block-info .badge {
  margin: auto;
  top: 2px;
  bottom: 0;
}


/*---------------------------------------
  PORTFOLIO-SECTION              
-----------------------------------------*/
.portfolio-section {
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.45), #191b13), url(../images/Top\ Shot.webp);
  background-repeat: no-repeat;
  background-size: cover;
  min-height: 50vh;
  position: relative;
	overflow: hidden;        /* prevents background / children from painting outside */
	background-size: cover;
	background-position: center;
	min-height: 50vh;
  display: flow-root;
  padding-bottom: 48px;
}

.port-video{
	display: block;
	width: min(1100px, 100%);
	margin: 0 auto;
	border-radius: 25px;
	box-shadow: 0 15px 15px rgba(0,0,0,0.6);
	overflow: hidden; /* ensures the shadow follows the rounded video edge visually */
}

.portfolio-section .row::after{
	content: "";
	display: block;
	clear: both;
}

.portfolio-section .container,
.portfolio-section .row{
	box-shadow: none !important;
}

.bg-text {
  text-align: center;
}

.badge {
  background-color: var(--primary-color);
  font-size: 12px;
  position: relative;
  bottom: 4px;
  padding-bottom: 6px;
}

.badge::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -5px;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 10px solid var(--primary-color);
}
/*---------------------------------------
  CONTENT-SECTION              
-----------------------------------------*/
.content {
	background-color: var(--border-color);
	padding: 120px;
  	margin-top: 0 !important;
	position: relative;
	z-index: 0;
}

.content-inner{
	display: grid;
	grid-template-columns: 26% 60%; /* videos left (big), text right (small) */
	gap: 32px;
	align-items: start;
}

/* text column */
.content-text{
	float: none;
	width: 100%;
	margin: 0;
	max-width: 42ch;   /* prevents super long lines even if column grows */
	justify-self: end; /* keeps text snug to the right side */
  align-self: center; /* top-to-bottom centering */
}

/* videos column */
.content-media{
	display: grid;
	grid-template-columns: repeat(3, 1fr); /* 3 big videos across */
	gap: 24px;
	align-items: start;
}

.content-videos{
	width: 100%;
  max-width: 500px;
	height: auto;
	border-radius: 25px;
	background-color: #717275;
	box-shadow: rgb(24, 24, 24) 0 15px 15px;
}

/* videos column */
.content-media{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3 across when space allows */
	gap: 24px;
	align-items: start;
}

.content-videos{
	width: 100%;
	aspect-ratio: 9 / 16;   /* optional, makes them uniform */
	height: auto;
	border-radius: 25px;
	background-color: #717275;
	box-shadow: rgb(24, 24, 24) 0 15px 15px;
}

.content-title-text{
  color: #CCBFA3;
}
@media (max-width: 1200px){
	.content-inner{
		grid-template-columns: 70% 30%;
	}
	.content-media{
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 900px){
	.content{
		padding: 24px;
	}
	.content-inner{
		grid-template-columns: 1fr; /* stack on mobile */
	}
	.content-media{
		grid-template-columns: 1fr; /* or 2 if you prefer */
	}
	.content-text{
		justify-self: start;
		max-width: 60ch;
	}
}
@media (max-width: 900px){
  .content-media{
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center;     /* center the row */
    overflow-x: auto;
    gap: 12px;
    padding: 0 12px 40px;        /* small side padding + breathing room */
    -webkit-overflow-scrolling: touch;
  }

  .content-videos{
    flex: 0 0 auto;
    width: 100px;
    aspect-ratio: 9 / 16;
    height: auto;
    border-radius: 14px;
  }
}

/*---------------------------------------
  CONTACT               
-----------------------------------------*/
.contact-section {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.45), #191b13), url('../images/Close\ Shot.webp');
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.google-map {
  border-radius: var(--border-radius-medium);
  filter: grayscale(100);
}

.contact-block-wrap {
  background: var(--primary-color);
  border-radius: var(--border-radius-medium);
  padding: 0;
  min-height: 200px;
}

.contact-block {
  background: var(--secondary-color);
  border-radius: var(--border-radius-medium);
  transform: rotate(8deg);
  height: 100%;
  padding: 20px 40px;
}

.contact-block h6 {
  transform: rotate(-8deg);
}

.contact-block .custom-icon {
  background: var(--primary-color);
  border-radius: var(--border-radius-large);
  display: block;
  width: 50px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  position: relative;
}

.contact-block strong {
  display: block;
  color: var(--white-color);
  text-transform: uppercase;
  margin-top: 20px;
  margin-bottom: 10px;
}

/* Mobile overflow fix (Google map + any wide elements) */
html, body {
  overflow-x: hidden;
}

.google-map {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: 320px;          /* adjust to taste */
}

/* ===== Booking page clean layer (overrides template) ===== */

:root{
	--booking-overlay: rgba(0,0,0,0.55);
	--booking-card-bg: rgba(0,0,0,0.40);
	--booking-card-border: rgba(255,255,255,0.18);
}

html, body{
	margin: 0;
	padding: 0;
}

/* Make navbar sit on top of the hero image nicely */
.reservation-page .navbar{
	position: absolute; /* sits over the hero */
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 9999;
}

/* If your template forces a container background, keep it subtle */
.reservation-page .navbar .container{
	background: rgba(0,0,0,0.25);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255,255,255,0.12);
}

/* Booking full-screen hero */
.booking-hero{
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;

	background-image: url("/images/Low Shot.webp");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;

	/* give space so content doesn't hide under navbar */
	padding-top: 120px;
	padding-bottom: 80px;
}

.booking-hero__overlay{
	position: absolute;
	inset: 0;
	background: var(--booking-overlay);
	pointer-events: none;
}

.booking-hero__content{
	position: relative;
	z-index: 1;
}

/* Form card */
.booking-card{
	background: var(--booking-card-bg);
	border: 1px solid var(--booking-card-border);
	border-radius: 20px;
	padding: 26px;
	box-shadow: 0 20px 40px rgba(0,0,0,0.45);
}

/* Inputs */
.booking-form .form-control{
	background: rgba(0,0,0,0.15);
	border-color: rgba(255,255,255,0.28);
	color: #fff;

	margin-bottom: 16px; /* tighter than template */
	padding-top: 12px;
	padding-bottom: 12px;
}

.booking-form .form-control::placeholder{
	color: rgba(255,255,255,0.75);
}

.booking-form .form-control:focus{
	background: rgba(0,0,0,0.25);
	border-color: rgba(255,255,255,0.55);
	box-shadow: none;
}

/* Submit button uses your template styles already,
   but ensure it doesn't look like an input */
.booking-form button.form-control{
	cursor: pointer;
}

/* Mobile tweaks */
@media (max-width: 991px){
	.booking-hero{
		padding-top: 110px;
		padding-bottom: 60px;
	}

	.booking-card{
		padding: 18px;
		border-radius: 18px;
	}

	/* Keep navbar compact on booking page mobile too */
	.reservation-page .navbar{
		position: absolute;
	}

	.reservation-page .navbar .container{
		padding: 8px 12px !important;
		padding-right: 70px !important;
	}
}

/* Specifically target the picker icons (Chrome/Safari) */
.booking-form input[type="date"]::-webkit-calendar-picker-indicator,
.booking-form input[type="time"]::-webkit-calendar-picker-indicator{
	filter: invert(1);   /* makes the icon light on dark background */
	opacity: 1.0;
	cursor: pointer;
}

/* Optional: improve tap target a bit */
.booking-form input[type="date"],
.booking-form input[type="time"]{
	padding-right: 44px;
}
/* HubSpot Meetings embed sizing */
.meetings-wrap{
	width: 100%;
	max-width: 100%;
  border-radius: 20px;        /* match your card rounding */
  overflow: hidden;           /* clips the iframe corners */
}

.meetings-iframe-container{
	width: 100% !important;
	max-width: 100% !important;
}
/* Some portals inject a direct iframe */
.meetings-wrap iframe,
.meetings-iframe-container iframe{
  border-radius: 20px;
}
/* If the embedded iframe overflows on mobile, this prevents horizontal scroll */
@media (max-width: 991px){
	.booking-card{
		padding: 16px;
	}
}
/*---------------------------------------
  SITE FOOTER              
-----------------------------------------*/
.site-footer {
  background-color: var(--dark-color);
  padding-top: 100px;
  padding-bottom: 100px;
}

.site-footer strong {
  color: var(--white-color);
}

.site-footer p,
.site-footer-link {
  color: rgba(255, 255, 255, 0.75);
  font-size: var(--btn-font-size);
}

.site-footer-link {
  color: rgba(255, 255, 255, 0.75);
  font-size: var(--btn-font-size);
  transition: all 0.3s;
}

.site-footer-link:hover {
  color: rgba(255, 255, 255, 0.75);
  text-decoration: underline;
}

.copyright-text {
  color: rgba(255, 255, 255, 0.75);
  font-size: var(--menu-font-size);
}

.copyright-text a {
	color: rgba(255, 200, 160, 0.75);
}


/*---------------------------------------
  SOCIAL ICON               
-----------------------------------------*/
.social-icon {
  margin: 0;
  padding: 0;
}

.social-icon-item {
  list-style: none;
  display: inline-block;
  vertical-align: top;
}

.social-icon-link {
  background: var(--primary-color);
  border-radius: var(--border-radius-large);
  color: var(--white-color);
  font-size: var(--menu-font-size);
  display: block;
  margin: 0 5px;
  text-align: center;
  width: 35px;
  height: 35px;
  line-height: 35px;
  transition: background 0.2s, color 0.2s;
}

.social-icon-link:hover {
  background: var(--white-color);
  color: var(--primary-color);
}

.social-icon-link span {
  display: block;
}


/*---------------------------------------
  RESPONSIVE STYLES               
-----------------------------------------*/
@media screen and (max-width: 1200px) {
  h1 {
    font-size: 62px;
  }
}

@media screen and (max-width: 991px) {
  h1 {
    font-size: 54px;
  }

  h2 {
    font-size: 36px;
  }

  h3 {
    font-size: 32px;
  }

  h4 {
    font-size: 28px;
  }

  h5 {
    font-size: 20px;
  }

  h6 {
    font-size: 18px;
  }

  .section-padding {
    padding-top: 50px;
    padding-bottom: 50px;
  }

  .hero-section {
    padding-top: 148px;
    padding-bottom: 100px;
  }

  .navbar-brand,
  .navbar-brand:hover {
    font-size: var(--h5-font-size);
  }

  .navbar-expand-lg .navbar-nav {
    padding-bottom: 20px;
  }

  .navbar-expand-lg .navbar-nav .nav-link {
    padding: 0;
    margin-bottom: 0;
  }

  .navbar .custom-btn {
    margin-bottom: 10px;
  }

  .booking-section {
    padding: 45px;
  }

  .contact-section .container {
    width: auto;
    margin-right: 10px;
    margin-left: 10px;
    padding: 35px;
  }

  .site-footer {
    padding-top: 50px;
    padding-bottom: 50px;
  }
}

@media screen and (max-width: 767px) {
  .custom-btn {
    font-size: 14px;
    padding: 12px 20px;
  }

  .menu-block-wrap,
  .reviews-block-image-wrap,
  .reviews-block-info {
    padding: 20px;
  }
}


@media screen and (max-width: 578px) {
  .navbar .container,
  .sticky-wrapper.is-sticky .container {
    margin-right: 10px;
    margin-left: 10px;
  }
}


@media screen and (max-width: 480px) {
  h1 {
    font-size: 38px;
  }

  h2 {
    font-size: 28px;
  }

  h3 {
    font-size: 26px;
  }

  h4 {
    font-size: 22px;
  }

  h5 {
    font-size: 20px;
  }

  .hero-section::after {
    width: 200px;
    height: 200px;
  }

  .booking-section {
    padding: 35px;
  }

  .opening-hours-list li {
    font-size: 12px;
  }

  .reviews-block-image-wrap {
    flex-direction: column;
  }

  .reviews-block-image {
    margin-bottom: 15px;
  }

  .timeline-container {
    padding-left: 55px;
  }

  .timeline-container::before {
    left: 44px;
    border: medium solid white;
    border-width: 15px 15px 15px 0;
    border-color: transparent white transparent transparent;
  }

  .timeline-container-left::before,
  .timeline-container-right::before {
    top: 13px;
  }
}

