.home-page { --home-ink:#243540; --home-slate:#405565; --home-mist:#86b7c3; --home-pale:#edf2f7; --home-paper:#f8fafb; color:var(--home-ink); background:var(--home-paper); overflow-x:hidden; }
.home-shell { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
.home-page .sf-floating-balloons { z-index:1; }
.home-page .home-shell { position:relative; z-index:2; }
.home-eyebrow { margin:0 0 1rem; color:var(--home-mist); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.home-hero { position:relative; min-height:500px; padding:130px 0 82px; background:linear-gradient(180deg, #f8fafb 0%, var(--home-pale) 100%); }
.home-hero__grid, .home-intro__grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem, 8vw, 8rem); align-items:center; }
.home-hero__copy h1, .home-intro h2, .home-section-heading h2, .home-closing h2 { margin:0 0 1.35rem; font-size:clamp(2.7rem, 4.8vw, 5.1rem); font-weight:500; line-height:1; letter-spacing:-.035em; }
.home-hero__copy h1 { color:var(--home-ink); font-size:clamp(3.2rem, 5.6vw, 5.8rem); }
.home-hero__copy h1 em, .home-intro h2 em { color:var(--home-mist); font-style:italic; font-weight:500; }
.home-hero__copy > p:not(.home-eyebrow) { color:#5d717b; font-size:1.05rem; line-height:1.75; }
.home-intro__copy p, .home-closing p { color:#5d717b; font-size:1.02rem; line-height:1.75; }
.home-hero .home-eyebrow { color:var(--home-slate); }
.home-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
.home-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.75rem 1.15rem; border:1px solid transparent; font-size:.82rem; font-weight:700; text-decoration:none; transition:background-color .18s ease, color .18s ease, transform .18s ease; }
.home-button:hover { transform:translateY(-2px); }
.home-button--primary { background:var(--home-slate); color:#fff; }
.home-button--primary:hover { background:var(--home-ink); color:#fff; }
.home-button--link { border-color:var(--home-slate); color:var(--home-slate); }
.home-button--link:hover { background:var(--home-slate); color:#fff; }
.home-button--outline-light { border-color:rgba(255,255,255,.55); color:#fff; }
.home-button--outline-light:hover { background:#fff; color:var(--home-ink); }
.home-button--light { background:#fff; color:var(--home-ink); }
.home-hero__photo { position:relative; height:min(67vw, 700px); min-height:520px; overflow:hidden; border:10px solid #fff; border-radius:18px; background:#d6e3e6; box-shadow:0 24px 55px rgba(36,53,64,.16); }
.home-hero__photo picture, .home-hero__photo img, .home-intro__photo picture, .home-intro__photo img, .home-service-card__image picture, .home-service-card__image img, .home-gallery__item picture, .home-gallery__item img, .home-testimonial__photo picture, .home-testimonial__photo img { display:block; width:100%; height:100%; }
.home-hero__photo img, .home-intro__photo img, .home-service-card__image img, .home-gallery__item img, .home-testimonial__photo img { object-fit:cover; }
.home-hero__photo::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(135deg, rgba(255,255,255,.12), transparent 55%, rgba(134,183,195,.14)); }
.home-intro { padding:clamp(5.5rem, 9vw, 8rem) 0; background:linear-gradient(180deg, var(--home-pale) 0%, var(--home-paper) 54%, #e8f0f2 100%); }
.home-intro__grid { gap:clamp(5rem, 12vw, 11rem); }
.home-intro__photo { height:520px; overflow:hidden; border-radius:14px; background:#d6e3e6; }
.home-intro__copy { max-width:510px; }
.home-text-link { display:inline-flex; align-items:center; gap:.55rem; margin-top:1rem; color:var(--home-slate); font-size:.9rem; font-weight:700; text-decoration:none; }
.home-text-link:hover { color:var(--home-ink); }
.home-services { position:relative; z-index:2; isolation:isolate; overflow:hidden; padding:clamp(5.5rem, 9vw, 8rem) 0; background:var(--home-ink); color:#fff; }
.home-services::before,
.home-testimonial::before { content:''; position:absolute; inset:0; z-index:0; background:url('../brand/patterns/dark-floral-pattern.webp') center / cover no-repeat; opacity:.04; pointer-events:none; }
.home-services > *,
.home-testimonial > * { position:relative; z-index:1; }
.home-section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2.7rem; }
.home-section-heading h2 { max-width:720px; margin-bottom:0; font-size:clamp(2.3rem, 3.7vw, 3.8rem); }
.home-section-heading--light h2 { color:#fff; }
.home-section-heading--light .home-eyebrow { color:var(--home-mist); }
.home-services__grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:1.5rem; }
.home-service-card { overflow:hidden; border-radius:12px; background:#fff; }
.home-service-card a { display:flex; flex-direction:column; height:100%; color:var(--home-ink); text-decoration:none; }
.home-service-card__image { height:290px; overflow:hidden; background:#d6e3e6; }
.home-service-card__image img { transition:transform .3s ease; }
.home-service-card:hover img { transform:scale(1.04); }
.home-service-card__content { display:flex; flex:1; flex-direction:column; padding:1.35rem; }
.home-service-card h3 { margin:0 0 .65rem; font-size:1.5rem; font-weight:600; }
.home-service-card p { min-height:4.2em; margin:0 0 1rem; color:#637780; font-size:.9rem; line-height:1.55; }
.home-service-card span { margin-top:auto; color:var(--home-slate); font-size:.85rem; font-weight:700; }
.home-gallery { padding:clamp(5.5rem, 9vw, 8rem) 0; background:var(--home-paper); }
.home-gallery .home-text-link { margin:0 0 .35rem; white-space:nowrap; }
.home-gallery__grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:1.35rem; align-items:start; padding:1rem 0 3rem; }
.home-gallery__item { position:relative; display:block; overflow:hidden; border-radius:10px; background:#d6e3e6; color:#fff; text-decoration:none; }
.home-gallery__item--1 { transform:translateY(1rem) rotate(-1deg); }
.home-gallery__item--2 { transform:translateY(-.9rem) rotate(1deg); }
.home-gallery__item--3 { transform:translateY(2.2rem) rotate(-.6deg); }
.home-gallery__item--4 { transform:translateY(-1.4rem) rotate(.8deg); }
.home-gallery__item--5 { transform:translateY(.8rem) rotate(-.8deg); }
.home-gallery__item img { transition:transform .3s ease; }
.home-gallery__item:hover { z-index:2; }
.home-gallery__item:hover img { transform:scale(1.04); }
.home-gallery__item span { position:absolute; inset:auto 0 0; padding:1.25rem; background:linear-gradient(transparent,rgba(36,53,64,.78)); font-family:var(--ec-font-title); font-size:1.25rem; font-weight:500; }
.home-process { position:relative; overflow:hidden; padding:clamp(5.5rem, 8vw, 7.5rem) 0; background:linear-gradient(180deg, var(--home-paper) 0%, var(--home-pale) 100%); }
.home-process::before { content:''; position:absolute; inset:0; z-index:0; background:url('../brand/patterns/mist-floral-pattern.webp') center / cover no-repeat; opacity:.025; pointer-events:none; }
.home-process > * { position:relative; z-index:1; }
.home-process__grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:1rem; margin:0; padding:0; list-style:none; }
.home-process__grid li { position:relative; z-index:2; padding:1.5rem; border-radius:10px; background:#fff; }
.home-process__illustration { display:block; width:104px; height:104px; margin:0 0 1.15rem; object-fit:contain; }
.home-process__grid strong { display:block; margin-bottom:.7rem; color:var(--home-slate); font-size:1.2rem; }
.home-process__grid span { color:#657982; font-size:.92rem; line-height:1.6; }
.home-testimonial { position:relative; z-index:2; isolation:isolate; overflow:hidden; padding:clamp(5.5rem, 8vw, 7.5rem) 0; background:var(--home-ink); color:#fff; text-align:center; }
.home-testimonial__copy { max-width:900px; display:flex; flex-direction:column; justify-content:center; padding:0; }
.home-testimonial blockquote { margin:0 0 1.8rem; color:#fff; font-family:var(--ec-font-title); font-size:clamp(1.55rem, 2.6vw, 2.6rem); font-weight:500; line-height:1.35; }
.home-testimonial__copy > p:last-child { margin:0; color:rgba(255,255,255,.72); font-size:.9rem; }
.home-testimonial strong { color:var(--home-mist); }
.home-closing { padding:clamp(5.5rem, 9vw, 8rem) 0; background:#fff; color:var(--home-ink); text-align:center; }
.home-closing h2 { color:var(--home-ink); font-size:clamp(2.6rem, 4.4vw, 4.6rem); }
.home-closing p { max-width:560px; margin:0 auto 2rem; color:#5d717b; }
.home-closing .home-button--light { background:var(--home-slate); color:#fff; }
.home-closing .home-button--light:hover { background:var(--home-ink); color:#fff; }
.home-page [data-reveal], .about-page [data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .62s ease var(--reveal-delay, 0ms), transform .62s ease var(--reveal-delay, 0ms); }
.home-page [data-reveal].reveal-from-above:not(.is-revealed), .about-page [data-reveal].reveal-from-above:not(.is-revealed) { transform:translateY(-22px); }
.home-page [data-reveal].is-revealed, .about-page [data-reveal].is-revealed { opacity:1; transform:translateY(0); }
.home-page .page-title-line { display:block; overflow:hidden; }.home-page .page-title-line > * { display:block; animation:home-title-rise .75s cubic-bezier(.2,.7,.2,1) both; }.home-page .page-title-line:nth-child(2) > * { animation-delay:.09s; }
@keyframes home-title-rise { from { opacity:0; transform:translateY(110%); } to { opacity:1; transform:translateY(0); } }
@media (max-width:991px) { .home-shell { width:min(100% - 36px, 760px); } .home-hero { padding-top:115px; } .home-hero__grid, .home-intro__grid { grid-template-columns:1fr; } .home-intro__photo { max-width:560px; } .home-services__grid { grid-template-columns:repeat(2,1fr); } .home-process__grid { grid-template-columns:repeat(2,1fr); } .home-gallery__grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:767px) { .home-shell { width:calc(100% - 30px); } .home-hero { padding:105px 0 60px; } .home-hero__copy h1 { font-size:clamp(2.8rem,12vw,4rem); } .home-intro, .home-services, .home-gallery, .home-process, .home-closing { padding:5rem 0; } .home-section-heading { align-items:start; flex-direction:column; } .home-section-heading h2 { font-size:clamp(2.2rem,9vw,3.2rem); } .home-services__grid, .home-process__grid { grid-template-columns:1fr; } .home-service-card__image { height:260px; } .home-gallery__grid { grid-template-columns:1fr; gap:1rem; padding-bottom:1rem; } .home-gallery__item--1, .home-gallery__item--2, .home-gallery__item--3, .home-gallery__item--4, .home-gallery__item--5 { transform:none; } .home-gallery__item span { padding:.85rem; font-size:1rem; } .home-testimonial__copy { padding:0; } .home-actions { flex-direction:column; align-items:stretch; } }
@media (max-width:767px) { .home-process__illustration { width:88px; height:88px; } }
@media (prefers-reduced-motion:reduce) { .home-page [data-reveal], .about-page [data-reveal] { opacity:1; transform:none; transition:none; }.home-page .page-title-line > * { animation:none; } }

/* Keep all gallery-derived imagery in the public gallery's 4:3 frame. */
.home-page .home-hero__photo,
.home-page .home-intro__photo { width:100%; height:auto; min-height:0; aspect-ratio:4 / 3; }
.home-page .home-service-card__image,
.home-page .home-testimonial__photo { height:auto; min-height:0; aspect-ratio:4 / 3; }
.home-page .home-hero__photo img,
.home-page .home-intro__photo img,
.home-page .home-service-card__image img,
.home-page .home-gallery__item img,
.home-page .home-testimonial__photo img { object-position:top center; }
.home-page .home-testimonial__photo { align-self:center; }
.home-page .home-gallery__grid { grid-template-columns:repeat(3, minmax(0, 1fr)); grid-template-rows:none; }
.home-page .home-gallery__item,
.home-page .home-gallery__item--1,
.home-page .home-gallery__item--2,
.home-page .home-gallery__item--3,
.home-page .home-gallery__item--4,
.home-page .home-gallery__item--5 { grid-column:auto; grid-row:auto; aspect-ratio:4 / 3; }

@media (max-width:991px) {
  .home-page .home-hero__grid,
  .home-page .home-intro__grid { gap:clamp(2.25rem, 7vw, 3.5rem); }
  .home-page .home-hero__photo,
  .home-page .home-intro__photo { min-height:0; aspect-ratio:4 / 3; }
  .home-page .home-intro__photo { width:100%; max-width:680px; justify-self:center; }
  .home-page .home-gallery__grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

@media (max-width:767px) {
  .home-page .home-hero__grid,
  .home-page .home-intro__grid { gap:2rem; }
  .home-page .home-hero__photo,
  .home-page .home-intro__photo {
    width:100%;
    max-width:none;
    height:auto;
    min-height:0;
    aspect-ratio:4 / 3;
    border-radius:12px;
  }
  .home-page .home-hero__photo { border-width:6px; }
  .home-page .home-gallery__grid { grid-template-columns:1fr; grid-template-rows:none; }
  .home-page .home-gallery__item,
  .home-page .home-gallery__item--1,
  .home-page .home-gallery__item--2,
  .home-page .home-gallery__item--3,
  .home-page .home-gallery__item--4,
  .home-page .home-gallery__item--5 { grid-column:auto; grid-row:auto; }
}

/* A loose two-row collage while every photograph keeps the gallery's 4:3 frame. */
.home-page .home-gallery__grid { display:flex; flex-wrap:wrap; gap:1.35rem; align-items:flex-start; padding:1.25rem 0 3.25rem; }
.home-page .home-gallery__item { flex:0 0 calc(53% - .7rem); border:7px solid #fff; border-radius:8px; box-shadow:0 14px 28px rgba(36,53,64,.12); }
.home-page .home-gallery__item--1 { transform:rotate(-1.3deg) translateY(1.4rem); }
.home-page .home-gallery__item--2 { flex-basis:calc(47% - .7rem); transform:rotate(1.1deg) translateY(-.8rem); }
.home-page .home-gallery__item--3 { flex-basis:calc(27% - .9rem); transform:rotate(1.4deg) translateY(-.2rem); }
.home-page .home-gallery__item--4 { flex-basis:calc(38% - .9rem); transform:rotate(-.7deg) translateY(1.8rem); }
.home-page .home-gallery__item--5 { flex-basis:calc(35% - .9rem); transform:rotate(.9deg) translateY(.3rem); }
.home-page .home-gallery__item:hover { transform:translateY(-.4rem) rotate(0); }

@media (max-width:767px) {
  .home-page .home-gallery__grid { display:grid; gap:1rem; padding:0; }
  .home-page .home-gallery__item,
  .home-page .home-gallery__item--1,
  .home-page .home-gallery__item--2,
  .home-page .home-gallery__item--3,
  .home-page .home-gallery__item--4,
  .home-page .home-gallery__item--5 { flex-basis:auto; border-width:5px; transform:none; }
}
