/**
 * LCS Brutalism — breathing space, 100vh rhythm, fill hovers (no scale/translate)
 */

:root {
  --space-section: clamp(4rem, 12vh, 8rem);
  --space-block: clamp(2rem, 5vh, 3.5rem);
  --content-narrow: min(640px, 100%);
  --content-mid: min(820px, 100%);
  --content-wide: min(1000px, 100%);
  --fill-duration: 0.22s;
}

/* --- Global: no hover movement --- */
.btn:hover,
.btn:active,
.btn-bar .btn:hover,
.service-item:hover,
.service-item__link:hover,
.process-step:hover,
.material-item:hover,
.stats-band__cell:hover,
.contact-panel__chip:hover,
.location-chip:hover,
.social-link:hover,
.lcs-nav__btn:hover,
.lcs-nav__mega-link:hover,
.lcs-map-overlay__btn:hover,
.wa-fab:hover,
.chat-launcher:hover,
.faq-item summary:hover {
  transform: none !important;
}

/* --- Section breathing --- */
.section {
  padding: var(--space-section) clamp(1.5rem, 6vw, 5rem);
}

.section--center {
  justify-content: center;
  text-align: center;
}

.section--center .section__inner {
  width: var(--content-mid);
  margin-inline: auto;
}

.section--center .section-title {
  margin-inline: auto;
}

.section--center .section-sub {
  margin-inline: auto;
  max-width: 42ch;
}

.section--breathe .section-title {
  margin-bottom: var(--space-block);
}

.section--breathe .service-grid,
.section--breathe .material-list,
.section--breathe .process-list {
  margin-top: var(--space-block);
}

/* Services — centered block, fill hover */
.section--center .service-grid {
  max-width: var(--content-wide);
  margin-inline: auto;
  text-align: left;
}

.service-item {
  padding: 1.75rem 0;
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
}

.section--cream .service-item:hover,
.section--cream .service-item__link:hover {
  background: var(--black);
  color: var(--cream);
}

.section--cream .service-item:hover .service-line,
.section--cream .service-item__link:hover .service-line {
  background: var(--cream);
}

/* Materials — centered list */
.material-list {
  max-width: var(--content-narrow);
  margin-inline: auto;
}

.material-item {
  padding: 2rem 0;
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
  justify-content: center;
}

.section--gray .material-item:hover {
  background: rgba(2, 2, 2, 0.35);
}

/* Process — centered */
.process-list {
  max-width: var(--content-narrow);
  margin-inline: auto;
  text-align: left;
}

.process-step {
  padding: 1.75rem 0;
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
}

.section--cream .process-step:hover {
  background: var(--black);
  color: var(--cream);
}

/* Marquee — full viewport, centered stack */
.section--marquee {
  min-height: 100vh;
  min-height: 100dvh;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-block);
  padding-top: var(--space-section);
  padding-bottom: var(--space-section);
}

.section--marquee .section-title--center {
  margin-bottom: 0;
}

.section--marquee .marquee {
  margin: 0;
  width: 100%;
}

.section--marquee .marquee + .marquee {
  margin-top: 0.75rem;
}

/* Compact sections — not full viewport */
.section--compact {
  min-height: auto !important;
  min-height: unset !important;
  padding: clamp(3rem, 8vh, 5rem) clamp(1.25rem, 5vw, 4rem);
}

.section__inner--narrow {
  width: min(720px, 100%);
  margin-inline: auto;
}

.section-title--center {
  text-align: center;
  margin-inline: auto;
}

.faq-list--grid {
  text-align: left;
}

.faq-item summary {
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
  padding: 1.25rem 0.5rem;
}

.faq-item summary:hover,
.faq-item[open] summary {
  background: rgba(235, 224, 211, 0.08);
}

.faq-item[open] {
  background: rgba(235, 224, 211, 0.04);
  margin: 0;
  padding: 0 0.5rem 1rem;
}

/* Stats — compact centered */
.section--stats.section--compact {
  display: flex !important;
  align-items: center;
  justify-content: center;
}

.stats-grid {
  gap: 2.5rem 2rem;
  width: 100%;
}

.stat-card {
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
  padding: 1.5rem 1rem;
  text-align: center;
}

.stat-card:hover {
  background: rgba(235, 224, 211, 0.08);
}

/* Contact — 100vh centered */
.section--contact-rich {
  min-height: 100vh !important;
  min-height: 100dvh !important;
}

.section--contact-rich .section__inner {
  width: var(--content-mid);
}

.contact-panel {
  margin-top: var(--space-block);
}

.contact-panel__actions.btn-bar {
  max-width: 100%;
  margin-inline: auto;
}

.contact-panel__row {
  max-width: 100%;
  margin-inline: auto;
}

.contact-panel__chip {
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
}

.section--cream .contact-panel__chip:hover {
  background: var(--black);
  color: var(--cream);
}

/* Location — 100vh column: centered header + map */
.section--location:not(.section--location-flush) {
  min-height: 100vh !important;
  min-height: 100dvh !important;
  display: flex !important;
  flex-direction: column;
  justify-content: flex-start;
  padding: var(--space-section) 0 calc(var(--nav-h) + 1rem);
  align-items: stretch;
}

.page-home .section--location {
  min-height: auto !important;
  padding-bottom: 0 !important;
}

.section--location .section__inner--location-head {
  width: var(--content-mid);
  margin-inline: auto;
  padding: 0 clamp(1.5rem, 6vw, 5rem);
  text-align: center;
  flex-shrink: 0;
}

.section--location .lcs-map-band {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-top: var(--space-block);
}

.section--location .lcs-map-frame {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: clamp(300px, 45vh, 420px);
}

.section--location .lcs-map {
  flex: 1 1 auto;
  width: 100% !important;
  min-height: clamp(300px, 45vh, 420px) !important;
  height: clamp(300px, 45vh, 420px) !important;
  max-height: 480px !important;
}

/* Showcase / Work / Testimonials — 100vh split */
.section--showcase,
.section--work-full,
.section--testimonials-full {
  min-height: 100vh !important;
  min-height: 100dvh !important;
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  padding: 0;
  align-items: stretch;
}

.section--showcase .section__head,
.section--work-full .section__head,
.section--testimonials-full .section__head {
  flex-shrink: 0;
  text-align: center;
  padding: var(--space-section) clamp(1.5rem, 6vw, 5rem) 1.5rem;
  width: 100%;
  max-width: none;
}

.section--showcase .section__head .section__inner,
.section--work-full .section__head .section__inner,
.section--testimonials-full .section__head .section__inner {
  width: var(--content-mid);
  margin-inline: auto;
}

.section--showcase .section-sub,
.section--work-full .section-sub {
  margin-inline: auto;
}

.section--showcase .slider-band,
.section--work-full .slider-band,
.section--testimonials-full .testimonial-band {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 0;
}

/* slider heights — lcs-polish.css */

.section--testimonials-full .testimonial-band .slider-band__viewport {
  height: clamp(280px, 42vh, 400px);
}

/* Buttons — fill only */
.btn {
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease, border-color var(--fill-duration) ease;
  box-shadow: none;
}

.btn:hover {
  box-shadow: none;
}

.btn-bar .btn:hover {
  z-index: 1;
  transform: none;
}

.section--cream .btn-bar .btn:not(.btn--outline):hover {
  background: var(--gray);
  color: var(--cream);
}

.section--cream .btn-bar .btn--outline:hover {
  background: var(--black);
  color: var(--cream);
}

.section--gray .btn:hover,
.section--dark .btn:hover {
  background: var(--black);
  color: var(--cream);
}

.section--gray .btn--outline:hover {
  background: var(--cream);
  color: var(--black);
}

/* Hero actions fill */
.hero-kinetic .btn-bar .btn:hover {
  transform: none;
}

.hero-kinetic .btn-bar .btn:not(.btn--outline):hover {
  background: var(--gray);
  color: var(--cream);
}

.hero-kinetic .btn-bar .btn--outline:hover {
  background: var(--cream);
  color: var(--black);
}

/* Nav fill */
.lcs-nav__btn {
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
}

.lcs-nav__mega-link {
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
}

.lcs-map-overlay__btn {
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
  box-shadow: none;
}

.lcs-map-overlay__btn:hover {
  background: var(--gray);
  color: var(--cream);
}

/* Carousel controls — fill only; keep positioning transform */
.carousel__nav {
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
}

.carousel__nav--band {
  box-shadow: none;
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
}

.carousel__nav:not(.carousel__nav--ctrl):hover,
.carousel__nav--band:not(.carousel__nav--ctrl):hover {
  background: var(--black);
  color: var(--cream);
  box-shadow: none;
}

.carousel__nav:not(.carousel__nav--ctrl).carousel__prev:hover {
  transform: translateY(-50%);
}

.carousel__nav:not(.carousel__nav--ctrl).carousel__next:hover {
  transform: translateY(-50%);
}

/* Carousel dots — see carousel-controls.css */

/* Reveal — fade only, no movement */
.reveal {
  transform: none !important;
  opacity: 0;
  transition: opacity 0.9s var(--ease);
}

.reveal.in-view {
  opacity: 1;
  transform: none !important;
}

.reveal-text {
  clip-path: none !important;
  opacity: 0;
  transition: opacity 1s var(--ease);
}

.reveal-text.in-view {
  opacity: 1;
}

/* Service line grows on in-view only (not hover) */
.service-line {
  transition: width 1s var(--ease);
}

/* Slider images — no hover scale; slow active only */
.work-carousel .carousel__slide--work:hover img,
.lcs-nav__preview a:hover img {
  transform: none !important;
}

.slider-band .carousel__slide--band img {
  transition: none;
}

/* Chat launcher — fill pulse, no bounce */
.chat-launcher--fab {
  animation: none;
  transition: background var(--fill-duration) ease;
}

.chat-launcher--fab:hover {
  background: var(--cream);
}

.chat-launcher--fab:hover .chat-launcher__icon {
  background: var(--black);
  color: var(--cream);
}

/* Marquee — never pause; GPU layer */
.marquee,
.marquee__track {
  animation-play-state: running !important;
}

.marquee:hover .marquee__track,
.marquee__track:hover {
  animation-play-state: running !important;
}

/* WhatsApp */
.wa-fab {
  transition: background var(--fill-duration) ease, filter var(--fill-duration) ease;
}

.wa-fab:hover {
  filter: brightness(1.1);
}

/* Footer social fill */
.site-footer__social a {
  transition: background var(--fill-duration) ease, color var(--fill-duration) ease;
}

.site-footer__social a:hover {
  background: var(--cream);
  color: var(--black);
}

.site-footer__links a {
  color: var(--cream);
}

.site-footer__links a:hover {
  text-decoration: underline;
  background: rgba(235, 224, 211, 0.1);
  transform: none;
}

/* Hero content breathing */
.hero-kinetic__content {
  padding-bottom: calc(var(--page-bottom, calc(var(--nav-h) + 3rem)) + 2rem);
}

.display--hero {
  max-width: 14ch;
  margin-bottom: 1.5rem;
}

.lead--hero {
  margin-bottom: 2.5rem;
}
