/*
 * Studio Gallegos layer over the Start Bootstrap "Grayscale" theme.
 * Direction: ../../DESIGN.md. One-line reasons per block (antislop R-31).
 */

:root {
    --ink: #0f1011;       /* page background */
    --ink-2: #18191b;     /* alternate sections: enough step to read as a new section */
    --line: #2b2c2f;      /* hairlines between rows */
    --paper: #ece8e1;     /* warm off-white text, softer than pure white on near-black */
    --muted: #a39e95;     /* secondary text */
    --amber: #f0a33a;     /* the one accent: studio light */
    --amber-dark: #d68a22;

    --bs-body-bg: var(--ink);
    --bs-body-color: var(--paper);
    --bs-primary-rgb: 240, 163, 58;
    --bs-link-color: var(--amber);
    --bs-link-hover-color: var(--paper);
}

body { background: var(--ink); color: var(--paper); font-family: "Source Sans 3", system-ui, sans-serif; font-size: 1.075rem; line-height: 1.65; }
h1, h2, h3, .wordmark { font-family: "Archivo", system-ui, sans-serif; color: #fff; }
a { color: var(--amber); }
a:hover { color: var(--paper); }

/* Accessibility: skip link + visible focus (R-32) */
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 2000; background: var(--amber); color: var(--ink); padding: .6rem 1rem; border-radius: .4rem; font-weight: 600; text-decoration: none; }
.skip-link:focus { top: 1rem; }
a:focus-visible, button:focus-visible, .btn:focus-visible { outline: 3px solid var(--amber); outline-offset: 3px; box-shadow: none; }

/* Nav: the template's, recolored. Wordmark is text only (R-23). */
#mainNav { background-color: rgba(15, 16, 17, .92); border-bottom: 1px solid var(--line); padding-top: .9rem; padding-bottom: .9rem; }
#mainNav .navbar-brand.wordmark { font-weight: 800; font-size: 1.2rem; letter-spacing: 0; text-transform: none; color: #fff; }
#mainNav .navbar-brand.wordmark::after { content: "."; color: var(--amber); }   /* identity motif: the amber period */
#mainNav .navbar-nav .nav-item .nav-link { font-family: "Archivo", sans-serif; font-weight: 500; font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--paper); }
#mainNav .nav-link:hover, #mainNav .nav-link.active { color: var(--amber); }
#mainNav .navbar-toggler { color: var(--paper); border-color: var(--line); min-height: 44px; font-family: "Archivo", sans-serif; font-size: .85rem; }
@media (min-width: 992px) {
    #mainNav, #mainNav.navbar-shrink { background-color: rgba(15, 16, 17, .92); }
    #mainNav .nav-link { color: var(--paper); }
    #mainNav.navbar-shrink .navbar-brand { color: #fff; }
    #mainNav.navbar-shrink .nav-link { color: var(--paper); }
    #mainNav.navbar-shrink .nav-link.active, #mainNav.navbar-shrink .nav-link:hover { color: var(--amber); border-bottom: 0; }
}

/* Hero: type-led, left-aligned. No stock photo: the work is the visual, shown in Work. */
.hero { padding: 10rem 0 6rem; border-bottom: 1px solid var(--line); }
.hero-kicker { font-family: "Archivo", sans-serif; font-weight: 700; color: var(--amber); margin-bottom: 1rem; }
.hero-title { font-weight: 800; font-size: clamp(2.3rem, 6vw, 4.4rem); line-height: 1.05; max-width: 14ch; margin-bottom: 1.5rem; text-wrap: balance; }
.hero-lead { color: var(--muted); font-size: 1.2rem; max-width: 38rem; margin-bottom: 2.25rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.btn { font-family: "Archivo", sans-serif; font-weight: 700; font-size: 1rem; text-transform: none; letter-spacing: 0; border-radius: .5rem; padding: .8rem 1.4rem; min-height: 44px; transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.btn-accent { background: var(--amber); color: var(--ink); border: 2px solid var(--amber); }
.btn-accent:hover { background: var(--amber-dark); border-color: var(--amber-dark); color: var(--ink); }
.btn-ghost { background: transparent; color: var(--paper); border: 2px solid var(--line); }
.btn-ghost:hover { border-color: var(--paper); color: #fff; }

/* Sections: two tones alternate, each opens with a hairline so the break is clear */
.block { padding: 6rem 0; border-top: 1px solid var(--line); }
.block-alt { background: var(--ink-2); }
.block-title { font-weight: 800; font-size: clamp(1.8rem, 3.5vw, 2.4rem); margin-bottom: .75rem; }
.block-lead { color: var(--muted); margin-bottom: 0; }

/* Services: a definition list, not four identical cards (R-14). Icons name the service, nothing more (R-04). */
.service-list { margin: 0; border-top: 1px solid var(--line); }
.service-list > div { padding: 1.4rem 0; border-bottom: 1px solid var(--line); }
.service-list dt { font-family: "Archivo", sans-serif; font-weight: 700; font-size: 1.2rem; color: #fff; display: flex; align-items: center; gap: .75rem; margin-bottom: .35rem; }
.service-list dt i { color: var(--amber); width: 1.4rem; text-align: center; }
.service-list dd { margin: 0; padding-left: 2.15rem; color: var(--muted); }

/* Work: one real project, shown large, because it is the strongest proof (C-5) */
.project { margin: 2rem 0 0; display: grid; gap: 2rem; align-items: center; }
@media (min-width: 992px) { .project { grid-template-columns: 1.6fr 1fr; } }
.project img { width: 100%; height: auto; border-radius: .6rem; border: 1px solid var(--line); }
.project h3 { font-weight: 800; font-size: 1.5rem; margin-bottom: .25rem; }
.project-where { color: var(--amber); font-weight: 600; margin-bottom: 1rem; }
.project figcaption p:last-child { color: var(--muted); margin: 0; }

/* Pricing: plain rows; numbers come in a quote */
.price-rows { border-top: 1px solid var(--line); }
.price-row { padding: 1.4rem 0; border-bottom: 1px solid var(--line); }
.price-row h3 { font-weight: 700; font-size: 1.2rem; margin-bottom: .35rem; }
.price-row p { color: var(--muted); margin: 0; }

/* Policies */
.policy-title { font-weight: 700; font-size: 1.15rem; margin-bottom: .5rem; }
#policies p { color: var(--muted); }

/* Contact: the email is the call to action, shown big */
.contact { text-align: left; }
.contact-email { display: inline-block; margin-top: 1.5rem; font-family: "Archivo", sans-serif; font-weight: 800; font-size: clamp(1.3rem, 4.5vw, 2.6rem); color: var(--amber); text-decoration: none; border-bottom: 3px solid transparent; word-break: break-all; }
.contact-email:hover { color: var(--paper); border-bottom-color: var(--amber); }

.site-footer { padding: 2rem 0; border-top: 1px solid var(--line); color: var(--muted); font-size: .95rem; }

/* Stop horizontal overflow on phones (R-03) */
html, body { overflow-x: clip; }
