/* LivePlanner - Custom CSS Recreation */
/* Fonts: Lora (headings), Albert Sans (body) */

/* Reset & Base */
*, *::before, *::after {
  box-sizing:border-box;
  margin:0;
  padding:0;
}
html { scroll-behavior:smooth; }
body {
  font-family:'Lora',serif;
  color:#1d1d1d;
  font-size:16px;
  line-height:24px;
  background-color:#fff;
  overflow-x:hidden;
}
img { max-width:100%; display:inline-block; height:auto; }
a { text-decoration:underline; color:inherit; transition:all 200ms ease; }
a:hover { text-decoration:none; }
ul, ol { padding-left:40px; margin-bottom:10px; }
h1, h2, h3, h4, h5, h6 { font-weight:bold; margin-top:20px; margin-bottom:10px; }
h1 { font-size:38px; line-height:44px; }
h2 { font-size:32px; line-height:36px; }
h3 { font-size:24px; line-height:30px; }
h4 { font-size:18px; line-height:24px; }
h5 { font-size:14px; line-height:20px; }
p { margin-bottom:10px; }

/* Typography Classes */
.h1 {
  margin-top:0;
  margin-bottom:0;
  font-family:'Lora',sans-serif;
  font-size:54px;
  line-height:72px;
  font-weight:400;
  letter-spacing:-0.4px;
}
.h1.white { color:#fff; }
.h1.gold {
  color:#E8B820;
  text-shadow:0 2px 10px rgba(232,184,32,0.3);
}
.h2 {
  z-index:100;
  margin-top:0;
  margin-bottom:0;
  font-size:44px;
  line-height:50px;
  font-weight:500;
}
.h2.gold { color:#E8B820; }
.h3 {
  margin-top:0;
  margin-bottom:0;
  font-size:32px;
  line-height:40px;
  font-weight:500;
}
.h3.gold { color:#E8B820; }
.h4 {
  position:relative;
  z-index:100;
  margin-top:0;
  margin-bottom:0;
  font-size:20px;
  line-height:28px;
  font-weight:500;
  letter-spacing:0.2px;
}
.h4.gold { color:#E8B820; }
.subtitle {
  font-size:14px;
  line-height:20px;
  letter-spacing:2px;
  text-transform:uppercase;
  margin-bottom:12px;
}
.subtitle.white { color:#fff; }
.subtitle.gold-light { color:#E8B820; }
.text {
  z-index:100;
  margin-bottom:0;
  color:#353535;
  font-size:16px;
  line-height:24px;
}
.text.white { color:#fff; }
.text.grey { color:#63656d; }
.small-text {
  margin-bottom:0;
  color:#353535;
  font-size:14px;
  line-height:22px;
  letter-spacing:0.2px;
}
.small-text.footer { color:#9c9ea5; }
.small-text.white { color:#fff; }
.small-text.grey { color:#9c9ea5; }
.bold-text {
  position:relative;
  z-index:100;
  margin-bottom:0;
  font-weight:600;
  letter-spacing:0.2px;
}
.quote {
  font-family:'Lora',serif;
  font-size:18px;
  line-height:28px;
  color:#353535;
  font-style:italic;
  max-width:600px;
  margin:0 auto;
}

/* Layout & Containers */
.container {
  position:relative;
  width:100%;
  max-width:1200px;
  margin-right:auto;
  margin-left:auto;
  padding-right:20px;
  padding-left:20px;
}
.section {
  position:relative;
  overflow:hidden;
  padding-top:80px;
  padding-bottom:80px;
}
.section.footer {
  padding-top:60px;
  padding-bottom:24px;
  background-color:#1d1d1d;
}
.section.video {
  height:100vh;
  padding-top:0;
  padding-bottom:0;
}
.section.background {
  color:#fff;
  position:relative;
}
.section.grey { background-color:#f3f3f3; }

/* Navigation */
.navigation {
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:74px;
  border-bottom:none;
  background-color:transparent;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  z-index:1000;
  transition:all 300ms ease;
}
.navigation.scrolled {
  background-color:#fff;
}
.navigation.scrolled .nav-link { color:#1d1d1d; }
.navigation.scrolled .nav-link:hover { background-color:#f3f3f3; }
.nav-slogan {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  text-decoration:none;
}
.navigation .nav-slogan {
  position:absolute;
  left:20px;
  top:0;
  height:74px;
  align-items:center;
  justify-content:center;
  z-index:1101;
}
.nav-slogan-title {
  font-size:18px;
  line-height:18px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#E8B820;
  text-shadow:0 2px 8px rgba(232,184,32,0.25);
  white-space:nowrap;
}
.nav-slogan-subtitle {
  position:relative;
  padding-top:6px;
  font-size:10px;
  line-height:12px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:rgba(232,184,32,0.9);
  white-space:nowrap;
}
.nav-slogan-subtitle:before {
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:2px;
  background-color:rgba(232,184,32,0.65);
  border-radius:10px;
}
.navigation .nav-quote-button {
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-50%);
  z-index:1101;
  padding:10px 18px;
  font-size:13px;
  line-height:18px;
  letter-spacing:0.4px;
  text-transform:uppercase;
  text-decoration:none;
}
.navbar-container {
  display:flex;
  width:100%;
  height:100%;
  max-width:1200px;
  margin-right:auto;
  margin-left:auto;
  padding-right:20px;
  padding-left:20px;
  justify-content:center;
  align-items:center;
}
.brand {
  margin-right:20px;
  margin-left:20px;
  display:flex;
  align-items:center;
}
.brand.mobile {
  display:none;
  margin-right:0;
  margin-left:0;
}
.logo-icon { height:48px; }
.logo-icon.footer { height:80px; }
.navigation .nav-menu .brand.w-nav-brand {
  height:48px;
  width:48px;
  justify-content:center;
  padding-top:50px;
  transition:padding-top 200ms ease;
}
.navigation .nav-menu .brand.w-nav-brand .logo-icon {
  height:140px;
  width:auto;
  max-width:none;
  display:block;
  transform:translateY(14px);
  transition:height 200ms ease, transform 200ms ease;
}
.navigation.scrolled .nav-menu .brand.w-nav-brand .logo-icon {
  height:48px;
  transform:translateY(0);
}
.navigation.scrolled .nav-menu .brand.w-nav-brand { padding-top:5px; }
.nav-menu {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:20px;
}
.nav-link {
  display:flex;
  width:120px;
  padding:12px 20px;
  justify-content:center;
  align-items:center;
  font-size:14px;
  line-height:20px;
  letter-spacing:0.4px;
  text-transform:uppercase;
  color:#fff;
  font-weight:300;
  text-decoration:none;
  transition:all 200ms ease;
}
.nav-link:hover {
  background-color:rgba(255,255,255,0.14);
  text-decoration:none;
  color:#E8B820;
}
.nav-link.w--current { font-weight:500; }
.menu-button {
  display:none;
  cursor:pointer;
  padding:18px;
  float:right;
  position:relative;
  z-index:1101;
}
.burger-icon {
  position:relative;
  z-index:400;
  width:36px;
  height:36px;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
}
.top-burger-line,
.middle-burger-line,
.bottom-burger-line {
  width:28px;
  height:2px;
  border-radius:20px;
  background-color:#fff;
  transition:all 300ms ease;
}
.middle-burger-line { margin:6px 0; }
.navigation.scrolled .top-burger-line,
.navigation.scrolled .middle-burger-line,
.navigation.scrolled .bottom-burger-line {
  background-color:#1d1d1d;
}
.navigation .menu-button.w--open .top-burger-line {
  transform:rotate(45deg) translate(5px,5px);
}
.navigation .menu-button.w--open .bottom-burger-line {
  transform:rotate(-45deg) translate(5px,-5px);
}
.navigation .menu-button.w--open .middle-burger-line {
  opacity:0;
}
.nav-overlay {
  display:none;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  background:#1d1d1d;
  padding:20px;
}
.nav-overlay.w--open { display:block; }
.nav-overlay nav { height:100%; }
.nav-overlay .nav-overlay-quote-button { margin-top:auto; }

/* Hero Section */
.background-video {
  position:relative;
  height:100vh;
  overflow:hidden;
  color:#fff;
}
.background-video video {
  position:absolute;
  top:50%;
  left:50%;
  min-width:100%;
  min-height:100%;
  transform:translate(-50%,-50%);
  object-fit:cover;
  z-index:0;
}
.center-container {
  display:flex;
  max-width:780px;
  margin-right:auto;
  margin-bottom:60px;
  margin-left:auto;
  flex-direction:column;
  align-items:center;
  gap:20px;
  text-align:center;
  padding:0 20px;
}
.center-container.hero {
  margin-bottom:0;
  height:100vh;
  justify-content:center;
  align-items:center;
  max-width:1000px;
  padding:0 60px;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.hero-text-wrapper {
  margin-top:20px;
  padding:50px 50px;
  text-align:center;
  max-width:900px;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  position:relative;
  color:#fff;
  background-color:rgba(0,0,0,0.3);
  border-radius:8px;
  backdrop-filter:blur(2px);
}
.hero-text-wrapper:before {
  content:"";
  position:absolute;
  inset:20px;
  border:1px solid rgba(255,255,255,0.6);
  border-radius:6px;
  pointer-events:none;
}
.hero-text-wrapper .subtitle { color:#fff; }
.center-container.hero .h1 {
  padding:20px 40px;
  text-align:center;
  line-height:1.3;
  font-size:60px;
}
.h1.white {
  color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,0.3);
  padding:0 20px;
}
.absolute-arrow {
  position:absolute;
  bottom:40px;
  left:50%;
  transform:translateX(-50%);
  z-index:10;
  animation:bounce 2s infinite;
}
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% { transform:translateX(-50%) translateY(0); }
  40% { transform:translateX(-50%) translateY(-10px); }
  60% { transform:translateX(-50%) translateY(-5px); }
}

/* Services Section */
.main-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  margin-top:40px;
}
.service-card {
  position:relative;
  display:flex;
  min-height:520px;
  padding:40px 30px;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
  background-size:cover;
  background-position:center;
  border-radius:8px;
  overflow:hidden;
  text-decoration:none;
  transition:transform 300ms ease;
}
.service-card:before {
  content:"";
  position:absolute;
  inset:20px;
  border:1px solid rgba(232,184,32,0.7);
  border-radius:6px;
  z-index:2;
  pointer-events:none;
}
.service-card:hover {
  transform:translateY(-5px);
  text-decoration:none;
}
.service-content {
  position:relative;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
}
.service-content img { width:48px; height:48px; }
.service-content .h3 { color:#E8B820; margin:0; }
.service-card:hover .service-content .h3 { color:#fff; }
.arrow-button {
  display:flex;
  align-items:center;
  gap:8px;
}
.arrow-button .text.white {
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:1px;
}
.overlay {
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background-color:rgba(0,0,0,0.6);
  z-index:1;
  transition:background-color 300ms ease;
}
.service-card:hover .overlay {
  background-color:rgba(0,0,0,0.7);
}

/* Testimonial Slider */
.slider {
  position:relative;
  height:300px;
  text-align:center;
  clear:both;
}
.slider-mask {
  position:relative;
  display:block;
  overflow:hidden;
  height:100%;
}
.slide {
  position:relative;
  display:inline-block;
  vertical-align:top;
  width:100%;
  height:100%;
  white-space:normal;
  text-align:left;
}
.full-height {
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.testimonial {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:20px;
}
.quotation-mark {
  width:40px;
  height:40px;
  opacity:0.3;
}
.slider-arrow {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  cursor:pointer;
  z-index:10;
  background:rgba(255,255,255,0.8);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.slider-arrow.left { left:20px; }
.slider-arrow.right { right:20px; }
.slider-nav {
  text-align:center;
  padding-top:20px;
}
.slider-dot {
  display:inline-block;
  width:10px;
  height:10px;
  margin:0 5px;
  background-color:rgba(255,255,255,0.4);
  border-radius:50%;
  cursor:pointer;
  transition:background-color 200ms ease;
}
.slider-dot.w-active { background-color:#fff; }

/* About Section */
.horizontal-container {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}
.small-container { max-width:500px; }
.image-wrapper {
  position:relative;
  flex:1;
  max-width:600px;
}
.image-wrapper .square {
  position:absolute;
  top:-20px;
  left:-20px;
  width:100%;
  height:100%;
  border:2px solid #9c9ea5;
  z-index:0;
}
.absolute-image {
  position:relative;
  z-index:1;
  border-radius:4px;
}

.home-about-section .about-story-button.mobile-only { display:none; }

/* Events Styles */
.events-styles-section { padding-top:0; padding-bottom:0; }
.events-styles-layout {
  display:grid;
  grid-template-columns:1fr 560px 1fr;
  align-items:stretch;
  min-height:520px;
}
.events-styles-side {
  background-size:cover;
  background-position:center;
  min-height:520px;
  transition:opacity 200ms ease;
}
.events-styles-side.is-changing { opacity:0.1; }
.events-styles-center {
  background-color:#2f2f2f;
  position:relative;
  overflow:visible;
  padding:34px 46px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.events-styles-title {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin-bottom:24px;
}
.events-styles-line {
  width:80px;
  height:4px;
  background-color:#E8B820;
  border-radius:10px;
}
.events-styles-heading {
  margin:0;
  font-size:34px;
  line-height:40px;
  font-weight:500;
  color:#fff;
}
.events-styles-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px 38px;
  align-items:start;
}
.events-styles-cta {
  margin-top:26px;
  display:flex;
  justify-content:center;
}
.events-style-item {
  position:relative;
  padding:10px 0;
  cursor:pointer;
  user-select:none;
}
.events-style-item:hover .events-style-title {
  text-decoration:underline;
  text-underline-offset:4px;
}
.events-style-item:hover .events-style-icon {
  filter:brightness(1.05);
  transform:translateY(-50%) scale(1.04);
}
.events-style-item:focus-visible {
  outline:2px solid #E8B820;
  outline-offset:6px;
}
.events-style-item.active .events-style-title { color:#E8B820; }
.events-style-item.left { padding-left:72px; }
.events-style-item.right { padding-right:72px; text-align:right; }
.events-style-icon {
  position:absolute;
  top:50%;
  width:70px;
  height:70px;
  border-radius:999px;
  background-color:#E8B820;
  display:flex;
  align-items:center;
  justify-content:center;
  transform:translateY(-50%);
  z-index:3;
  transition:transform 200ms ease, filter 200ms ease;
}
.events-style-item.left .events-style-icon { left:-35px; }
.events-style-item.right .events-style-icon { right:-35px; }
.events-style-icon img { width:34px; height:34px; }
.events-style-title {
  margin:0;
  color:#fff;
  font-size:18px;
  line-height:24px;
  font-weight:500;
  transition:color 200ms ease, text-decoration-color 200ms ease;
}
.events-style-text {
  margin-top:8px;
  margin-bottom:0;
  color:rgba(255,255,255,0.8);
  font-size:13px;
  line-height:19px;
}
.events-styles-center:before {
  content:"";
  position:absolute;
  inset:20px;
  border:1px solid rgba(232,184,32,0.45);
  border-radius:10px;
  pointer-events:none;
}

/* CTA Section */
.section.background .overlay {
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background-color:rgba(0,0,0,0.5);
  z-index:0;
}
.parallax-image {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-1;
}

/* Gallery */
.masonry-layout,
.mansory-layout {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:250px;
  gap:15px;
}
.masonry-layout a,
.mansory-layout a {
  display:block;
  overflow:hidden;
  border-radius:4px;
}
.masonry-layout a:nth-child(1),
.masonry-layout a:nth-child(4),
.masonry-layout a:nth-child(9),
.mansory-layout a:nth-child(1),
.mansory-layout a:nth-child(4),
.mansory-layout a:nth-child(9) {
  grid-row:span 2;
}
.masonry-layout a:nth-child(3),
.masonry-layout a:nth-child(6),
.masonry-layout a:nth-child(10),
.mansory-layout a:nth-child(3),
.mansory-layout a:nth-child(6),
.mansory-layout a:nth-child(10) {
  grid-row:span 2;
}
.masonry-layout img,
.mansory-layout img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 300ms ease;
}
.masonry-layout a:hover img,
.mansory-layout a:hover img {
  transform:scale(1.05);
}

.gallery-collage {
  margin-top:40px;
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto;
  column-gap:56px;
  row-gap:22px;
  align-items:start;
  justify-items:center;
}
.gallery-side {
  display:flex;
}
.gallery-side.left { justify-content:flex-end; grid-column:1; grid-row:1; }
.gallery-side.right { justify-content:flex-start; grid-column:2; grid-row:1; }
.gallery-montage {
  display:flex;
  gap:18px;
  align-items:center;
}
.gallery-stack {
  display:flex;
  flex-direction:column;
  gap:18px;
}
.gallery-tile {
  --y:0px;
  display:block;
  overflow:hidden;
  border-radius:22px;
  text-decoration:none;
  transform:translateY(var(--y));
  transition:transform 250ms ease;
}
.gallery-tile:hover { transform:translateY(calc(var(--y) - 2px)); }
.gallery-tile[data-slot="0"] { --y:-42px; }
.gallery-tile[data-slot="1"] { --y:-18px; }
.gallery-tile[data-slot="2"] { --y:6px; }
.gallery-tile[data-slot="3"] { --y:32px; }
.gallery-tile[data-slot="4"] { --y:0px; }
.gallery-tile[data-slot="5"] { --y:0px; }
.gallery-tile[data-slot="6"] { --y:-42px; }
.gallery-tile[data-slot="7"] { --y:-18px; }
.gallery-tile[data-slot="8"] { --y:6px; }
.gallery-tile[data-slot="9"] { --y:32px; }
.gallery-tile-img {
  display:block;
  width:170px;
  object-fit:cover;
  transition:transform 300ms ease, opacity 180ms ease;
}
.gallery-tile:hover .gallery-tile-img { transform:scale(1.04); }
.gallery-tile-img.small { height:118px; }
.gallery-tile-img.tall { height:280px; }
.gallery-pill {
  grid-column:1 / -1;
  grid-row:2;
  display:flex;
  justify-self:center;
  align-items:center;
  gap:14px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(232,184,32,0.75);
  background:rgba(0,0,0,0.35);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  z-index:10;
}
.gallery-nav {
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(232,184,32,0.95);
  background:rgba(232,184,32,0.2);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform 200ms ease, background-color 200ms ease, border-color 200ms ease;
}
.gallery-nav img { width:18px; height:18px; filter:brightness(0) invert(1); }
.gallery-nav.left img { transform:rotate(180deg); }
.gallery-nav:hover {
  transform:translateY(-1px);
  background:rgba(232,184,32,0.18);
  border-color:#E8B820;
}
.gallery-nav:active { transform:translateY(0); }
.gallery-tile-img.is-changing { opacity:0.25; }

/* Booking */
.booking-section {
  background:linear-gradient(180deg, rgba(0,0,0,0.72), rgba(0,0,0,0.72));
  color:#fff;
}
.booking-card {
  position:relative;
  border-radius:12px;
  background:rgba(0,0,0,0.35);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  padding:44px;
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:34px;
  overflow:hidden;
}
.booking-card:before {
  content:"";
  position:absolute;
  inset:20px;
  border:1px solid rgba(232,184,32,0.55);
  border-radius:10px;
  pointer-events:none;
}
.booking-info { position:relative; z-index:1; }
.booking-info .text { color:rgba(255,255,255,0.85); }
.booking-form { position:relative; z-index:1; max-width:none; margin:0; }
.booking-form .text-field,
.booking-form .textarea {
  border-color:rgba(255,255,255,0.25);
  color:#fff;
}
.booking-form .text-field::placeholder,
.booking-form .textarea::placeholder { color:rgba(255,255,255,0.55); }
.booking-form .text-field:focus,
.booking-form .textarea:focus { border-color:#E8B820; }
.booking-form select.text-field { color:#fff; }
.booking-form select.text-field option { color:#1d1d1d; }
.booking-form .success-message,
.booking-form .error-message { display:none; grid-column:span 2; }

/* Lightbox */
.lightbox-backdrop {
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:rgba(0,0,0,0.9);
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
}
.lightbox-backdrop.active { display:flex; }
.lightbox-image {
  max-width:90vw;
  max-height:90vh;
}
.lightbox-close {
  position:absolute;
  top:20px;
  right:20px;
  width:40px;
  height:40px;
  cursor:pointer;
  background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4=") no-repeat center;
  background-size:24px;
}

/* Buttons */
.primary-button {
  display:inline-flex;
  padding:10px 32px;
  justify-content:center;
  align-items:center;
  border:1px solid #E8B820;
  border-radius:4px;
  background-color:#E8B820;
  color:#fff;
  text-decoration:none;
  letter-spacing:0.2px;
  transition:all 200ms ease;
  white-space:nowrap;
  cursor:pointer;
}
.primary-button:hover {
  border-color:#1d1d1d;
  background-color:#1d1d1d;
  text-decoration:none;
  color:#fff;
}
.secondary-button {
  display:inline-flex;
  padding:10px 24px;
  justify-content:center;
  align-items:center;
  border:1px solid #353535;
  border-radius:4px;
  background-color:#fff;
  color:#1d1d1d;
  text-decoration:none;
  letter-spacing:0.2px;
  transition:all 200ms ease;
  white-space:nowrap;
  cursor:pointer;
}
.secondary-button:hover {
  border-color:#E8B820;
  background-color:#E8B820;
  color:#fff;
  text-decoration:none;
}
.secondary-button.white {
  border-color:#fff;
  background-color:transparent;
  color:#fff;
}
.secondary-button.white:hover {
  background-color:#fff;
  color:#1d1d1d;
}

/* Footer */
.top-footer {
  display:flex;
  width:100%;
  margin-bottom:24px;
  flex-direction:column;
  align-items:center;
  gap:24px;
}
.content-footer {
  display:flex;
  width:280px;
  flex-direction:column;
  align-items:center;
  gap:24px;
  text-align:center;
}
.section.footer .nav-slogan {
  position:static;
  height:auto;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.horizontal-line {
  width:100%;
  height:1px;
  background-color:#353535;
  margin:24px 0;
}
.bottom-footer {
  display:flex;
  margin-top:24px;
  justify-content:center;
  align-items:center;
}
.footer-links {
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  justify-content:center;
}
.link {
  color:#fff;
  font-size:14px;
  line-height:20px;
  letter-spacing:0.4px;
  text-decoration:none;
  text-transform:uppercase;
}
.link:hover { color:#E8B820; text-decoration:underline; }
.link.small { text-transform:none; font-size:14px; }
.link.dark { color:#1d1d1d; }
.link.small.white { color:#9c9ea5; }
.social-links { display:flex; gap:12px; }
.social-link {
  display:flex;
  align-items:center;
  transition:opacity 200ms ease;
}
.social-link:hover { opacity:0.8; }

/* Form Styles */
.form {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  max-width:580px;
  margin:0 auto;
}
.text-field,
.textarea {
  width:100%;
  padding:12px 16px;
  border:1px solid rgba(156,158,165,0.5);
  border-radius:4px;
  background-color:transparent;
  font-family:inherit;
  font-size:16px;
  transition:all 200ms ease;
}
.text-field:hover,
.textarea:hover { border-color:#9c9ea5; }
.text-field:focus,
.textarea:focus {
  outline:none;
  border-color:#63656d;
}
.text-field::placeholder,
.textarea::placeholder { color:#9c9ea5; }
.textarea {
  min-height:200px;
  resize:vertical;
}
.form-block { max-width:580px; margin:0 auto; }
.label {
  font-size:14px;
  line-height:22px;
  display:block;
  margin-bottom:6px;
}
.success-message,
.error-message {
  padding:20px;
  border-radius:4px;
  margin-top:20px;
  text-align:center;
  display:none;
}
.success-message {
  border:1px solid #3e8f00;
  background-color:#dfffcd;
  color:#3e8f00;
}
.error-message {
  border:1px solid #ff3b3e;
  background-color:#fff1e9;
  color:#ff3b3e;
}

/* Page Header */
.page-header {
  padding-top:154px;
  padding-bottom:80px;
  background-color:#1d1d1d;
  color:#fff;
  text-align:center;
}
.page-header .container { max-width:800px; }

/* Service Detail */
.service-detail { padding:80px 0; }
.service-image {
  width:100%;
  border-radius:8px;
  margin:40px 0;
}
.features-list {
  list-style:none;
  padding:0;
}
.features-list li {
  padding:10px 0;
  border-bottom:1px solid #e2e2e2;
}
.features-list li:before {
  content:"•";
  color:#E8B820;
  font-weight:bold;
  margin-right:10px;
}

/* Portfolio Grid */
.portfolio-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  margin-top:40px;
}
.portfolio-item {
  position:relative;
  overflow:hidden;
  border-radius:8px;
  text-decoration:none;
}
.portfolio-item img {
  width:100%;
  height:300px;
  object-fit:cover;
  transition:transform 300ms ease;
}
.portfolio-item:hover img { transform:scale(1.05); }
.portfolio-overlay {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:20px;
  background:linear-gradient(transparent,rgba(0,0,0,0.8));
  color:#fff;
}

/* About Page */
.about-section { padding:80px 0; }
.process-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px;
  margin-top:40px;
}
.process-item { text-align:center; }
.process-item img {
  width:64px;
  height:64px;
  margin-bottom:16px;
}
.founder-section {
  display:flex;
  align-items:center;
  gap:60px;
  margin-top:80px;
  padding:60px;
  background-color:#f3f3f3;
  border-radius:8px;
}
.founder-image {
  width:300px;
  height:300px;
  object-fit:cover;
  border-radius:8px;
}
.signature {
  height:60px;
  margin-top:20px;
}

/* Animations */
.fade-in {
  opacity:0;
  transform:translateY(20px);
  transition:opacity 600ms ease,transform 600ms ease;
}
.fade-in.visible {
  opacity:1;
  transform:translateY(0);
}

/* Responsive Design */
@media screen and (max-width:991px) {
  .main-grid { grid-template-columns:repeat(2,1fr); }
  .masonry-layout,
  .mansory-layout { grid-template-columns:repeat(2,1fr); }
  .nav-menu { gap:14px; }
  .nav-link { width:auto; padding:10px 14px; }
  .portfolio-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .horizontal-container { flex-direction:column; text-align:center; }
  .small-container { max-width:100%; }
  .image-wrapper { max-width:100%; }
  .founder-section { flex-direction:column; padding:30px; }
  .events-styles-layout { grid-template-columns:1fr 520px 1fr; min-height:480px; }
  .events-styles-side { min-height:480px; }
  .events-styles-center { padding:30px 34px; }
  .events-styles-heading { font-size:30px; line-height:36px; }
  .gallery-collage { gap:36px; }
  .gallery-tile-img { width:150px; }
  .gallery-tile-img.small { height:108px; }
  .gallery-tile-img.tall { height:250px; }
}
@media screen and (max-width:767px) {
  .h1 { font-size:28px; line-height:36px; }
  .h2 { font-size:24px; line-height:32px; }
  .navbar-container { justify-content:flex-end; }
  .navigation .nav-slogan { left:15px; }
  .nav-slogan-title { font-size:14px; line-height:14px; }
  .nav-slogan-subtitle { font-size:8px; line-height:10px; letter-spacing:1.2px; }
  .nav-slogan-subtitle:before { height:1px; }
  .navigation .nav-quote-button { display:none; }
  .nav-menu { display:none; }
  .navigation .brand.mobile { display:none; }
  .navigation .brand:not(.mobile) { display:none; }
  .menu-button { display:block; }
  .nav-overlay { height:calc(100vh - 74px); overflow:auto; padding:24px 20px 28px; }
  .main-grid { grid-template-columns:1fr; }
  .masonry-layout,
  .mansory-layout { grid-template-columns:1fr; grid-auto-rows:200px; }
  .portfolio-grid { grid-template-columns:1fr; }
  .process-grid { grid-template-columns:1fr; }
  .form { grid-template-columns:1fr; }
  .footer-links { flex-direction:column; align-items:center; gap:10px; }
  .center-container.hero { padding:0 20px; max-width:100%; }
  .hero-text-wrapper { padding:32px 18px; max-width:100%; }
  .hero-text-wrapper:before { inset:12px; }
  .center-container.hero .h1 { padding:20px 20px; font-size:32px; line-height:1.3; }
  .page-header { padding-top:120px; padding-bottom:60px; }
  .service-card { min-height:360px; padding:30px 24px; }
  .service-card:before { inset:14px; }
  .portfolio-item img { height:240px; }
  .founder-section { padding:24px; gap:24px; }
  .founder-image { width:100%; max-width:320px; height:320px; }
  .events-styles-layout { grid-template-columns:1fr; }
  .events-styles-side { min-height:220px; }
  .events-styles-center { padding:26px 18px; }
  .events-styles-grid { grid-template-columns:1fr; gap:18px; }
  .events-style-item.left,
  .events-style-item.right { padding-left:72px; padding-right:0; text-align:left; }
  .events-style-item.right .events-style-icon { left:-35px; right:auto; }
  .events-styles-line { width:48px; }
  .events-styles-center:before { inset:14px; }
  .gallery-collage {
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
    row-gap:18px;
    column-gap:0;
  }
  .gallery-side.left { grid-column:1; grid-row:1; justify-content:center; }
  .gallery-side.right { grid-column:1; grid-row:2; justify-content:center; }
  .gallery-pill { grid-column:1; grid-row:3; }
  .gallery-tile { --y:0px; }
  .gallery-tile-img { width:146px; }
  .gallery-tile-img.small { height:102px; }
  .gallery-tile-img.tall { height:230px; }
  .booking-card { grid-template-columns:1fr; padding:30px 20px; }
  .booking-card:before { inset:14px; }
  .booking-form .success-message,
  .booking-form .error-message { grid-column:1; }
  .home-about-section { padding-bottom:40px; }
  .home-about-section .about-story-button.desktop-only { display:none; }
  .home-about-section .about-story-button.mobile-only {
    display:inline-flex;
    width:100%;
    justify-content:center;
    margin-top:18px;
  }
}
@media screen and (max-width:479px) {
  .container { padding-right:15px; padding-left:15px; }
  .section { padding-top:60px; padding-bottom:60px; }
  .nav-slogan-title { font-size:12px; line-height:12px; letter-spacing:0.8px; }
  .nav-slogan-subtitle { font-size:7px; line-height:9px; letter-spacing:1.1px; }
  .navigation .nav-quote-button { display:none; }
  .hero-text-wrapper { padding:28px 14px; }
  .hero-text-wrapper:before { inset:10px; }
  .page-header { padding-top:110px; padding-bottom:50px; }
  .portfolio-item img { height:210px; }
  .founder-image { height:260px; }
  .events-styles-heading { font-size:26px; line-height:32px; }
  .events-style-icon { width:62px; height:62px; }
  .events-style-icon img { width:30px; height:30px; }
  .gallery-tile-img { width:132px; }
  .gallery-tile-img.small { height:94px; }
  .gallery-tile-img.tall { height:210px; }
  .booking-card { padding:22px 14px; }
  .booking-card:before { inset:12px; }
  .booking-form { gap:14px; }
}
