@font-face { font-family: Barlow; src: url('../fonts/barlow-regular.ttf') format('truetype'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url('../fonts/barlow-condensed-bold.ttf') format('truetype'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Barlow Condensed'; src: url('../fonts/barlow-condensed-extrabold.ttf') format('truetype'); font-weight: 800; font-display: swap; }
body[data-page='home'] {
  --color-page: #0b0e0e; --color-section-alt: #111515; --color-surface: #131717;
  --color-ink: #f6f5f1; --color-muted: #b9bfbc; --color-line: #333a37;
  --color-brand: #fa1027; --color-brand-hover: #d7081d; --color-brand-dark: #080b0b;
  --color-accent: #fa1027; --color-blue: #fa1027; --color-on-brand: #fff;
  --font-body: Barlow, 'Segoe UI', sans-serif;
  --font-display: 'Barlow Condensed', Impact, sans-serif;
  --site-width: 1240px; --section-space: 100px;
  background: var(--color-page); color: var(--color-ink);
}
body[data-page='home'] .site-header { background: rgba(9,12,12,.94); border-bottom: 1px solid #252b28; box-shadow: none; }
.home-brand-logo { width: 112px; height: 96px; object-fit: contain; }
body[data-page='home'] .brand { text-transform: uppercase; letter-spacing: .07em; font: 700 20px 'Barlow Condensed', sans-serif; }
body[data-page='home'] .nav-links a { color: #c9cdca; position: relative; transition: color .2s; }
body[data-page='home'] .nav-links a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 3px; height: 2px; background: var(--color-brand); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
body[data-page='home'] .nav-links a:hover::after, body[data-page='home'] .nav-links a:focus-visible::after { transform: scaleX(1); }
body[data-page='home'] .button { border-radius: 0; border: 1px solid var(--color-brand); background: var(--color-brand); color: white; box-shadow: none; padding: 18px 27px; font: 700 20px 'Barlow Condensed', sans-serif; letter-spacing: .09em; transition: background .2s, transform .2s, box-shadow .2s; }
body[data-page='home'] .button::after { content: '↗'; margin-left: 18px; transition: transform .2s; }
body[data-page='home'] .button:hover { background: #d7081d; transform: translateY(-3px); box-shadow: 0 8px 28px #fa102733; }
body[data-page='home'] .button:hover::after { transform: translate(3px,-3px); }
body[data-page='home'] :focus-visible { outline: 3px solid #fa1027; outline-offset: 5px; }
body[data-page='home'] .nav-action .button { font-size: 16px; padding: 12px 17px; }
.home-photo-hero { min-height: 720px; display: flex; align-items: center; padding: 90px var(--gutter); isolation: isolate; background: #080b0b; }
.home-photo-hero .home-photo-layout { display: block; }
.home-hero-copy { position: relative; z-index: 2; width: 66%; }
.home-photo-hero .home-hero-photo { position: absolute; inset: 0 0 0 auto; z-index: -2; width: 73%; height: 100%; border-radius: 0; object-fit: cover; object-position: 65% center; filter: grayscale(1) brightness(.72); }
.home-photo-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,#080b0b 5%,#080b0bf2 23%,#080b0b75 58%,#080b0b08),linear-gradient(0deg,#080b0b88,transparent 35%); }
.home-photo-hero h1 { font: 800 clamp(64px, 7.6vw, 112px)/.92 var(--font-display); text-transform: uppercase; letter-spacing: -.035em; margin: 22px 0 24px; }
.home-photo-hero h1 span { color: #ff1029; }
.home-photo-hero p:not(.section-eyebrow) { max-width: 470px; font-size: 21px; line-height: 1.5; color: #d7d9d5; }
body[data-page='home'] .section-eyebrow { display: flex; align-items: center; gap: 17px; font: 700 13px/1.5 Barlow,sans-serif; letter-spacing: .22em; text-transform: uppercase; color: inherit; }
body[data-page='home'] .section-eyebrow::before { content: ''; width: 38px; height: 3px; flex: 0 0 auto; background: #fa1027; }
body[data-page='home'] .section h2 { font: 800 clamp(46px,5.8vw,78px)/1 var(--font-display); letter-spacing: -.025em; margin: 20px 0 25px; }
body[data-page='home'] .home-intro { background: #f1eee8; color: #101413; padding: 80px var(--gutter); }
.home-intro .home-photo-layout { grid-template-columns: 1.2fr .8fr; gap: 80px; }
.home-intro p { color: #5b605c; font-size: 19px; }
.home-intro h3 { margin: 30px 0 10px; padding-top: 22px; border-top: 1px solid #c9c8c0; font: 700 28px var(--font-display); }
.home-intro .intro-photo { width: 100%; max-width: 440px; border-radius: 0; filter: grayscale(1); box-shadow: 18px 18px 0 #dfdcd5; transition: filter .5s, box-shadow .5s; }
body[data-page='home'] .home-services { background: #0b0e0e; }
.home-services .service-list { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin-top: 36px; }
.home-services .service-item { border: 1px solid #343b37; border-radius: 0; box-shadow: none; padding-bottom: 25px; background: #101414; transition: border-color .3s, box-shadow .3s; }
.home-services .service-card-media { margin-bottom: 22px; overflow: hidden; }
.home-services .service-card-image { aspect-ratio: 1 / 1.05; object-fit: cover; filter: saturate(.3); transition: transform .65s cubic-bezier(.2,.65,.3,1), filter .5s; }
.home-services .service-item h3 { margin: 0 18px 16px; font: 700 30px/1.1 var(--font-display); }
.home-services .service-item h3::after { content: ''; display: block; width: 30px; height: 3px; background: #fa1027; margin-top: 15px; transition: width .3s; }
.home-services .service-item p { font-size: 16px; line-height: 1.55; margin: 0 18px; color: #bdc3bd; }
.home-services .contact-actions { margin-top: 36px; }
body[data-page='home'] .reviews { background: #151a18; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; margin-top: 36px; }
.reviews .testimonial-card { margin: 0; padding: 30px; border: 1px solid #363d38; border-top: 3px solid #fa1027; background: #101414; }
.reviews .testimonial-author { display: flex; align-items: center; gap: 14px; color: #f4f3ee; font-size: 18px; }
.review-avatar { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border-radius: 50%; background: #2c3930; color: #f4f3ee; font: 700 23px var(--font-display); }
.review-stars { margin: 22px 0 18px; color: #ffba42; font-size: 20px; letter-spacing: 3px; }
.reviews .testimonial-card blockquote p { font-size: 17px; line-height: 1.7; color: #d0d5cf; }
@media (hover:hover) { .reviews .testimonial-card:hover { border-color: #fa1027; box-shadow: 0 12px 30px #0003; } }
@media (max-width:900px) { .testimonial-grid { grid-template-columns: 1fr; } }
@media (max-width:480px) { .reviews .testimonial-card { padding: 24px; } }
.reviews blockquote { margin: 0 0 8px; }
.reviews blockquote p { color: #f4f3ee; font-size: 23px; }
.reviews figcaption { color: #b7beb7; font-size: 14px; }
.reviews .home-section-copy > p:last-child { font-size: 13px; margin-top: 20px; }
.reviews-photo { border-radius: 0; aspect-ratio: 4/3; object-fit: cover; filter: grayscale(1); }
body[data-page='home'] .location-contact { background: #efede6; color: #111613; }
.location-contact .home-section-copy > p { color: #565d57; }
body[data-page='home'] .contact-card { background: transparent; border: 0; border-left: 3px solid #fa1027; border-radius: 0; padding: 4px 0 4px 22px; margin: 26px 0; box-shadow: none; }
body[data-page='home'] .contact-details { color: #303830; }
.location-photo { border-radius: 0; }
.location-map-panel { min-width: 0; border: 1px solid #c9cec7; background: #e0e3dc; }
.location-map iframe { display: block; width: 100%; height: clamp(320px, 36vw, 460px); border: 0; }
.location-directions { display: flex; justify-content: space-between; align-items: center; padding: 18px 22px; color: #111613; background: #f8f7f2; font-weight: 700; text-decoration: none; transition: color .2s, background .2s; }
.location-directions:hover { color: #d7081d; background: #fff; }
.home-services .service-item:first-child .service-card-image { object-position: 60% center; }
body[data-page='home'] .site-footer { background: #090c0b; color: #8e978f; border-top: 1px solid #293029; }
body[data-page='home'] .home-footer { padding-top: 64px; padding-bottom: 24px; }
.footer-invitation { display: flex; justify-content: space-between; align-items: center; gap: 32px; padding-bottom: 48px; border-bottom: 1px solid #293029; }
.footer-invitation h2 { margin: 12px 0; color: #f6f5f1; font: 800 clamp(42px,5vw,64px)/1 var(--font-display); }
.footer-invitation p { margin: 0; }
.footer-invitation .button { flex-shrink: 0; }
.home-footer-grid { display: grid; grid-template-columns: 1.4fr .8fr 1fr; gap: 48px; padding: 48px 0; }
.footer-brand { display: inline-flex; align-items: center; gap: 18px; color: #f6f5f1; text-decoration: none; font: 700 27px/1.1 var(--font-display); text-transform: uppercase; }
.footer-brand img { object-fit: contain; }
.footer-brand-block p, .footer-visit p, .footer-visit address { font-size: 16px; line-height: 1.7; font-style: normal; }
.home-footer-grid h3 { color: #f6f5f1; margin: 0 0 22px; font: 700 24px var(--font-display); }
.footer-navigation { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.footer-navigation h3 { margin-bottom: 10px; }
.home-footer a { transition: color .2s; }
.footer-navigation a, .footer-visit a, .home-footer-bottom a { color: #c6cec7; text-decoration: none; }
.home-footer a:hover { color: #fa1027; }
.home-footer-bottom { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid #293029; padding-top: 24px; font-size: 13px; }
.home-footer-bottom p { margin: 0; }
@media (min-width:721px) and (max-width:1200px) { body[data-page='home'] .brand span { display: none; } }
@media (max-width:720px) {
  .home-brand-logo { width: 56px; height: 48px; }
  body[data-page='home'] .brand span { display: none; }
  .footer-invitation { align-items: flex-start; flex-direction: column; }
  .home-footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .footer-brand-block { grid-column: 1 / -1; }
  .home-footer-bottom { flex-direction: column; }
}
@media (max-width:380px) {
  .home-brand-logo { width: 44px; height: 38px; }
  .home-footer-grid { grid-template-columns: 1fr; }
}
.scroll-reveal { opacity: 0; transform: translateY(32px); transition: opacity .75s ease var(--reveal-delay,0ms), transform .75s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms); }
.scroll-reveal.is-visible { opacity: 1; transform: translateY(0); }
.scroll-reveal:focus-within { opacity: 1; transform: none; }
@media (hover:hover) {
  .home-services .service-item:hover { border-color: #fa1027; box-shadow: 0 14px 35px #0005; }
  .home-services .service-item:hover .service-card-image { transform: scale(1.055); filter: saturate(1); }
  .home-services .service-item:hover h3::after { width: 62px; }
  .home-intro .intro-photo:hover { filter: grayscale(0); box-shadow: 12px 12px 0 #fa1027; }
}
@media (prefers-reduced-motion:no-preference) {
  .home-hero-copy { animation: hero-enter .9s ease both; }
  @keyframes hero-enter { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
}
@media (max-width:1000px) {
  .home-services .service-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-intro .home-photo-layout { gap: 36px; }
  .home-hero-copy { width: 80%; }
  body[data-page='home'] .brand { font-size: 16px; }
  body[data-page='home'] .nav { gap: 12px; }
  body[data-page='home'] .nav-links { gap: 12px; }
}
@media (max-width:720px) {
  body[data-page='home'] { --section-space: 64px; }
  .home-photo-hero { min-height: 680px; padding: 64px var(--gutter); align-items: flex-start; }
  .home-hero-copy { width: 100%; }
  .home-photo-hero h1 { font-size: clamp(56px,11.7vw,84px); }
  .home-photo-hero .home-hero-photo { width: 100%; object-position: 65% center; filter: grayscale(1) brightness(.5); }
  .home-photo-hero::after { background: linear-gradient(90deg,#080b0bcc,#080b0b44),linear-gradient(0deg,#080b0b33,#080b0bc9); }
  .home-photo-hero p:not(.section-eyebrow) { font-size: 19px; max-width: 430px; }
  body[data-page='home'] .section-eyebrow { font-size: 11px; letter-spacing: .16em; gap: 12px; }
  .home-intro .home-photo-layout { grid-template-columns: 1fr; gap: 42px; }
  body[data-page='home'] .home-intro { padding: 64px var(--gutter); }
  .home-intro .intro-photo { max-width: 370px; width: calc(100% - 18px); justify-self: start; }
  body[data-page='home'] .nav-toggle { border-color: #4b554e; color: white; background: transparent; }
  body[data-page='home'] .nav-toggle span { background: #fff; }
  body[data-page='home'] .nav-links { border-top-color: #343d36; }
  .reviews-photo { aspect-ratio: 16/10; }
}
@media (max-width:480px) {
  .home-services .service-list { grid-template-columns: 1fr; gap: 24px; }
  .home-services .service-card-image { aspect-ratio: 4/3; }
  body[data-page='home'] .nav-action .button { font-size: 14px; padding: 12px; letter-spacing: .05em; }
  body[data-page='home'] .nav-action .button::after { display: none; }
  body[data-page='home'] .brand span { display: none; }
  .home-photo-hero { min-height: 650px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto !important; }
  body[data-page='home'] *, body[data-page='home'] *::before, body[data-page='home'] *::after { animation: none !important; transition: none !important; }
  .scroll-reveal { opacity: 1; transform: none; }
}
