/* ==========================================================================
   Triple Bow Studios / layout
   Elementor holds the content; this file holds the composition.
   ========================================================================== */

/* ================================================================ HEADER == */
.tbs-header{
  width:100%;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .45s var(--tbs-ease),border-color .45s var(--tbs-ease),
             padding .45s var(--tbs-ease),backdrop-filter .45s var(--tbs-ease);
  padding-block:26px;
}
.tbs-header.is-stuck{
  background:rgba(15,18,17,.88);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  backdrop-filter:saturate(140%) blur(14px);
  border-bottom-color:var(--tbs-hairline);
  padding-block:14px;
}
.tbs-header__inner{
  max-width:var(--tbs-maxw);margin-inline:auto;width:100%;
  padding-inline:var(--tbs-gutter);
  display:flex !important;flex-direction:row !important;
  align-items:center;justify-content:space-between;gap:var(--tbs-md);
}
.tbs-header__right{
  display:flex !important;flex-direction:row !important;
  align-items:center;gap:clamp(18px,2.6vw,44px);width:auto !important;
}
.tbs-header .tbs-lockup{font-size:19px;}

/* nav items from the header builder widget */
.tbs-header .tahefobu-navigation-menu,
.tbs-header .tahefobu-nav-menu{margin:0;}
.tbs-header ul li a,
.tbs-header .tahefobu-nav-menu li a{
  font-family:var(--tbs-body) !important;
  font-size:13px !important;font-weight:600 !important;
  text-transform:uppercase !important;letter-spacing:.15em !important;
  color:var(--tbs-muted) !important;
  position:relative;transition:color .3s var(--tbs-ease);
}
.tbs-header ul li a:hover,
.tbs-header ul li.current-menu-item>a{color:var(--tbs-ink) !important;}
.tbs-header ul li.current-menu-item>a::after{
  content:"";position:absolute;left:var(--tbs-sm);right:var(--tbs-sm);bottom:2px;
  height:1px;background:var(--tbs-accent);
}
.tbs-header .tbs-cta .elementor-button{white-space:nowrap;}

@media(max-width:1000px){
  .tbs-header .tbs-cta{display:none;}
}

/* ================================================================ FOOTER == */
.tbs-footer{
  background:var(--tbs-bg);
  border-top:1px solid var(--tbs-hairline);
  padding-top:var(--tbs-xl);
  overflow:hidden;
}
.tbs-footer__inner{
  max-width:var(--tbs-maxw);margin-inline:auto;width:100%;
  padding-inline:var(--tbs-gutter);
  display:grid !important;
  grid-template-columns:1.5fr .8fr .9fr 1.2fr;
  gap:clamp(28px,4vw,64px);
  align-items:start;
}
@media(max-width:1000px){
  .tbs-footer__inner{grid-template-columns:1fr 1fr;row-gap:48px;}
}
@media(max-width:640px){
  .tbs-footer__inner{grid-template-columns:1fr;row-gap:40px;}
}
.tbs-footer__inner>.e-con,
.tbs-footer__inner>.elementor-widget{width:auto !important;max-width:none !important;}

.tbs-footer h4,
.tbs-footer .tbs-fcol .elementor-heading-title{
  font-family:var(--tbs-body);font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.2em;color:var(--tbs-muted);
  margin:0 0 var(--tbs-md);
}
.tbs-footer .tbs-fcol ul{list-style:none;margin:0;padding:0;}
.tbs-footer .tbs-fcol li{margin-bottom:11px;}
.tbs-footer .tbs-fcol a,
.tbs-footer .tbs-fcol p{font-size:15px;color:var(--tbs-ink);}
.tbs-footer .tbs-fcol a:hover{color:var(--tbs-accent-bright);}
.tbs-footer .tbs-lockup{font-size:21px;}
.tbs-footer__blurb p{font-size:15px;color:var(--tbs-muted);max-width:34ch;margin-top:var(--tbs-md);}

/* the oversized wordmark that closes the page */
.tbs-bigmark{
  margin-top:var(--tbs-xl);
  border-top:1px solid var(--tbs-hairline);
  padding-top:clamp(24px,3vw,40px);
  display:flex;align-items:flex-end;gap:clamp(16px,3vw,44px);
  padding-inline:var(--tbs-gutter);
  max-width:var(--tbs-maxw);margin-inline:auto;
}
.tbs-bigmark__mark{color:var(--tbs-accent);flex:none;}
.tbs-bigmark__mark svg{height:clamp(56px,8vw,104px);width:auto;display:block;}
.tbs-bigmark__type{
  font-family:var(--tbs-display);font-weight:800;font-stretch:125%;
  text-transform:uppercase;letter-spacing:-.02em;line-height:.78;
  font-size:clamp(2.6rem,11.2vw,10.5rem);
  color:transparent;
  -webkit-text-stroke:1px var(--tbs-hairline);
  white-space:nowrap;user-select:none;
  transform:translateY(.09em);
}
.tbs-footer__base{
  max-width:var(--tbs-maxw);margin-inline:auto;width:100%;
  padding:clamp(24px,3vw,36px) var(--tbs-gutter) clamp(28px,3vw,40px);
  display:flex !important;flex-direction:row !important;flex-wrap:wrap;
  justify-content:space-between;align-items:center;gap:var(--tbs-md);
}
.tbs-footer__base p{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tbs-muted);margin:0;}

/* ============================================================== SECTIONS == */
.tbs-section{padding-block:var(--tbs-xl);}
.tbs-section--lg{padding-block:var(--tbs-xxl);}
.tbs-section--tight{padding-block:var(--tbs-lg);}
.tbs-section--surface{background:var(--tbs-surface);}
.tbs-wrap{
  max-width:var(--tbs-maxw);margin-inline:auto;width:100%;
  padding-inline:var(--tbs-gutter);
}
@media(max-width:900px){
  .tbs-section{padding-block:var(--tbs-lg);}
  .tbs-section--lg{padding-block:calc(var(--tbs-lg) * 1.4);}
}

/* ================================================================== HERO == */
.tbs-hero{
  position:relative;
  min-height:min(92vh,900px);
  display:grid !important;
  grid-template-columns:1.02fr .98fr;
  align-items:center;
  padding:0 !important;
  overflow:hidden;
}
.tbs-hero__copy{
  padding:clamp(96px,11vw,150px) clamp(28px,5vw,84px) clamp(64px,7vw,110px)
          max(var(--tbs-gutter),calc((100vw - var(--tbs-maxw))/2 + var(--tbs-gutter)));
  width:auto !important;max-width:none !important;
  z-index:2;
}
.tbs-hero__copy h1{margin-bottom:var(--tbs-md);}
.tbs-hero__copy .tbs-lead{max-width:44ch;color:var(--tbs-muted);}
.tbs-hero__actions{
  display:flex !important;flex-direction:row !important;flex-wrap:wrap;
  gap:14px;margin-top:clamp(28px,3.4vw,44px);width:auto !important;
}
/* the plate runs off the right edge of the viewport */
.tbs-hero__plate{
  position:relative;align-self:stretch;
  width:auto !important;max-width:none !important;padding:0 !important;
  min-height:min(92vh,900px);
}
.tbs-hero__plate .elementor-widget-image,
.tbs-hero__plate .elementor-widget-container,
.tbs-hero__plate figure{height:100%;margin:0;}
.tbs-hero__plate img{width:100%;height:100%;object-fit:cover;object-position:center;}
.tbs-hero__plate::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--tbs-bg) 0%,rgba(15,18,17,.55) 22%,rgba(15,18,17,0) 62%);
}
@media(max-width:900px){
  .tbs-hero{grid-template-columns:1fr;min-height:0;}
  .tbs-hero__plate{order:-1;min-height:46vh;}
  .tbs-hero__plate::after{
    background:linear-gradient(180deg,rgba(15,18,17,.5) 0%,rgba(15,18,17,0) 40%,var(--tbs-bg) 97%);
  }
  .tbs-hero__copy{padding:0 var(--tbs-gutter) var(--tbs-lg);margin-top:-8vh;position:relative;}
}

/* ============================================================= STATEMENT == */
.tbs-statement .tbs-wrap{display:grid;grid-template-columns:1fr;gap:var(--tbs-md);}
.tbs-statement h2{max-width:20ch;}
.tbs-statement__body{
  display:grid !important;grid-template-columns:1fr 1fr;
  gap:clamp(28px,4vw,72px);margin-top:var(--tbs-lg);
}
@media(max-width:820px){.tbs-statement__body{grid-template-columns:1fr;}}

/* ========================================================== FEATURED WORK == */
/* deliberately not a row of three: one tall plate, two stacked beside it */
.tbs-featured{
  display:grid !important;
  grid-template-columns:1.24fr .96fr;
  grid-template-rows:auto auto;
  gap:clamp(20px,2.6vw,40px);
  margin-top:var(--tbs-lg);
}
.tbs-featured>*:nth-child(1){grid-row:span 2;}
.tbs-featured>*{width:auto !important;max-width:none !important;}
.tbs-featured .tbs-plate .elementor-widget-image img{aspect-ratio:4/5;}
.tbs-featured>*:nth-child(1) .tbs-plate .elementor-widget-image img{aspect-ratio:4/5.6;height:100%;}
.tbs-featured>*:nth-child(2) .tbs-plate .elementor-widget-image img,
.tbs-featured>*:nth-child(3) .tbs-plate .elementor-widget-image img{aspect-ratio:16/10;}
@media(max-width:820px){
  .tbs-featured{grid-template-columns:1fr;}
  .tbs-featured>*:nth-child(1){grid-row:auto;}
  .tbs-featured .tbs-plate .elementor-widget-image img{aspect-ratio:4/3 !important;}
}

.tbs-headrow{
  display:flex !important;flex-direction:row !important;flex-wrap:wrap;
  align-items:flex-end;justify-content:space-between;gap:var(--tbs-md);
}
.tbs-headrow>*{width:auto !important;}

/* =============================================================== PROCESS == */
.tbs-process{
  display:grid !important;grid-template-columns:repeat(2,1fr);
  gap:0;margin-top:var(--tbs-lg);
  border-top:1px solid var(--tbs-hairline);
}
.tbs-process>*{
  width:auto !important;max-width:none !important;
  padding:clamp(28px,3.4vw,44px) clamp(20px,3vw,48px) clamp(32px,4vw,56px) 0;
  border-bottom:1px solid var(--tbs-hairline);
}
.tbs-process>*:nth-child(odd){border-right:1px solid var(--tbs-hairline);padding-right:clamp(28px,4vw,64px);}
.tbs-process>*:nth-child(even){padding-left:clamp(28px,4vw,64px);}
.tbs-process h3{margin-bottom:12px;}
.tbs-process p{color:var(--tbs-muted);font-size:15.5px;}
@media(max-width:760px){
  .tbs-process{grid-template-columns:1fr;}
  .tbs-process>*:nth-child(odd){border-right:0;padding-right:0;}
  .tbs-process>*:nth-child(even){padding-left:0;}
}

/* ============================================================ WORK INDEX == */
.tbs-workgrid{
  display:grid !important;
  grid-template-columns:repeat(6,1fr);
  gap:clamp(20px,2.6vw,44px);
  margin-top:var(--tbs-lg);
}
.tbs-workgrid>*{width:auto !important;max-width:none !important;}
/* a rhythm of 3-up, 2-up wide, 3-up so the grid never reads as a spreadsheet */
.tbs-workgrid>*{grid-column:span 2;}
.tbs-workgrid>*:nth-child(4),
.tbs-workgrid>*:nth-child(5){grid-column:span 3;}
.tbs-workgrid .tbs-plate .elementor-widget-image img{aspect-ratio:4/5;}
.tbs-workgrid>*:nth-child(4) .tbs-plate .elementor-widget-image img,
.tbs-workgrid>*:nth-child(5) .tbs-plate .elementor-widget-image img{aspect-ratio:16/11;}
@media(max-width:1000px){
  .tbs-workgrid{grid-template-columns:repeat(2,1fr);}
  .tbs-workgrid>*,
  .tbs-workgrid>*:nth-child(4),
  .tbs-workgrid>*:nth-child(5){grid-column:span 1;}
  .tbs-workgrid .tbs-plate .elementor-widget-image img{aspect-ratio:4/5 !important;}
}
@media(max-width:620px){
  .tbs-workgrid{grid-template-columns:1fr;}
  .tbs-workgrid .tbs-plate .elementor-widget-image img{aspect-ratio:4/3 !important;}
}

/* ================================================================= SPLIT == */
.tbs-split{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,88px);
  align-items:center;
}
.tbs-split--wide-left{grid-template-columns:1.25fr .75fr;}
.tbs-split--wide-right{grid-template-columns:.8fr 1.2fr;}
.tbs-split--top{align-items:start;}
.tbs-split>*{width:auto !important;max-width:none !important;}
@media(max-width:880px){
  .tbs-split,.tbs-split--wide-left,.tbs-split--wide-right{grid-template-columns:1fr;}
  .tbs-split__media{order:-1;}
}

/* a portrait plate that overlaps the section edge */
.tbs-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.tbs-portrait{position:relative;}
.tbs-portrait::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:38%;
  background:linear-gradient(180deg,rgba(15,18,17,0),rgba(15,18,17,.5));
  pointer-events:none;
}

/* ================================================================ VALUES == */
.tbs-values{border-top:1px solid var(--tbs-hairline);margin-top:var(--tbs-lg);}
.tbs-values>*{
  width:auto !important;max-width:none !important;
  border-bottom:1px solid var(--tbs-hairline);
  padding-block:clamp(26px,3vw,40px);
  display:grid !important;grid-template-columns:.34fr 1fr;gap:clamp(20px,4vw,64px);
  align-items:start;
}
.tbs-values h3{font-size:1.15rem;margin:0;}
.tbs-values p{color:var(--tbs-muted);margin:0;}
@media(max-width:760px){
  .tbs-values>*{grid-template-columns:1fr;gap:10px;}
}

/* ============================================================== INQUIRY === */
.tbs-inquiry{position:relative;overflow:hidden;background:var(--tbs-surface);}
.tbs-inquiry__bg{position:absolute;inset:0;z-index:0;}
.tbs-inquiry__bg img{width:100%;height:100%;object-fit:cover;opacity:.30;}
.tbs-inquiry .tbs-wrap{position:relative;z-index:1;}
.tbs-inquiry::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(23,27,25,.72),rgba(15,18,17,.92));
}
.tbs-inquiry .tbs-wrap{position:relative;z-index:2;}

/* ============================================================== SHOP SLOT = */
.tbs-slot{
  border:1px dashed var(--tbs-hairline);
  background:var(--tbs-surface);
  padding:clamp(40px,6vw,88px) clamp(24px,4vw,64px);
  text-align:center;
  margin-top:var(--tbs-lg);
}
.tbs-slot h3{margin-bottom:12px;}
.tbs-slot p{color:var(--tbs-muted);margin-inline:auto;}
.tbs-shopgrid{
  display:grid !important;grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,2.6vw,40px);margin-top:var(--tbs-lg);
}
.tbs-shopgrid>*{width:auto !important;max-width:none !important;}
.tbs-shopgrid .tbs-plate .elementor-widget-image img{aspect-ratio:4/5;}
@media(max-width:900px){.tbs-shopgrid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.tbs-shopgrid{grid-template-columns:1fr;}}

/* ============================================================== CONTACT === */
.tbs-contact{
  display:grid !important;grid-template-columns:1.15fr .85fr;
  gap:clamp(36px,5vw,92px);align-items:start;
}
.tbs-contact>*{width:auto !important;max-width:none !important;}
.tbs-contact__form{
  background:var(--tbs-surface);
  padding:clamp(28px,4vw,52px);
}
.tbs-contact__aside dl{margin:0;}
.tbs-contact__aside dt{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;
  color:var(--tbs-muted);margin-bottom:7px;
}
.tbs-contact__aside dd{margin:0 0 var(--tbs-md);font-size:16px;}
@media(max-width:880px){.tbs-contact{grid-template-columns:1fr;}}

/* ============================================================ PAGE HEAD === */
.tbs-pagehead{
  padding-top:clamp(150px,17vw,240px);
  padding-bottom:clamp(40px,5vw,72px);
  border-bottom:1px solid var(--tbs-hairline);
}
.tbs-pagehead h1{max-width:16ch;margin-bottom:var(--tbs-md);}
.tbs-pagehead .tbs-lead{max-width:52ch;color:var(--tbs-muted);}
.tbs-pagehead__row{
  display:grid !important;grid-template-columns:1.1fr .9fr;
  gap:clamp(28px,5vw,80px);align-items:end;
}
.tbs-pagehead__row>*{width:auto !important;max-width:none !important;}
@media(max-width:880px){.tbs-pagehead__row{grid-template-columns:1fr;gap:var(--tbs-md);}}

/* ============================================== elementor widget resets === */
.tbs .elementor-widget:not(:last-child){margin-block-end:0;}
.tbs-stack>.elementor-widget:not(:last-child){margin-block-end:var(--tbs-md);}
.tbs .e-con>.e-con-inner{padding:0;}
.tbs .elementor-widget-image figure,
.tbs .elementor-widget-image img{margin:0;}
.tbs .elementor-button{
  font-family:var(--tbs-body);font-size:13px;font-weight:700;
  text-transform:uppercase;letter-spacing:.15em;border-radius:0;
  padding:17px 30px;transition:background-color .3s var(--tbs-ease),color .3s var(--tbs-ease);
}
.tbs .elementor-button:hover{text-decoration:none;}

/* ==========================================================================
   Elementor global-kit overrides.
   Elementor prints its kit CSS in an inline <style> after the theme sheets, so
   equal-specificity rules lose. These carry one extra step of specificity so the
   brand scale wins without resorting to !important on every declaration.
   ========================================================================== */
body .elementor-widget-heading .elementor-heading-title{
  font-family:var(--tbs-display);font-weight:800;font-stretch:112%;
  line-height:1.04;letter-spacing:-.015em;color:var(--tbs-ink);
}
body .elementor-widget-heading h1.elementor-heading-title{
  font-size:clamp(2.6rem,6.4vw,5.4rem);line-height:1.0;
}
body .elementor-widget-heading h2.elementor-heading-title{
  font-size:clamp(2rem,4.2vw,3.5rem);
}
body .elementor-widget-heading h3.elementor-heading-title{
  font-size:clamp(1.35rem,2.3vw,1.95rem);letter-spacing:-.01em;
}
body .elementor-widget-heading h4.elementor-heading-title{
  font-size:1.2rem;font-stretch:108%;letter-spacing:0;
}
body .elementor-widget-text-editor,
body .elementor-widget-text-editor p,
body .elementor-widget-text-editor li{
  font-family:var(--tbs-body);color:var(--tbs-ink);font-size:17px;line-height:1.65;
}
body .elementor-widget-text-editor a{color:var(--tbs-accent-bright);}

/* plate captions and titles sit below the kit rules too */
body .tbs-plate .elementor-widget-heading .elementor-heading-title{
  font-size:1.16rem;font-weight:700;font-stretch:106%;line-height:1.2;
}
body .tbs-plate .elementor-widget-text-editor p{
  font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;
  color:var(--tbs-muted);line-height:1.55;margin:0;
}
body .tbs-footer .tbs-fcol .elementor-widget-heading .elementor-heading-title,
body .tbs-footer .tbs-footer__cta .elementor-widget-heading .elementor-heading-title{
  font-family:var(--tbs-body);font-size:11px;font-weight:700;font-stretch:100%;
  text-transform:uppercase;letter-spacing:.2em;color:var(--tbs-muted);line-height:1.5;
}
body .tbs-lead p,body p.tbs-lead,body .tbs-lead{
  font-size:clamp(1.06rem,1.55vw,1.3rem);line-height:1.6;
}
body .tbs-quiet p{color:var(--tbs-muted);}

/* ------------------------------------------------------------- buttons -- */
body .tbs-btn-primary .elementor-button,
body .tbs-btn-ghost .elementor-button{
  font-family:var(--tbs-body);font-size:13px;font-weight:700;
  text-transform:uppercase;letter-spacing:.15em;line-height:1;
  padding:18px 30px;border-radius:0;border:0;
  transition:background-color .3s var(--tbs-ease),color .3s var(--tbs-ease),
             box-shadow .3s var(--tbs-ease);
}
body .tbs-btn-primary .elementor-button{background-color:var(--tbs-accent);color:var(--tbs-bg);}
body .tbs-btn-primary .elementor-button:hover,
body .tbs-btn-primary .elementor-button:focus{background-color:var(--tbs-accent-bright);color:var(--tbs-bg);}
body .tbs-btn-ghost .elementor-button{
  background-color:transparent;color:var(--tbs-ink);
  box-shadow:inset 0 0 0 1px var(--tbs-ink);
}
body .tbs-btn-ghost .elementor-button:hover,
body .tbs-btn-ghost .elementor-button:focus{background-color:var(--tbs-ink);color:var(--tbs-bg);}
body .tbs-btn-primary,body .tbs-btn-ghost{width:auto !important;}

/* CF7 submit uses the same primary treatment */
body .wpcf7 .wpcf7-submit{line-height:1;}
/* The header builder hides its wrapper with an inline #tahefobu-header{opacity:0}
   and only reveals it from JavaScript. Content must never depend on a script
   running, so the header is forced visible here. Scroll hide/show is not used:
   this header condenses instead. */
#tahefobu-header{opacity:1 !important;}
#tahefobu-header.ta-sticky-active{background:transparent;}

/* Mobile menu sheet from the header builder, dressed to the brand */
.tahefobu-mobile-toggle svg,.tahefobu-mobile-toggle span{color:var(--tbs-ink) !important;background-color:var(--tbs-ink);}
.tahefobu-mobile-menu,.tahefobu-nav-menu-mobile{background:var(--tbs-raised) !important;}