/* Emil refinement: inherited brand, quieter surfaces, deliberate interaction. */
:root { --ease-out:cubic-bezier(.23,1,.32,1); }
body { -webkit-font-smoothing:antialiased; }
::selection { background:#ede0c4; color:#231d15; }
.preview-home .hero { min-height:620px; gap:clamp(32px,5vw,72px); padding-block:48px 64px; }
.preview-home .hero h1 { font-size:clamp(38px,4.5vw,64px); line-height:1.12; letter-spacing:-.025em; margin-top:0; }
.preview-home .hero .lead { font-size:18px; line-height:1.8; max-width:48ch; }
.preview-home .hero-img { height:510px; border-radius:8px 64px 8px 8px; }
.preview-home .btn { border-radius:8px; font-weight:600; font-size:15px; }
.preview-home .sectionhead h2 { font-size:clamp(30px,3.4vw,44px); line-height:1.2; text-wrap:balance; }
.preview-home .service-filter { gap:8px; margin-bottom:28px; }
.preview-home .service-filter button { border-radius:8px; min-height:44px; background:transparent; border-color:#d7c7a9; font-size:14px; }
.preview-home .service-filter button[aria-pressed=true] { background:#7d5a16; border-color:#7d5a16; color:white; }
.preview-home .service-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; grid-auto-rows:1fr; align-items:stretch; }
.preview-home .service-gallery > .service-card { grid-column:auto; min-width:0; }
.preview-home .service-card { height:100%; border:0; background:white; border-radius:10px; overflow:hidden; box-shadow:0 1px 2px rgba(50,35,10,.07),0 5px 16px rgba(50,35,10,.035); }
.preview-home .service-card > img { display:block; width:100%; height:auto; aspect-ratio:1.5; object-fit:cover; }
.preview-home .service-card-body { padding:24px; }
.preview-home .service-card h3 { font-size:25px; line-height:1.25; margin:0 0 12px; }
.preview-home .service-card p { font-size:16px; line-height:1.75; }
.preview-home .service-card a { border:0; border-radius:0; padding:10px 0; min-height:44px; text-decoration:underline; text-underline-offset:6px; font-size:14px; }
.preview-home .process { background:#f5f0e7; }
.preview-home .process h2 { font-size:clamp(30px,3.3vw,42px); line-height:1.2; }
.preview-home .step { padding-block:22px; }
.preview-home .founder { gap:clamp(32px,6vw,80px); }
.preview-home .founder img { height:470px; border-radius:8px; }
.preview-home .founder h2 { font-size:clamp(30px,3.2vw,40px); line-height:1.25; text-wrap:balance; }
.preview-home .founder p { font-size:17px; line-height:1.85; }
.preview-home .more { display:inline-flex; align-items:center; min-height:44px; }
.preview-home .preview-reviews blockquote { font-size:15px; line-height:1.8; }
.preview-home #journal .cards { gap:28px; }
.preview-home #journal .card { background:transparent; border-top:1px solid #d7c7a9; border-bottom:0; }
.preview-home #journal .cardbody { padding:24px 0; }
.preview-home #journal h3 { font-size:24px; line-height:1.35; margin:0 0 14px; }
.preview-home #journal p { font-size:16px; line-height:1.75; }
a,button,input,select { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #7d5a16; outline-offset:4px; }
.newsletter-dialog input[type=email] { font-size:16px; border-radius:8px; }
.newsletter-dialog { border-radius:12px; }
.newsletter-submit { border-radius:8px; }
html[data-input=pointer] :is(.btn,.service-filter button,.newsletter-submit,.preview-menu-toggle) { transition:transform 140ms var(--ease-out); }
html[data-input=pointer] :is(.btn,.service-filter button,.newsletter-submit,.preview-menu-toggle):active { transform:scale(.98); }
@media(hover:hover) and (pointer:fine) {
 .service-card a:hover,.more:hover { text-decoration:underline; text-underline-offset:6px; }
 .preview-home .btn:hover { background:#674b13; color:white; }
 .preview-home .btn.alt:hover { background:#f0e8d9; color:#231d15; }
}
@media(max-width:760px) {
 .preview-home .hero { min-height:0; padding-block:32px 40px; gap:28px; }
 .preview-home .hero h1 { font-size:clamp(32px,7.7vw,44px); line-height:1.2; margin-bottom:22px; }
 .preview-home .hero .lead { font-size:16px; line-height:1.85; }
 .preview-home .hero-img { height:auto; aspect-ratio:1.25; border-top-right-radius:44px; }
 .preview-home .service-filter { overflow-x:auto; flex-wrap:nowrap; padding-bottom:12px; scrollbar-width:thin; }
 .preview-home .service-card-body { padding:22px; }
 .preview-home .founder img { height:auto; aspect-ratio:.95; }
 .preview-home .founder p { font-size:16px; }
 .preview-home .preview-reviews figure { padding-left:18px; }
}
@media(max-width:900px) {
 .preview-home .service-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 .preview-home .service-gallery { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 html[data-input=pointer] :is(.btn,.service-filter button,.newsletter-submit,.preview-menu-toggle) { transition:none; }
 html[data-input=pointer] :is(.btn,.service-filter button,.newsletter-submit,.preview-menu-toggle):active { transform:none; }
}

.preview-home .hero-copy p,.preview-home .hero .lead { color:#655b4d; }

.preview-home .google-reviews-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:26px; }
.preview-home .google-reviews-head h2 { margin-bottom:6px; }
.preview-home .google-reviews-summary { display:flex; align-items:center; flex-wrap:wrap; gap:9px; color:#786e60; font-size:13px; }
.preview-home .google-reviews-rating { color:#231d15; font-size:16px; font-weight:600; }
.preview-home .google-reviews-count,.google-review-card figcaption span { color:#786e60; font-size:12px; letter-spacing:.035em; }
.preview-home .google-reviews-head { margin-bottom:20px; }
.preview-home .google-reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:1fr; gap:18px; }
.preview-home .google-review-card { display:flex; min-width:0; flex-direction:column; margin:0; padding:22px 24px; border:1px solid #e5dccd; background:rgba(255,255,255,.58); }
.preview-home .google-review-stars { margin-bottom:14px; color:#9b742e; font-size:15px; letter-spacing:.15em; }
.preview-home .google-review-card blockquote { margin:0; color:#51483d; font-size:16px; line-height:1.75; }
.preview-home .google-review-card figcaption { margin-top:auto; padding-top:20px; color:#231d15; font-size:14px; font-weight:600; }
.preview-home .google-review-card figcaption span { margin-left:4px; font-weight:400; letter-spacing:.04em; }
@media(max-width:900px) { .preview-home .google-reviews-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .preview-home .google-reviews-head { align-items:start; flex-direction:column; gap:8px; } .preview-home .google-reviews-grid { grid-template-columns:1fr; gap:14px; } .preview-home .google-review-card { padding:20px; } }

/* Google reviews: quieter editorial heading with enough room for the live carousel. */
.preview-home .google-reviews { align-items:center; grid-template-columns:minmax(210px,.72fr) minmax(0,2.15fr); gap:clamp(36px,5vw,80px); padding-block:clamp(44px,5.2vw,72px); }
.preview-home .google-reviews-head { align-items:flex-start; justify-content:center; flex-direction:column; gap:14px; margin:0; }
.preview-home .google-reviews-kicker { display:inline-flex; align-items:center; gap:11px; color:#80601f; font:600 10px/1.4 var(--preview-body); letter-spacing:.18em; text-transform:uppercase; }
.preview-home .google-reviews-kicker::before { width:24px; height:1px; background:#b5965c; content:""; }
.preview-home .google-reviews-head h2 { max-width:10ch; margin:0; font:400 clamp(30px,3.1vw,44px)/1.14 var(--preview-display); letter-spacing:-.015em; text-wrap:balance; }
@media(max-width:1000px) {
 .preview-home .google-reviews { grid-template-columns:1fr; gap:22px; }
 .preview-home .google-reviews-head { gap:10px; }
 .preview-home .google-reviews-head h2 { max-width:18ch; }
}
@media(max-width:600px) {
 .preview-home .google-reviews { gap:18px; padding-block:36px; }
 .preview-home .google-reviews-head h2 { max-width:16ch; font-size:clamp(27px,8vw,34px); line-height:1.2; }
}

.preview-home .google-reviews-content { min-width:0; }
.preview-home .google-reviews-summary { margin:0 0 18px; }
.preview-home .google-reviews-summary-stars { color:#9b742e; letter-spacing:.12em; }
.preview-home .google-reviews-grid { align-items:stretch; }
.preview-home .google-review-card { border-radius:8px; box-shadow:0 1px 2px rgba(50,35,10,.04); }
.preview-home .google-review-stars { flex:0 0 auto; }
.preview-home .google-review-card blockquote { margin:0; color:#51483d; font-size:15px; line-height:1.75; }
.preview-home .google-review-translation { margin:12px 0 0; color:#786e60; font-size:12px; font-style:italic; }
.preview-home .google-review-footer { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:auto; padding-top:22px; }
.preview-home .google-review-author { display:flex; min-width:0; align-items:center; gap:10px; }
.preview-home .google-review-avatar { display:block; width:36px; height:36px; border-radius:50%; object-fit:cover; }
.preview-home .google-review-author-copy { display:grid; gap:2px; min-width:0; }
.preview-home .google-review-author-name { overflow:hidden; color:#231d15; font-size:13px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.preview-home .google-review-date { color:#786e60; font-size:11px; }
.preview-home .google-review-source { flex:0 0 auto; color:#76551a; font-size:12px; text-underline-offset:3px; }
.preview-home .google-review-source:hover { text-decoration:underline; }
.preview-home .google-reviews-status { color:#655b4d; font-size:14px; line-height:1.7; }
.preview-home .google-reviews-retry { margin-left:8px; padding:4px 8px; border:1px solid #d7c7a9; border-radius:5px; background:transparent; color:#231d15; font:inherit; cursor:pointer; }
.preview-home .google-reviews-footer { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:20px; padding-top:14px; border-top:1px solid #e5dccd; }
.preview-home .google-reviews-footer p { max-width:68ch; margin:0; color:#786e60; font-size:11px; line-height:1.55; }
.preview-home .google-maps-attribution { flex:0 0 auto; color:#5e5e5e; font:400 12px/1.4 Roboto,Arial,sans-serif; white-space:nowrap; }
.preview-home .google-reviews [hidden] { display:none; }
@media(max-width:600px) {
 .preview-home .google-reviews-footer { align-items:flex-start; }
 .preview-home .google-reviews-footer p { font-size:10px; }
 .preview-home .google-review-footer { align-items:flex-start; flex-direction:column; }
}
