/* ============================================================
   Kirk Copywriting — Main Stylesheet
   Cormorant Garant + Work Sans · Deep Navy · Copper Accent
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garant:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Work+Sans:wght@300;400;500;600;700&display=swap');

/* ── Variables ───────────────────────────────────────────── */
:root {
  --kc-navy:        #16213e;
  --kc-navy-mid:    #1f2d4e;
  --kc-navy-light:  #2a3d65;
  --kc-cream:       #f8f3ec;
  --kc-cream-mid:   #f0e9de;
  --kc-copper:      #b5622a;
  --kc-copper-light:#d4834f;
  --kc-sand:        #e8ddd0;
  --kc-white:       #ffffff;
  --kc-text:        #16213e;
  --kc-muted:       #7a7d8a;
  --kc-border:      #ddd5c8;

  --ff-head:  'Cormorant Garant', Georgia, serif;
  --ff-body:  'Work Sans', system-ui, sans-serif;

  --radius-sm:  4px;
  --radius-md:  8px;
  --radius-lg:  16px;

  --shadow-sm:  0 2px 8px rgba(22,33,62,.08);
  --shadow-md:  0 8px 28px rgba(22,33,62,.12);
  --shadow-lg:  0 20px 60px rgba(22,33,62,.16);

  --transition: 0.28s cubic-bezier(0.4,0,0.2,1);
}

/* ── Reset ───────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{
  font-family:var(--ff-body);
  color:var(--kc-text);
  background:var(--kc-cream);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
ul,ol{list-style:none}
input,textarea,select{font-family:inherit;font-size:inherit}

/* ── Typography ──────────────────────────────────────────── */
h1,h2,h3,h4,h5{font-family:var(--ff-head);line-height:1.15;font-weight:400}
h1{font-size:clamp(2.8rem,6vw,5.5rem);letter-spacing:-.02em}
h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.01em}
h3{font-size:clamp(1.4rem,2.5vw,2rem)}
h4{font-size:1.25rem}
p{margin-bottom:1rem}
p:last-child{margin-bottom:0}
.kc-eyebrow{
  font-family:var(--ff-body);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--kc-copper);
  display:block;
  margin-bottom:1rem;
}
.kc-lead{font-size:1.15rem;line-height:1.75;color:#3a4060;font-weight:300}

/* ── Layout Helpers ──────────────────────────────────────── */
.kc-shell{max-width:1280px;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3rem)}
.kc-shell--narrow{max-width:860px;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3rem)}
.kc-shell--wide{max-width:1440px;margin-inline:auto;padding-inline:clamp(1rem,3vw,2.5rem)}

/* ── Buttons ─────────────────────────────────────────────── */
.kc-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.85rem 2rem;
  font-family:var(--ff-body);font-size:.88rem;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;
  border-radius:2px;
  transition:var(--transition);
  cursor:pointer;
}
.kc-btn--solid{
  background:var(--kc-copper);color:var(--kc-white);
}
.kc-btn--solid:hover{background:var(--kc-copper-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.kc-btn--outline{
  background:transparent;color:var(--kc-navy);
  border:1.5px solid var(--kc-navy);
}
.kc-btn--outline:hover{background:var(--kc-navy);color:var(--kc-white);transform:translateY(-2px)}
.kc-btn--ghost{
  background:transparent;color:var(--kc-copper);
  border:1.5px solid var(--kc-copper);
}
.kc-btn--ghost:hover{background:var(--kc-copper);color:var(--kc-white)}
.kc-btn--light{
  background:var(--kc-cream);color:var(--kc-navy);
}
.kc-btn--light:hover{background:var(--kc-white);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.kc-btn svg{width:16px;height:16px;flex-shrink:0}

/* ── Navigation ──────────────────────────────────────────── */
.kc-nav-wrap{
  position:fixed;top:0;left:0;right:0;z-index:900;
  transition:background var(--transition), box-shadow var(--transition);
}
.kc-nav-wrap.kc-scrolled{
  background:rgba(22,33,62,.97);
  backdrop-filter:blur(10px);
  box-shadow:0 2px 20px rgba(0,0,0,.2);
}
.kc-nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  height:72px;
  max-width:1280px;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3rem);
}
.kc-logo{
  font-family:var(--ff-head);font-size:1.5rem;font-weight:500;
  color:var(--kc-white);letter-spacing:-.01em;
  display:flex;align-items:center;gap:.5rem;
}
.kc-logo-dot{color:var(--kc-copper)}

/* Main nav links */
.kc-nav-links{display:flex;align-items:center;gap:.25rem}
.kc-nav-links > li{position:relative}
.kc-nav-links > li > a,
.kc-nav-links > li > button{
  display:flex;align-items:center;gap:.3rem;
  padding:.5rem .8rem;
  font-size:.83rem;font-weight:500;letter-spacing:.03em;
  color:rgba(255,255,255,.82);
  background:none;border:none;
  transition:color var(--transition);
  white-space:nowrap;
}
.kc-nav-links > li > a:hover,
.kc-nav-links > li > button:hover{color:var(--kc-white)}
.kc-nav-links > li > a.kc-active{color:var(--kc-copper-light)}
.kc-nav-chevron{
  width:10px;height:10px;
  transition:transform var(--transition);
  stroke:currentColor;fill:none;stroke-width:2;
}
.kc-has-mega:hover .kc-nav-chevron{transform:rotate(180deg)}

/* Mega Menu */
.kc-mega{
  position:absolute;top:calc(100% + 12px);left:50%;
  transform:translateX(-50%) translateY(-8px);
  background:var(--kc-white);
  border:1px solid var(--kc-border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);
  padding:1.5rem;
  min-width:680px;
  display:grid;grid-template-columns:1fr 1fr;gap:1rem;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity var(--transition), transform var(--transition), visibility var(--transition);
}
.kc-has-mega:hover .kc-mega,
.kc-has-mega:focus-within .kc-mega{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.kc-mega-item{
  display:flex;align-items:flex-start;gap:.75rem;
  padding:.75rem;border-radius:var(--radius-sm);
  transition:background var(--transition);
  text-decoration:none;
}
.kc-mega-item:hover{background:var(--kc-cream)}
.kc-mega-icon{
  width:36px;height:36px;flex-shrink:0;
  background:var(--kc-cream-mid);border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  color:var(--kc-copper);margin-top:2px;
}
.kc-mega-icon svg{width:18px;height:18px}
.kc-mega-item-title{
  font-family:var(--ff-body);font-size:.88rem;font-weight:600;
  color:var(--kc-navy);display:block;margin-bottom:.2rem;
}
.kc-mega-item-text{font-size:.78rem;color:var(--kc-muted);line-height:1.4}

/* Dropdown (2-level) */
.kc-dropdown{
  position:absolute;top:calc(100% + 12px);left:0;
  background:var(--kc-white);
  border:1px solid var(--kc-border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-md);
  min-width:200px;padding:.5rem 0;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity var(--transition), transform var(--transition), visibility var(--transition);
  transform:translateY(-8px);
}
.kc-has-drop:hover .kc-dropdown,
.kc-has-drop:focus-within .kc-dropdown{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);
}
.kc-dropdown a{
  display:block;padding:.6rem 1.25rem;
  font-size:.85rem;color:var(--kc-navy);
  transition:background var(--transition),color var(--transition);
}
.kc-dropdown a:hover{background:var(--kc-cream);color:var(--kc-copper)}

/* Nav CTA */
.kc-nav-cta{margin-left:1rem}

/* Mobile toggle */
.kc-burger{display:none;flex-direction:column;gap:5px;padding:8px;cursor:pointer}
.kc-burger span{width:24px;height:2px;background:var(--kc-white);border-radius:2px;transition:var(--transition)}
.kc-burger.kc-open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.kc-burger.kc-open span:nth-child(2){opacity:0}
.kc-burger.kc-open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* Mobile nav */
.kc-mobile-menu{
  display:none;position:fixed;top:72px;left:0;right:0;bottom:0;
  background:var(--kc-navy);z-index:899;
  overflow-y:auto;padding:2rem;
}
.kc-mobile-menu.kc-open{display:block}
.kc-mobile-menu a,.kc-mobile-menu button{
  display:block;width:100%;text-align:left;
  padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.85);font-size:1rem;
  background:none;
}
.kc-mobile-sub{padding-left:1rem}
.kc-mobile-sub a{font-size:.9rem;color:rgba(255,255,255,.65)}

/* ── Hero — Editorial Split ───────────────────────────────── */
.kc-hero-split{
  min-height:100vh;
  display:grid;grid-template-columns:1fr 1fr;
  padding-top:72px;
  background:var(--kc-navy);
  overflow:hidden;
  position:relative;
}
.kc-hero-left{
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(3rem,8vw,7rem) clamp(1.5rem,5vw,4rem) clamp(3rem,6vw,5rem) clamp(1.5rem,6vw,5rem);
  position:relative;z-index:2;
}
.kc-hero-eyebrow{
  font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--kc-copper-light);margin-bottom:1.5rem;
  display:flex;align-items:center;gap:.75rem;
}
.kc-hero-eyebrow::before{
  content:'';display:block;width:32px;height:1px;background:var(--kc-copper-light);
}
.kc-hero-h1{
  color:var(--kc-white);
  font-weight:300;
  margin-bottom:1.5rem;
  line-height:1.1;
}
.kc-hero-h1 em{
  color:var(--kc-copper-light);
  font-style:italic;
}
.kc-hero-sub{
  font-size:1.05rem;color:rgba(255,255,255,.65);
  line-height:1.75;max-width:480px;margin-bottom:2.5rem;font-weight:300;
}
.kc-hero-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.kc-hero-badge{
  margin-top:4rem;padding-top:2rem;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:.78rem;color:rgba(255,255,255,.45);letter-spacing:.06em;
}
.kc-hero-right{
  position:relative;overflow:hidden;
}
.kc-hero-img{
  width:100%;height:100%;object-fit:cover;object-position:center top;
  opacity:.75;filter:saturate(.85);
}
.kc-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to right,var(--kc-navy) 0%,transparent 30%),
             linear-gradient(to top,var(--kc-navy) 0%,transparent 40%);
}
.kc-hero-float{
  position:absolute;bottom:2.5rem;right:2rem;
  background:var(--kc-white);border-radius:var(--radius-md);
  padding:1.25rem 1.5rem;max-width:240px;
  box-shadow:var(--shadow-lg);
  animation:kc-float 4s ease-in-out infinite;
}
.kc-hero-float-num{
  font-family:var(--ff-head);font-size:2.4rem;font-weight:300;
  color:var(--kc-copper);line-height:1;margin-bottom:.25rem;
}
.kc-hero-float-text{font-size:.78rem;color:var(--kc-muted);line-height:1.4}
.kc-hero-accent-bar{
  position:absolute;top:0;right:0;width:3px;height:60%;
  background:linear-gradient(to bottom,var(--kc-copper),transparent);
}
@keyframes kc-float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}

/* ── Section Shared ─────────────────────────────────────────*/
.kc-section{padding-block:clamp(4rem,8vw,8rem)}
.kc-section--sm{padding-block:clamp(2.5rem,5vw,4.5rem)}
.kc-section--dark{background:var(--kc-navy);color:var(--kc-white)}
.kc-section--cream{background:var(--kc-cream)}
.kc-section--sand{background:var(--kc-cream-mid)}
.kc-section--white{background:var(--kc-white)}
.kc-section-head{margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.kc-section-head--center{text-align:center}
.kc-section-head--center .kc-eyebrow{justify-content:center}

/* ── Stats Bar ──────────────────────────────────────────── */
.kc-stats-bar{
  background:var(--kc-copper);
  padding:2rem 0;
}
.kc-stats-inner{
  display:flex;justify-content:space-around;flex-wrap:wrap;gap:1.5rem;
  max-width:1280px;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3rem);
}
.kc-stat{text-align:center}
.kc-stat-num{
  font-family:var(--ff-head);font-size:clamp(2rem,4vw,3rem);font-weight:300;
  color:var(--kc-white);line-height:1;display:block;
}
.kc-stat-label{
  font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.7);margin-top:.3rem;display:block;
}

/* ── Services Grid ─────────────────────────────────────── */
.kc-svc-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:1.5rem;
}
.kc-svc-tile{
  background:var(--kc-white);border:1px solid var(--kc-border);
  border-radius:var(--radius-md);padding:2rem;
  transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;
}
.kc-svc-tile::before{
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:3px;background:var(--kc-copper);
  transform:scaleX(0);transition:transform var(--transition);
  transform-origin:left;
}
.kc-svc-tile:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:transparent}
.kc-svc-tile:hover::before{transform:scaleX(1)}
.kc-svc-icon{
  width:48px;height:48px;
  background:var(--kc-cream);border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  color:var(--kc-copper);margin-bottom:1.25rem;
}
.kc-svc-icon svg{width:24px;height:24px}
.kc-svc-title{
  font-family:var(--ff-head);font-size:1.35rem;font-weight:500;
  color:var(--kc-navy);margin-bottom:.6rem;
}
.kc-svc-text{font-size:.88rem;color:var(--kc-muted);line-height:1.65;flex:1}
.kc-svc-link{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--kc-copper);margin-top:1.25rem;
  transition:gap var(--transition);
}
.kc-svc-tile:hover .kc-svc-link{gap:.7rem}

/* ── Testimonials ────────────────────────────────────────── */
.kc-testi-scroll{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:1.5rem;
}
.kc-testi-card{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius-md);
  padding:2rem;position:relative;
}
.kc-testi-quote-mark{
  font-family:var(--ff-head);font-size:4rem;line-height:1;
  color:var(--kc-copper);opacity:.4;
  position:absolute;top:1rem;right:1.5rem;
}
.kc-testi-text{
  font-size:.95rem;line-height:1.75;color:rgba(255,255,255,.8);
  margin-bottom:1.5rem;font-style:italic;
}
.kc-testi-meta{display:flex;align-items:center;gap:.75rem}
.kc-testi-avatar{
  width:40px;height:40px;border-radius:50%;
  background:var(--kc-copper);display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-head);font-size:1rem;color:var(--kc-white);flex-shrink:0;
}
.kc-testi-name{font-size:.88rem;font-weight:600;color:var(--kc-white);display:block}
.kc-testi-role{font-size:.75rem;color:rgba(255,255,255,.5)}
.kc-stars{color:var(--kc-copper);font-size:.85rem;letter-spacing:.1em;margin-bottom:.75rem}

/* ── Process Steps ──────────────────────────────────────── */
.kc-process-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2rem;
  counter-reset:kc-step;
}
.kc-process-item{position:relative;padding-top:3rem}
.kc-process-item::before{
  counter-increment:kc-step;
  content:counter(kc-step,decimal-leading-zero);
  position:absolute;top:0;left:0;
  font-family:var(--ff-head);font-size:3rem;font-weight:300;
  color:var(--kc-copper);opacity:.25;line-height:1;
}
.kc-process-bar{
  width:32px;height:3px;background:var(--kc-copper);margin-bottom:1rem;
}
.kc-process-title{
  font-family:var(--ff-head);font-size:1.2rem;font-weight:500;
  color:var(--kc-navy);margin-bottom:.6rem;
}
.kc-process-text{font-size:.88rem;color:var(--kc-muted);line-height:1.65}

/* ── Case Studies ────────────────────────────────────────── */
.kc-cases-stack{display:flex;flex-direction:column;gap:3rem}
.kc-case-row{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-md);
}
.kc-case-row:nth-child(even){direction:rtl}
.kc-case-row:nth-child(even) > *{direction:ltr}
.kc-case-img{
  position:relative;overflow:hidden;min-height:320px;
}
.kc-case-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .6s ease;
}
.kc-case-row:hover .kc-case-img img{transform:scale(1.04)}
.kc-case-body{
  background:var(--kc-white);padding:clamp(2rem,5vw,3.5rem);
  display:flex;flex-direction:column;justify-content:center;
}
.kc-case-service{
  font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--kc-copper);margin-bottom:.75rem;display:block;
}
.kc-case-title{
  font-family:var(--ff-head);font-size:clamp(1.3rem,2.5vw,1.8rem);
  color:var(--kc-navy);margin-bottom:1rem;font-weight:500;
}
.kc-case-challenge{font-size:.9rem;color:var(--kc-muted);margin-bottom:1rem}
.kc-case-result{
  background:var(--kc-cream);border-radius:var(--radius-sm);
  padding:.9rem 1.1rem;
  font-size:.85rem;color:var(--kc-navy);
  border-left:3px solid var(--kc-copper);
  font-weight:500;
}

/* ── Pricing ─────────────────────────────────────────────── */
.kc-pricing-rail{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:1.5rem;align-items:start;
}
.kc-price-card{
  background:var(--kc-white);border:1.5px solid var(--kc-border);
  border-radius:var(--radius-md);overflow:hidden;
  transition:transform var(--transition),box-shadow var(--transition);
}
.kc-price-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
.kc-price-card--pop{border-color:var(--kc-copper);position:relative}
.kc-pop-badge{
  position:absolute;top:1rem;right:1rem;
  background:var(--kc-copper);color:var(--kc-white);
  font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:.3rem .7rem;border-radius:50px;
}
.kc-price-head{padding:2rem 2rem 1.5rem}
.kc-price-name{
  font-family:var(--ff-body);font-size:.75rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--kc-copper);margin-bottom:.75rem;display:block;
}
.kc-price-amt{
  font-family:var(--ff-head);font-size:3rem;font-weight:300;
  color:var(--kc-navy);line-height:1;
}
.kc-price-amt sup{font-size:1.4rem;vertical-align:top;margin-top:.5rem;font-weight:400}
.kc-price-desc{font-size:.85rem;color:var(--kc-muted);margin-top:.5rem;line-height:1.5}
.kc-price-body{padding:0 2rem 2rem}
.kc-price-sep{height:1px;background:var(--kc-border);margin-bottom:1.5rem}
.kc-price-includes{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.75rem}
.kc-price-includes li{
  display:flex;align-items:flex-start;gap:.6rem;
  font-size:.84rem;color:var(--kc-text);line-height:1.5;
}
.kc-price-check{
  color:var(--kc-copper);flex-shrink:0;margin-top:3px;
}
.kc-price-check svg{width:14px;height:14px}

/* ── Custom Package Builder ─────────────────────────────── */
.kc-builder-layout{
  display:grid;grid-template-columns:1fr 360px;gap:2.5rem;align-items:start;
}
.kc-builder-panel{
  background:var(--kc-white);border-radius:var(--radius-md);
  border:1px solid var(--kc-border);
  overflow:hidden;
}
.kc-builder-section{padding:1.75rem 2rem;border-bottom:1px solid var(--kc-border)}
.kc-builder-section:last-child{border-bottom:none}
.kc-builder-label{
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--kc-muted);margin-bottom:1rem;display:block;
}
.kc-option-list{display:flex;flex-direction:column;gap:.6rem}
.kc-option-row{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:.75rem 1rem;border-radius:var(--radius-sm);
  border:1.5px solid transparent;cursor:pointer;
  transition:var(--transition);background:var(--kc-cream);
}
.kc-option-row:hover{border-color:var(--kc-copper);background:var(--kc-cream-mid)}
.kc-option-row input{position:absolute;opacity:0;pointer-events:none}
.kc-option-row.kc-selected{border-color:var(--kc-copper);background:#fdf3ec}
.kc-option-info{flex:1}
.kc-option-name{font-size:.88rem;font-weight:600;color:var(--kc-navy);display:block}
.kc-option-desc{font-size:.76rem;color:var(--kc-muted)}
.kc-option-price{font-family:var(--ff-head);font-size:1.1rem;color:var(--kc-copper);font-weight:500;white-space:nowrap}
.kc-hours-control{display:flex;align-items:center;gap:1rem}
.kc-hours-btn{
  width:36px;height:36px;border-radius:50%;
  border:1.5px solid var(--kc-border);
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;color:var(--kc-navy);
  transition:var(--transition);background:var(--kc-white);
}
.kc-hours-btn:hover{border-color:var(--kc-copper);color:var(--kc-copper)}
.kc-hours-display{
  font-family:var(--ff-head);font-size:2rem;font-weight:300;
  color:var(--kc-navy);min-width:2ch;text-align:center;
}
.kc-builder-summary{
  background:var(--kc-navy);border-radius:var(--radius-md);
  padding:2rem;position:sticky;top:90px;color:var(--kc-white);
}
.kc-summary-title{
  font-family:var(--ff-head);font-size:1.3rem;color:var(--kc-white);
  margin-bottom:1.5rem;font-weight:400;
}
.kc-summary-rows{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.5rem}
.kc-summary-row{display:flex;justify-content:space-between;gap.5rem;font-size:.85rem}
.kc-summary-row-label{color:rgba(255,255,255,.65)}
.kc-summary-row-val{color:var(--kc-white);font-weight:600}
.kc-summary-sep{height:1px;background:rgba(255,255,255,.12);margin:.75rem 0}
.kc-summary-total-label{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.kc-summary-total-amt{
  font-family:var(--ff-head);font-size:2.8rem;font-weight:300;
  color:var(--kc-white);line-height:1;margin:0.25rem 0 1.5rem;
}

/* ── FAQ ─────────────────────────────────────────────────── */
.kc-faq-stack{display:flex;flex-direction:column;gap:0}
.kc-faq-item{border-bottom:1px solid var(--kc-border)}
.kc-faq-item:first-child{border-top:1px solid var(--kc-border)}
.kc-faq-trigger{
  display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;
  width:100%;text-align:left;padding:1.5rem 0;
  background:none;border:none;cursor:pointer;
}
.kc-faq-q{font-family:var(--ff-head);font-size:1.05rem;color:var(--kc-navy);font-weight:500;line-height:1.4}
.kc-faq-icon{
  width:22px;height:22px;flex-shrink:0;
  border-radius:50%;border:1.5px solid var(--kc-border);
  display:flex;align-items:center;justify-content:center;
  transition:var(--transition);margin-top:2px;
}
.kc-faq-icon svg{width:12px;height:12px;transition:transform var(--transition)}
.kc-faq-item.kc-open .kc-faq-icon{border-color:var(--kc-copper);background:var(--kc-copper)}
.kc-faq-item.kc-open .kc-faq-icon svg{transform:rotate(45deg);stroke:var(--kc-white)}
.kc-faq-answer{
  overflow:hidden;max-height:0;
  transition:max-height .4s cubic-bezier(0.4,0,0.2,1);
}
.kc-faq-answer-inner{padding-bottom:1.5rem;font-size:.9rem;color:var(--kc-muted);line-height:1.75}
.kc-faq-item.kc-open .kc-faq-answer{max-height:800px}

/* ── Contact Form ────────────────────────────────────────── */
.kc-contact-layout{
  display:grid;grid-template-columns:1fr 1.6fr;gap:4rem;align-items:start;
}
.kc-contact-info-block{padding-top:1rem}
.kc-contact-detail{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:flex-start}
.kc-contact-detail-icon{
  width:40px;height:40px;flex-shrink:0;
  background:var(--kc-cream-mid);border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  color:var(--kc-copper);
}
.kc-contact-detail-icon svg{width:18px;height:18px}
.kc-contact-detail-label{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--kc-muted);display:block;margin-bottom:.2rem}
.kc-contact-detail-val{font-size:.92rem;color:var(--kc-navy)}
.kc-form-group{margin-bottom:1.25rem}
.kc-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.kc-label{
  display:block;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--kc-muted);margin-bottom:.4rem;
}
.kc-input,.kc-textarea,.kc-select{
  width:100%;
  border:1.5px solid var(--kc-border);border-radius:var(--radius-sm);
  padding:.8rem 1rem;font-size:.92rem;color:var(--kc-navy);
  background:var(--kc-white);
  transition:border-color var(--transition);outline:none;
}
.kc-input:focus,.kc-textarea:focus,.kc-select:focus{border-color:var(--kc-copper)}
.kc-textarea{resize:vertical;min-height:140px}
.kc-form-note{font-size:.78rem;color:var(--kc-muted);margin-top:.3rem}
.kc-check-row{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.5rem}
.kc-check-row input[type="checkbox"]{
  width:18px;height:18px;flex-shrink:0;margin-top:2px;
  accent-color:var(--kc-copper);cursor:pointer;
}
.kc-check-label{font-size:.85rem;color:var(--kc-muted);line-height:1.5}
.kc-check-label a{color:var(--kc-copper);text-decoration:underline}
.kc-form-success{
  background:#e8f5e9;border:1px solid #a5d6a7;
  border-radius:var(--radius-sm);padding:1rem 1.25rem;
  font-size:.9rem;color:#2e7d32;margin-bottom:1rem;display:none;
}
.kc-form-error{
  background:#fce4ec;border:1px solid #f48fb1;
  border-radius:var(--radius-sm);padding:1rem 1.25rem;
  font-size:.9rem;color:#c62828;margin-bottom:1rem;display:none;
}

/* ── About ───────────────────────────────────────────────── */
.kc-about-hero{
  background:var(--kc-navy);
  padding-top:calc(72px + 5rem);padding-bottom:5rem;
  position:relative;overflow:hidden;
}
.kc-about-hero-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;
}
.kc-about-hero-img{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5;position:relative}
.kc-about-hero-img img{width:100%;height:100%;object-fit:cover}
.kc-team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem}
.kc-team-card{background:var(--kc-white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}
.kc-team-img{aspect-ratio:4/3;overflow:hidden}
.kc-team-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.kc-team-card:hover .kc-team-img img{transform:scale(1.05)}
.kc-team-body{padding:1.5rem}
.kc-team-name{font-family:var(--ff-head);font-size:1.2rem;color:var(--kc-navy);margin-bottom:.2rem}
.kc-team-role{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--kc-copper);display:block;margin-bottom:.75rem}
.kc-team-bio{font-size:.85rem;color:var(--kc-muted);line-height:1.65}
.kc-values-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2rem}
.kc-value-card{padding:2rem;background:rgba(255,255,255,.06);border-radius:var(--radius-md);border-left:3px solid var(--kc-copper)}
.kc-value-title{font-family:var(--ff-head);font-size:1.1rem;color:var(--kc-white);margin-bottom:.6rem}
.kc-value-text{font-size:.85rem;color:rgba(255,255,255,.65);line-height:1.65}

/* ── Service Page Hero ───────────────────────────────────── */
.kc-svc-hero{
  background:var(--kc-navy);
  padding-top:calc(72px + 5rem);padding-bottom:5rem;
  position:relative;overflow:hidden;
}
.kc-svc-hero-inner{
  display:grid;grid-template-columns:1.1fr 1fr;gap:4rem;align-items:center;
}
.kc-svc-hero-img{
  border-radius:var(--radius-lg);overflow:hidden;
  aspect-ratio:16/10;position:relative;
}
.kc-svc-hero-img img{width:100%;height:100%;object-fit:cover;opacity:.85}
.kc-svc-hero-img-overlay{
  position:absolute;inset:0;
  background:linear-gradient(135deg,var(--kc-navy) 0%,transparent 60%);
}
.kc-svc-price-chip{
  display:inline-flex;align-items:center;gap:.6rem;
  background:rgba(181,98,42,.15);border:1px solid rgba(181,98,42,.3);
  border-radius:50px;padding:.5rem 1rem;
  font-size:.82rem;font-weight:600;color:var(--kc-copper-light);
  margin-bottom:1.5rem;
}
.kc-svc-includes-list{display:flex;flex-direction:column;gap:.6rem;margin:1.5rem 0}
.kc-svc-includes-list li{
  display:flex;align-items:flex-start;gap:.75rem;
  font-size:.9rem;color:rgba(255,255,255,.8);
}
.kc-include-dot{
  width:6px;height:6px;border-radius:50%;background:var(--kc-copper);
  flex-shrink:0;margin-top:.5rem;
}

/* ── Portfolio / Work ────────────────────────────────────── */
.kc-portfolio-mosaic{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-template-rows:auto;
  gap:1.5rem;
}
.kc-port-a{grid-column:1/8;grid-row:1}
.kc-port-b{grid-column:8/13;grid-row:1}
.kc-port-c{grid-column:1/6;grid-row:2}
.kc-port-d{grid-column:6/13;grid-row:2}
.kc-port-card{
  border-radius:var(--radius-md);overflow:hidden;
  position:relative;aspect-ratio:16/10;cursor:pointer;
}
.kc-port-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.kc-port-card:hover img{transform:scale(1.05)}
.kc-port-caption{
  position:absolute;bottom:0;left:0;right:0;
  padding:1.5rem;
  background:linear-gradient(to top,rgba(22,33,62,.9) 0%,transparent 100%);
  transform:translateY(40%);transition:transform .3s ease;
}
.kc-port-card:hover .kc-port-caption{transform:translateY(0)}
.kc-port-service{
  font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--kc-copper-light);margin-bottom:.3rem;display:block;
}
.kc-port-title{font-family:var(--ff-head);font-size:1.1rem;color:var(--kc-white)}

/* ── Footer ──────────────────────────────────────────────── */
.kc-footer{background:var(--kc-navy);color:var(--kc-white);padding:4rem 0 0}
.kc-footer-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.5fr;
  gap:3rem;padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.kc-footer-brand-name{
  font-family:var(--ff-head);font-size:1.6rem;font-weight:400;
  color:var(--kc-white);margin-bottom:1rem;
}
.kc-footer-tagline{font-size:.88rem;color:rgba(255,255,255,.5);line-height:1.65;margin-bottom:1.5rem;max-width:300px}
.kc-footer-contact-line{
  display:flex;align-items:center;gap:.6rem;
  font-size:.84rem;color:rgba(255,255,255,.55);margin-bottom:.5rem;
}
.kc-footer-contact-line svg{width:14px;height:14px;flex-shrink:0;color:var(--kc-copper)}
.kc-footer-col-title{
  font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:rgba(255,255,255,.35);margin-bottom:1.1rem;
}
.kc-footer-links{display:flex;flex-direction:column;gap:.55rem}
.kc-footer-links a{font-size:.85rem;color:rgba(255,255,255,.55);transition:color var(--transition)}
.kc-footer-links a:hover{color:var(--kc-white)}
.kc-footer-bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
  padding:1.5rem 0;font-size:.75rem;color:rgba(255,255,255,.3);
}
.kc-footer-legal-links{display:flex;gap:1.5rem;flex-wrap:wrap}
.kc-footer-legal-links a{color:rgba(255,255,255,.3);transition:color var(--transition)}
.kc-footer-legal-links a:hover{color:rgba(255,255,255,.7)}
.kc-footer-disclaimer{
  text-align:center;padding:1rem;
  font-size:.72rem;color:rgba(255,255,255,.2);
  border-top:1px solid rgba(255,255,255,.04);
}

/* ── Cookie Banner ───────────────────────────────────────── */
.kc-cookie-bar{
  position:fixed;bottom:0;left:0;right:0;
  background:var(--kc-navy-mid);
  border-top:1px solid rgba(255,255,255,.1);
  padding:1.25rem clamp(1.25rem,4vw,3rem);
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  z-index:9999;transform:translateY(100%);transition:transform .4s ease;
}
.kc-cookie-bar.kc-visible{transform:translateY(0)}
.kc-cookie-text{font-size:.82rem;color:rgba(255,255,255,.7);max-width:600px;line-height:1.5}
.kc-cookie-text a{color:var(--kc-copper-light);text-decoration:underline}
.kc-cookie-btns{display:flex;gap:.75rem;flex-shrink:0}

/* ── Chat Widget ─────────────────────────────────────────── */
.kc-chat-launcher{
  position:fixed;bottom:1.75rem;right:1.75rem;z-index:800;
  width:54px;height:54px;border-radius:50%;
  background:var(--kc-copper);color:var(--kc-white);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 16px rgba(181,98,42,.4);
  cursor:pointer;transition:transform var(--transition),box-shadow var(--transition);
  border:none;
}
.kc-chat-launcher:hover{transform:scale(1.08);box-shadow:0 6px 24px rgba(181,98,42,.5)}
.kc-chat-launcher svg{width:24px;height:24px}
.kc-chat-bubble{
  position:fixed;bottom:6rem;right:1.75rem;z-index:800;
  background:var(--kc-white);border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);width:330px;
  display:none;flex-direction:column;overflow:hidden;
  border:1px solid var(--kc-border);
}
.kc-chat-bubble.kc-chat-open{display:flex}
.kc-chat-header{
  background:var(--kc-navy);padding:1.1rem 1.25rem;
  display:flex;align-items:center;gap:.75rem;
}
.kc-chat-avatar{
  width:36px;height:36px;border-radius:50%;
  background:var(--kc-copper);display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-head);font-size:1rem;color:var(--kc-white);
}
.kc-chat-header-info{}
.kc-chat-header-name{font-size:.88rem;font-weight:600;color:var(--kc-white);display:block}
.kc-chat-header-status{font-size:.72rem;color:rgba(255,255,255,.5)}
.kc-chat-close{margin-left:auto;background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:1.2rem;line-height:1}
.kc-chat-messages{padding:1.25rem;flex:1;min-height:160px;display:flex;flex-direction:column;gap:.75rem}
.kc-chat-msg{
  max-width:85%;padding:.65rem .9rem;
  border-radius:var(--radius-md);font-size:.85rem;line-height:1.5;
}
.kc-chat-msg--bot{background:var(--kc-cream);color:var(--kc-navy);border-bottom-left-radius:2px;align-self:flex-start}
.kc-chat-msg--user{background:var(--kc-copper);color:var(--kc-white);border-bottom-right-radius:2px;align-self:flex-end}
.kc-chat-form{display:flex;border-top:1px solid var(--kc-border);padding:.75rem}
.kc-chat-input{
  flex:1;border:none;outline:none;font-size:.85rem;color:var(--kc-navy);
  background:transparent;
}
.kc-chat-send{
  background:var(--kc-copper);color:var(--kc-white);border:none;
  border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.8rem;font-weight:600;
  cursor:pointer;transition:background var(--transition);
}
.kc-chat-send:hover{background:var(--kc-copper-light)}

/* ── Legal Pages ─────────────────────────────────────────── */
.kc-legal-hero{
  background:var(--kc-navy);padding-top:calc(72px + 4rem);padding-bottom:4rem;
}
.kc-legal-body{
  max-width:800px;margin:4rem auto;padding-inline:clamp(1.25rem,4vw,3rem);
}
.kc-legal-body h2{font-size:1.5rem;margin:2.5rem 0 .75rem;color:var(--kc-navy)}
.kc-legal-body h3{font-size:1.15rem;margin:1.75rem 0 .5rem;color:var(--kc-navy)}
.kc-legal-body p{font-size:.92rem;line-height:1.8;color:#3a3a4a;margin-bottom:1rem}
.kc-legal-body ul{margin:1rem 0 1.5rem 1.5rem;list-style:disc}
.kc-legal-body ul li{font-size:.92rem;line-height:1.75;color:#3a3a4a;margin-bottom:.4rem}
.kc-legal-body a{color:var(--kc-copper);text-decoration:underline}
.kc-legal-updated{
  background:var(--kc-cream);border-radius:var(--radius-sm);padding:.75rem 1rem;
  font-size:.82rem;color:var(--kc-muted);margin-bottom:2rem;
  border-left:3px solid var(--kc-copper);
}
.kc-legal-toc{
  background:var(--kc-cream);border-radius:var(--radius-md);
  padding:1.5rem 1.75rem;margin-bottom:2.5rem;
}
.kc-legal-toc h4{font-family:var(--ff-body);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--kc-muted);margin-bottom:.9rem}
.kc-legal-toc ol{list-style:decimal;padding-left:1.25rem}
.kc-legal-toc li{font-size:.88rem;margin-bottom:.35rem}
.kc-legal-toc a{color:var(--kc-copper)}

/* ── Checkout ────────────────────────────────────────────── */
.kc-checkout-layout{
  display:grid;grid-template-columns:1fr 400px;gap:2.5rem;align-items:start;
}
.kc-order-summary{
  background:var(--kc-white);border:1.5px solid var(--kc-border);
  border-radius:var(--radius-md);padding:2rem;
  position:sticky;top:90px;
}
.kc-order-summary-title{
  font-family:var(--ff-head);font-size:1.25rem;color:var(--kc-navy);
  margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--kc-border);
}
.kc-order-line{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:1rem;padding:.6rem 0;font-size:.88rem;
  border-bottom:1px solid var(--kc-cream-mid);
}
.kc-order-line-name{color:var(--kc-text);flex:1}
.kc-order-line-price{color:var(--kc-navy);font-weight:600;white-space:nowrap}
.kc-order-total-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:1rem 0 0;margin-top:.5rem;
}
.kc-order-total-label{font-weight:600;color:var(--kc-navy)}
.kc-order-total-amt{
  font-family:var(--ff-head);font-size:1.8rem;font-weight:300;color:var(--kc-copper);
}
.kc-checkout-form-wrap{
  background:var(--kc-white);border:1px solid var(--kc-border);
  border-radius:var(--radius-md);padding:2rem;
}

/* ── Payment pages ───────────────────────────────────────── */
.kc-payment-page{
  min-height:calc(100vh - 72px);display:flex;align-items:center;justify-content:center;
  padding:6rem 1.5rem;background:var(--kc-cream);
}
.kc-payment-card{
  background:var(--kc-white);border-radius:var(--radius-lg);
  padding:clamp(2.5rem,6vw,4rem);text-align:center;max-width:540px;
  box-shadow:var(--shadow-md);
}
.kc-payment-icon{
  width:72px;height:72px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 1.5rem;
}
.kc-payment-icon--success{background:#e8f5e9}
.kc-payment-icon--cancel{background:#fff3e0}
.kc-payment-icon svg{width:36px;height:36px}
.kc-payment-icon--success svg{color:#2e7d32}
.kc-payment-icon--cancel svg{color:#e65100}
.kc-payment-title{font-family:var(--ff-head);font-size:2rem;color:var(--kc-navy);margin-bottom:.75rem}
.kc-payment-text{color:var(--kc-muted);font-size:.95rem;line-height:1.75;margin-bottom:2rem}

/* ── Animations ──────────────────────────────────────────── */
.kc-fade-in{
  opacity:0;transform:translateY(24px);
  transition:opacity .6s ease,transform .6s ease;
}
.kc-fade-in.kc-visible{opacity:1;transform:translateY(0)}
.kc-fade-in:nth-child(1){transition-delay:.05s}
.kc-fade-in:nth-child(2){transition-delay:.12s}
.kc-fade-in:nth-child(3){transition-delay:.19s}
.kc-fade-in:nth-child(4){transition-delay:.26s}
.kc-fade-in:nth-child(5){transition-delay:.33s}
.kc-fade-in:nth-child(6){transition-delay:.40s}

/* ── Page hero generic ───────────────────────────────────── */
.kc-page-hero{
  background:var(--kc-navy);
  padding:calc(72px + 5rem) 0 5rem;
  position:relative;overflow:hidden;
}
.kc-page-hero::after{
  content:'';position:absolute;bottom:-1px;left:0;right:0;height:80px;
  background:var(--kc-cream);
  clip-path:ellipse(55% 100% at 50% 100%);
}
.kc-page-hero--white::after{background:var(--kc-white)}

/* ── Ribbon / Banner ─────────────────────────────────────── */
.kc-ribbon{
  background:var(--kc-cream-mid);
  padding:1rem 0;overflow:hidden;border-top:1px solid var(--kc-sand);border-bottom:1px solid var(--kc-sand);
}
.kc-ribbon-track{
  display:flex;gap:4rem;white-space:nowrap;
  animation:kc-ribbon-scroll 28s linear infinite;
}
.kc-ribbon-track:hover{animation-play-state:paused}
.kc-ribbon-item{
  font-family:var(--ff-head);font-size:1rem;font-weight:300;font-style:italic;
  color:var(--kc-muted);display:flex;align-items:center;gap:1.5rem;
}
.kc-ribbon-sep{color:var(--kc-copper)}
@keyframes kc-ribbon-scroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}

/* ── Utility ─────────────────────────────────────────────── */
.kc-mt-sm{margin-top:1rem}
.kc-mt-md{margin-top:2rem}
.kc-mt-lg{margin-top:3.5rem}
.kc-mb-md{margin-bottom:2rem}
.kc-text-center{text-align:center}
.kc-copper{color:var(--kc-copper)}
.kc-white{color:var(--kc-white)}
.kc-muted{color:var(--kc-muted)}
.kc-divider{height:1px;background:var(--kc-border);margin:2rem 0}
.kc-tag{
  display:inline-block;padding:.25rem .7rem;
  background:var(--kc-cream-mid);color:var(--kc-navy);
  font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  border-radius:50px;margin-right:.4rem;margin-bottom:.4rem;
}

/* ── Responsive ──────────────────────────────────────────── */
@media(max-width:1024px){
  .kc-hero-split{grid-template-columns:1fr;min-height:auto}
  .kc-hero-right{height:60vw;max-height:520px}
  .kc-about-hero-grid{grid-template-columns:1fr}
  .kc-about-hero-img{aspect-ratio:16/7}
  .kc-contact-layout{grid-template-columns:1fr}
  .kc-checkout-layout{grid-template-columns:1fr}
  .kc-order-summary{position:relative;top:auto}
  .kc-builder-layout{grid-template-columns:1fr}
  .kc-builder-summary{position:relative;top:auto}
  .kc-footer-grid{grid-template-columns:1fr 1fr}
  .kc-svc-hero-inner{grid-template-columns:1fr}
  .kc-svc-hero-img{aspect-ratio:16/7}
  .kc-case-row{grid-template-columns:1fr}
  .kc-case-img{aspect-ratio:16/7}
  .kc-portfolio-mosaic{grid-template-columns:1fr 1fr}
  .kc-port-a,.kc-port-b,.kc-port-c,.kc-port-d{grid-column:auto;grid-row:auto}
}
@media(max-width:768px){
  .kc-nav-links,.kc-nav-cta{display:none}
  .kc-burger{display:flex}
  .kc-footer-grid{grid-template-columns:1fr}
  .kc-form-row{grid-template-columns:1fr}
  .kc-hero-float{display:none}
  .kc-testi-scroll{grid-template-columns:1fr}
  .kc-pricing-rail{grid-template-columns:1fr}
  .kc-portfolio-mosaic{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════
   ABOUT PAGE
═══════════════════════════════════════════════ */

.ab-masthead {
  background: var(--bg-dark);
  padding: 7rem 0 5rem;
  overflow: hidden;
}
.ab-masthead-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.ab-eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 1.2rem;
}
.ab-masthead-title {
  font-family: var(--font-head);
  font-size: clamp(2.4rem, 4.5vw, 3.6rem);
  font-weight: 400;
  color: var(--text-light);
  line-height: 1.1;
  margin: 0 0 1.5rem;
}
.ab-masthead-body {
  color: var(--text-muted-light);
  font-size: 1.05rem;
  line-height: 1.75;
  margin-bottom: 1rem;
}
.ab-img-frame {
  border-radius: 4px;
  overflow: hidden;
  position: relative;
}
.ab-img-frame--tall { aspect-ratio: 4/5; }
.ab-studio-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ab-masthead-stat-chip {
  position: absolute;
  bottom: -1.5rem;
  left: -1.5rem;
  background: var(--accent);
  color: #fff;
  padding: 1rem 1.4rem;
  border-radius: 4px;
}
.ab-masthead-stat-chip strong { display: block; font-size: 1.1rem; font-weight: 700; }
.ab-masthead-stat-chip span { font-size: 0.8rem; opacity: 0.85; }
.ab-masthead-visual { position: relative; padding-bottom: 2rem; }

.ab-story-band {
  background: var(--bg-cream);
  padding: 6rem 0;
}
.ab-story-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 4rem;
  align-items: start;
}
.ab-story-col {}
.ab-section-title {
  font-family: var(--font-head);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 400;
  color: var(--navy);
  line-height: 1.2;
  margin: 0 0 1.5rem;
}
.ab-story-col--wide p {
  color: var(--text-dark);
  font-size: 1.05rem;
  line-height: 1.8;
  margin-bottom: 1.2rem;
}

.ab-values-section {
  background: var(--navy);
  padding: 6rem 0;
}
.ab-values-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}
.ab-values-head { margin-bottom: 3rem; }
.ab-values-head .ab-section-title { color: var(--text-light); }
.ab-values-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
}
.ab-value-tile {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  padding: 2.5rem;
  transition: background 0.3s;
}
.ab-value-tile:hover { background: rgba(255,255,255,0.09); }
.ab-value-num {
  font-family: var(--font-head);
  font-size: 2.5rem;
  color: var(--accent);
  opacity: 0.5;
  line-height: 1;
  margin-bottom: 1rem;
}
.ab-value-title {
  font-family: var(--font-head);
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--text-light);
  margin-bottom: 0.8rem;
}
.ab-value-body { color: var(--text-muted-light); font-size: 0.95rem; line-height: 1.7; }

.ab-team-section { background: var(--bg-cream); padding: 7rem 0; }
.ab-team-inner { max-width: 1200px; margin: 0 auto; padding: 0 2rem; }
.ab-team-head { margin-bottom: 3rem; }
.ab-team-intro { color: var(--text-muted); font-size: 1.05rem; max-width: 52ch; margin-top: -0.5rem; }
.ab-team-roster { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.ab-team-card {}
.ab-team-photo-wrap {
  aspect-ratio: 3/4;
  overflow: hidden;
  border-radius: 4px;
  margin-bottom: 1.2rem;
  background: var(--navy);
}
.ab-team-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.ab-team-name { font-family: var(--font-head); font-size: 1.3rem; color: var(--navy); margin-bottom: 0.2rem; }
.ab-team-role { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent); margin-bottom: 0.8rem; }
.ab-team-bio { color: var(--text-dark); font-size: 0.9rem; line-height: 1.7; }

.ab-approach-band { background: #fff; padding: 6rem 0; border-top: 1px solid var(--border); }
.ab-approach-inner {
  max-width: 1200px; margin: 0 auto; padding: 0 2rem;
  display: grid; grid-template-columns: 3fr 2fr; gap: 5rem; align-items: center;
}
.ab-approach-title { font-family: var(--font-head); font-size: clamp(1.6rem, 2.5vw, 2.2rem); color: var(--navy); margin-bottom: 1.2rem; }
.ab-approach-text p { color: var(--text-dark); line-height: 1.8; margin-bottom: 1rem; font-size: 1.02rem; }
.ab-approach-link { color: var(--accent); font-weight: 500; text-decoration: none; border-bottom: 1px solid currentColor; }
.ab-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.ab-fact { text-align: center; padding: 1.5rem; background: var(--bg-cream); border-radius: 4px; }
.ab-fact-num { display: block; font-family: var(--font-head); font-size: 2.4rem; color: var(--accent); line-height: 1; }
.ab-fact-label { display: block; font-size: 0.82rem; color: var(--text-muted); margin-top: 0.4rem; }

.ab-cta-strip { background: var(--accent); padding: 5rem 0; }
.ab-cta-strip-inner { max-width: 700px; margin: 0 auto; padding: 0 2rem; text-align: center; }
.ab-cta-strip h2 { font-family: var(--font-head); font-size: clamp(1.8rem, 3vw, 2.6rem); color: #fff; margin-bottom: 1rem; }
.ab-cta-strip p { color: rgba(255,255,255,0.85); font-size: 1.05rem; margin-bottom: 2rem; }
.ab-cta-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ═══════════════════════════════════════════════
   CONTACT PAGE
═══════════════════════════════════════════════ */

.ct-intro-block { padding: 6rem 0; background: var(--bg-cream); }
.ct-intro-inner {
  max-width: 1200px; margin: 0 auto; padding: 0 2rem;
  display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start;
}
.ct-intro-title {
  font-family: var(--font-head);
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--navy); margin: 0.6rem 0 1rem;
}
.ct-intro-lead { color: var(--text-dark); font-size: 1.05rem; line-height: 1.75; margin-bottom: 2rem; }
.ct-intro-lead a { color: var(--accent); }
.ct-details-list { display: flex; flex-direction: column; gap: 1.2rem; margin-bottom: 2rem; }
.ct-detail-row { display: flex; gap: 1rem; align-items: flex-start; }
.ct-detail-icon { flex-shrink: 0; margin-top: 2px; }
.ct-detail-row div { display: flex; flex-direction: column; gap: 0.2rem; }
.ct-detail-row strong { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); }
.ct-detail-row span, .ct-detail-row a { font-size: 0.95rem; color: var(--text-dark); text-decoration: none; }
.ct-detail-row a:hover { color: var(--accent); }
.ct-response-note {
  background: #fff; border-left: 3px solid var(--accent);
  padding: 1rem 1.2rem; border-radius: 0 4px 4px 0;
  font-size: 0.9rem; color: var(--text-dark); line-height: 1.6;
}
.ct-response-note strong { color: var(--navy); }

.ct-form-panel {
  background: #fff; border-radius: 8px;
  padding: 2.5rem; box-shadow: 0 4px 40px rgba(22,33,62,0.08);
}
.ct-enquiry-form { display: flex; flex-direction: column; gap: 1.2rem; }
.ct-form-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ct-form-field { display: flex; flex-direction: column; gap: 0.4rem; }
.ct-form-field label { font-size: 0.82rem; font-weight: 600; color: var(--navy); text-transform: uppercase; letter-spacing: 0.06em; }
.ct-form-field input,
.ct-form-field select,
.ct-form-field textarea {
  border: 1.5px solid var(--border); border-radius: 4px;
  padding: 0.75rem 1rem; font-family: var(--font-body); font-size: 0.95rem;
  color: var(--text-dark); background: var(--bg-cream);
  transition: border-color 0.2s, box-shadow 0.2s; outline: none;
}
.ct-form-field input:focus,
.ct-form-field select:focus,
.ct-form-field textarea:focus {
  border-color: var(--accent); box-shadow: 0 0 0 3px rgba(181,98,42,0.12);
}
.ct-form-field textarea { resize: vertical; min-height: 110px; }
.ct-submit-btn {
  background: var(--navy); color: #fff;
  border: none; padding: 1rem 2rem;
  font-family: var(--font-body); font-size: 1rem; font-weight: 600;
  border-radius: 4px; cursor: pointer; transition: background 0.25s;
}
.ct-submit-btn:hover { background: var(--accent); }
.ct-form-feedback { font-size: 0.9rem; min-height: 1.4em; }
.ct-form-feedback--loading { color: var(--text-muted); }
.ct-form-feedback--success { color: #2d7a45; font-weight: 500; }

/* ═══════════════════════════════════════════════
   FAQ PAGE
═══════════════════════════════════════════════ */

.fq-hero-band { background: var(--bg-dark); padding: 7rem 0 5rem; }
.fq-hero-inner { max-width: 800px; margin: 0 auto; padding: 0 2rem; }
.fq-hero-title {
  font-family: var(--font-head); font-size: clamp(2.4rem, 5vw, 3.8rem);
  color: var(--text-light); font-weight: 400; margin: 0.6rem 0 1rem; line-height: 1.1;
}
.fq-hero-sub { color: var(--text-muted-light); font-size: 1.08rem; }
.fq-hero-sub a { color: var(--accent); }

.fq-main-section { background: var(--bg-cream); padding: 5rem 0; }
.fq-main-inner { max-width: 1100px; margin: 0 auto; padding: 0 2rem; display: grid; grid-template-columns: 220px 1fr; gap: 4rem; align-items: start; }

.fq-cat-nav { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 0.4rem; }
.fq-cat-link {
  font-size: 0.88rem; font-weight: 500; color: var(--text-muted);
  text-decoration: none; padding: 0.5rem 0.8rem; border-radius: 4px;
  transition: background 0.2s, color 0.2s;
}
.fq-cat-link:hover { background: #fff; color: var(--navy); }

.fq-body { display: flex; flex-direction: column; gap: 3.5rem; }
.fq-cat-group {}
.fq-cat-title { font-family: var(--font-head); font-size: 1.5rem; color: var(--navy); margin-bottom: 1.5rem; padding-bottom: 0.8rem; border-bottom: 1.5px solid var(--border); }
.fq-accordion-set { display: flex; flex-direction: column; }
.fq-accord-item { border-bottom: 1px solid var(--border); }
.fq-accord-trigger {
  width: 100%; background: none; border: none; padding: 1.2rem 0;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  cursor: pointer; text-align: left;
}
.fq-accord-q { font-size: 1rem; font-weight: 500; color: var(--navy); }
.fq-accord-icon svg { flex-shrink: 0; transition: transform 0.25s; }
.fq-accord-item--open .fq-accord-icon svg { transform: rotate(180deg); }
.fq-accord-panel { padding: 0 0 1.2rem; }
.fq-accord-panel p { color: var(--text-dark); font-size: 0.96rem; line-height: 1.75; }

.fq-still-ask { background: #fff; padding: 5rem 0; text-align: center; }
.fq-still-inner { max-width: 600px; margin: 0 auto; padding: 0 2rem; }
.fq-still-inner h2 { font-family: var(--font-head); font-size: 2rem; color: var(--navy); margin-bottom: 1rem; }
.fq-still-inner p { color: var(--text-dark); line-height: 1.75; margin-bottom: 2rem; }

/* ═══════════════════════════════════════════════
   PORTFOLIO
═══════════════════════════════════════════════ */

.pf-masthead { background: var(--bg-dark); padding: 7rem 0 5rem; }
.pf-masthead-inner { max-width: 800px; margin: 0 auto; padding: 0 2rem; }
.pf-masthead-title { font-family: var(--font-head); font-size: clamp(2.4rem, 5vw, 3.8rem); color: var(--text-light); font-weight: 400; margin: 0.6rem 0 1rem; }
.pf-masthead-sub { color: var(--text-muted-light); font-size: 1.05rem; max-width: 58ch; line-height: 1.75; }

.pf-filter-bar { background: var(--bg-cream); border-bottom: 1px solid var(--border); }
.pf-filter-inner { max-width: 1200px; margin: 0 auto; padding: 0 2rem; display: flex; gap: 0.5rem; overflow-x: auto; padding-top: 1rem; padding-bottom: 1rem; }
.pf-filter-btn {
  flex-shrink: 0; background: none; border: 1.5px solid var(--border);
  padding: 0.5rem 1.2rem; border-radius: 100px; font-size: 0.88rem;
  color: var(--text-muted); cursor: pointer; transition: all 0.2s;
}
.pf-filter-btn:hover, .pf-filter-btn--active { background: var(--navy); border-color: var(--navy); color: #fff; }

.pf-work-grid-section { background: #fff; padding: 5rem 0; }
.pf-work-grid-inner { max-width: 1200px; margin: 0 auto; padding: 0 2rem; display: flex; flex-direction: column; gap: 5rem; }

.pf-case-row { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.pf-case-row--feature { grid-template-columns: 1.2fr 1fr; }
.pf-case-visual { position: relative; border-radius: 6px; overflow: hidden; aspect-ratio: 4/3; background: var(--navy); }
.pf-case-visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pf-case-type-chip {
  position: absolute; top: 1rem; left: 1rem;
  background: var(--accent); color: #fff;
  font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em;
  padding: 0.35rem 0.8rem; border-radius: 100px;
}
.pf-case-sector { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent); margin-bottom: 0.8rem; }
.pf-case-title { font-family: var(--font-head); font-size: clamp(1.4rem, 2vw, 1.9rem); color: var(--navy); margin-bottom: 1rem; line-height: 1.25; }
.pf-case-excerpt { color: var(--text-dark); font-size: 0.95rem; line-height: 1.75; margin-bottom: 1.2rem; }
.pf-case-results { list-style: none; margin: 0 0 1.2rem; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.pf-case-results li { font-size: 0.9rem; color: var(--text-dark); padding-left: 1.2rem; position: relative; }
.pf-case-results li::before { content: '→'; position: absolute; left: 0; color: var(--accent); }
.pf-case-quote blockquote { font-family: var(--font-head); font-size: 1.05rem; color: var(--navy); font-style: italic; margin: 0 0 0.3rem; }
.pf-case-quote cite { font-size: 0.82rem; color: var(--text-muted); font-style: normal; }

.pf-mosaic-section { background: var(--bg-cream); padding: 5rem 0; }
.pf-mosaic-inner { max-width: 1200px; margin: 0 auto; padding: 0 2rem; }
.pf-mosaic-head { margin-bottom: 2.5rem; }
.pf-mosaic-head h2 { font-family: var(--font-head); font-size: 2rem; color: var(--navy); margin-bottom: 0.5rem; }
.pf-mosaic-head p { color: var(--text-muted); }
.pf-mosaic-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5px; }
.pf-mosaic-tile { background: #fff; padding: 2rem; border: 1px solid var(--border); }
.pf-mosaic-tile--wide { grid-column: span 2; }
.pf-mosaic-tile--tall { grid-row: span 2; }
.pf-mosaic-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent); margin-bottom: 0.8rem; }
.pf-mosaic-tile p { font-size: 0.92rem; color: var(--text-dark); line-height: 1.7; }

.pf-cta-block { background: var(--navy); padding: 5rem 0; text-align: center; }
.pf-cta-inner { max-width: 600px; margin: 0 auto; padding: 0 2rem; }
.pf-cta-inner h2 { font-family: var(--font-head); font-size: 2.2rem; color: var(--text-light); margin-bottom: 1rem; }
.pf-cta-inner p { color: var(--text-muted-light); margin-bottom: 2rem; line-height: 1.7; }

/* ═══════════════════════════════════════════════
   PROCESS PAGE
═══════════════════════════════════════════════ */

.pr-hero-block { background: var(--bg-dark); padding: 7rem 0 4rem; position: relative; }
.pr-hero-inner { max-width: 800px; margin: 0 auto; padding: 0 2rem; }
.pr-hero-title { font-family: var(--font-head); font-size: clamp(2.8rem, 5vw, 4.2rem); color: var(--text-light); font-weight: 400; margin: 0.6rem 0 1rem; line-height: 1.1; }
.pr-hero-sub { color: var(--text-muted-light); font-size: 1.08rem; line-height: 1.7; max-width: 52ch; }
.pr-hero-line { height: 1px; background: var(--border); margin-top: 4rem; }

.pr-steps-section { background: #fff; padding: 5rem 0; }
.pr-steps-inner { max-width: 900px; margin: 0 auto; padding: 0 2rem; }
.pr-step-row { display: grid; grid-template-columns: 80px 1fr; gap: 2rem; margin-bottom: 0; align-items: start; }
.pr-step-number-col { display: flex; flex-direction: column; align-items: center; }
.pr-step-circle {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--accent); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-head); font-size: 1.2rem; font-weight: 400;
  flex-shrink: 0;
}
.pr-step-line { flex: 1; width: 1.5px; background: var(--border); min-height: 60px; margin: 8px 0; }
.pr-step-content { padding: 0.5rem 0 3rem; }
.pr-step-title { font-family: var(--font-head); font-size: 1.7rem; color: var(--navy); margin-bottom: 0.8rem; }
.pr-step-body { color: var(--text-dark); font-size: 1rem; line-height: 1.8; margin-bottom: 1rem; }
.pr-step-duration { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; color: var(--text-muted); }

.pr-expect-band { background: var(--bg-cream); padding: 6rem 0; }
.pr-expect-inner { max-width: 1100px; margin: 0 auto; padding: 0 2rem; }
.pr-expect-head { margin-bottom: 3rem; }
.pr-expect-head h2 { font-family: var(--font-head); font-size: clamp(1.8rem, 3vw, 2.4rem); color: var(--navy); }
.pr-expect-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
.pr-expect-item { background: #fff; padding: 2rem; border-radius: 4px; border: 1px solid var(--border); }
.pr-expect-item h3 { font-family: var(--font-head); font-size: 1.2rem; color: var(--navy); margin-bottom: 0.6rem; }
.pr-expect-item p { font-size: 0.95rem; color: var(--text-dark); line-height: 1.7; }

.pr-timeline-section { background: #fff; padding: 6rem 0; }
.pr-timeline-inner { max-width: 900px; margin: 0 auto; padding: 0 2rem; }
.pr-timeline-inner h2 { font-family: var(--font-head); font-size: 2rem; color: var(--navy); margin-bottom: 0.8rem; }
.pr-timeline-intro { color: var(--text-dark); margin-bottom: 2.5rem; line-height: 1.75; }
.pr-timeline-bar { display: flex; gap: 0; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; }
.pr-tl-segment { padding: 0; }
.pr-tl-label { padding: 0.6rem 1rem; font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); background: var(--bg-cream); border-bottom: 1px solid var(--border); }
.pr-tl-track { padding: 0.8rem 1rem; font-size: 0.88rem; color: var(--navy); font-weight: 500; }
.pr-tl-segment:nth-child(1) .pr-tl-track { background: rgba(181,98,42,0.08); }
.pr-tl-segment:nth-child(2) .pr-tl-track { background: rgba(181,98,42,0.15); }
.pr-tl-segment:nth-child(3) .pr-tl-track { background: rgba(181,98,42,0.10); }
.pr-tl-segment:nth-child(4) .pr-tl-track { background: rgba(181,98,42,0.22); }
.pr-timeline-note { margin-top: 1rem; font-size: 0.88rem; color: var(--text-muted); }

.pr-cta-block { background: var(--accent); padding: 5rem 0; text-align: center; }
.pr-cta-inner { max-width: 600px; margin: 0 auto; padding: 0 2rem; }
.pr-cta-inner h2 { font-family: var(--font-head); font-size: 2.2rem; color: #fff; margin-bottom: 0.8rem; }
.pr-cta-inner p { color: rgba(255,255,255,0.85); margin-bottom: 2rem; }
.pr-cta-btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ═══════════════════════════════════════════════
   CHECKOUT
═══════════════════════════════════════════════ */

.kc-checkout-shell { background: var(--bg-cream); min-height: 80vh; padding: 4rem 0 6rem; }
.kc-checkout-inner {
  max-width: 1100px; margin: 0 auto; padding: 0 2rem;
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 4rem; align-items: start;
}
.kc-back-link { font-size: 0.88rem; color: var(--text-muted); text-decoration: none; display: inline-block; margin-bottom: 1.5rem; }
.kc-back-link:hover { color: var(--accent); }
.kc-checkout-title { font-family: var(--font-head); font-size: clamp(1.8rem, 3vw, 2.5rem); color: var(--navy); margin: 0 0 0.6rem; }
.kc-checkout-sub { color: var(--text-muted); font-size: 0.95rem; margin-bottom: 2.5rem; }

.kc-order-form { display: flex; flex-direction: column; gap: 0; }
.kc-form-group { border: none; padding: 0; margin: 0 0 2rem; }
.kc-form-legend { font-family: var(--font-head); font-size: 1.15rem; color: var(--navy); margin-bottom: 1rem; display: block; width: 100%; border-bottom: 1px solid var(--border); padding-bottom: 0.6rem; }
.kc-form-row { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1rem; }
.kc-form-row--half { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.kc-field-wrap { display: flex; flex-direction: column; gap: 0.4rem; }
.kc-field-label { font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; color: var(--navy); }
.kc-field-input {
  border: 1.5px solid var(--border); border-radius: 4px;
  padding: 0.8rem 1rem; font-family: var(--font-body); font-size: 0.95rem;
  color: var(--text-dark); background: #fff; outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.kc-field-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(181,98,42,0.12); }
.kc-field-select { cursor: pointer; }
.kc-field-textarea { resize: vertical; min-height: 90px; }

.kc-tos-block { margin-bottom: 1.5rem; }
.kc-tos-label { display: flex; gap: 0.8rem; align-items: flex-start; font-size: 0.88rem; color: var(--text-dark); line-height: 1.5; cursor: pointer; }
.kc-tos-label input[type="checkbox"] { margin-top: 2px; flex-shrink: 0; accent-color: var(--accent); }
.kc-tos-label a { color: var(--accent); }

.kc-submit-row { display: flex; flex-direction: column; gap: 0.8rem; }
.kc-pay-btn {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; width: 100%; background: var(--navy); color: #fff;
  border: none; padding: 1.1rem 1.5rem; border-radius: 6px;
  font-family: var(--font-body); font-size: 1rem; cursor: pointer;
  transition: background 0.25s;
}
.kc-pay-btn:hover { background: var(--accent); }
.kc-pay-btn--loading { opacity: 0.7; pointer-events: none; }
.kc-pay-btn-text { font-weight: 600; }
.kc-pay-btn-amount { font-size: 1.15rem; font-weight: 700; font-family: var(--font-head); }
.kc-pay-arrow {}
.kc-pay-note { font-size: 0.8rem; color: var(--text-muted); text-align: center; }

.kc-order-summary {
  background: #fff; border: 1px solid var(--border); border-radius: 8px;
  padding: 2rem; position: sticky; top: 100px;
}
.kc-summary-title { font-family: var(--font-head); font-size: 1.3rem; color: var(--navy); margin-bottom: 1.5rem; padding-bottom: 0.8rem; border-bottom: 1px solid var(--border); }
.kc-summary-item { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.6rem 0; }
.kc-summary-item-label { font-size: 0.9rem; color: var(--text-dark); }
.kc-summary-item-price { font-size: 0.95rem; font-weight: 600; color: var(--navy); white-space: nowrap; }
.kc-pkg-badge { background: var(--accent); color: #fff; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.15rem 0.5rem; border-radius: 3px; margin-right: 0.4rem; }
.kc-summary-includes { list-style: none; padding: 0 0 0 0.4rem; margin: 0 0 0.8rem; border-top: 1px dashed var(--border); padding-top: 0.6rem; }
.kc-summary-includes li { font-size: 0.82rem; color: var(--text-muted); padding: 0.2rem 0 0.2rem 1rem; position: relative; }
.kc-summary-includes li::before { content: '✓'; position: absolute; left: 0; color: var(--accent); font-size: 0.8rem; }
.kc-summary-section { border-top: 1px solid var(--border); padding-top: 0.8rem; margin-top: 0.4rem; }
.kc-summary-section-head { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-muted); margin-bottom: 0.4rem; }
.kc-summary-total { display: flex; justify-content: space-between; align-items: baseline; padding: 1rem 0 0; border-top: 2px solid var(--navy); margin-top: 0.8rem; }
.kc-summary-total-label { font-weight: 700; color: var(--navy); }
.kc-summary-total-price { font-family: var(--font-head); font-size: 1.5rem; color: var(--navy); font-weight: 400; }
.kc-summary-delivery { font-size: 0.82rem; color: var(--text-muted); display: flex; gap: 0.5rem; align-items: flex-start; margin-top: 1.2rem; line-height: 1.5; }
.kc-summary-secure { font-size: 0.8rem; color: var(--text-muted); display: flex; gap: 0.5rem; align-items: center; margin-top: 0.6rem; }

/* ═══════════════════════════════════════════════
   PAYMENT SUCCESS / CANCEL
═══════════════════════════════════════════════ */

.ps-success-shell, .pc-cancel-shell { background: var(--bg-cream); min-height: 80vh; display: flex; align-items: center; padding: 6rem 0; }
.ps-success-inner, .pc-cancel-inner { max-width: 600px; margin: 0 auto; padding: 0 2rem; text-align: center; }
.ps-icon-wrap, .pc-icon-wrap { margin-bottom: 2rem; }
.ps-title, .pc-title { font-family: var(--font-head); font-size: clamp(2rem, 4vw, 2.8rem); color: var(--navy); margin-bottom: 1rem; }
.ps-lead, .pc-lead { color: var(--text-dark); font-size: 1.05rem; line-height: 1.75; margin-bottom: 2.5rem; }
.ps-what-next { background: #fff; border-radius: 8px; padding: 2rem; text-align: left; margin-bottom: 2rem; }
.ps-wn-title { font-family: var(--font-head); font-size: 1.2rem; color: var(--navy); margin-bottom: 1.2rem; }
.ps-wn-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1rem; counter-reset: ps-step; }
.ps-wn-list li { display: flex; flex-direction: column; gap: 0.2rem; padding-left: 1.8rem; position: relative; counter-increment: ps-step; }
.ps-wn-list li::before { content: counter(ps-step); position: absolute; left: 0; top: 2px; width: 1.2rem; height: 1.2rem; background: var(--accent); color: #fff; border-radius: 50%; font-size: 0.72rem; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.ps-wn-list li strong { font-size: 0.9rem; color: var(--navy); }
.ps-wn-list li span { font-size: 0.88rem; color: var(--text-dark); line-height: 1.6; }
.ps-contact-note { margin-bottom: 2rem; }
.ps-contact-note p { font-size: 0.9rem; color: var(--text-muted); }
.ps-contact-note a, .pc-help-note a { color: var(--accent); }
.ps-nav-links, .pc-options { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-bottom: 1.5rem; }
.pc-help-note p { font-size: 0.88rem; color: var(--text-muted); }

/* ═══════════════════════════════════════════════
   LEGAL PAGES
═══════════════════════════════════════════════ */

.legal-shell { background: var(--bg-cream); padding: 5rem 0 7rem; }
.legal-inner { max-width: 760px; margin: 0 auto; padding: 0 2rem; }
.legal-header { margin-bottom: 3rem; padding-bottom: 2rem; border-bottom: 2px solid var(--border); }
.legal-title { font-family: var(--font-head); font-size: clamp(2rem, 4vw, 3rem); color: var(--navy); margin-bottom: 0.8rem; }
.legal-meta { font-size: 0.85rem; color: var(--text-muted); line-height: 1.6; }

.legal-body h2 {
  font-family: var(--font-head); font-size: 1.4rem; color: var(--navy);
  margin: 2.5rem 0 0.8rem; padding-top: 2.5rem; border-top: 1px solid var(--border);
}
.legal-body h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.legal-body h3 { font-family: var(--font-head); font-size: 1.1rem; color: var(--navy); margin: 1.5rem 0 0.6rem; }
.legal-body p { color: var(--text-dark); font-size: 0.97rem; line-height: 1.8; margin-bottom: 1rem; }
.legal-body ul, .legal-body ol { color: var(--text-dark); font-size: 0.97rem; line-height: 1.8; padding-left: 1.5rem; margin-bottom: 1rem; }
.legal-body li { margin-bottom: 0.4rem; }
.legal-body a { color: var(--accent); }
.legal-body strong { color: var(--navy); }

.legal-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.9rem; }
.legal-table th { background: var(--navy); color: #fff; padding: 0.7rem 1rem; text-align: left; font-weight: 600; }
.legal-table td { padding: 0.65rem 1rem; border-bottom: 1px solid var(--border); color: var(--text-dark); }
.legal-table tr:nth-child(even) td { background: rgba(22,33,62,0.03); }

/* ═══════════════════════════════════════════════
   GLOBAL BUTTON STYLES (supplement)
═══════════════════════════════════════════════ */

.kirk-btn-primary {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: var(--accent); color: #fff; text-decoration: none;
  padding: 0.85rem 1.8rem; border-radius: 4px;
  font-family: var(--font-body); font-size: 0.95rem; font-weight: 600;
  transition: background 0.25s, transform 0.15s;
}
.kirk-btn-primary:hover { background: #9e4f1f; transform: translateY(-1px); }

.kirk-btn-ghost {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: transparent; color: var(--navy); text-decoration: none;
  padding: 0.82rem 1.8rem; border-radius: 4px;
  border: 1.5px solid var(--navy);
  font-family: var(--font-body); font-size: 0.95rem; font-weight: 600;
  transition: all 0.25s;
}
.kirk-btn-ghost:hover { background: var(--navy); color: #fff; }

.kirk-btn-ghost--light {
  border-color: rgba(255,255,255,0.5); color: #fff;
}
.kirk-btn-ghost--light:hover { background: rgba(255,255,255,0.15); border-color: #fff; }

/* ═══════════════════════════════════════════════
   RESPONSIVE SUPPLEMENTS
═══════════════════════════════════════════════ */

@media (max-width: 900px) {
  .ab-masthead-inner { grid-template-columns: 1fr; }
  .ab-masthead-visual { display: none; }
  .ab-story-inner { grid-template-columns: 1fr; }
  .ab-team-roster { grid-template-columns: 1fr 1fr; }
  .ab-values-grid { grid-template-columns: 1fr; }
  .ab-approach-inner { grid-template-columns: 1fr; gap: 3rem; }
  .ct-intro-inner { grid-template-columns: 1fr; }
  .kc-checkout-inner { grid-template-columns: 1fr; }
  .kc-order-summary { position: static; }
  .pf-case-row, .pf-case-row--feature { grid-template-columns: 1fr; }
  .pf-mosaic-grid { grid-template-columns: 1fr 1fr; }
  .pf-mosaic-tile--wide { grid-column: span 1; }
  .pr-expect-grid { grid-template-columns: 1fr; }
  .fq-main-inner { grid-template-columns: 1fr; }
  .fq-cat-nav { flex-direction: row; flex-wrap: wrap; position: static; }
  .pr-timeline-bar { flex-direction: column; }
}

@media (max-width: 600px) {
  .ab-team-roster { grid-template-columns: 1fr; }
  .kc-form-row--half { grid-template-columns: 1fr; }
  .ct-form-pair { grid-template-columns: 1fr; }
  .pf-mosaic-grid { grid-template-columns: 1fr; }
}

/* ── Semantic Aliases (used by sub-pages) ────────────────── */
:root {
  --navy:             var(--kc-navy);
  --accent:           var(--kc-copper);
  --bg-cream:         var(--kc-cream);
  --bg-dark:          var(--kc-navy);
  --text-light:       #f8f3ec;
  --text-dark:        #2b2b35;
  --text-muted:       var(--kc-muted);
  --text-muted-light: rgba(248,243,236,0.7);
  --border:           var(--kc-border);
  --font-head:        var(--ff-head);
  --font-body:        var(--ff-body);
  --surface:          #ffffff;
}
