/* Arizona Flooring & Installation — editorial, material-rich
   Palette: warm oak + greige stone + charcoal + sage accent */
:root{
  --char:#2c2723;        /* charcoal */
  --char-2:#3a342e;
  --ink:#241f1b;
  --paper:#f6f1e9;       /* warm paper */
  --paper-2:#efe7da;     /* greige */
  --stone:#e3d8c6;       /* warm stone */
  --oak:#b9824a;         /* oak */
  --oak-deep:#9a6536;
  --oak-light:#d8b486;
  --sage:#7f9a82;        /* muted sage accent */
  --sage-deep:#5f7a63;
  --line:#d8cab3;
  --muted:#6f655a;
  --white:#fffdf9;
  --maxw:1120px;
  --r:14px;
  --shadow:0 18px 50px -22px rgba(44,39,35,.45);
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;font-family:var(--sans);color:var(--ink);
  background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.08;margin:0;color:var(--char)}
p{margin:0 0 1rem}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}

.skip-link{
  position:absolute;left:-999px;top:0;background:var(--char);color:var(--white);
  padding:12px 18px;border-radius:0 0 10px 0;z-index:200;font-weight:600;
}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--sage-deep);outline-offset:2px;border-radius:4px}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:48px;padding:0 24px;border-radius:999px;font-weight:600;
  font-family:var(--sans);font-size:1rem;text-decoration:none;cursor:pointer;
  border:1.5px solid transparent;transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
  line-height:1;
}
.btn-primary{background:var(--oak);color:#fff;box-shadow:0 10px 26px -12px rgba(154,101,54,.8)}
.btn-primary:hover{background:var(--oak-deep);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--char);border-color:var(--char)}
.btn-ghost:hover{background:var(--char);color:var(--paper)}
.btn-block{width:100%}

.text-link{color:var(--oak-deep);font-weight:600;text-decoration:none;border-bottom:1.5px solid var(--oak-light);padding-bottom:1px}
.text-link:hover{border-color:var(--oak-deep)}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;background:rgba(246,241,233,.86);
  backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line);
  transition:box-shadow .3s ease,background .3s ease;
}
.site-header.scrolled{box-shadow:0 10px 30px -18px rgba(44,39,35,.5)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:64px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-height:44px}
.brand-mark{flex:0 0 auto;border-radius:9px}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--char);letter-spacing:.2px}
.brand-sub{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.primary-nav{display:none;align-items:center;gap:6px}
.primary-nav a{
  text-decoration:none;font-weight:500;color:var(--char);padding:10px 14px;border-radius:999px;
  font-size:.95rem;transition:background .2s,color .2s;
}
.primary-nav a:hover{background:var(--paper-2)}
.nav-cta{background:var(--char);color:var(--paper)!important}
.nav-cta:hover{background:var(--oak)!important}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--char);color:var(--paper);padding:0}
.hero-inner{position:relative;z-index:3;padding:64px 20px 72px}
.hero-planks{position:absolute;inset:0;z-index:1;opacity:.9}
.hero .plank{
  position:absolute;left:-12%;width:124%;height:17%;
  background-repeat:no-repeat;
  transform:translateX(-115%);
}
/* oak grain via layered gradients */
.hero .plank{
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.18) 0,rgba(0,0,0,0) 6%,rgba(0,0,0,0) 94%,rgba(0,0,0,.18) 100%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 2px,rgba(0,0,0,.05) 2px 5px,rgba(255,255,255,.02) 5px 9px);
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(0,0,0,.28);
}
.hero .p1{top:0;background-color:#5a4026}
.hero .p2{top:17%;background-color:#6b4d2f}
.hero .p3{top:34%;background-color:#7d5a36}
.hero .p4{top:51%;background-color:#6b4d2f}
.hero .p5{top:68%;background-color:#8a6640}
.hero .p6{top:85%;background-color:#5a4026}
.hero-inner::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(105deg,rgba(28,24,21,.92) 0%,rgba(28,24,21,.72) 46%,rgba(28,24,21,.30) 100%);
}
.js .hero .plank{transition:transform 1s cubic-bezier(.22,1,.36,1)}
.hero.in .p1{transform:translateX(0);transition-delay:.05s}
.hero.in .p2{transform:translateX(0);transition-delay:.18s}
.hero.in .p3{transform:translateX(0);transition-delay:.31s}
.hero.in .p4{transform:translateX(0);transition-delay:.44s}
.hero.in .p5{transform:translateX(0);transition-delay:.57s}
.hero.in .p6{transform:translateX(0);transition-delay:.70s}

.eyebrow{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--oak-light);font-weight:600;margin-bottom:1rem}
.hero h1{font-size:clamp(2.6rem,11vw,4.4rem);letter-spacing:-.02em;color:var(--paper);margin-bottom:1.2rem}
.hero h1 em{font-style:italic;color:var(--oak-light);font-weight:400}
.hero-lede{max-width:46ch;color:#e7ddcf;font-size:1.06rem;margin-bottom:1.6rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:1.8rem}
.hero-actions .btn-ghost{color:var(--paper);border-color:rgba(255,255,255,.5)}
.hero-actions .btn-ghost:hover{background:var(--paper);color:var(--char)}
.hero-badges{list-style:none;display:flex;flex-wrap:wrap;gap:8px 10px;padding:0;margin:0}
.hero-badges li{
  font-size:.8rem;font-weight:600;letter-spacing:.02em;color:var(--paper);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  padding:7px 13px;border-radius:999px;
}

/* ---------- trust strip ---------- */
.trust-strip{background:var(--char-2);color:var(--paper)}
.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.trust-grid>div{padding:22px 16px;display:flex;flex-direction:column;gap:4px;border-bottom:1px solid rgba(255,255,255,.08);border-right:1px solid rgba(255,255,255,.08);text-align:center;align-items:center}
.trust-grid>div:nth-child(2n){border-right:none}
.t-num{font-family:var(--serif);font-size:1.7rem;color:var(--oak-light);font-weight:600}
.t-label{font-size:.78rem;color:#d8cdbd;letter-spacing:.02em}

/* ---------- sections ---------- */
.section{padding:64px 0}
.section-head{max-width:60ch;margin-bottom:36px}
.kicker{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--oak-deep);font-weight:700;margin-bottom:.7rem}
.section h2{font-size:clamp(1.9rem,6.5vw,2.8rem);letter-spacing:-.015em;margin-bottom:.8rem}
.section-lede{color:var(--muted);font-size:1.05rem}

/* ---------- material swatches (shared) ---------- */
.swatch,.g-tile{position:relative;overflow:hidden;background:var(--stone)}
.swatch-wood,.swatch-lvp,.swatch-laminate{
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.10) 0 3px,rgba(0,0,0,.05) 3px 7px,rgba(255,255,255,.04) 7px 13px),
    repeating-linear-gradient(0deg,transparent 0 31px,rgba(0,0,0,.16) 31px 33px),
    linear-gradient(180deg,var(--oak-light),var(--oak));
}
.swatch-lvp{background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 3px,rgba(0,0,0,.05) 3px 7px,rgba(255,255,255,.03) 7px 13px),
    repeating-linear-gradient(0deg,transparent 0 27px,rgba(0,0,0,.14) 27px 29px),
    linear-gradient(180deg,#cbb89d,#a8917a);}
.swatch-laminate{background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.09) 0 4px,rgba(0,0,0,.04) 4px 9px,rgba(255,255,255,.03) 9px 15px),
    repeating-linear-gradient(0deg,transparent 0 35px,rgba(0,0,0,.13) 35px 37px),
    linear-gradient(180deg,#d8b486,#b78a55);}
.swatch-tile{background:
    repeating-linear-gradient(0deg,transparent 0 47px,rgba(255,255,255,.55) 47px 50px),
    repeating-linear-gradient(90deg,transparent 0 47px,rgba(255,255,255,.55) 47px 50px),
    linear-gradient(135deg,#cfc4b2,#b8a98f);}
.swatch-carpet{background:
    radial-gradient(circle at 20% 30%,rgba(255,255,255,.10) 0 1px,transparent 2px) 0 0/6px 6px,
    radial-gradient(circle at 70% 80%,rgba(0,0,0,.08) 0 1px,transparent 2px) 0 0/5px 5px,
    linear-gradient(180deg,#cbb9a3,#a99680);}

/* ---------- flooring grid ---------- */
.floor-grid{display:grid;grid-template-columns:1fr;gap:18px}
.floor-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;box-shadow:0 1px 0 rgba(0,0,0,.02);transition:transform .25s ease,box-shadow .25s ease;
}
.floor-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.floor-card .swatch{height:140px}
.floor-card h3{font-size:1.35rem;margin:18px 20px 8px}
.floor-card p{margin:0 20px 20px;color:var(--muted);font-size:.96rem}
.floor-card .swatch{transition:transform .4s ease}
.floor-card:hover .swatch{transform:scale(1.05)}
.floor-card--cta{display:flex;flex-direction:column;justify-content:center;background:var(--char);color:var(--paper);padding:26px 22px}
.floor-card--cta h3{color:var(--paper);margin:0 0 10px}
.floor-card--cta p{margin:0 0 16px;color:#e0d6c7}
.floor-card--cta .text-link{color:var(--oak-light);border-color:rgba(216,180,134,.5)}

/* ---------- process ---------- */
.process{background:var(--paper-2)}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:16px;counter-reset:s}
.step{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:24px 22px;position:relative}
.step-no{font-family:var(--serif);font-size:1.4rem;color:var(--oak);font-weight:600;display:block;margin-bottom:8px}
.step h3{font-size:1.25rem;margin-bottom:6px}
.step p{margin:0;color:var(--muted);font-size:.95rem}

/* ---------- why us ---------- */
.whyus-inner{display:grid;grid-template-columns:1fr;gap:32px;align-items:center}
.why-list{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:14px}
.why-list li{padding-left:30px;position:relative;color:var(--muted)}
.why-list li strong{color:var(--char)}
.why-list li::before{
  content:"";position:absolute;left:0;top:.35em;width:16px;height:16px;border-radius:4px;
  background:linear-gradient(135deg,var(--sage),var(--sage-deep));
}
.whyus-art{position:relative;min-height:300px;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);background:var(--stone)}
.herringbone{position:absolute;inset:0;
  background:
    repeating-linear-gradient(45deg,#c79a64 0 14px,#b9824a 14px 28px),
    repeating-linear-gradient(-45deg,rgba(0,0,0,.12) 0 14px,rgba(255,255,255,.06) 14px 28px);
  background-blend-mode:multiply;
}
.herringbone::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(44,39,35,.22))}

/* ---------- gallery ---------- */
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;grid-auto-rows:130px}
.g-tile{border-radius:12px;box-shadow:0 1px 0 rgba(0,0,0,.04);transition:transform .3s ease,box-shadow .3s ease}
.g-tile:hover{transform:scale(1.02);box-shadow:var(--shadow);z-index:2}
.g-wide{grid-column:span 2}
.g-tall{grid-row:span 2}
.g-herring{background:
    repeating-linear-gradient(45deg,#c79a64 0 12px,#a9743f 12px 24px),
    repeating-linear-gradient(-45deg,rgba(0,0,0,.10) 0 12px,rgba(255,255,255,.05) 12px 24px);
  background-blend-mode:multiply;}

/* ---------- about ---------- */
.about{background:var(--char);color:var(--paper)}
.about h2{color:var(--paper)}
.about-inner{display:grid;grid-template-columns:1fr;gap:30px;align-items:center}
.about-copy p{color:#e3d9ca}
.about .kicker{color:var(--oak-light)}
.about-art{min-height:260px;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.plank-stack{position:absolute;inset:0;width:100%;height:100%;
  background:
    repeating-linear-gradient(0deg,transparent 0 40px,rgba(0,0,0,.22) 40px 43px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 3px,rgba(0,0,0,.05) 3px 8px,transparent 8px 14px),
    linear-gradient(160deg,#d8b486,#9a6536 60%,#6b4d2f);}
.about-art{position:relative}

/* ---------- reviews ---------- */
.reviews{background:var(--paper-2)}
.review-grid{display:grid;grid-template-columns:1fr;gap:16px}
.review-card{
  margin:0;background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:24px 22px;box-shadow:0 1px 0 rgba(0,0,0,.03);
}
.stars{color:var(--oak);font-size:1.05rem;letter-spacing:2px;display:block;margin-bottom:10px}
.review-card p{font-family:var(--serif);font-size:1.12rem;color:var(--char);font-style:italic;line-height:1.4;margin-bottom:14px}
.review-card cite{font-style:normal;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--oak-deep);font-weight:700}
.reviews-note{margin-top:20px;font-size:.85rem;color:var(--muted);font-style:italic}

/* ---------- service area ---------- */
.area-inner{display:grid;grid-template-columns:1fr;gap:28px}
.area-list{list-style:none;padding:0;margin:0 0 18px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.area-list li{padding:10px 14px;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;font-weight:600;color:var(--char);text-align:center}
.area-card{background:var(--char);color:var(--paper);border-radius:var(--r);padding:28px 24px;box-shadow:var(--shadow)}
.area-card h3{color:var(--paper);margin-bottom:14px}
.area-card .nap-line{margin:0 0 10px;color:#e3d9ca}
.area-card a{color:var(--oak-light);text-decoration:none}
.area-card a:hover{text-decoration:underline}
.hours-line{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);font-size:.9rem;color:#cbbfae}

/* ---------- contact ---------- */
.contact-inner{display:grid;grid-template-columns:1fr;gap:32px}
.contact-points{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.contact-points li{padding-left:26px;position:relative;color:var(--muted)}
.contact-points li::before{content:"\2713";position:absolute;left:0;color:var(--sage-deep);font-weight:800}
.contact a{color:var(--oak-deep)}
.quote-form{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:24px 22px;box-shadow:var(--shadow)}
.field{margin-bottom:14px}
.field-row{display:grid;grid-template-columns:1fr;gap:0}
.field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px;color:var(--char)}
.field input,.field select,.field textarea{
  width:100%;min-height:48px;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;
  font-family:var(--sans);font-size:1rem;background:var(--paper);color:var(--ink);
}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--oak);background:#fff}
.form-note{margin:14px 0 0;font-size:.84rem;color:var(--muted)}
.form-note.ok{color:var(--sage-deep);font-weight:600}

/* ---------- footer ---------- */
.site-footer{background:var(--char);color:#cbbfae;padding:48px 0 0}
.footer-inner{display:grid;grid-template-columns:1fr;gap:28px;padding-bottom:32px}
.brand--footer .brand-name{color:var(--paper);font-size:1rem}
.footer-tag{margin-top:12px;color:#a99e8d;font-size:.92rem;max-width:34ch}
.footer-col h4{font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--oak-light);margin-bottom:10px}
.footer-col p{margin:0 0 6px;font-size:.92rem;color:#cbbfae}
.footer-col a{color:#cbbfae;text-decoration:none}
.footer-col a:hover{color:var(--oak-light)}
.footer-legal{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border-top:1px solid rgba(255,255,255,.1);font-size:.8rem;color:#9b9080}
.footer-legal p{margin:0}

/* ---------- sticky mobile CTA ---------- */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:120;display:flex;gap:10px;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(246,241,233,.94);backdrop-filter:blur(8px);
  border-top:1px solid var(--line);box-shadow:0 -8px 24px -16px rgba(44,39,35,.5);
}
.sticky-cta .btn{flex:1;min-height:48px}
.btn-call{background:var(--char);color:var(--paper)}
.btn-call:hover{background:var(--char-2)}
.btn-quote{background:var(--oak);color:#fff}
.btn-quote:hover{background:var(--oak-deep)}

/* ---------- reveal motion ---------- */
.reveal{opacity:0;transform:translateY(22px)}
.js .reveal{transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .reveal,.js .reveal{opacity:1!important;transform:none!important;transition:none!important}
  .hero .plank{transform:none!important;transition:none!important}
  .floor-card:hover,.g-tile:hover,.btn:hover{transform:none!important}
}

/* ---------- responsive ---------- */
@media (min-width:560px){
  .field-row{grid-template-columns:1fr 1fr;gap:14px}
  .floor-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .review-grid{grid-template-columns:1fr 1fr}
}
@media (min-width:860px){
  .primary-nav{display:flex}
  .sticky-cta{display:none}
  .hero-inner{padding:96px 20px 104px;max-width:760px;margin-left:0}
  .section{padding:88px 0}
  .floor-grid{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(4,1fr)}
  .review-grid{grid-template-columns:repeat(3,1fr)}
  .trust-grid{grid-template-columns:repeat(4,1fr)}
  .trust-grid>div{border-right:1px solid rgba(255,255,255,.08)}
  .trust-grid>div:last-child{border-right:none}
  .whyus-inner{grid-template-columns:1.1fr .9fr;gap:48px}
  .whyus-art{min-height:380px}
  .about-inner{grid-template-columns:.9fr 1.1fr;gap:48px}
  .about-art{min-height:340px}
  .area-inner{grid-template-columns:1.2fr .8fr;gap:48px;align-items:start}
  .area-list{grid-template-columns:repeat(3,1fr)}
  .contact-inner{grid-template-columns:.95fr 1.05fr;gap:48px;align-items:start}
  .footer-inner{grid-template-columns:1.5fr 1fr 1fr 1fr}
  .footer-legal{flex-direction:row;justify-content:space-between}
  .gallery-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:150px}
}
@media (min-width:1024px){
  .hero h1{font-size:4.6rem}
}
