/* =========================================================================
   LOOK: LINEN  (loaded only when kc_current_look() === 'linen', see inc/looks.php)
   Lighter, quieter skin requested by the client 2026-10-05: warm linen and
   sand surfaces, light-weight geometric headings, square edges, flat cards,
   big photography. Brand rust survives as a small accent (eyebrows, rules).
   Overrides only; markup and content are identical to the classic look.
   Heading weight scale: every heading level renders at 400, size does the work.
   ========================================================================= */

body.kc-look-linen {
  --kc-primary:        #4C4A42;   /* warm stone charcoal: buttons, panels */
  --kc-primary-dark:   #2F2E29;
  --kc-primary-light:  #E8E1D4;
  --kc-accent:         #A35A33;   /* softened Keyser rust, accents only */
  --kc-ink:            #2A2925;
  --kc-ink-2:          #33312C;
  --kc-text:           #2E2D29;
  --kc-text-muted:     #67635A;
  --kc-line:           #DCD4C6;
  --kc-cream:          #EEE7DB;   /* sand panel */
  --kc-surface:        #F7F4EE;   /* linen page */
  --kc-font-head: 'Jost', 'Futura', 'Century Gothic', sans-serif;
  --kc-font-body: 'Google Sans', 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
  --kc-radius: 0;
  --kc-radius-lg: 0;
  --kc-shadow-md: 0 10px 30px rgba(42,41,37,0.08);
  --kc-shadow-lg: 0 18px 44px rgba(42,41,37,0.12);

  background: var(--kc-surface);
  color: var(--kc-text);
  font-size: 1.0625rem;
  line-height: 1.75;
}

/* ---------- Type ---------- */
.kc-look-linen h1, .kc-look-linen h2, .kc-look-linen h3,
.kc-look-linen h4, .kc-look-linen h5, .kc-look-linen h6 {
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.15;
}
.kc-look-linen h1 { font-size: clamp(2.5rem, 5.2vw, 4.4rem); font-weight: 400; letter-spacing: -0.01em; }
.kc-look-linen h2 { font-size: clamp(2rem, 3.6vw, 3rem); }
.kc-look-linen h3 { font-size: clamp(1.35rem, 2vw, 1.6rem); }
/* :where() keeps plain-link color at zero extra specificity so button
   and panel link colors from style.css still win. */
:where(.kc-look-linen) a { color: var(--kc-primary); }
:where(.kc-look-linen) a:hover { color: var(--kc-accent); }
.kc-look-linen .kc-eyebrow,
.kc-look-linen .kc-city-hero__eyebrow,
.kc-look-linen .kc-pw-gate__eyebrow {
  font-family: var(--kc-font-body);
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  color: var(--kc-accent);
}
.kc-look-linen .kc-section-head p { font-size: 1.12rem; }
.kc-look-linen blockquote { border-left-color: var(--kc-accent); }

/* Some page content carries inline font-family:Oswald on headings. */
.kc-look-linen [style*="Oswald"] { font-family: var(--kc-font-head) !important; font-weight: 400 !important; }

/* ---------- Buttons ---------- */
.kc-look-linen .kc-btn {
  font-family: var(--kc-font-body);
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0.03em;
  font-size: 1rem;
  border-width: 1px;
  padding: 0.95em 2em;
}
.kc-look-linen .kc-btn--sm { padding: 0.65em 1.25em; font-size: 0.92rem; }
.kc-look-linen .kc-btn--lg { padding: 1.05em 2.3em; }
.kc-look-linen .kc-btn--primary,
.kc-look-linen .kc-btn--primary:hover { color: var(--kc-surface); box-shadow: none; }
.kc-look-linen .kc-btn--ghost,
.kc-look-linen .kc-btn--ghost:hover { color: #fff; }
.kc-look-linen .kc-btn--ghost:hover { background: rgba(255,255,255,0.12); border-color: #fff; }
.kc-look-linen .kc-btn--outline { color: var(--kc-primary); border-color: var(--kc-primary); }
.kc-look-linen .kc-btn--outline:hover { background: var(--kc-primary); color: var(--kc-surface); }

/* ---------- Header: light linen bar, charcoal logo ---------- */
.kc-look-linen .kc-site-header {
  background: var(--kc-surface);
  color: var(--kc-text);
  border-bottom: 1px solid var(--kc-line);
}
.kc-look-linen .kc-site-header.is-scrolled {
  background: rgba(247,244,238,0.95);
  box-shadow: 0 1px 18px rgba(42,41,37,0.07);
}
/* Logo file is white on transparent; render it as solid charcoal. */
.kc-look-linen .kc-brand img { filter: brightness(0); opacity: 0.86; }
.kc-look-linen .kc-brand-text { color: var(--kc-ink); }
.kc-look-linen .kc-menu > li > a {
  font-family: var(--kc-font-body);
  font-size: 0.98rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0.01em;
  color: var(--kc-text);
}
.kc-look-linen .kc-menu > li > a:hover,
.kc-look-linen .kc-menu > li.current-menu-item > a,
.kc-look-linen .kc-menu > li.current_page_item > a,
.kc-look-linen .kc-menu > li.current-menu-parent > a,
.kc-look-linen .kc-menu > li.current-page-ancestor > a { color: var(--kc-accent); }
.kc-look-linen .kc-menu .sub-menu {
  background: var(--kc-surface);
  border-top: 2px solid var(--kc-accent);
  box-shadow: var(--kc-shadow-md);
}
.kc-look-linen .kc-menu .sub-menu a:hover { background: var(--kc-cream); color: var(--kc-ink); }
.kc-look-linen .kc-topbar .kc-phone {
  font-family: var(--kc-font-body);
  font-weight: 500;
  font-size: 1.02rem;
  color: var(--kc-ink);
}
.kc-look-linen .kc-topbar .kc-phone:hover { color: var(--kc-accent); }
.kc-look-linen .kc-mobile-toggle__bar { background: var(--kc-ink); }

/* ---------- Home hero: brighter photo, lighter type, flat form ---------- */
.kc-look-linen .kc-hero { min-height: 680px; }
.kc-look-linen .kc-hero::before {
  background: linear-gradient(100deg, rgba(30,29,26,0.62) 0%, rgba(30,29,26,0.32) 48%, rgba(30,29,26,0.05) 100%);
}
.kc-look-linen .kc-hero-copy h1 { color: #fff; margin-bottom: 1rem; }
.kc-look-linen .kc-hero-sub { font-size: 1.25rem; opacity: 0.95; }
.kc-look-linen .kc-hero-trust {
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.88);
}
.kc-look-linen .kc-hero-trust::before {
  content: "";
  width: 28px;
  height: 1px;
  background: currentColor;
  display: inline-block;
}
/* Same facts already sit in the trust strip and the why list. */
.kc-look-linen .kc-hero-bullets { display: none; }
.kc-look-linen .kc-hero-actions { margin-top: 2.25rem; }
.kc-look-linen .kc-hero .kc-btn--primary {
  background: var(--kc-surface);
  border-color: var(--kc-surface);
  color: var(--kc-ink);
}
.kc-look-linen .kc-hero .kc-btn--primary:hover { background: #fff; border-color: #fff; color: var(--kc-ink); }
.kc-look-linen .kc-hero-form {
  background: rgba(247,244,238,0.97);
  border-top: 0;
  box-shadow: none;
  padding: 2rem 2rem 1.75rem;
}
.kc-look-linen .kc-hero-form-head h3 { font-size: 1.6rem; }

/* ---------- Forms ---------- */
.kc-look-linen input[type="text"], .kc-look-linen input[type="email"], .kc-look-linen input[type="tel"],
.kc-look-linen input[type="url"], .kc-look-linen input[type="search"], .kc-look-linen input[type="number"],
.kc-look-linen textarea, .kc-look-linen select,
.kc-look-linen .wpforms-field input, .kc-look-linen .wpforms-field textarea, .kc-look-linen .wpforms-field select {
  background: #fff;
  border-color: var(--kc-line);
  box-shadow: none;
}
.kc-look-linen .wpforms-container.wpforms-render-modern {
  --wpforms-field-border-color: var(--kc-line);
  --wpforms-field-border-color-spare: var(--kc-line);
}
.kc-look-linen .wpforms-container.wpforms-render-modern .wpforms-form button[type="submit"].wpforms-submit {
  border-width: 1px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0.03em;
}
.kc-look-linen .wpforms-container.wpforms-render-modern .wpforms-form button[type="submit"].wpforms-submit:hover { box-shadow: none; }

/* ---------- Trust strip: sand band with hairline dividers ---------- */
.kc-look-linen .kc-trust-strip {
  background: var(--kc-cream);
  color: var(--kc-text);
  padding: 2rem var(--kc-gutter);
  border-bottom: 1px solid var(--kc-line);
}
.kc-look-linen .kc-trust-item + .kc-trust-item { border-left: 1px solid var(--kc-line); }
.kc-look-linen .kc-trust-item strong {
  font-weight: 400;
  font-size: 1.65rem;
  color: var(--kc-ink);
  letter-spacing: 0;
  margin-bottom: 0.2rem;
}
.kc-look-linen .kc-trust-item span { color: var(--kc-text-muted); font-size: 0.88rem; }

/* ---------- Sections ---------- */
.kc-look-linen .kc-section { padding: 6.5rem 0; }
.kc-look-linen .kc-section-head { margin-bottom: 3.75rem; }

/* ---------- Service cards: no boxes, photo plus caption ---------- */
.kc-look-linen .kc-services { gap: 3.25rem 2.25rem; }
.kc-look-linen .kc-service-card {
  background: transparent;
  border: 0;
  overflow: visible;
}
.kc-look-linen .kc-service-card:hover { transform: none; box-shadow: none; }
.kc-look-linen .kc-service-card__media {
  aspect-ratio: 4/3;
  border-bottom: 0;
  overflow: hidden;
  transition: opacity .3s ease;
}
.kc-look-linen .kc-service-card__media::after { display: none; }
.kc-look-linen .kc-service-card:hover .kc-service-card__media { opacity: 0.88; }
.kc-look-linen .kc-service-card__body { padding: 1.35rem 0 0; }
.kc-look-linen .kc-service-card__title { font-size: 1.5rem; font-weight: 400; margin-bottom: 0.45rem; }
.kc-look-linen .kc-service-card__title a { color: var(--kc-ink); }
.kc-look-linen .kc-service-card__title a:hover { color: var(--kc-accent); }
.kc-look-linen .kc-service-card__blurb { font-size: 1rem; line-height: 1.6; }
.kc-look-linen .kc-service-card__more {
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 0.95rem;
  color: var(--kc-ink);
  text-decoration: underline;
  text-decoration-color: var(--kc-accent);
  text-underline-offset: 0.35em;
}
.kc-look-linen .kc-service-card__more::after { content: none; }

/* ---------- Why section: full-bleed 50/50 sand panel + photo ---------- */
.kc-look-linen .kc-section:has(.kc-why-grid) { padding: 0; background: var(--kc-cream); }
.kc-look-linen .kc-section:has(.kc-why-grid) > .kc-container { max-width: none; padding: 0; }
.kc-look-linen .kc-why-grid {
  max-width: none;
  padding: 0;
  gap: 0;
  align-items: stretch;
}
.kc-look-linen .kc-why-copy {
  padding: clamp(3.5rem, 7vw, 7rem) clamp(1.5rem, 6vw, 6rem);
  max-width: 720px;
  margin-left: auto;
  align-self: center;
}
.kc-look-linen .kc-why-grid > div:last-child { min-height: 520px; }
.kc-look-linen .kc-why-grid img {
  border-radius: 0 !important;
  box-shadow: none !important;
  width: 100%;
  height: 100%;
  aspect-ratio: auto !important;
  object-fit: cover;
}
.kc-look-linen .kc-why-list li { font-weight: 400; padding-left: 1.6rem; }
.kc-look-linen .kc-why-list li::before {
  width: 14px; height: 1px;
  top: 0.85em;
  border-radius: 0;
  background: var(--kc-accent);
}
.kc-look-linen .kc-why-list li::after { content: none; }

/* ---------- Portfolio ---------- */
.kc-look-linen .kc-portfolio-section { padding: 6.5rem 0; background: var(--kc-surface); }
.kc-look-linen .kc-portfolio-head h2 { font-size: clamp(2rem, 3.6vw, 3rem); }
.kc-look-linen .kc-swiper img,
.kc-look-linen .kc-portfolio-hero .swiper-slide img { border-radius: 0; }

/* ---------- Warranty + dark panels ---------- */
.kc-look-linen .kc-warranty-callout { background: var(--kc-primary); padding: 6rem var(--kc-gutter); }
.kc-look-linen .kc-warranty-callout h2 { font-weight: 400; }
.kc-look-linen .kc-warranty-callout__eyebrow { font-weight: 500; letter-spacing: 0.22em; }
.kc-look-linen .kc-section--ink { background: var(--kc-ink-2); }
.kc-look-linen .kc-section--ink .kc-btn--primary,
.kc-look-linen .kc-city-cta .kc-btn--primary {
  background: var(--kc-surface);
  border-color: var(--kc-surface);
  color: var(--kc-ink);
}
.kc-look-linen .kc-section--ink .kc-btn--primary:hover,
.kc-look-linen .kc-city-cta .kc-btn--primary:hover { background: #fff; border-color: #fff; }

/* ---------- Service / city pages ---------- */
.kc-look-linen .kc-city-hero::after {
  background: linear-gradient(to top, rgba(30,29,26,0.72) 0%, rgba(30,29,26,0.3) 50%, rgba(30,29,26,0.04) 100%);
}
.kc-look-linen .kc-city-hero__title { font-weight: 400; }
.kc-look-linen .kc-city-hero .kc-btn--primary {
  background: var(--kc-surface);
  border-color: var(--kc-surface);
  color: var(--kc-ink);
}
/* Split panels become sand boxes with dark text (the Kolt "About" feel). */
.kc-look-linen .kc-split__box { background: var(--kc-cream); color: var(--kc-text); padding: 4rem 3.5rem; }
.kc-look-linen .kc-split__box h3 { color: var(--kc-ink); font-weight: 400; }
.kc-look-linen .kc-split__box p { color: var(--kc-text); }
.kc-look-linen .kc-split__list li { color: var(--kc-text); }
.kc-look-linen .kc-split__list li::before { color: var(--kc-accent); font-weight: 400; }
.kc-look-linen .kc-split__box a { color: var(--kc-ink); text-decoration-color: var(--kc-accent); }
.kc-look-linen .kc-split__box .kc-btn--primary { color: var(--kc-surface); text-decoration: none; }
.kc-look-linen .kc-city-cta::after {
  background: linear-gradient(135deg, rgba(30,29,26,0.78) 0%, rgba(30,29,26,0.45) 100%);
}
.kc-look-linen .kc-city-cta h2,
.kc-look-linen .kc-stat__num,
.kc-look-linen .kc-process__head h2,
.kc-look-linen .kc-city-intro h2,
.kc-look-linen .kc-faq-grid h2 { font-weight: 400; }

/* ---------- Footer: light sand, not black ---------- */
.kc-look-linen .kc-site-footer {
  background: var(--kc-cream);
  color: var(--kc-text-muted);
  border-top: 1px solid var(--kc-line);
}
.kc-look-linen .kc-footer-col h4 {
  color: var(--kc-ink);
  font-family: var(--kc-font-body);
  font-weight: 500;
  font-size: 0.8rem;
  letter-spacing: 0.2em;
}
.kc-look-linen .kc-site-footer a { color: var(--kc-text); }
.kc-look-linen .kc-site-footer a:hover { color: var(--kc-accent); }
.kc-look-linen .kc-footer-credentials { color: var(--kc-ink); font-weight: 400; }
/* footer.php carries inline light-on-dark colors on two paragraphs. */
.kc-look-linen .kc-footer-col p { color: var(--kc-text-muted) !important; }
.kc-look-linen .kc-footer-col p strong { color: var(--kc-ink) !important; }
.kc-look-linen .kc-footer-bottom { border-top-color: var(--kc-line); color: var(--kc-text-muted); }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .kc-look-linen .kc-nav-primary { border-top-color: var(--kc-line); }
}
@media (max-width: 960px) {
  .kc-look-linen .kc-why-copy { max-width: none; margin: 0; }
  .kc-look-linen .kc-why-grid > div:last-child { min-height: 340px; order: -1; }
  .kc-look-linen .kc-trust-item:nth-child(3) { border-left: 0; }
}
@media (max-width: 720px) {
  .kc-look-linen .kc-nav-primary { border-top-color: var(--kc-line); background: var(--kc-surface); }
  .kc-look-linen .kc-menu > li { border-bottom-color: var(--kc-line); }
  .kc-look-linen .kc-menu .sub-menu { background: var(--kc-cream); }
  .kc-look-linen .kc-menu .sub-menu a { color: var(--kc-text); }
  .kc-look-linen .kc-hero { min-height: 0; }
  .kc-look-linen .kc-section,
  .kc-look-linen .kc-portfolio-section { padding: 4rem 0; }
  .kc-look-linen .kc-section:has(.kc-why-grid) { padding: 0; }
  .kc-look-linen .kc-trust-item:nth-child(odd) { border-left: 0; }
  .kc-look-linen .kc-split__box { padding: 2.75rem 1.75rem; }
}

/* ---------- Dan's review tweaks 2026-10-05 ---------- */
/* Stat tiles: thinner and smaller numbers. */
.kc-look-linen .kc-stat__num {
  font-size: clamp(2.4rem, 2.5vw, 3.8rem);
  font-weight: 400;
}
/* Process steps: content says 01/02/03 on every page; show 1/2/3 instead. */
.kc-look-linen .kc-process__steps { counter-reset: kc-step; }
.kc-look-linen .kc-step { counter-increment: kc-step; }
.kc-look-linen .kc-step__num { font-size: 0; }
.kc-look-linen .kc-step__num::before { content: counter(kc-step); font-size: 3rem; }
/* Hero white text gets a hard shadow for legibility over busy photos. */
.kc-look-linen .kc-city-hero__breadcrumb,
.kc-look-linen .kc-city-hero__title,
.kc-look-linen .kc-city-hero__sub,
.kc-look-linen .kc-city-hero .kc-btn--ghost,
.kc-look-linen .kc-hero-trust,
.kc-look-linen .kc-hero-copy h1,
.kc-look-linen .kc-hero-sub,
.kc-look-linen .kc-hero .kc-btn--ghost {
  text-shadow: 2px 2px black;
}
.kc-look-linen .kc-city-hero__eyebrow { background: #f1dfdf; }
