/* ============================================
   Amy's Locksmiths — Main Stylesheet
   Navy · Gold · Orange | Mobile-First
   ============================================ */

/* Custom Properties */
:root {
  --navy:        #12264F;
  --navy-mid:    #1c3669;
  --navy-light:  #2a4a8a;
  --gold:        #C9A84C;
  --gold-light:  #e0c070;
  --orange:      #E8851A;
  --orange-dark: #C97015;
  --white:       #ffffff;
  --off-white:   #F8F9FB;
  --light-grey:  #f0f2f5;
  --mid-grey:    #9ca3af;
  --dark-grey:   #4b5563;
  --text:        #1a1a2e;
  --border:      #e5e7eb;

  --font-head: 'Montserrat', sans-serif;
  --font-body: 'Open Sans', sans-serif;

  --shadow-sm:  0 1px 3px rgba(0,0,0,.10);
  --shadow-md:  0 4px 12px rgba(0,0,0,.12);
  --shadow-lg:  0 8px 30px rgba(0,0,0,.15);
  --shadow-xl:  0 20px 60px rgba(0,0,0,.20);

  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 16px;
  --r-xl: 24px;

  --ease: all 0.3s ease;
}

/* ── Reset ─────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html  { scroll-behavior: smooth; font-size: 16px; overflow-x: hidden; }
body  { font-family: var(--font-body); color: var(--text); background: var(--white); line-height: 1.6; overflow-x: hidden; }
h1,h2,h3 { overflow-wrap: break-word; }
img   { max-width: 100%; height: auto; display: block; }
a     { text-decoration: none; color: inherit; transition: var(--ease); }
ul    { list-style: none; }
h1,h2,h3,h4,h5 { font-family: var(--font-head); font-weight: 700; line-height: 1.2; color: var(--navy); }
h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.6rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.5rem); }
p  { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }

/* ── Layout utilities ───────────────────────── */
.container        { width:100%; max-width:1200px; margin:0 auto; padding:0 20px; }
.container-narrow { max-width:800px; margin:0 auto; padding:0 20px; }
.section    { padding:80px 0; }
.section-sm { padding:48px 0; }
.section-lg { padding:100px 0; }
.section-header { text-align:center; margin-bottom:56px; }
.section-header h2 { margin-bottom:16px; }
.section-header p  { font-size:1.1rem; color:var(--dark-grey); max-width:640px; margin:0 auto; }
.section-label { display:inline-block; font-family:var(--font-head); font-weight:600; font-size:.8rem; letter-spacing:2px; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.divider       { width:64px; height:4px; background:linear-gradient(90deg,var(--gold),var(--orange)); border-radius:2px; margin:16px auto; }
.divider-left  { margin-left:0; }

/* ── Background helpers ─────────────────────── */
.bg-navy        { background:var(--navy);     color:var(--white); }
.bg-navy-mid    { background:var(--navy-mid); color:var(--white); }
.bg-light       { background:var(--off-white); }
.bg-navy     h1,.bg-navy     h2,.bg-navy     h3 { color:var(--white); }
.bg-navy-mid h1,.bg-navy-mid h2,.bg-navy-mid h3 { color:var(--white); }

/* ── Buttons ────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 28px; border-radius:var(--r-md);
  font-family:var(--font-head); font-weight:700; font-size:1rem;
  border:2px solid transparent; cursor:pointer; white-space:nowrap;
  text-align:center; transition:var(--ease);
}
.btn-primary   { background:var(--orange);  border-color:var(--orange);  color:var(--white); }
.btn-primary:hover  { background:var(--orange-dark); border-color:var(--orange-dark); transform:translateY(-2px); box-shadow:0 8px 20px rgba(232,133,26,.4); }
.btn-secondary { background:transparent; border-color:var(--white); color:var(--white); }
.btn-secondary:hover { background:var(--white); color:var(--navy); transform:translateY(-2px); }
.btn-navy   { background:var(--navy); border-color:var(--navy); color:var(--white); }
.btn-navy:hover   { background:var(--navy-mid); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-gold   { background:var(--gold); border-color:var(--gold); color:var(--navy); }
.btn-gold:hover   { background:var(--gold-light); transform:translateY(-2px); }
.btn-lg { padding:18px 36px; font-size:1.1rem; }
.btn-sm { padding:10px 20px; font-size:.9rem; }

/* Pulse animation */
@keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(232,133,26,.7)} 70%{box-shadow:0 0 0 14px rgba(232,133,26,0)} 100%{box-shadow:0 0 0 0 rgba(232,133,26,0)} }
.btn-pulse { animation:pulse 2s infinite; }

/* ── HEADER ─────────────────────────────────── */
.site-header {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:16px 0; transition:var(--ease);
}
.site-header.scrolled {
  background:var(--navy);
  box-shadow:0 2px 20px rgba(0,0,0,.3);
  padding:10px 0;
}
.header-inner {
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.header-logo img { height:60px; width:auto; border-radius:var(--r-sm); display:block; }
.site-header.scrolled .header-logo img { height:50px; }

.main-nav { display:flex; align-items:center; gap:4px; }
.main-nav > a {
  color:var(--white); font-family:var(--font-head); font-weight:600; font-size:.875rem;
  padding:8px 12px; border-radius:var(--r-sm); opacity:.9;
}
.main-nav > a:hover { opacity:1; background:rgba(255,255,255,.1); }

/* Dropdown */
.nav-dropdown       { position:relative; }
.nav-dropdown > a   { display:flex; align-items:center; gap:4px; }
.dropdown-menu {
  position:absolute; top:calc(100% + 8px); left:0; background:var(--white);
  border-radius:var(--r-md); box-shadow:var(--shadow-lg); min-width:230px;
  opacity:0; visibility:hidden; transform:translateY(-8px); transition:var(--ease);
  padding:8px 0; border:1px solid var(--border); z-index:100;
}
.nav-dropdown:hover .dropdown-menu { opacity:1; visibility:visible; transform:translateY(0); }
.dropdown-menu a {
  display:block; padding:10px 18px; color:var(--text);
  font-size:.875rem; font-family:var(--font-head); font-weight:600;
}
.dropdown-menu a:hover { background:var(--off-white); color:var(--navy); }

.header-phone {
  display:flex; align-items:center; gap:6px;
  color:var(--white); font-family:var(--font-head); font-weight:700; font-size:1rem;
}
.header-phone:hover { color:var(--gold); }

.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; }
.hamburger span { display:block; width:25px; height:2px; background:var(--white); border-radius:2px; transition:var(--ease); }
.hamburger.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hamburger.active span:nth-child(2) { opacity:0; }
.hamburger.active span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* ── MOBILE NAV ─────────────────────────────── */
.mobile-nav {
  position:fixed; inset:0; background:var(--navy); z-index:999;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  transform:translateX(100%); transition:transform .4s cubic-bezier(.25,.46,.45,.94);
  padding:80px 24px 80px; gap:0; overflow-y:auto;
}
.mobile-nav.open { transform:translateX(0); }
.mobile-nav a {
  color:var(--white); font-family:var(--font-head); font-weight:700; font-size:1.3rem;
  padding:16px 0; border-bottom:1px solid rgba(255,255,255,.1); width:100%; text-align:center;
}
.mobile-nav a:last-of-type { border-bottom:none; }
.mobile-nav a:hover { color:var(--gold); }
.mobile-nav-ctas { margin-top:32px; display:flex; flex-direction:column; gap:12px; width:100%; }
.mobile-nav-ctas .btn { justify-content:center; }

/* ── STICKY CALL BAR ────────────────────────── */
.sticky-call-bar {
  display:none; position:fixed; bottom:0; left:0; right:0; z-index:998;
  background:var(--orange);
}
.sticky-call-bar a {
  display:flex; align-items:center; justify-content:center; gap:10px;
  padding:16px; color:var(--white); font-family:var(--font-head); font-weight:700; font-size:1.1rem;
}

/* ── HERO ───────────────────────────────────── */
.hero {
  position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0;
  background-image:url('../amy%26simon.png');
  background-size:cover; background-position:center top;
  will-change:transform;
}
.hero-bg::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(12,24,65,.93) 0%, rgba(18,38,79,.85) 55%, rgba(12,24,65,.78) 100%);
}
.hero-content { position:relative; z-index:1; max-width:760px; padding:130px 0 90px; }

.hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(201,168,76,.15); border:1px solid rgba(201,168,76,.4);
  border-radius:100px; padding:8px 18px; margin-bottom:24px;
  color:var(--gold); font-size:.85rem; font-weight:600; font-family:var(--font-head); letter-spacing:.5px;
}
.hero h1         { color:var(--white); margin-bottom:18px; text-shadow:0 2px 10px rgba(0,0,0,.3); }
.hero h1 em      { font-style:normal; color:var(--gold); }
.hero-sub        { color:rgba(255,255,255,.88); font-size:1.15rem; line-height:1.75; margin-bottom:10px; }
.hero-timing     { display:inline-flex; align-items:center; gap:8px; color:var(--gold-light); font-family:var(--font-head); font-weight:600; font-size:1rem; margin-bottom:36px; }
.hero-trust      { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:40px; }
.trust-pill {
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(8px); border-radius:100px; padding:8px 16px;
  color:var(--white); font-size:.85rem; font-weight:600; font-family:var(--font-head);
}
.trust-pill i { color:var(--gold); font-size:.8rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.hero-rating  { display:flex; align-items:center; gap:6px; color:rgba(255,255,255,.65); font-size:.875rem; margin-top:22px; }
.hero-rating .stars { color:var(--gold); }

@keyframes bounce-down {
  0%,20%,50%,80%,100%{transform:translateX(-50%) translateY(0)}
  40%{transform:translateX(-50%) translateY(-8px)}
  60%{transform:translateX(-50%) translateY(-4px)}
}
.hero-scroll { position:absolute; bottom:36px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:6px; color:rgba(255,255,255,.4); font-size:.7rem; font-family:var(--font-head); letter-spacing:2px; text-transform:uppercase; animation:bounce-down 2.5s infinite; }

/* ── TRUST BAR ──────────────────────────────── */
.trust-bar { background:var(--navy); padding:20px 0; border-bottom:3px solid var(--gold); }
.trust-bar-inner { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; }
.trust-item {
  display:flex; align-items:center; gap:10px; padding:10px 28px;
  border-right:1px solid rgba(255,255,255,.12);
  color:var(--white); font-family:var(--font-head); font-weight:600; font-size:.9rem;
}
.trust-item:last-child { border-right:none; }
.trust-item i { color:var(--gold); font-size:1.2rem; }

/* ── SERVICES ───────────────────────────────── */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.service-card {
  background:var(--white); border-radius:var(--r-lg); padding:36px 28px;
  border:1px solid var(--border); transition:var(--ease); position:relative;
  overflow:hidden; display:flex; flex-direction:column;
}
.service-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg,var(--navy),var(--gold));
  transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.service-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--gold); }
.service-card:hover::before { transform:scaleX(1); }
.service-icon {
  width:64px; height:64px; background:linear-gradient(135deg,var(--navy),var(--navy-mid));
  border-radius:var(--r-md); display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:1.5rem; margin-bottom:22px; flex-shrink:0;
}
.service-card h3   { margin-bottom:12px; font-size:1.1rem; }
.service-card p    { color:var(--dark-grey); font-size:.925rem; line-height:1.65; flex-grow:1; }
.service-card-link { display:inline-flex; align-items:center; gap:6px; color:var(--navy); font-weight:700; font-family:var(--font-head); font-size:.875rem; margin-top:20px; }
.service-card-link:hover { color:var(--orange); gap:10px; }

/* ── ABOUT ──────────────────────────────────── */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.about-image-wrap { position:relative; }
.about-image-wrap img { border-radius:var(--r-xl); width:100%; object-fit:cover; max-height:580px; box-shadow:var(--shadow-xl); }
.about-badge { position:absolute; bottom:-24px; right:-24px; width:150px; height:150px; }
.about-badge img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 8px 20px rgba(0,0,0,.25)); }
.about-content .section-label { display:block; }
.about-content h2  { margin-bottom:18px; }
.about-content > p { color:var(--dark-grey); font-size:1.05rem; line-height:1.8; margin-bottom:22px; }
.about-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:28px 0; padding:24px; background:var(--off-white); border-radius:var(--r-lg); border:1px solid var(--border); }
.stat-item   { text-align:center; }
.stat-number { display:block; font-family:var(--font-head); font-size:2rem; font-weight:800; color:var(--navy); line-height:1; margin-bottom:4px; }
.stat-label  { font-size:.75rem; color:var(--mid-grey); font-weight:600; text-transform:uppercase; letter-spacing:.5px; font-family:var(--font-head); }
.checkmark-list    { display:flex; flex-direction:column; gap:10px; margin:20px 0; }
.checkmark-list li { display:flex; align-items:flex-start; gap:10px; font-size:.95rem; color:var(--dark-grey); }
.checkmark-list li i { color:var(--gold); margin-top:3px; flex-shrink:0; }

/* ── WHY US ─────────────────────────────────── */
.why-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:20px; }
.why-card {
  text-align:center; padding:32px 16px; border-radius:var(--r-lg);
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); transition:var(--ease);
}
.why-card:hover { background:rgba(255,255,255,.1); transform:translateY(-4px); }
.why-icon { width:64px; height:64px; background:var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 16px; color:var(--navy); font-size:1.4rem; }
.why-card h4 { color:var(--white); font-size:.95rem; margin-bottom:8px; }
.why-card p  { color:rgba(255,255,255,.6); font-size:.825rem; line-height:1.55; margin:0; }

/* ── HOW IT WORKS ───────────────────────────── */
.steps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; position:relative; }
.steps-grid::before {
  content:''; position:absolute; top:35px;
  left:calc(16.67% + 16px); right:calc(16.67% + 16px);
  height:2px; background:linear-gradient(90deg,var(--navy),var(--gold),var(--navy)); opacity:.25;
}
.step { text-align:center; }
.step-number { width:72px; height:72px; background:var(--white); border:3px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 24px; font-family:var(--font-head); font-size:1.5rem; font-weight:800; color:var(--navy); position:relative; z-index:1; }
.step h3 { margin-bottom:12px; font-size:1.1rem; }
.step p  { color:var(--dark-grey); font-size:.925rem; margin:0; }

/* ── REVIEWS ────────────────────────────────── */
.reviews-rating-summary { display:flex; align-items:center; justify-content:center; gap:20px; margin-bottom:48px; flex-wrap:wrap; }
.reviews-rating-summary > a { flex-shrink:0; }
.rating-big    { font-family:var(--font-head); font-size:3.5rem; font-weight:800; color:var(--navy); line-height:1; }
.rating-detail { display:flex; flex-direction:column; gap:4px; }
.rating-stars  { color:var(--gold); font-size:1.2rem; }
.rating-sub    { font-size:.8rem; color:var(--mid-grey); }
.reviews-grid  { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.review-card   {
  background:var(--white); border-radius:var(--r-lg); padding:28px;
  border:1px solid var(--border); transition:var(--ease);
}
.review-card:hover { box-shadow:var(--shadow-md); transform:translateY(-4px); }
.review-stars  { color:var(--gold); margin-bottom:14px; letter-spacing:2px; }
.review-text   { color:var(--dark-grey); font-size:.925rem; line-height:1.7; margin-bottom:20px; font-style:italic; }
.review-author { display:flex; align-items:center; gap:12px; }
.review-avatar { width:44px; height:44px; background:var(--navy); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold); font-family:var(--font-head); font-weight:700; font-size:1rem; flex-shrink:0; }
.review-name   { font-family:var(--font-head); font-weight:700; font-size:.9rem; color:var(--navy); margin-bottom:2px; }
.review-loc    { font-size:.78rem; color:var(--mid-grey); }

/* ── SERVICE AREA ───────────────────────────── */
.area-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin-top:36px; }
.area-card {
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-md); padding:22px 14px; text-align:center;
  transition:var(--ease); display:block;
}
.area-card:hover { background:var(--gold); border-color:var(--gold); transform:translateY(-4px); }
.area-card i    { color:var(--gold); font-size:1.4rem; margin-bottom:8px; display:block; transition:var(--ease); }
.area-card:hover i { color:var(--navy); }
.area-name { color:var(--white); font-family:var(--font-head); font-weight:700; font-size:.9rem; transition:var(--ease); }
.area-card:hover .area-name { color:var(--navy); }
.area-sub  { color:rgba(255,255,255,.5); font-size:.78rem; margin-top:4px; transition:var(--ease); }
.area-card:hover .area-sub { color:rgba(18,38,79,.6); }

/* ── CTA BANNER ─────────────────────────────── */
.cta-banner { background:linear-gradient(135deg,var(--orange) 0%,var(--orange-dark) 100%); padding:72px 0; text-align:center; position:relative; overflow:hidden; }
.cta-banner::before { content:''; position:absolute; inset:0; background:url('../lockwork.png') center/cover; opacity:.06; }
.cta-banner-content { position:relative; z-index:1; }
.cta-banner h2 { color:var(--white); margin-bottom:12px; font-size:clamp(1.8rem,3.5vw,2.5rem); }
.cta-banner p  { color:rgba(255,255,255,.9); font-size:1.1rem; margin-bottom:32px; }
.cta-banner .cta-btns { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; }

/* ── BOOKING FORM ───────────────────────────── */
.booking-wrap { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.booking-info h2  { margin-bottom:16px; }
.booking-info > p { color:var(--dark-grey); margin-bottom:32px; font-size:1.05rem; line-height:1.75; }
.contact-methods  { display:flex; flex-direction:column; gap:14px; }
.contact-method   { display:flex; align-items:center; gap:16px; padding:16px 20px; background:var(--off-white); border-radius:var(--r-md); border:1px solid var(--border); transition:var(--ease); }
.contact-method:hover { background:var(--navy); border-color:var(--navy); }
.contact-method:hover .cm-text, .contact-method:hover .cm-label { color:var(--white); }
.cm-icon   { width:44px; height:44px; background:var(--navy); border-radius:var(--r-sm); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:1rem; flex-shrink:0; transition:var(--ease); }
.contact-method:hover .cm-icon { background:var(--gold); color:var(--navy); }
.cm-label  { font-size:.72rem; text-transform:uppercase; letter-spacing:1px; color:var(--mid-grey); font-family:var(--font-head); font-weight:600; transition:var(--ease); }
.cm-text   { font-family:var(--font-head); font-weight:700; color:var(--navy); font-size:1rem; transition:var(--ease); }
.booking-form-wrap { background:var(--white); border-radius:var(--r-xl); padding:40px; box-shadow:var(--shadow-xl); border:1px solid var(--border); }
.form-title { font-family:var(--font-head); font-weight:700; font-size:1.25rem; color:var(--navy); margin-bottom:24px; padding-bottom:16px; border-bottom:2px solid var(--border); }
.form-group { margin-bottom:20px; }
.form-group label { display:block; font-family:var(--font-head); font-weight:600; font-size:.875rem; color:var(--text); margin-bottom:6px; }
.form-group label span { color:var(--orange); }
.form-control {
  width:100%; padding:13px 16px; border:2px solid var(--border); border-radius:var(--r-md);
  font-family:var(--font-body); font-size:.95rem; color:var(--text);
  background:var(--white); transition:var(--ease); -webkit-appearance:none; appearance:none;
}
.form-control:focus { outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(18,38,79,.1); }
.form-control::placeholder { color:var(--mid-grey); }
select.form-control { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:40px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.urgency-options { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.urgency-option { position:relative; }
.urgency-option input[type="radio"] { position:absolute; opacity:0; width:0; height:0; }
.urgency-label { display:flex; flex-direction:column; align-items:center; gap:4px; padding:14px 8px; border:2px solid var(--border); border-radius:var(--r-md); cursor:pointer; transition:var(--ease); text-align:center; }
.urgency-label i    { font-size:1.3rem; color:var(--mid-grey); transition:var(--ease); }
.urgency-label span { font-family:var(--font-head); font-weight:600; font-size:.78rem; color:var(--dark-grey); transition:var(--ease); }
.urgency-option input:checked + .urgency-label { border-color:var(--orange); background:rgba(232,133,26,.05); }
.urgency-option input:checked + .urgency-label i,
.urgency-option input:checked + .urgency-label span { color:var(--orange); }
.form-note { font-size:.78rem; color:var(--mid-grey); text-align:center; margin-top:12px; }

/* ── FAQ ────────────────────────────────────── */
.faq-list   { max-width:800px; margin:0 auto; }
.faq-item   { border-bottom:1px solid var(--border); }
.faq-question {
  width:100%; text-align:left; padding:20px 0; background:none; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  font-family:var(--font-head); font-weight:600; font-size:1rem; color:var(--navy); transition:var(--ease);
}
.faq-question:hover { color:var(--orange); }
.faq-icon { width:28px; height:28px; background:var(--off-white); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:.8rem; color:var(--navy); transition:transform .3s, background .3s, color .3s; }
.faq-item.open .faq-icon { transform:rotate(45deg); background:var(--navy); color:var(--white); }
.faq-answer { overflow:hidden; max-height:0; transition:max-height .4s ease, padding .3s ease; }
.faq-item.open .faq-answer { max-height:300px; }
.faq-answer p { padding:0 0 20px; color:var(--dark-grey); line-height:1.75; font-size:.95rem; margin:0; }

/* ── FOOTER ─────────────────────────────────── */
.site-footer { background:var(--navy); color:var(--white); }
.footer-main { padding:64px 0 40px; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; }
.footer-brand img  { height:72px; margin-bottom:20px; border-radius:var(--r-sm); }
.footer-brand p    { color:rgba(255,255,255,.6); font-size:.9rem; line-height:1.7; margin-bottom:20px; }
.footer-brand-phone { display:flex; align-items:center; gap:8px; color:var(--gold); font-family:var(--font-head); font-weight:700; font-size:1.1rem; }
.footer-brand-phone:hover { color:var(--gold-light); }
.footer-heading { font-family:var(--font-head); font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--gold); margin-bottom:20px; }
.footer-links   { display:flex; flex-direction:column; gap:10px; }
.footer-links a { color:rgba(255,255,255,.6); font-size:.9rem; transition:var(--ease); }
.footer-links a:hover { color:var(--gold); padding-left:4px; }
.footer-bottom  { border-top:1px solid rgba(255,255,255,.1); padding:20px 0; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.footer-bottom p   { color:rgba(255,255,255,.4); font-size:.8rem; }
.footer-bottom-links { display:flex; gap:20px; }
.footer-bottom-links a { color:rgba(255,255,255,.4); font-size:.8rem; }
.footer-bottom-links a:hover { color:var(--gold); }
.footer-disclaimer { background:rgba(0,0,0,.2); padding:14px 0; border-top:1px solid rgba(255,255,255,.05); }
.footer-disclaimer p { color:rgba(255,255,255,.3); font-size:.72rem; text-align:center; margin:0; line-height:1.6; }

/* ── PAGE HERO (inner pages) ────────────────── */
.page-hero { background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%); padding:140px 0 80px; position:relative; overflow:hidden; }
.page-hero::before { content:''; position:absolute; top:-50%; right:-20%; width:600px; height:600px; background:radial-gradient(circle,rgba(201,168,76,.1) 0%,transparent 70%); pointer-events:none; }
.page-hero .section-label { display:block; margin-bottom:10px; }
.page-hero h1  { color:var(--white); margin-bottom:16px; }
.page-hero > .container > p { color:rgba(255,255,255,.8); font-size:1.1rem; max-width:600px; margin-bottom:28px; }
.breadcrumb    { display:flex; align-items:center; gap:8px; font-size:.875rem; color:rgba(255,255,255,.5); margin-top:16px; }
.breadcrumb a  { color:var(--gold); }
.breadcrumb i  { font-size:.65rem; }

/* ── SERVICE PAGE ───────────────────────────── */
.service-content { display:grid; grid-template-columns:1fr 340px; gap:48px; align-items:start; }
.service-body h2 { margin-bottom:16px; }
.service-body p  { color:var(--dark-grey); line-height:1.8; margin-bottom:20px; }
.service-features { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:32px 0; }
.service-feature  { display:flex; align-items:flex-start; gap:12px; padding:18px; background:var(--off-white); border-radius:var(--r-md); border:1px solid var(--border); }
.service-feature i { color:var(--navy); font-size:1rem; margin-top:2px; flex-shrink:0; }
.service-feature-text h4 { font-size:.9rem; margin-bottom:4px; }
.service-feature-text p  { font-size:.82rem; color:var(--dark-grey); margin:0; }
.service-sidebar { position:sticky; top:100px; }
.sidebar-cta   { background:var(--navy); border-radius:var(--r-xl); padding:32px; color:var(--white); margin-bottom:20px; }
.sidebar-cta h3 { color:var(--white); margin-bottom:8px; }
.sidebar-cta p  { color:rgba(255,255,255,.7); font-size:.9rem; margin-bottom:24px; }
.sidebar-cta .btn { width:100%; justify-content:center; margin-bottom:12px; }
.sidebar-areas   { background:var(--off-white); border-radius:var(--r-lg); padding:24px; border:1px solid var(--border); }
.sidebar-areas h4 { font-size:.8rem; text-transform:uppercase; letter-spacing:1px; color:var(--mid-grey); font-family:var(--font-head); margin-bottom:16px; }
.sidebar-area-list { display:flex; flex-direction:column; gap:6px; }
.sidebar-area-list a { display:flex; align-items:center; gap:8px; color:var(--navy); font-size:.875rem; font-weight:600; padding:8px 12px; border-radius:var(--r-sm); transition:var(--ease); }
.sidebar-area-list a:hover { background:var(--navy); color:var(--white); }
.sidebar-area-list a i { color:var(--gold); font-size:.8rem; }

/* ── ABOUT PAGE ─────────────────────────────── */
.about-page-intro { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.about-page-intro img { border-radius:var(--r-xl); box-shadow:var(--shadow-xl); }
.about-values { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; }
.value-card   { padding:28px; background:var(--off-white); border-radius:var(--r-lg); border:1px solid var(--border); text-align:center; }
.value-icon   { width:56px; height:56px; background:var(--navy); border-radius:var(--r-md); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:1.3rem; margin:0 auto 16px; }
.value-card h3 { font-size:1rem; margin-bottom:8px; }
.value-card p  { font-size:.875rem; color:var(--dark-grey); margin:0; }

/* ── BOOK PAGE ──────────────────────────────── */
.book-page-grid { display:grid; grid-template-columns:1fr 380px; gap:48px; align-items:start; }
.book-sidebar   { position:sticky; top:100px; }
.book-sidebar-box { background:var(--navy); border-radius:var(--r-xl); padding:32px; color:var(--white); margin-bottom:20px; }
.book-sidebar-box h3 { color:var(--white); margin-bottom:16px; font-size:1.1rem; }
.book-sidebar-box p  { color:rgba(255,255,255,.7); font-size:.9rem; line-height:1.65; margin-bottom:0; }
.book-sidebar-box .btn { width:100%; justify-content:center; margin-top:20px; }

/* ── FADE-IN ANIMATIONS ─────────────────────── */
.fade-in { opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease; }
.fade-in.visible { opacity:1; transform:translateY(0); }
.delay-1 { transition-delay:.1s; }
.delay-2 { transition-delay:.2s; }
.delay-3 { transition-delay:.3s; }
.delay-4 { transition-delay:.4s; }
.delay-5 { transition-delay:.5s; }

/* ── RESPONSIVE ─────────────────────────────── */
@media (max-width:1100px) {
  .why-grid  { grid-template-columns:repeat(3,1fr); }
  .footer-main { grid-template-columns:1fr 1fr; gap:32px; }
}
@media (max-width:900px) {
  .services-grid   { grid-template-columns:repeat(2,1fr); }
  .about-grid      { grid-template-columns:1fr; gap:40px; }
  .about-badge     { width:110px; height:110px; right:-10px; bottom:-10px; }
  .reviews-grid    { grid-template-columns:repeat(2,1fr); }
  .area-grid       { grid-template-columns:repeat(3,1fr); }
  .booking-wrap    { grid-template-columns:1fr; gap:40px; }
  .service-content { grid-template-columns:1fr; }
  .service-sidebar { position:static; }
  .service-features { grid-template-columns:1fr; }
  .steps-grid      { grid-template-columns:1fr; gap:24px; }
  .steps-grid::before { display:none; }
  .about-page-intro { grid-template-columns:1fr; }
  .about-values    { grid-template-columns:1fr 1fr; }
  .book-page-grid  { grid-template-columns:1fr; }
  .book-sidebar    { position:static; }
  .why-grid        { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px) {
  .section    { padding:56px 0; }
  .section-lg { padding:72px 0; }
  .main-nav, .header-phone { display:none; }
  .hamburger  { display:flex; }
  .sticky-call-bar { display:block; }
  body { padding-bottom:64px; }
  .hero-content  { padding:100px 0 60px; }
  .hero h1       { font-size:2.1rem; }
  .trust-bar-inner { justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; }
  .trust-item    { padding:12px 20px; white-space:nowrap; font-size:.825rem; }
  .services-grid { grid-template-columns:1fr; }
  .reviews-grid  { grid-template-columns:1fr; }
  .area-grid     { grid-template-columns:repeat(2,1fr); }
  .footer-main   { grid-template-columns:1fr; padding:40px 0 24px; gap:28px; }
  .footer-bottom { flex-direction:column; gap:10px; }
  .page-hero     { padding:120px 0 56px; }
  .booking-form-wrap { padding:24px; }
  .form-row      { grid-template-columns:1fr; }
  .about-values  { grid-template-columns:1fr; }
  .ratings-summary { flex-direction:column; align-items:center; gap:8px; }
  .about-stats   { gap:8px; }
  .stat-number   { font-size:1.6rem; }
  /* Mobile centering */
  .hero-content  { text-align:center; }
  .hero-actions  { justify-content:center; }
  .hero-trust    { justify-content:center; }
  .hero-rating   { justify-content:center; }
  .hero-timing   { justify-content:center; }
  .divider-left  { margin:16px auto; }
  .page-hero .container { text-align:center; }
  .page-hero > .container > p { margin-left:auto; margin-right:auto; }
  .breadcrumb    { justify-content:center; }
  .section-header h2, .section-header p { text-align:center; }
  .service-body h2, .service-body > p { text-align:center; }
  .service-feature { text-align:left; }
  .checkmark-list { text-align:left; }
}
@media (max-width:480px) {
  .hero-actions  { flex-direction:column; align-items:stretch; }
  .hero-actions .btn { justify-content:center; }
  .area-grid     { grid-template-columns:1fr 1fr; }
  .why-grid      { grid-template-columns:1fr; }
  .urgency-options { grid-template-columns:1fr; }
  .hero-trust    { gap:8px; }
  .trust-pill    { font-size:.78rem; padding:6px 12px; }
}
