/* =========================================================
   SSHG Group - Lifestyle page premium styles (lifestyle.css)
   Loaded only by lifestyle.php, AFTER about.css (it reuses the .ab- classes
   for the hero, who-we-are, dark cards, timeline, full-width band, quality
   block and call to action). Everything new here uses the .ls- prefix.
   ========================================================= */

[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- 4. SERVICES (extends .ab-vcard) ---------- */
.ls-svc{display:flex;flex-direction:column}
.ls-svc p{margin:0 0 18px}
.ls-perk{position:relative;align-self:flex-start;display:inline-flex;align-items:center;gap:8px;margin:0 0 20px;padding:6px 13px;border-radius:50px;font:700 .74rem/1.3 "Source Sans 3",system-ui,sans-serif;letter-spacing:.03em;color:var(--g2);background:#7db5441f;border:1px solid #7db54466}
.ls-perk::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--leaf)}
.ls-enq{position:relative;margin-top:auto;display:inline-flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);text-decoration:none}
.ls-enq::after{content:"\2192";display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--o);color:#fff;transition:transform .4s var(--ease)}
.ls-svc:hover .ls-enq::after,.ls-enq:hover::after{transform:translateX(6px)}
@media(prefers-color-scheme:dark){.ls-perk{color:#8FD6A8}}

/* ---------- 5. MORE FROM LIFESTYLE (extends .ab-bcard) ---------- */
.ls-bm img{transform:scale(1.02)}
.ab-bcard:hover .ls-bm img{transform:scale(1.12)}

/* ---------- 6. GALLERY ---------- */
.ls-gal-sec{padding:120px 0}
.ls-filter{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:-20px 0 40px}
.ls-f{cursor:pointer;padding:10px 24px;border-radius:50px;font:700 .92rem "Source Sans 3",system-ui,sans-serif;color:var(--g);background:var(--w);border:1.5px solid var(--line);transition:background .3s,color .3s,border-color .3s,transform .3s var(--ease),box-shadow .3s}
.ls-f:hover{border-color:var(--o);transform:translateY(-2px)}
.ls-f.on{color:#fff;background:var(--o);border-color:var(--o);box-shadow:0 12px 24px #f28a1c44}
@media(prefers-color-scheme:dark){.ls-f{color:#8FD6A8}.ls-f.on{color:#fff}}
.ls-gal{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;grid-auto-flow:dense}
.ls-g{position:relative;margin:0;overflow:hidden;aspect-ratio:4/3;border-radius:26px;background:var(--g);box-shadow:0 18px 44px #0a3d2622;transition:transform .5s var(--ease),box-shadow .5s}
.ls-g.wide{grid-column:span 2;aspect-ratio:auto}
.ls-gal.flt .ls-g.wide{grid-column:auto;aspect-ratio:4/3}
.ls-g img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform 1.2s var(--ease)}
.ls-g::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#041a11d9 0,transparent 55%);opacity:.55;transition:opacity .5s;pointer-events:none}
.ls-g:hover{transform:translateY(-8px);box-shadow:0 34px 64px #0a3d2640}
.ls-g:hover img{transform:scale(1.08)}
.ls-g:hover::after{opacity:1}
.ls-g figcaption{position:absolute;z-index:2;left:16px;bottom:16px;padding:10px 18px;border-radius:50px;font:700 .95rem "Bricolage Grotesque",system-ui,sans-serif;color:#fff;background:linear-gradient(160deg,#ffffff38,#ffffff14);border:1px solid #ffffff44;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.ls-more{margin-top:48px}

/* ---------- 7. PROCESS (extends .ab-road) ---------- */
.ls-alt{background:var(--w)}
.ls-alt .ab-tdot{box-shadow:0 0 0 8px var(--w),0 12px 24px #f28a1c33}

/* ---------- 8. GREEN INITIATIVE PRICE + TAGS (extends .ab-youth) ---------- */
.ls-price{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin:0 0 22px}
.ls-price s{font-size:1.3rem;font-weight:600;color:#9DBBA9}
.ls-price strong{font:800 clamp(2.4rem,4.4vw,3.4rem)/1 "Bricolage Grotesque",system-ui,sans-serif;letter-spacing:-.02em;color:var(--gold)}
.ls-price span{padding:7px 14px;border-radius:50px;font:700 .8rem "Source Sans 3",system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#062A1B;background:linear-gradient(90deg,var(--gold),var(--o))}
.ls-tags{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px;padding:0}
.ls-tags.gold{margin-bottom:30px}
.ls-tags li{padding:9px 16px;border-radius:50px;font:700 .85rem "Source Sans 3",system-ui,sans-serif;color:#fff;background:#ffffff14;border:1px solid #ffffff3a}
.ls-tags.gold li{color:var(--gold);border-color:#f6b73c66}

/* ---------- 9. TESTIMONIALS ---------- */
.ls-testi-sec{padding:120px 0;background:radial-gradient(800px 380px at 0 0,#f28a1c14,transparent 60%),radial-gradient(800px 380px at 100% 100%,#7db5441c,transparent 60%),var(--bg)}
.ls-tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ls-tgrid>div{display:flex}
.ls-tgrid>.full{grid-column:1/-1}
.ls-tcard{position:relative;flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:26px;margin:0;padding:40px 34px 30px;overflow:hidden;border-radius:26px;background:var(--w);border:1px solid var(--line);box-shadow:0 14px 38px #0a3d2612;transition:transform .5s var(--ease),box-shadow .5s,border-color .5s}
.ls-tcard::before{content:"\201C";position:absolute;right:24px;top:-8px;font:800 7rem/1 Georgia,serif;color:var(--o);opacity:.2;pointer-events:none}
.ls-tcard:hover{transform:translateY(-8px);border-color:var(--o);box-shadow:0 34px 66px #0a3d2630}
.ls-tcard blockquote{margin:0}
.ls-tcard blockquote p{margin:0;font-size:1.08rem;line-height:1.7;color:var(--ink)}
.ls-tcard figcaption{display:flex;align-items:center;gap:14px}
.ls-tcard figcaption strong{display:block;font:700 1.05rem/1.25 "Bricolage Grotesque",system-ui,sans-serif;color:var(--ink)}
.ls-tcard figcaption small{display:block;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--o)}
.ls-av{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;font:800 1rem "Bricolage Grotesque",system-ui,sans-serif;letter-spacing:.02em;color:#062A1B;background:linear-gradient(135deg,var(--o),var(--gold));box-shadow:0 8px 18px #f28a1c4d}
.ls-tcard.feat{padding:54px 52px 40px;color:#fff;border:0;background:radial-gradient(700px 360px at 100% 0,#f28a1c33,transparent 60%),linear-gradient(135deg,#062A1B,#0A3D26 60%,#0F5A38);box-shadow:0 34px 72px #0a3d2640}
.ls-tcard.feat::before{right:40px;top:-14px;font-size:11rem;color:var(--gold);opacity:.18}
.ls-tcard.feat blockquote p{max-width:30em;font:700 clamp(1.4rem,2.6vw,2.1rem)/1.4 "Bricolage Grotesque",system-ui,sans-serif;letter-spacing:-.015em;color:#fff}
.ls-tcard.feat figcaption strong{font-size:1.2rem;color:#fff}
.ls-tcard.feat figcaption small{color:var(--gold)}
.ls-tcard.feat:hover{border-color:transparent}

/* ---------- 11. FAQ ---------- */
.ls-faq-sec{padding:120px 0;background:var(--w)}
.ls-faq{display:grid;gap:14px;max-width:880px;margin:0 auto}
.ls-faq details{background:var(--bg);border:1px solid var(--line);border-radius:22px;transition:border-color .4s,box-shadow .4s,background .4s}
.ls-faq details:hover{border-color:var(--o)}
.ls-faq details[open]{background:var(--w);border-color:var(--o);box-shadow:0 22px 48px #0a3d2620}
.ls-faq summary{position:relative;list-style:none;cursor:pointer;padding:24px 76px 24px 28px;font:700 1.16rem/1.35 "Bricolage Grotesque",system-ui,sans-serif;letter-spacing:-.01em;color:var(--g)}
.ls-faq summary::-webkit-details-marker{display:none}
.ls-faq summary::after{content:"+";position:absolute;right:22px;top:50%;display:grid;place-items:center;width:36px;height:36px;margin-top:-18px;border-radius:50%;font:600 1.5rem/1 "Source Sans 3",system-ui,sans-serif;color:#fff;background:var(--o);transition:transform .4s var(--ease)}
.ls-faq details[open] summary::after{content:"\2212";transform:rotate(180deg)}
.ls-faq details p{margin:0;padding:0 28px 26px;font-size:1.06rem;color:var(--mut)}
@media(prefers-color-scheme:dark){.ls-faq summary{color:#8FD6A8}}

/* ---------- 12. ENQUIRY ---------- */
.ls-enq-sec{padding:120px 0;background:var(--bg)}
.ls-contact{list-style:none;display:grid;gap:14px;margin:30px 0 0;padding:0}
.ls-contact li{display:flex;align-items:center;gap:16px;color:var(--mut);line-height:1.5}
.ls-contact .ab-vic{width:52px;height:52px;margin:0;border-radius:16px}
.ls-contact strong{display:block;font:700 1.02rem "Bricolage Grotesque",system-ui,sans-serif;color:var(--ink)}
.ls-contact a{color:var(--mut);text-decoration:none;transition:color .2s}.ls-contact a:hover{color:var(--o)}
.ls-form{display:grid;gap:18px;padding:42px 40px 36px;border-radius:30px;background:var(--w);border:1px solid var(--line);border-top:5px solid var(--o);box-shadow:0 34px 72px #0a3d2626}
.ls-form h3{margin:0 0 4px;font-size:1.7rem;color:var(--g)}
@media(prefers-color-scheme:dark){.ls-form h3{color:#8FD6A8}}
.ls-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ls-field{display:grid;gap:8px;min-width:0}
.ls-field label{font:700 .82rem "Source Sans 3",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.ls-field input,.ls-field select,.ls-field textarea{width:100%;padding:14px 16px;border-radius:14px;font:400 1rem "Source Sans 3",system-ui,sans-serif;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);transition:border-color .3s,box-shadow .3s,background .3s}
.ls-field textarea{resize:vertical;min-height:112px}
.ls-field input:focus,.ls-field select:focus,.ls-field textarea:focus{outline:0;border-color:var(--o);background:var(--w);box-shadow:0 0 0 4px #f28a1c26}
.ls-tel{display:flex}
.ls-tel span{display:grid;place-items:center;padding:0 14px;border-radius:14px 0 0 14px;font-weight:700;color:var(--ink);background:var(--line);border:1.5px solid var(--line);border-right:0}
.ls-tel input{border-radius:0 14px 14px 0}
.ls-form .btn{width:100%;padding:16px 24px;font-size:1.05rem}
.ls-fmsg{min-height:1.4em;margin:0;text-align:center;font-weight:600;color:var(--g2)}
.ls-fmsg.err{color:#C0392B}

/* ---------- responsive ---------- */
@media(max-width:1020px){
  .ls-gal-sec,.ls-testi-sec,.ls-faq-sec,.ls-enq-sec{padding:84px 0}
  .ls-gal{grid-template-columns:repeat(2,1fr);gap:18px}
  .ls-tgrid{grid-template-columns:repeat(2,1fr)}
  .ls-tcard.feat{padding:44px 34px 32px}
}
@media(max-width:620px){
  .ls-gal{grid-template-columns:1fr}
  .ls-g.wide{grid-column:auto;aspect-ratio:4/3}
  .ls-filter{gap:8px;margin-top:-28px}
  .ls-f{padding:9px 16px;font-size:.84rem}
  .ls-tgrid{grid-template-columns:1fr}
  .ls-tcard{padding:36px 24px 26px}
  .ls-tcard.feat{padding:40px 24px 28px}
  .ls-tcard.feat::before{font-size:8rem;right:16px}
  .ls-faq summary{padding:20px 64px 20px 20px;font-size:1.04rem}
  .ls-faq summary::after{right:16px}
  .ls-faq details p{padding:0 20px 22px}
  .ls-form{padding:32px 22px 28px;border-radius:24px}
  .ls-row{grid-template-columns:1fr}
  .ls-price{gap:6px 14px}
  .ls-tags li{padding:8px 13px;font-size:.8rem}
  .ls-more .btn{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){.ls-g,.ls-g img,.ls-tcard,.ls-f{transition:none}}