/* Marcito Bull — main stylesheet */
@import url('https://fonts.googleapis.com/css2?family=Bree+Serif&family=Source+Sans+3:wght@400;600;700&display=swap');

/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--font-sans);font-size:var(--text-body);line-height:1.55;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none}
ul{list-style:none}

/* ===== TYPOGRAPHY ===== */
.display{font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:-0.02em}
.display-2xl{font-size:var(--text-display-2xl);line-height:var(--leading-display)}
.display-xl{font-size:var(--text-display-xl);line-height:0.95;letter-spacing:-0.015em}
.display-lg{font-size:var(--text-display-lg);line-height:1;letter-spacing:-0.01em}
.display-md{font-size:var(--text-display-md);line-height:1.05;letter-spacing:-0.005em}
.display-sm{font-size:var(--text-display-sm);line-height:var(--leading-display-sm);letter-spacing:-0.005em}
.eyebrow{font-size:var(--text-eyebrow);font-weight:700;line-height:1.2;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-soft)}
.lead{font-size:var(--text-lead);font-weight:400;line-height:1.5}
.body-sm{font-size:var(--text-body-sm);line-height:1.5}
.caption{font-size:var(--text-caption);line-height:1.45}

/* ===== LAYOUT ===== */
.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-pad)}
.section{overflow:hidden}
.section-hide{background:var(--paper)}
.section-fire{background:var(--ember);color:var(--cream)}
.section-pad{padding:var(--section-pad) 0}
@media(max-width:1023px){.section-pad{padding:96px 0}}
@media(max-width:767px){.section-pad{padding:64px 0}}

/* ===== NAVIGATION ===== */
.nav{position:sticky;top:0;z-index:100;height:72px;background:var(--paper);transition:box-shadow var(--ms-base) var(--ease-out)}
.nav.scrolled{border-bottom:1px solid var(--border)}
.nav-inner{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-pad);height:100%;display:flex;align-items:center;justify-content:space-between}
.nav-brand{display:flex;align-items:center;gap:var(--space-3)}
.nav-brand svg{width:32px;height:auto;color:var(--coral)}
.nav-brand .wordmark{font-family:var(--font-display);font-size:1.25rem;text-transform:uppercase;color:var(--ink);letter-spacing:0.04em}
.nav-links{display:flex;align-items:center;gap:var(--space-6)}
.nav-link{font-size:var(--text-button);font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink);position:relative;padding:var(--space-1) 0}
.nav-link::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--coral-deep);transform:scaleX(0);transform-origin:left;transition:transform var(--ms-base) var(--ease-out)}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1)}
.nav-cta{font-size:var(--text-button);font-weight:700;text-transform:uppercase;letter-spacing:0.04em;background:var(--ember);color:var(--cream);padding:12px 24px;transition:background var(--ms-base) var(--ease-in-out),transform var(--ms-base) var(--ease-in-out)}
.nav-cta:hover{background:var(--coral-700);transform:translateY(-2px)}
.nav-hamburger{display:none;flex-direction:column;gap:5px;width:28px;cursor:pointer}
.nav-hamburger span{display:block;height:2px;background:var(--ink);transition:transform var(--ms-base) var(--ease-out),opacity var(--ms-base) var(--ease-out)}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Overlay menu */
.nav-overlay{position:fixed;inset:0;z-index:99;background:var(--ember);display:flex;flex-direction:column;justify-content:center;padding:var(--space-9) var(--container-pad);transform:translateX(-100%);transition:transform var(--ms-slow) var(--ease-out-soft);pointer-events:none}
.nav-overlay.open{transform:translateX(0);pointer-events:auto}
.nav-overlay a{font-family:var(--font-display);font-size:var(--text-display-md);text-transform:uppercase;color:var(--cream);line-height:1.3;padding:var(--space-4) 0;border-bottom:1px solid rgba(241,221,196,0.15);transition:color var(--ms-base)}
.nav-overlay a:hover{color:var(--coral)}
.nav-overlay .overlay-cta{margin-top:var(--space-7);font-family:var(--font-sans);font-size:var(--text-button);font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--ember);background:var(--cream);padding:16px 32px;text-align:center;border:none;transition:background var(--ms-base),transform var(--ms-base)}
.nav-overlay .overlay-cta:hover{background:var(--white);transform:translateY(-2px)}

@media(max-width:767px){
  .nav-links{display:none}
  .nav-hamburger{display:flex}
}

/* ===== HERO ===== */
.hero{min-height:100svh;background:var(--ember);display:flex;align-items:center;position:relative;overflow:hidden}
.hero-content{position:relative;z-index:2;padding:120px 0 80px;max-width:var(--container-max);margin:0 auto;width:100%;padding-left:var(--container-pad);padding-right:var(--container-pad)}
.hero-kicker{color:var(--coral-tint);margin-bottom:var(--space-5)}
.hero-wordmark{color:var(--cream);margin-bottom:var(--space-4)}
.hero-subtitle{font-size:var(--text-lead);color:var(--cream);max-width:540px;opacity:0.85;margin-bottom:var(--space-7);line-height:1.5}
.hero-actions{display:flex;gap:var(--space-4);flex-wrap:wrap}

/* Decorative geometry */
.hero-geo{position:absolute;z-index:1;pointer-events:none}
.hero-geo-1{top:15%;right:8%;width:clamp(120px,18vw,280px);height:clamp(120px,18vw,280px);background:var(--coral);clip-path:polygon(50% 0%,100% 38%,82% 100%,18% 100%,0% 38%);animation:geo-drift 12s ease-in-out infinite}
.hero-geo-2{bottom:20%;left:5%;width:clamp(80px,10vw,160px);height:clamp(80px,10vw,160px);background:var(--coral-deep);clip-path:polygon(25% 0%,100% 0%,75% 100%,0% 100%);animation:geo-drift 15s ease-in-out infinite reverse}
.hero-geo-3{top:40%;left:60%;width:clamp(60px,8vw,120px);height:clamp(60px,8vw,120px);background:var(--cream);opacity:0.15;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);animation:geo-drift 10s ease-in-out infinite}

@keyframes geo-drift{0%,100%{transform:translate(0,0) rotate(0deg)}33%{transform:translate(10px,-8px) rotate(1deg)}66%{transform:translate(-6px,12px) rotate(-1deg)}}

/* Spinning badge */
.badge-spin{animation:badge-spin 18s linear infinite}
@keyframes badge-spin{to{transform:rotate(360deg)}}

/* ===== BUTTONS ===== */
.btn{display:inline-block;font-size:var(--text-button);font-weight:700;text-transform:uppercase;letter-spacing:0.04em;padding:16px 28px;transition:background var(--ms-base) var(--ease-in-out),transform var(--ms-base) var(--ease-in-out),border-color var(--ms-base);cursor:pointer}
.btn-primary{background:var(--ember);color:var(--cream);border:1px solid var(--cream)}
.btn-primary:hover{background:var(--coral-700);transform:translateY(-2px)}
.btn-secondary{background:transparent;color:var(--coral-deep);border:1px solid var(--coral-deep)}
.btn-secondary:hover{background:var(--coral-tint);border-color:var(--coral-700);transform:translateY(-2px)}
.btn-light{background:var(--cream);color:var(--ember);border:1px solid var(--cream)}
.btn-light:hover{background:var(--white);transform:translateY(-2px)}
.btn-coral{background:var(--coral);color:var(--ink);border:1px solid var(--coral)}
.btn-coral:hover{background:var(--coral-deep);color:var(--white);transform:translateY(-2px)}

/* ===== SECTION HEADERS ===== */
.sec-label{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}
.sec-label .num{font-size:var(--text-eyebrow);font-weight:700;color:var(--coral)}
.sec-heading{margin-bottom:var(--space-5)}
.sec-lead{max-width:60ch;color:var(--ink-soft);margin-bottom:var(--space-8)}
.section-fire .sec-lead{color:var(--cream);opacity:0.7}

/* ===== CARDS ===== */
.cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6)}
.cards-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
.card{background:var(--surface);border:1px solid var(--border);padding:var(--space-5);transition:transform var(--ms-base) var(--ease-in-out),border-color var(--ms-base) var(--ease-in-out),box-shadow var(--ms-base)}
.card:hover{transform:translateY(-3px);border-color:var(--coral-deep);box-shadow:0 12px 40px rgba(27,17,11,0.08)}
.card-img{aspect-ratio:1;overflow:hidden;margin:-24px -24px 24px;background:var(--coral-tint)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform var(--ms-slow) var(--ease-in-out)}
.card:hover .card-img img{transform:scale(1.03)}
.card-heading{font-family:var(--font-display);font-size:var(--text-display-md);text-transform:uppercase;letter-spacing:-0.005em;color:var(--coral-deep);margin-bottom:var(--space-2)}
.card-body{font-size:var(--text-body-sm);color:var(--ink-soft);line-height:1.5}
.card-label{font-size:var(--text-eyebrow);font-weight:700;text-transform:uppercase;letter-spacing:0.14em;color:var(--ink-soft)}
.card-value{font-family:var(--font-display);font-size:var(--text-display-sm);text-transform:uppercase;color:var(--ink);margin-bottom:var(--space-1)}

@media(max-width:767px){
  .cards-grid,.cards-grid-3{grid-template-columns:1fr}
}

/* ===== CTA BAND ===== */
.cta-band{background:var(--ember);color:var(--cream);text-align:center;padding:var(--section-pad) var(--container-pad)}
.cta-band .display-lg{margin-bottom:var(--space-4)}
.cta-band p{font-size:var(--text-lead);opacity:0.85;max-width:500px;margin:0 auto var(--space-7)}
.cta-band .btn-light{display:inline-block}

/* ===== FOOTER ===== */
.footer{background:var(--ember);color:var(--cream);padding:var(--space-10) var(--container-pad) var(--space-7)}
.footer-top{max-width:var(--container-max);margin:0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-8);margin-bottom:var(--space-9);flex-wrap:wrap}
.footer-brand{flex-shrink:0}
.footer-brand .wordmark{font-family:var(--font-display);font-size:var(--text-display-lg);text-transform:uppercase;line-height:1;margin-bottom:var(--space-2)}
.footer-brand svg{width:48px;height:auto;color:var(--coral);margin-bottom:var(--space-3)}
.footer-cols{display:flex;gap:var(--space-9);flex-wrap:wrap}
.footer-col h4{font-size:var(--text-eyebrow);font-weight:700;text-transform:uppercase;letter-spacing:0.14em;color:var(--cream);opacity:0.6;margin-bottom:var(--space-4)}
.footer-col ul{display:flex;flex-direction:column;gap:var(--space-2)}
.footer-col a{font-size:var(--text-body-sm);color:var(--cream);opacity:0.85;transition:opacity var(--ms-fast),color var(--ms-fast)}
.footer-col a:hover{color:var(--coral);opacity:1}
.footer-bottom{max-width:var(--container-max);margin:0 auto;padding-top:var(--space-5);border-top:1px solid rgba(241,221,196,0.15);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4)}
.footer-bottom .caption{color:var(--cream);opacity:0.5}

/* ===== PAGE HERO (inner pages) ===== */
.page-hero{background:var(--ember);padding:120px 0 80px}
.page-hero .container{display:flex;flex-direction:column;gap:var(--space-4)}
.page-hero .eyebrow{color:var(--coral-tint)}
.page-hero .display-xl{color:var(--cream)}
.page-hero .lead{color:var(--cream);opacity:0.8;max-width:60ch}

/* ===== ABOUT PAGE ===== */
.about-intro .container{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:center}
.about-intro .stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}
.about-stat{text-align:center;padding:var(--space-6);background:var(--surface);border:1px solid var(--border)}
.about-stat .num{font-family:var(--font-display);font-size:var(--text-display-xl);color:var(--coral);line-height:1}
.about-stat .label{font-size:var(--text-eyebrow);text-transform:uppercase;letter-spacing:0.14em;color:var(--ink-soft);margin-top:var(--space-2)}
.about-values .value-row{display:grid;grid-template-columns:auto 1fr;gap:var(--space-5) var(--space-6);align-items:start;padding:var(--space-5) 0;border-bottom:1px solid var(--border)}
.about-values .value-num{font-family:var(--font-display);font-size:var(--text-display-lg);color:var(--coral-tint);line-height:1}
.about-values .value-title{font-family:var(--font-display);font-size:var(--text-display-sm);text-transform:uppercase;color:var(--ink);margin-bottom:var(--space-1)}

@media(max-width:767px){
  .about-intro .container{grid-template-columns:1fr}
  .about-stat .num{font-size:var(--text-display-lg)}
}

/* ===== SERVICES PAGE ===== */
.services-list .service-item{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);padding:var(--space-8) 0;border-top:1px solid var(--border);align-items:center}
.services-list .service-item:first-child{border-top:none}
.services-list .service-num{font-family:var(--font-display);font-size:var(--text-display-lg);color:var(--coral-tint);line-height:1}
.services-list .service-name{font-family:var(--font-display);font-size:var(--text-display-lg);text-transform:uppercase;color:var(--ink);line-height:1;margin-bottom:var(--space-3)}
.services-list .service-desc{font-size:var(--text-body);color:var(--ink-soft);margin-bottom:var(--space-4)}
.services-list .service-price{font-family:var(--font-display);font-size:var(--text-display-md);color:var(--coral)}
.services-list .service-img{aspect-ratio:4/3;overflow:hidden;background:var(--coral-tint)}
.services-list .service-img img{width:100%;height:100%;object-fit:cover}

@media(max-width:767px){
  .services-list .service-item{grid-template-columns:1fr;gap:var(--space-5)}
  .services-list .service-img{order:-1}
}

/* ===== GALLERY PAGE ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}
.gallery-item{aspect-ratio:1;overflow:hidden;position:relative;cursor:pointer}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--ms-slow) var(--ease-in-out)}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-item::after{content:"";position:absolute;inset:0;background:var(--ember);opacity:0;transition:opacity var(--ms-base) var(--ease-out)}
.gallery-item:hover::after{opacity:0.3}
.gallery-filters{display:flex;gap:var(--space-3);margin-bottom:var(--space-7);flex-wrap:wrap;justify-content:center}
.gallery-filter{font-size:var(--text-button);font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink-soft);padding:8px 20px;border:1px solid var(--border);transition:all var(--ms-base)}
.gallery-filter:hover,.gallery-filter.active{color:var(--coral-deep);border-color:var(--coral-deep);background:var(--coral-tint)}

@media(max-width:767px){
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
}

/* ===== CONTACT PAGE ===== */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8)}
.contact-form{display:flex;flex-direction:column;gap:var(--space-5)}
.contact-form label{font-size:var(--text-eyebrow);font-weight:700;text-transform:uppercase;letter-spacing:0.14em;color:var(--ink-soft);margin-bottom:-12px}
.contact-form input,.contact-form textarea,.contact-form select{font-family:var(--font-sans);font-size:var(--text-body);padding:14px 16px;border:1px solid var(--border);background:var(--surface);color:var(--ink);transition:border-color var(--ms-base)}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:none;border-color:var(--coral-deep);box-shadow:0 0 0 3px var(--coral-tint)}
.contact-form textarea{min-height:140px;resize:vertical}
.contact-info{display:flex;flex-direction:column;gap:var(--space-6)}
.contact-info .info-block h4{font-size:var(--text-eyebrow);font-weight:700;text-transform:uppercase;letter-spacing:0.14em;color:var(--ink-soft);margin-bottom:var(--space-2)}
.contact-info .info-block p{font-size:var(--text-body);color:var(--ink)}
.contact-info .info-block a{color:var(--coral-deep);transition:color var(--ms-fast)}
.contact-info .info-block a:hover{color:var(--coral-700)}

@media(max-width:767px){
  .contact-layout{grid-template-columns:1fr}
}

/* ===== MOTION SYSTEM ===== */
.reveal-up{opacity:0;transform:translateY(20px);transition:opacity var(--ms-reveal) var(--ease-out),transform var(--ms-reveal) var(--ease-out)}
.reveal-up.visible{opacity:1;transform:translateY(0)}
.reveal-up-lg{opacity:0;transform:translateY(56px);transition:opacity 650ms var(--ease-out),transform 650ms var(--ease-out)}
.reveal-up-lg.visible{opacity:1;transform:translateY(0)}
.fade-in{opacity:0;transition:opacity var(--ms-slow) var(--ease-out)}
.fade-in.visible{opacity:1}

/* prefer reduced motion */
@media(prefers-reduced-motion:reduce){
  .reveal-up,.reveal-up-lg{transition:opacity 150ms var(--ease-out);transform:none!important}
  .reveal-up.visible,.reveal-up-lg.visible{opacity:1}
  .badge-spin{animation:none}
  .hero-geo{animation:none}
  .card:hover{transform:none}
  .card:hover .card-img img{transform:none}
  *{animation-duration:0.01ms!important;transition-duration:0.01ms!important}
}

/* ===== UTILITIES ===== */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.text-center{text-align:center}
.mb-8{margin-bottom:var(--space-8)}