/* bespoké corporate site — shared styles (loads after colors_and_type.css) */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--gold);color:var(--pine)}
img{max-width:100%}

.bk-container{max-width:1180px;margin:0 auto;padding-left:40px;padding-right:40px}
.bk-section{padding:92px 0}
.bk-section-sm{padding:64px 0}

/* ---------- header ---------- */
.bk-header{position:sticky;top:0;z-index:60;background:rgba(28,58,47,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(245,240,232,.1)}
.bk-header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:15px;padding-bottom:15px}
.bk-nav{display:flex;align-items:center;gap:32px}
.bk-navlink{font-family:var(--font-sans);font-size:14.5px;font-weight:500;color:#cdd8cf;text-decoration:none;letter-spacing:.01em;white-space:nowrap;transition:color .18s ease;cursor:pointer}
.bk-navlink:hover{color:var(--cream)}
.bk-navlink.is-active{color:var(--gold)}
.bk-header-right{display:flex;align-items:center;gap:18px}
.bk-menu-btn{display:none;background:transparent;border:none;color:var(--cream);cursor:pointer;padding:8px;border-radius:8px}
.bk-menu-btn:hover{background:rgba(245,240,232,.08)}
@media(max-width:920px){
  .bk-nav{display:none}
  .bk-nav.open{display:flex;flex-direction:column;align-items:flex-start;position:absolute;top:100%;left:0;right:0;background:var(--pine-deep);padding:20px 24px 28px;gap:20px;border-bottom:1px solid rgba(245,240,232,.12);box-shadow:var(--shadow-lg)}
  .bk-menu-btn{display:inline-flex}
}

/* ---------- buttons ---------- */
.bk-btn{font-family:var(--font-sans);font-weight:600;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:999px;text-decoration:none;white-space:nowrap;line-height:1;transition:all .22s cubic-bezier(.22,.61,.36,1)}
.bk-btn:active{transform:scale(.98)}
.bk-btn-md{padding:13px 24px;font-size:15px}
.bk-btn-sm{padding:10px 18px;font-size:14px}
.bk-btn-lg{padding:17px 30px;font-size:16px}
.bk-btn-gold{background:var(--gold);color:var(--pine);box-shadow:var(--shadow-gold)}
.bk-btn-gold:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 14px 36px -8px rgba(163,130,63,.6)}
.bk-btn-pine{background:var(--pine);color:var(--cream);box-shadow:var(--shadow-md)}
.bk-btn-pine:hover{background:#14342a;transform:translateY(-1px);box-shadow:var(--shadow-lg)}
.bk-btn-outline{background:transparent;color:var(--pine);border:1.5px solid var(--pine)}
.bk-btn-outline:hover{background:var(--stone-100)}
.bk-btn-outline-cream{background:transparent;color:var(--cream);border:1.5px solid rgba(245,240,232,.45)}
.bk-btn-outline-cream:hover{background:rgba(245,240,232,.08)}

/* ---------- reveal-on-scroll ---------- */
@media (prefers-reduced-motion: no-preference){
  .rv{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1)}
  .rv.rv-left{transform:translateX(-36px)}
  .rv.rv-right{transform:translateX(36px)}
  .rv.rv-in{opacity:1;transform:none}
  /* process steps animate their card + art, not the row */
  .bk-step.rv{opacity:1;transform:none}
  .bk-step .bk-step-card{opacity:0;transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1)}
  .bk-step-l .bk-step-card{transform:translateX(-44px)}
  .bk-step-r .bk-step-card{transform:translateX(44px)}
  .bk-step.rv-in .bk-step-card{opacity:1;transform:none}
  .bk-step .bk-step-art{opacity:0;transition:opacity .8s cubic-bezier(.22,.61,.36,1)}
  .bk-step.rv-in .bk-step-art{opacity:1}
}

/* ---------- layout helpers ---------- */
.bk-split{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.bk-cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.bk-why-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:26px}
.bk-why-grid .bk-why-item{grid-column:span 2}
.bk-why-grid .bk-why-item:nth-child(4){grid-column:2/4}
.bk-why-grid .bk-why-item:nth-child(5){grid-column:4/6}
@media(max-width:920px){
  .bk-split{grid-template-columns:1fr;gap:44px}
  .bk-cards3{grid-template-columns:1fr;gap:18px}
  .bk-why-grid{grid-template-columns:1fr;gap:14px}
  .bk-why-grid .bk-why-item,.bk-why-grid .bk-why-item:nth-child(4),.bk-why-grid .bk-why-item:nth-child(5){grid-column:auto}
}

/* ---------- service / why cards ---------- */
.bk-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:18px;padding:32px;box-shadow:var(--shadow-sm);transition:box-shadow .25s cubic-bezier(.22,.61,.36,1),transform .25s cubic-bezier(.22,.61,.36,1)}
.bk-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.bk-icon-tile{width:54px;height:54px;border-radius:14px;background:var(--pine);color:var(--gold);display:flex;align-items:center;justify-content:center}
.bk-why-item{padding:28px 26px;border-radius:18px;background:var(--surface);border:1px solid var(--border-soft);box-shadow:var(--shadow-sm);transition:box-shadow .25s,transform .25s}
.bk-why-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}

/* ---------- photo slots ---------- */
.bk-photo-frame{border-radius:20px;overflow:hidden;background:linear-gradient(150deg,#efe7d8,#e2d6bd);box-shadow:var(--shadow-lg);position:relative}
.bk-photo-frame image-slot{display:block;width:100%;height:100%}
.bk-photo-frame-pine{background:linear-gradient(150deg,#2f5e4b,#1c3a2f)}

/* ---------- customer logo wall ---------- */
.bk-logo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;align-items:center}
.bk-logo-tile{background:transparent;border:none;border-radius:0;height:110px;padding:6px;display:flex;align-items:center;justify-content:center;transition:transform .25s,opacity .25s}
.bk-logo-tile:hover{transform:translateY(-3px)}
.bk-logo-tile img{height:76px;width:auto;max-width:100%;object-fit:contain;display:block}
@media(max-width:760px){.bk-logo-grid{grid-template-columns:repeat(2,1fr);gap:24px}.bk-logo-tile img{height:64px}}
@media(max-width:420px){.bk-logo-grid{grid-template-columns:1fr 1fr;gap:18px}.bk-logo-tile{height:92px}.bk-logo-tile img{height:54px}}

/* ---------- process zig-zag flow ---------- */
.bk-flow{position:relative;max-width:1010px;margin:0 auto;padding:16px 0 8px}
.bk-flow-rail{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--stone-200);border-radius:2px;overflow:hidden}
.bk-flow-fill{position:absolute;top:0;left:0;width:100%;height:0;background:linear-gradient(to bottom,var(--gold-soft),var(--gold))}
.bk-step{position:relative;display:grid;grid-template-columns:1fr 96px 1fr;align-items:center;margin-bottom:44px}
.bk-step:last-child{margin-bottom:0}
.bk-step-node{grid-column:2;grid-row:1;justify-self:center;width:58px;height:58px;border-radius:999px;background:var(--ivory);border:2px solid var(--stone-300);color:var(--stone-500);display:flex;align-items:center;justify-content:center;z-index:1;transition:all .55s cubic-bezier(.22,.61,.36,1)}
.bk-step.rv-in .bk-step-node{background:var(--pine);border-color:var(--gold);color:var(--gold);box-shadow:var(--shadow-gold);transform:scale(1.08)}
.bk-step-card{grid-row:1;background:var(--surface);border:1px solid var(--border-soft);border-radius:18px;padding:28px 32px;box-shadow:var(--shadow-sm)}
.bk-step-art{grid-row:1;aspect-ratio:4/3;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-md);background:var(--pine);border:1px solid rgba(201,169,110,.28);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.bk-step-bignum{position:absolute;right:22px;bottom:12px;font-family:var(--font-display);font-style:italic;font-weight:700;font-size:112px;line-height:1;color:var(--gold);opacity:.14;pointer-events:none}
.bk-step-medallion{width:84px;height:84px;border-radius:999px;border:1.5px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;background:rgba(201,169,110,.08);position:relative;z-index:1;transition:transform .55s cubic-bezier(.22,.61,.36,1)}
.bk-step.rv-in .bk-step-medallion{transform:scale(1.06)}
.bk-step-lead{font-family:var(--font-sans);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--gold-soft);position:relative;z-index:1}
.bk-step-detail{font-family:var(--font-serif);font-style:italic;font-size:18px;color:#cdd8cf;position:relative;z-index:1;text-align:center;padding:0 22px}
@media(max-width:780px){
  .bk-step-art{aspect-ratio:16/9;gap:10px}
  .bk-step-bignum{font-size:84px;bottom:10px;right:16px}
  .bk-step-medallion{width:64px;height:64px}
  .bk-step-detail{font-size:16px}
}
.bk-step-l .bk-step-card{grid-column:1}
.bk-step-l .bk-step-art{grid-column:3}
.bk-step-r .bk-step-card{grid-column:3}
.bk-step-r .bk-step-art{grid-column:1}
.bk-step-kicker{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
@media (prefers-reduced-motion: no-preference){
  .bk-step.rv-in .bk-step-art{animation:bk-float 6s ease-in-out infinite}
}
@keyframes bk-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(max-width:780px){
  .bk-flow-rail{left:29px}
  .bk-step{grid-template-columns:60px 1fr;row-gap:14px;margin-bottom:34px}
  .bk-step-node{grid-column:1;grid-row:1;width:48px;height:48px;justify-self:start;margin-left:6px;align-self:start}
  .bk-step-art{grid-column:2;grid-row:1;aspect-ratio:16/9}
  .bk-step-l .bk-step-card,.bk-step-r .bk-step-card{grid-column:2;grid-row:2}
  .bk-step-card{padding:22px 22px}
}

/* ---------- forms ---------- */
.bk-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bk-field{display:flex;flex-direction:column;gap:7px}
.bk-field label{font-family:var(--font-sans);font-weight:600;font-size:13.5px;color:var(--fg1)}
.bk-field label span.req{color:var(--gold-deep)}
.bk-input{font-family:var(--font-sans);font-size:15px;color:var(--fg1);background:#fff;border:1px solid var(--border);border-radius:8px;padding:12px 14px;outline:none;width:100%;transition:border-color .18s ease,box-shadow .18s ease}
.bk-input::placeholder{color:var(--stone-400)}
.bk-input:focus{border-color:var(--gold);box-shadow:0 0 0 2px rgba(201,169,110,.35)}
textarea.bk-input{resize:vertical;min-height:128px;line-height:1.55}
.bk-field-full{grid-column:1/-1}
@media(max-width:640px){.bk-form-grid{grid-template-columns:1fr}}

/* ---------- misc ---------- */
.bk-contact-grid{display:grid;grid-template-columns:minmax(280px,1fr) 1.35fr;gap:56px;align-items:start}
@media(max-width:880px){.bk-contact-grid{grid-template-columns:1fr;gap:40px}}
.bk-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px}
@media(max-width:920px){.bk-footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.bk-footer-grid{grid-template-columns:1fr}}
.bk-hairline-gold{width:64px;height:1.5px;background:var(--gold);border:none;margin:0}
.bk-footlink{display:block;font-family:var(--font-sans);font-size:14.5px;color:#cdd8cf;margin-bottom:11px;text-decoration:none;transition:color .18s ease}
.bk-footlink:hover{color:var(--cream)}
@media(max-width:720px){
  .bk-container{padding-left:22px;padding-right:22px}
  .bk-section{padding:64px 0}
  .bk-section-sm{padding:48px 0}
}

/* ---------- static-port additions ---------- */
.bk-photo-frame > img{display:block;width:100%;height:100%;object-fit:cover}
.bk-hero-art{display:flex;align-items:center;justify-content:center;padding:32px;background:linear-gradient(150deg,#234a3b,#1c3a2f)}
.bk-hero-art svg{width:100%;height:auto;max-height:100%;display:block}
#bk-contact-sent{display:none}

/* hero product photo (uncropped, natural ratio) */
.bk-hero-photo{background:transparent;padding:0}
.bk-hero-photo > img{display:block;width:100%;height:auto;object-fit:contain;border-radius:20px}
