/* Modres — bordeaux/cream layout after reference/design-board*.png.
   Layers: header 10, mobile nav 11, skip link 20. Breakpoints: 640 / 1024 / 1200. */
:root {
  --cream:#f7f2ea;
  --paper:#fffcf7;
  --sand:#efe6d9;
  --line:#e2d6c7;
  --ink:#241c1d;
  --muted:#5d5250;
  --wine:#7a1430;
  --wine-hover:#5e0d24;
  --wine-deep:#3f0815;
  --wine-text:#7a1430;
  --on-wine:#fffcf7;
  --shadow:0 18px 40px -24px rgba(58,20,28,.35);
  --serif:Georgia,'Times New Roman',serif;
  --sans:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --container:1240px;
  --gutter:48px;
  --radius:4px
}
:root { color-scheme:light }
* { box-sizing:border-box }
html { scroll-padding-top:110px; -webkit-text-size-adjust:100% }
body {
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.7
}
img { display:block; max-width:100%; height:auto }
a { color:inherit; text-underline-offset:4px }
button,input,textarea { font:inherit; color:inherit }
button { cursor:pointer }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {
  outline:3px solid var(--wine-text);
  outline-offset:4px
}
h1,h2,h3,p,figure,blockquote,ul,dl,dd { margin:0 }
ul { padding:0; list-style:none }
h1,h2 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.1;
  letter-spacing:-.025em;
  color:var(--ink)
}
h1 { font-size:clamp(38px,5vw,66px) }
h2 { font-size:clamp(28px,3vw,40px) }
h3 { font-size:18px; line-height:1.35; font-weight:600 }
p { color:var(--muted) }
p+p { margin-top:16px }
address { font-style:normal }
[hidden] { display:none !important }
.icon {
  width:1.15em;
  height:1.15em;
  flex:none;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round
}
.container { width:min(var(--container),calc(100% - 2 * var(--gutter))); margin-inline:auto }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0
}
.skip-link {
  position:fixed; z-index:20; top:12px; left:16px;
  transform:translateY(-180%);
  background:var(--paper); color:var(--ink); padding:12px 20px
}
.skip-link:focus { transform:none }
.eyebrow {
  font-size:12px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--wine-text);
  margin-bottom:14px
}

/* Buttons and links */
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:50px;
  padding:12px 26px;
  border:1.5px solid var(--wine);
  border-radius:var(--radius);
  background:var(--wine);
  color:var(--on-wine);
  font-weight:600;
  font-size:15px;
  text-decoration:none;
  transition:background .2s,border-color .2s,transform .2s
}
.button:hover { background:var(--wine-hover); border-color:var(--wine-hover) }
.button .icon { transition:transform .2s }
.button:hover .icon:last-child { transform:translateX(3px) }
.button-outline { background:var(--paper); color:var(--wine-text); border-color:var(--wine-text) }
.button-outline:hover { background:var(--sand); border-color:var(--wine-text) }
.text-link {
  display:inline-flex; align-items:center; gap:10px;
  color:var(--wine-text); font-weight:600; text-decoration:none;
  border-bottom:1.5px solid currentColor; padding-bottom:4px
}
.text-link:hover .icon { transform:translateX(3px) }
.text-link .icon { transition:transform .2s }
.round-arrow {
  display:inline-grid; place-items:center;
  width:38px; height:38px; flex:none;
  border:1.5px solid currentColor; border-radius:50%;
  transition:background .2s,color .2s
}
.round-arrow .icon { width:18px; height:18px }

/* Header */
.site-header {
  position:sticky; top:0; z-index:10;
  background:var(--paper);
  border-bottom:1px solid var(--line)
}
.header-inner { display:flex; align-items:center; gap:32px; min-height:84px }
.brand { flex:none; display:block; line-height:0 }
.brand img { height:50px; width:auto }
.main-nav { display:flex; gap:clamp(14px,1.8vw,30px); margin-inline:auto }
.main-nav a {
  position:relative;
  padding-block:10px;
  font-size:14.5px;
  text-decoration:none;
  white-space:nowrap
}
.main-nav a::after {
  content:''; position:absolute; left:0; right:0; bottom:2px;
  height:2px; background:var(--wine-text);
  transform:scaleX(0); transition:transform .2s
}
.main-nav a:hover::after,.main-nav a[aria-current=page]::after { transform:none }
.main-nav a[aria-current=page] { color:var(--wine-text); font-weight:600 }
.header-phone {
  display:inline-flex; align-items:center; gap:10px; flex:none;
  padding:12px 20px; border-radius:var(--radius);
  background:var(--wine); color:var(--on-wine);
  font-weight:600; font-size:15px; text-decoration:none; white-space:nowrap
}
.header-phone:hover { background:var(--wine-hover) }
.menu-toggle {
  width:46px; height:46px; flex:none;
  display:grid; place-items:center;
  border:0; background:none; padding:0
}
.menu-lines,.menu-lines::before,.menu-lines::after {
  display:block; width:24px; height:2px; background:var(--ink);
  transition:transform .2s,opacity .2s
}
.menu-lines { position:relative }
.menu-lines::before,.menu-lines::after { content:''; position:absolute; left:0 }
.menu-lines::before { top:-7px }
.menu-lines::after { top:7px }
.menu-toggle[aria-expanded=true] .menu-lines { background:transparent }
.menu-toggle[aria-expanded=true] .menu-lines::before { transform:translateY(7px) rotate(45deg) }
.menu-toggle[aria-expanded=true] .menu-lines::after { transform:translateY(-7px) rotate(-45deg) }

/* Home hero */
.home-hero { position:relative; overflow:hidden; background:var(--cream) }
.home-hero-photo {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:72% center
}
.home-hero-shade {
  position:absolute; inset:0;
  background:linear-gradient(90deg,var(--cream) 0%,var(--cream) 30%,color-mix(in srgb,var(--cream) 80%,transparent) 44%,transparent 66%)
}
.home-hero-content {
  position:relative;
  min-height:clamp(500px,62vh,620px);
  display:flex; flex-direction:column; justify-content:center;
  padding-block:64px
}
.home-hero-content > * { max-width:560px }
.home-hero h1 { font-size:clamp(40px,4.6vw,64px) }
.home-hero h1 em,.page-hero h1 em { font-style:normal; color:var(--wine-text) }
.home-hero-content > p:not(.eyebrow) { margin-top:22px; font-size:17px; color:var(--ink) }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:32px }

/* Trust strip */
.trust-strip { background:var(--sand); border-block:1px solid var(--line) }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr) }
.trust-grid li {
  display:flex; align-items:center; gap:16px;
  padding:26px 24px
}
.trust-grid li + li { border-left:1px solid var(--line) }
.trust-icon { width:34px; height:34px; color:var(--wine-text); stroke-width:1.3 }
.trust-grid strong { display:block; font-family:var(--serif); font-size:17px; font-weight:400 }
.trust-grid span { display:block; font-size:13.5px; color:var(--muted); line-height:1.4 }

/* Home services */
.services-home { padding-block:56px 32px }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px }
.service-card {
  position:relative; display:block; overflow:hidden;
  aspect-ratio:4/3; border-radius:var(--radius);
  color:#fff; text-decoration:none; background:#2b1a1d
}
.service-card img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; transition:transform .5s ease
}
.service-card::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 35%,rgba(20,8,10,.82) 100%)
}
.service-card:hover img { transform:scale(1.04) }
.service-card-body { position:absolute; z-index:1; left:20px; right:72px; bottom:18px }
.service-card h3 { font-family:var(--serif); font-size:24px; font-weight:400 }
.service-card p { color:rgba(255,255,255,.88); font-size:14px; line-height:1.45; margin-top:2px }
.service-card .round-arrow { position:absolute; z-index:1; right:18px; bottom:20px }
.service-card:hover .round-arrow { background:#fff; color:var(--wine) }

/* Home about row */
.about-home {
  display:grid;
  grid-template-columns:1.15fr 1.25fr .85fr 1fr;
  gap:24px;
  padding-block:32px 88px;
  align-items:stretch
}
.about-home-copy { align-self:center; padding-right:8px }
.about-home-copy p:not(.eyebrow) { margin-block:18px 28px }
.about-home-photo { position:relative; min-height:320px }
.about-home-photo img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; border-radius:var(--radius);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%);
  mask-image:linear-gradient(90deg,transparent 0,#000 22%)
}
.detail-card {
  position:relative; overflow:hidden; min-height:320px;
  border-radius:var(--radius); color:#fff; text-decoration:none; background:#2b1a1d
}
.detail-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s }
.detail-card::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,8,10,.1),rgba(20,8,10,.78)) }
.detail-card:hover img { transform:scale(1.04) }
.detail-card-text {
  position:absolute; z-index:1; left:22px; right:70px; bottom:22px;
  font-family:var(--serif); font-size:24px; line-height:1.15
}
.detail-card .round-arrow { position:absolute; z-index:1; right:18px; bottom:22px }
.motto { align-self:center }
.motto h2 { font-size:clamp(24px,2.2vw,30px) }
.motto blockquote p {
  margin-block:14px 20px;
  font-family:var(--serif); font-size:20px; font-style:italic; color:var(--wine-text)
}
.motto-card {
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); padding:22px; box-shadow:var(--shadow)
}
.motto-card p { margin-block:6px 14px; font-size:14.5px }

/* Inner page hero */
.page-hero { position:relative; overflow:hidden; background:#2b1a1d }
.page-hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
.page-hero-shade {
  position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(18,8,10,.78) 0%,rgba(18,8,10,.5) 45%,rgba(18,8,10,.08) 80%)
}
.page-hero-content {
  position:relative;
  min-height:clamp(320px,34vw,440px);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding-block:56px 64px
}
.page-hero h1 { color:#fff; max-width:720px }
.page-hero-sub {
  margin-top:12px; max-width:620px;
  font-family:var(--serif); font-size:clamp(19px,1.8vw,24px); line-height:1.35; color:rgba(255,255,255,.92)
}
.breadcrumb {
  display:flex; align-items:center; gap:8px; margin-bottom:16px;
  font-size:13.5px; color:rgba(255,255,255,.85)
}
.breadcrumb a { color:inherit; text-decoration:none }
.breadcrumb a:hover { text-decoration:underline }
.breadcrumb .crumb-sep { width:14px; height:14px }

/* Service page */
.service-intro {
  display:grid; grid-template-columns:1.45fr 1fr; gap:64px;
  padding-block:64px 48px; align-items:start
}
.service-copy h2 { margin-bottom:20px }
.service-copy .button { margin-top:28px }
.service-aside {
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); padding:32px; box-shadow:var(--shadow);
  margin-top:-150px; position:relative
}
.service-aside h2 { font-size:26px; margin-bottom:18px }
.check-list { display:grid; gap:12px }
.check-list li { display:flex; align-items:flex-start; gap:12px; line-height:1.45 }
.check {
  width:22px; height:22px; flex:none; margin-top:1px;
  padding:4px; border-radius:50%;
  background:var(--wine); stroke:var(--on-wine); stroke-width:2.6
}
.highlights { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; padding-bottom:48px }
.highlights li {
  display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center;
  padding:22px 12px; background:var(--paper);
  border:1px solid var(--line); border-radius:var(--radius); font-size:14.5px
}
.highlights .icon { width:30px; height:30px; color:var(--wine-text); stroke-width:1.3 }
.service-gallery { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; padding-bottom:64px }
.service-gallery img,.team-gallery img {
  width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius)
}
.feature-band {
  display:grid; grid-template-columns:1fr 1fr;
  background:var(--sand); border-radius:var(--radius); overflow:hidden;
  margin-bottom:72px
}
.feature-photo { position:relative; min-height:340px }
.feature-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
.feature-copy { padding:48px clamp(28px,4vw,56px) }
.feature-copy h2 { margin-block:18px 16px }
.feature-copy .button { margin-top:26px }
.feature-icon {
  display:inline-grid; place-items:center; width:54px; height:54px;
  border-radius:50%; background:var(--paper); color:var(--wine-text)
}
.feature-icon .icon { width:28px; height:28px; stroke-width:1.4 }
.related { padding-bottom:88px }
.related h2 { margin-bottom:24px }
.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px }
.related-card {
  position:relative; display:block; overflow:hidden; aspect-ratio:16/10;
  border-radius:var(--radius); color:#fff; text-decoration:none; background:#2b1a1d
}
.related-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s }
.related-card::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(20,8,10,.8)) }
.related-card:hover img { transform:scale(1.04) }
.related-title { position:absolute; z-index:1; left:20px; bottom:20px; font-family:var(--serif); font-size:24px }
.related-card .round-arrow { position:absolute; z-index:1; right:18px; bottom:18px }

/* Over ons */
.quote p {
  margin-top:24px;
  font-family:var(--serif); font-size:22px; font-style:italic; color:var(--wine-text)
}
.service-copy .quote + .button { margin-top:32px }
.value-list { display:grid; gap:20px }
.value-list li { display:flex; gap:16px }
.value-list .icon { width:30px; height:30px; color:var(--wine-text); stroke-width:1.3 }
.value-list p { font-size:14.5px; line-height:1.55; margin-top:2px }
.team-gallery {
  display:grid; grid-template-columns:1fr 1.5fr 1.5fr; grid-template-rows:auto auto;
  gap:16px; padding-bottom:64px
}
.team-gallery .team-tall { grid-row:span 2 }
.team-gallery .team-tall img { aspect-ratio:auto; height:100% }

/* Media */
.media-section { padding-block:56px 88px }
.media-intro { max-width:760px; margin-bottom:28px }
.media-filters {
  display:flex; flex-wrap:wrap; gap:4px 28px;
  border-bottom:1px solid var(--line); margin-bottom:28px
}
.media-filters button {
  min-height:44px; padding:8px 0; background:none; border:0;
  border-bottom:2px solid transparent; margin-bottom:-1px;
  font-size:15px; color:var(--muted)
}
.media-filters button:hover { color:var(--ink) }
.media-filters button[aria-pressed=true] { color:var(--wine-text); border-color:var(--wine-text); font-weight:600 }
.media-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:32px }
.media-tile { position:relative; overflow:hidden; border-radius:var(--radius); background:var(--sand) }
.media-tile img { width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .5s }
.media-tile:hover img { transform:scale(1.04) }
.media-tile figcaption { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0) }
.ai-badge {
  position:absolute; left:8px; bottom:8px;
  padding:2px 8px; border-radius:2px;
  background:rgba(20,8,10,.62); color:#fff; font-size:11px; letter-spacing:.02em
}
.media-video { display:block; color:#fff; text-decoration:none }
.media-video::after { content:''; position:absolute; inset:0; background:rgba(20,8,10,.35) }
.media-video .play {
  position:absolute; z-index:1; top:50%; left:50%; transform:translate(-50%,-60%);
  display:grid; place-items:center; width:58px; height:58px; border-radius:50%;
  background:rgba(255,255,255,.92); color:var(--wine)
}
.media-video .play .icon { width:26px; height:26px; fill:currentColor; stroke:none; margin-left:3px }
.video-label { position:absolute; z-index:1; left:12px; bottom:10px; font-size:13px; font-weight:600 }

/* Contact */
.contact-layout {
  display:grid; grid-template-columns:1fr 1.1fr; gap:56px;
  padding-block:64px 88px; align-items:start
}
.contact-info h2 { margin-bottom:24px }
.contact-lines { display:grid; gap:16px; margin-bottom:28px }
.contact-lines li { display:flex; align-items:flex-start; gap:14px; font-size:17px }
.contact-lines .icon { color:var(--wine-text); width:22px; height:22px; margin-top:3px }
.contact-lines a { text-decoration:none }
.contact-lines a:hover { text-decoration:underline }
.map-frame {
  position:relative; aspect-ratio:16/9; margin-bottom:16px;
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--sand)
}
.map-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0 }
.hours-title {
  display:flex; align-items:center; gap:10px;
  margin-block:36px 12px; font-family:var(--serif); font-size:22px; font-weight:400
}
.hours-title .icon { color:var(--wine-text) }
.hours div { display:flex; justify-content:space-between; gap:24px; padding-block:6px }
.hours-light { max-width:420px }
.hours-light div + div { border-top:1px solid var(--line) }
.hours-light dd { color:var(--muted) }
.contact-photo { margin-top:32px }
.contact-photo img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:var(--radius) }
.contact-form-wrap {
  background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); padding:40px; box-shadow:var(--shadow)
}
.contact-form-wrap > p { margin-block:10px 24px }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px }
.form-grid label { display:grid; gap:6px; font-size:14px; font-weight:600; color:var(--ink) }
.form-grid .full { grid-column:1/-1 }
.form-grid input,.form-grid textarea {
  width:100%; min-height:48px; padding:12px 14px;
  background:var(--cream); border:1px solid var(--line); border-radius:var(--radius);
  font-weight:400; font-size:16px
}
.form-grid textarea { resize:vertical; min-height:140px }
.form-grid input:focus,.form-grid textarea:focus { border-color:var(--wine-text) }
.form-note { margin-block:16px; font-size:13.5px }
.form-success,.form-error {
  margin-bottom:20px; padding:14px 16px; border-radius:var(--radius);
  font-size:15px; color:var(--ink); border:1px solid var(--line)
}
.form-success { background:color-mix(in srgb,#2f7a4a 12%,var(--paper)); border-color:color-mix(in srgb,#2f7a4a 45%,var(--line)) }
.form-error { background:color-mix(in srgb,var(--wine) 10%,var(--paper)); border-color:var(--wine-text) }
.form-status a { color:var(--wine-text) }

/* Footer */
.footer-cta {
  position:relative; color:#fff; text-align:center;
  background:var(--wine-deep) url('gen/velvet-texture.webp') center/cover no-repeat
}
.footer-cta::before { content:''; position:absolute; inset:0; background:rgba(40,4,12,.5) }
.footer-cta-inner { position:relative; padding-block:52px; max-width:760px }
.footer-cta h2 { color:#fff; font-size:clamp(24px,2.6vw,34px) }
.footer-cta p { color:rgba(255,255,255,.86); margin:10px auto 0; max-width:52ch }
.footer-cta-actions { display:flex; justify-content:center; gap:14px; margin-top:24px }
.footer-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:10px; min-width:230px;
  padding:13px 22px; border-radius:6px; font-weight:600; text-decoration:none; border:1.5px solid #fff;
  transition:background .2s,color .2s,border-color .2s
}
.footer-btn .icon { width:20px; height:20px }
.footer-btn-light { background:#fff; color:#7a1430 }
.footer-btn-light:hover { background:#f2c9d2; border-color:#f2c9d2 }
.footer-btn-line { color:#fff; border-color:rgba(255,255,255,.8) }
.footer-btn-line:hover { background:rgba(255,255,255,.12); border-color:#fff }
.footer-bottom { background:var(--wine-deep); color:rgba(255,255,255,.88) }
.footer-grid {
  display:grid; grid-template-columns:1.15fr 1fr 1.1fr; gap:48px;
  padding-block:48px 40px; border-bottom:1px solid rgba(255,255,255,.14)
}
.footer-grid > * { min-width:0 }
.footer-logo { display:inline-block; margin-bottom:24px }
.footer-logo img { height:74px; width:auto }
.footer-contact { display:grid; gap:16px }
.footer-contact li { display:flex; gap:14px; align-items:flex-start }
.footer-contact .icon { width:22px; height:22px; flex:none; margin-top:1px; color:#fff }
.footer-contact a { text-decoration:none }
.footer-contact a:hover { text-decoration:underline }
.footer-social { display:flex; gap:12px; margin-top:22px }
.footer-social a {
  width:40px; height:40px; display:grid; place-items:center; border-radius:50%;
  border:1px solid rgba(255,255,255,.3); color:#fff; transition:background .2s
}
.footer-social a:hover { background:rgba(255,255,255,.14) }
.footer-social .icon { width:20px; height:20px; fill:currentColor; stroke:none }
.footer-col h3 {
  display:flex; align-items:center; gap:10px; margin-bottom:14px; color:#fff;
  font-family:var(--serif); font-size:20px; font-weight:400
}
.footer-col h3 .icon { width:22px; height:22px; color:#fff }
.footer-links li { border-bottom:1px solid rgba(255,255,255,.14) }
.footer-links a {
  display:flex; justify-content:space-between; align-items:center; gap:8px;
  padding:9px 0; text-decoration:none; font-size:15px
}
.footer-links a::after {
  content:''; width:7px; height:7px; flex:none; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor;
  transform:rotate(45deg); opacity:.6; transition:transform .2s,opacity .2s
}
.footer-links a:hover { color:#fff }
.footer-links a:hover::after { opacity:1; transform:translateX(3px) rotate(45deg) }
.footer-hours .hours div { display:flex; justify-content:space-between; gap:12px; padding-block:3px; font-size:15px }
.footer-hours dd { color:rgba(255,255,255,.86); white-space:nowrap }
.footer-map {
  position:relative; display:block; margin-top:18px; border-radius:8px; overflow:hidden;
  aspect-ratio:16/10; border:1px solid rgba(255,255,255,.2)
}
.footer-map img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease }
.footer-map:hover img { transform:scale(1.04) }
.footer-pin { position:absolute; left:50%; top:45%; transform:translate(-50%,-100%); filter:drop-shadow(0 2px 3px rgba(0,0,0,.35)) }
.footer-pin .icon { width:32px; height:32px; fill:#c8102e; stroke:#fff; stroke-width:1.3 }
.footer-map-label {
  position:absolute; left:50%; top:49%; transform:translateX(-50%); padding:2px 9px; border-radius:99px;
  background:#fff; color:#3f0815; font-size:12px; font-weight:600; box-shadow:0 1px 4px rgba(0,0,0,.25)
}
.footer-map small { position:absolute; right:0; bottom:0; padding:1px 5px; font-size:9px; background:rgba(255,255,255,.82); color:#333 }
.footer-legal {
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px;
  align-items:center;
  padding-block:18px; font-size:12.5px; color:rgba(255,255,255,.66)
}
.designer-link {
  display:inline-flex; align-items:center; gap:10px; min-height:44px;
  color:rgba(255,255,255,.72); text-decoration:none; transition:color .2s
}
.designer-link:hover,.designer-link:focus-visible { color:#fff }
.mrtweb-logo { height:22px; width:auto; display:block }

/* ≤1199: hamburger navigation */
@media (max-width:1279px) {
  .header-inner { gap:16px }
  .header-phone { margin-left:auto }
  .main-nav {
    position:absolute; z-index:11; top:100%; left:0; right:0;
    display:none; flex-direction:column; gap:0; margin:0;
    padding:8px var(--gutter) 20px;
    background:var(--paper); border-bottom:1px solid var(--line); box-shadow:var(--shadow)
  }
  .main-nav.is-open { display:flex }
  .main-nav a { padding-block:14px; font-size:17px; border-bottom:1px solid var(--line) }
  .main-nav a::after { display:none }
  .site-header { position:sticky }
  .about-home { grid-template-columns:1fr 1fr }
  .about-home-photo,.detail-card { min-height:300px }
}
html:not(.js) .main-nav { position:static; display:flex; flex-wrap:wrap; flex-direction:row; padding:0; box-shadow:none; border:0 }

/* ≤1023: tablet */
@media (max-width:1023px) {
  :root { --gutter:32px }
  .home-hero-photo { object-position:88% center }
  .home-hero-shade { background:linear-gradient(90deg,var(--cream) 0%,var(--cream) 46%,color-mix(in srgb,var(--cream) 70%,transparent) 62%,transparent 86%) }
  .home-hero-content > * { max-width:440px }
  .trust-grid { grid-template-columns:repeat(2,1fr) }
  .trust-grid li:nth-child(3) { border-left:0 }
  .trust-grid li:nth-child(n+3) { border-top:1px solid var(--line) }
  .service-grid { grid-template-columns:repeat(2,1fr) }
  .service-intro { grid-template-columns:1fr; gap:36px }
  .service-aside { margin-top:0 }
  .highlights { grid-template-columns:repeat(3,1fr) }
  .service-gallery { grid-template-columns:repeat(2,1fr) }
  .feature-band { grid-template-columns:1fr }
  .feature-photo { min-height:300px }
  .related-grid { grid-template-columns:repeat(3,1fr); gap:14px }
  .related-title { font-size:20px; left:14px; bottom:14px }
  .related-card .round-arrow { display:none }
  .media-grid { grid-template-columns:repeat(3,1fr) }
  .contact-layout { grid-template-columns:1fr; gap:40px }
  .team-gallery { grid-template-columns:1fr 1fr }
  .team-gallery .team-tall { grid-row:auto; grid-column:1/-1 }
  .team-gallery .team-tall img { aspect-ratio:16/10; object-position:center 20% }
}

/* ≤639: mobile */
@media (max-width:639px) {
  :root { --gutter:20px }
  body { font-size:16px }
  .header-inner { flex-wrap:nowrap; min-height:68px; padding-block:8px; gap:10px }
  .brand img { height:34px }
  .header-phone { margin-left:auto; font-size:14.5px }
  .menu-toggle { margin-left:0; margin-right:-8px }
  .main-nav { padding-inline:20px }
  .home-hero { display:flex; flex-direction:column }
  .home-hero-photo { position:relative; height:300px; object-position:78% center }
  .home-hero-shade { inset:auto 0 0; top:180px; height:122px; background:linear-gradient(180deg,transparent,var(--cream)) }
  .home-hero-content { min-height:0; padding-block:0 40px; margin-top:-40px }
  .home-hero h1 { font-size:clamp(34px,10vw,42px) }
  .hero-actions { flex-direction:column }
  .hero-actions .button { width:100% }
  .trust-grid { grid-template-columns:1fr }
  .trust-grid li { padding:14px 4px; border-left:0 !important }
  .trust-grid li + li { border-top:1px solid var(--line) }
  .services-home { padding-top:32px }
  .service-grid { grid-template-columns:1fr; gap:14px }
  .service-card { aspect-ratio:16/10 }
  .about-home { grid-template-columns:1fr; padding-bottom:64px }
  .about-home-photo img { -webkit-mask-image:none; mask-image:none }
  .about-home-photo { min-height:240px }
  .detail-card { min-height:220px }
  .page-hero { background:var(--cream) }
  .page-hero-photo { position:relative; height:230px }
  .page-hero-shade { display:none }
  .page-hero-content { min-height:0; padding-block:22px 4px }
  .page-hero h1 { color:var(--ink); font-size:38px }
  .page-hero-sub { color:var(--wine-text) }
  .breadcrumb { color:var(--muted); margin-bottom:10px }
  .service-intro { padding-block:24px 40px }
  .service-aside { padding:24px }
  .highlights { grid-template-columns:repeat(2,1fr) }
  .service-gallery { gap:10px; padding-bottom:40px }
  .feature-copy { padding:32px 22px }
  .feature-band { margin-bottom:56px }
  .feature-copy .button { width:100% }
  .related-grid { grid-template-columns:1fr }
  .related-title { font-size:22px }
  .media-filters { gap:8px; border:0 }
  .media-filters button {
    min-height:40px; padding:6px 14px; border:1px solid var(--line);
    border-radius:var(--radius); margin:0; font-size:14px; background:var(--paper)
  }
  .media-filters button[aria-pressed=true] { background:var(--wine); color:var(--on-wine); border-color:var(--wine) }
  .media-grid { grid-template-columns:repeat(2,1fr); gap:10px }
  .contact-layout { padding-block:32px 64px }
  .contact-form-wrap { padding:24px 20px }
  .form-grid { grid-template-columns:1fr }
  .contact-form .button { width:100% }
  .footer-cta-inner { padding-block:30px 32px }
  .footer-cta h2 { font-size:21px }
  .footer-cta p { font-size:14px }
  .footer-cta-actions { gap:10px; margin-top:18px }
  .footer-btn { min-width:0; flex:1 1 0; padding:11px 8px; gap:7px; font-size:13px }
  .footer-btn .icon { width:16px; height:16px }
  .footer-grid { grid-template-columns:1.05fr .9fr 1.2fr; gap:10px; padding-block:26px 22px }
  .footer-logo { margin-bottom:16px }
  .footer-logo img { height:auto; width:100%; max-width:150px }
  .footer-contact { gap:12px }
  .footer-contact li { gap:6px; font-size:11.5px; line-height:1.4 }
  .footer-contact .icon { width:16px; height:16px }
  .footer-social { margin-top:14px }
  .footer-social a { width:32px; height:32px }
  .footer-social .icon { width:17px; height:17px }
  .footer-col h3 { font-size:14px; gap:6px; margin-bottom:8px; font-family:inherit; font-weight:600 }
  .footer-col h3 .icon { width:16px; height:16px }
  .footer-links a { padding:6px 0; font-size:11px; gap:4px }
  .footer-links a::after { width:5px; height:5px }
  .footer-hours .hours div { padding-block:1px; font-size:10.5px; gap:4px }
  .footer-map { margin-top:10px; aspect-ratio:4/3; border-radius:6px }
  .footer-pin .icon { width:22px; height:22px }
  .footer-map-label { font-size:9px; padding:1px 6px }
  .footer-map small { font-size:7px }
  .footer-legal { justify-content:center; text-align:center }
}
@media (max-width:374px) {
  .footer-cta-actions { flex-direction:column }
  .footer-grid { grid-template-columns:1fr 1fr; gap:22px 14px }
  .footer-hours { grid-column:1/-1 }
  .footer-hours .hours div { font-size:12px }
  .footer-map { aspect-ratio:16/7 }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { transition:none !important }
}

/* Announcement bar (admin → Mededeling, or today's special opening day) */
.announce-bar { background:var(--wine); color:var(--on-wine); font-size:14.5px; line-height:1.45 }
.announce-bar .container { display:flex; align-items:center; justify-content:center; gap:10px; padding-block:9px; text-align:center }
.announce-bar .icon { flex:none; width:18px; height:18px }

/* Special opening days under the regular hours */
.special-hours { margin-top:14px; padding-top:12px; border-top:1px dashed currentColor; border-top-color:color-mix(in srgb,currentColor 35%,transparent) }
.special-title { font-weight:600; font-size:14px; margin-bottom:4px; color:inherit }
.site-footer .footer-hours .special-title { color:#fff; font:600 13.5px/1.4 var(--sans); letter-spacing:0; margin:0 0 4px }

/* Legal text (privacy statement) */
.legal-section { padding-block:56px 88px }
.legal-text { max-width:760px }
.legal-text h2 { font-size:clamp(22px,2.2vw,28px); margin-block:36px 12px }
.legal-text h2:first-child { margin-top:0 }
.legal-text ul { list-style:disc; padding-left:22px; margin-block:12px; color:var(--muted) }
.legal-text li + li { margin-top:6px }
.legal-text p + ul,.legal-text ul + p { margin-top:12px }
.footer-legal span a { color:inherit; text-underline-offset:3px }
.footer-legal span a:hover { color:#fff }

/* Floating WhatsApp button */
.wa-float {
  position:fixed; z-index:9; right:20px; bottom:20px;
  display:inline-flex; align-items:center; gap:10px;
  min-height:52px; padding:10px 20px 10px 14px; border-radius:28px;
  background:#25d366; color:#06331a; font-weight:700; font-size:15px; text-decoration:none;
  box-shadow:0 10px 24px -8px rgba(0,0,0,.45); transition:transform .2s,box-shadow .2s
}
.wa-float svg { width:28px; height:28px; fill:currentColor; flex:none }
.wa-float:hover { transform:translateY(-2px); box-shadow:0 14px 28px -8px rgba(0,0,0,.5) }
.wa-float:focus-visible { outline:3px solid var(--wine-text); outline-offset:3px }
@media (max-width:639px) {
  .wa-float { right:14px; bottom:14px; width:56px; height:56px; padding:0; justify-content:center; border-radius:50% }
  .wa-float span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0) }
  .site-footer { padding-bottom:76px; background:var(--wine-deep) }
  .announce-bar { font-size:13.5px }
}
@media print { .wa-float,.announce-bar { display:none } }

/* Home hero ≥1024: photo in its own right-hand panel (mannequin stays whole), left edge fades into the cream */
@media (min-width:1024px) {
  .home-hero-photo {
    left:auto; right:0; width:calc(50% + 140px);
    object-position:50% 30%;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 14%,#000 30%);
    mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 14%,#000 30%)
  }
  .home-hero-shade { display:none }
  .home-hero-content { min-height:clamp(520px,64vh,640px) }
}
@media (min-width:1024px) and (max-width:1279px) {
  .home-hero-photo { width:calc(50% + 60px) }
  .home-hero-content > * { max-width:460px }
  .home-hero h1 { font-size:46px }
}
@media (min-width:1600px) {
  .home-hero-photo { width:calc(50% + 220px) }
}
@media (min-width:1024px) and (max-width:1199px) {
  .trust-grid { grid-template-columns:repeat(2,1fr) }
  .trust-grid li:nth-child(3) { border-left:0 }
  .trust-grid li:nth-child(n+3) { border-top:1px solid var(--line) }
}

/* Media gallery v2: mixed tile sizes, hover caption, zoom affordance */
.media-grid { grid-template-columns:repeat(4,1fr); grid-auto-rows:210px; grid-auto-flow:dense; gap:12px }
.media-tile { height:100%; border-radius:6px; box-shadow:0 10px 26px -18px rgba(40,10,18,.55) }
.media-tile.t-big { grid-column:span 2; grid-row:span 2 }
.media-tile.t-wide { grid-column:span 2 }
.media-tile.t-tall { grid-row:span 2 }
.media-tile img { height:100%; aspect-ratio:auto; transition:transform .6s cubic-bezier(.2,.7,.2,1) }
.media-tile:hover img,.media-tile:focus-within img { transform:scale(1.05) }
.lb-open { position:relative; display:block; height:100%; color:#fff; cursor:zoom-in }
.lb-open:focus-visible { outline:3px solid var(--wine-text); outline-offset:3px }
.media-tile figcaption {
  position:absolute; inset:auto 0 0; width:auto; height:auto; clip:auto; overflow:visible; pointer-events:none;
  display:grid; justify-items:start; gap:6px; padding:44px 16px 14px;
  background:linear-gradient(180deg,transparent,rgba(18,6,9,.82)); color:#fff;
  opacity:0; transform:translateY(8px); transition:opacity .25s,transform .25s
}
.media-tile:hover figcaption,.media-tile:focus-within figcaption { opacity:1; transform:none }
.media-chip { padding:3px 10px; border-radius:12px; background:rgba(255,255,255,.92); color:#7a1430; font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase }
.media-caption { font-family:var(--serif); font-size:16px; line-height:1.3; text-wrap:balance }
.t-big .media-caption { font-size:21px }
.lb-zoom {
  position:absolute; top:12px; right:12px; display:grid; place-items:center; width:40px; height:40px;
  border-radius:50%; background:rgba(255,255,255,.92); color:#7a1430;
  opacity:0; transform:scale(.85); transition:opacity .25s,transform .25s
}
.lb-zoom svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round }
.lb-open:hover .lb-zoom,.lb-open:focus-visible .lb-zoom { opacity:1; transform:none }
.media-video { height:100% }
.media-video img { height:100% }
.service-gallery .lb-open,.team-gallery .lb-open { border-radius:var(--radius); overflow:hidden }
.service-gallery .lb-open img,.team-gallery .lb-open img { transition:transform .6s cubic-bezier(.2,.7,.2,1) }
.service-gallery .lb-open:hover img,.team-gallery .lb-open:hover img { transform:scale(1.04) }
@media (hover:none) {
  .media-tile figcaption { opacity:1; transform:none; padding:28px 10px 10px }
  .media-caption { display:none }
  .lb-zoom { opacity:1; transform:none; width:32px; height:32px; top:8px; right:8px }
  .lb-zoom svg { width:16px; height:16px }
}
@media (max-width:1023px) {
  .media-grid { grid-template-columns:repeat(3,1fr); grid-auto-rows:190px }
}
@media (max-width:639px) {
  .media-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:140px; gap:8px }
  .media-tile.t-wide { grid-column:span 2 }
  .media-tile figcaption { padding:24px 8px 8px }
  .media-chip { font-size:10px; padding:2px 8px }
}

/* Lightbox */
html.lb-lock { overflow:hidden }
.lightbox {
  width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0;
  background:rgba(14,6,9,.97); color:#fff; overscroll-behavior:contain
}
.lightbox::backdrop { background:rgba(14,6,9,.6) }
.lightbox[open] { display:grid; grid-template-rows:auto 1fr auto; animation:lb-in .22s ease }
@keyframes lb-in { from { opacity:0 } to { opacity:1 } }
.lb-top { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px }
.lb-count { font-size:14px; letter-spacing:.08em; color:rgba(255,255,255,.75) }
.lb-stage { position:relative; display:grid; place-items:center; min-height:0; padding:0 76px }
.lb-stage img {
  max-width:100%; max-height:calc(100dvh - 150px); width:auto; height:auto; object-fit:contain;
  border-radius:4px; box-shadow:0 30px 80px -30px rgba(0,0,0,.8); user-select:none; -webkit-user-drag:none;
  transition:opacity .2s
}
.lb-stage img.loading { opacity:.25 }
.lb-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; padding:14px 18px 20px; text-align:center }
.lb-foot .media-chip { background:#fff }
.lb-caption { font-family:var(--serif); font-size:18px; line-height:1.35; max-width:760px; color:#fff }
.lb-btn {
  display:grid; place-items:center; width:48px; height:48px; border-radius:50%;
  border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.08); color:#fff; cursor:pointer;
  transition:background .2s,border-color .2s
}
.lb-btn:hover { background:rgba(255,255,255,.2); border-color:rgba(255,255,255,.6) }
.lb-btn:focus-visible { outline:3px solid #fff; outline-offset:3px }
.lb-btn svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round }
.lb-close { gap:8px; width:auto; padding:0 18px 0 14px; border-radius:24px; font-weight:600; font-size:15px; display:inline-flex; align-items:center }
.lb-prev,.lb-next { position:absolute; top:50%; transform:translateY(-50%) }
.lb-prev { left:16px }
.lb-next { right:16px }
.lb-prev[hidden],.lb-next[hidden] { display:none }
@media (max-width:639px) {
  .lb-stage { padding:0 10px }
  .lb-stage img { max-height:calc(100dvh - 190px) }
  .lb-prev,.lb-next { top:auto; bottom:-62px; transform:none }
  .lb-prev { left:18px }
  .lb-next { right:18px }
  .lb-foot { padding:14px 80px 22px; min-height:76px }
  .lb-caption { font-size:15px }
}
@media (prefers-reduced-motion:reduce) { .lightbox[open] { animation:none } }

/* Media gallery v3: one calm grid — equal tiles in reading order; portraits are framed from the top */
.media-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:auto; grid-auto-flow:row; gap:14px; columns:auto }
.media-tile { display:block; height:auto; margin:0; aspect-ratio:4/3 }
.media-tile.t-big,.media-tile.t-wide,.media-tile.t-tall { grid-column:auto; grid-row:auto }
.media-tile .lb-open,.media-tile.media-video { height:100% }
.media-tile img,.media-video img { width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:50% 50% }
.media-tile img.is-portrait { object-position:50% 18% }
@media (max-width:1023px) { .media-grid { grid-template-columns:repeat(3,1fr); gap:12px } }
@media (max-width:639px) { .media-grid { grid-template-columns:repeat(2,1fr); gap:8px } }

/* Inner page heroes: centred text on an even shade */
.page-hero-shade { background:linear-gradient(180deg,rgba(18,8,10,.42) 0%,rgba(18,8,10,.58) 100%) }
.page-hero-content { align-items:center; justify-content:center; text-align:center; padding-block:64px }
.page-hero h1,.page-hero-sub { margin-inline:auto; text-wrap:balance }
.page-hero .breadcrumb { justify-content:center }
@media (max-width:639px) {
  .page-hero-content { padding-block:22px 4px }
}
.breadcrumb .crumb-sep { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; opacity:.8 }

/* Reviews (Google / manual) */
.reviews-section { padding-block:24px 88px }
.reviews-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:28px }
.reviews-score { display:flex; align-items:center; gap:12px; padding:12px 18px; border-radius:var(--radius); background:var(--paper); border:1px solid var(--line) }
.reviews-score strong { font-family:var(--serif); font-size:34px; font-weight:400; line-height:1 }
.reviews-score span:last-child { font-size:14px; color:var(--muted) }
.stars { display:inline-flex; gap:2px }
.stars svg { width:18px; height:18px; fill:#e0a526 }
.stars svg.off { fill:var(--line) }
.review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px }
.review-card { display:flex; flex-direction:column; gap:14px; padding:24px; border-radius:var(--radius); background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow) }
.review-card blockquote p { color:var(--ink); line-height:1.6 }
.review-card footer { display:flex; align-items:center; gap:12px; margin-top:auto }
.review-avatar { display:grid; place-items:center; width:40px; height:40px; flex:none; border-radius:50%; background:var(--wine); color:var(--on-wine); font-weight:700 }
.review-card footer strong { display:block; font-size:15px }
.review-card footer small { color:var(--muted); font-size:13px }
.reviews-links { display:flex; flex-wrap:wrap; align-items:center; gap:16px 28px; margin-top:28px }

/* FAQ */
.faq-section { padding-block:80px 96px; background:var(--paper); border-top:1px solid var(--line) }
.faq-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr); gap:64px; align-items:start }
.faq-intro { position:sticky; top:120px }
.faq-intro > p:not(.eyebrow) { margin-block:16px 26px; max-width:420px }
.faq-actions { display:flex; flex-wrap:wrap; gap:12px }
.faq-list { border-top:1px solid var(--line) }
.faq-item { border-bottom:1px solid var(--line) }
.faq-item summary {
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  min-height:64px; padding:18px 4px; cursor:pointer; list-style:none;
  font-family:var(--serif); font-size:clamp(18px,1.6vw,21px); line-height:1.3; color:var(--ink)
}
.faq-item summary::-webkit-details-marker { display:none }
.faq-item summary:hover { color:var(--wine-text) }
.faq-item summary:focus-visible { outline:3px solid var(--wine-text); outline-offset:2px }
.faq-toggle { position:relative; width:34px; height:34px; flex:none; border-radius:50%; border:1.5px solid var(--line); transition:background .2s,border-color .2s,transform .25s }
.faq-toggle::before,.faq-toggle::after { content:''; position:absolute; top:50%; left:50%; width:12px; height:1.6px; margin:-.8px 0 0 -6px; background:var(--wine-text); transition:transform .25s }
.faq-toggle::after { transform:rotate(90deg) }
.faq-item[open] .faq-toggle { background:var(--wine); border-color:var(--wine) }
.faq-item[open] .faq-toggle::before,.faq-item[open] .faq-toggle::after { background:var(--on-wine) }
.faq-item[open] .faq-toggle::after { transform:rotate(0deg) }
.faq-answer { padding:0 56px 22px 4px }
.faq-answer p + p,.faq-answer p + .hours,.faq-answer .hours + p { margin-top:12px }
.faq-answer a { color:var(--wine-text) }
.faq-hours { max-width:380px }
.faq-hours div { display:flex; justify-content:space-between; gap:20px; padding-block:4px; border-bottom:1px dashed var(--line) }
.faq-hours dd { color:var(--muted) }
@media (max-width:1023px) {
  .review-grid { grid-template-columns:repeat(2,1fr) }
  .faq-layout { grid-template-columns:1fr; gap:28px }
  .faq-intro { position:static }
}
@media (max-width:639px) {
  .reviews-section { padding-bottom:64px }
  .review-grid { grid-template-columns:1fr }
  .faq-section { padding-block:56px 64px }
  .faq-answer { padding-right:4px }
  .faq-actions .button { width:100% }
}

/* Header phone: plain bold bordeaux text with icon, like the logo — no filled box */
.header-phone,.header-phone:hover {
  background:none; padding:8px 0; border-radius:0; color:var(--wine-text);
  font-weight:700; letter-spacing:.01em; min-height:44px
}
.header-phone .icon { width:18px; height:18px; stroke-width:1.9 }
.header-phone:hover span,.header-phone:focus-visible span { text-decoration:underline; text-underline-offset:4px }
@media (max-width:359px) {
  .brand img { height:30px }
  .header-phone { font-size:13px; gap:6px }
  .header-phone .icon { width:16px; height:16px }
}

/* Google-style reviews */
.g-summary {
  display:grid; grid-template-columns:auto 1fr; align-items:center; gap:2px 10px;
  padding:14px 20px; border-radius:12px; background:#fff; border:1px solid #dadce0;
  box-shadow:0 1px 2px rgba(60,64,67,.15),0 2px 6px rgba(60,64,67,.1); font-family:Roboto,Arial,sans-serif
}
.g-wordmark { font-size:22px; font-weight:500; letter-spacing:-.5px; line-height:1 }
.g-summary-label { font-size:17px; color:#5f6368; line-height:1 }
.g-summary-score { grid-column:1/-1; display:flex; align-items:center; gap:8px; margin-top:6px }
.g-summary-score strong { font-size:28px; font-weight:400; color:#202124; line-height:1 }
.g-summary-count { grid-column:1/-1; font-size:13px; color:#70757a }
.reviews-section .stars svg { fill:#fbbc04 }
.reviews-section .stars svg.off { fill:#dadce0 }
.g-track { display:grid; grid-template-columns:repeat(3,1fr); gap:20px }
.g-track:focus-visible { outline:3px solid var(--wine-text); outline-offset:6px; border-radius:12px }
.g-review {
  display:flex; flex-direction:column; gap:10px; padding:20px; border-radius:12px; background:#fff;
  border:1px solid #dadce0; box-shadow:0 1px 2px rgba(60,64,67,.12); font-family:Roboto,Arial,sans-serif; color:#202124
}
.g-review header { display:flex; align-items:center; gap:12px }
.g-avatar { display:grid; place-items:center; width:40px; height:40px; flex:none; border-radius:50%; color:#fff; font-size:18px; font-weight:500 }
.g-author { flex:1; min-width:0 }
.g-author strong { display:block; font-size:15px; font-weight:500; color:#202124; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.g-author small { display:block; font-size:13px; color:#70757a }
.g-logo { width:22px; height:22px; flex:none }
.g-review .stars svg { width:16px; height:16px }
.g-review p { color:#3c4043; font-size:14.5px; line-height:1.6; margin:0 }
.g-dots { display:none }
.g-btn {
  display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:10px 20px; border-radius:22px;
  background:#fff; border:1px solid #dadce0; color:#1a73e8; font:500 15px/1 Roboto,Arial,sans-serif; text-decoration:none
}
.g-btn .g-logo { width:20px; height:20px }
.g-btn:hover { background:#f8fafe; border-color:#d2e3fc }
.g-btn-primary { background:#1a73e8; border-color:#1a73e8; color:#fff }
.g-btn-primary:hover { background:#1765cc; border-color:#1765cc }
/* Tablet + mobile: horizontal swipe carousel */
@media (max-width:1023px) {
  .g-track {
    display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:var(--gutter);
    margin-inline:calc(var(--gutter) * -1); padding:4px var(--gutter) 10px; scrollbar-width:none; -webkit-overflow-scrolling:touch
  }
  .g-track::-webkit-scrollbar { display:none }
  .g-review { flex:0 0 min(84%,360px); scroll-snap-align:start }
  .g-dots { display:flex; justify-content:center; gap:8px; margin-top:12px }
  .g-dots span { width:8px; height:8px; border-radius:50%; background:#dadce0; transition:background .2s }
  .g-dots span.on { width:22px; border-radius:4px; background:var(--wine) }
  .reviews-links { justify-content:center }
}
@media (max-width:639px) {
  .g-summary { width:100% }
}

/* Reviews: centred heading block */
.reviews-head { flex-direction:column; align-items:center; text-align:center; gap:18px }
.reviews-head .eyebrow { margin-inline:auto }
.g-summary { justify-items:start }
.reviews-links { justify-content:center }
@media (max-width:639px) { .g-summary { width:auto } }

/* Review carousel: exactly one card (mobile) / two cards (tablet) in view, no peeking neighbours */
@media (max-width:1023px) {
  .g-track { margin-inline:0; padding:4px 0 10px; scroll-padding-inline:0; gap:16px }
  .g-review { flex:0 0 calc(50% - 8px); scroll-snap-align:start }
}
@media (max-width:639px) {
  .g-review { flex:0 0 100% }
}

/* Centred section headings */
.faq-layout { grid-template-columns:1fr; gap:36px; max-width:860px }
.faq-intro { position:static; text-align:center }
.faq-intro > p:not(.eyebrow) { margin-inline:auto }
.faq-actions { justify-content:center }
.related h2 { text-align:center }
@media (max-width:1023px) { .g-track { align-items:flex-start } }

/* Centred headings site-wide (lists, forms and long text stay left-aligned for readability) */
.about-home-copy,.motto,.service-copy,.feature-copy,.contact-info > h2,.contact-form-wrap > h2,.contact-form-wrap > p,.media-intro,.related h2,.service-aside > h2,.legal-text h2 { text-align:center }
.about-home-copy .eyebrow,.motto .eyebrow { margin-inline:auto }
.about-home-copy .button,.service-copy .button,.feature-copy .button { margin-inline:auto; display:flex; width:fit-content }
.motto-card { text-align:center }
.motto-card .text-link { margin-inline:auto }
.feature-icon { margin-inline:auto; display:grid }
.quote p { text-align:center }
.media-intro { margin-inline:auto }
.contact-lines { width:fit-content; margin-inline:auto }
.contact-info .text-link { display:flex; width:fit-content; margin-inline:auto }
.hours-title { justify-content:center }
.hours-light { margin-inline:auto }
.media-filters { justify-content:center }
@media (max-width:639px) {
  .about-home-copy .button,.service-copy .button,.feature-copy .button { width:100% }
}

/* Products */
.products-section { padding-block:56px 88px }
.products-intro { max-width:760px; margin:0 auto 28px; text-align:center }
.products-intro h2 { margin-bottom:12px }
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px }
.product-card { display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); text-align:center }
.product-card[hidden] { display:none }
.product-photo { aspect-ratio:1/2; background:var(--sand); overflow:hidden }
.product-photo .lb-open,.product-photo img { width:100%; height:100%; display:block }
.product-photo img { object-fit:cover; object-position:50% 10%; transition:transform .6s cubic-bezier(.2,.7,.2,1) }
.product-card:hover .product-photo img { transform:scale(1.04) }
.product-body { display:flex; flex-direction:column; align-items:center; gap:8px; padding:18px 18px 20px; flex:1 }
.product-cat { font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--wine-text) }
.product-body h3 { font-family:var(--serif); font-size:21px; font-weight:400; line-height:1.2; color:var(--ink) }
.product-body p { font-size:14.5px; line-height:1.55 }
.product-price { margin-top:auto !important; padding-top:4px; font-weight:700; color:var(--ink) !important }
.product-btn { width:100%; min-height:46px; font-size:14px; padding:10px 14px }
@media (max-width:1023px) { .product-grid { grid-template-columns:repeat(3,1fr); gap:16px } }
@media (max-width:639px) {
  .products-section { padding-block:32px 64px }
  .product-grid { grid-template-columns:repeat(2,1fr); gap:10px }
  .product-body { padding:12px 10px 14px; gap:6px }
  .product-body h3 { font-size:16.5px }
  .product-body p:not(.product-price) { display:none }
  .product-btn { font-size:12.5px; padding:8px 6px; min-height:42px }
}
/* Product photos: show the whole image, never crop */
.product-photo { aspect-ratio:auto; background:var(--sand) }
.product-photo .lb-open { height:auto }
.product-photo img { height:auto; object-fit:contain; object-position:center }
.product-card:hover .product-photo img { transform:none }
/* Product tiles: equal boxes, whole photo fitted inside; a blurred copy fills any leftover edge */
.product-photo { position:relative; aspect-ratio:1/2; overflow:hidden; background:#1f1a1b }
.product-photo .pp-fill { position:absolute; inset:-12px; width:calc(100% + 24px); height:calc(100% + 24px); object-fit:cover; filter:blur(14px) brightness(.85); transform:none }
.product-photo .lb-open { position:relative; z-index:1; height:100% }
.product-photo .lb-open img { width:100%; height:100%; object-fit:contain; object-position:center }
.product-body h3 { min-height:2.4em; display:flex; align-items:center; justify-content:center }
.product-body p:not(.product-price) { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; min-height:4.65em }
@media (max-width:639px) { .product-body h3 { min-height:2.4em } }
@media (max-width:639px) { .product-body h3 { min-height:3.6em } }
@media (max-width:639px) { .product-body p:not(.product-price) { display:none } }
.product-photo { aspect-ratio:1/2.6 }
.product-photo.pp-cover .lb-open img { object-fit:cover; object-position:50% 0 }
.product-photo.pp-cover .pp-fill { display:none }

/* ---- Shop: header icons, swatches, favourites, detail, cart ---- */
.header-icon { position:relative; display:grid; place-items:center; width:42px; height:42px; flex:none; color:var(--ink); border-radius:50% }
.header-icon:hover { color:var(--wine-text); background:var(--sand) }
.header-icon .icon { width:22px; height:22px; stroke-width:1.6 }
.header-icon .badge { position:absolute; top:2px; right:0; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--wine); color:#fff; font-size:11px; font-weight:700; line-height:18px; text-align:center }
.header-fav { margin-left:4px }
.header-phone + .header-icon { margin-left:6px }
@media (max-width:1279px) { .header-icon { width:40px; height:40px } }
@media (max-width:639px) {
  .header-fav { display:none }
  .header-icon { width:38px; height:38px }
}
.main-nav .nav-fav { display:none }

.product-card { position:relative }
.product-photo .pp-link { position:relative; z-index:1; display:block; height:100% }
.product-photo .pp-main { width:100%; height:100%; object-fit:contain; object-position:center }
.fav-btn {
  position:absolute; z-index:2; top:10px; right:10px; display:grid; place-items:center; width:40px; height:40px;
  border:0; border-radius:50%; background:rgba(255,255,255,.92); color:var(--ink); cursor:pointer; box-shadow:0 4px 12px -4px rgba(0,0,0,.35); transition:transform .15s
}
.fav-btn .icon { width:21px; height:21px; fill:none; stroke-width:1.8 }
.fav-btn:hover { transform:scale(1.08) }
.fav-btn.is-on { color:#c8102e }
.fav-btn.is-on .icon { fill:#c8102e; stroke:#c8102e }
.fav-btn:focus-visible { outline:3px solid var(--wine-text); outline-offset:2px }
.pc-title { color:inherit; text-decoration:none }
.pc-title:hover { color:var(--wine-text) }
.pc-color { font-size:13.5px; color:var(--muted); margin:0 }
.swatches { display:flex; flex-wrap:wrap; justify-content:center; gap:6px; min-height:26px; max-height:58px; overflow:hidden }
.swatch { width:24px; height:24px; padding:0; border-radius:50%; border:2px solid var(--paper); background:var(--sw); box-shadow:0 0 0 1px var(--line); cursor:pointer; flex:none }
.swatch:hover { box-shadow:0 0 0 1.5px var(--ink) }
.swatch.is-active { box-shadow:0 0 0 2px var(--wine) }
.swatch:focus-visible { outline:2px solid var(--wine-text); outline-offset:3px }
.product-body .product-price { margin-top:auto }
@media (max-width:639px) {
  .swatch { width:20px; height:20px }
  .swatches { gap:5px; max-height:50px }
  .fav-btn { width:34px; height:34px; top:6px; right:6px }
}

/* Product detail */
.pd { padding-block:28px 64px }
.pd-crumb { justify-content:center; color:var(--muted); margin-bottom:24px }
.pd-crumb a { color:var(--muted) }
.pd-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:start }
.pd-gallery { position:sticky; top:110px; display:grid; gap:12px }
.pd-main { position:relative; display:block; aspect-ratio:2/3; overflow:hidden; border-radius:var(--radius); background:#1f1a1b; cursor:zoom-in }
.pd-main .pp-fill { position:absolute; inset:-12px; width:calc(100% + 24px); height:calc(100% + 24px); object-fit:cover; filter:blur(14px) brightness(.85) }
.pd-main-img { position:relative; width:100%; height:100%; object-fit:contain }
.pd-thumbs { display:flex; gap:10px; justify-content:center }
.pd-thumb { width:72px; aspect-ratio:2/3; border-radius:4px; overflow:hidden; border:2px solid transparent; opacity:.75 }
.pd-thumb img { width:100%; height:100%; object-fit:cover; object-position:top }
.pd-thumb.is-active,.pd-thumb:hover { border-color:var(--wine); opacity:1 }
.pd-info { text-align:center; display:grid; gap:14px; justify-items:center }
.pd-info h1 { font-size:clamp(32px,3.4vw,46px) }
.pd-price { font-size:20px; font-weight:700; color:var(--ink) }
.pd-color-label { color:var(--muted) }
.pd-color-label strong { color:var(--ink) }
.pd-info .swatches { max-height:none; max-width:420px }
.pd-info .swatch { width:32px; height:32px }
.pd-form { width:100%; max-width:440px; display:grid; gap:18px; margin-top:6px }
.pd-sizes { border:0; padding:0; margin:0; display:flex; flex-wrap:wrap; justify-content:center; gap:8px }
.pd-sizes legend { width:100%; margin-bottom:8px; font-weight:600 }
.pd-sizes label { position:relative }
.pd-sizes input { position:absolute; opacity:0 }
.pd-sizes span { display:grid; place-items:center; min-width:50px; min-height:44px; padding:0 10px; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); cursor:pointer; font-weight:600 }
.pd-sizes input:checked + span { background:var(--wine); border-color:var(--wine); color:#fff }
.pd-sizes input:focus-visible + span { outline:3px solid var(--wine-text); outline-offset:2px }
.pd-qty { display:flex; justify-content:center; align-items:center; gap:14px; font-weight:600 }
.qty { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper) }
.qty button { width:42px; height:42px; border:0; background:none; font-size:20px; cursor:pointer; color:var(--ink) }
.qty input,.qty output { width:44px; text-align:center; border:0; background:none; font-weight:700; font-size:16px; -moz-appearance:textfield }
.qty input::-webkit-inner-spin-button { -webkit-appearance:none }
.pd-actions { display:flex; gap:10px }
.pd-add { flex:1; gap:10px }
.pd-add .icon { width:20px; height:20px; stroke:currentColor; fill:none }
.fav-btn-lg { position:static; width:52px; height:52px; flex:none; border:1px solid var(--line); box-shadow:none; background:var(--paper) }
.pd-status { min-height:1.4em; font-weight:600 }
.pd-status.is-ok { color:#2f7a4a }
.pd-status.is-error { color:var(--wine-text) }
.pd-status a { color:var(--wine-text) }
.pd-desc { max-width:520px }
.pd-usp { display:grid; gap:8px; text-align:left }
.pd-usp li { display:flex; gap:10px; align-items:center }
.pd-others { grid-template-columns:repeat(auto-fill,minmax(180px,1fr)) }
.pd-other { aspect-ratio:2/3 }
.pd-other img { object-position:top }
@media (max-width:1023px) {
  .pd-grid { grid-template-columns:1fr; gap:28px }
  .pd-gallery { position:static; max-width:460px; margin-inline:auto; width:100% }
}

/* Cart */
.cart-section { padding-block:48px 80px }
.cart-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:40px; align-items:start }
.cart-list-wrap > h2,.cart-aside > h2 { text-align:center; margin-bottom:18px }
.cart-list { display:grid; gap:12px }
.cart-line { position:relative; display:grid; grid-template-columns:88px 1fr; gap:16px; padding:12px 44px 12px 12px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius) }
.cl-img img { width:88px; aspect-ratio:2/3; object-fit:cover; object-position:top; border-radius:4px }
.cl-body { display:grid; gap:6px; align-content:center }
.cl-name { font-family:var(--serif); font-size:20px; color:var(--ink); text-decoration:none }
.cl-color { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:14px }
.cl-color i { width:14px; height:14px; border-radius:50%; box-shadow:0 0 0 1px var(--line) }
.cl-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px }
.cl-row select { min-height:42px; padding:6px 10px; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); font:inherit }
.cl-price { margin-left:auto; font-weight:700 }
.cl-remove { position:absolute; top:8px; right:8px; width:32px; height:32px; border:0; border-radius:50%; background:none; font-size:22px; color:var(--muted); cursor:pointer }
.cl-remove:hover { background:var(--sand); color:var(--wine-text) }
.cart-empty { text-align:center; padding:40px 0; display:grid; gap:18px; justify-items:center }
.cart-aside { background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow); position:sticky; top:110px }
.cart-aside > p { margin-bottom:18px; text-align:center; font-size:14.5px }
.cart-total { display:flex; justify-content:space-between; align-items:center; padding:12px 0; margin-bottom:6px; border-bottom:1px solid var(--line); font-size:18px }
.cart-form .button { width:100% }
.cart-form .button + .button { margin-top:10px }
.cart-sent { margin-bottom:24px; text-align:center }
@media (max-width:1023px) { .cart-grid { grid-template-columns:1fr } .cart-aside { position:static } }
@media (max-width:639px) {
  .cart-line { grid-template-columns:72px 1fr; padding-right:40px }
  .cl-img img { width:72px }
  .cl-price { margin-left:0; width:100% }
  .cart-aside { padding:20px 16px }
}
/* Product tiles follow the 2:3 catalogue photos */
.product-photo { aspect-ratio:2/3 }
/* Header with shop icons must fit the container */
@media (min-width:1280px) {
  .header-inner { gap:18px }
  .main-nav { gap:clamp(12px,1.25vw,22px) }
  .main-nav a { font-size:14px }
  .header-phone { font-size:14px; gap:8px }
  .header-icon { width:38px; height:38px }
  .header-fav { margin-left:0 }
  .header-phone + .header-icon { margin-left:0 }
}

/* Phone: cart becomes a floating button bottom-left (header keeps logo | number | menu) */
@media (max-width:639px) {
  .header-cart {
    position:fixed; z-index:9; left:14px; bottom:14px; width:56px; height:56px; border-radius:50%;
    background:var(--wine); color:#fff; box-shadow:0 10px 24px -8px rgba(0,0,0,.45)
  }
  .header-cart:hover { background:var(--wine-hover); color:#fff }
  .header-cart .icon { width:24px; height:24px }
  .header-cart .badge { top:-2px; right:-2px; background:#fff; color:var(--wine); box-shadow:0 0 0 2px var(--wine) }
}
@media (max-width:1279px) {
  .main-nav .nav-fav { display:flex; align-items:center; gap:10px }
  .nav-fav .icon { width:20px; height:20px }
  .nav-fav .badge { min-width:20px; height:20px; padding:0 6px; border-radius:10px; background:var(--wine); color:#fff; font-size:12px; line-height:20px; text-align:center }
}
.swatches { max-height:none; flex-wrap:nowrap }
.swatch-more { display:grid; place-items:center; min-width:30px; height:24px; padding:0 6px; border-radius:12px; background:var(--sand); color:var(--ink); font-size:12px; font-weight:700; text-decoration:none }
@media (max-width:639px) { .swatch-more { height:20px; min-width:26px; font-size:11px } }

/* ---- Mobile tab bar (≤639px) ---- */
.tabbar { display:none }
@media (max-width:639px) {
  .tabbar {
    position:fixed; z-index:12; left:0; right:0; bottom:0; display:grid; grid-template-columns:repeat(5,1fr);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom)); background:var(--paper);
    border-top:1px solid var(--line); box-shadow:0 -8px 24px -18px rgba(40,10,18,.45)
  }
  .tabbar a { display:grid; justify-items:center; gap:2px; min-height:52px; padding-top:4px; color:var(--muted); text-decoration:none; font-size:11px; font-weight:600 }
  .tabbar a[aria-current=page] { color:var(--wine-text) }
  .tab-ic { position:relative; display:grid; place-items:center; width:44px; height:28px; border-radius:14px }
  .tabbar a[aria-current=page] .tab-ic { background:color-mix(in srgb,var(--wine) 12%,transparent) }
  .tab-ic .icon { width:23px; height:23px; stroke-width:1.7 }
  .tab-ic .badge { position:absolute; top:-4px; right:2px; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--wine); color:#fff; font-size:10.5px; font-weight:700; line-height:18px; text-align:center; box-shadow:0 0 0 2px var(--paper) }
  body { padding-bottom:calc(66px + env(safe-area-inset-bottom)) }
  .site-footer { padding-bottom:0 }
  .header-cart,.header-account,.header-fav { display:none !important }
  .wa-float { bottom:calc(78px + env(safe-area-inset-bottom)); width:52px; height:52px }
}
@media (max-width:359px) { .tabbar a { font-size:10px } .tab-ic { width:38px } }

.header-account { margin-left:0 }

/* ---- Checkout ---- */
.co-steps { display:grid; gap:18px }
.co-login { text-align:center; padding:12px 16px; border:1px dashed var(--line); border-radius:var(--radius); background:var(--paper) }
.co-login a { color:var(--wine-text); font-weight:600 }
.co-step { margin:0; padding:22px; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper) }
.co-step legend { display:flex; align-items:center; gap:10px; padding:0 6px; font-family:var(--serif); font-size:21px; color:var(--ink) }
.co-step legend span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--wine); color:#fff; font:700 14px var(--sans) }
.choices { display:grid; gap:10px }
.choice { position:relative; display:block; cursor:pointer }
.choice input { position:absolute; opacity:0 }
.choice > span { display:grid; gap:2px; padding:14px 16px 14px 48px; border:1.5px solid var(--line); border-radius:var(--radius); background:var(--cream); transition:border-color .15s,background .15s }
.choice > span::before { content:''; position:absolute; left:16px; top:17px; width:18px; height:18px; border-radius:50%; border:2px solid var(--line); background:var(--paper) }
.choice input:checked + span { border-color:var(--wine); background:color-mix(in srgb,var(--wine) 6%,var(--paper)) }
.choice input:checked + span::before { border:6px solid var(--wine) }
.choice input:focus-visible + span { outline:3px solid var(--wine-text); outline-offset:2px }
.choice input:disabled + span { opacity:.5; cursor:not-allowed }
.choice small { color:var(--muted); font-size:13.5px }
.co-address { margin-top:14px }
.co-note textarea { width:100% }
.co-summary .co-lines { display:grid; gap:10px; margin-bottom:12px; max-height:420px; overflow:auto }
.cart-line.is-compact { grid-template-columns:56px 1fr; padding:8px; gap:12px }
.cart-line.is-compact .cl-img img { width:56px }
.cart-line.is-compact .cl-name { font-size:16px }
.cl-size { font-size:13.5px; color:var(--muted) }
.co-totals { display:grid; gap:6px; margin:0 0 14px }
.co-totals div { display:flex; justify-content:space-between; gap:12px }
.co-totals dd { margin:0; font-weight:600 }
.co-total { padding-top:10px; border-top:1px solid var(--line); font-size:19px }
.co-total dd { font-weight:800 }
.co-submit,.cart-next { width:100% }
.co-back { display:flex; width:fit-content; margin:14px auto 0 }

/* ---- Account ---- */
.account-section { padding-block:40px 80px }
.auth-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:960px; margin:0 auto }
.auth-card { display:grid; gap:16px; align-content:start; padding:28px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow) }
.auth-card h2 { text-align:center; font-size:28px }
.auth-card .button { width:100% }
.auth-card .text-link { justify-self:center }
.auth-single { max-width:480px; margin:0 auto }
.auth-perks { display:grid; gap:8px }
.auth-perks li { display:flex; gap:10px; align-items:center; font-size:14.5px }
.account-head { display:flex; align-items:center; gap:16px; flex-wrap:wrap; max-width:1000px; margin:0 auto 18px; padding:20px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius) }
.account-head > div { flex:1; min-width:0 }
.account-head h2 { font-size:26px }
.account-head p { margin:0 }
.account-avatar { display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:var(--wine); color:#fff; font:700 22px var(--sans) }
.account-tabs { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-bottom:22px }
.account-tabs a { padding:8px 16px; border-radius:20px; border:1px solid var(--line); background:var(--paper); color:var(--ink); text-decoration:none; font-size:14.5px }
.account-tabs a:hover { border-color:var(--wine-text); color:var(--wine-text) }
.account-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:20px; max-width:1000px; margin:0 auto; align-items:start }
.account-card { padding:24px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); scroll-margin-top:110px }
.account-card > h2 { text-align:center; font-size:24px; margin-bottom:16px }
#bestellingen { grid-row:span 2 }
.account-card .button { margin-top:14px; width:100% }
.order-card { border:1px solid var(--line); border-radius:var(--radius); margin-bottom:10px; background:var(--cream) }
.order-card summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; padding:12px 14px; cursor:pointer; list-style:none }
.order-card summary::-webkit-details-marker { display:none }
.order-card summary > span:first-child { flex:1 }
.order-card ul { padding:0 14px 6px 32px; list-style:disc; color:var(--ink) }
.order-card p { padding:0 14px 12px; font-size:13.5px }
.order-status { padding:3px 10px; border-radius:12px; font-size:12px; font-weight:700; background:var(--sand); color:var(--ink) }
.st-betaald,.st-afgehaald,.st-verzonden,.st-klaar-om-op-te-halen { background:#e6f4ea; color:#1e6b3a }
.st-geannuleerd { background:#fdecee; color:#a3192d }
.order-sum { font-weight:700 }
.account-delete { margin-top:18px; text-align:center }
.account-delete button { background:none; border:0; border-bottom:1.5px solid currentColor; cursor:pointer; font:inherit; font-size:14px; color:var(--muted) }
@media (max-width:1023px) { .account-grid { grid-template-columns:1fr } #bestellingen { grid-row:auto } }
@media (max-width:760px) { .auth-grid { grid-template-columns:1fr } .co-step { padding:16px } .auth-card { padding:20px 16px } }
@media (max-width:639px) {
  .account-head { flex-direction:column; text-align:center }
  .account-head > div { width:100% }
  .account-head p { overflow-wrap:anywhere }
  .account-head form,.account-head .button { width:100% }
  .order-card summary { font-size:14.5px }
}
.verify-card { text-align:center; justify-items:center }
.verify-icon { display:grid; place-items:center; width:64px; height:64px; border-radius:50%; background:color-mix(in srgb,var(--wine) 12%,var(--paper)); color:var(--wine-text) }
.verify-icon .icon { width:30px; height:30px }
.resend-form { display:grid; gap:10px; width:100% }
.resend-form input { min-height:48px; padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius); background:var(--cream); font-size:16px }
.resend-wrap { max-width:480px; margin:-6px auto 20px }

/* Quick add from product cards */
.qa-btn {
  position:absolute; z-index:2; top:58px; right:10px; display:grid; place-items:center; width:40px; height:40px;
  border:0; border-radius:50%; background:rgba(255,255,255,.92); color:var(--ink); cursor:pointer; box-shadow:0 4px 12px -4px rgba(0,0,0,.35); transition:transform .15s,background .15s
}
.qa-btn .icon { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8 }
.qa-btn:hover { transform:scale(1.08); background:var(--wine); color:#fff }
.qa-btn:focus-visible { outline:3px solid var(--wine-text); outline-offset:2px }
.product-btn { gap:8px }
.product-btn .icon { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8 }
.qa-panel {
  position:absolute; z-index:3; left:8px; right:8px; bottom:8px; padding:12px; border-radius:var(--radius);
  background:rgba(255,252,247,.97); box-shadow:0 12px 30px -10px rgba(0,0,0,.5); animation:qa-in .18s ease
}
@keyframes qa-in { from { opacity:0; transform:translateY(8px) } to { opacity:1; transform:none } }
.qa-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; font-weight:700; font-size:14px; color:var(--ink) }
.qa-head button { width:32px; height:32px; border:0; background:none; font-size:22px; line-height:1; cursor:pointer; color:var(--muted) }
.qa-sizes { display:grid; grid-template-columns:repeat(4,1fr); gap:6px }
.qa-sizes button { min-height:40px; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); font-weight:700; font-size:14px; cursor:pointer; color:var(--ink) }
.qa-sizes button:hover,.qa-sizes button:focus-visible { background:var(--wine); border-color:var(--wine); color:#fff; outline:none }
.qa-sizes .qa-unknown { grid-column:1/-1; font-weight:600 }
.shop-toast {
  position:fixed; z-index:30; left:50%; bottom:24px; width:min(460px,calc(100% - 32px)); padding:14px 18px; border-radius:var(--radius);
  background:var(--ink); color:#fff; font-size:14.5px; line-height:1.45; box-shadow:0 16px 40px -12px rgba(0,0,0,.5);
  transform:translate(-50%,140%); opacity:0; transition:transform .25s,opacity .25s; pointer-events:none
}
.shop-toast.is-on { transform:translate(-50%,0); opacity:1; pointer-events:auto }
.shop-toast a { color:#f2c9d2; font-weight:700 }
@media (max-width:639px) {
  .qa-btn { top:46px; right:6px; width:34px; height:34px }
  .qa-btn .icon { width:17px; height:17px }
  .qa-panel { left:4px; right:4px; bottom:4px; padding:8px }
  .qa-sizes { grid-template-columns:repeat(3,1fr); gap:4px }
  .qa-sizes button { min-height:36px; font-size:13px }
  .product-btn { font-size:12.5px; gap:5px; padding-inline:6px }
  .product-btn .icon { width:15px; height:15px }
  .shop-toast { bottom:calc(80px + env(safe-area-inset-bottom)) }
}
@media (prefers-reduced-motion:reduce) { .qa-panel { animation:none } }
.map-consent img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:blur(2px) brightness(.8) }
.map-consent-box { position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:12px; padding:16px; text-align:center; background:rgba(255,252,247,.55) }
.map-consent-box p { max-width:320px; color:var(--ink); font-size:14px; font-weight:600 }
.product-price small,.pd-price small { font-size:12px; font-weight:500; color:var(--muted) }
.co-vat { font-size:13px; color:var(--muted); text-align:center; margin-bottom:10px }
.co-terms { display:flex; gap:10px; align-items:flex-start; margin-bottom:12px; font-size:14px; line-height:1.45; cursor:pointer }
.co-terms input { width:20px; height:20px; flex:none; margin-top:1px; accent-color:var(--wine) }
.co-terms a { color:var(--wine-text) }
.footer-legal span { line-height:1.7 }

/* Products page: products only */
.products-only { padding-top:28px }
.products-only .media-filters { margin-top:0 }

/* Search */
.search-band { padding-block:44px; background:var(--paper); border-bottom:1px solid var(--line) }
.search-band-inner { display:grid; justify-items:center; gap:18px; text-align:center }
.search-band h2 { font-size:clamp(26px,2.6vw,34px) }
.search-form { position:relative; display:flex; gap:8px; width:min(640px,100%) }
.search-form input { flex:1; min-width:0; min-height:52px; padding:12px 16px; border:1.5px solid var(--line); border-radius:var(--radius); background:var(--cream); font-size:16px; color:var(--ink) }
.search-form input:focus { outline:none; border-color:var(--wine-text); box-shadow:0 0 0 3px color-mix(in srgb,var(--wine) 18%,transparent) }
.search-form .button { min-height:52px; gap:8px; padding-inline:20px }
.search-form .button .icon { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2 }
.search-suggest { position:absolute; z-index:20; top:calc(100% + 6px); left:0; right:0; display:grid; padding:6px; text-align:left; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 18px 40px -16px rgba(40,10,18,.4) }
.search-suggest a { display:flex; align-items:center; gap:12px; padding:8px 10px; border-radius:6px; color:var(--ink); text-decoration:none }
.search-suggest a:hover,.search-suggest a:focus-visible { background:var(--sand); outline:none }
.search-suggest img,.ss-ic { width:36px; height:54px; object-fit:cover; object-position:top; border-radius:4px; background:var(--sand); flex:none }
.search-suggest small { display:block; color:var(--muted); font-size:12.5px }
.ss-all { justify-content:center; font-weight:700; color:var(--wine-text) !important; border-top:1px solid var(--line); border-radius:0 !important; margin-top:4px }
.ss-none { padding:10px; color:var(--muted); text-align:center }
.search-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:8px }
.search-chips a { padding:7px 14px; border-radius:18px; border:1px solid var(--line); background:var(--cream); color:var(--ink); text-decoration:none; font-size:14px }
.search-chips a:hover { border-color:var(--wine-text); color:var(--wine-text) }
.search-section { padding-block:40px 80px; display:grid; justify-items:center; gap:18px }
.search-section > h1 { font-size:clamp(32px,3.4vw,44px) }
.search-count { text-align:center }
.search-h { justify-self:stretch; text-align:center; font-size:26px; margin-top:16px }
.search-section .product-grid { justify-self:stretch }
.search-pages { display:grid; gap:10px; width:min(760px,100%) }
.search-page { display:grid; grid-template-columns:1fr auto; gap:2px 12px; align-items:center; padding:14px 16px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); color:var(--ink); text-decoration:none }
.search-page span { grid-column:1; font-size:14px; color:var(--muted) }
.search-page .icon { grid-row:1/3; grid-column:2; color:var(--wine-text) }
.search-page:hover { border-color:var(--wine-text) }
@media (max-width:639px) {
  .search-band { padding-block:28px }
  .search-form .button span { display:none }
  .search-form .button { padding-inline:16px }
  .products-only { padding-top:18px }
}
/* Mobile footer: map grows so its bottom lines up with the "Snel naar" list */
@media (max-width:639px) and (min-width:375px) {
  .footer-grid { align-items:stretch }
  .footer-hours { display:flex; flex-direction:column }
  .footer-map { flex:1; aspect-ratio:auto; min-height:120px }
}
/* Product cards v3: taller photo, compact text block, no duplicate category label */
.product-card .product-cat { display:none }
.product-grid .product-photo { aspect-ratio:5/8 }
.product-grid .product-photo .pp-main { object-fit:cover; object-position:50% 20% }
.product-grid .product-photo .pp-fill { display:none }
.product-grid .product-body { gap:8px; padding:14px 14px 16px }
.product-grid .product-body h3 { min-height:0; font-size:20px }
.product-grid .pc-color { margin-top:-4px }
.product-grid .product-price { margin:2px 0 0 !important; padding-top:0 }
@media (max-width:639px) {
  .product-grid .product-body { gap:7px; padding:10px 8px 12px }
  .product-grid .product-body h3 { font-size:16px; min-height:2.5em; line-height:1.25 }
  .product-grid .product-price { font-size:14px }
}
.product-grid .product-body p.pc-color { display:block; min-height:0; -webkit-line-clamp:unset; overflow:visible }
.product-grid .swatches { min-height:0 }
.product-grid .swatches-empty { display:none }
@media (max-width:639px) { .product-grid .product-body p.pc-color { display:none } }
@media (max-width:639px) {
  .product-grid .swatches { gap:4px }
  .product-grid .swatch { width:18px; height:18px; border-width:1.5px }
  .product-grid .swatch-more { min-width:24px; height:18px; font-size:10.5px; padding:0 4px }
}
/* Swatch rings sit outside the circle: give them room instead of clipping */
.swatches { overflow:visible; padding:3px }
.swatch { box-shadow:0 0 0 1px var(--line); border-color:var(--paper) }
.swatch.is-active { box-shadow:0 0 0 2px var(--wine) }

/* FAQ — Framer-style cards with spring open/close and staggered reveal */
.faq-list { border-top:0; display:grid; gap:12px }
.faq-item {
  border:1px solid var(--line); border-radius:16px; background:var(--cream);
  transition:border-color .3s, background .3s, box-shadow .35s, transform .35s cubic-bezier(.2,.8,.2,1)
}
.faq-item:hover { border-color:color-mix(in srgb,var(--wine) 35%,var(--line)); transform:translateY(-2px); box-shadow:0 14px 30px -22px rgba(40,10,18,.45) }
.faq-item[open] { border-color:var(--wine); background:var(--paper); box-shadow:0 18px 40px -24px rgba(122,20,48,.45) }
.faq-item summary { padding:20px 22px; min-height:68px }
.faq-item summary:focus-visible { outline:3px solid var(--wine-text); outline-offset:3px; border-radius:16px }
.faq-toggle { transition:background .3s, border-color .3s, transform .45s cubic-bezier(.22,1,.36,1) }
.faq-toggle::before,.faq-toggle::after { transition:none }
.faq-toggle::after { transform:rotate(90deg) }
.faq-item[open] .faq-toggle { transform:rotate(135deg) }
.faq-item[open] .faq-toggle::after { transform:rotate(90deg) }
.faq-answer { padding:0 64px 22px 22px }
.faq-item.is-animating .faq-answer,.faq-item[open] .faq-answer { animation:faq-in .45s cubic-bezier(.2,.8,.2,1) both }
@keyframes faq-in { from { opacity:0; transform:translateY(-6px) } to { opacity:1; transform:none } }
.faq-item.is-closing .faq-answer { animation:faq-out .25s ease both }
@keyframes faq-out { to { opacity:0; transform:translateY(-4px) } }
.js .faq-list.reveal-ready .faq-item { opacity:0; transform:translateY(18px) }
.js .faq-list.is-revealed .faq-item { opacity:1; transform:none; transition:opacity .6s ease, transform .7s cubic-bezier(.2,.8,.2,1), border-color .3s, background .3s, box-shadow .35s; transition-delay:calc(var(--i, 0) * 70ms) }
@media (max-width:639px) {
  .faq-item { border-radius:14px }
  .faq-item summary { padding:16px }
  .faq-answer { padding:0 16px 18px }
}
@media (prefers-reduced-motion:reduce) {
  .faq-item,.faq-toggle,.js .faq-list.is-revealed .faq-item { transition:none !important }
  .faq-item[open] .faq-answer,.faq-item.is-closing .faq-answer { animation:none }
  .js .faq-list.reveal-ready .faq-item { opacity:1; transform:none }
}
/* Header logo with tagline */
.brand img { height:64px }
@media (max-width:1279px) { .brand img { height:56px } }
@media (max-width:639px) { .brand img { height:46px } }
@media (max-width:359px) { .brand img { height:40px } }
@media (max-width:639px) { .footer-logo img { max-width:165px } }
/* Lightbox video */
.lb-stage video { width:min(100%, 1100px); max-height:calc(100dvh - 150px); aspect-ratio:16/9; background:#000; border-radius:4px; box-shadow:0 30px 80px -30px rgba(0,0,0,.8) }
.lb-stage video[hidden], .lb-stage img[hidden] { display:none }
@media (max-width:639px) { .lb-stage video { max-height:calc(100dvh - 190px) } }
/* Hero: B2B slogan + featured services */
.home-hero-content > p.hero-slogan {
  display:flex; align-items:flex-start; gap:10px; margin-top:18px; padding:12px 16px;
  border-left:3px solid var(--wine); border-radius:0 10px 10px 0; background:color-mix(in srgb,var(--wine) 7%,var(--cream));
  font-size:16px; font-weight:600; line-height:1.45; color:var(--wine-text)
}
.hero-slogan .icon { flex:none; width:22px; height:22px; margin-top:1px; stroke-width:1.6 }
.hero-services { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px }
.hero-service {
  display:inline-flex; align-items:center; gap:8px; padding:10px 16px 10px 12px; border-radius:999px;
  background:#fff; border:1px solid var(--line); box-shadow:0 6px 16px -12px rgba(40,10,18,.5);
  font-size:15px; font-weight:700; color:var(--ink); text-decoration:none; transition:border-color .2s, color .2s, transform .2s
}
.hero-service .icon { width:20px; height:20px; color:var(--wine-text); stroke-width:1.6 }
.hero-service:hover { border-color:var(--wine); color:var(--wine-text); transform:translateY(-1px) }
.home-hero-content > p:not(.eyebrow):not(.hero-slogan) { margin-top:18px }

/* Featured services: three large cards, the rest as a wide card */
.service-grid-main { grid-template-columns:repeat(3,1fr) }
.service-grid-main .service-card { aspect-ratio:4/4.2 }
.service-grid-main .service-card h3 { font-size:clamp(26px,2.4vw,34px) }
.service-grid-main .service-card p { font-size:15px }
.service-more { display:grid; gap:20px; margin-top:20px }
.service-card-wide { aspect-ratio:auto; height:180px }
.service-card-wide::after { background:linear-gradient(90deg,rgba(20,8,10,.82) 0%,rgba(20,8,10,.45) 55%,rgba(20,8,10,.15) 100%) }
.service-card-wide .service-card-body { top:50%; bottom:auto; transform:translateY(-50%) }

/* Partners */
.partners { padding-block:64px; background:var(--sand); border-block:1px solid var(--line); text-align:center }
.partners h2 { font-size:clamp(28px,3vw,38px) }
.partners .eyebrow { justify-content:center }
.partners-text { max-width:620px; margin:12px auto 0; color:var(--muted) }
.partner-logos { display:flex; flex-wrap:wrap; justify-content:center; gap:18px; margin-top:32px }
.partner-logos li { flex:0 1 260px }
.partner-logos a, .partner-logos div {
  display:grid; place-items:center; height:110px; padding:22px 28px; border-radius:var(--radius);
  background:#fff; border:1px solid var(--line); box-shadow:0 10px 24px -20px rgba(40,10,18,.45); text-decoration:none; transition:border-color .2s, transform .2s
}
.partner-logos a:hover { border-color:var(--wine); transform:translateY(-2px) }
.partner-logos img { max-width:100%; max-height:44px; width:auto; height:auto; filter:grayscale(1); opacity:.85; transition:filter .2s, opacity .2s }
.partner-logos a:hover img { filter:none; opacity:1 }
.partner-name { font-family:var(--serif); font-size:24px; letter-spacing:.04em; color:var(--ink) }

@media (max-width:1023px) {
  .service-grid-main { grid-template-columns:repeat(3,1fr); gap:14px }
  .service-grid-main .service-card { aspect-ratio:3/4 }
  .service-grid-main .service-card-body { left:14px; right:14px; bottom:62px }
  .service-grid-main .service-card p { display:none }
}
@media (max-width:639px) {
  .home-hero-content > p.hero-slogan { font-size:15px }
  .hero-services { gap:8px }
  .hero-service { padding:9px 13px 9px 10px; font-size:14px }
  .service-grid-main { grid-template-columns:1fr }
  .service-grid-main .service-card { aspect-ratio:16/10 }
  .service-grid-main .service-card-body { left:20px; right:72px; bottom:18px }
  .service-grid-main .service-card p { display:block }
  .service-card-wide { height:150px }
  .partners { padding-block:44px }
  .partner-logos { gap:12px }
  .partner-logos li { flex:1 1 140px }
  .partner-logos a, .partner-logos div { height:88px; padding:16px }
  .partner-name { font-size:19px }
}
.service-card-wide .round-arrow { top:50%; bottom:auto; transform:translateY(-50%) }
/* SEO: short answer, specialisations, FAQ page */
.summary-box {
  position:relative; max-width:860px; margin:40px auto 0; padding:22px 26px 22px 26px; text-align:center;
  background:#fff; border:1px solid var(--line); border-top:3px solid var(--wine); border-radius:var(--radius); box-shadow:0 14px 30px -26px rgba(40,10,18,.5)
}
.summary-label { display:inline-block; margin-bottom:8px; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--wine-text) }
.summary-box p { font-size:17px; line-height:1.6; color:var(--ink) }
.specs { padding-block:24px 8px; text-align:center }
.specs h2 { font-size:clamp(28px,3vw,38px); margin-bottom:24px }
.spec-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; text-align:left }
.spec-card {
  position:relative; display:flex; flex-direction:column; overflow:hidden; border-radius:var(--radius); background:#fff; border:1px solid var(--line);
  color:var(--ink); text-decoration:none; transition:border-color .2s, transform .2s, box-shadow .2s
}
.spec-card img { width:100%; aspect-ratio:4/3; object-fit:cover }
.spec-body { display:grid; gap:4px; padding:16px 64px 18px 18px }
.spec-body strong { font-family:var(--serif); font-size:21px; font-weight:400 }
.spec-body span { font-size:14px; color:var(--muted) }
.spec-card .round-arrow { position:absolute; right:16px; bottom:18px }
.spec-card:hover { border-color:var(--wine); transform:translateY(-2px); box-shadow:0 18px 34px -26px rgba(40,10,18,.6) }
.faq-all { display:inline-flex; margin-top:18px }
.faq-page-intro { max-width:760px; margin:40px auto 0; text-align:center; color:var(--muted) }
.faq-page { display:grid; gap:44px; max-width:880px; padding-block:40px 72px }
.faq-group h2 { text-align:center; font-size:clamp(26px,2.6vw,34px); margin-bottom:18px }
.faq-group .faq-list { display:grid; gap:12px }
.faq-group > .text-link { display:flex; justify-content:center; margin-top:16px }
@media (max-width:639px) {
  .summary-box { margin-top:28px; padding:18px 18px }
  .summary-box p { font-size:16px }
  .spec-grid { grid-template-columns:1fr 1fr; gap:12px }
  .spec-body { padding:12px 12px 14px }
  .spec-body strong { font-size:17px }
  .spec-body span { display:none }
  .spec-card .round-arrow { display:none }
}
.service-copy .summary-box { max-width:none; margin:0 0 30px }
@media (max-width:639px) { .service-copy .summary-box { margin:0 0 24px } }
/* Info pages (werkgebied) */
.info-section { padding-block:44px 72px }
.info-text { max-width:900px; margin-inline:auto; text-align:center }
.info-text .summary-box { margin:0 auto 40px }
.info-text h2 { font-size:clamp(26px,2.6vw,34px); margin:44px 0 12px }
.info-text h2:first-of-type { margin-top:0 }
.info-text p { max-width:720px; margin:0 auto 12px; color:var(--muted); line-height:1.7 }
.info-text ul { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:22px 0 0; padding:0; list-style:none; text-align:left }
.info-text li {
  display:flex; align-items:center; gap:10px; padding:14px 16px; background:#fff; border:1px solid var(--line); border-radius:12px;
  box-shadow:0 10px 22px -20px rgba(40,10,18,.5); font-weight:600; color:var(--ink)
}
.info-text li::before { content:''; flex:none; width:9px; height:9px; border-radius:50%; background:var(--wine) }
.info-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:40px }
@media (max-width:1023px) { .info-text ul { grid-template-columns:repeat(2,1fr) } }
@media (max-width:639px) { .info-text ul { grid-template-columns:1fr 1fr; gap:8px } .info-text li { padding:11px 12px; font-size:14px } .info-actions .button { width:100% } }
.partners-cta { display:flex; justify-content:center; margin-top:28px }
/* Home service cards: whole photo visible, blurred copy fills the rest */
.service-grid-main .service-card img.sc-fill { object-fit:cover; filter:blur(18px) brightness(.75); transform:scale(1.15) }
.service-grid-main .service-card img.sc-photo { object-fit:contain; z-index:0 }
.service-grid-main .service-card:hover img.sc-photo { transform:scale(1.02) }
.service-grid-main .service-card:hover img.sc-fill { transform:scale(1.15) }
.service-card-wide img.sc-fill { display:none }
.service-card-wide img.sc-photo { object-fit:cover }
