/* WordPress and ACF integration layer for the ABLAZE quiet-luxury system. */

body.admin-bar.ablaze-luxury-theme header.site-header { top: 32px; }
body.ablaze-luxury-theme.single-tribe_events header.site-header,
body.ablaze-luxury-theme.post-type-archive-tribe_events header.site-header,
body.admin-bar.ablaze-luxury-theme.single-tribe_events header.site-header,
body.admin-bar.ablaze-luxury-theme.post-type-archive-tribe_events header.site-header {
  background: transparent;
  position: fixed;
  top: var(--wp-admin-offset);
}
body.ablaze-luxury-theme.single-tribe_events header.site-header::before,
body.ablaze-luxury-theme.post-type-archive-tribe_events header.site-header::before {
  opacity: 1;
}
body.ablaze-luxury-theme.single-tribe_events .site-main,
body.ablaze-luxury-theme.post-type-archive-tribe_events .site-main {
  padding-top: var(--header-height);
}
/* The retained legacy bundle contains element-level header/nav rules. Reassert
   the shared shell and footer/mobile navigation contract after that bundle. */
body.ablaze-luxury-theme header.site-header.shell,
body.ablaze-luxury-theme header.site-header.sticky.shell {
  margin-inline: 0;
  width: 100%;
}
body.ablaze-luxury-theme .site-footer nav {
  align-items: initial;
  display: block;
  margin: 0;
}
body.ablaze-luxury-theme .site-footer nav > ul > li { display: list-item; margin: 0; }
body.ablaze-luxury-theme .site-footer nav ul li a { display: block; padding: 0; }
.site-main { min-height: 100vh; overflow: clip; }
body.ablaze-luxury-theme h1,
body.ablaze-luxury-theme h2,
body.ablaze-luxury-theme h3,
body.ablaze-luxury-theme h4,
body.ablaze-luxury-theme h5,
body.ablaze-luxury-theme h6 {
  font-family: var(--serif) !important;
  font-weight: 400;
}
body.ablaze-luxury-theme .interior-hero__content .interior-hero__title,
body.ablaze-luxury-theme .main-banner.banner-slider .banner-content h1,
body.ablaze-luxury-theme .about-hero__content h1,
body.ablaze-luxury-theme .services-hero__content h1,
body.ablaze-luxury-theme .db-hero__content h1,
body.ablaze-luxury-theme .lift-project-hero h1,
body.ablaze-luxury-theme.single-tribe_events main h1,
body.ablaze-luxury-theme.post-type-archive-tribe_events main h1 {
  font-family: var(--hero-h1-family) !important;
  font-size: var(--hero-h1-size);
  font-style: normal;
  font-weight: var(--hero-h1-weight);
  letter-spacing: var(--hero-h1-letter-spacing);
  line-height: var(--hero-h1-line-height);
}
body.ablaze-luxury-theme .acc_title_bar a,
body.ablaze-luxury-theme .journey .step-number { font-family: var(--serif) !important; }
.screen-reader-text {
  clip: rect(1px,1px,1px,1px);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
}
.screen-reader-text:focus {
  background: var(--white);
  clip: auto !important;
  clip-path: none;
  color: var(--ink);
  height: auto;
  left: 18px;
  padding: 12px 18px;
  top: 18px;
  width: auto;
  z-index: 100000;
}

/* Shared interior hero used by all legacy ACF templates. */
.interior-hero {
  background: var(--deep);
  color: var(--white);
  min-height: 84svh;
  overflow: hidden;
  position: relative;
}
.interior-hero__image,
.interior-hero__shade {
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}
.interior-hero__image { object-fit: cover; object-position: center; }
.interior-hero__shade {
  background:
    linear-gradient(90deg,rgba(8,13,12,.84) 0%,rgba(8,13,12,.25) 62%,rgba(8,13,12,.42) 100%),
    linear-gradient(0deg,rgba(8,13,12,.8),transparent 64%);
}
.interior-hero__content {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 84svh;
  padding-bottom: clamp(70px,9vw,135px);
  padding-top: 120px;
  position: relative;
  z-index: 2;
}
.interior-hero__content .interior-hero__title {
  color: inherit;
  font-family: var(--hero-h1-family);
  font-size: clamp(3.8rem,5.7vw,6.8rem);
  letter-spacing: var(--hero-h1-letter-spacing);
  line-height: .82;
  margin: 0;
  max-width: 1200px;
}
.interior-hero__content .eyebrow { margin-bottom: 28px; }
.interior-hero__copy {
  color: #e1e1dc;
  font-size: clamp(1rem,1.35vw,1.25rem);
  line-height: 1.85;
  margin-top: 38px;
  max-width: 780px;
}
.interior-hero__content .hero-cta {
  align-self: flex-start;
  margin-top: 36px;
  width: fit-content;
}

.main-banner.gfd {
  background: var(--deep);
  color: var(--white);
  min-height: 88svh;
  overflow: hidden;
  position: relative;
}
.main-banner.gfd .bgimg-container { inset: 0; position: absolute; }
.main-banner.gfd .bgimg {
  background-position: center;
  background-size: cover;
  inset: 0;
  opacity: 0;
  position: absolute;
  transition: opacity 1s ease;
}
.main-banner.gfd .bgimg::after {
  background: linear-gradient(0deg,rgba(8,13,12,.8),rgba(8,13,12,.12) 65%),linear-gradient(90deg,rgba(8,13,12,.45),transparent 65%);
  content: "";
  inset: 0;
  position: absolute;
}
.main-banner.gfd .bgimg.is-active { opacity: 1; }
.main-banner.gfd .herobanner-content { align-items: flex-end; display: flex; inset: 0; padding-bottom: clamp(62px,8vw,120px); position: absolute; z-index: 2; }
.main-banner.gfd .banner-content h1 {
  font-size: var(--hero-h1-size);
  letter-spacing: var(--hero-h1-letter-spacing);
  line-height: var(--hero-h1-line-height);
}
.main-banner.gfd .banner-content h2 { font-size: clamp(4.5rem,9vw,10rem); line-height: .82; }

/* The Events Calendar hides its archive H1 by default. Keep the accessible
   heading and make it the visible editorial title for the archive view. */
body.ablaze-luxury-theme.post-type-archive-tribe_events .tribe-events-header__content-title h1.tec-a11y-title-hidden {
  clip: auto;
  clip-path: none;
  color: var(--ink);
  height: auto;
  margin: 0 0 clamp(38px,5vw,68px);
  overflow: visible;
  position: static !important;
  width: auto;
}

/* Existing ACF-rich templates retain their content but share editorial rhythm. */
.page-content,
section.block,
.pager-section,
.service-section,
.contact-page,
.homeabout,
.ph-process-section,
.ph-main-section,
.testi-section.phases {
  margin: 0;
  padding-block: clamp(82px,8vw,140px);
}
.container,
.container-fluid {
  margin-inline: auto;
  max-width: 1540px;
  padding-inline: 32px;
  width: 100%;
}
.entry-content,
.service_content,
.block-content,
.our-history,
.contact-head {
  color: #4b504e;
  font-size: clamp(1rem,1.12vw,1.15rem);
  line-height: 1.9;
}
.entry-content h2,
.entry-content h3,
.sub-title,
.section-title h3 {
  color: var(--ink);
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1;
}
.sub-title,
.section-title h3 { font-size: clamp(3.2rem,5.8vw,6.8rem); }
.section-title { margin-bottom: clamp(48px,6vw,90px); }
.btn-default,
.lnk-default,
.lnk-default2 {
  align-items: center;
  border-bottom: 1px solid rgba(25,32,30,.35);
  display: inline-flex;
  font-family: var(--sans);
  font-size: .7rem;
  font-weight: 600;
  gap: 22px;
  letter-spacing: .15em;
  margin-top: 28px;
  padding: 0 0 9px;
  text-transform: uppercase;
}

/* Contact Form 7 and legacy form output inside the luxury panel. */
.wp-contact-form { min-width: 0; }
.wp-contact-form form,
.wp-contact-form .wpcf7-form { display: grid; gap: 22px; }
.wp-contact-form p { margin: 0; }
.wp-contact-form label {
  color: var(--ink);
  display: flex;
  flex-direction: column;
  font-size: .68rem;
  font-weight: 600;
  gap: 8px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.wp-contact-form input:not([type="submit"]),
.wp-contact-form textarea,
.wp-contact-form select {
  background: transparent;
  border: 0;
  border-bottom: 1px solid #c7c1b7;
  border-radius: 0;
  color: var(--ink);
  font: 400 1rem/1.5 var(--sans);
  max-width: 100%;
  min-height: 46px;
  outline: 0;
  padding: 6px 0;
  width: 100%;
}
.wp-contact-form input:focus,
.wp-contact-form textarea:focus,
.wp-contact-form select:focus { border-color: var(--brass); }
.wp-contact-form input[type="submit"],
.wp-contact-form button {
  background: var(--forest);
  border: 0;
  color: var(--white);
  font: 600 .7rem/1 var(--sans);
  letter-spacing: .14em;
  padding: 19px 38px;
  text-transform: uppercase;
  width: fit-content;
}
.wpcf7-spinner { display: none; }
.wpcf7-not-valid-tip { color: #9c3e36; font-size: .68rem; letter-spacing: 0; text-transform: none; }

/* Generic legacy grids and galleries, intentionally additive to preserve ACF output. */
.row { display: flex; flex-wrap: wrap; margin-inline: -12px; }
[class*="col-"] { min-width: 0; padding-inline: 12px; }
.col-lg-12 { width: 100%; }
.col-lg-9 { width: 75%; }
.col-lg-8 { width: 66.666%; }
.col-lg-7 { width: 58.333%; }
.col-lg-6 { width: 50%; }
.col-lg-5 { width: 41.666%; }
.col-lg-4 { width: 33.333%; }
.col-lg-3 { width: 25%; }
.align-items-center { align-items: center; }
.text-center { text-align: center; }
.w-100 { width: 100%; }
.project-grid .project-item,
.masonary .project-item { overflow: hidden; position: relative; }
.project-item img { height: auto; width: 100%; }
.svs-section { display: grid; }
.svs-item {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  min-height: clamp(560px,46vw,760px);
}
.svs-img { background: #d8d3c9; min-height: 100%; overflow: hidden; }
.svs-img img { height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.8,.2,1); width: 100%; }
.svs-img:hover img { transform: scale(1.025); }
.svss-info {
  align-items: flex-start;
  background: var(--white);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(48px,7vw,120px);
}
.svs-item:nth-child(even) .svs-img { grid-column: 2; }
.svs-item:nth-child(even) .svss-info { background: #ebe5da; grid-column: 1; grid-row: 1; }
.svs-item--no-image { grid-template-columns: 1fr; min-height: 0; }
.svs-item--no-image .svss-info,
.svs-item--no-image:nth-child(even) .svss-info { grid-column: 1; grid-row: 1; }
.svss-info .ssub { color: var(--brass); font-size: .68rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.svss-info .sub-title { font-size: clamp(3rem,4.8vw,5.8rem); margin: 24px 0 30px; }
.svss-info p, .svss-info li { color: #555a57; line-height: 1.85; }
.svss-info ul { margin: 18px 0; padding-left: 18px; }
.section-title.style2 { align-items: end; display: grid; gap: clamp(42px,8vw,130px); grid-template-columns: repeat(2,minmax(0,1fr)); }
.section-title.style2 .mw-45 { max-width: none; }

.masonary {
  display: block;
  position: relative;
  width: 100%;
}
.masonary > [class*="col-"],
.masonary > .element-item {
  display: block;
  flex: 0 0 33.333%;
  margin-bottom: 20px;
  max-width: 33.333%;
  padding-inline: 10px;
  width: 33.333%;
}
.masonary .project-item::after { background: linear-gradient(0deg,rgba(8,13,12,.76),transparent 48%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.masonary .project-cont { bottom: 0; color: var(--white); left: 0; padding: 24px; position: absolute; right: 0; z-index: 2; }
.masonary .project-info h3 { font-size: clamp(1.5rem,2vw,2.2rem); }
.masonary .expand { color: #d7ba82; text-align: right; }

.blog-grid-four .row { row-gap: 32px; }
.blog-post-item { background: var(--white); height: 100%; }
.blog-post-item .post-thumbnail { aspect-ratio: 1.35; overflow: hidden; }
.blog-post-item .post-thumbnail img { height: 100%; object-fit: cover; transition: transform .6s ease; width: 100%; }
.blog-post-item:hover .post-thumbnail img { transform: scale(1.025); }
.blog-post-item .entry-content { padding: clamp(26px,3vw,44px); }
.blog-post-item .title { font-size: clamp(1.75rem,1.55rem + 1vw,2rem); margin: 22px 0; }
.post-meta { color: var(--brass); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }

.search-results-list .post-row {
  align-items: center;
  border-top: 1px solid rgba(25,32,30,.18);
  display: grid;
  gap: 32px;
  grid-template-columns: minmax(0,1fr) auto;
  margin: 0;
  padding: 38px 0;
}
.search-results-list .post-row:last-child { border-bottom: 1px solid rgba(25,32,30,.18); }
.search-results-list .post-row h5,
.archive .post-row h5 { font-size: clamp(1.8rem,2.6vw,2.8rem); margin: 0 0 14px; }
.search-results-list .post-row p,
.archive .post-row p { color: #555a57; line-height: 1.75; }
.search-results-list .post-row__actions .site-btn,
.archive .readbtn-wrap .site-btn {
  border-bottom: 1px solid rgba(25,32,30,.35);
  display: inline-flex;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  padding-bottom: 9px;
  text-transform: uppercase;
}
.gallery-detail__text {
  border-top: 1px solid rgba(25,32,30,.18);
  margin-top: clamp(48px,6vw,90px);
  padding-top: clamp(42px,5vw,72px);
}
.portfolio-details-section .portfolio-content { margin-inline: auto; max-width: 980px; }

.team-detail-section { padding-block: clamp(100px,10vw,170px); }
.team-detail-section .team-portrait { align-items: end; display: grid; gap: clamp(44px,8vw,130px); grid-template-columns: .8fr 1.2fr; }
.team-detail-section .profile-img img { width: 100%; }
.team-detail-section .team-info h2 { font-size: clamp(4rem,8vw,9rem); }
.team-detail-section .team-summary { margin: clamp(60px,8vw,120px) auto 0; max-width: 960px; }
.team-detail-section .team-summary h3 { font-size: clamp(3rem,5vw,6rem); margin-bottom: 34px; }
.team-detail-section .team-summary p { color: #4b504e; font-size: 1.08rem; line-height: 1.9; }

.faq-accordion > div { border-top: 1px solid rgba(25,32,30,.2); }
.faq-accordion > div:last-child { border-bottom: 1px solid rgba(25,32,30,.2); }
.faq-accordion .acc_title_bar { font-family: var(--serif); font-size: clamp(1.8rem,3vw,3rem); padding: 24px 0; }
.faq-accordion .acc_container { color: #4b504e; line-height: 1.85; padding: 0 0 28px; }

.partner-grid { display: grid; gap: 24px; grid-template-columns: repeat(4,minmax(0,1fr)); width: 100%; }
.partner-grid .mix { align-items: center; background: var(--white); display: flex; justify-content: center; min-height: 190px; padding: 28px; }
.partner-grid img { max-height: 110px; object-fit: contain; }
.nav-controls { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 52px; }
.nav-controls button { background: transparent; border: 1px solid rgba(25,32,30,.25); color: var(--ink); font: 600 .65rem/1 var(--sans); letter-spacing: .12em; padding: 14px 18px; text-transform: uppercase; }
body.page-template-partner .partner-page .nav-controls {
  align-items: center;
  background: transparent;
  display: flex;
  flex-wrap: nowrap;
  gap: clamp(12px,1.1vw,18px);
  justify-content: flex-start;
  margin: 0 0 clamp(40px,4vw,56px);
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  padding: 4px 2px 8px;
  scroll-padding-inline: 2px;
  scrollbar-color: rgba(25,32,30,.28) transparent;
  scrollbar-width: thin;
  white-space: nowrap;
  width: 100%;
  -webkit-overflow-scrolling: touch;
}
body.page-template-partner .partner-page .nav-controls button {
  appearance: none;
  align-items: center;
  background: transparent;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  color: var(--ink);
  display: inline-flex;
  flex: 0 0 auto;
  font: 600 .65rem/1.2 var(--sans);
  justify-content: center;
  letter-spacing: .12em;
  margin: 0;
  min-height: 44px;
  min-width: 44px;
  padding: 10px 4px 9px;
  text-transform: uppercase;
  transition: border-color 180ms ease,color 180ms ease;
  white-space: nowrap;
}
body.page-template-partner .partner-page .nav-controls button::before { content: none; }
body.page-template-partner .partner-page .nav-controls button:first-child { margin-inline-start: auto; }
body.page-template-partner .partner-page .nav-controls button:last-child { margin-inline-end: auto; }
body.page-template-partner .partner-page .nav-controls button:hover {
  border-bottom-color: rgba(164,131,79,.5);
  color: var(--brass);
}
body.page-template-partner .partner-page .nav-controls button.mixitup-control-active {
  border-bottom-color: var(--brass);
  color: var(--brass);
}
body.page-template-partner .partner-page .nav-controls button:focus-visible {
  outline: 2px solid var(--brass);
  outline-offset: 2px;
}
.project-card--queued { display: none; }
.portfolio-archive .project-more {
  justify-content: center;
  margin-top: clamp(56px,6vw,88px);
}
.project-load-more {
  appearance: none;
  background: transparent;
  border: 1px solid rgba(25,32,30,.5);
  border-radius: 0;
  color: var(--ink);
  font-family: var(--sans);
  gap: 48px;
  justify-content: space-between;
  line-height: 1;
  margin-top: 0;
  padding: 18px 24px;
  transition: background-color 180ms ease,border-color 180ms ease,color 180ms ease;
  width: min(100%,260px);
}
.project-load-more span:last-child {
  color: var(--brass);
  display: inline-block;
  transition: transform 180ms ease;
}
.project-load-more:hover,
.project-load-more:focus-visible {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--white);
  gap: 48px;
}
.project-load-more:hover span:last-child,
.project-load-more:focus-visible span:last-child {
  transform: translate3d(3px,-3px,0);
}
.project-load-more:focus-visible {
  outline: 2px solid var(--brass);
  outline-offset: 4px;
}
.portfolio-archive__intro > div {
  color: #575c59;
  grid-column: 1;
  line-height: 1.9;
  max-width: 520px;
}
.contact-page-luxury__intro {
  color: #4b504e;
  font-size: clamp(1.15rem,1.7vw,1.55rem);
  line-height: 1.8;
  margin: 0 0 clamp(46px,6vw,84px) auto;
  max-width: 940px;
}
.contact-locations {
  display: grid;
  gap: 28px;
  grid-template-columns: repeat(2,minmax(0,1fr));
}
.contact-locations article { background: var(--white); padding: clamp(34px,5vw,70px); }
.contact-locations figure { margin-bottom: 28px; max-width: 92px; }
.contact-locations h2 { font-size: clamp(2.8rem,4vw,4.7rem); margin-bottom: 24px; }
.contact-locations p { color: #555a57; line-height: 1.85; }
.contact-map iframe { border: 0; display: block; min-height: 520px; width: 100%; }

@media (max-width: 1080px) {
  body.ablaze-luxury-theme .mobile-nav nav { align-items: stretch; margin-top: 0; }
  body.ablaze-luxury-theme .mobile-nav nav a { display: block; padding: 0; text-align: left; width: 100%; }
  .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9 { width: 50%; }
  .masonary > [class*="col-"], .masonary > .element-item { flex-basis: 50%; max-width: 50%; width: 50%; }
  .partner-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  body.ablaze-luxury-theme header.site-header.shell,
  body.ablaze-luxury-theme header.site-header.sticky.shell { width: 100%; }
  body.admin-bar.ablaze-luxury-theme header.site-header { top: 46px; }
  .interior-hero { min-height: 86svh; }
  .interior-hero__content { min-height: 86svh; padding-bottom: 64px; padding-top: 92px; }
  .interior-hero__content .interior-hero__title { font-size: clamp(3.2rem,12.5vw,4.6rem); }
  body.ablaze-luxury-theme .interior-hero__content .interior-hero__title,
  body.ablaze-luxury-theme .main-banner.banner-slider .banner-content h1,
  body.ablaze-luxury-theme .about-hero__content h1,
  body.ablaze-luxury-theme .services-hero__content h1,
  body.ablaze-luxury-theme .db-hero__content h1,
  body.ablaze-luxury-theme .lift-project-hero h1,
  body.ablaze-luxury-theme.single-tribe_events main h1,
  body.ablaze-luxury-theme.post-type-archive-tribe_events main h1,
  .main-banner.gfd .banner-content h1 { font-size: var(--hero-h1-size-mobile); }
  .container, .container-fluid { padding-inline: 17px; }
  .row { margin-inline: 0; }
  [class*="col-"] { padding-inline: 0; width: 100%; }
  .contact-form { padding: 42px 28px; }
  .contact-locations { grid-template-columns: 1fr; }
  .svs-item { grid-template-columns: 1fr; min-height: 0; }
  .svs-img, .svs-item:nth-child(even) .svs-img { grid-column: 1; grid-row: 1; height: 74vw; min-height: 340px; }
  .svss-info, .svs-item:nth-child(even) .svss-info { grid-column: 1; grid-row: 2; padding: 62px 28px; }
  .section-title.style2 { grid-template-columns: 1fr; }
  .masonary > [class*="col-"], .masonary > .element-item { flex-basis: 100%; max-width: 100%; padding-inline: 0; width: 100%; }
  .partner-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.page-template-partner .partner-page .nav-controls {
    margin-inline: -17px;
    max-width: none;
    padding-inline: 17px;
    scroll-padding-inline: 17px;
    width: calc(100% + 34px);
  }
  .team-detail-section .team-portrait { grid-template-columns: 1fr; }
  .search-results-list .post-row { align-items: start; grid-template-columns: 1fr; }
}
