/* ===== FONTS ===== */
@font-face {
    font-family: 'Lumios Marker';
    src: url('../fonts/Lumios-Marker.woff2') format('woff2'),
         url('../fonts/Lumios-Marker.woff') format('woff'),
         url('../fonts/Lumios-Marker.ttf') format('truetype');
    font-display: optional;
}

/* ===== RESET ===== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 17px; overflow-x: hidden; }
body {
    font-family: 'Montserrat', sans-serif;
    background: beige;
    color: var(--ink);
    line-height: 1.6;
    overflow-x: hidden;
    max-width: 100%;
}

/* ===== TOKENS ===== */
:root {
    --ink:              #1a0e06;
    --ink-mid:          #5c3d28;
    --ink-muted:        #9a7d65;
    --bg:               beige;
    --bg-warm:          beige;
    --border:           rgba(26,14,6,0.11);
    --border-warm:      rgba(26,14,6,0.07);
    --terracotta:       #bd3f27;
    --terracotta-light: #d45f47;
    --terracotta-dark:  #9c3522;
    --terracotta-soft:  rgba(189,63,39,0.08);
    --gold:             #c9a84c;
    --white:            #ffffff;
    --header-height:    80px;
}

.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
a { text-decoration: none; color: inherit; transition: color 0.3s ease; }
ul { list-style: none; }
p { font-family: 'Montserrat', sans-serif; }

/* ===== LAYOUT ===== */
.container { width:100%; max-width:1200px; margin:0 auto; padding:0 24px; }
.section    { padding: 80px 0; }
.section--warm { background: beige; }
.text-center { text-align: center; }

/* ===== EYEBROW ===== */
.eyebrow {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.68rem; letter-spacing: 4px;
    text-transform: uppercase; color: var(--terracotta);
    display: flex; align-items: center; gap: 12px;
    margin-bottom: 14px;
}
.eyebrow::before { content:''; width:28px; height:1px; background:var(--terracotta); flex-shrink:0; }

/* ===== SECTION TITLE ===== */
.section-title {
    font-family: 'Bebas Neue', cursive;
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 700; color: var(--ink);
    line-height: 1.15; margin-bottom: 3rem;
}
.section-title em { font-style: normal; color: var(--terracotta); }
.section-title--center { text-align: center; }
.section-title--center .eyebrow { justify-content: center; }

/* ===== SCROLL REVEAL ===== */
.reveal { opacity:0; transform:translateY(26px); transition:opacity 0.7s ease, transform 0.7s ease; }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.reveal--delay-1 { transition-delay:.1s; }
.reveal--delay-2 { transition-delay:.2s; }
.reveal--delay-3 { transition-delay:.3s; }
.reveal--delay-4 { transition-delay:.4s; }

/* ===== BUTTONS ===== */
.btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 13px 32px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600; font-size: 0.78rem;
    text-transform: uppercase; letter-spacing: 2px;
    white-space: nowrap;
    cursor: pointer; border: 1.5px solid var(--ink);
    background: transparent; color: var(--ink);
    position: relative; overflow: hidden; z-index: 1;
    transition: color 0.35s ease, border-color 0.35s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.btn::before {
    content:''; position:absolute; inset:0;
    background:var(--terracotta); transform:scaleX(0);
    transform-origin:left; transition:transform 0.35s ease; z-index:-1;
}
.btn:hover::before { transform:scaleX(1); }
.btn:hover { color:var(--white); border-color:var(--terracotta); transform:translateY(-2px); box-shadow:0 8px 24px rgba(189,63,39,.2); }

.btn--ghost  { border-color:var(--border); color:var(--ink-mid); }
.btn--ghost::before { background:var(--ink); }
.btn--ghost:hover  { border-color:var(--ink); color:var(--white); }

.btn--solid  { background:var(--terracotta); border-color:var(--terracotta); color:var(--white); }
.btn--solid::before { background:var(--terracotta-dark); }
.btn--solid:hover   { border-color:var(--terracotta-dark); }

.btn--call, .btn--map { background:var(--terracotta); border-color:var(--terracotta); color:var(--white); }
.btn--call::before, .btn--map::before { background:var(--terracotta-dark); }
.btn--call:hover, .btn--map:hover { border-color:var(--terracotta-dark); }

.btn--instagram {
    background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);
    border-color:transparent; color:var(--white);
}
.btn--instagram::before { background:rgba(255,255,255,.12); }
.btn--instagram:hover   { border-color:transparent; box-shadow:0 8px 24px rgba(220,39,67,.35); }

.btn--facebook { background:#1877f2; border-color:#1877f2; color:var(--white); }
.btn--facebook::before { background:rgba(255,255,255,.12); }
.btn--facebook:hover    { border-color:#0d5dbf; }

/* ===== HEADER ===== */
.header {
    position:fixed; top:0; left:0; width:100%;
    z-index:1000; height:var(--header-height);
    background:transparent;
    border-bottom:1px solid transparent;
    transition: background .45s ease, border-color .45s ease, box-shadow .45s ease;
}
.header.scrolled {
    background:rgba(250,249,247,.97);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid var(--border);
    box-shadow:0 2px 28px rgba(26,14,6,.07);
}
.header--solid {
    background:rgba(250,249,247,.97);
    border-bottom:1px solid var(--border);
    box-shadow:0 2px 28px rgba(26,14,6,.07);
}

/* Centered-logo nav */
.nav {
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center; height:100%; gap:16px;
    position:relative;
}
.nav__logo { display:flex; align-items:center; justify-content:center; }
.nav__logo img { height:144px; width:auto; margin:-58px 0; transition:transform .3s ease; }
.nav__logo:hover img { transform:scale(1.04); }
.nav__logo .logo-dark  { display:none; }
.nav__logo .logo-light { display:block; }
.header.scrolled .logo-light, .header--solid .logo-light { display:none; }
.header.scrolled .logo-dark,  .header--solid .logo-dark  { display:block; }

.nav__group { display:flex; align-items:center; }
.nav__group--left  { gap:28px; justify-content:flex-start; }
.nav__group--right { gap:20px; justify-content:flex-end; }

.nav__link {
    font-family:'Bebas Neue', cursive;
    font-size:1rem; letter-spacing:2px; text-transform:uppercase;
    padding:4px 0; position:relative;
    color:rgba(255,255,255,.88);
    transition:color .3s ease;
}
.header.scrolled .nav__link,
.header--solid    .nav__link { color:var(--ink-mid); }
.nav__link::after {
    content:''; position:absolute; bottom:0; left:50%;
    transform:translateX(-50%);
    width:0; height:1.5px; background:var(--terracotta);
    transition:width .3s ease;
}
.nav__link:hover::after, .nav__link.active::after { width:100%; }
.nav__link:hover { color:var(--white); }
.header.scrolled .nav__link:hover,
.header.scrolled .nav__link.active,
.header--solid   .nav__link:hover,
.header--solid   .nav__link.active { color:var(--terracotta); }

.nav__phone {
    font-family:'Montserrat', sans-serif;
    font-size:.75rem; font-weight:600; letter-spacing:.5px;
    color:rgba(255,255,255,.88);
    display:flex; align-items:center; gap:6px;
    border:1.5px solid rgba(189,63,39,.45);
    padding:6px 14px;
    transition:all .3s ease;
}
.header.scrolled .nav__phone,
.header--solid   .nav__phone { color:var(--terracotta); border-color:rgba(189,63,39,.35); }
.nav__phone:hover { background:var(--terracotta)!important; color:var(--white)!important; border-color:var(--terracotta)!important; }

.nav__toggle {
    display:none; background:none; border:none;
    font-size:1.4rem; cursor:pointer;
    color:rgba(255,255,255,.88); z-index:1001;
    transition:color .3s ease;
}
.header.scrolled .nav__toggle,
.header--solid   .nav__toggle { color:var(--ink); }
.nav__toggle:hover { color:var(--terracotta)!important; }

/* ===== MOBILE DRAWER ===== */
.nav__drawer {
    position:fixed;
    top:var(--header-height); left:0; width:100%;
    height:calc(100vh - var(--header-height));
    background:rgba(250,249,247,.98);
    backdrop-filter:blur(16px);
    display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:36px;
    opacity:0; visibility:hidden;
    transition:opacity .35s ease, visibility .35s ease;
    z-index:999;
}
.nav__drawer.is-open { opacity:1; visibility:visible; }
.nav__drawer a {
    font-family:'Bebas Neue', cursive;
    font-size:2.4rem; letter-spacing:4px;
    color:var(--ink); transition:color .3s ease;
}
.nav__drawer a:hover { color:var(--terracotta); }
.nav__drawer-phone {
    font-family:'Bebas Neue', cursive!important;
    font-size:1.3rem!important; font-style:normal!important;
    letter-spacing:2px; color:var(--terracotta)!important;
    border:1.5px solid rgba(189,63,39,.3);
    padding:10px 26px;
}
.nav__drawer-phone:hover { background:var(--terracotta); color:var(--white)!important; }

/* ===== LOADER ===== */
.loader {
    position:fixed; inset:0;
    background:var(--bg); z-index:9999;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    transition:opacity .65s ease;
    will-change:opacity;
}
.loader.is-done { opacity:0; pointer-events:none; }
.loader__logo {
    width: 260px; height: auto;
    margin: -60px 0;
    animation: ldFade 1s ease .1s both;
}
.loader__track {
    width: 100px; height: 2px;
    background: var(--border);
    margin-top: 48px; overflow: hidden;
}
.loader__fill {
    height: 100%; width: 0;
    background: var(--terracotta);
    animation: ldBar 1.2s cubic-bezier(.4,0,.2,1) .2s forwards;
}
@keyframes ldFade {
    from { opacity:0; transform:scale(.93); }
    to   { opacity:1; transform:scale(1); }
}
@keyframes ldBar { to { width:100%; } }

/* ===== FOOTER ===== */
.footer {
    background: beige;
    border-top:3px solid var(--terracotta);
    padding-top:32px;
}
.footer__grid {
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr;
    gap:32px;
    padding-bottom:32px;
    border-bottom:1px solid var(--border);
}
.footer__logo {
    height:280px; width:auto; display:block;
    margin:-60px 0;
    transition:transform .3s ease;
}
.footer__logo:hover { transform:scale(1.04); }

.footer__heading {
    font-family:'Bebas Neue', cursive;
    font-size:.75rem; letter-spacing:3px;
    text-transform:uppercase; color:var(--terracotta);
    margin-bottom:16px;
}
.footer__text {
    font-family:'Montserrat', sans-serif;
    font-size:.88rem; color:var(--ink-mid);
    font-weight:300; line-height:1.7; margin-bottom:8px;
}
.footer__phone-link {
    font-family:'Bebas Neue', cursive;
    font-size:1.5rem; letter-spacing:2px;
    color:var(--ink); transition:color .3s ease;
    display:inline-block; margin-bottom:8px;
}
.footer__phone-link:hover { color:var(--terracotta); }

.footer__social { display:flex; gap:10px; margin-top:20px; }
.footer__social a {
    width:38px; height:38px; border-radius:50%;
    border:1px solid var(--border);
    display:flex; align-items:center; justify-content:center;
    font-size:1rem; color:var(--ink-muted);
    transition:all .3s ease; position:relative; overflow:hidden;
}
.footer__social a::before {
    content:''; position:absolute; inset:0;
    background:var(--terracotta); transform:scale(0);
    transition:transform .3s ease; border-radius:50%; z-index:-1;
}
.footer__social a:hover { color:var(--white); border-color:var(--terracotta); transform:translateY(-3px); }
.footer__social a:hover::before { transform:scale(1); }

.footer__bottom {
    background:var(--bg);
    text-align:center; padding:18px 24px;
    font-family:'Montserrat', sans-serif;
    font-size:.78rem; color:var(--ink-muted); font-weight:300;
}
.creator-link { color:var(--terracotta); font-weight:600; }
.creator-link:hover { text-decoration:underline; }

/* ===== SCROLL TO TOP ===== */
.scroll-top {
    position: fixed;
    bottom: 28px; right: 28px;
    width: 48px; height: 48px;
    background: var(--bg-warm);
    border: 1px solid var(--border);
    color: var(--ink);
    font-size: .9rem;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    opacity: 0; visibility: hidden;
    transform: translateY(12px);
    transition: opacity .3s ease, visibility .3s ease, transform .3s ease,
                background .2s ease, color .2s ease, border-color .2s ease;
    z-index: 500;
}
.scroll-top.is-visible {
    opacity: 1; visibility: visible;
    transform: translateY(0);
}
.scroll-top:hover {
    background: var(--terracotta);
    color: var(--white);
    border-color: var(--terracotta);
}

/* ===== RESPONSIVE ===== */
@media (max-width:992px) {
    .section { padding:64px 0; }
}
@media (max-width:768px) {
    :root { --header-height:68px; }
    .nav__group { display:none; }
    .nav { grid-template-columns:auto 1fr; }
    .nav__logo { justify-content:flex-start; }
    .nav__logo img { height:140px; margin:-38px 0; }
    .nav__logo .logo-light { display:none!important; }
    .nav__logo .logo-dark  { display:block!important; }
    .nav__toggle { display:block; justify-self:end; }
    .section { padding:48px 0; }
    .footer__grid { grid-template-columns:1fr; gap:32px; text-align:center; }
    .footer__social { justify-content:center; }
    .footer__logo { height:160px; margin:-30px auto; display:block; }
    .eyebrow { justify-content:center; }
}
@media (max-width:576px) {
    .btn { padding:12px 20px; font-size:.74rem; }
}
