@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500&family=Inter:wght@400;500&family=Cormorant+Garamond:wght@300;400;600&display=swap');

:root{
  --nav-bg:#f2f0d9;
  --nav-border:#dddac4;
  --hero-bg:#e9f2e9;
  --detail-bg:#f7f9f7;
  --ink:#1f2a33;
  --muted:#2e3b46;
  --btn:#4b4732;
  --btn-hover:#3f3b2a;
  --container:1200px;
}

*{ box-sizing:border-box; }
body{
  margin:0;
  color:var(--ink);
  background:#fff;
  font-family: "Cormorant Garamond", Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* Top bar */
.topbar{
  background:var(--nav-bg);
  border-bottom:1px solid var(--nav-border);
}
.topbar-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:18px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand{
  font-family:"Playfair Display", Georgia, serif;
  font-size:18px;
  letter-spacing:.2px;
}
.btn{
  appearance:none;
  border:0;
  background:var(--btn);
  color:#fff;
  padding:10px 18px;
  border-radius:10px;
  font-size:13px;
  cursor:pointer;
}
.btn:hover{ background:var(--btn-hover); }

.btn--transparent{
  background: transparent;
  border: 2px solid #000;
  color: #000;
  padding:10px 18px;
  border-radius:10px;
  font-size:13px;
  cursor:pointer;
}
.btn--transparent:hover{
  background:#000;
  color:#fff;
}


/* Hero */
.hero{
  background:var(--hero-bg); 
  padding:70px 0;
}
.hero-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 22px;
  display:flex;
  align-items:center;
  gap:70px;
}
.hero-detail{
  background:var(--detail-bg);
  padding:70px 0;
  padding-left: 22px;
  max-width:var(--container);
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:70px;
}
.hero-left{ flex: 1.05; }
.hero-right{ flex: 0.95; }

h1{
  font-family:"Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-weight:400;
  font-size:52px;
  line-height:1.08;
  margin:0 0 26px;
  color:#1c2832;
}

h2{
  font-family:"Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-weight:600;
  font-size:36px;
  line-height:1.08;
  margin:0 0 26px;
  color:#1c2832;
}

p{
  margin:0;
  font-weight: 600;
  font-size:22px;
  line-height:1.5;
  color:var(--muted);
  max-width:560px;
  color:#000000;
}

.hero-image{
  width:100%;
  max-width:560px;
  border-radius:2px; /* screenshot looks almost square */
  display:block;
}

/* detail section  */
.detail{
  background:var(--detail-bg); 
  padding:0px 0;
}

/* Make detail-inner responsive and allow wrapping */
.detail-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:28px 22px;
  display:flex;
  gap:28px;
  align-items:center;
  flex-wrap:wrap; /* allow stacking on small screens */
}

/* left / right columns become full width on small */
.detail-left{
  flex:1 1 420px;
  min-width:260px;
}

.detail-right{
  flex:0 1 420px;
  min-width:260px;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* ensure images scale down */
.detail-image{
  width:100%;
  max-width:560px;
  height:auto;
  border-radius:8px;
  display:block;
}

/* Boxes: allow wrapping and responsive sizing */
.boxes{
  display:flex;
  gap:20px;
  justify-content:center;
  align-items:stretch;
  flex-wrap:wrap;
  margin-top:16px;
}
.box{
  position:relative;
  flex:1 1 300px; /* grow/shrink; allows 3 across on wide screens */
  max-width:470px;
  min-width:220px;
  border-radius:8px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  box-shadow:0 6px 18px rgba(29,39,45,0.06);
}

/* image fluid but constrained to 470x470 on desktop */
.box img{
  width:100%;
  height:470px;
  max-height:470px;
  object-fit:cover;
  filter: blur(6px);
  transform: scale(1.03);
  display:block;
}

/* box content centered */
.box-content{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  z-index:3;
  color:#fff;
  text-align:center;
  width:calc(100% - 32px);
  padding:0 16px;
}

/* Box heading + description (overlayed on the blurred image) */
.box-title{
  margin:0 0 10px;
  font-size:24px;
  line-height:1.12;
  font-weight:600;
  color:#fff;
  font-family:"Cormorant Garamond", "Playfair Display", Georgia, serif;
  text-shadow: 0 1px 2px rgba(0,0,0,0.45);
}

.box-desc{
  margin:0;
  font-size:18px;
  line-height:1.6;
  color:#fff;
  opacity:0.95;
  max-height: calc(1.6em * 5); /* approx 5 lines */
  overflow:hidden;
  text-align:center;
  text-shadow: 0 1px 2px rgba(0,0,0,0.35);
  font-weight: 600;
}

/* Mobile adjustments */
@media (max-width:980px){
  .box-title{ font-size:18px; }
  .box-desc{ font-size:14px; line-height:1.5; max-height: calc(1.5em * 5); }
}

/* Ensure three-up grid with captions under each image */
.image-row{
  padding:28px 22px;
}
.image-row-inner{
  max-width:var(--container);
  margin:0 auto;
  display:flex;
  gap:16px;
  justify-content:center;
  align-items:flex-start;
  flex-wrap:wrap;
}
.image-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  flex:1 1 calc(33.333% - 16px);
  max-width:33.333%;
  min-width:200px;
  margin-bottom:8px;
}
.image-item img{
  width:100%;
  height:auto;
  object-fit:cover;
  border-radius:6px;
  display:block;
}

/* caption / heading under each image */
.image-caption{
  margin-top:10px;
  font-size:16px;
  color:var(--ink);
  text-align:center;
  font-weight:600;
  font-family:"Cormorant Garamond", "Playfair Display", Georgia, serif;
}

/* Responsive: stack into single column on small screens */
@media (max-width:980px){
  .image-row-inner{
    gap:12px;
  }
  .image-item{
    flex:1 1 100%;
    max-width:100%;
    min-width:0;
  }
}

/* Client Experience / Testimonials — match width of other sections and keep button on top */
.client-experience{
  background:var(--detail-bg);
  padding:48px 22px;
}
.client-experience-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 12px;
}
.client-experience-top{
  margin-bottom:18px; /* keeps button above the heading */
}
.client-experience .btn{
  margin:0; /* keep original button styling but aligned with section */
}
.client-experience h2{
  font-family:"Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-size:28px;
  margin:0 0 12px;
  color:var(--ink);
  font-weight:600;
}
.client-experience .lead{
  margin:0 0 24px;
  color:var(--muted);
  max-width:900px;
  line-height:1.6;
}

/* testimonials row: equal height cards */
.testimonials{
  display:flex;
  gap:20px;
  align-items:stretch; /* make children stretch to same height */
  justify-content:space-between;
}
.testimonial{
  background:#fff;
  border-radius:10px;
  padding:20px;
  box-shadow:0 8px 24px rgba(29,39,45,0.06);
  display:flex;
  gap:16px;
  flex:1 1 0;
  min-width:0; /* allow flex children to shrink */
  align-items:stretch;
}
/* keep image fixed size on left */
.client-photo{
  width:72px;
  height:72px;
  object-fit:cover;
  border-radius:50%;
  flex:0 0 72px;
  align-self:flex-start;
  border:2px solid rgba(255,255,255,0.6);
}

/* content column stretches so all cards match height */
.testimonial-content{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-width:0;
}
.testimonial-content h4{
  margin:0 0 10px;
  font-size:16px;
  font-weight:600;
  color:var(--ink);
  font-family:"Cormorant Garamond", "Playfair Display", Georgia, serif;
}
/* paragraph expands to fill available space; consistent visual height */
.testimonial-content p{
  margin:0;
  font-size:14px;
  line-height:1.6;
  color:var(--muted);
  flex:1 1 auto;
  /* allow overflow if extremely long, but generally keep cards same height */
  overflow:auto;
  padding-right:6px;
}

/* Footer */
.site-footer{
  background:var(--nav-bg);
  border-top:1px solid var(--nav-border);
  padding:32px 22px;
}
.site-footer-inner{
  max-width:var(--container);
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
}
.footer-left{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.footer-logo{
  width:320px;
  height:70px;
  object-fit:contain;
  display:block;
}
.footer-contact{
  font-style:normal;
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}
.footer-contact a{
  color:inherit;
  text-decoration:none;
}
.footer-right .social{
  display:flex;
  gap:12px;
  align-items:center;
}
.footer-right .social a img{
  width:36px;
  height:36px;
  display:block;
  object-fit:contain;
  filter: none;
  opacity:0.95;
}
.footer-right .social a:hover img{
  opacity:1;
  transform:translateY(-2px);
}

/* Make images responsive site-wide (safe default) */
img{
  max-width:100%;
  height:auto;
  display:block;
}

/* Ensure hero & detail columns wrap and text scales */
.hero-inner,
.detail-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:22px;
  display:flex;
  gap:28px;
  align-items:center;
  flex-wrap:wrap; /* allow stacking on small screens */
}

/* Left/right column sizing */
.hero-left,
.detail-left{
  flex:1 1 380px;
  min-width:260px;
}
.hero-right,
.detail-right{
  flex:0 1 420px;
  min-width:220px;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* constrain large images */
.hero-image,
.detail-image,
.slider .slide img{
  max-width:100%;
  height:auto;
  border-radius:8px;
}

/* Make slider images responsive and contained */
.slider{
  width:100%;
  max-width:560px;
  position:relative;
  overflow:hidden;
}
.slides{ position:relative; }
.slide{ display:none; }
.slide img{ width:100%; height:auto; display:block; object-fit:cover; }

/* nav buttons sizing */
.slider .prev,
.slider .next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(0,0,0,0.6);
  color:#fff;
  border:0;
  padding:8px;
  border-radius:6px;
  cursor:pointer;
  font-size:16px;
  line-height:1;
  z-index:3;
}

/* Responsive typography and spacing */
h2{
  font-size:32px;
  line-height:1.12;
  margin-bottom:12px;
  word-break:break-word;
}
p{
  font-size:20px;
  line-height:1.5;
  color:var(--muted);
  overflow-wrap:break-word;
  word-break:break-word;
  font-weight: 600;
}

/* Smaller screens */
@media (max-width: 980px){
  /* Stack and align properly */
  .topbar-inner{ flex-direction:column; align-items:flex-start; gap:8px; }
  .hero-inner, .detail-inner{ flex-direction:column; gap:20px; align-items:flex-start; padding:18px; }

  /* Ensure text doesn't overflow */
  h2{ font-size:22px; line-height:1.18; }
  .hero-left p,
  .detail-left p{ font-size:15px; line-height:1.6; }

  /* constrain right-side images and slider to full width of column */
  .hero-right,
  .detail-right{ width:100%; }
  .hero-image,
  .detail-image,
  .slider,
  .slider .slide img{ max-width:100%; height:auto; }

  /* slider buttons smaller and inset */
  .slider .prev,
  .slider .next{
    padding:6px 8px;
    font-size:14px;
  }

  /* Boxes & three-up content — stack when needed */
  .boxes{ flex-direction:column; gap:14px; }
  .box{ width:100%; max-width:100%; min-width:0; }
  .box img{ height:auto; max-height:470px; filter: blur(4px); }

  /* Testimonials stack */
  .testimonials{ flex-direction:column; gap:14px; }
  .testimonial{ width:100%; }

  /* Footer stacks */
  .site-footer-inner{ flex-direction:column; align-items:flex-start; gap:12px; }
}

/* Use Case Experiences */
.use-case-section{
  padding:42px 22px;
  background:transparent;
}
.use-case-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 12px;
}
.use-case-section h2{
  font-family:"Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-size:36px;
  margin:0 0 10px;
  color:var(--ink);
  font-weight:600;
}
.use-case-sub{
  margin:0 0 8px;
  color:var(--muted);
  font-size: 18px;
  font-weight: 500;
}
.use-case-list{
  margin:0 0 18px;
  font-weight: 500;
  padding-left:20px;
  color:var(--muted);
  max-width:720px;
  line-height:1.6;
}
.use-case-note{
  margin:0 0 18px;
  color:var(--muted);
}

/* grid of 12 buttons: 4 per row, equal width */
.use-case-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  align-items:stretch;
}
.use-case-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 14px;
  border-radius:10px;
  border:4px solid #2e7d32;
  /*greenborder*/background:#f8f9f3;
  /*off-whitebackground*/color:#5ac8ff;
  /*lightbluetext*/font-weight:600;
  cursor:pointer;
  font-size:14px;
  min-height:56px;
  transition: background .18s ease, color .18s ease, transform .08s ease, border-color .18s ease;
  outline: none;
  -webkit-transition: background .18s ease, color .18s ease, transform .08s ease, border-color .18s ease;
  -moz-transition: background .18s ease, color .18s ease, transform .08s ease, border-color .18s ease;
  -ms-transition: background .18s ease, color .18s ease, transform .08s ease, border-color .18s ease;
  -o-transition: background .18s ease, color .18s ease, transform .08s ease, border-color .18s ease;
}
.use-case-btn:hover{
  background:#ffeb3b; /* yellow on hover */
  color:#0b0b0b;      /* dark text for readability */
  transform:translateY(-2px);
  border-color:#c6a700;
}
.use-case-btn:focus{
  box-shadow:0 0 0 4px rgba(46,125,50,0.12);
}

/* responsive: 2 columns on tablet, 1 column on mobile */
@media (max-width:980px){
  .use-case-grid{ grid-template-columns:repeat(2,1fr); }
  .use-case-section{ padding:28px 16px; }
}
@media (max-width:520px){
  .use-case-grid{ grid-template-columns:1fr; }
}