/* ═══════════════════════════════════════════════════════
   TEXASTEXAS — SHARED FOUNDATION v3
   ═══════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700;800&family=Manrope:wght@400;500;600;700&family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500;1,700&family=Amiri:wght@400;700&family=Alegreya+SC:wght@500;700&family=Source+Sans+3:wght@400;500;600;700&family=Orbitron:wght@500;700;800&family=JetBrains+Mono:wght@400;500;700&family=Rye&display=swap');

:root {
  --font-display: "Cinzel", "Cormorant Garamond", serif;
  --font-body: "Manrope", "Source Sans 3", sans-serif;
  --font-alt-serif: "Cormorant Garamond", serif;
  --font-script: "Amiri", serif;
  --font-mono: "JetBrains Mono", "Courier New", monospace;
  --bg-base: #0e1a34;
  --surface-1: #152649;
  --surface-2: #1e335f;
  --text-main: #f8f2e7;
  --text-muted: #d4c7b0;
  --accent-primary: #cf7b37;
  --accent-secondary: #f4ba5e;
  --border-soft: rgba(255,233,198,0.2);
  --shadow-soft: 0 18px 40px rgba(0,0,0,0.35);
  --container: min(1120px, 92vw);
  --radius-lg: 1.25rem;
  --radius-md: 0.85rem;
  --radius-sm: 0.55rem;
}

*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; min-height:100vh; font-family:var(--font-body); color:var(--text-main); background:var(--bg-base); line-height:1.6; text-rendering:optimizeLegibility; }
img,svg { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
p,h1,h2,h3 { margin:0; }
h1,h2,h3 { font-family:var(--font-display); line-height:1.1; letter-spacing:0.01em; }
main { overflow:clip; }
.container { width:var(--container); margin-inline:auto; }

.skip-link { position:absolute; left:0.75rem; top:-60px; background:#fff; color:#000; padding:0.55rem 0.85rem; border-radius:var(--radius-sm); z-index:2000; }
.skip-link:focus { top:0.75rem; }

/* ══ NAV ══ */
.site-header { position:sticky; top:0; z-index:1200; transition:background-color 260ms ease, backdrop-filter 260ms ease; }
.site-nav { margin-top:0.65rem; padding:0.75rem 1rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; border:1px solid transparent; border-radius:999px; transition:background-color 260ms ease, border-color 260ms ease, box-shadow 260ms ease; }
.site-header.is-scrolled .site-nav { border-color:var(--border-soft); background:color-mix(in srgb,var(--bg-base),transparent 22%); backdrop-filter:blur(9px); box-shadow:var(--shadow-soft); }
.wordmark { display:flex; align-items:center; }
.wordmark img { height:clamp(32px,4vw,48px); width:auto; filter:brightness(2.2) contrast(1.1); }
.nav-links { display:flex; align-items:center; gap:0.4rem; }
.nav-links a { position:relative; padding:0.45rem 0.8rem; border-radius:999px; color:color-mix(in srgb,var(--accent-secondary),transparent 45%); font-size:0.95rem; font-weight:600; transition:color 220ms ease, background-color 220ms ease, transform 220ms ease; }
.nav-links a:hover,.nav-links a:focus-visible { color:var(--accent-secondary); background:color-mix(in srgb,var(--accent-primary),transparent 85%); transform:translateY(-1px); }
.nav-links a.is-active { color:var(--bg-base); background:linear-gradient(120deg,var(--accent-secondary),var(--accent-primary)); }
.menu-toggle { display:none; flex-direction:column; gap:4px; background:none; border:1px solid var(--border-soft); border-radius:0.5rem; padding:0.45rem; color:var(--text-main); cursor:pointer; }
.menu-toggle span { display:block; width:20px; height:2px; background:currentColor; }

/* ══ SECTION / EYEBROW ══ */
.section { padding-block:clamp(3.2rem,7vw,5.2rem); }
.section-muted { background:linear-gradient(180deg,color-mix(in srgb,var(--surface-1),transparent 26%),color-mix(in srgb,var(--surface-2),transparent 42%)); }
.eyebrow { margin-bottom:0.6rem; color:var(--accent-secondary); font-size:0.76rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; }
.section-heading { margin-bottom:clamp(1.4rem,2.5vw,2.2rem); }
.section-heading h2 { font-size:clamp(1.8rem,3.4vw,2.95rem); }

/* ══ HERO ══ */
.hero { min-height:100svh; position:relative; display:grid; place-items:center; padding:clamp(5.2rem,12vw,8rem) 0 3.5rem; isolation:isolate; }
.hero-inner { position:relative; z-index:2; }
.hero h1 { font-size:clamp(2.15rem,5.8vw,5.4rem); text-wrap:balance; }
.hero-subheading { margin-top:1rem; max-width:65ch; color:color-mix(in srgb,var(--text-main),#ffffff 12%); font-size:clamp(1rem,1.4vw,1.3rem); }
.hero-overlay-grain { position:absolute; inset:0; z-index:1; pointer-events:none; background-image:radial-gradient(circle at 25% 20%,rgba(255,255,255,0.07),transparent 22%),radial-gradient(circle at 75% 65%,rgba(0,0,0,0.25),transparent 28%),repeating-radial-gradient(circle at 50% 50%,rgba(255,255,255,0.03) 0 1px,rgba(0,0,0,0) 2px 4px); mix-blend-mode:soft-light; opacity:0.78; }

/* ══ BUTTONS ══ */
.btn-ghost,.btn-primary { display:inline-flex; align-items:center; justify-content:center; margin-top:1.4rem; border-radius:999px; border:1px solid var(--border-soft); padding:0.68rem 1.2rem; font-size:0.95rem; font-weight:700; transition:transform 220ms ease, box-shadow 220ms ease, background-color 220ms ease; }
.btn-ghost:hover,.btn-ghost:focus-visible,.btn-primary:hover,.btn-primary:focus-visible { transform:translateY(-2px); box-shadow:0 10px 20px rgba(0,0,0,0.2); }
.btn-ghost { background:color-mix(in srgb,var(--bg-base),transparent 35%); color:var(--text-main); }
.btn-primary { background:linear-gradient(120deg,var(--accent-secondary),var(--accent-primary)); color:#1f1610; }

/* ══ CARDS / FORMS ══ */
.placeholder-img { display:grid; place-items:center; aspect-ratio:16/10; border-bottom:1px solid var(--border-soft); color:rgba(255,255,255,0.88); font-family:var(--font-alt-serif); font-size:1rem; letter-spacing:0.08em; text-transform:uppercase; }
.placeholder-img span { padding:0.45rem 0.7rem; border-radius:999px; border:1px solid rgba(255,255,255,0.25); background:rgba(255,255,255,0.08); }
.portrait-placeholder { aspect-ratio:4/5; }
.split-content { display:grid; grid-template-columns:minmax(220px,340px) minmax(0,1fr); gap:clamp(1.4rem,2vw,2rem); align-items:start; }
.large-body { font-size:clamp(1.02rem,1.1vw + 0.84rem,1.2rem); color:color-mix(in srgb,var(--text-main),#fff 8%); }
.cta-box { padding:clamp(1.35rem,3vw,2.2rem); border:1px solid var(--border-soft); border-radius:var(--radius-lg); background:linear-gradient(135deg,color-mix(in srgb,var(--surface-1),transparent 15%),color-mix(in srgb,var(--surface-2),transparent 10%)); box-shadow:var(--shadow-soft); }
.placeholder-form { margin-top:1.1rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0.75rem; }
.placeholder-field { min-height:44px; border-radius:var(--radius-sm); border:1px solid var(--border-soft); padding:0.68rem 0.82rem; color:var(--text-muted); background:color-mix(in srgb,var(--bg-base),transparent 24%); display:flex; align-items:center; }
.placeholder-field.full-width { grid-column:1/-1; min-height:94px; align-items:flex-start; padding-top:0.85rem; }

/* ══ GRIDS ══ */
.family-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.35rem; }
.family-card { position:relative; overflow:hidden; border:1px solid var(--border-soft); border-radius:var(--radius-lg); background:color-mix(in srgb,var(--surface-2),transparent 28%); box-shadow:var(--shadow-soft); transition:transform 260ms ease, box-shadow 260ms ease, border-color 260ms ease; }
.family-card::after { content:""; position:absolute; inset:auto 0 0; height:0; background:linear-gradient(180deg,transparent,rgba(255,208,126,0.32)); transition:height 260ms ease; }
.family-card:hover,.family-card:focus-visible { transform:translateY(-8px) scale(1.01); border-color:color-mix(in srgb,var(--accent-secondary),white 6%); box-shadow:0 24px 46px rgba(0,0,0,0.45); }
.family-card:hover::after,.family-card:focus-visible::after { height:42%; }
.card-content { padding:1.2rem 1.15rem 1.3rem; }
.card-content h3 { font-size:clamp(1.25rem,2.4vw,1.75rem); margin-bottom:0.45rem; }
.card-content p { color:var(--text-muted); font-size:0.96rem; }
.services-grid,.language-panels,.client-grid,.feature-grid,.tech-stack-grid { display:grid; gap:1rem; }
.services-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.service-card { padding:1.15rem; border-radius:var(--radius-md); border:1px solid var(--border-soft); background:color-mix(in srgb,var(--surface-1),transparent 20%); transition:transform 220ms ease, border-color 220ms ease; }
.service-card:hover { transform:translateY(-3px); border-color:color-mix(in srgb,var(--accent-secondary),#fff 10%); }
.service-card h3 { font-size:clamp(1.05rem,1.35vw,1.26rem); }
.service-card p { margin-top:0.45rem; color:var(--text-muted); font-size:0.95rem; }
.material-gallery { margin-top:1.2rem; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.material-gallery .placeholder-img { aspect-ratio:4/3; }

/* ══ FOOTER ══ */
.site-footer { margin-top:clamp(2rem,5vw,3rem); border-top:1px solid var(--border-soft); background:color-mix(in srgb,var(--bg-base),#000 18%); }
.footer-inner { min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:1rem; }
.footer-inner p { color:var(--text-muted); font-size:0.92rem; }
.footer-inner nav { display:flex; gap:0.9rem; }
.footer-inner nav a { font-size:0.9rem; color:var(--text-muted); }
.footer-inner nav a:hover { color:var(--text-main); }

/* ══ REVEAL ══ */
.reveal { opacity:1; transform:translateY(0); transition:opacity 700ms ease, transform 700ms ease; }
.js-enabled .reveal:not(.is-visible) { opacity:0; transform:translateY(20px); }
.reveal.is-visible { opacity:1; transform:translateY(0); }

/* ══ RESPONSIVE ══ */
@media (max-width:1080px) { .family-grid,.services-grid,.material-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:860px) {
  .site-nav { border-radius:1rem; position:relative; }
  .menu-toggle { display:inline-flex; }
  .nav-links { position:absolute; top:calc(100% + 0.55rem); left:0; right:0; z-index:1250; flex-direction:column; align-items:stretch; gap:0.25rem; padding:0.45rem; border:1px solid var(--border-soft); border-radius:var(--radius-md); background:color-mix(in srgb,var(--bg-base),transparent 8%); backdrop-filter:blur(10px); max-height:0; opacity:0; transform:translateY(-8px); pointer-events:none; overflow:hidden; transition:max-height 260ms ease, opacity 260ms ease, transform 260ms ease; }
  .site-header.nav-open .nav-links { max-height:320px; opacity:1; transform:translateY(0); pointer-events:auto; }
  .nav-links a { border-radius:0.6rem; padding:0.62rem 0.72rem; }
  .split-content { grid-template-columns:1fr; }
  .hero { min-height:86svh; }
  .footer-inner { flex-direction:column; justify-content:center; }
}
@media (max-width:700px) { .family-grid,.services-grid,.material-gallery,.language-panels,.feature-grid,.tech-stack-grid,.placeholder-form { grid-template-columns:1fr; } .hero h1 { font-size:clamp(1.95rem,10vw,3rem); } .hero-subheading { font-size:0.98rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none !important; transition:none !important; } .reveal { opacity:1; transform:none; } }

/* ══ NAV DROPDOWN ══ */
.nav-dropdown { position: relative; }
.nav-dropdown-trigger {
  position: relative; padding: 0.45rem 0.8rem;
  border-radius: 999px; color: color-mix(in srgb,var(--accent-secondary),transparent 45%);
  font-size: 0.95rem; font-weight: 600; cursor: pointer;
  transition: color 220ms ease, background-color 220ms ease;
  display: block; white-space: nowrap; user-select: none;
}
.nav-dropdown-trigger:hover {
  color: var(--accent-secondary);
  background: color-mix(in srgb,var(--accent-primary),transparent 85%);
}
.nav-dropdown-menu {
  position: absolute; top: calc(100% + 0.5rem); left: 50%;
  transform: translateX(-50%) translateY(-8px);
  min-width: 200px;
  background: color-mix(in srgb,var(--bg-base),transparent 8%);
  border: 1px solid var(--border-soft);
  border-radius: 0.65rem;
  box-shadow: 0 16px 48px rgba(0,0,0,0.6);
  backdrop-filter: blur(16px);
  padding: 0.4rem;
  opacity: 0; pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
  z-index: 1400;
}
/* open state — toggled by JS click OR CSS hover */
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown.open .nav-dropdown-menu {
  opacity: 1; pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown-menu a {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.6rem 0.9rem;
  border-radius: 0.45rem;
  color: color-mix(in srgb,var(--accent-secondary),transparent 30%); font-size: 0.9rem; font-weight: 600;
  transition: background 150ms ease, color 150ms ease;
  white-space: nowrap; text-decoration: none;
}
.nav-dropdown-menu a:hover {
  background: color-mix(in srgb,var(--accent-primary),transparent 85%);
  color: var(--accent-secondary);
}

/* ══ FOOTER ENHANCED ══ */
.footer-inner { position: relative; }
.footer-glow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 60% 100% at 50% 100%, rgba(232,184,75,0.04), transparent 70%);
}
