/*
 * The Alpine Co. Design System V8
 * Editorial alpine refinement inspired by workshop signage and technical manuals.
 * Homepage and subpage heroes are intentionally not restyled here.
 */

:root{
  --tac-v8-ink:#0a0e0f;
  --tac-v8-ink-2:#111719;
  --tac-v8-paper:#f6f3ed;
  --tac-v8-snow:#fffdfa;
  --tac-v8-stone:#d8d2c8;
  --tac-v8-muted:#5d625f;
  --tac-v8-orange:#ee5b19;
  --tac-v8-orange-dark:#c94710;
  --tac-v8-line:rgba(10,14,15,.16);
  --tac-v8-display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --tac-v8-body:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --tac-v8-shadow:0 24px 70px rgba(10,14,15,.10);
}

html{scroll-behavior:smooth}
body{
  background:var(--tac-v8-snow);
  color:var(--tac-v8-ink);
  font-family:var(--tac-v8-body);
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body p,
body .elementor-widget-text-editor,
body .elementor-widget-text-editor p,
body .elementor-widget-button,
body .elementor-widget-form{
  font-family:var(--tac-v8-body)!important;
}
body a,body button,body input,body select,body textarea{font-family:var(--tac-v8-body)}

/* A dependable, visible focus language for every visitor. */
body :where(a,button,input,select,textarea,summary):focus-visible{
  outline:3px solid var(--tac-v8-orange)!important;
  outline-offset:4px!important;
  box-shadow:none!important;
}

/* Editorial typography below the heroes. */
body :where(.tac2-heading,.tac2-craft,.tac2-sustain,.tac2-process,.tac2-pricing,.tac2-review,.tac11-location,.tac3-story,.tac3-values,.tac3-contact,.tac3-faq,.tac3-bookintro,.tac5-origin,.tac5-founders,.tac5-sustainable,.tac5-final,.tac7-packages,.tac7-ir,.tac7-essentials,.tac7-flat,.tac7-process,.tac12-booking-service) :is(h2,h3),
body :where(.tac3-legal,.tac-legal,.tac-cookie) :is(h1,h2,h3){
  font-family:var(--tac-v8-display)!important;
  font-weight:700!important;
  letter-spacing:.01em!important;
  text-wrap:balance;
}
body :where(.tac2-heading,.tac2-craft,.tac2-sustain,.tac11-location,.tac3-story,.tac3-values,.tac3-contact,.tac3-faq,.tac3-bookintro,.tac5-origin,.tac5-founders,.tac5-sustainable,.tac7-packages,.tac7-ir,.tac7-essentials,.tac7-flat,.tac12-booking-service) h2{
  font-size:clamp(42px,4.8vw,68px)!important;
  line-height:.94!important;
}
.tac2-kicker{
  margin-bottom:17px!important;
  color:var(--tac-v8-orange)!important;
  font:800 11px/1 var(--tac-v8-body)!important;
  letter-spacing:.19em!important;
}
.tac2-kicker:before{
  content:"";
  display:inline-block;
  width:28px;
  height:2px;
  margin:0 11px 3px 0;
  background:currentColor;
}

/* Header: compact technical navigation, no change to hero. */
.tac8-header{
  background:#070a0b!important;
  border-bottom-color:rgba(255,255,255,.13)!important;
  box-shadow:0 8px 28px rgba(0,0,0,.08);
}
.tac8-header.is-scrolled{
  background:rgba(7,10,11,.76)!important;
  border-bottom-color:rgba(255,255,255,.16)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.22);
}
.tac8-header-inner{min-height:88px}
.tac8-brand-name{
  font-family:var(--tac-v8-display)!important;
  font-size:23px!important;
  font-weight:700!important;
  letter-spacing:.055em!important;
  text-transform:uppercase;
}
.tac8-main-menu a{
  font-size:11px!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
  text-transform:uppercase;
}
.tac8-book,.tac2-btn,.tac11-route{
  position:relative;
  min-height:48px;
  border-radius:2px!important;
  font-size:11px!important;
  font-weight:800!important;
  letter-spacing:.075em!important;
  box-shadow:none;
}
.tac8-book,
.tac2-btn:not(.tac2-btn--ghost),
.tac11-route{
  color:var(--tac-v8-ink)!important;
}
.tac2-btn--ghost{color:#fff!important}
.tac8-book:hover,.tac2-btn:hover,.tac11-route:hover{
  background:var(--tac-v8-orange-dark)!important;
  border-color:var(--tac-v8-orange-dark)!important;
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(238,91,25,.24)!important;
}

/* Deliberate section rhythm and warm material palette. */
.tac2-section,.tac3-story,.tac3-contact,.tac3-faq,.tac5-origin,.tac5-founders,.tac5-sustainable,.tac7-packages,.tac7-essentials{
  padding-block:clamp(86px,9vw,138px)!important;
}
.tac2-heading{max-width:850px}
.tac2-heading.tac2-center{margin-inline:auto}
.tac2-heading>p:not(.tac2-kicker){
  max-width:680px;
  color:var(--tac-v8-muted)!important;
  font-size:15px!important;
  line-height:1.75!important;
}
.tac2-heading.tac2-center>p:not(.tac2-kicker){margin-inline:auto}

/* The orange proof strip becomes a refined workshop specification rail. */
.tac2-proof{
  background:var(--tac-v8-ink-2)!important;
  border-top:1px solid rgba(255,255,255,.11);
  border-bottom:1px solid rgba(255,255,255,.11);
}
.tac2-proof__grid{padding-block:28px!important}
.tac2-proof article{border-color:rgba(255,255,255,.14)!important}
.tac2-proof img{filter:sepia(1) saturate(8) hue-rotate(338deg) brightness(1.05)}
.tac2-proof h3{
  color:#fff;
  font:700 19px/1 var(--tac-v8-display)!important;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.tac2-proof p{color:#aeb6b2;font-size:11px!important}

/* Services: numbered editorial modules instead of generic boxes. */
.tac2-cardgrid{counter-reset:tac-service;gap:16px!important}
.tac2-service{
  counter-increment:tac-service;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:330px!important;
  padding:34px 30px 30px!important;
  background:var(--tac-v8-snow);
  border:1px solid var(--tac-v8-line)!important;
  border-top:4px solid var(--tac-v8-ink)!important;
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease;
}
.tac2-service:after{
  content:"0" counter(tac-service);
  position:absolute;
  right:18px;
  bottom:-20px;
  z-index:-1;
  color:rgba(10,14,15,.045);
  font:800 118px/.8 var(--tac-v8-display);
}
.tac2-service:hover{
  z-index:2;
  border-top-color:var(--tac-v8-orange)!important;
  transform:translateY(-8px);
  box-shadow:var(--tac-v8-shadow);
}
.tac2-service img{width:52px!important;height:52px!important}
.tac2-service h3{
  max-width:100%;
  font-size:clamp(23px,1.9vw,28px)!important;
  line-height:1!important;
  letter-spacing:-.01em!important;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}
.tac2-service p{
  color:#4d5350!important;
  font-size:14px!important;
  line-height:1.72!important;
}
.tac2-service a{display:inline-flex;align-items:center;min-height:44px;letter-spacing:.04em}

/* Craft split: warmer, more cinematic, still highly readable. */
.tac2-craft__copy{
  position:relative;
  overflow:hidden;
  background:var(--tac-v8-ink)!important;
}
.tac2-craft__copy:before{
  content:"WORKSHOP";
  position:absolute;
  right:-18px;
  bottom:-24px;
  color:rgba(255,255,255,.035);
  font:800 clamp(90px,11vw,180px)/.75 var(--tac-v8-display);
  letter-spacing:.02em;
  pointer-events:none;
}
.tac2-craft__copy>div{position:relative;z-index:1}
.tac2-craft h2{color:#fff;text-transform:uppercase}
.tac2-craft p{font-size:15px!important;line-height:1.85!important}
.tac2-craft__image{overflow:hidden}
.tac2-craft__image img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.tac2-craft:hover .tac2-craft__image img{transform:scale(1.025)}

/* Process: technical line, oversized step numbers. */
.tac2-process{background:var(--tac-v8-paper)}
.tac2-process__grid{gap:22px!important}
.tac2-process article{
  min-height:245px;
  padding:30px 24px 24px;
  background:var(--tac-v8-snow);
  border-top:1px solid var(--tac-v8-line);
  text-align:left!important;
}
.tac2-process article:not(:last-child):after{display:none!important}
.tac2-process img{width:38px!important;height:38px!important}
.tac2-process b{
  margin:18px 0 10px!important;
  font:800 42px/.8 var(--tac-v8-display)!important;
}
.tac2-process h3{
  margin:0 0 10px;
  font-size:22px!important;
  line-height:1!important;
  text-transform:uppercase;
}

/* Pricing: premium comparison table without sacrificing scan speed. */
.tac2-pricing{background:var(--tac-v8-snow);border-top:0!important}
.tac2-pricegrid{gap:14px!important;align-items:stretch}
.tac2-pricegrid article{
  min-height:380px!important;
  padding:34px 28px!important;
  background:#fff;
  border:1px solid var(--tac-v8-line)!important;
  text-align:left!important;
  transition:transform .25s ease,box-shadow .25s ease;
}
.tac2-pricegrid article:hover{transform:translateY(-6px);box-shadow:var(--tac-v8-shadow)}
.tac2-pricegrid h3{font-size:28px!important;line-height:1!important;text-transform:uppercase}
.tac2-pricegrid strong{font:700 48px/1 var(--tac-v8-display)!important}
.tac2-pricegrid li{font-size:12px!important}
.tac2-pricegrid a{display:inline-flex;align-items:center;min-height:44px}
.tac2-price--featured{
  background:var(--tac-v8-ink)!important;
  border-color:var(--tac-v8-ink)!important;
  color:#fff;
  transform:translateY(-8px);
}
.tac2-price--featured h3,.tac2-price--featured li{color:#fff}
.tac2-price--featured small{color:#b8c0bc}
.tac2-price--featured:hover{transform:translateY(-12px)}
.tac2-badge{top:0!important;left:auto!important;right:0;transform:none!important;letter-spacing:.1em}
.tac2-badge{color:var(--tac-v8-ink)!important}

/* Sustainability and reviews: magazine-like pauses in the journey. */
.tac2-sustain{background:var(--tac-v8-paper)!important}
.tac2-sustain h2{text-transform:uppercase}
.tac2-review{
  position:relative;
  overflow:hidden;
  padding-block:clamp(72px,8vw,118px)!important;
  background:var(--tac-v8-ink)!important;
}
.tac2-review:before{
  content:"“";
  position:absolute;
  left:6vw;
  top:-58px;
  color:rgba(238,91,25,.14);
  font:800 300px/1 Georgia,serif;
}
.tac2-review>.tac2-wrap{position:relative;z-index:1}
.tac2-review blockquote{
  max-width:820px;
  font:700 clamp(30px,3.7vw,54px)/1.08 var(--tac-v8-display)!important;
  text-transform:uppercase;
  letter-spacing:.01em;
}

/* Roermond location: visually connects retail and workshop. */
.tac11-location{background:var(--tac-v8-paper)!important}
.tac11-location__facts article,.tac12-service-card{
  background:rgba(255,255,255,.68)!important;
  border-color:var(--tac-v8-line)!important;
}
.tac12-service-card--featured{background:var(--tac-v8-ink)!important}
.tac11-location figcaption{box-shadow:0 22px 55px rgba(0,0,0,.22)}

/* Orange is used with ink text: 5.68:1 contrast instead of 3.42:1 with white. */
.tac7-benefits,
.tac3-cta,
.tac5-final,
.tac7-cta{
  color:var(--tac-v8-ink)!important;
}
.tac7-benefits article{border-color:rgba(10,14,15,.2)!important}
.tac7-benefits img{filter:brightness(0)!important}
.tac7-cta .tac2-btn--ghost,
.tac5-final .tac2-btn--ghost{
  border-color:var(--tac-v8-ink)!important;
  color:var(--tac-v8-ink)!important;
}
.tac5-final .tac2-btn:first-child{
  background:#f2f3f0!important;
  border-color:#f2f3f0!important;
  color:var(--tac-v8-ink)!important;
  box-shadow:0 10px 28px rgba(10,14,15,.12)!important;
}
.tac5-final .tac2-btn:first-child:hover,
.tac5-final .tac2-btn:first-child:focus-visible{
  background:#fff!important;
  border-color:#fff!important;
  color:var(--tac-v8-ink)!important;
  box-shadow:0 16px 34px rgba(10,14,15,.2)!important;
}
.tac12-label--done{color:var(--tac-v8-ink)!important}

/* About and packages: a coherent high-end editorial system. */
.tac5-origin,.tac5-founders,.tac7-packages,.tac7-essentials{background:var(--tac-v8-snow)}
.tac5-origin h2,.tac5-founders h2,.tac5-sustainable h2,.tac7-ir h2,.tac7-flat h2{text-transform:uppercase}
.tac5-founder__copy h3{
  font:700 clamp(38px,4vw,58px)/.95 var(--tac-v8-display)!important;
  text-transform:uppercase;
}
.tac5-founder__copy h4{letter-spacing:.12em;text-transform:uppercase}
.tac5-founder__photo{position:relative;overflow:hidden}
.tac5-founder__photo:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 70%,rgba(8,11,12,.22));
}
.tac5-founder__photo img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.tac5-founder:hover .tac5-founder__photo img{transform:scale(1.025)}
.tac5-facts b{letter-spacing:.12em}
.tac5-values{background:var(--tac-v8-ink)!important}
.tac6-package,.tac7-essentialgrid>article{
  background:#fff;
  border-color:var(--tac-v8-line)!important;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.tac6-package:hover,.tac7-essentialgrid>article:hover{
  border-color:rgba(238,91,25,.48)!important;
  transform:translateY(-6px);
  box-shadow:var(--tac-v8-shadow);
}
.tac6-package h3,.tac7-essentialgrid h3{
  font-size:28px!important;
  line-height:1!important;
  text-transform:uppercase;
}
.tac6-prices strong,.tac7-essentialprices strong{font-family:var(--tac-v8-display)!important;font-size:34px!important}
.tac7-ir,.tac7-process{background:var(--tac-v8-ink)!important}

/* Contact, legal and booking support surfaces. */
.tac6-formcard{
  background:var(--tac-v8-paper)!important;
  border-top:4px solid var(--tac-v8-orange);
  box-shadow:var(--tac-v8-shadow);
}
.tac6-formcard input:not([type=checkbox]),.tac6-formcard textarea{
  border-color:var(--tac-v8-stone)!important;
  border-radius:2px!important;
}
.tac6-formcard .elementor-button{
  color:var(--tac-v8-ink)!important;
  font-weight:800!important;
}
.tac3-faq{background:var(--tac-v8-paper)!important}
.tac3-faq details{border:1px solid var(--tac-v8-line)!important;margin-bottom:10px}
.tac3-faq summary{min-height:44px;display:flex;align-items:center;font-weight:700!important}
.tac3-legal>.tac2-wrap,.tac-legal__content,.tac-cookie__content{
  max-width:900px;
}
.tac12-booking-service__grid>article{transition:transform .22s ease,box-shadow .22s ease}
.tac12-booking-service__grid>article:hover{transform:translateY(-4px);box-shadow:var(--tac-v8-shadow)}

/* Footer as the final dark editorial chapter. */
.tac8-footer{
  padding-top:86px!important;
  background:var(--tac-v8-ink)!important;
  border-top:4px solid var(--tac-v8-orange);
}
.tac8-footer h2{
  font:700 24px/1 var(--tac-v8-display)!important;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.tac8-footer a{min-height:32px;display:flex;align-items:center}
.tac8-footer-bottom{border-color:rgba(255,255,255,.12)!important}

/* Prevent inherited Elementor pink and protect booking/cookie contrast. */
.tac8-toggle{
  color:var(--tac-v8-ink)!important;
  background:var(--tac-v8-orange)!important;
}
.tac-booking .date-card{color:var(--tac-v8-ink)!important}
.tac-booking .date-card.is-selected,
.tac-booking .date-card[aria-pressed="true"]{
  background:var(--tac-v8-orange)!important;
  color:var(--tac-v8-ink)!important;
}
.tac-booking .tac-actions button:not(.secondary){
  background:var(--tac-v8-orange)!important;
  color:var(--tac-v8-ink)!important;
  font-weight:800!important;
}
.tac-consent .primary{
  color:var(--tac-v8-ink)!important;
  font-weight:800!important;
}

@media(max-width:1024px){
  .tac2-heading h2{font-size:clamp(42px,6vw,58px)!important}
  .tac2-service{min-height:300px!important}
  .tac2-price--featured{transform:none}
  .tac2-price--featured:hover{transform:translateY(-6px)}
}

@media(max-width:700px){
  .tac2-section,.tac3-story,.tac3-contact,.tac3-faq,.tac5-origin,.tac5-founders,.tac5-sustainable,.tac7-packages,.tac7-essentials{
    padding-block:76px!important;
  }
  body :where(.tac2-heading,.tac2-craft,.tac2-sustain,.tac11-location,.tac3-story,.tac3-values,.tac3-contact,.tac3-faq,.tac3-bookintro,.tac5-origin,.tac5-founders,.tac5-sustainable,.tac7-packages,.tac7-ir,.tac7-essentials,.tac7-flat,.tac12-booking-service) h2{
    font-size:clamp(38px,12vw,50px)!important;
  }
  .tac2-kicker{font-size:10px!important;letter-spacing:.16em!important}
  .tac2-proof__grid{grid-template-columns:1fr 1fr!important}
  .tac2-proof article{min-width:0;padding:20px 14px!important}
  .tac2-proof h3{font-size:18px!important}
  .tac2-service{min-height:275px!important}
  .tac2-process article{min-height:0}
  .tac2-pricegrid article{min-height:0!important}
  .tac2-review>.tac2-wrap{gap:12px}
  .tac2-review button{min-width:44px;min-height:44px}
  .tac2-review blockquote{font-size:clamp(27px,8.5vw,38px)!important}
  .tac5-founder__copy h3{font-size:44px!important}
  .tac8-footer{padding-top:66px!important}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
