:root{
  --bg:#F7F3EA;
  --surface:#FFFFFF;
  --surface-2:#F1ECE0;
  --ink:#221F1B;
  --ink-soft:#655F54;
  --ink-faint:#96907F;
  --border:#E3DBC7;
  --accent:#B6512E;
  --accent-ink:#FFF7F2;
  --teal:#1F5C52;
  --teal-bg:#E4EDE9;
  --amber:#A8690A;
  --amber-bg:#F3E7D2;
  --radius:12px;
  --font-display:'Fraunces', serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;
  --maxw:1120px;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.eyebrow{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:0.08em;color:var(--ink-faint);}
h1,h2,h3{font-family:var(--font-display);font-weight:500;margin:0 0 12px;line-height:1.15;}
p{margin:0 0 14px;color:var(--ink-soft);}

/* NAV */
.site-header{position:sticky;top:0;z-index:100;background:rgba(247,243,234,0.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);}
.nav{max-width:var(--maxw);margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;}
.logo{font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:0.01em;text-decoration:none;}
.nav-links{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0;}
.nav-links a{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:0.05em;text-decoration:none;color:var(--ink-soft);}
.nav-links a:hover, .nav-links a.active{color:var(--accent);}
.cart-btn{position:relative;background:var(--ink);color:var(--accent-ink);border:none;border-radius:20px;padding:8px 16px;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:0.05em;cursor:pointer;}
.cart-count{position:absolute;top:-6px;right:-6px;background:var(--accent);color:#fff;font-size:10px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);}

/* HERO */
.hero{padding:72px 0 56px;}
.hero h1{font-size:44px;max-width:680px;}
.hero p.lead{font-size:17px;max-width:520px;}
.hero-actions{display:flex;gap:12px;margin-top:20px;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 22px;border-radius:8px;font-family:var(--font-body);font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent;}
.btn-primary{background:var(--accent);color:var(--accent-ink);}
.btn-primary:hover{background:#9c4526;}
.btn-outline{background:transparent;border-color:var(--ink);color:var(--ink);}
.btn-outline:hover{background:var(--ink);color:var(--accent-ink);}
.btn-block{width:100%;}
.btn[disabled]{opacity:0.5;cursor:not-allowed;}

/* SECTIONS */
section{padding:52px 0;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px;gap:20px;flex-wrap:wrap;}

/* PORTFOLIO / GUIDE GRID */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;}
.card-media{aspect-ratio:4/3;background:linear-gradient(135deg,var(--surface-2),var(--border));display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:0.05em;}
.card-body{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1;}
.card-body h3{font-size:17px;margin:0;}
.tag{display:inline-block;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:0.05em;color:var(--teal);background:var(--teal-bg);padding:3px 9px;border-radius:20px;width:fit-content;}

/* GUIDE / PRODUCT CARD */
.guide-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:10px;}
.guide-card .price{font-family:var(--font-display);font-size:22px;font-weight:500;margin-top:auto;}
.guide-card .num{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);}

/* FOOTER */
.site-footer{border-top:1px solid var(--border);padding:36px 0;margin-top:40px;}
.footer-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;align-items:center;}
.social-links{display:flex;gap:16px;list-style:none;padding:0;margin:0;}
.social-links a{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:0.05em;text-decoration:none;color:var(--ink-soft);}
.social-links a:hover{color:var(--accent);}

/* FORMS */
input,select,textarea,button{font-family:var(--font-body);font-size:14px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--ink);}
label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-faint);display:block;margin-bottom:5px;}
.field{margin-bottom:14px;}
.form-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px;max-width:420px;}

/* CART DRAWER */
.cart-overlay{position:fixed;inset:0;background:rgba(34,31,27,0.4);z-index:200;display:none;}
.cart-overlay.open{display:block;}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:400px;background:var(--surface);z-index:201;transform:translateX(100%);transition:transform 0.25s ease;display:flex;flex-direction:column;}
.cart-drawer.open{transform:translateX(0);}
.cart-head{padding:20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;}
.cart-items{flex:1;overflow-y:auto;padding:16px 20px;}
.cart-item{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--border);}
.cart-item .name{font-size:13px;font-weight:600;}
.cart-item .meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);}
.cart-item button{background:none;border:none;color:var(--ink-faint);font-size:16px;cursor:pointer;padding:2px 6px;}
.cart-foot{padding:20px;border-top:1px solid var(--border);}
.cart-total{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:13px;margin-bottom:14px;}
.close-btn{background:none;border:none;font-size:20px;cursor:pointer;color:var(--ink-soft);}
.empty-note{color:var(--ink-faint);font-size:13px;font-style:italic;text-align:center;padding:30px 0;}

.checkout-toggle{display:flex;gap:8px;margin-bottom:14px;}
.checkout-toggle button{flex:1;background:var(--surface-2);border:1px solid var(--border);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;padding:8px;cursor:pointer;}
.checkout-toggle button.active{background:var(--ink);color:var(--accent-ink);border-color:var(--ink);}

.nav-toggle{display:none;background:none;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-family:var(--font-mono);font-size:11px;cursor:pointer;color:var(--ink);}

/* CLIENT DASHBOARD */
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:26px;}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;}
.kpi .label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-faint);margin:0 0 6px;}
.kpi .value{font-family:var(--font-display);font-size:28px;font-weight:500;margin:0;}
table.content-table{width:100%;border-collapse:collapse;font-size:13px;}
table.content-table th{text-align:left;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink-faint);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--border);}
table.content-table td{padding:10px;border-bottom:1px solid var(--border);}
.stage-pill{display:inline-block;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:0.03em;padding:3px 9px;border-radius:20px;background:var(--surface-2);color:var(--ink-soft);}
.stage-pill.stage-posted{background:var(--teal-bg);color:var(--teal);}
.stage-pill.stage-shooting,.stage-pill.stage-editing{background:var(--amber-bg);color:var(--amber);}

/* PORTFOLIO PAGE */
.hero-photo{width:100%;height:52vh;min-height:320px;max-height:560px;object-fit:cover;object-position:center 62%;display:block;}
.about-row{display:flex;gap:36px;align-items:center;flex-wrap:wrap;}
.about-row img{flex:1 1 320px;max-width:380px;border-radius:var(--radius);object-fit:cover;aspect-ratio:4/5;}
.about-row .about-copy{flex:1 1 380px;}
.project-block{margin-bottom:56px;}
.project-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:16px;}
.project-head h3{margin:0;font-size:22px;}
.photo-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:110px;gap:8px;}
.photo-grid img{width:100%;height:100%;object-fit:cover;border-radius:8px;display:block;}
.photo-grid .span2{grid-row:span 2;}
.logo-row{display:flex;flex-wrap:wrap;align-items:center;gap:44px;padding:20px 0;}
.logo-row img{height:56px;width:auto;max-width:150px;object-fit:contain;filter:grayscale(1);opacity:0.75;}
.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;align-items:start;}
.review-shot{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface);}
.review-shot img{width:100%;display:block;}
.services-list{list-style:none;margin:0;padding:0;max-width:520px;}
.services-list li{padding:13px 0;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:0.04em;}

@media (max-width:640px){
  .photo-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:90px;}
  .hero-photo{height:38vh;}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;gap:0;padding:6px 0;}
  .nav-links.mobile-open{display:flex;}
  .nav-links a{display:block;padding:12px 24px;}
  .nav-toggle{display:inline-block;order:2;}
  .cart-btn{order:3;}
  .nav{position:relative;flex-wrap:wrap;gap:12px;}
  .hero h1{font-size:32px;}
}
