:root { --ink:#2d2d28; --navy:#315867; --red:#a64b40; --cream:#fbf5ea; --sand:#eee3d0; --line:rgba(45,45,40,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"DM Sans",sans-serif; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
.hero { min-height:750px; color:var(--cream); background:linear-gradient(90deg,rgba(20,43,54,.78),rgba(20,43,54,.42) 52%,rgba(20,43,54,.12)),url("../img/flag.jpg") center/cover; }
.site-nav { --bs-navbar-padding-y:.25rem; border-bottom:1px solid rgba(247,240,228,.3); }
.site-nav .container { position:relative; padding-top:20px; padding-bottom:20px; }
.site-logo { position:absolute; top:calc(100% + 5px); left:50%; z-index:3; display:block; width:182px; transform:translate(-50%,-50%); }
.site-logo img { display:block; width:100%; height:auto; }
.site-nav .nav-link { color:rgba(247,240,228,.82); font-size:13px; }
.site-nav .nav-link:hover { color:var(--cream); }
.site-nav .navbar-toggler { border-color:rgba(247,240,228,.5); }
.site-nav .navbar-toggler-icon { filter:invert(1); }
.hero-content { padding-top:126px; padding-bottom:150px; }
.eyebrow { margin:0 0 23px; color:#e0a08e; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
h1,h2 { margin:0; font-family:Fraunces,Georgia,serif; font-weight:500; letter-spacing:-.045em; line-height:1.04; }
h1 { max-width:700px; font-size:clamp(52px,7vw,92px); }
h2 { font-size:clamp(38px,4.6vw,60px); }
.hero-copy { max-width:480px; margin:28px 0 36px; color:rgba(247,240,228,.82); font-size:17px; line-height:1.7; }
.button { display:inline-flex; gap:13px; align-items:center; padding:15px 20px; border-radius:99px; background:var(--red); color:#fff8ee; font-size:13px; font-weight:700; }
.button span { font-size:18px; }
.section { padding-top:110px; padding-bottom:110px; }
.intro-copy { max-width:530px; color:#5e645c; font-size:17px; line-height:1.75; }
.maker { display:flex; align-items:center; gap:16px; margin-top:38px; padding-top:24px; border-top:1px solid var(--line); }
.maker img { width:82px; height:82px; object-fit:cover; border:4px solid var(--cream); border-radius:50%; box-shadow:0 7px 18px rgba(23,45,59,.16); }
.maker strong { display:block; color:var(--navy); font-family:Fraunces,Georgia,serif; font-size:21px; font-weight:500; }
.maker p { max-width:260px; margin:5px 0 0; color:#656b61; font-size:13px; line-height:1.5; }
.stats { display:flex; gap:38px; margin-top:38px; padding-top:24px; border-top:1px solid var(--line); }
.stats strong { display:block; color:var(--navy); font-family:Fraunces,Georgia,serif; font-size:30px; font-weight:500; }
.stats small { color:#70756d; font-size:12px; }
.services-wrap { background:var(--sand); }
.section-heading-copy { color:#636960; font-size:14px; line-height:1.6; }
.service { min-height:265px; padding:30px; border:1px solid var(--line); background:rgba(247,240,228,.55); }
.service > span { color:var(--red); font-size:12px; font-weight:700; }
.service h3 { margin:45px 0 12px; color:var(--navy); font-family:Fraunces,Georgia,serif; font-size:27px; font-weight:500; }
.service p { margin:0; color:#636960; font-size:14px; line-height:1.6; }
.process-list { border-top:1px solid var(--line); }
.process-item { padding:25px 0; border-bottom:1px solid var(--line); }
.process-item b { color:var(--red); font-size:13px; }
.process-item h3 { margin:0 0 7px; color:var(--navy); font-size:17px; }
.process-item p { margin:0; color:#656b61; font-size:14px; line-height:1.55; }
.contact { margin-bottom:40px; padding:70px 80px; background:var(--navy); color:var(--cream); }
.contact h2 { max-width:560px; }
.contact p { max-width:280px; margin:0 0 25px; color:rgba(247,240,228,.7); font-size:14px; line-height:1.6; }
footer { width:min(1320px,calc(100% - 48px)); margin:auto; padding:25px 0 34px; display:flex; justify-content:space-between; color:#767b70; font-size:12px; border-top:1px solid var(--line); }
.back-to-top {
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  padding:0;
  border:1px solid rgba(247,240,228,.45);
  border-radius:50%;
  background:var(--navy);
  color:var(--cream);
  box-shadow:0 6px 18px rgba(23,45,59,.22);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .25s ease, visibility .25s ease, transform .25s ease, background .2s ease;
  cursor:pointer;
}
.back-to-top.is-visible {
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.back-to-top:hover {
  background:var(--red);
}
.back-to-top svg {
  width:19px;
  height:19px;
  stroke:currentColor;
  stroke-width:2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media (max-width:767.98px) {
  .hero { min-height:680px; }
  .site-nav .container { padding-top:8px; }
  .site-logo { width:131px; }
  .site-nav .navbar-nav { margin-left:0 !important; }
  .site-nav .nav-link { display:block; width:100%; text-align:left; }
  .hero-content { padding-top:100px; padding-bottom:110px; }
  .section { padding-top:76px; padding-bottom:76px; }
  .service { min-height:auto; }
  .service h3 { margin-top:26px; }
  .contact { padding:42px 28px; margin-bottom:28px; }
  footer { display:block; line-height:1.9; }
  footer span { display:block; }
  .back-to-top { right:16px; bottom:16px; width:44px; height:44px; }
}

.testimonials-section { padding-top:82px; padding-bottom:68px; background:var(--cream); }
.testimonial-carousel { width:100%; min-width:0; overflow:hidden; }
.testimonial-track {
  display:flex;
  gap:24px;
  width:max-content;
  will-change:transform;
}
.testimonial-track.is-sliding {
  transition:transform 1.5s cubic-bezier(.22,.61,.36,1);
}
.testimonial-item {
  position:relative;
  display:flex;
  flex-direction:column;
  flex:0 0 auto;
  min-height:250px;
  padding:30px;
  border:1px solid rgba(45,45,40,.20);
  border-radius:4px;
  background:#f1e6d5;
  box-shadow:0 5px 18px rgba(45,45,40,.08);
}
.testimonial-name {
  margin:0 0 22px;
  color:var(--navy);
  font-size:16px;
  font-weight:700;
  line-height:1.3;
}
.testimonial-quote {
  color:var(--red);
  font-family:Fraunces,Georgia,serif;
  font-size:54px;
  line-height:.55;
}
.testimonial-item blockquote {
  margin:18px 0 0;
  color:#51584f;
  font-family:Fraunces,Georgia,serif;
  font-size:22px;
  line-height:1.35;
}
.testimonial-controls { display:flex; justify-content:center; margin-top:22px; }
.testimonial-dots { display:flex; align-items:center; gap:8px; }
.testimonial-dot { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:rgba(49,88,103,.28); cursor:pointer; }
.testimonial-dot.active { width:24px; border-radius:99px; background:var(--red); }
@media (max-width:767.98px) {
  .testimonials-section { padding-top:70px; padding-bottom:52px; }
  .testimonial-track { gap:0; }
  .testimonial-item { min-height:230px; padding:28px 26px; }
  .testimonial-name { margin-bottom:20px; font-size:15px; }
  .testimonial-item blockquote { font-size:21px; }
}
@media (prefers-reduced-motion:reduce) {
  .testimonial-track.is-sliding { transition:none; }
  .back-to-top { transition:none; }
}
