<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta name="theme-color" content="#0a0f1a">
<meta name="robots" content="index,follow,max-image-preview:large">
<meta name="format-detection" content="telephone=yes">

<title>24/7 Austin Garage Doors — Emergency Repair, Travis County TX</title>
<meta name="description" content="24/7 emergency garage door repair across Travis County. Broken springs, off-track doors, opener repair, cables. Locally operated, fully insured. Call (512) 270-0448 day or night.">
<link rel="canonical" href="https://247austingaragedoors.com/">

<!-- Open Graph / Social sharing -->
<meta property="og:type" content="website">
<meta property="og:site_name" content="24/7 Austin Garage Doors">
<meta property="og:title" content="24/7 Austin Garage Doors — Emergency Repair, Travis County TX">
<meta property="og:description" content="Live dispatcher every hour. Same-day arrival across Travis County. Honest pricing before the wrench comes out. (512) 270-0448.">
<meta property="og:url" content="https://247austingaragedoors.com/">
<meta property="og:locale" content="en_US">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="24/7 Austin Garage Doors — Emergency Repair">
<meta name="twitter:description" content="Live dispatcher every hour. Same-day arrival. (512) 270-0448.">

<!-- Inline SVG favicon — prevents a 404 in browser dev tools -->
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' fill='%230a0f1a' rx='10'/%3E%3Ctext x='32' y='42' text-anchor='middle' font-family='system-ui,sans-serif' font-weight='900' font-size='28' fill='%23ff6b1a'%3E24%2F7%3C/text%3E%3C/svg%3E">
<link rel="apple-touch-icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' fill='%230a0f1a' rx='10'/%3E%3Ctext x='32' y='42' text-anchor='middle' font-family='system-ui,sans-serif' font-weight='900' font-size='28' fill='%23ff6b1a'%3E24%2F7%3C/text%3E%3C/svg%3E">

<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700;800;900&family=Manrope:wght@400;500;600;700;800&display=swap" rel="stylesheet">

<!-- Structured data for local search -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "@id": "https://247austingaragedoors.com/#business",
  "name": "24/7 Austin Garage Doors",
  "url": "https://247austingaragedoors.com/",
  "telephone": "+15122700448",
  "priceRange": "$$",
  "description": "24/7 emergency garage door repair across Austin and Travis County, Texas. Broken springs, off-track doors, opener repair, cables, rollers, and weather seal.",
  "openingHoursSpecification": {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],
    "opens": "00:00",
    "closes": "23:59"
  },
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "addressCountry": "US"
  },
  "areaServed": [
    {"@type":"City","name":"Austin","containedInPlace":{"@type":"AdministrativeArea","name":"Travis County, Texas"}},
    {"@type":"City","name":"Pflugerville"},
    {"@type":"City","name":"Bee Cave"},
    {"@type":"City","name":"Lakeway"},
    {"@type":"City","name":"Lago Vista"},
    {"@type":"City","name":"Jonestown"},
    {"@type":"City","name":"Manor"},
    {"@type":"City","name":"West Lake Hills"},
    {"@type":"City","name":"Rollingwood"},
    {"@type":"City","name":"Sunset Valley"},
    {"@type":"City","name":"Volente"},
    {"@type":"City","name":"Briarcliff"},
    {"@type":"City","name":"Point Venture"},
    {"@type":"City","name":"San Leanna"},
    {"@type":"City","name":"Webberville"},
    {"@type":"City","name":"Creedmoor"},
    {"@type":"City","name":"Mustang Ridge"}
  ],
  "serviceType": [
    "Garage Door Repair",
    "Garage Door Spring Replacement",
    "Garage Door Opener Repair",
    "Garage Door Cable Replacement",
    "Off-Track Garage Door Repair",
    "Emergency Garage Door Service"
  ]
}
</script>

<style>
:root {
  --bg: #0a0f1a;
  --bg-2: #131a2a;
  --bg-3: #1c2438;
  --ink: #f6efe2;
  --ink-dim: #b8b3a8;
  --orange: #ff6b1a;
  --orange-bright: #ff8540;
  --orange-glow: rgba(255, 107, 26, 0.25);
  --rule: rgba(246, 239, 226, 0.12);
  --maxw: 1180px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: 80px;
  background: #0a0f1a;
}
body {
  background: var(--bg);
  color: var(--ink);
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.55;
  font-weight: 400;
  overflow-x: hidden;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }

body::before {
  content: '';
  position: fixed;
  inset: 0;
  background:
    radial-gradient(ellipse 1200px 600px at 20% -10%, rgba(255,107,26,0.10), transparent 60%),
    radial-gradient(ellipse 800px 400px at 100% 100%, rgba(255,107,26,0.06), transparent 60%);
  pointer-events: none;
  z-index: 0;
}
body > * { position: relative; z-index: 1; }

/* Header */
header {
  position: sticky;
  top: 0;
  background: rgba(10, 15, 26, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--rule);
  z-index: 50;
}
.head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 24px;
  max-width: var(--maxw);
  margin: 0 auto;
  gap: 16px;
}
.brand {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 900;
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.brand .num { color: var(--orange); }
.callbtn {
  background: var(--orange);
  color: #100802;
  padding: 12px 18px;
  border-radius: 4px;
  font-weight: 800;
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 4px 20px var(--orange-glow);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.callbtn:hover { transform: translateY(-1px); box-shadow: 0 6px 26px rgba(255,107,26,0.4); }
.callbtn .ph { font-family: 'Big Shoulders Display', sans-serif; font-size: 18px; letter-spacing: 0.04em; }

/* Hero */
.hero { padding: 80px 0 100px; position: relative; }
.tag {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 28px;
  animation: fadeUp 0.6s 0.05s both;
}
.tag::before {
  content: '';
  width: 10px;
  height: 10px;
  background: var(--orange);
  border-radius: 50%;
  box-shadow: 0 0 14px var(--orange);
  animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(0.85); }
}
.hero h1 {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 900;
  font-size: clamp(48px, 9vw, 132px);
  line-height: 0.88;
  text-transform: uppercase;
  letter-spacing: -0.015em;
  margin-bottom: 28px;
  animation: fadeUp 0.7s 0.1s both;
}
.hero h1 .accent { color: var(--orange); display: block; }
.hero .sub {
  max-width: 620px;
  color: var(--ink-dim);
  font-size: clamp(17px, 1.8vw, 21px);
  margin-bottom: 40px;
  animation: fadeUp 0.7s 0.2s both;
}
.hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; animation: fadeUp 0.7s 0.3s both; }
.cta-primary, .cta-secondary {
  padding: 18px 28px;
  border-radius: 4px;
  font-weight: 800;
  font-size: 16px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: all 0.15s ease;
  cursor: pointer;
}
.cta-primary {
  background: var(--orange);
  color: #100802;
  box-shadow: 0 8px 30px var(--orange-glow);
}
.cta-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 40px rgba(255,107,26,0.45); }
.cta-primary .ph { font-family: 'Big Shoulders Display', sans-serif; font-size: 22px; letter-spacing: 0.04em; }
.cta-secondary {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--rule);
}
.cta-secondary:hover { border-color: var(--orange); color: var(--orange); }

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Marquee */
.marquee {
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  padding: 22px 0;
  background: var(--bg-2);
  overflow: hidden;
}
.marquee-track {
  display: flex;
  gap: 60px;
  white-space: nowrap;
  animation: scroll 35s linear infinite;
}
.marquee span {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 800;
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-dim);
}
.marquee span::after {
  content: '◆';
  color: var(--orange);
  margin-left: 60px;
  font-size: 14px;
}
@keyframes scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Sections */
section { padding: 100px 0; }
#services { scroll-margin-top: 80px; }
.eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 16px;
}
h2.section-title {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 900;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 0.95;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom: 18px;
  max-width: 760px;
}
.section-sub {
  color: var(--ink-dim);
  max-width: 640px;
  margin-bottom: 60px;
  font-size: 18px;
}

/* Services grid */
.svc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: 6px;
  overflow: hidden;
}
.svc {
  background: var(--bg);
  padding: 36px 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: background 0.2s ease;
}
.svc:hover { background: var(--bg-2); }
.svc-num {
  font-family: 'Big Shoulders Display', sans-serif;
  font-size: 14px;
  font-weight: 800;
  color: var(--orange);
  letter-spacing: 0.1em;
}
.svc h3 {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 800;
  font-size: 26px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -0.005em;
}
.svc p { color: var(--ink-dim); font-size: 15px; line-height: 1.55; }

/* Why us */
.why { background: var(--bg-2); }
.why-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 40px 36px;
  margin-top: 40px;
}
.why-item { border-top: 1px solid var(--rule); padding-top: 24px; }
.why-big {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 900;
  font-size: 80px;
  line-height: 0.85;
  color: var(--orange);
  margin-bottom: 12px;
}
.why-item h4 {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 800;
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  margin-bottom: 8px;
}
.why-item p { color: var(--ink-dim); font-size: 15px; }

/* Service area */
.area-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 2px;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: 6px;
  overflow: hidden;
  margin-top: 24px;
}
.area {
  background: var(--bg);
  padding: 18px 20px;
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 700;
  font-size: 18px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--ink);
  transition: all 0.2s ease;
}
.area::before {
  content: '◆';
  color: var(--orange);
  font-size: 9px;
  margin-right: 10px;
  vertical-align: middle;
}
.area:hover { background: var(--bg-3); }

/* Process */
.process-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 36px;
  margin-top: 40px;
}
.step { padding-top: 28px; border-top: 2px solid var(--orange); }
.step-num {
  font-family: 'Big Shoulders Display', sans-serif;
  font-size: 13px;
  font-weight: 800;
  color: var(--orange);
  letter-spacing: 0.18em;
  margin-bottom: 14px;
}
.step h4 {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 800;
  font-size: 24px;
  text-transform: uppercase;
  letter-spacing: -0.005em;
  margin-bottom: 8px;
  line-height: 1;
}
.step p { color: var(--ink-dim); font-size: 15px; }

/* Final CTA */
.final {
  background: var(--bg-2);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  text-align: center;
  padding: 100px 24px;
}
.final h2 {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 900;
  font-size: clamp(38px, 7vw, 88px);
  line-height: 0.9;
  text-transform: uppercase;
  letter-spacing: -0.015em;
  margin-bottom: 28px;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.final h2 .accent { color: var(--orange); }
.final-phone {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 900;
  font-size: clamp(48px, 8vw, 92px);
  line-height: 1;
  color: var(--orange);
  letter-spacing: 0.01em;
  margin: 20px 0 36px;
  display: inline-block;
  text-shadow: 0 0 60px var(--orange-glow);
  transition: color 0.15s ease;
}
.final-phone:hover { color: var(--orange-bright); }
.final p { color: var(--ink-dim); max-width: 540px; margin: 0 auto; font-size: 17px; }

/* Footer */
footer { padding: 50px 0 60px; }
.foot {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 40px;
}
.foot h5 {
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 800;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--orange);
  margin-bottom: 16px;
}
.foot p, .foot li { color: var(--ink-dim); font-size: 14px; line-height: 1.8; }
.foot ul { list-style: none; }
.foot a:hover { color: var(--orange); }
.copy {
  border-top: 1px solid var(--rule);
  padding-top: 24px;
  color: var(--ink-dim);
  font-size: 13px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

/* Mobile */
@media (max-width: 720px) {
  .head { padding: 12px 16px; gap: 10px; }
  .brand { font-size: 17px; }
  .callbtn { padding: 10px 14px; font-size: 13px; }
  .callbtn .ph { font-size: 15px; }
  .hero { padding: 60px 0 70px; }
  section { padding: 70px 0; }
  .wrap { padding: 0 18px; }
  .foot { grid-template-columns: 1fr; gap: 32px; }
  .why-big { font-size: 56px; }
  .final { padding: 70px 18px; }
}

/* Sticky mobile call bar */
.stickycall {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: var(--orange);
  color: #100802;
  text-align: center;
  padding: 14px;
  padding-bottom: calc(14px + env(safe-area-inset-bottom));
  font-family: 'Big Shoulders Display', sans-serif;
  font-weight: 900;
  font-size: 22px;
  letter-spacing: 0.02em;
  z-index: 100;
  box-shadow: 0 -4px 24px rgba(0,0,0,0.4);
}
@media (max-width: 720px) {
  .stickycall { display: block; }
  footer { padding-bottom: 90px; }
}

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
</style>
</head>
<body>

<header>
  <div class="head">
    <div class="brand"><span class="num">24/7</span>Austin Garage Doors</div>
    <a href="tel:+15122700448" class="callbtn" aria-label="Call (512) 270-0448"><span class="ph">(512) 270-0448</span></a>
  </div>
</header>

<main>
<section class="hero">
  <div class="wrap">
    <p class="tag">Live dispatcher · Any hour · Travis County</p>
    <h1>Broken at midnight?<span class="accent">We pick up.</span></h1>
    <p class="sub">When the spring snaps, the door's stuck, or the opener dies — call a local crew that actually answers the phone at 2 a.m. Same-day arrival across Travis County. Honest pricing before the wrench comes out.</p>
    <div class="hero-ctas">
      <a href="tel:+15122700448" class="cta-primary" aria-label="Call (512) 270-0448"><span class="ph">CALL (512) 270-0448</span></a>
      <a href="#services" class="cta-secondary">What we fix →</a>
    </div>
  </div>
</section>

<div class="marquee" aria-hidden="true">
  <div class="marquee-track">
    <span>Broken Springs</span><span>Off-Track Doors</span><span>Snapped Cables</span><span>Opener Repair</span><span>24/7 Emergency</span><span>Same-Day Service</span><span>Locally Operated</span><span>Fully Insured</span>
    <span>Broken Springs</span><span>Off-Track Doors</span><span>Snapped Cables</span><span>Opener Repair</span><span>24/7 Emergency</span><span>Same-Day Service</span><span>Locally Operated</span><span>Fully Insured</span>
  </div>
</div>

<section id="services">
  <div class="wrap">
    <p class="eyebrow">What we fix</p>
    <h2 class="section-title">Every common — and uncommon — garage door problem.</h2>
    <p class="section-sub">Most repairs are done in a single visit because the trucks roll stocked with springs, cables, rollers, gear kits, and the right parts to finish the job tonight.</p>

    <div class="svc-grid">
      <article class="svc">
        <span class="svc-num">01</span>
        <h3>Broken Springs</h3>
        <p>The single most common emergency call. We carry standard wire sizes for 7' and 8' residential doors and finish most spring jobs in 45 minutes.</p>
      </article>
      <article class="svc">
        <span class="svc-num">02</span>
        <h3>Off-Track Doors</h3>
        <p>Door jumped the rails or won't close all the way? We re-rail, replace bent track, and rebalance the door before we leave.</p>
      </article>
      <article class="svc">
        <span class="svc-num">03</span>
        <h3>Cable Replacement</h3>
        <p>Frayed or snapped lift cables make a door dangerous to operate. New galvanized cable pairs installed and tensioned correctly.</p>
      </article>
      <article class="svc">
        <span class="svc-num">04</span>
        <h3>Opener Repair</h3>
        <p>Stripped gears, blown logic boards, dead capacitors, drifted safety eyes. LiftMaster, Genie, Chamberlain, Craftsman — we know them all.</p>
      </article>
      <article class="svc">
        <span class="svc-num">05</span>
        <h3>Rollers &amp; Hinges</h3>
        <p>Quiet 10-ball nylon roller upgrades and replacement hinges that bring an old, noisy door back to smooth and silent.</p>
      </article>
      <article class="svc">
        <span class="svc-num">06</span>
        <h3>Weather Seal</h3>
        <p>Bottom seal, side jamb, and threshold seals — keep the wind, rain, dust, and Texas bugs where they belong: outside.</p>
      </article>
    </div>
  </div>
</section>

<section class="why">
  <div class="wrap">
    <p class="eyebrow">Why Austin calls us first</p>
    <h2 class="section-title">A real human answers. A stocked truck shows up. The price is what we quoted.</h2>

    <div class="why-grid">
      <div class="why-item">
        <div class="why-big">24/7</div>
        <h4>Actually 24/7</h4>
        <p>Not a voicemail. Not a "we'll call back Monday." A live dispatcher every hour of every day.</p>
      </div>
      <div class="why-item">
        <div class="why-big">60<span style="font-size:0.5em">min</span></div>
        <h4>Fast Arrival</h4>
        <p>Most of Travis County reached in under an hour. We'll tell you a real ETA when you call — no padding.</p>
      </div>
      <div class="why-item">
        <div class="why-big">1<span style="font-size:0.5em">visit</span></div>
        <h4>Single-Visit Repairs</h4>
        <p>Trucks roll fully stocked with springs, cables, rollers, hinges, gear kits, and the right hardware.</p>
      </div>
      <div class="why-item">
        <div class="why-big">$0</div>
        <h4>Quote First, Always</h4>
        <p>Written quote before any wrench touches the door. If you say no, you walk away with no work done — and no surprise bill.</p>
      </div>
    </div>
  </div>
</section>

<section>
  <div class="wrap">
    <p class="eyebrow">Service Area</p>
    <h2 class="section-title">Serving every city in Travis County.</h2>
    <p class="section-sub">From downtown Austin to the lakeside towns, the eastern farmland, and the Hill Country edge — if you're in Travis County, we'll be there.</p>

    <div class="area-grid">
      <div class="area">Austin</div>
      <div class="area">Pflugerville</div>
      <div class="area">Lakeway</div>
      <div class="area">Bee Cave</div>
      <div class="area">West Lake Hills</div>
      <div class="area">Rollingwood</div>
      <div class="area">Lago Vista</div>
      <div class="area">Jonestown</div>
      <div class="area">Manor</div>
      <div class="area">Sunset Valley</div>
      <div class="area">Volente</div>
      <div class="area">Briarcliff</div>
      <div class="area">Point Venture</div>
      <div class="area">San Leanna</div>
      <div class="area">Webberville</div>
      <div class="area">Creedmoor</div>
      <div class="area">Mustang Ridge</div>
      <div class="area">Tarrytown</div>
      <div class="area">Westlake</div>
      <div class="area">Hyde Park</div>
      <div class="area">Mueller</div>
      <div class="area">Zilker</div>
      <div class="area">South Congress</div>
      <div class="area">East Austin</div>
      <div class="area">North Loop</div>
      <div class="area">Travis Heights</div>
      <div class="area">Allandale</div>
      <div class="area">Crestview</div>
    </div>
  </div>
</section>

<section style="background: var(--bg-2);">
  <div class="wrap">
    <p class="eyebrow">How it works</p>
    <h2 class="section-title">Four steps. No surprises.</h2>

    <div class="process-list">
      <div class="step">
        <div class="step-num">STEP 01</div>
        <h4>Call</h4>
        <p>Tell us what's wrong. We give you an honest arrival window — not a "between 9 and 5."</p>
      </div>
      <div class="step">
        <div class="step-num">STEP 02</div>
        <h4>Diagnose</h4>
        <p>Tech arrives, inspects the door, and identifies what's broken and what isn't.</p>
      </div>
      <div class="step">
        <div class="step-num">STEP 03</div>
        <h4>Quote</h4>
        <p>Written, itemized price on your phone. You approve before we touch anything.</p>
      </div>
      <div class="step">
        <div class="step-num">STEP 04</div>
        <h4>Fix &amp; Test</h4>
        <p>Repair, rebalance, test five times. Tap-to-pay on the truck. Receipt by email.</p>
      </div>
    </div>
  </div>
</section>

<section class="final">
  <p class="eyebrow">Call now — open right now</p>
  <h2>Whatever broke,<span class="accent"> we'll fix it tonight.</span></h2>
  <a href="tel:+15122700448" class="final-phone" aria-label="Call (512) 270-0448">(512) 270-0448</a>
  <p>Locally operated · Fully insured · Live dispatcher every hour of every day · Travis County wide</p>
</section>
</main>

<footer>
  <div class="wrap">
    <div class="foot">
      <div>
        <h5>24/7 Austin Garage Doors</h5>
        <p>Local emergency garage door repair across Austin and Travis County. Broken springs, off-track doors, opener repair, cables, rollers, weather seal, and full installations. Locally operated and fully insured.</p>
      </div>
      <div>
        <h5>Contact</h5>
        <ul>
          <li><a href="tel:+15122700448">(512) 270-0448</a></li>
          <li>Open 24 hours, 7 days</li>
          <li>Live dispatcher always</li>
          <li>Austin, TX</li>
        </ul>
      </div>
      <div>
        <h5>Services</h5>
        <ul>
          <li>Spring replacement</li>
          <li>Cable replacement</li>
          <li>Opener repair</li>
          <li>Off-track / re-rail</li>
          <li>Roller &amp; hinge replacement</li>
          <li>Weather seal</li>
          <li>Tune-up &amp; maintenance</li>
        </ul>
      </div>
    </div>
    <div class="copy">
      <span>© <span id="yr">2026</span> 24/7 Austin Garage Doors. All rights reserved.</span>
      <span>Serving Travis County, Texas.</span>
    </div>
  </div>
</footer>

<a href="tel:+15122700448" class="stickycall" aria-label="Call (512) 270-0448">CALL NOW · (512) 270-0448</a>

<script>
  document.getElementById('yr').textContent = new Date().getFullYear();
  document.querySelectorAll('a[href^="#"]').forEach(function (link) {
    link.addEventListener('click', function (e) {
      var id = this.getAttribute('href').slice(1);
      if (!id) return;
      var target = document.getElementById(id);
      if (target) {
        e.preventDefault();
        target.scrollIntoView({ behavior: 'smooth', block: 'start' });
        history.replaceState(null, '', '#' + id);
      }
    });
  });
</script>

</body>
</html>
