/* =========================
   Rocktop Countertops CSS
   (Global video background + mobile polish)
   ========================= */

:root{
  --bg:#0f1012;          /* fallback bg if video fails */
  --text:#f6f7f8;
  --muted:#e9edf2;
  --accent:#8bd3ff;
}

/* Base */
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background: var(--bg);          /* keep as fallback only */
  line-height:1.5;
}

/* ===== Global background video & scrim ===== */
.site-video{
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  z-index: -2;              /* behind everything */
  pointer-events: none;
}
.site-scrim{
  position: fixed;
  inset: 0;
  z-index: -1;
  /* subtle global overlay so text/images read well over video */
  background:
    radial-gradient(1200px 800px at 80% -20%, rgba(255,255,255,.05), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.35) 100%);
  pointer-events:none;
}

/* ================= Hero ================= */
.hero{
  position:relative; isolation:isolate;
  min-height:72vh;
  display:grid; place-items:center;
  padding:4rem 1rem 2rem;
  overflow:visible; /* allow shadows to show */
  text-align:center;
}
/* remove old hero-only overlay */
.hero::after{ content:none; }

/* Card wrapper */
.profile{ width:min(1120px, 92vw); margin:0 auto; }
.hero-card{
  display:grid; gap:1rem; justify-items:center;
  background: rgba(255,255,255,.25);
  border: 1px solid rgba(255,255,255,.7);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius:22px;
  padding:2.2rem;
  box-shadow: 0 12px 32px rgba(0,0,0,.15);
}

/* Cover (optional) */
.cover{
  width:min(820px,92vw); aspect-ratio:16/9;
  border-radius:16px; overflow:hidden;
  border:1px solid rgba(255,255,255,.35);
  box-shadow: 0 10px 24px rgba(0,0,0,.15);
}
.cover img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Logo */
.brand-logo{
  width:120px; height:120px; margin:-60px auto 1rem;
  border-radius:50%; overflow:hidden; background:#111;
  border:3px solid rgba(255,255,255,.95);
  box-shadow: 0 0 0 8px rgba(255,255,255,.25), 0 14px 28px rgba(0,0,0,.25);
}
.brand-logo img{ width:100%; height:100%; object-fit:cover; }

/* Title */
h1{
  margin:.35rem 0 0;
  font-weight:800;
  font-size: clamp(1.8rem, 1.1rem + 3vw, 2.8rem);
  letter-spacing:.22em;
  text-transform:uppercase;
}
.location{
  text-transform:uppercase;
  letter-spacing:.22em;
  font-weight:700;
  color:#fff; opacity:.9;
}

/* ================= Social ================= */
.social{ display:flex; gap:.65rem; margin:.6rem 0 0; }
.social a{
  width:36px; height:36px; display:grid; place-items:center;
  border-radius:10px; text-decoration:none; color:#fff;
  background: rgba(255,255,255,.28);
  border:1px solid rgba(255,255,255,.75);
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
  transition:.18s ease;
}
.social a:hover{ background: rgba(255,255,255,.38); transform: translateY(-2px); }

/* Tagline */
.tagline{
  margin-top:1rem; font-weight:800; letter-spacing:.1em;
  text-transform:uppercase; color:#fff;
}
.subtitle{ margin-top:-.25rem; color:#fff; opacity:.85; }

/* ================= Contact Buttons ================= */
.actions{
  display:grid;
  gap: 1.15rem;
  margin: 1.8rem auto 0;
  width: min(760px, 100%); /* always respect the card width */
}

.btn{
  display:grid;
  grid-template-columns: 56px 1fr 56px;   /* icon | text | spacer */
  align-items:center;
  text-align:center;

  padding:16px 18px;
  width:100%;
  border-radius:16px;

  color:#fff;
  text-decoration:none;
  font-weight:700;
  letter-spacing:.02em;
  font-size:1rem;

  /* glassy fill + main outline */
  background: rgba(0,0,0,.35);
  border:2px solid rgba(255,255,255,.95);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  /* desktop double-outline */
  box-shadow:
    0 8px 0 rgba(255,255,255,.9),
    0 12px 18px rgba(0,0,0,.25);

  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.btn:hover{
  background: rgba(0,0,0,.28);
  transform: translateY(-1px);
  box-shadow:
    0 8px 0 rgba(255,255,255,.9),
    0 16px 26px rgba(0,0,0,.28);
}

/* Icon left */
.btn i{
  grid-column:1;
  justify-self:center;
  width:44px; height:44px;
  display:grid; place-items:center;
  font-size:22px;
  border:2px solid rgba(255,255,255,.95);
  border-radius:12px;
  background: rgba(255,255,255,.08);
}

/* ================= Gallery ================= */
.gallery{
  width:min(1000px,94vw);
  margin:3rem auto 4rem;
  display:grid; gap:1.4rem;
}
.gallery img{
  width:100%; display:block; border-radius:16px;
  border:1px solid rgba(255,255,255,.35);
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

/* ================= Footer ================= */
footer{
  color:var(--muted); text-align:center;
  padding:2.5rem 1rem 3rem;
}
footer a{ color:var(--accent); text-decoration:none; }

/* ================= Responsive ================= */

/* phones & small tablets */
@media (max-width: 640px){
  .hero{ padding: 2rem .75rem 1.25rem; min-height:auto; }
  .profile{ width:100%; }
  .hero-card{
    padding: 1.2rem;
    border-radius: 16px;
    gap: .7rem;
    box-shadow: 0 8px 20px rgba(0,0,0,.14);
    background: rgba(255,255,255,.22);
    border: 1px solid rgba(255,255,255,.6);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  /* Hide big preview image if you want a tighter phone layout */
  .cover{ display:none; }

  .brand-logo{
    width: 86px; height: 86px;
    margin: 0 auto .65rem;
    border-width: 2px;
    box-shadow: 0 0 0 6px rgba(255,255,255,.2), 0 10px 20px rgba(0,0,0,.22);
  }
  h1{
    font-size: 1.32rem;
    letter-spacing: .18em;
    line-height: 1.25;
    margin-top: .15rem;
  }
  .location{ font-size: .8rem; letter-spacing: .18em; }

  .social{ gap:.5rem; }
  .social a{ width:32px; height:32px; border-radius:8px; }

  .actions{ width: 100%; gap: 1.15rem; padding-bottom: .5rem; }

  /* mobile: no double-outline (prevents clipping); lighter fill + safe shadow */
  .btn{
    grid-template-columns: 44px 1fr 0;
    padding: 12px 14px;
    border-radius: 12px;
    font-size: .98rem;
    border-width: 2px;

    background: rgba(0,0,0,.30);
    box-shadow: 0 12px 18px rgba(0,0,0,.20);
  }
  .btn:hover{
    background: rgba(0,0,0,.26);
    transform: translateY(-1px);
    box-shadow: 0 16px 24px rgba(0,0,0,.24);
  }
  .btn i{
    width: 36px; height: 36px;
    font-size: 18px;
    border-radius: 10px;
    border-width: 1.5px;
  }

  .gallery{ gap: 1rem; margin: 2rem auto 3rem; }
}

/* very narrow devices */
@media (max-width: 380px){
  h1{ font-size: 1.12rem; letter-spacing: .14em; }
  .btn{ grid-template-columns: 40px 1fr 0; font-size: .95rem; }
  .btn i{ width: 32px; height: 32px; font-size: 17px; }
}
