/* ========== Root / Palette ========== */
:root{
  /* Updated brand gradient */
  --brand-start:#df5f8e;   /* pinkish primary */
  --brand-end:#9C2A76;     /* deep magenta */

  /* Core colors */
  --bg:#ffffff;
  --text:#111111;
  --muted:#5f5f63;
  --primary:#df5f8e;       /* solid brand button color */
  --primary-ink:#ffffff;
  --surface:#FFF6FB;       /* soft pink section background */
  --ring: rgba(223,95,142,.25);
  --star:#111111;
  --radius:16px;
  --shadow:0 6px 20px rgba(0,0,0,.08);
}


/* ========== Global ========== */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}

/* (3) Headings with script font */
h1,h2,.display{ 
  font-family:"Satisfy", cursive; 
  letter-spacing:.3px; 
  line-height:1.15;
}

.container{width:min(1100px,92%);margin-inline:auto}
.section{padding:72px 0}
.section-alt{background:var(--surface)}
.section-title{font-size:clamp(1.4rem,2.4vw + .6rem,2rem);margin:0 0 .25rem}
.section-sub{color:var(--muted);margin:0 0 1.25rem}

/* ========== Header ========== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,.9);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid #eee;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 5px 0;   /* reduce padding */
}

.brand {
  font-weight: 700;
  text-decoration: none;
  color: var(--text);
  letter-spacing: .2px;
}

.brand-accent {
  color: var(--primary);
}

.nav {
  display: flex;
  gap: 20px;
  align-items: center;
}

.nav a {
  color: var(--text);
  text-decoration: none;
  font-weight: 600;
}

.nav a:hover {
  opacity: .85;
}

.brand-logo {
  height: 70px;   /* shrink logo size */
  width: auto;
  display: block;
}

/* Header mobile icons: hidden by default (desktop) */
.mobile-icons{ display:none; gap:10px; }

/* Reuse your existing .icon styling; just tweak size a bit for header */
.mobile-icons .icon{
  width:36px; height:36px;
}

/* Mobile behavior */
@media (max-width:640px){
  /* Hide the main nav on mobile (you already do this) */
  .nav{ display:none; }

  /* Show header icons on mobile */
  .mobile-icons{
    display:flex;
    align-items:center;
    margin-left:auto; /* keeps them on the right */
  }

  /* Hide hero socials on mobile */
  .hero .socials{ display:none; }
}




/* ========== Buttons ========== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:12px;text-decoration:none;font-weight:700;border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,.05)}
.btn-primary{background:var(--primary);color:var(--primary-ink)}
.btn-outline{background:#fff;color:var(--text);border-color:#e5e5e5}
.btn-ghost{background:#fff;color:var(--text);border-color:#efefef}
.btn-pill{border-radius:999px}
.btn:hover{transform:translateY(-1px)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}

/* Social icons */
.icon{display:inline-flex;width:36px;height:36px;border-radius:50%;align-items:center;justify-content:center;background:#fff;border:1px solid #eee; color: #0d0d0f; box-shadow:var(--shadow)}
.icon svg{width:20px;height:20px;fill:currentColor}
.socials{display:flex;gap:10px;margin-top:12px}

/* ========== Hero ========== */
.hero{
  position: relative;
  overflow: hidden; /* wave clips cleanly */
  padding: 48px 0 32px;
  background: linear-gradient(180deg, var(--brand-start) 0%, var(--brand-end) 100%);
  color: #fff;
}

.hero-grid{
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  align-items: center;
  gap: 28px;
}

.hero-copy .overline{
  color:#fff;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.85rem;
  margin:.25rem 0;
}

.hero-copy h1{
  font-size: clamp(1.8rem, 3.2vw + .8rem, 3rem);
  line-height: 1.1;
  margin: .3rem 0 .6rem;
}

.hero-copy .lead{
  color:#fff;
  opacity:.9;
  max-width:48ch;
  margin-bottom:14px;
}

.hero-card{
  background:#fff;
  border-radius:24px;
  box-shadow:var(--shadow);
  aspect-ratio:4/5;
  display:flex;
  overflow:hidden;
}
.hero-card img{ width:100%; height:100%; object-fit:cover; }

/* ========== Wave at bottom edge ========== */
.wave-bottom{
  position:absolute;
  left:0; right:0; bottom:-1px; /* hide sub-pixel seams */
  height: clamp(60px, 9vw, 100px);
  pointer-events:none;
  line-height:0;
}
.wave-bottom svg{ display:block; width:100%; height:100%; }
.wave-bottom path{ fill: var(--bg, #fff); }

/* ========== Entrance reveal ========== */
.animate-on-load .hero-copy,
.animate-on-load .hero-card,
.animate-on-load .wave-bottom{
  opacity: 0;
  transform: translateY(8px);
}

.hero.in .hero-copy  { animation: fadeUp .7s ease-out .05s forwards; }
.hero.in .hero-card  { animation: fadeUp .7s ease-out .18s forwards; }
.hero.in .wave-bottom{ animation: fadeUp .6s ease-out .32s forwards; }

/* ========== Headline shine ========== */
.headline-shine{
  background: linear-gradient(270deg, rgba(255,255,255,.2), rgba(255,255,255,.9), rgba(255,255,255,.2));
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent; /* Safari */
  animation: shine 4s linear infinite;
}

/* ========== CTA pulse ring ========== */
.cta-row .btn{ position:relative; isolation:isolate; }
.cta-row .btn:hover::after,
.cta-row .btn:focus-visible::after{
  content:"";
  position:absolute; inset:-4px;
  border-radius:inherit;
  box-shadow:0 0 0 0 rgba(0,0,0,.12);
  animation: ringPulse .9s ease-out forwards;
  pointer-events:none;
}

/* ========== Keyframes (only what’s used) ========== */
@keyframes fadeUp{
  from{ opacity:0; transform:translateY(8px) scale(.995); }
  to  { opacity:1; transform:translateY(0)   scale(1); }
}
@keyframes shine{
  from{ background-position:200% 0; }
  to  { background-position:0% 0; }
}
@keyframes ringPulse{
  to{ box-shadow:0 0 0 12px rgba(0,0,0,0); }
}

/* ========== Reduced motion ========== */
@media (prefers-reduced-motion: reduce){
  .hero.in .hero-copy,
  .hero.in .hero-card,
  .hero.in .wave-bottom,
  .headline-shine{
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* ========== Responsive ========== */
@media (max-width: 820px){
  .hero-grid{ grid-template-columns:1fr; gap:22px; }
  .hero-copy{ text-align:center; }
  .hero-card{ max-width:520px; margin:0 auto; }
  /* Center cta on mobile */
  .hero-copy .cta-row{ justify-content:center; }
}

/* ========== Ticker ========== */

/* Ticker container */
.ticker {
  overflow: hidden;
  position: relative;
  height: 2.5rem;          /* adjust height */
}

/* Scrolling row */
.ticker-content {
  display: inline-block;
  white-space: nowrap;
  padding-left: 100%;      /* push initial text offscreen */
  animation: ticker 24s linear infinite;
}

.ticker-content span {
  display: inline-block;
  margin-right: 4rem;      /* spacing between messages */
  font-weight: 700;
  font-family: "Satisfy", cursive;
  color: var(--brand-start);
  font-size: 1.25rem;
}

/* Animation */
@keyframes ticker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}




/* ========== Cards / Services ========== */
.card{background:#fff;border:1px solid #eee;border-radius:16px;box-shadow:var(--shadow)}
.card-grid{display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}
.card-grid.three{grid-template-columns:repeat(3,1fr)}
.card img{width:100%;height:220px;object-fit:cover;border-top-left-radius:16px;border-top-right-radius:16px}
.card-body{padding:14px 16px}
.service-card .chips{display:flex;gap:8px;flex-wrap:wrap;padding:0;margin:8px 0 12px;list-style:none}
.chips li{padding:6px 10px;border-radius:999px;background:#f5f5f5;border:1px solid #eee;font-size:.85rem}

/* ========== Special Offer ========== */
/* (5) Offer band */
.offer{padding:40px 0}
.offer-band{
  border-top:4px dotted var(--brand-start);
  border-bottom:4px dotted var(--text);
  padding:28px 12px;
  text-align:center;
  background:#fff;
}
.offer-title{
  margin:0 0 .25rem;
  font-family:"Satisfy", cursive;
  font-weight:700;
  letter-spacing:.18em;
  color:var(--brand-start);
}
.offer-sub{margin:0;font-style:italic}

/* ========== Gallery ========== */
.gallery-grid{display:grid;gap:12px;grid-template-columns:repeat(4,1fr)}
.gallery-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;border:1px solid #eee;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.center{text-align:center;margin-top:16px}

/* ========== About ========== */
.about-grid{display:grid;gap:28px;grid-template-columns:1.2fr .8fr;align-items:center}
.about-photo img{width:100%;border-radius:16px;box-shadow:var(--shadow)}
.list{padding-left:18px}
/* Initial hidden state */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

/* When visible */
.reveal.active {
  opacity: 1;
  transform: translateY(0);
}


/* ========== Reviews ========== */
.quote{padding:18px}
.quote-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:12px}
.quote-name{font-weight:700}
.stars{display:inline-flex;gap:4px;color:var(--star)}
.stars svg{width:18px;height:18px;fill:currentColor}
.quote p{margin:6px 0 0}

/* Testimonials only */
#reviews .testimonials{ align-items:stretch }
#reviews .t-card{
  display:flex; flex-direction:column; align-items:center;
  text-align:center; padding:22px 22px;
  min-height: 210px;
  box-shadow: 0 12px 28px rgba(0,0,0,.06);
}
#reviews .t-head{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  margin-bottom:10px;
}
#reviews .t-name{ font-weight:700 }
#reviews .t-stars{ display:inline-flex; gap:6px }
#reviews .t-stars svg{ width:18px; height:18px; fill:#FFC107 } /* gold */
#reviews .t-text{
  margin:0;
  max-width: 40ch;       /* balanced line-length */
}


/* ========== CTA Strip ========== */
/* (6) Gradient call-to-action section */
.cta-strip{
  background:linear-gradient(90deg, var(--brand-start), var(--brand-end));
  color:#fff; padding:32px 0; text-align:center;
}
.cta-strip .btn-primary{background:#111;color:#fff}

/* ========== Contact ========== */
.contact-grid{display:grid;gap:18px;grid-template-columns:1fr 1fr}
.contact-card{padding:18px}
.details{margin:0}
.details dt{font-weight:700;margin-top:10px}
.details dd{margin:4px 0 10px}
.map iframe{width:100%;height:350px;border:0;border-radius:16px}
#contact .icon:hover {
  background: var(--brand-start);
  color: #fff;
  border-color: var(--brand-start);
}


/* ========== Footer ========== */
.site-footer {
  background: #0d0d0f;
  color: #d9d9db;
  padding: 20px 0;
}

.footer-inner {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  text-align: center;
}

/* Center & stack items on mobile */
@media (max-width: 600px) {
  .footer-inner {
    flex-direction: column;
    gap: 10px;
  }

  .footer-inner p {
    margin: 0;
    line-height: 1.5;
  }
}

.footer-nav a {
  color: #d9d9db;
  text-decoration: none;
  margin-right: 12px;
}

.footer-credit {
  color: #ff69b4;
  font-size: 0.95rem;
  text-align: center;
  font-weight: 600;
  text-decoration: none;
}

.footer-credit:hover {
  text-decoration: underline;
}




/* ========== Responsive ========== */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr}
  .about-grid{grid-template-columns:1fr}
  .card-grid,.card-grid.three{grid-template-columns:1fr 1fr}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
  .contact-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .nav{display:none}
  .card img{height:180px}
  .card-grid,.card-grid.three{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
}
