:root{--g:#063b2d;--gd:#032a20;--gold:#b88436;--ink:#202521;--muted:#68706b;--ivory:#fbf8f1;--line:rgba(29,33,31,.11)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif}img{max-width:100%}
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}.header-inner{width:min(1240px,calc(100% - 48px));min-height:94px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand img{display:block;width:clamp(250px,27vw,385px);max-height:74px;object-fit:contain}.main-nav{display:flex;gap:34px}.main-nav a{padding:38px 0 31px;text-decoration:none;color:#303531;text-transform:uppercase;font-size:13px;font-weight:700;letter-spacing:.08em}.main-nav a:hover,.main-nav a.active{color:var(--g);border-bottom:2px solid var(--gold)}.menu-toggle{display:none;border:0;background:none;width:42px}.menu-toggle span{display:block;height:2px;background:var(--gd);margin:6px}
.hero{line-height:0;background:var(--ivory)}.hero img{width:100%;height:auto;display:block}
.section{padding:82px 24px}.wrap{width:min(1180px,100%);margin:auto}.narrow{max-width:850px}.center{text-align:center}.eyebrow{color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.2em;margin:0 0 12px}h1,h2,h3{font-family:Georgia,serif;color:var(--gd);font-weight:500;line-height:1.08}h1{font-size:clamp(34px,4vw,54px);max-width:900px;margin:0 auto 18px}h2{font-size:clamp(31px,3.4vw,48px);margin:0 0 18px}h3{font-size:31px}.lead{font-size:18px;line-height:1.7;color:#505852}.intro>.wrap>.lead{max-width:820px;margin:0 auto 40px}
.cards{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px;text-align:left}.card{padding:30px;border:1px solid var(--line);border-radius:17px;text-decoration:none;color:inherit;box-shadow:0 10px 28px rgba(0,0,0,.04)}.card.primary{background:var(--gd);color:#fff}.card h2{font-size:27px}.card.primary h2{color:#fff}.card p{line-height:1.6;color:var(--muted)}.card.primary p{color:#d8e0dc}.card small,.card b{color:var(--gold)}.card b{display:block;margin-top:15px}
.tint{background:var(--ivory)}.grey{background:#f5f7f6}.split{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}.reverse>div{order:2}.reverse>img{order:1}.visual{width:100%;border-radius:18px;box-shadow:0 18px 42px rgba(0,0,0,.11)}.chips{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:25px 0}.chips span,.industries span{padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:9px;font-weight:600}.powered{color:var(--gold);font-size:13px;font-weight:800}
.plans{margin-top:65px;padding-top:50px;border-top:1px solid rgba(6,59,45,.14);text-align:center}.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.plan-grid article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;text-align:left}.plan-grid strong{font:24px Georgia,serif;color:var(--gd)}.plan-grid p{color:var(--muted);line-height:1.5}.plan-grid .highlight{border:2px solid var(--gold)}.note{font-size:13px;color:var(--muted)}
.soft{padding:12px 15px;background:#f7f1e6;border-radius:9px;color:#805d28!important;font-weight:700;font-size:13px}.split p:not(.lead):not(.eyebrow):not(.powered){line-height:1.7;color:#5e6761}.industries{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:25px 0}.industries span{text-align:center}
.ecosystem{background:var(--gd);color:#fff}.ecosystem h2{color:#fff}.brand-box{display:inline-flex;flex-direction:column;padding:24px 40px;border:1px solid rgba(255,255,255,.2);border-radius:14px;margin:15px}.brand-box strong{font:27px Georgia,serif}.brand-box span{margin-top:7px;color:#d5ded9}.muted{color:#aebbb5}
footer{background:#07120e;color:#dce4e0;padding:50px 24px 0}.footer-grid{width:min(1180px,100%);margin:auto;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:45px;padding-bottom:40px}.footer-grid img{width:275px;background:#fff}.footer-grid p{color:#aebbb5;line-height:1.6}.footer-grid b{display:block;color:#fff;margin-bottom:15px}.footer-grid a{display:block;color:#cbd6d0;text-decoration:none;margin:10px 0}.copy{text-align:center;border-top:1px solid rgba(255,255,255,.1);padding:19px;font-size:13px;color:#9eaaa4}
@media(max-width:860px){.header-inner{width:calc(100% - 28px);min-height:80px}.brand img{width:min(280px,70vw);max-height:62px}.menu-toggle{display:block}.main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;padding:10px 22px 20px}.main-nav.open{display:block}.main-nav a{display:block;padding:14px 4px;border-bottom:1px solid #eee}.section{padding:58px 18px}.cards,.split,.plan-grid,.footer-grid{grid-template-columns:1fr}.split{gap:30px}.split .visual{order:-1!important}.reverse>div,.reverse>img{order:initial}.chips{grid-template-columns:1fr 1fr}.industries{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.brand img{width:min(235px,68vw)}.hero img{width:100%;height:auto;object-fit:contain}.section{padding:48px 15px}.lead{font-size:16px}.chips{grid-template-columns:1fr}.card{padding:23px}h1{font-size:34px}h2{font-size:31px}}

/* Platform feature refinement */
.chips span{position:relative;padding:14px 14px 14px 48px;min-height:48px;display:flex;align-items:center;background:rgba(255,255,255,.94);border:1px solid rgba(6,59,45,.13);box-shadow:0 5px 14px rgba(3,42,32,.035);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.chips span::before{content:"✓";position:absolute;left:14px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--g);color:#fff;font-size:14px;font-weight:900;box-shadow:0 3px 8px rgba(6,59,45,.18)}
.chips span:hover{transform:translateY(-2px);border-color:rgba(184,132,54,.55);box-shadow:0 8px 18px rgba(3,42,32,.07)}
#platform .visual{aspect-ratio:1/1;object-fit:cover;background:var(--ivory)}
.contact-link{display:inline-block;color:var(--g);font-weight:800;text-decoration:none;border-bottom:1px solid var(--gold)}
.contact-link:hover{color:var(--gold)}
@media(max-width:520px){#platform .visual{width:100%;aspect-ratio:1/1}.chips span{padding-left:46px}}

/* v3.2 platform feature-card polish */
#platform .chips{gap:12px}
#platform .chips span{
 min-height:54px;padding:14px 16px 14px 52px;border:1px solid rgba(184,132,54,.20);
 border-radius:12px;background:linear-gradient(135deg,#fff,#faf7ef);color:#17372e;
 font-family:Georgia,"Times New Roman",serif;font-size:15px;font-weight:600;letter-spacing:.01em;
 box-shadow:0 5px 16px rgba(38,53,47,.045)
}
#platform .chips span::before{
 left:15px;width:25px;height:25px;background:linear-gradient(145deg,#0b5b47,#043d30);
 color:#fff;border:1px solid rgba(184,132,54,.42);box-shadow:0 3px 9px rgba(3,42,32,.16)
}
#platform .chips span:hover{color:#032a20;border-color:rgba(184,132,54,.55);background:#fff}
#platform .powered{color:#111;font-family:Arial,Helvetica,sans-serif;font-size:13px;font-weight:700;letter-spacing:.025em}
#platform .visual{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center;border-radius:20px;background:#fbf8f1;box-shadow:0 22px 48px rgba(3,42,32,.13)}
@media(max-width:520px){#platform .chips span{min-height:52px;padding-left:49px;font-size:14px}#platform .visual{aspect-ratio:1/1}}


/* v3.3 Subscription plan card refinement */
#platform .plans > .eyebrow {
  color: #9a6420;
  font-weight: 900;
  letter-spacing: .24em;
}

#platform .plans h3 {
  color: #063b2d;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
  letter-spacing: -.015em;
}

#platform .plan-grid {
  gap: 18px;
  align-items: stretch;
  perspective: 1000px;
}

#platform .plan-grid article {
  position: relative;
  overflow: hidden;
  min-height: 168px;
  padding: 28px 25px;
  border: 1px solid rgba(6,59,45,.14);
  border-radius: 16px;
  background: linear-gradient(145deg, #ffffff 0%, #fbf8f0 100%);
  box-shadow: 0 7px 20px rgba(3,42,32,.045);
  transition:
    transform .24s ease,
    box-shadow .24s ease,
    border-color .24s ease,
    background .24s ease;
  transform-origin: center;
}

#platform .plan-grid article::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 5px;
  height: 100%;
  background: linear-gradient(180deg, #0b5b47, #b88436);
  opacity: .72;
  transition: width .24s ease, opacity .24s ease;
}

#platform .plan-grid article strong {
  position: relative;
  z-index: 1;
  display: block;
  margin-bottom: 13px;
  color: #063b2d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: -.01em;
}

#platform .plan-grid article p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #4e5d56;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.58;
}

#platform .plan-grid article.highlight {
  border: 1px solid rgba(184,132,54,.42);
  background: linear-gradient(145deg, #fffdf8 0%, #f8f0df 100%);
  box-shadow: 0 8px 22px rgba(184,132,54,.09);
}

@media (hover:hover) and (pointer:fine) {
  #platform .plan-grid article:hover {
    z-index: 5;
    transform: translateY(-10px) scale(1.055);
    border-color: rgba(184,132,54,.72);
    background: #fff;
    box-shadow: 0 20px 42px rgba(3,42,32,.16);
  }

  #platform .plan-grid article:hover::before {
    width: 7px;
    opacity: 1;
  }

  #platform .plan-grid article:hover strong {
    color: #9a6420;
  }
}

#platform .plan-grid article:focus-within {
  border-color: rgba(184,132,54,.72);
  box-shadow: 0 14px 32px rgba(3,42,32,.12);
}

#platform .plans .note {
  margin-top: 20px;
  color: #37453e;
  font-size: 14px;
  font-weight: 500;
}

#platform .plans .contact-link {
  color: #063b2d;
  font-weight: 800;
  text-decoration: none;
  border-bottom: 2px solid #b88436;
}

#platform .plans .contact-link:hover {
  color: #9a6420;
}

@media (max-width: 860px) {
  #platform .plan-grid article {
    min-height: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  #platform .plan-grid article {
    transition: none;
  }
}

/* v3.4 Vylaa Lifestyle own-store refinement */
.own-store .media-card{border-radius:22px;overflow:hidden;background:#fbf7ee;box-shadow:0 18px 42px rgba(3,42,32,.10)}
.own-store-visual{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.own-store .content h3{margin:-6px 0 18px;color:#9a6420;font-family:Georgia,"Times New Roman",serif;font-size:clamp(20px,2vw,27px);font-weight:700;line-height:1.25}
.own-store .content p{color:#3d4a45;line-height:1.72}
.own-store-highlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0}
.own-store-highlights span{position:relative;padding:12px 14px 12px 42px;border:1px solid rgba(184,132,54,.22);border-radius:11px;background:linear-gradient(135deg,#fff,#faf7ef);color:#123f33;font-weight:700}
.own-store-highlights span::before{content:"✓";position:absolute;left:13px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#07513f;color:#fff;font-size:12px}
.own-store-cta{display:inline-flex;align-items:center;gap:13px;padding:14px 22px;border-radius:999px;background:#07513f;color:#fff;font-weight:800;text-decoration:none;box-shadow:0 9px 20px rgba(7,81,63,.16);transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.own-store-cta:hover{transform:translateY(-3px);background:#9a6420;box-shadow:0 13px 25px rgba(7,81,63,.20)}
@media(max-width:720px){.own-store-highlights{grid-template-columns:1fr}.own-store-cta{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.own-store-cta{transition:none}}

/* v3.5 Vylaa Lifestyle image replacement + desktop containment fix */
.own-store {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
.own-store > * {
  min-width: 0;
}
.own-store .media-card,
.own-store .content {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.own-store-visual {
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center;
}
.own-store .content {
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  .own-store {
    padding-left: 18px;
    padding-right: 18px;
  }
}

/* v3.7 Our Businesses card colour + interactive depth refinement */
.business-grid {
  perspective: 1200px;
}

.business-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transform: translateY(0) scale(1);
  transition:
    transform .24s ease,
    box-shadow .24s ease,
    border-color .24s ease,
    background .24s ease,
    color .24s ease;
  transform-origin: center;
}

/* 01 — Primary platform: deep emerald */
.business-card:nth-child(1) {
  background: linear-gradient(145deg, #073f32 0%, #032f26 100%);
  border-color: rgba(184,132,54,.28);
  color: #fff;
}
.business-card:nth-child(1) h3,
.business-card:nth-child(1) p {
  color: #fff;
}
.business-card:nth-child(1) .card-kicker,
.business-card:nth-child(1) a {
  color: #e1a84b;
}

/* 02 — Own brand: champagne gold */
.business-card:nth-child(2) {
  background: linear-gradient(145deg, #fffaf0 0%, #f3e2bd 100%);
  border-color: rgba(184,132,54,.34);
}
.business-card:nth-child(2) h3 {
  color: #073f32;
}
.business-card:nth-child(2) p {
  color: #4e4b40;
}
.business-card:nth-child(2) .card-kicker,
.business-card:nth-child(2) a {
  color: #9a6420;
}

/* 03 — Business solutions: soft sage */
.business-card:nth-child(3) {
  background: linear-gradient(145deg, #f4f9f3 0%, #dfeadc 100%);
  border-color: rgba(7,81,63,.22);
}
.business-card:nth-child(3) h3 {
  color: #073f32;
}
.business-card:nth-child(3) p {
  color: #405049;
}
.business-card:nth-child(3) .card-kicker,
.business-card:nth-child(3) a {
  color: #9a6420;
}

@media (hover:hover) and (pointer:fine) {
  .business-card:hover {
    z-index: 10;
    transform: translateY(-12px) scale(1.055);
    border-color: rgba(184,132,54,.70);
    box-shadow: 0 24px 46px rgba(3,42,32,.19);
  }

  .business-card:nth-child(1):hover {
    background: linear-gradient(145deg, #09513f 0%, #03382c 100%);
  }

  .business-card:nth-child(2):hover {
    background: linear-gradient(145deg, #fffdf7 0%, #f5dfad 100%);
  }

  .business-card:nth-child(3):hover {
    background: linear-gradient(145deg, #f9fcf8 0%, #d6e7d2 100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .business-card {
    transition: none;
  }
}

/* v3.7.1 FIX — actual Our Businesses selectors are .cards .card */
.cards {
  perspective: 1200px;
}

.cards > .card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transform: translateY(0) scale(1);
  transform-origin: center;
  transition:
    transform .24s ease,
    box-shadow .24s ease,
    border-color .24s ease,
    background .24s ease,
    color .24s ease !important;
}

/* 01 — Vylaa Lifestyle Platform: deep emerald */
.cards > .card:nth-child(1) {
  background: linear-gradient(145deg, #073f32 0%, #032f26 100%) !important;
  border-color: rgba(184,132,54,.32) !important;
  color: #fff !important;
}
.cards > .card:nth-child(1) h3,
.cards > .card:nth-child(1) p {
  color: #fff !important;
}
.cards > .card:nth-child(1) .num,
.cards > .card:nth-child(1) a {
  color: #e2a53b !important;
}

/* 02 — Vylaa Lifestyle: champagne / light gold */
.cards > .card:nth-child(2) {
  background: linear-gradient(145deg, #fffdf8 0%, #f1dfb7 100%) !important;
  border-color: rgba(184,132,54,.40) !important;
}
.cards > .card:nth-child(2) h3 {
  color: #073f32 !important;
}
.cards > .card:nth-child(2) p {
  color: #4d4a40 !important;
}
.cards > .card:nth-child(2) .num,
.cards > .card:nth-child(2) a {
  color: #a66817 !important;
}

/* 03 — Billing Software: soft sage green */
.cards > .card:nth-child(3) {
  background: linear-gradient(145deg, #f5faf4 0%, #d9e8d5 100%) !important;
  border-color: rgba(7,81,63,.27) !important;
}
.cards > .card:nth-child(3) h3 {
  color: #073f32 !important;
}
.cards > .card:nth-child(3) p {
  color: #405049 !important;
}
.cards > .card:nth-child(3) .num,
.cards > .card:nth-child(3) a {
  color: #9a6420 !important;
}

@media (hover:hover) and (pointer:fine) {
  .cards > .card:hover {
    z-index: 20;
    transform: translateY(-12px) scale(1.06);
    border-color: rgba(184,132,54,.78) !important;
    box-shadow: 0 25px 50px rgba(3,42,32,.20) !important;
  }

  .cards > .card:nth-child(1):hover {
    background: linear-gradient(145deg, #0a5945 0%, #03382c 100%) !important;
  }

  .cards > .card:nth-child(2):hover {
    background: linear-gradient(145deg, #fffefb 0%, #efd69d 100%) !important;
  }

  .cards > .card:nth-child(3):hover {
    background: linear-gradient(145deg, #fbfdf9 0%, #cfe2ca 100%) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cards > .card {
    transition: none !important;
  }
}

/* v3.8 — Our Businesses premium emerald + logo-gold design */
.cards {
  gap: 20px;
  perspective: 1300px;
  overflow: visible;
}

.cards > .card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 20px !important;
  border: 2px solid #d6a23c !important;
  padding: 30px 30px 28px !important;
  box-shadow: 0 12px 28px rgba(3,42,32,.10) !important;
  transform: translateY(0) scale(1);
  transform-origin: center;
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease, background .24s ease !important;
}

/* subtle decorative gold sweep */
.cards > .card::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -58px;
  bottom: -88px;
  width: 190px;
  height: 190px;
  border: 2px solid rgba(225,168,62,.46);
  border-radius: 50%;
  opacity: .75;
}

/* 01 — Primary Platform: deepest emerald */
.cards > .card:nth-child(1) {
  background: linear-gradient(140deg,#064b3a 0%,#01362c 58%,#022a23 100%) !important;
}
.cards > .card:nth-child(1) h3,
.cards > .card:nth-child(1) p {
  color: #fff !important;
}

/* 02 — Vylaa Lifestyle: warm logo gold / ivory */
.cards > .card:nth-child(2) {
  background:
    radial-gradient(circle at 88% 14%,rgba(225,168,62,.23),transparent 34%),
    linear-gradient(140deg,#fffaf0 0%,#f7e8c4 58%,#e9c879 100%) !important;
  border-color: #c88c22 !important;
}
.cards > .card:nth-child(2) h3 {
  color: #063e31 !important;
}
.cards > .card:nth-child(2) p {
  color: #3f453f !important;
}

/* 03 — Billing Software: richer emerald, clearly visible */
.cards > .card:nth-child(3) {
  background: linear-gradient(140deg,#0b704e 0%,#07583f 54%,#043d30 100%) !important;
}
.cards > .card:nth-child(3) h3,
.cards > .card:nth-child(3) p {
  color: #fff !important;
}

/* Consistent logo-gold labels and links */
.cards > .card .num,
.cards > .card a {
  color: #e2a53b !important;
}
.cards > .card:nth-child(2) .num,
.cards > .card:nth-child(2) a {
  color: #9b6112 !important;
}
.cards > .card a {
  display: inline-block;
  margin-top: 4px;
  padding-bottom: 4px;
  font-weight: 800 !important;
  text-decoration: none;
  border-bottom: 2px solid currentColor;
}

/* Hover: active card comes visibly forward */
@media (hover:hover) and (pointer:fine) {
  .cards > .card:hover {
    z-index: 30;
    transform: translateY(-14px) scale(1.065);
    border-color: #efc45e !important;
    box-shadow: 0 28px 54px rgba(3,42,32,.24) !important;
  }
  .cards > .card:nth-child(1):hover {
    background: linear-gradient(140deg,#08614a 0%,#034335 58%,#022f27 100%) !important;
  }
  .cards > .card:nth-child(2):hover {
    background:
      radial-gradient(circle at 88% 14%,rgba(239,196,94,.34),transparent 36%),
      linear-gradient(140deg,#fffdf8 0%,#f9e9bd 54%,#e6bd5e 100%) !important;
  }
  .cards > .card:nth-child(3):hover {
    background: linear-gradient(140deg,#0c8258 0%,#086348 54%,#044434 100%) !important;
  }
}

@media (max-width: 760px) {
  .cards > .card {
    padding: 25px 23px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cards > .card {
    transition: none !important;
  }
}

/* v3.8.1 — Billing Software heading contrast fix */
.cards > .card:nth-child(3) h3 {
  color: #ffffff !important;
}

/* v3.8.2 — force Billing Software title white using actual card-3 heading variants */
.cards > .card:nth-child(3) h2,
.cards > .card:nth-child(3) h3,
.cards > .card:nth-child(3) .title,
.cards > .card:nth-child(3) .card-title,
.cards > .card:nth-child(3) strong {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* v3.9 — internal business-card section navigation */
html {
  scroll-behavior: smooth;
}

#platform,
#vylaa-lifestyle,
#billing-software,
.section-anchor {
  scroll-margin-top: 105px;
}

.section-anchor {
  display: block;
  height: 0;
  visibility: hidden;
}

@media (max-width: 760px) {
  #platform,
  #vylaa-lifestyle,
  #billing-software,
  .section-anchor {
    scroll-margin-top: 88px;
  }
}

/* v3.9.1 — exact existing section IDs */
#platform,
#vylaa-lifestyle,
#billing {
  scroll-margin-top: 105px;
}
@media (max-width:760px) {
  #platform,
  #vylaa-lifestyle,
  #billing {
    scroll-margin-top: 88px;
  }
}

/* v3.10 — clickable Vylaa Lifestyle store image */
.own-store-image-link {
  display: block;
  width: 100%;
  overflow: hidden;
  cursor: pointer;
  text-decoration: none;
}
.own-store-image-link .own-store-visual {
  transition: transform .28s ease, filter .28s ease;
}
@media (hover:hover) and (pointer:fine) {
  .own-store-image-link:hover .own-store-visual {
    transform: scale(1.025);
    filter: brightness(1.025);
  }
}
.own-store-image-link:focus-visible {
  outline: 3px solid #d6a23c;
  outline-offset: 4px;
  border-radius: 18px;
}
@media (prefers-reduced-motion: reduce) {
  .own-store-image-link .own-store-visual {
    transition: none;
  }
}

/* v3.11 — subscription Contact Us link */
.plans .contact-link,
#platform .contact-link {
  color: #063f31;
  font-weight: 800;
  text-decoration: none;
  border-bottom: 2px solid #c88c22;
  padding-bottom: 2px;
}
.plans .contact-link:hover,
#platform .contact-link:hover {
  color: #9a6420;
  border-bottom-color: #9a6420;
}
#contact {
  scroll-margin-top: 105px;
}
@media (max-width:760px) {
  #contact { scroll-margin-top: 88px; }
}

/* v3.12 — Billing Software industry carousel */
.billing-showcase{padding:86px 0;background:linear-gradient(180deg,#fff 0%,#fbfaf5 100%);scroll-margin-top:105px;overflow:hidden}
.billing-heading{text-align:center;max-width:900px;margin:0 auto 42px}
.billing-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,4vw,3.55rem);line-height:1.05;color:#063f31;margin:8px 0 14px}
.billing-heading>p:last-child{font-size:1.05rem;color:#59645f}
.industry-carousel{position:relative;max-width:1120px;margin:auto;padding:16px 66px 54px}
.industry-track{display:flex;align-items:center;gap:22px;transition:transform .55s cubic-bezier(.22,.61,.36,1)}
.industry-slide{flex:0 0 calc((100% - 44px)/3);background:#fff;border:1px solid #e6ddca;border-radius:22px;overflow:hidden;box-shadow:0 12px 28px rgba(3,42,32,.09);transform:scale(.91);opacity:.72;transition:transform .4s ease,opacity .4s ease,box-shadow .4s ease,border-color .4s ease}
.industry-slide.is-active{transform:scale(1.055);opacity:1;border-color:#d39a2c;box-shadow:0 24px 48px rgba(3,42,32,.16);z-index:3}
.industry-slide img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.industry-copy{padding:22px 24px 25px}
.industry-copy span{font-size:.74rem;letter-spacing:.14em;color:#b77718;font-weight:800}
.industry-copy h3{font-family:Georgia,"Times New Roman",serif;font-size:1.65rem;color:#063f31;margin:5px 0 9px}
.industry-copy p{margin:0;color:#59645f;line-height:1.55}
.industry-nav{position:absolute;top:43%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;border:1px solid #e2d5ba;background:#fff;color:#064b3a;font-size:1.5rem;box-shadow:0 8px 22px rgba(3,42,32,.12);cursor:pointer;z-index:5}
.industry-prev{left:4px}.industry-next{right:4px}
.industry-nav:hover{background:#064b3a;color:#fff;border-color:#064b3a}
.industry-dots{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:9px}
.industry-dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#d9d2c4;cursor:pointer}
.industry-dot.is-active{width:25px;border-radius:10px;background:#0a624b}
.billing-capabilities{text-align:center;margin-top:48px}
.billing-capabilities h3{font-family:Georgia,"Times New Roman",serif;color:#063f31;font-size:clamp(1.8rem,3vw,2.55rem);margin:8px 0 28px}
.billing-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.billing-feature{background:#fff;border:1px solid #e5dfd3;border-radius:16px;padding:20px;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon title" "icon text";text-align:left;column-gap:12px;box-shadow:0 8px 20px rgba(3,42,32,.05)}
.billing-feature b{grid-area:icon;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#064b3a;color:#fff}
.billing-feature strong{grid-area:title;color:#063f31;font-size:1rem}
.billing-feature span{grid-area:text;color:#66706b;font-size:.88rem;margin-top:4px}
@media(max-width:820px){
 .billing-showcase{padding:62px 0;scroll-margin-top:88px}
 .industry-carousel{padding:8px 42px 48px}
 .industry-slide{flex:0 0 100%;transform:scale(.96);opacity:.55}
 .industry-slide.is-active{transform:scale(1);opacity:1}
 .industry-nav{width:42px;height:42px}
 .billing-feature-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
 .industry-carousel{padding-left:34px;padding-right:34px}
 .billing-feature-grid{grid-template-columns:1fr}
}

/* v3.12.1 — carousel cleanup: no arrow/chevron controls */
.industry-carousel { padding-left: 20px !important; padding-right: 20px !important; }
.industry-nav, .industry-prev, .industry-next { display:none !important; }
@media(max-width:820px){
  .industry-carousel { padding-left: 12px !important; padding-right: 12px !important; }
}

/* v3.12.2 — faster carousel movement */
.industry-track {
  transition-duration: .38s !important;
}

/* v3.12.3 — Billing carousel mobile responsive correction */
@media (max-width: 820px) {
  .billing-showcase {
    overflow: hidden !important;
  }

  .industry-carousel {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 8px 18px 50px !important;
    overflow: hidden !important;
  }

  .industry-track {
    gap: 0 !important;
    width: 100% !important;
    align-items: stretch !important;
  }

  .industry-slide {
    flex: 0 0 100% !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    transform: none !important;
    opacity: 1 !important;
    margin: 0 !important;
    border-radius: 20px !important;
  }

  .industry-slide.is-active {
    transform: none !important;
  }

  .industry-slide img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 10 !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
  }

  /* The round pictogram is decorative and was being clipped over the
     image/content boundary on mobile. Hide it on phones/tablets. */
  .industry-slide .industry-icon,
  .industry-slide .slide-icon,
  .industry-slide .icon,
  .industry-slide img + .industry-icon {
    display: none !important;
  }

  .industry-copy {
    padding: 22px 24px 26px !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .industry-copy h3,
  .industry-copy p {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .industry-copy h3 {
    font-size: 1.55rem !important;
  }

  .industry-copy p {
    font-size: .98rem !important;
    line-height: 1.55 !important;
  }

  .industry-dots {
    bottom: 10px !important;
  }
}

@media (max-width: 480px) {
  .industry-carousel {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .industry-copy {
    padding: 20px 22px 24px !important;
  }
}

/* v3.12.4 — remove embedded lower-edge pictogram area + strict mobile viewport */
.industry-slide {
  overflow: hidden !important;
}

/* The source card images include a small circular pictogram at their lower edge.
   Crop that lower strip consistently so the symbol is not visible. */
.industry-slide img {
  clip-path: inset(0 0 8% 0);
  margin-bottom: -5% !important;
}

/* Keep the content panel cleanly over the cropped image edge. */
.industry-copy {
  position: relative;
  z-index: 2;
  background: #fff;
}

@media (max-width: 820px) {
  .industry-carousel {
    overflow: hidden !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .industry-track {
    gap: 0 !important;
    will-change: transform;
  }

  .industry-slide {
    flex: 0 0 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    border-radius: 20px !important;
    overflow: hidden !important;
  }

  .industry-slide img {
    clip-path: inset(0 0 9% 0);
    margin-bottom: -6% !important;
  }
}

/* v3.12.5 — strict single-card mobile carousel */
@media (max-width: 820px) {
  .industry-carousel {
    padding: 8px 14px 50px !important;
    overflow: hidden !important;
  }
  .industry-track {
    display: block !important;
    width: 100% !important;
    transform: none !important;
  }
  .industry-slide {
    display: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .industry-slide.is-active {
    display: block !important;
  }
}


/* v3.15 — compact continuously moving client-name ticker */
.client-ecosystem{
  padding:28px 0 30px;
  background:linear-gradient(135deg,#557d6d 0%,#416d5c 48%,#315d4d 100%);
  border-top:1px solid rgba(218,171,76,.48);
  border-bottom:1px solid rgba(218,171,76,.48);
  overflow:hidden;
  scroll-margin-top:105px;
}
.client-heading{
  text-align:center;
  margin:0 auto 17px;
  padding:0 18px;
}
.client-heading .eyebrow{
  margin:0 0 4px;
  color:#f1c66f;
}
.client-heading h2{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.55rem,2.8vw,2.25rem);
  line-height:1.08;
  color:#fffdf6;
}
.client-ticker{
  width:100%;
  overflow:hidden;
  border-top:1px solid rgba(255,255,255,.13);
  border-bottom:1px solid rgba(255,255,255,.13);
  background:rgba(4,49,39,.28);
  padding:12px 0;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);
}
.client-ticker-track{
  display:flex;
  align-items:center;
  width:max-content;
  white-space:nowrap;
  will-change:transform;
  animation:clientTicker 24s linear infinite;
}
.client-ticker:hover .client-ticker-track{
  animation-play-state:paused;
}
.client-ticker-item{
  display:inline-flex;
  align-items:center;
  color:#fffdf6;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1rem;
  font-weight:700;
  letter-spacing:.01em;
}
.client-ticker-item::after{
  content:"◆";
  color:#e2ae45;
  font-size:.52rem;
  margin:0 24px;
}
@keyframes clientTicker{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media(max-width:620px){
  .client-ecosystem{padding:23px 0 25px;scroll-margin-top:88px}
  .client-heading{margin-bottom:14px}
  .client-heading h2{font-size:1.55rem}
  .client-ticker{padding:10px 0}
  .client-ticker-track{animation-duration:19s}
  .client-ticker-item{font-size:.92rem}
  .client-ticker-item::after{margin:0 18px}
}
@media(prefers-reduced-motion:reduce){
  .client-ticker-track{animation:none}
}

/* v3.16 — NSM Sons Group About / Vision / Mission / Community */
.about-group{
  padding:72px 0 68px;
  background:#fff;
  scroll-margin-top:105px;
}
.about-intro{
  max-width:900px;
  margin:0 auto 38px;
  text-align:center;
}
.about-intro h2{
  margin:5px 0 8px;
  color:#043f31;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.15rem,4vw,3.15rem);
  line-height:1.05;
}
.about-intro h3{
  max-width:760px;
  margin:0 auto 18px;
  color:#a66b16;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.2rem,2.2vw,1.55rem);
  line-height:1.35;
}
.about-intro p{
  max-width:820px;
  margin:9px auto;
  color:#46564f;
  line-height:1.75;
}
.about-pillars{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  max-width:1120px;
  margin:0 auto 42px;
}
.about-pillar{
  position:relative;
  min-height:205px;
  padding:26px 25px 24px;
  border-radius:19px;
  overflow:hidden;
  border:1px solid transparent;
  transition:transform .22s ease,box-shadow .22s ease;
}
.about-pillar:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 30px rgba(20,57,45,.12);
}
.about-pillar.vision{
  background:#073f32;
  color:#fff;
  border-color:#175c4c;
}
.about-pillar.mission{
  background:linear-gradient(135deg,#fff7e5,#f4dfad);
  color:#173c32;
  border-color:#dfb45d;
}
.about-pillar.community{
  background:linear-gradient(135deg,#e9f3ea,#cfe2d4);
  color:#173c32;
  border-color:#aac9b3;
}
.pillar-number{
  display:block;
  margin-bottom:20px;
  color:#c88920;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.13em;
}
.about-pillar h3{
  margin:0 0 12px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.55rem;
}
.about-pillar p{
  margin:0;
  line-height:1.65;
  font-size:.93rem;
}
.about-pillar.vision p{color:#e6efec}
.about-businesses{
  max-width:1120px;
  margin:0 auto;
  text-align:center;
}
.about-businesses>.eyebrow{margin-bottom:14px}
.about-business-links{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.about-business-link{
  display:flex;
  min-height:82px;
  flex-direction:column;
  justify-content:center;
  padding:13px 14px;
  text-decoration:none;
  border:1px solid #dfd8ca;
  border-radius:13px;
  background:#fbfaf6;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.about-business-link strong{
  color:#064b3a;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1rem;
}
.about-business-link span{
  margin-top:5px;
  color:#a66b16;
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.about-business-link:hover{
  transform:translateY(-4px);
  border-color:#c99738;
  background:#fff8e9;
  box-shadow:0 9px 18px rgba(20,57,45,.09);
}
@media(max-width:850px){
  .about-pillars{grid-template-columns:1fr}
  .about-pillar{min-height:auto}
  .about-business-links{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .about-group{padding:52px 0 50px;scroll-margin-top:88px}
  .about-intro{margin-bottom:28px}
  .about-intro p{text-align:left}
  .about-pillars{gap:11px;margin-bottom:32px}
  .about-pillar{padding:22px 20px}
  .about-business-links{grid-template-columns:1fr 1fr;gap:8px}
  .about-business-link{min-height:76px;padding:10px 8px}
  .about-business-link strong{font-size:.9rem}
  .about-business-link span{font-size:.61rem}
}

/* v3.16.1 — About pillar colour refinement */
.about-pillar{
  padding-top:26px;
}
.about-pillar.vision{
  background:linear-gradient(135deg,#fff3cf 0%,#f5dda2 100%);
  color:#173c32;
  border-color:#dfb45d;
}
.about-pillar.mission{
  background:linear-gradient(135deg,#ffffff 0%,#f5f3ed 100%);
  color:#173c32;
  border-color:#ddd9cf;
}
.about-pillar.community{
  background:linear-gradient(135deg,#eaf6fb 0%,#d4eaf3 100%);
  color:#173c32;
  border-color:#b6d8e5;
}
.about-pillar.vision p,
.about-pillar.mission p,
.about-pillar.community p{
  color:#334b43;
}

/* v3.17 — NSM Sons Group contact section */
.contact-section{
  padding:68px 0 72px;
  background:linear-gradient(135deg,#fbf7ed 0%,#f7f1e5 58%,#edf3ee 100%);
  border-top:1px solid #eadcc0;
  scroll-margin-top:105px;
}
.contact-heading{
  max-width:820px;
  margin:0 auto 30px;
  text-align:center;
}
.contact-heading h2{
  margin:5px 0 10px;
  color:#043f31;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.08;
}
.contact-heading>p:last-child{
  margin:0 auto;
  max-width:690px;
  color:#53625c;
  line-height:1.65;
}
.contact-layout{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.35fr);
  gap:18px;
  max-width:1080px;
  margin:0 auto;
}
.contact-card,
.enquiry-card{
  border-radius:20px;
  box-shadow:0 14px 32px rgba(20,57,45,.09);
}
.contact-card{
  padding:30px 28px;
  background:linear-gradient(145deg,#063f31,#075542);
  color:#fff;
  border:1px solid rgba(217,168,66,.42);
}
.contact-kicker{
  margin:0 0 8px;
  color:#e5b44e;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.15em;
}
.contact-card h3,
.enquiry-card h3{
  margin:0 0 13px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.65rem;
}
.contact-copy{
  margin:0 0 25px;
  color:#e4efeb;
  line-height:1.65;
  font-size:.92rem;
}
.contact-detail{
  padding:13px 0;
  border-top:1px solid rgba(255,255,255,.13);
}
.contact-detail-label{
  display:block;
  margin-bottom:4px;
  color:#d8b56a;
  font-size:.67rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.contact-detail a{
  color:#fff;
  text-decoration:none;
  font-weight:700;
}
.contact-detail a:hover{text-decoration:underline}
.contact-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:22px;
}
.contact-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:9px 16px;
  border-radius:999px;
  text-decoration:none;
  font-size:.82rem;
  font-weight:900;
  transition:transform .18s ease,box-shadow .18s ease;
}
.contact-action:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 16px rgba(0,0,0,.14);
}
.contact-action-primary{
  background:#d8a43b;
  color:#073f32;
}
.contact-action-secondary{
  border:1px solid rgba(255,255,255,.5);
  color:#fff;
  background:rgba(255,255,255,.06);
}
.enquiry-card{
  padding:30px;
  background:#fffdf8;
  border:1px solid #e2d8c4;
}
.enquiry-card h3{color:#063f31}
.enquiry-form{
  display:grid;
  gap:14px;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.enquiry-form label{
  display:grid;
  gap:6px;
  color:#29453b;
  font-size:.77rem;
  font-weight:800;
}
.enquiry-form input,
.enquiry-form select,
.enquiry-form textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #d8d5ca;
  border-radius:10px;
  background:#fff;
  color:#203b33;
  padding:11px 12px;
  font:inherit;
  font-weight:500;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.enquiry-form textarea{resize:vertical;min-height:100px}
.enquiry-form input:focus,
.enquiry-form select:focus,
.enquiry-form textarea:focus{
  border-color:#c99738;
  box-shadow:0 0 0 3px rgba(201,151,56,.12);
}
.enquiry-submit-row{
  display:flex;
  align-items:center;
  gap:13px;
  margin-top:2px;
}
.enquiry-submit{
  flex:0 0 auto;
  border:0;
  border-radius:999px;
  background:#064b3a;
  color:#fff;
  padding:11px 19px;
  font-weight:900;
  cursor:pointer;
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.enquiry-submit:hover{
  background:#0a5c48;
  transform:translateY(-2px);
  box-shadow:0 8px 16px rgba(20,57,45,.16);
}
.enquiry-submit-row small{
  color:#77827d;
  line-height:1.35;
  font-size:.68rem;
}
@media(max-width:820px){
  .contact-layout{grid-template-columns:1fr}
}
@media(max-width:620px){
  .contact-section{padding:50px 0 54px;scroll-margin-top:88px}
  .contact-heading{margin-bottom:23px}
  .contact-card,.enquiry-card{padding:24px 20px;border-radius:16px}
  .form-row{grid-template-columns:1fr}
  .enquiry-submit-row{align-items:flex-start;flex-direction:column}
  .enquiry-submit{width:100%}
}

/* v3.18 — NSM Sons Group footer + persistent Home arrow */
.site-footer{
  position:relative;
  background:linear-gradient(145deg,#04382d 0%,#052f27 58%,#03261f 100%);
  color:#eaf1ee;
  border-top:3px solid #c99b43;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.45fr 1fr .85fr 1.15fr;
  gap:34px;
  padding-top:48px;
  padding-bottom:38px;
}
.footer-brand img{
  display:block;
  max-width:190px;
  max-height:78px;
  width:auto;
  height:auto;
  object-fit:contain;
}
.footer-logo-link{
  display:inline-block;
  text-decoration:none;
  transition:transform .18s ease,opacity .18s ease;
}
.footer-logo-link:hover{transform:translateY(-2px);opacity:.94}
.footer-tagline{
  max-width:300px;
  margin:17px 0 9px;
  color:#f1f4f2;
  line-height:1.65;
  font-size:.9rem;
}
.footer-focus{
  margin:0;
  color:#d6b66d;
  font-size:.73rem;
  font-weight:800;
  letter-spacing:.04em;
}
.footer-focus span{padding:0 4px;color:#c99b43}
.footer-column{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:9px;
}
.footer-column h3{
  margin:2px 0 8px;
  color:#d9b45f;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.03rem;
}
.footer-column>a{
  color:#e5eeea;
  text-decoration:none;
  font-size:.82rem;
  line-height:1.45;
  transition:color .16s ease,transform .16s ease;
}
.footer-column>a:hover{
  color:#e5bc62;
  transform:translateX(2px);
}
.footer-socials{
  display:flex;
  gap:9px;
  margin-top:9px;
}
.social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid rgba(218,180,95,.55);
  background:rgba(255,255,255,.06);
  color:#fff;
  text-decoration:none;
  font-size:.78rem;
  font-weight:900;
  transition:transform .18s ease,background .18s ease,color .18s ease;
}
.social-link:hover{
  transform:translateY(-2px);
  background:#d8aa4d;
  color:#07392e;
}
.social-note{
  max-width:240px;
  margin:3px 0 0;
  color:#aebfba;
  font-size:.66rem;
  line-height:1.45;
}
.footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:62px;
  border-top:1px solid rgba(215,178,94,.24);
}
.footer-bottom p{
  margin:0;
  color:#bdcbc6;
  font-size:.72rem;
}
.footer-home-link{
  color:#d9b45f;
  text-decoration:none;
  font-size:.72rem;
  font-weight:800;
}
.footer-home-link:hover{text-decoration:underline}
.scroll-top{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(222,184,99,.78);
  background:#064b3a;
  color:#fff;
  text-decoration:none;
  font-size:1.45rem;
  font-weight:700;
  box-shadow:0 8px 22px rgba(0,0,0,.22);
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.scroll-top:hover{
  transform:translateY(-3px);
  background:#0a5d48;
  box-shadow:0 12px 26px rgba(0,0,0,.25);
}
@media(max-width:900px){
  .footer-grid{grid-template-columns:1.3fr 1fr 1fr;gap:28px}
  .footer-contact{grid-column:1/-1}
}
@media(max-width:650px){
  .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:28px 20px;
    padding-top:38px;
  }
  .footer-brand,.footer-contact{grid-column:1/-1}
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:5px;
    padding-top:14px;
    padding-bottom:14px;
  }
  .scroll-top{
    right:15px;
    bottom:15px;
    width:43px;
    height:43px;
  }
}

/* v3.19 — real social icons; remove placeholder note */
.footer-socials .social-link{
  border:0;
  background:transparent;
  width:32px;
  height:32px;
  padding:3px;
  border-radius:0;
}
.footer-socials .social-link svg{
  width:24px;
  height:24px;
  display:block;
  fill:#e8bc5d;
  transition:fill .18s ease,transform .18s ease;
}
.footer-socials .social-link:hover{
  background:transparent;
  transform:none;
}
.footer-socials .social-link:hover svg{
  fill:#ffffff;
  transform:translateY(-2px);
}

/* v3.20 — center footer copyright row */
.footer-bottom{
  position:relative;
  justify-content:center;
  text-align:center;
}
.footer-bottom p{
  text-align:center;
}
.footer-home-link{
  position:absolute;
  right:0;
}
@media(max-width:650px){
  .footer-bottom{
    align-items:center;
    text-align:center;
  }
  .footer-home-link{
    position:static;
  }
}

/* v3.21 — move website URL into Contact Us and keep copyright centered */
.footer-contact-website{
  display:inline-block;
  margin-top:5px;
  color:#d9b45f !important;
  text-decoration:none;
  font-size:.78rem !important;
  font-weight:800;
}
.footer-contact-website:hover{
  color:#ffffff !important;
  transform:none !important;
  text-decoration:underline;
}
.footer-bottom{
  justify-content:center;
  text-align:center;
}
.footer-bottom p{
  width:100%;
  text-align:center;
}

/* v3.22 — production readiness, legal pages and footer legal links */
.footer-bottom{
  flex-direction:column;
  gap:7px;
  padding-top:15px;
  padding-bottom:15px;
}
.footer-legal{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:.7rem;
}
.footer-legal a{
  color:#d9b45f;
  text-decoration:none;
}
.footer-legal a:hover{color:#fff;text-decoration:underline}
.footer-legal span{color:#758f86}

.legal-page{
  min-height:100vh;
  background:linear-gradient(135deg,#fbf8f0 0%,#f4f1e8 100%);
  color:#243b34;
}
.legal-header{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid #e6ddca;
}
.legal-header-inner{
  max-width:1040px;
  margin:0 auto;
  padding:12px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.legal-header img{
  display:block;
  width:auto;
  height:54px;
  object-fit:contain;
}
.legal-home{
  color:#064b3a;
  font-weight:800;
  text-decoration:none;
}
.legal-home:hover{text-decoration:underline}
.legal-main{
  max-width:920px;
  margin:0 auto;
  padding:54px 22px 70px;
}
.legal-main .eyebrow{color:#a97b27}
.legal-main h1{
  margin:7px 0 8px;
  color:#043f31;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.1rem,5vw,3.4rem);
}
.legal-updated{margin:0 0 30px;color:#74817c;font-size:.82rem}
.legal-intro{
  padding:20px 22px;
  margin-bottom:28px;
  border:1px solid #e5d6b6;
  border-radius:14px;
  background:#fffdf8;
  line-height:1.7;
}
.legal-section{
  padding:22px 0;
  border-bottom:1px solid #e2ddd2;
}
.legal-section h2{
  margin:0 0 10px;
  color:#07513f;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.35rem;
}
.legal-section p,.legal-section li{line-height:1.72;color:#42534d}
.legal-section ul{padding-left:20px}
.legal-section a{color:#07513f;font-weight:700}
.legal-note{
  margin-top:28px;
  padding:16px 18px;
  border-left:3px solid #c99b43;
  background:#f7efd9;
  color:#5e543e;
  line-height:1.6;
  font-size:.85rem;
}
.legal-footer{
  background:#04382d;
  color:#dbe6e2;
  text-align:center;
  padding:22px;
  font-size:.76rem;
}
.legal-footer a{color:#e1b65a;text-decoration:none}
@media(max-width:620px){
  .legal-header-inner{padding:10px 16px}
  .legal-header img{height:44px}
  .legal-main{padding:38px 18px 55px}
}


/* v3.23 — mobile navigation open/close state */
@media(max-width:820px){
  .main-nav.is-open{
    display:flex;
  }
  .menu-toggle.is-open span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
  }
  .menu-toggle.is-open span:nth-child(2){
    opacity:0;
  }
  .menu-toggle.is-open span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
  }
  .menu-toggle span{
    transition:transform .18s ease,opacity .18s ease;
  }
}


/* v3.24 — mobile navigation as a vertical drawer */
@media(max-width:820px){
  .site-header{
    position:relative;
    z-index:1100;
  }

  .main-nav{
    position:absolute;
    top:100%;
    right:0;
    left:auto;
    width:min(82vw,340px);
    height:auto;
    max-height:calc(100vh - 88px);
    overflow-y:auto;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:14px 24px 24px;
    background:#ffffff;
    border-top:1px solid #eadfc9;
    border-left:1px solid #eadfc9;
    box-shadow:-14px 18px 32px rgba(9,43,34,.18);
  }

  .main-nav.is-open{
    display:flex;
  }

  .main-nav a{
    display:flex;
    align-items:center;
    width:100%;
    min-height:54px;
    box-sizing:border-box;
    padding:14px 2px;
    margin:0;
    border-bottom:1px solid #e7e1d6;
    color:#173f34;
    font-size:.88rem;
    line-height:1.2;
    letter-spacing:.08em;
    text-align:left;
    white-space:normal;
  }

  .main-nav a:last-child{
    border-bottom:0;
  }

  .main-nav a::after{
    content:"›";
    margin-left:auto;
    padding-left:18px;
    color:#c18e31;
    font-size:1.35rem;
    line-height:1;
  }

  .main-nav a:hover,
  .main-nav a:focus{
    color:#a77621;
    background:#fbf8f0;
  }
}

@media(max-width:480px){
  .main-nav{
    width:calc(100vw - 48px);
    max-width:330px;
  }
}


/* v3.27 — compact round NSM company mark in header/footer */
.brand img,
.site-brand img,
.header-brand img,
.logo img{
  object-fit:contain;
}

.footer-brand img{
  width:82px;
  height:82px;
  max-width:82px;
  max-height:82px;
  object-fit:contain;
}

@media(max-width:820px){
  .footer-brand img{
    width:74px;
    height:74px;
    max-width:74px;
    max-height:74px;
  }
}


/* v3.29 — align company logo to the left edge of the header container */
.site-header .header-inner,
.site-header .nav-wrap,
.site-header .container{
  max-width:none;
  width:100%;
}

.site-header .header-inner,
.site-header .nav-wrap{
  padding-left:28px;
  padding-right:28px;
  box-sizing:border-box;
}

@media(max-width:820px){
  .site-header .header-inner,
  .site-header .nav-wrap{
    padding-left:16px;
    padding-right:16px;
  }
}


/* v3.30 — final company-logo alignment and legal-page logo consistency */

/* The old wordmark rule reserved 250–385px for the logo. Override it completely
   now that the brand is a compact circular emblem. */
.site-header .header-inner{
  width:100%;
  max-width:none;
  margin:0;
  padding-left:18px;
  padding-right:28px;
  box-sizing:border-box;
}

.site-header .brand{
  flex:0 0 auto;
  margin:0;
  padding:0;
}

.site-header .brand img{
  display:block;
  width:72px;
  height:72px;
  max-width:72px;
  max-height:72px;
  object-fit:contain;
  margin:0;
}

.site-header nav{
  margin-left:auto;
}

/* Legal pages use the same approved round emblem. */
.legal-header-inner{
  max-width:none;
  width:100%;
  box-sizing:border-box;
  margin:0;
  padding-left:18px;
  padding-right:28px;
}
.legal-header img{
  width:64px;
  height:64px;
  max-width:64px;
  max-height:64px;
  object-fit:contain;
}

@media(max-width:820px){
  .site-header .header-inner{
    padding-left:12px;
    padding-right:16px;
  }
  .site-header .brand img{
    width:62px;
    height:62px;
    max-width:62px;
    max-height:62px;
  }
  .legal-header-inner{
    padding-left:12px;
    padding-right:16px;
  }
  .legal-header img{
    width:56px;
    height:56px;
    max-width:56px;
    max-height:56px;
  }
}


/* v3.37 — mobile-only homepage polish */
@media(max-width:520px){
  /* Give the approved desktop hero more visual presence on phones. */
  .hero{
    width:100%;
    overflow:hidden;
  }
  .hero img{
    display:block;
    width:100%;
    height:240px;
    object-fit:cover;
    object-position:center;
  }

  /* About section: restore comfortable mobile gutters. */
  .about-group{
    box-sizing:border-box;
    padding:56px 20px 52px;
  }
  .about-intro,
  .about-pillars,
  .about-businesses{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  .about-intro p{
    max-width:100%;
  }
}


/* v3.38 — restore the approved hero's original mobile aspect ratio.
   This avoids cropping/stretching and preserves artwork/text quality. */
@media(max-width:520px){
  .hero{
    height:auto;
    overflow:visible;
  }
  .hero img{
    display:block;
    width:100%;
    height:auto;
    object-fit:contain;
    object-position:center;
  }
}


/* v3.39 — mobile-only footer brand centering.
   Desktop footer remains unchanged. */
@media(max-width:650px){
  .site-footer .footer-brand{
    text-align:center;
    justify-self:center;
    width:100%;
  }

  .site-footer .footer-logo-link{
    display:table;
    margin-left:auto;
    margin-right:auto;
  }

  .site-footer .footer-brand img{
    margin-left:auto;
    margin-right:auto;
  }

  .site-footer .footer-tagline{
    margin-left:auto;
    margin-right:auto;
    text-align:center;
  }

  .site-footer .footer-focus{
    text-align:center;
  }
}

/* v3.40 — footer logo transparent background fix only */
.site-footer .footer-logo-link,
.site-footer .footer-brand img {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.site-footer .footer-logo-link {
  padding: 0 !important;
}
