/* ==========================================================================
   Shopify Web Design Team — Design Tokens & Shared Styles
   ========================================================================== */

:root{
  /* Color */
  --ink:        #14201A;   /* near-black with a green undertone, primary text */
  --ink-soft:   #445248;   /* secondary text */
  --evergreen:  #004C3F;   /* deep Shopify green — headers, footer, dark sections */
  --evergreen-2:#00695A;   /* lighter deep green for gradients/hover */
  --shop-green: #95BF47;   /* signature Shopify green — CTAs, accents */
  --shop-green-dark:#7FA738; /* hover state for green CTA */
  --paper:      #FFFFFF;
  --mist:       #F5F7F3;   /* soft section background */
  --mist-2:     #ECF1E7;
  --line:       #E1E6DD;   /* hairline borders */
  --gold:       #F0B429;   /* sparing use: ratings / badges only */
  --radius:     14px;
  --radius-sm:  8px;
  --shadow-sm:  0 1px 2px rgba(20,32,26,.06), 0 1px 1px rgba(20,32,26,.04);
  --shadow-md:  0 8px 24px rgba(20,32,26,.08), 0 2px 8px rgba(20,32,26,.05);
  --shadow-lg:  0 24px 60px rgba(0,76,63,.16);
}

html{ scroll-behavior:smooth; }

body{
  font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4,.display-font{
  font-family:"Sora","Inter",sans-serif;
  color:var(--ink);
  letter-spacing:-0.02em;
  font-weight:700;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--evergreen);
  background:var(--mist-2);
  border:1px solid var(--line);
  padding:.4rem .9rem;
  border-radius:100px;
}
.eyebrow::before{
  content:"";
  width:7px;height:7px;border-radius:50%;
  background:var(--shop-green);
  box-shadow:0 0 0 4px rgba(149,191,71,.25);
}

.text-muted-2{ color:var(--ink-soft); }

a{ text-decoration:none; }

/* ---------- Buttons ---------- */
.btn{ border-radius:100px; font-weight:600; padding:.75rem 1.6rem; transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.btn:active{ transform:translateY(1px); }

.btn-shop{
  background:var(--shop-green);
  color:var(--evergreen);
  border:1px solid var(--shop-green);
}
.btn-shop:hover{ background:var(--shop-green-dark); border-color:var(--shop-green-dark); color:var(--evergreen); box-shadow:0 10px 24px rgba(149,191,71,.35); }

.btn-outline-shop{
  background:transparent;
  color:var(--paper);
  border:1.5px solid rgba(255,255,255,.5);
}
.btn-outline-shop:hover{ background:rgba(255,255,255,.12); color:var(--paper); border-color:#fff; }

.btn-ghost-dark{
  background:transparent;
  color:var(--evergreen);
  border:1.5px solid var(--line);
}
.btn-ghost-dark:hover{ background:var(--mist-2); color:var(--evergreen); border-color:var(--evergreen); }

/* ---------- Navbar ---------- */
.navbar-shop{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .2s ease, box-shadow .2s ease;
  padding-top:.9rem; padding-bottom:.9rem;
}
.navbar-shop.is-scrolled{ border-color:var(--line); box-shadow:0 2px 16px rgba(20,32,26,.06); }

.brand-mark{ display:inline-flex; align-items:center; gap:.55rem; font-family:"Sora",sans-serif; font-weight:800; font-size:1.15rem; color:var(--evergreen); }
.brand-mark .dot{ width:12px;height:12px;border-radius:4px; background:var(--shop-green); display:inline-block; transform:rotate(8deg); }

.navbar-shop .nav-link{ font-weight:600; color:var(--ink); padding:.5rem 1rem !important; }
.navbar-shop .nav-link:hover{ color:var(--evergreen); }
.navbar-shop .nav-link.active{ color:var(--evergreen); }

/* ---------- Hero ---------- */
.hero{
  background:radial-gradient(120% 140% at 85% -10%, #E9F3D8 0%, var(--mist) 45%, var(--paper) 100%);
  padding-top:9.5rem;
  padding-bottom:5rem;
  position:relative;
}
.hero-kicker{ color:var(--evergreen); font-weight:700; }

.hero h1{ font-size:clamp(2.2rem, 4.2vw, 3.5rem); line-height:1.08; }
.hero .lead{ color:var(--ink-soft); font-size:1.15rem; max-width:34rem; }

.stat-strip{ border-top:1px solid var(--line); margin-top:3.25rem; padding-top:1.75rem; }
.stat-strip .stat-num{ font-family:"Sora",sans-serif; font-weight:800; font-size:1.9rem; color:var(--evergreen); }
.stat-strip .stat-label{ font-size:.82rem; color:var(--ink-soft); font-weight:600; }

/* ---------- Signature: Storefront Browser Mockup ---------- */
.mock-browser{
  background:var(--paper);
  border-radius:var(--radius);
  box-shadow:var(--shadow-lg);
  border:1px solid var(--line);
  overflow:hidden;
  transform:rotate(1.2deg);
}
.mock-topbar{
  background:var(--mist);
  padding:.6rem .9rem;
  display:flex; align-items:center; gap:.4rem;
  border-bottom:1px solid var(--line);
}
.mock-topbar .mock-dot{ width:9px;height:9px;border-radius:50%; }
.mock-topbar .mock-url{
  margin-left:.6rem; background:var(--paper); border:1px solid var(--line);
  border-radius:100px; padding:.2rem .8rem; font-size:.72rem; color:var(--ink-soft);
  flex:1; font-family:"Inter",sans-serif;
}
.mock-body{ padding:1.1rem; }
.mock-nav{ display:flex; justify-content:space-between; align-items:center; margin-bottom:1rem; }
.mock-nav .mock-logo{ width:70px; height:10px; background:var(--evergreen); border-radius:4px; }
.mock-nav .mock-links span{ display:inline-block; width:34px; height:7px; background:var(--line); border-radius:4px; margin-left:8px; }
.mock-banner{
  background:linear-gradient(120deg, var(--evergreen), var(--evergreen-2));
  border-radius:var(--radius-sm);
  padding:1.4rem 1.1rem;
  color:#fff;
  margin-bottom:1rem;
  position:relative;
  overflow:hidden;
}
.mock-banner::after{
  content:""; position:absolute; right:-30px; top:-30px; width:110px; height:110px;
  background:var(--shop-green); opacity:.35; border-radius:30% 70% 60% 40%/40% 40% 60% 60%;
}
.mock-banner .mock-title{ width:60%; height:12px; background:rgba(255,255,255,.9); border-radius:4px; margin-bottom:.5rem; }
.mock-banner .mock-sub{ width:40%; height:8px; background:rgba(255,255,255,.55); border-radius:4px; margin-bottom:.9rem; }
.mock-banner .mock-cta{ width:84px; height:22px; background:var(--shop-green); border-radius:100px; }
.mock-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; }
.mock-card{ background:var(--mist); border:1px solid var(--line); border-radius:var(--radius-sm); padding:.5rem; }
.mock-card .mock-thumb{ background:var(--mist-2); border-radius:6px; height:44px; margin-bottom:.4rem; }
.mock-card .mock-line{ height:6px; background:var(--line); border-radius:4px; margin-bottom:4px; }
.mock-card .mock-line.short{ width:60%; }
.mock-card .mock-price{ height:7px; width:40%; background:var(--shop-green); border-radius:4px; margin-top:.35rem; }

.badge-float{
  position:absolute;
  background:var(--paper);
  border:1px solid var(--line);
  box-shadow:var(--shadow-md);
  border-radius:var(--radius-sm);
  padding:.6rem .85rem;
  font-size:.78rem;
  font-weight:700;
  display:flex; align-items:center; gap:.5rem;
}
.badge-float .ico{ width:26px;height:26px;border-radius:50%; background:var(--mist-2); display:flex;align-items:center;justify-content:center; color:var(--evergreen); font-size:.9rem; }
.badge-float.b1{ top:-1.1rem; left:-1.4rem; }
.badge-float.b2{ bottom:-1.2rem; right:-1.2rem; }

/* ---------- Sections ---------- */
.section{ padding:5.5rem 0; }
.section-alt{ background:var(--mist); }
.section-dark{ background:linear-gradient(160deg, var(--evergreen), #00332A); color:#fff; }
.section-dark .text-muted-2{ color:rgba(255,255,255,.72); }
.section-dark h2, .section-dark h3{ color:#fff; }

.section-head{ max-width:640px; }
.section-head h2{ font-size:clamp(1.7rem, 2.6vw, 2.4rem); }

/* ---------- Cards ---------- */
.card-shop{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:2rem 1.6rem;
  height:100%;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card-shop:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:#cfe0b8; }
.card-icon{
  width:52px;height:52px;border-radius:12px;
  background:var(--mist-2);
  display:flex;align-items:center;justify-content:center;
  color:var(--evergreen); font-size:1.4rem;
  margin-bottom:1.1rem;
}
.card-shop ul{ padding-left:1.1rem; margin-bottom:0; color:var(--ink-soft); font-size:.92rem; }
.card-shop ul li{ margin-bottom:.25rem; }

/* Process steps (real sequence -> numbering is meaningful) */
.step{ position:relative; padding-left:0; }
.step-num{
  font-family:"Sora",sans-serif; font-weight:800; font-size:.85rem;
  color:var(--evergreen); background:var(--mist-2); border:1px solid var(--line);
  width:34px;height:34px; border-radius:50%; display:flex;align-items:center;justify-content:center;
  margin-bottom:1rem;
}
.step-connector{
  position:absolute; top:17px; left:34px; height:1px; width:calc(100% - 34px);
  background:repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 12px);
}

/* Pricing model cards */
.pricing-card{
  border:1px solid var(--line); border-radius:var(--radius); background:#fff; padding:2rem 1.6rem; height:100%;
}
.pricing-card.is-featured{ border-color:var(--shop-green); box-shadow:0 0 0 3px rgba(149,191,71,.16); position:relative; }
.pricing-card .tag{ position:absolute; top:-13px; left:1.6rem; background:var(--shop-green); color:var(--evergreen); font-weight:700; font-size:.72rem; padding:.3rem .7rem; border-radius:100px; }

/* Testimonials */
.testimonial-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.8rem; height:100%; }
.stars{ color:var(--gold); letter-spacing:2px; font-size:.9rem; }
.avatar-mono{
  width:42px;height:42px;border-radius:50%;
  background:var(--evergreen); color:#fff; display:flex;align-items:center;justify-content:center;
  font-family:"Sora",sans-serif; font-weight:700; font-size:.9rem;
}

/* FAQ */
.accordion-shop .accordion-item{ border:1px solid var(--line); border-radius:var(--radius-sm) !important; margin-bottom:.7rem; overflow:hidden; }
.accordion-shop .accordion-button{ font-weight:700; color:var(--ink); background:#fff; }
.accordion-shop .accordion-button:not(.collapsed){ color:var(--evergreen); background:var(--mist-2); box-shadow:none; }
.accordion-shop .accordion-button:focus{ box-shadow:none; border-color:var(--line); }
.accordion-shop .accordion-button::after{ filter:hue-rotate(60deg); }

/* CTA band */
.cta-band{
  background:linear-gradient(120deg, var(--evergreen), var(--evergreen-2));
  border-radius:24px;
  padding:3.5rem 2.5rem;
  color:#fff;
  position:relative;
  overflow:hidden;
}
.cta-band::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(60% 100% at 90% 10%, rgba(149,191,71,.35), transparent 60%);
}

/* ---------- Footer ---------- */
.footer-shop{ background:#0B1A15; color:rgba(255,255,255,.75); padding-top:4rem; }
.footer-shop h6{ color:#fff; font-family:"Sora",sans-serif; font-size:.85rem; letter-spacing:.04em; text-transform:uppercase; margin-bottom:1.1rem; }
.footer-shop a{ color:rgba(255,255,255,.68); }
.footer-shop a:hover{ color:var(--shop-green); }
.footer-shop .footer-brand{ color:#fff; font-family:"Sora",sans-serif; font-weight:800; font-size:1.2rem; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding:1.4rem 0; font-size:.85rem; }
.social-ico{
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center; color:#fff; font-size:.9rem;
}
.social-ico:hover{ background:var(--shop-green); border-color:var(--shop-green); color:var(--evergreen); }

/* ---------- Legal / inner pages ---------- */
.page-hero{
  background:linear-gradient(160deg, var(--evergreen), #00332A);
  color:#fff;
  padding:8.5rem 0 3.5rem;
}
.page-hero h1{ color:#fff; font-size:clamp(2rem,3.6vw,2.8rem); }
.page-hero .lead{ color:rgba(255,255,255,.75); }

.legal-content{ max-width:800px; }
.legal-content h2{ font-size:1.35rem; margin-top:2.4rem; margin-bottom:.9rem; padding-top:.5rem; }
.legal-content h2:first-of-type{ margin-top:0; }
.legal-content p, .legal-content li{ color:var(--ink-soft); line-height:1.75; }
.legal-content ul{ padding-left:1.2rem; }
.legal-content strong{ color:var(--ink); }
.legal-toc{
  background:var(--mist); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.5rem 1.6rem; position:sticky; top:6.5rem;
}
.legal-toc a{ display:block; color:var(--ink-soft); font-size:.9rem; padding:.35rem 0; font-weight:600; }
.legal-toc a:hover{ color:var(--evergreen); }
.updated-pill{
  display:inline-block; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25);
  padding:.35rem .9rem; border-radius:100px; font-size:.8rem; margin-bottom:1rem;
}

/* About page */
.value-card{ display:flex; gap:1rem; padding:1.5rem 0; border-bottom:1px solid var(--line); }
.value-card:last-child{ border-bottom:none; }
.value-num{ font-family:"Sora",sans-serif; font-weight:800; color:var(--shop-green-dark); font-size:1.1rem; min-width:2.4rem; }

.team-card{ text-align:center; }
.team-avatar{
  width:88px;height:88px;border-radius:50%;
  background:var(--mist-2); border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  font-family:"Sora",sans-serif; font-weight:800; color:var(--evergreen); font-size:1.3rem;
  margin:0 auto .9rem;
}

/* ---------- Image placeholders (swap these for your own images) ---------- */
.img-placeholder{
  border:2px dashed #C9D4C0;
  background:var(--mist);
  border-radius:var(--radius);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:var(--ink-soft); text-align:center; gap:.5rem; padding:2rem 1.2rem;
  width:100%; min-height:220px;
}
.img-placeholder .ph-icon{ font-size:1.8rem; color:var(--evergreen); opacity:.55; }
.img-placeholder .ph-label{ font-size:.85rem; font-weight:700; color:var(--ink); }
.img-placeholder .ph-hint{ font-size:.75rem; color:var(--ink-soft); }

.logo-placeholder{
  border:1.5px dashed #C9D4C0; border-radius:var(--radius-sm);
  background:var(--mist); height:70px; display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft); font-size:.72rem; font-weight:600; text-align:center; padding:.5rem;
}

.team-photo-placeholder{
  width:96px;height:96px;border-radius:50%;
  border:2px dashed #C9D4C0; background:var(--mist);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft); font-size:.65rem; font-weight:600; text-align:center;
  margin:0 auto .9rem; padding:.4rem; line-height:1.2;
}

/* ---------- Quote modal ---------- */
.quote-modal-content{ border-radius:20px; border:1px solid var(--line); }
.modal-header{ border-bottom:1px solid var(--line); }
.modal-header .modal-title{ font-family:"Sora",sans-serif; color:var(--evergreen); font-weight:700; }
.btn-close:focus{ box-shadow:none; }
.form-label{ font-weight:600; font-size:.9rem; color:var(--ink); }
.form-control{ border-radius:10px; border-color:var(--line); padding:.6rem .9rem; }
.form-control:focus{ border-color:var(--shop-green); box-shadow:0 0 0 3px rgba(149,191,71,.18); }
.form-check-input:checked{ background-color:var(--shop-green); border-color:var(--shop-green); }
.form-check-input:focus{ box-shadow:0 0 0 3px rgba(149,191,71,.18); }
#quoteForm .form-check-label a{ color:var(--evergreen); font-weight:600; }
.quote-success{ text-align:center; padding:1rem 0; }
.quote-success .ph-icon{ font-size:2.4rem; color:var(--shop-green-dark); }

@media (max-width:767.98px){
  .badge-float{ display:none; }
  .mock-browser{ transform:none; }
  .section{ padding:3.5rem 0; }
  .legal-toc{ position:static; margin-bottom:2rem; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .card-shop, .btn{ transition:none; }
}


/* ---------- Contact page ---------- */
.contact-hero .lead{ max-width:760px; }
.contact-section{ background:linear-gradient(180deg,#fff 0%,var(--mist) 100%); }
.contact-info-card,
.contact-form-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
}
.contact-info-card{ padding:1.7rem; }
.contact-form-card{ padding:2rem; }
.contact-info-item{ display:flex; gap:1rem; align-items:flex-start; padding:0 0 1.25rem; margin-bottom:1.25rem; border-bottom:1px solid var(--line); }
.contact-info-item:last-child{ border-bottom:0; padding-bottom:0; }
.contact-info-icon{ flex:0 0 42px; width:42px; height:42px; border-radius:12px; background:var(--mist-2); color:var(--evergreen); display:flex; align-items:center; justify-content:center; font-weight:800; }
.contact-info-item strong{ display:block; color:var(--ink); margin-bottom:.15rem; }
.contact-info-item a,
.contact-info-item span{ display:block; color:var(--ink-soft); }
.form-select{ border-radius:10px; border-color:var(--line); padding:.6rem 2.5rem .6rem .9rem; }
.form-select:focus{ border-color:var(--shop-green); box-shadow:0 0 0 3px rgba(149,191,71,.18); }
.hp-field{ position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.alert{ border-radius:12px; }

@media (max-width:767.98px){
  .contact-form-card,
  .contact-info-card{ padding:1.3rem; }
}
