/* ==========================================================================
   PhotoGenieBooths — design tokens + site styles
   Brand: black / sky blue / light grey / white. Premium, modern, fast.
   ========================================================================== */

:root{
  --ink:#0A0C10;
  --ink-2:#14171D;
  --ink-soft:#1D2129;
  --sky:#2BAADD;
  --sky-strong:#1B93CE;
  --sky-soft:#E4F4FB;
  --sky-soft-border:#BEE3F3;
  --grey:#EDF1F5;
  --grey-2:#F6F8FA;
  --line:#E1E7EC;
  --white:#FFFFFF;
  --text:#12151B;
  --text-muted:#5B6774;
  --text-faint:#8B97A3;
  --success:#1B8F5F;
  --radius-sm:8px;
  --radius-md:14px;
  --radius-lg:22px;
  --shadow-sm:0 1px 2px rgba(10,12,16,.06), 0 1px 1px rgba(10,12,16,.04);
  --shadow-md:0 12px 32px rgba(10,12,16,.10);
  --shadow-lg:0 24px 64px rgba(10,12,16,.18);
  --font-display:'Sora', ui-sans-serif, system-ui, sans-serif;
  --font-body:'Inter', ui-sans-serif, system-ui, sans-serif;
  --container:1240px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;} *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.6;
}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0 0 .5em;line-height:1.15;letter-spacing:-.01em;}
h1{font-size:clamp(2.1rem,4.6vw,3.6rem);}
h2{font-size:clamp(1.7rem,3.2vw,2.5rem);}
h3{font-size:1.3rem;}
p{margin:0 0 1em;color:var(--text-muted);}
a{color:inherit;text-decoration:none;}
img,video{max-width:100%;display:block;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;font-size:inherit;}
.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
section{padding:88px 0;}
@media (max-width:780px){section{padding:56px 0;}}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-display);font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sky-strong);background:var(--sky-soft);border:1px solid var(--sky-soft-border);
  padding:6px 14px;border-radius:100px;margin-bottom:18px;
}
.section-head{max-width:680px;margin:0 0 48px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head p{font-size:1.08rem;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--font-display);font-weight:600;font-size:15px;
  padding:14px 26px;border-radius:100px;border:1px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
  white-space:nowrap;
}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--sky);color:var(--ink);box-shadow:0 8px 24px rgba(43,170,221,.35);}
.btn-primary:hover{background:var(--sky-strong);color:var(--white);box-shadow:0 10px 30px rgba(27,147,206,.4);}
.btn-dark{background:var(--ink);color:var(--white);}
.btn-dark:hover{background:var(--ink-soft);}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.35);color:var(--white);}
.btn-ghost:hover{background:rgba(255,255,255,.12);}
.btn-outline{background:transparent;border-color:var(--line);color:var(--ink);}
.btn-outline:hover{border-color:var(--sky);color:var(--sky-strong);}
.btn-block{width:100%;}
.btn-sm{padding:10px 18px;font-size:13.5px;}

/* ---------- header ---------- */
#site-header{position:sticky;top:0;z-index:1000;background:rgba(10,12,16,.86);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08);}
.header-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:var(--container);margin:0 auto;gap:20px;}
.header-logo img{height:30px;width:auto;}
.header-nav{display:flex;align-items:center;gap:30px;}
.header-nav a{font-size:14.5px;font-weight:500;color:#D7DDE4;transition:color .15s;}
.header-nav a:hover,.header-nav a.active{color:var(--sky);}
.header-actions{display:flex;align-items:center;gap:14px;}
.header-call{display:flex;align-items:center;gap:8px;color:#D7DDE4;font-size:14px;font-weight:600;}
.header-call svg{color:var(--sky);}
.nav-toggle{display:none;background:none;border:none;color:#fff;padding:6px;}
.mobile-nav{display:none;position:fixed;inset:0;background:var(--ink);z-index:1100;padding:24px;}
.mobile-nav.open{display:flex;flex-direction:column;}
.mobile-nav-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px;}
.mobile-nav a{display:block;padding:16px 4px;font-size:1.2rem;font-family:var(--font-display);font-weight:600;color:#fff;border-bottom:1px solid rgba(255,255,255,.08);}
.mobile-nav .btn{margin-top:24px;}
@media (max-width:960px){
  .header-nav,.header-call{display:none;}
  .nav-toggle{display:block;}
}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden;padding:0;}
.hero-glow{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(680px 480px at 82% 18%, rgba(43,170,221,.22), transparent 70%),
    radial-gradient(500px 400px at 8% 88%, rgba(43,170,221,.12), transparent 70%);
}
.hero-inner{position:relative;z-index:1;padding:150px 24px 100px;max-width:var(--container);margin:0 auto;width:100%;}
.hero-split{display:grid;grid-template-columns:1.2fr 0.8fr;gap:56px;align-items:center;}
.hero-inner .eyebrow{background:rgba(43,170,221,.16);border-color:rgba(43,170,221,.4);color:#8FE0FF;}
.hero h1{color:#fff;}
.hero h1 .accent{color:var(--sky);}
.hero-sub{font-size:1.18rem;color:#C9D2DA;max-width:560px;margin-bottom:34px;}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:44px;}
.hero-trust{display:flex;flex-wrap:wrap;gap:28px;align-items:center;padding-top:28px;border-top:1px solid rgba(255,255,255,.14);}
.trust-item{display:flex;align-items:center;gap:10px;color:#D7DDE4;font-size:14px;font-weight:500;}
.trust-item strong{color:#fff;font-family:var(--font-display);font-size:1.05rem;}
.stars{color:#FFC94A;letter-spacing:2px;}

.hero-visual{display:flex;justify-content:center;}
.hero-video-frame{
  position:relative;width:100%;max-width:340px;aspect-ratio:9/16;border-radius:28px;overflow:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.08);
  animation:heroFrameIn 1s cubic-bezier(.16,.8,.24,1) .2s both;
}
.hero-video-frame::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);pointer-events:none;}
.hero-video-frame::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,10,13,0) 55%,rgba(8,10,13,.55) 100%);pointer-events:none;}
.hero-video-frame video,.hero-video-frame img{width:100%;height:100%;object-fit:cover;display:block;}
@keyframes heroFrameIn{from{opacity:0;transform:translateY(26px) scale(.97);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.hero-video-frame{animation:none;}}

@media (max-width:900px){
  .hero-split{grid-template-columns:1fr;gap:36px;text-align:center;}
  .hero-cta{justify-content:center;}
  .hero-trust{justify-content:center;}
  .hero-sub{margin-left:auto;margin-right:auto;}
  .hero-video-frame{max-width:270px;}
}
@media (max-width:780px){.hero-inner{padding:120px 20px 56px;}}

/* small dark page header for inner pages */
.page-hero{background:var(--ink);color:#fff;padding:150px 0 70px;position:relative;}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 85% 0%,rgba(43,170,221,.18),transparent 70%);}
.page-hero .container{position:relative;}
.page-hero h1{color:#fff;}
.breadcrumb{color:#93A0AC;font-size:13.5px;margin-bottom:16px;}
.breadcrumb a:hover{color:var(--sky);}

/* ---------- service area chips ---------- */
.chip-row{display:flex;flex-wrap:wrap;gap:10px;}
.chip{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#D7DDE4;padding:7px 14px;border-radius:100px;font-size:13px;font-weight:500;}
.chip.light{background:var(--grey);border-color:var(--line);color:var(--text);}
.chip.light:hover{border-color:var(--sky);color:var(--sky-strong);}

/* ---------- services / feature cards ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
@media (max-width:960px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.grid-3,.grid-4,.grid-2{grid-template-columns:1fr;}}

.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);padding:32px 28px;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:transparent;}
.card .icon-badge{width:50px;height:50px;border-radius:14px;background:var(--sky-soft);color:var(--sky-strong);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.card h3{margin-bottom:8px;}
.card p{margin-bottom:0;font-size:14.5px;}

.section-dark{background:var(--ink);color:#fff;}
.section-dark h2,.section-dark h3{color:#fff;}
.section-dark p{color:#AEB8C2;}
.section-grey{background:var(--grey-2);}

/* ---------- how it works ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;counter-reset:step;}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.steps{grid-template-columns:1fr;}}
.step{position:relative;padding-top:8px;}
.step-num{font-family:var(--font-display);font-weight:800;font-size:2.4rem;color:var(--sky-soft-border);margin-bottom:8px;}

/* ---------- gallery ---------- */
.gallery-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
@media (max-width:900px){.gallery-strip{grid-template-columns:repeat(2,1fr);}}
.gallery-item{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4/5;background:var(--grey);}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-grid{columns:4 220px;column-gap:14px;}
.gallery-grid figure{margin:0 0 14px;break-inside:avoid;border-radius:var(--radius-md);overflow:hidden;background:var(--grey);}
.gallery-grid img{width:100%;display:block;}
@media (max-width:640px){.gallery-grid{columns:2 160px;}}

/* reel strip (portrait video cards, horizontal scroll) */
.reel-strip{display:flex;gap:16px;overflow-x:auto;padding:6px 4px 20px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;}
.reel-strip::-webkit-scrollbar{height:6px;}
.reel-strip::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px;}
.reel-card{flex:0 0 auto;width:230px;aspect-ratio:9/16;border-radius:var(--radius-md);overflow:hidden;position:relative;background:var(--ink);scroll-snap-align:start;box-shadow:var(--shadow-sm);}
.reel-card video{width:100%;height:100%;object-fit:cover;}
.reel-card .reel-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.25);color:#fff;font-size:34px;pointer-events:none;transition:opacity .2s;}
.reel-card.playing .reel-play{opacity:0;}

/* ---------- pricing ---------- */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch;}
@media (max-width:900px){.pricing-grid{grid-template-columns:1fr;max-width:440px;margin:0 auto;}}
.price-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:36px 30px;display:flex;flex-direction:column;position:relative;}
.price-card.featured{border-color:var(--sky);box-shadow:0 20px 50px rgba(43,170,221,.18);transform:scale(1.03);z-index:1;}
@media (max-width:900px){.price-card.featured{transform:none;}}
.price-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--sky);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.05em;text-transform:uppercase;padding:6px 16px;border-radius:100px;white-space:nowrap;}
.price-name{font-family:var(--font-display);font-weight:700;font-size:1.2rem;margin-bottom:4px;}
.price-tagline{font-size:13.5px;color:var(--text-muted);margin-bottom:20px;}
.price-amount{font-family:var(--font-display);font-weight:800;font-size:2.6rem;color:var(--ink);display:flex;align-items:baseline;gap:6px;margin-bottom:2px;}
.price-amount span{font-size:15px;font-weight:600;color:var(--text-muted);}
.price-hours{font-size:13px;color:var(--text-faint);margin-bottom:24px;}
.price-features{margin:0 0 28px;display:flex;flex-direction:column;gap:12px;flex:1;}
.price-features li{display:flex;gap:10px;font-size:14.5px;color:var(--text);align-items:flex-start;}
.price-features li svg{flex:none;color:var(--sky-strong);margin-top:2px;}
.price-features li.muted{color:var(--text-faint);}
.price-features li.muted svg{color:var(--text-faint);}

/* ---------- testimonials / reviews ---------- */
.review-badge-row{display:flex;align-items:center;gap:16px;margin-bottom:36px;flex-wrap:wrap;}
.review-badge{display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid var(--line);border-radius:100px;padding:10px 20px;box-shadow:var(--shadow-sm);}
.review-badge .g{font-family:var(--font-display);font-weight:700;}
.testi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
@media (max-width:780px){.testi-grid{grid-template-columns:1fr;}}
.testi-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);padding:26px 24px;}
.testi-card .stars{display:block;margin-bottom:12px;}
.testi-name{font-family:var(--font-display);font-weight:700;margin-top:14px;font-size:14.5px;color:var(--ink);}
.testi-loc{font-size:12.5px;color:var(--text-faint);}
#reviews-widget-slot:empty{display:none;}

/* ---------- FAQ accordion ---------- */
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:22px 4px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-family:var(--font-display);font-weight:600;font-size:1.02rem;color:var(--ink);}
.faq-q .plus{flex:none;color:var(--sky-strong);transition:transform .2s;font-size:20px;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-item.open .faq-a{max-height:400px;}
.faq-a p{padding:0 4px 22px;margin:0;}

/* ---------- forms ---------- */
.form-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:36px;box-shadow:var(--shadow-md);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:560px){.form-row{grid-template-columns:1fr;}}
.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:6px;}
.field input,.field select,.field textarea{
  width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  background:var(--grey-2);outline:none;transition:border-color .15s, background .15s;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--sky);background:#fff;}
.field textarea{min-height:110px;resize:vertical;}
.form-note{font-size:12.5px;color:var(--text-faint);margin-top:10px;}

/* ---------- footer ---------- */
footer{background:var(--ink);color:#AEB8C2;padding:64px 0 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;margin-bottom:48px;}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}
.footer-logo img{height:30px;margin-bottom:14px;}
.footer-col h4{color:#fff;font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:16px;}
.footer-col ul li{margin-bottom:10px;}
.footer-col a:hover{color:var(--sky);}
.footer-social{display:flex;gap:12px;margin-top:16px;}
.footer-social a{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;}
.footer-social a:hover{background:var(--sky);color:var(--ink);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12.5px;}
.newsletter-row{display:flex;gap:10px;margin-top:8px;}
.newsletter-row input{flex:1;padding:11px 14px;border-radius:100px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;}
.newsletter-row input::placeholder{color:#8B97A3;}
.newsletter-row button{border-radius:100px;}

/* ---------- location / blog cards ---------- */
.loc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
@media (max-width:900px){.loc-grid{grid-template-columns:repeat(2,1fr);}}
.loc-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);padding:20px;text-align:center;font-family:var(--font-display);font-weight:600;}
.loc-card:hover{border-color:var(--sky);}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media (max-width:900px){.blog-grid{grid-template-columns:1fr;}}
.blog-card{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;}
.blog-card img{aspect-ratio:16/10;object-fit:cover;}
.blog-card-body{padding:22px;}
.blog-meta{font-size:12px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;}
.prose{max-width:720px;margin:0 auto;font-size:1.05rem;}
.prose h2{margin-top:1.6em;}
.prose ul{list-style:disc;padding-left:1.4em;margin-bottom:1em;}
.prose li{margin-bottom:.5em;color:var(--text);}

/* ---------- sticky mobile CTA bar ---------- */
.mobile-cta-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:900;background:var(--ink);padding:10px 14px;gap:10px;box-shadow:0 -6px 20px rgba(0,0,0,.25);}
@media (max-width:780px){.mobile-cta-bar{display:flex;}body{padding-bottom:64px;}}
.mobile-cta-bar .btn{flex:1;}

/* ---------- chat widget ---------- */
#pg-chat-launcher{
  position:fixed;bottom:26px;right:26px;z-index:1200;
  width:64px;height:64px;border-radius:50%;background:var(--sky);color:var(--ink);
  display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(43,170,221,.45);
  border:none;transition:transform .2s ease;
}
#pg-chat-launcher:hover{transform:scale(1.06);}
#pg-chat-launcher svg{width:28px;height:28px;}
.pg-chat-dot{position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:50%;background:#FF5D5D;border:2px solid var(--white);}
@media (max-width:780px){#pg-chat-launcher{bottom:78px;right:16px;width:56px;height:56px;}}

#pg-nudge{
  position:fixed;bottom:100px;right:26px;z-index:1190;max-width:270px;background:#fff;border-radius:16px;
  box-shadow:var(--shadow-lg);padding:16px 18px;display:none;font-size:13.5px;color:var(--text);
}
#pg-nudge.show{display:block;animation:pgpop .25s ease;}
#pg-nudge .pg-nudge-close{position:absolute;top:6px;right:8px;background:none;border:none;color:var(--text-faint);font-size:16px;}
@media (max-width:780px){#pg-nudge{bottom:150px;right:14px;max-width:230px;}}

#pg-chat-panel{
  position:fixed;bottom:26px;right:26px;z-index:1250;width:380px;max-width:92vw;height:600px;max-height:80vh;
  background:#fff;border-radius:20px;box-shadow:var(--shadow-lg);display:none;flex-direction:column;overflow:hidden;
}
#pg-chat-panel.open{display:flex;animation:pgpop .2s ease;}
@keyframes pgpop{from{opacity:0;transform:translateY(10px) scale(.98);}to{opacity:1;transform:none;}}
.pg-chat-head{background:var(--ink);color:#fff;padding:18px 20px;display:flex;align-items:center;gap:12px;}
.pg-chat-head img{width:34px;height:34px;border-radius:50%;background:var(--sky);object-fit:contain;padding:5px;}
.pg-chat-head .who{flex:1;}
.pg-chat-head .who b{display:block;font-family:var(--font-display);font-size:14.5px;}
.pg-chat-head .who span{font-size:11.5px;color:#9EC9DE;display:flex;align-items:center;gap:5px;}
.pg-chat-head .online-dot{width:7px;height:7px;border-radius:50%;background:#3FE07A;}
.pg-chat-close{background:none;border:none;color:#AEB8C2;font-size:20px;padding:4px;}
.pg-chat-body{flex:1;overflow-y:auto;padding:20px;background:var(--grey-2);display:flex;flex-direction:column;gap:14px;}
.pg-msg{max-width:85%;padding:11px 15px;border-radius:16px;font-size:13.8px;line-height:1.45;}
.pg-msg.bot{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start;}
.pg-msg.user{background:var(--sky);color:var(--ink);border-bottom-right-radius:4px;align-self:flex-end;font-weight:600;}
.pg-choices{display:flex;flex-wrap:wrap;gap:8px;}
.pg-choice{background:#fff;border:1.5px solid var(--line);border-radius:100px;padding:9px 16px;font-size:13px;font-weight:600;color:var(--ink);transition:border-color .15s,background .15s;}
.pg-choice:hover{border-color:var(--sky);background:var(--sky-soft);}
.pg-chat-foot{padding:14px 16px;border-top:1px solid var(--line);background:#fff;}
.pg-chat-foot form{display:flex;gap:8px;}
.pg-chat-foot input{flex:1;border:1.5px solid var(--line);border-radius:100px;padding:10px 16px;font-size:13.5px;outline:none;}
.pg-chat-foot input:focus{border-color:var(--sky);}
.pg-chat-foot button{width:40px;height:40px;border-radius:50%;background:var(--sky);border:none;color:var(--ink);display:flex;align-items:center;justify-content:center;flex:none;}
.pg-progress{height:3px;background:var(--line);}
.pg-progress-bar{height:100%;background:var(--sky);transition:width .3s ease;width:8%;}
.pg-typing{display:flex;gap:4px;padding:4px 2px;}
.pg-typing span{width:6px;height:6px;border-radius:50%;background:var(--text-faint);animation:pgtyping 1s infinite;}
.pg-typing span:nth-child(2){animation-delay:.15s;}
.pg-typing span:nth-child(3){animation-delay:.3s;}
@keyframes pgtyping{0%,60%,100%{opacity:.3;}30%{opacity:1;}}

/* ==========================================================================
   PRELOADER
   ========================================================================== */
#pg-preloader{
  position:fixed;inset:0;z-index:5000;background:var(--ink);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .5s ease, visibility .5s ease;
}
#pg-preloader.pg-hide{opacity:0;visibility:hidden;pointer-events:none;}
.pg-preloader-mark{position:relative;width:84px;height:84px;display:flex;align-items:center;justify-content:center;}
.pg-preloader-mark svg{width:100%;height:100%;overflow:visible;}
.pg-preloader-ring{transform-origin:42px 42px;animation:pgspin 1.1s linear infinite;}
.pg-preloader-dot{transform-origin:42px 42px;animation:pgpulse 1.4s ease-in-out infinite;}
@keyframes pgspin{to{transform:rotate(360deg);}}
@keyframes pgpulse{0%,100%{opacity:.6;transform:scale(.88);}50%{opacity:1;transform:scale(1);}}
@media (prefers-reduced-motion:reduce){#pg-preloader{transition:none;} .pg-preloader-ring,.pg-preloader-dot{animation:none;}}

/* ==========================================================================
   SCROLL-REVEAL
   ========================================================================== */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.16,.8,.24,1), transform .7s cubic-bezier(.16,.8,.24,1);}
.reveal.reveal-in{opacity:1;transform:translateY(0);}
.reveal-group .reveal:nth-child(1){transition-delay:.02s;}
.reveal-group .reveal:nth-child(2){transition-delay:.09s;}
.reveal-group .reveal:nth-child(3){transition-delay:.16s;}
.reveal-group .reveal:nth-child(4){transition-delay:.23s;}
.reveal-group .reveal:nth-child(5){transition-delay:.3s;}
.reveal-group .reveal:nth-child(6){transition-delay:.37s;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* hero content entrance (plays once, immediately — not scroll-gated) */
.hero-inner .eyebrow,.hero-inner h1,.hero-inner .hero-sub,.hero-inner .hero-cta,.hero-inner .hero-trust{
  opacity:0;animation:heroUp .8s cubic-bezier(.16,.8,.24,1) forwards;
}
.hero-inner .eyebrow{animation-delay:.05s;}
.hero-inner h1{animation-delay:.15s;}
.hero-inner .hero-sub{animation-delay:.28s;}
.hero-inner .hero-cta{animation-delay:.4s;}
.hero-inner .hero-trust{animation-delay:.52s;}
@keyframes heroUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion:reduce){.hero-inner .eyebrow,.hero-inner h1,.hero-inner .hero-sub,.hero-inner .hero-cta,.hero-inner .hero-trust{opacity:1;animation:none;}}

/* slow Ken-Burns drift on the hero background for a living, premium feel */
.hero-video-frame video,.hero-video-frame img{animation:heroDrift 22s ease-in-out infinite alternate;}
@keyframes heroDrift{from{transform:scale(1.04) translateY(0);}to{transform:scale(1.12) translateY(-1.5%);}}
@media (prefers-reduced-motion:reduce){.hero-video-frame video,.hero-video-frame img{animation:none;}}

/* animated number counters (trust bar) */
.trust-item strong[data-count]{font-variant-numeric:tabular-nums;}

/* ==========================================================================
   "WHY CHOOSE US" — feature list + decorative graphic panel
   ========================================================================== */
.why-grid{display:grid;grid-template-columns:1fr 0.86fr;gap:56px;align-items:center;}
@media (max-width:900px){.why-grid{grid-template-columns:1fr;gap:36px;}}
.why-list{display:flex;flex-direction:column;gap:30px;}
.why-row{display:flex;gap:18px;align-items:flex-start;}
.why-row .icon-badge{flex:none;margin-bottom:0;}
.why-row h3{margin-bottom:6px;}
.why-row p{margin:0;font-size:14.5px;}
.icon-badge{
  width:52px;height:52px;border-radius:15px;flex:none;
  background:linear-gradient(145deg,var(--sky-soft) 0%,#fff 100%);
  color:var(--sky-strong);display:flex;align-items:center;justify-content:center;
  box-shadow:0 1px 2px rgba(10,12,16,.05), inset 0 0 0 1px var(--sky-soft-border);
}
.icon-badge svg.icon{width:24px;height:24px;}
svg.icon{width:16px;height:16px;flex:none;display:block;}
.icon-lg{width:24px;height:24px;}
.why-graphic{
  position:relative;aspect-ratio:1/1;border-radius:28px;overflow:hidden;
  background:var(--ink);
  box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:center;
}
.why-graphic img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,.8,.24,1);}
.why-graphic:hover img{transform:scale(1.05);}
.why-graphic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,16,0) 55%,rgba(10,12,16,.65) 100%);pointer-events:none;}
.why-badge{
  position:absolute;left:22px;bottom:22px;background:rgba(255,255,255,.97);border-radius:16px;
  padding:12px 16px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:2px;
  backdrop-filter:blur(6px);
}
.why-badge-stars{color:#FFC94A;letter-spacing:1px;font-size:13px;}
.why-badge-label{font-size:12.5px;color:var(--text-muted);}
.why-badge-label strong{color:var(--ink);font-family:var(--font-display);}

/* ==========================================================================
   PREMIUM POLISH
   ========================================================================== */
body{opacity:0;animation:pgBodyIn .5s ease forwards;animation-delay:.05s;}
@keyframes pgBodyIn{to{opacity:1;}}
@media (prefers-reduced-motion:reduce){body{opacity:1;animation:none;}}

.eyebrow{position:relative;overflow:hidden;}
.price-card.featured{position:relative;}
.price-card.featured::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;z-index:-1;
  background:linear-gradient(135deg,var(--sky),transparent 40%,transparent 60%,var(--sky));
  opacity:.5;filter:blur(6px);
}
.btn-primary{position:relative;overflow:hidden;}
.card,.price-card,.testi-card,.blog-card,.loc-card{will-change:transform;}
.gallery-item img,.blog-card img{transition:transform .5s cubic-bezier(.16,.8,.24,1);}

::selection{background:var(--sky);color:var(--ink);}

/* ==========================================================================
   TRUST LOGOS — "As seen at" venues & organisations strip
   ========================================================================== */
.trust-logos .section-head h2{max-width:640px;margin-left:auto;margin-right:auto;}
.trust-logo-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;}
.trust-logo-card{
  background:#fff;border-radius:16px;width:190px;height:86px;flex:none;
  display:flex;align-items:center;justify-content:center;padding:14px 22px;
  box-shadow:var(--shadow-sm);transition:transform .2s ease, box-shadow .2s ease;
}
.trust-logo-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.trust-logo-card img{max-width:100%;max-height:46px;width:auto;height:auto;object-fit:contain;}
.trust-logo-card img.invert-dark{filter:brightness(0);}
@media (max-width:640px){.trust-logo-card{width:44%;height:74px;padding:10px 16px;}.trust-logo-card img{max-height:36px;}}
