:root{
  --gold:#f1c54a;
  --orange:#ef7a3d;
  --red:#c91f37;
  --blue:#2c84c6;
  --green:#49b36b;
  --ink:#24313a;
  --muted:#66727d;
  --cream:#fff9f0;
  --panel:rgba(255,255,255,.88);
  --shadow:0 16px 50px rgba(32,48,64,.14);
  --radius:28px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  background:
    radial-gradient(circle at 10% 10%, rgba(241,197,74,.08), transparent 28%),
    radial-gradient(circle at 90% 10%, rgba(44,132,198,.08), transparent 28%),
    radial-gradient(circle at 20% 90%, rgba(73,179,107,.08), transparent 28%),
    linear-gradient(180deg, rgba(255,249,240,.98), rgba(255,249,240,.98));
}
img{
  max-width:100%;
  display:block;
  height:auto;
}
a{
  color:inherit;
  text-decoration:none;
}
h1,h2,h3,h4{
  font-family:'Fredoka',system-ui,sans-serif;
  line-height:1.08;
  margin:0 0 .75rem;
}
p{margin:0 0 1rem}
ul{
  padding-left:1.1rem;
  margin:0;
}
.container{
  width:min(1160px, calc(100% - 1.25rem));
  margin-inline:auto;
}
.section{
  padding:clamp(3rem, 6vw, 5rem) 0;
}
.panel,
.card,
.quote,
details,
.contact-card,
.blog-card,
.form,
.stat{
  background:var(--panel);
  border:1px solid rgba(36,49,58,.08);
  box-shadow:var(--shadow);
  border-radius:var(--radius);
  backdrop-filter:blur(14px);
}
.panel{padding:clamp(1.25rem, 2vw, 2rem)}
.card,
.blog-card,
.contact-card,
.form,
.quote{
  padding:1.25rem;
}
.center{text-align:center}
.muted{color:var(--muted)}
.eyebrow{
  display:inline-flex;
  gap:.45rem;
  align-items:center;
  padding:.45rem .8rem;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(36,49,58,.08);
  font-size:.9rem;
  font-weight:700;
  letter-spacing:.02em;
  margin-bottom:1rem;
}
.eyebrow::before{
  content:"";
  width:.65rem;
  height:.65rem;
  border-radius:999px;
  background:linear-gradient(135deg,var(--gold),var(--orange));
  box-shadow:0 0 0 4px rgba(241,197,74,.18);
}

.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(255,249,240,.84);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(36,49,58,.08);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.75rem 0;
}
.brand{
  display:flex;
  align-items:center;
  gap:.8rem;
  font-family:'Fredoka',system-ui,sans-serif;
}
.brand img{
  width:62px;
  height:62px;
  object-fit:contain;
  flex:none;
}
.brand strong{
  display:block;
  font-size:1.02rem;
  line-height:1.1;
}
.brand span{
  display:block;
  font-family:'Inter',sans-serif;
  font-size:.85rem;
  color:var(--muted);
  margin-top:.12rem;
}
.site-nav{
  display:flex;
  gap:.35rem;
  flex-wrap:wrap;
  align-items:center;
}
.site-nav a{
  padding:.6rem .85rem;
  border-radius:999px;
  font-weight:700;
  transition:.25s ease;
}
.site-nav a:hover,
.site-nav a.active{
  background:rgba(36,49,58,.08);
}
.nav-toggle{
  display:none;
  border:none;
  background:linear-gradient(135deg,var(--gold),var(--orange));
  color:#1a1a1a;
  border-radius:999px;
  padding:.72rem 1rem;
  font-weight:800;
  box-shadow:0 10px 30px rgba(239,122,61,.22);
  min-height:48px;
}

.hero,
.page-hero,
.parallax-strip{
  position:relative;
  overflow:hidden;
  background-image:
    linear-gradient(135deg, rgba(241,197,74,.55), rgba(44,132,198,.22)),
    var(--bg, linear-gradient(135deg, #f6e7b9, #e9f4ff));
  background-attachment:fixed;
  background-size:cover;
  background-position:center;
}
.hero::before,
.page-hero::before,
.parallax-strip::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 15% 15%, rgba(255,255,255,.45), transparent 20%),
    radial-gradient(circle at 85% 20%, rgba(255,255,255,.24), transparent 18%),
    radial-gradient(circle at 65% 75%, rgba(255,255,255,.18), transparent 22%);
  pointer-events:none;
}
.hero .container,
.page-hero .container,
.parallax-strip .container{
  position:relative;
  z-index:1;
  padding:clamp(2rem, 5vw, 4rem) 0;
}
.hero{
  min-height:calc(100svh - 84px);
  display:grid;
  align-items:center;
}
.hero-grid,
.split,
.contact-grid{
  display:grid;
  gap:1.2rem;
  align-items:center;
}
.hero-grid{
  grid-template-columns:1.05fr .95fr;
}
.hero-logo{
  width:min(360px,100%);
  margin-bottom:1rem;
  filter:drop-shadow(0 16px 25px rgba(32,48,64,.15));
}
.hero h1{
  font-size:clamp(2.5rem, 6vw, 5rem);
  max-width:12ch;
}
.hero p{
  font-size:1.06rem;
  max-width:60ch;
}
.action-row{
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
  margin-top:1.2rem;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.95rem 1.2rem;
  border-radius:999px;
  font-weight:800;
  border:1px solid transparent;
  min-height:48px;
  transition:.25s ease;
}
.btn-primary{
  background:linear-gradient(135deg,var(--red),var(--orange));
  color:#fff;
  box-shadow:0 12px 30px rgba(201,31,55,.24);
}
.btn-secondary{
  background:rgba(255,255,255,.72);
  border-color:rgba(36,49,58,.08);
}
.btn:hover{transform:translateY(-2px)}

.hero-media{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:1rem;
}
.media-stack{
  display:grid;
  gap:1rem;
}
.media-card{
  width:100%;
  object-fit:cover;
  border-radius:28px;
  box-shadow:var(--shadow);
  border:1px solid rgba(36,49,58,.08);
}
.media-card.large{
  min-height:430px;
}
.media-card.small{
  min-height:205px;
}

.fact-list,
.feature-list{
  list-style:none;
  padding:0;
  margin:0;
}
.fact-list li{
  display:flex;
  gap:.7rem;
  padding:.65rem 0;
  border-bottom:1px solid rgba(36,49,58,.08);
}
.fact-list li:last-child{border-bottom:0}
.fact-list li::before{
  content:"✓";
  color:var(--green);
  font-weight:900;
}
.feature-list{
  display:grid;
  gap:.75rem;
}
.feature-list li{
  padding:.85rem 1rem;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(36,49,58,.08);
}
.feature-list li::before{
  content:"•";
  color:var(--orange);
  margin-right:.5rem;
  font-weight:900;
}

.page-hero{
  min-height:320px;
  display:grid;
  align-items:end;
  color:#fff;
}
.page-hero h1{
  font-size:clamp(2.2rem, 5vw, 4rem);
}
.page-hero .eyebrow{
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.16);
  color:#fff;
}

.stats-grid,
.grid-2,
.grid-3,
.grid-4,
.photo-grid,
.gallery-grid,
.blog-grid{
  display:grid;
  gap:1rem;
}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.stat{
  padding:1.1rem;
  text-align:center;
}
.stat strong{
  display:block;
  font-size:2rem;
  font-family:'Fredoka',system-ui,sans-serif;
  color:var(--red);
}
.stat span{
  color:var(--muted);
  font-weight:700;
}

.section-image,
.card-image,
.testimonial-image,
.blog-thumb{
  width:100%;
  object-fit:cover;
  border-radius:24px;
  border:1px solid rgba(36,49,58,.08);
  box-shadow:var(--shadow);
}
.section-image{
  min-height:360px;
}
.card-image{
  height:220px;
  margin-bottom:.9rem;
}
.testimonial-image{
  height:210px;
  margin-bottom:.9rem;
}
.blog-thumb{
  height:200px;
  margin-bottom:1rem;
}

.parallax-strip{
  padding:3.4rem 0;
  color:#fff;
  text-align:center;
}
.parallax-strip h2{
  font-size:clamp(1.8rem, 4vw, 3rem);
}

.card .icon{
  width:54px;
  height:54px;
  border-radius:18px;
  display:grid;
  place-items:center;
  font-size:1.4rem;
  margin-bottom:.8rem;
  background:linear-gradient(135deg, rgba(241,197,74,.28), rgba(44,132,198,.16));
}

.quote p:last-child,
.card p:last-child,
.blog-card p:last-child,
.contact-card p:last-child{
  margin-bottom:0;
}

details{
  padding:1rem 1.1rem;
}
details + details{
  margin-top:.85rem;
}
summary{
  cursor:pointer;
  font-weight:800;
  font-family:'Fredoka',system-ui,sans-serif;
}
summary::-webkit-details-marker{display:none}
summary::after{
  content:"+";
  float:right;
  color:var(--red);
}
details[open] summary::after{
  content:"−";
}
details p{
  margin-top:.85rem;
}

.gallery-item{
  position:relative;
  min-height:230px;
  overflow:hidden;
  border-radius:24px;
  background:linear-gradient(135deg, rgba(241,197,74,.92), rgba(255,255,255,.86));
  box-shadow:var(--shadow);
  border:1px solid rgba(36,49,58,.08);
}
.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.gallery-item span{
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:1rem;
  padding:.75rem .95rem;
  border-radius:18px;
  background:rgba(255,255,255,.9);
  font-weight:800;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.gallery-item small{
  display:block;
  margin-top:.2rem;
  color:var(--muted);
  font-weight:600;
}

.contact-grid{
  grid-template-columns:.9fr 1.1fr;
}
.map{
  width:100%;
  min-height:360px;
  border:0;
  border-radius:24px;
  box-shadow:var(--shadow);
}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.9rem;
}
.field{
  display:grid;
  gap:.35rem;
}
.field.full{
  grid-column:1/-1;
}
label{
  font-weight:700;
}
input,textarea,select{
  width:100%;
  padding:.9rem 1rem;
  border-radius:16px;
  border:1px solid rgba(36,49,58,.15);
  background:#fff;
  outline:none;
}
input:focus,
textarea:focus,
select:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 4px rgba(44,132,198,.12);
}
textarea{
  min-height:140px;
  resize:vertical;
}

.blog-grid{
  grid-template-columns:repeat(3,1fr);
}
.blog-card .tag{
  display:inline-block;
  padding:.35rem .7rem;
  border-radius:999px;
  background:rgba(44,132,198,.10);
  color:var(--blue);
  font-size:.85rem;
  font-weight:800;
  margin-bottom:.7rem;
}
.blog-card time{
  display:block;
  color:var(--muted);
  font-size:.92rem;
  margin-bottom:.5rem;
}

.footer{
  background:linear-gradient(135deg,#19232b,#25313b);
  color:#fff;
  margin-top:2rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.2fr .9fr .9fr;
  gap:1rem;
  padding:2rem 0;
}
.footer-logo{
  display:flex;
  align-items:center;
  gap:.8rem;
}
.footer-logo img{
  width:58px;
  height:58px;
  object-fit:contain;
  background:rgba(255,255,255,.1);
  border-radius:16px;
  padding:.3rem;
}
.social-links{
  display:flex;
  gap:.6rem;
  flex-wrap:wrap;
  margin-top:.8rem;
}
.social-links a{
  padding:.6rem .85rem;
  border-radius:999px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.12);
}
.footer-bottom{
  padding:1rem 0 1.5rem;
  color:rgba(255,255,255,.72);
  border-top:1px solid rgba(255,255,255,.12);
  font-size:.92rem;
}

.reveal{
  opacity:0;
  filter:blur(10px);
  transform:translateY(22px) scale(.985);
  transition:opacity .85s ease, transform .85s ease, filter .85s ease;
}
.reveal.visible{
  opacity:1;
  filter:none;
  transform:none;
}

@media (max-width:980px){
  .hero-grid,
  .split,
  .contact-grid,
  .footer-grid{
    grid-template-columns:1fr;
  }
  .hero-media{
    grid-template-columns:1fr;
  }
  .grid-4,
  .grid-3,
  .blog-grid,
  .gallery-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .site-nav{
    display:none;
    position:absolute;
    right:1rem;
    top:74px;
    background:rgba(255,249,240,.98);
    width:min(92vw,380px);
    padding:.7rem;
    border-radius:22px;
    box-shadow:var(--shadow);
    border:1px solid rgba(36,49,58,.08);
    flex-direction:column;
    align-items:stretch;
  }
  .site-nav.open{
    display:flex;
  }
  .nav-toggle{
    display:inline-flex;
  }
  .header-inner{
    position:relative;
  }
}

@media (max-width:680px){
  .grid-4,
  .grid-3,
  .grid-2,
  .blog-grid,
  .gallery-grid,
  .form-grid,
  .hero-grid{
    grid-template-columns:1fr;
  }
  .hero{
    min-height:auto;
  }
  .hero h1{
    max-width:unset;
  }
  .action-row{
    flex-direction:column;
  }
  .btn{
    width:100%;
  }
  .media-card.large{
    min-height:320px;
  }
  .media-card.small{
    min-height:190px;
  }
  .map{
    min-height:300px;
  }
  .site-nav{
    top:68px;
  }
  .brand img{
    width:52px;
    height:52px;
  }
  .gallery-item{
    min-height:210px;
  }
}

@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior:auto;
  }
  .reveal{
    opacity:1;
    filter:none;
    transform:none;
    transition:none;
  }
  .hero,
  .page-hero,
  .parallax-strip{
    background-attachment:scroll;
  }
  .btn{
    transition:none;
  }
}