:root { --red:#d20a0a; --red-dark:#a90000; --ink:#111; --muted:#6f6d69; --paper:#f5f3ef; --line:#dedbd5; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Segoe UI",Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; }
.shell { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.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; }

.site-header { position:fixed; inset:16px 0 auto; z-index:100; display:flex; align-items:center; justify-content:space-between; width:min(1180px,calc(100% - 40px)); margin:0 auto; padding:14px 18px; border:1px solid rgba(255,255,255,.16); border-radius:18px; background:rgba(15,15,15,.9); box-shadow:0 12px 42px rgba(0,0,0,.18); backdrop-filter:blur(14px); }
.brand { display:flex; align-items:center; }
.brand img { display:block; width:145px; height:auto; aspect-ratio:700/180; object-fit:contain; }
nav { display:flex; align-items:center; gap:28px; color:white; font-size:14px; font-weight:700; }
nav a { transition:color .2s ease,background .2s ease; }
nav a:hover { color:#ff6868; }
.nav-cta { padding:13px 20px; border-radius:10px; background:var(--red); }
.nav-cta:hover { color:white; background:var(--red-dark); }
.menu-toggle { display:none; width:43px; height:43px; padding:10px; border:1px solid rgba(255,255,255,.25); border-radius:10px; background:transparent; }
.menu-toggle span:not(.sr-only) { display:block; height:2px; margin:4px 0; background:white; }

.hero-slider { position:relative; min-height:760px; overflow:hidden; color:white; background:#111; }
.hero-slide { position:absolute; inset:0; display:grid; place-items:center; visibility:hidden; opacity:0; background:#111 center/cover no-repeat; transition:opacity .65s ease,visibility .65s ease; }
.hero-slide.active { visibility:visible; opacity:1; }
.slider-controls { position:absolute; z-index:4; right:0; bottom:32px; left:0; display:flex; align-items:center; justify-content:flex-end; gap:14px; }
.slider-controls>button { display:grid; width:44px; height:44px; place-items:center; border:1px solid rgba(255,255,255,.35); border-radius:50%; color:white; background:rgba(0,0,0,.35); cursor:pointer; }
.slider-dots { display:flex; gap:7px; }
.slider-dots button { width:26px; height:4px; padding:0; border:0; border-radius:99px; background:rgba(255,255,255,.35); cursor:pointer; transition:width .2s,background .2s; }
.slider-dots button.active { width:46px; background:var(--red); }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,5,5,.92) 0%,rgba(5,5,5,.64) 48%,rgba(5,5,5,.18) 100%),linear-gradient(0deg,rgba(0,0,0,.48),transparent 90%); }
.hero-content { position:relative; padding-top:80px; }
.eyebrow { margin:0 0 18px; color:#ff5c5c; font-size:13px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.eyebrow.dark { color:var(--red); }
h1 { max-width:760px; margin:0; font-size:clamp(52px,7.5vw,104px); line-height:.94; letter-spacing:-.055em; }
.hero-copy { max-width:640px; margin:28px 0 0; color:rgba(255,255,255,.8); font-size:clamp(18px,2vw,23px); line-height:1.55; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.button { display:inline-flex; min-height:54px; align-items:center; justify-content:center; padding:0 24px; border:0; border-radius:11px; font:inherit; font-weight:800; cursor:pointer; transition:transform .2s ease,background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:white; background:var(--red); }
.button-primary:hover { background:var(--red-dark); }
.button-ghost { color:white; border:1px solid rgba(255,255,255,.36); background:rgba(255,255,255,.08); }
.trust-list { display:flex; flex-wrap:wrap; gap:26px; margin:44px 0 0; padding:0; list-style:none; color:rgba(255,255,255,.74); font-size:14px; font-weight:700; }
.trust-list li::before { content:'✓'; margin-right:9px; color:#ff5b5b; }

.section { padding:110px 0; }
.section-heading { max-width:780px; }
.section-heading h2,.contact-copy h2 { margin:0; font-size:clamp(40px,5.5vw,72px); line-height:1; letter-spacing:-.045em; }
.section-heading>p:last-child,.contact-copy>p { max-width:650px; margin:24px 0 0; color:var(--muted); font-size:18px; line-height:1.7; }
.section-heading.split { display:grid; max-width:none; grid-template-columns:1.25fr .75fr; gap:80px; align-items:end; }
.section-heading.split>div:last-child p { margin:0 0 22px; color:var(--muted); font-size:18px; line-height:1.7; }
.text-link { color:var(--red); font-weight:800; }.light-link{color:#ff6666}
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:58px; }
.feature-card { min-height:270px; padding:32px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.feature-card span { display:grid; width:48px; height:48px; place-items:center; border-radius:50%; color:white; background:var(--red); font-size:13px; font-weight:900; }
.feature-card h3 { margin:50px 0 12px; font-size:23px; }
.feature-card p { margin:0; color:var(--muted); line-height:1.65; }

.services-section { color:white; background:#161616; }
.section-heading.light>p:last-child { color:#aaa; }
.service-grid { display:grid; grid-template-columns:1fr 1fr; margin-top:62px; border-top:1px solid #3a3a3a; }
.service-card { display:grid; grid-template-columns:64px 1fr; gap:24px; min-height:230px; padding:36px 28px 36px 0; border-bottom:1px solid #3a3a3a; }
.service-card:nth-child(odd) { padding-right:48px; border-right:1px solid #3a3a3a; }
.service-card:nth-child(even) { padding-left:48px; }
.service-icon { display:grid; width:54px; height:54px; place-items:center; border:1px solid #555; border-radius:12px; color:#ff5b5b; font-weight:900; }
.service-card h3 { margin:4px 0 12px; font-size:25px; }
.service-card p { margin:0 0 24px; color:#aaa; line-height:1.65; }
.service-card a { font-size:14px; font-weight:800; }
.service-card b { margin-left:8px; color:#ff5b5b; }

.gallery-preview { display:grid; grid-template-columns:1.35fr .65fr; grid-template-rows:260px 260px; gap:16px; margin-top:58px; }
.gallery-preview figure,.gallery-full figure { position:relative; margin:0; overflow:hidden; border-radius:18px; background:#222; }
.gallery-preview figure.wide { grid-row:1/3; }
.gallery-preview img,.gallery-full img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery-preview figure:hover img,.gallery-full figure:hover img { transform:scale(1.035); }
.gallery-preview figcaption { position:absolute; inset:auto 0 0; padding:50px 24px 22px; color:white; background:linear-gradient(transparent,rgba(0,0,0,.88)); font-weight:800; }

.contact-home { color:white; background:var(--red); }
.contact-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; align-items:start; }
.contact-copy .eyebrow { color:#260000; }
.contact-copy>p { color:rgba(255,255,255,.8); }
.contact-facts { display:grid; gap:20px; margin-top:50px; }
.contact-facts a,.contact-facts div { font-size:17px; line-height:1.55; }
.contact-facts span,.contact-detail-grid span { display:block; margin-bottom:7px; color:rgba(255,255,255,.58); font-size:11px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.home-contact-link{align-self:center;padding:42px;border:1px solid rgba(255,255,255,.28);border-radius:20px;background:rgba(70,0,0,.18)}.home-contact-link p{margin:0 0 25px;color:rgba(255,255,255,.82);font-size:20px;line-height:1.6}
.contact-form { display:grid; gap:18px; padding:38px; border-radius:20px; color:var(--ink); background:white; box-shadow:0 22px 70px rgba(56,0,0,.16); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form label { display:grid; gap:8px; font-size:13px; font-weight:800; }
.contact-form input,.contact-form textarea { width:100%; padding:14px 15px; border:1px solid #d5d2cc; border-radius:9px; outline:none; font:inherit; background:#faf9f7; }
.contact-form input:focus,.contact-form textarea:focus { border-color:var(--red); box-shadow:0 0 0 3px rgba(210,10,10,.1); }
.contact-form textarea { resize:vertical; }
.contact-form .button { justify-self:start; }
.contact-form button:disabled { opacity:.65; cursor:wait; }
.form-status { min-height:20px; margin:0; font-size:14px; }
.form-status.success { color:#16713b; }.form-status.error { color:var(--red); }
.hp { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

.page-hero { min-height:580px; display:flex; align-items:flex-end; padding:190px 0 90px; color:white; background:linear-gradient(115deg,#111,#292929); }
.page-hero h1 { max-width:850px; }
.page-hero .shell>p:last-child { max-width:640px; margin:28px 0 0; color:#bbb; font-size:20px; line-height:1.65; }
.contact-page-hero { background:linear-gradient(115deg,#6f0000,var(--red)); }
.gallery-full { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.gallery-full figure { aspect-ratio:4/3; }
.gallery-full figcaption { position:absolute; inset:auto 0 0; display:flex; gap:16px; padding:55px 24px 22px; color:white; background:linear-gradient(transparent,rgba(0,0,0,.9)); font-size:18px; font-weight:800; }
.gallery-full figcaption span { color:#ff6666; font-size:12px; }
.contact-page-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.contact-page-grid .contact-form { border:1px solid var(--line); box-shadow:none; }
.contact-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin-top:24px; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:var(--line); }
.contact-detail-grid>div { display:flex; flex-direction:column; padding:24px; background:white; }
.contact-detail-grid span { color:var(--red); }
.contact-detail-grid p,.contact-detail-grid a { margin:0 0 6px; line-height:1.55; }
.map { width:100%; height:100%; min-height:650px; border:0; border-radius:20px; }

.footer { padding:72px 0 24px; color:#aaa; background:#0c0c0c; }
.footer-grid { display:grid; grid-template-columns:1.3fr .75fr 1fr .8fr; gap:44px; }
.footer-grid>div { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.footer-grid strong { margin-bottom:8px; color:white; font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.footer-grid p { margin:0; line-height:1.7; }
.footer-logo { width:138px; height:auto; aspect-ratio:700/180; object-fit:contain; }
.about-page-hero { background:linear-gradient(115deg,#111,#3a0a0a); }.services-page-hero{background:linear-gradient(115deg,#0b0b0b,#2b2b2b)}
.services-full { border-top:1px solid var(--line); }.services-full article{display:grid;grid-template-columns:110px 1fr;gap:30px;padding:44px 0;border-bottom:1px solid var(--line)}.service-number{color:var(--red);font-size:14px;font-weight:900}.services-full h2{margin:0 0 14px;font-size:clamp(30px,4vw,48px);letter-spacing:-.035em}.services-full p{max-width:720px;margin:0 0 22px;color:var(--muted);font-size:18px;line-height:1.7}.page-cta{color:white;background:#171717}.page-cta h2{max-width:760px;margin:0 0 32px;font-size:clamp(42px,6vw,72px);line-height:1;letter-spacing:-.045em}
.footer-bottom { margin-top:60px; padding-top:22px; border-top:1px solid #292929; font-size:12px; }

@media (max-width:900px) {
  .feature-grid { grid-template-columns:1fr; }.feature-card { min-height:auto; }.feature-card h3 { margin-top:28px; }
  .service-grid,.contact-layout,.contact-page-grid,.section-heading.split { grid-template-columns:1fr; gap:40px; }
  .service-card:nth-child(n) { padding:30px 0; border-right:0; }
  .gallery-preview { grid-template-columns:1fr 1fr; grid-template-rows:340px 240px; }.gallery-preview figure.wide { grid-column:1/3; grid-row:auto; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .map { min-height:440px; }
}
@media (max-width:700px) {
  .shell { width:calc(100% - 32px); }.section { padding:76px 0; }
  .site-header { inset:10px 0 auto; width:calc(100% - 24px); padding:11px 12px; }.brand img { width:122px; height:auto; }.menu-toggle { display:block; }
  nav { position:absolute; top:calc(100% + 8px); left:0; right:0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:10px; border-radius:14px; background:#111; box-shadow:0 18px 40px rgba(0,0,0,.28); }nav.open { display:flex; }nav a { padding:14px; }.nav-cta { text-align:center; }
  .hero-slider,.hero-slide { min-height:720px; }.hero-slide { background-position:61% center; }.hero-content { padding-top:90px; }h1 { font-size:clamp(48px,15vw,72px); }.hero-copy { font-size:18px; }.hero-actions { flex-direction:column; align-items:stretch; }.slider-controls{bottom:18px;justify-content:center}.trust-list { gap:12px 20px; }
  .section-heading h2,.contact-copy h2 { font-size:42px; }.section-heading>p:last-child { font-size:17px; }
  .gallery-preview { display:flex; flex-direction:column; }.gallery-preview figure { height:290px; }.gallery-preview figure.wide { height:360px; }
  .form-row,.gallery-full,.contact-detail-grid,.footer-grid { grid-template-columns:1fr; }.contact-form { padding:24px; }.contact-layout { gap:48px; }
  .page-hero { min-height:500px; padding:170px 0 70px; }.page-hero .shell>p:last-child { font-size:17px; }
  .gallery-full figure { aspect-ratio:1/1; }.map { min-height:360px; }.footer-grid { gap:32px; }
  .services-full article{grid-template-columns:1fr;gap:12px;padding:32px 0}
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }*,*::before,*::after { transition:none!important; } }
