/* ==========================================================================
   FO Vision Studio — Base
   Resets, base element styles, and components shared byte-for-byte across
   index.html, booking.html, and diagnostic.html: the fixed nav, the mobile
   menu + hamburger, buttons, the logo slot, and the .panel card pattern.
   Import tokens.css before this file.
   ========================================================================== */

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}

body{
  background:var(--background);
  color:var(--foreground);
  font-family:var(--font-body);
  font-weight:400;
  letter-spacing:-0.006em;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-0.028em;
  line-height:1.08;
  color:var(--foreground);
}
em{color:var(--gold-bright);font-style:normal;}

a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}

/* ---- Layout ---- */
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
@media (max-width:768px){ .wrap{padding:0 22px;} }

/* ---- Text utilities ---- */
.eyebrow{font-size:12px;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);font-weight:600;display:block;margin-bottom:18px;}
.text-caption{font-size:var(--text-caption);color:var(--muted-2);letter-spacing:0.02em;}
.text-gold{color:var(--gold-bright);}
.mono{font-family:var(--font-body);letter-spacing:0.04em;}

/* ---- Logo slot (swap for a real <img> once the logo file is ready) ---- */
.logo-slot{
  display:flex;align-items:center;justify-content:center;
  width:132px;height:34px;
  border:1px dashed var(--border-strong);
  background:repeating-linear-gradient(135deg, rgba(198,161,91,0.05) 0 2px, transparent 2px 12px);
  color:var(--muted-foreground);
  font-size:10px;letter-spacing:0.14em;text-transform:uppercase;
  flex-shrink:0;
}
/* To go live: replace the .logo-slot element with
   <img src="assets/images/logo.png" alt="FO Vision Studio" style="height:34px;width:auto;"> */

/* ---- Nav (fixed, blurred) ---- */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(11,11,9,0.72);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
}
.nav{max-width:1180px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:78px;}
.nav-links{display:flex;align-items:center;gap:40px;}
.nav-links a{font-size:14px;color:var(--muted-foreground);letter-spacing:-0.01em;transition:color var(--dur-med) ease;}
.nav-links a:hover{color:var(--foreground);}
.nav-cta{
  border:1px solid var(--gold);color:var(--gold) !important;padding:11px 22px;
  font-size:13px;letter-spacing:0.02em;border-radius:var(--radius);
  transition:all var(--dur-med) ease;white-space:nowrap;
}
.nav-cta:hover{background:var(--gold);color:var(--black) !important;}

/* ---- Hamburger + mobile menu ---- */
.burger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:26px;height:26px;position:relative;z-index:101;padding:0;}
.burger span{height:2px;background:var(--gold);width:100%;border-radius:1px;transition:transform var(--dur-med) ease, opacity var(--dur-fast) ease;}
.burger.active span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.burger.active span:nth-child(2){opacity:0;}
.burger.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

.mobile-menu{display:none;position:fixed;top:78px;left:0;right:0;bottom:0;background:var(--background);z-index:99;padding:40px 32px;flex-direction:column;gap:28px;border-top:1px solid var(--border);}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-size:22px;font-weight:600;letter-spacing:-0.02em;}
.mobile-menu .nav-cta{align-self:flex-start;margin-top:12px;}

@media (max-width:768px){
  .nav-links{display:none;}
  .burger{display:flex;}
}

/* ---- Buttons ---- */
.btn-primary{
  display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:var(--black);
  font-weight:700;font-size:15px;letter-spacing:-0.01em;padding:18px 32px;border-radius:var(--radius);
  transition:all var(--dur-med) ease;
}
.btn-primary:hover{background:var(--gold-bright);transform:translateY(-1px);}
.btn-primary:disabled{opacity:0.4;pointer-events:none;}

.btn-ghost{
  display:inline-flex;align-items:center;gap:10px;border:1px solid var(--border-strong);color:var(--foreground);
  font-weight:600;font-size:15px;letter-spacing:-0.01em;padding:17px 30px;border-radius:var(--radius);
  transition:all var(--dur-med) ease;
}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-bright);}
.btn-ghost:disabled{opacity:0.4;pointer-events:none;}

.btn-arrow{transition:transform var(--dur-fast) ease;}
.btn-primary:hover .btn-arrow, .btn-ghost:hover .btn-arrow{transform:translateX(3px);}

/* ---- Panel (bordered card used for stat blocks, constraint cards, etc.) ---- */
.panel{padding:40px;border:1px solid var(--border);background:var(--surface);}

/* ---- Photo placeholder (dashed frame used wherever a real photo is pending) ---- */
.photo-slot{
  border:1px dashed var(--border-strong);
  background:repeating-linear-gradient(135deg, rgba(198,161,91,0.05) 0 2px, transparent 2px 14px), var(--surface);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;text-align:center;color:var(--muted-foreground);
}
.photo-slot svg{width:34px;height:34px;stroke:var(--gold);opacity:0.8;}
.photo-slot .ps-label{font-size:13px;letter-spacing:0.02em;color:var(--muted-foreground);}
.photo-slot .ps-dim{font-size:11.5px;color:var(--muted-2);letter-spacing:0.03em;}

/* ---- Shared form field base (text inputs / textareas) ---- */
input[type=text], input[type=email], input[type=tel], textarea{
  width:100%;background:transparent;border:none;border-bottom:1px solid var(--border-strong);
  color:var(--foreground);font-family:inherit;font-size:16px;padding:12px 2px;letter-spacing:-0.01em;
  transition:border-color var(--dur-fast) ease;
}
input::placeholder, textarea::placeholder{color:var(--muted-2);}
input:focus, textarea:focus{outline:none;border-color:var(--gold);}
textarea{resize:vertical;min-height:90px;}
