/*
 * Beauty & Glam — Taste direction
 *
 * A final visual layer for the WordPress build. It keeps the real content and
 * existing routes, but gives every surface one editorial grammar: quiet
 * paper, graphite, clay, strong type, intentional asymmetry and useful motion.
 */
:root {
  --bg-taste-paper: #f4f0e8;
  --bg-taste-paper-deep: #e7dfd3;
  --bg-taste-white: #fffdf8;
  --bg-taste-ink: #1b1d1b;
  --bg-taste-muted: #66645d;
  --bg-taste-moss: #283a35;
  --bg-taste-clay: #a86647;
  --bg-taste-line: rgba(27, 29, 27, .18);
  --bg-taste-line-light: rgba(255, 253, 248, .24);
  --bg-taste-ease-out: cubic-bezier(.23, 1, .32, 1);
  --bg-taste-ease-in-out: cubic-bezier(.77, 0, .175, 1);
  --bg-taste-ease-drawer: cubic-bezier(.32, .72, 0, 1);
}

html body.home .bg-premium-home,
html body.home .bg-premium-home main {
  background: var(--bg-taste-paper) !important;
  color: var(--bg-taste-ink) !important;
}

html body.home .bg-premium-home :is(h1, h2, h3, p) { text-transform: none !important; }
html body.home .bg-premium-home :is(h1, h2, h3) {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 500 !important;
  letter-spacing: -.028em !important;
}

/* A deliberate editorial choice: the headline carries the hierarchy. */
html body.home .bg-premium-home .bg-v4-kicker { display: none !important; }

/* Header: clear glass is removed; the image and navigation share one quiet band. */
html body.home header#nav.bg-premium-header {
  min-height: 78px;
  background: rgba(27, 29, 27, .78) !important;
  border-bottom: 1px solid rgba(255, 253, 248, .18);
  backdrop-filter: none;
}
html body.home header#nav.bg-premium-header .wrap { min-height: 78px; width: min(1320px, calc(100% - 64px)); }
html body.home .bg-premium-header .brand { width: 178px; }
html body.home .bg-premium-header .brand-logo { width: 156px; }
html body.home .bg-premium-header .menu { gap: clamp(16px, 1.8vw, 28px); }
html body.home .bg-premium-header .menu a {
  position: relative;
  font-size: 11px !important;
  letter-spacing: .06em !important;
  transition: color 160ms ease-out;
}
html body.home .bg-premium-header .menu a::after {
  position: absolute;
  right: 0;
  bottom: -11px;
  left: 0;
  height: 1px;
  background: var(--bg-taste-clay);
  content: '';
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 180ms var(--bg-taste-ease-out);
}
html body.home .bg-premium-header .menu a:hover::after,
html body.home .bg-premium-header .menu a:focus-visible::after,
html body.home .bg-premium-header .menu a.active::after { transform: scaleX(1); transform-origin: left; }
html body.home .bg-premium-header .nav-cta { margin-left: 24px; }
html body.home .bg-premium-header .nav-cta > .btn { min-height: 42px !important; padding: 12px 18px !important; }

/* Hero: one strong image, one clear promise, one proof rail. */
html body.home #top.bg-redesign-v4-home {
  min-height: min(840px, 100svh);
  height: min(840px, 100svh);
  align-items: center;
  background: var(--bg-taste-moss) !important;
}
html body.home #top.bg-redesign-v4-home .hero-bg img { opacity: .66; object-position: 54% center; }
html body.home #top.bg-redesign-v4-home .hero-bg::after {
  background: linear-gradient(90deg, rgba(22, 31, 28, .9) 0%, rgba(22, 31, 28, .58) 48%, rgba(22, 31, 28, .18) 100%);
}
html body.home #top.bg-redesign-v4-home > .wrap { padding: 90px 0 68px !important; align-items: center; }
html body.home #top.bg-redesign-v4-home .hero-inner {
  width: min(760px, 62%);
  margin-left: max(32px, calc((100% - 1320px) / 2));
}
html body.home #top.bg-redesign-v4-home h1 {
  max-width: 9.5ch;
  margin-bottom: 24px !important;
  font-size: clamp(58px, 7.2vw, 104px) !important;
  line-height: .86 !important;
}
html body.home #top.bg-redesign-v4-home p { max-width: 49ch; font-size: 16px !important; line-height: 1.62 !important; }
html body.home .bg-premium-home .hero-actions { margin-top: 28px; }
html body.home .bg-premium-home .hero-actions .btn { min-height: 48px; padding: 14px 19px !important; }
html body.home .bg-premium-home .hero-actions .btn.solid { background: var(--bg-taste-clay) !important; border-color: var(--bg-taste-clay) !important; }
html body.home .bg-premium-home .hero-actions .btn:active,
html body.home .bg-premium-home .bg-v4-button:active,
html body.home .bg-premium-home .bgv4-inquiry-submit:active { transform: scale(.97); }
html body.home .bg-v4-hero-index { top: 42%; right: 32px; }
html body.home .bg-v4-scroll-cue { right: 32px; bottom: 34px; }

html body.home .bg-taste-proof { padding: 0 !important; background: var(--bg-taste-moss); color: var(--bg-taste-white); }
html body.home .bg-taste-proof > .wrap { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(1320px, calc(100% - 64px)); border-top: 1px solid var(--bg-taste-line-light); }
html body.home .bg-taste-proof span { display: grid; gap: 7px; min-height: 92px; align-content: center; padding: 16px 22px 16px 0; }
html body.home .bg-taste-proof span + span { padding-left: 22px; border-left: 1px solid var(--bg-taste-line-light); }
html body.home .bg-taste-proof strong { font: 500 12px/1.2 'Work Sans', sans-serif; letter-spacing: .015em; }
html body.home .bg-taste-proof small { color: rgba(255, 253, 248, .66); font: 400 11px/1.35 'Work Sans', sans-serif; }

html body.home .bg-taste-hero-proof {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  width: min(720px, calc(100% - 64px));
  margin: 0 max(32px, calc((100% - 1320px) / 2));
  padding-top: 18px;
  border-top: 1px solid rgba(255, 253, 248, .28);
}
html body.home .bg-taste-hero-proof span { display: grid; gap: 7px; padding-right: 18px; }
html body.home .bg-taste-hero-proof span + span { padding-left: 18px; border-left: 1px solid rgba(255, 253, 248, .28); }
html body.home .bg-taste-hero-proof strong { color: var(--bg-taste-white); font: 500 12px/1.2 'Work Sans', sans-serif; letter-spacing: .015em; }
html body.home .bg-taste-hero-proof small { color: rgba(255, 253, 248, .66); font: 400 11px/1.35 'Work Sans', sans-serif; }

/* Content rhythm: more air above headings, fewer repeated modules. */
html body.home .bg-premium-home .bg-home-section { padding: clamp(100px, 12vw, 176px) 0 !important; }
html body.home .bg-premium-home .bg-home-section > .wrap { width: min(1320px, calc(100% - 64px)); }
html body.home .bg-v4-section-heading { grid-template-columns: minmax(0, .9fr) minmax(280px, .55fr); gap: 10vw; margin-bottom: 58px; }
html body.home .bg-v4-section-heading h2,
html body.home .bg-v4-projects-intro h2,
html body.home .bg-v4-complementary-intro h2,
html body.home .bg-v4-about h2,
html body.home .bg-v4-cta h2 {
  max-width: 11ch;
  font-size: clamp(44px, 5.25vw, 76px) !important;
  line-height: .9 !important;
}
html body.home .bg-v4-section-heading > p,
html body.home .bg-v4-projects-intro > p,
html body.home .bg-v4-complementary-intro > p,
html body.home .bg-v4-about p { max-width: 42ch; font-size: 15px !important; line-height: 1.75 !important; }
html body.home .bg-v4-line-link { margin-top: 26px; padding-bottom: 8px; transition: color 160ms ease, gap 180ms var(--bg-taste-ease-out); }
html body.home .bg-v4-line-link:active { transform: scale(.98); }

/* The two entry paths are intentionally different surfaces, not twin cards. */
html body.home .bg-v4-pathways-grid { gap: 1px; background: var(--bg-taste-line); }
html body.home .bg-v4-path { min-height: 360px; padding: clamp(30px, 4.5vw, 64px); }
html body.home .bg-v4-path--dark { background: var(--bg-taste-moss); }
html body.home .bg-v4-path--stone { background: var(--bg-taste-paper-deep); }
html body.home .bg-v4-path-number { margin-bottom: 52px; opacity: .6; }
html body.home .bg-v4-path h3 { max-width: 10ch; font-size: clamp(36px, 4.2vw, 60px) !important; }
html body.home .bg-v4-path p { max-width: 34ch; line-height: 1.7; }
html body.home .bg-v4-button { min-height: 44px; transition: color 160ms ease, gap 180ms var(--bg-taste-ease-out), transform 120ms ease-out; }
html body.home .bg-v4-side-link { margin-top: 20px; }

/* Sectors: the photography carries the category; copy stays compact. */
html body.home #settori { background: var(--bg-taste-paper-deep); }
html body.home .bg-v4-sector-grid { gap: 1px; background: var(--bg-taste-paper-deep); }
html body.home .bg-v4-sector-card { min-height: 390px; background: var(--bg-taste-moss); }
html body.home .bg-v4-sector-card img { min-height: 390px; opacity: .72; transition: transform 520ms var(--bg-taste-ease-in-out), opacity 260ms ease; }
html body.home .bg-v4-sector-card::after { background: rgba(12, 19, 17, .42); transition: background 220ms ease; }
html body.home .bg-v4-sector-caption { inset: auto 30px 28px; }
html body.home .bg-v4-sector-caption strong { font-size: clamp(30px, 2.8vw, 42px); }

/* Portfolio: desktop wheel/drag, visual rhythm and no card chrome. */
html body.home .bg-v4-projects > .wrap { width: 100% !important; }
html body.home .bg-v4-projects-intro { width: min(1320px, calc(100% - 64px)); }
html body.home .bg-v4-projects-intro h2 { max-width: 9ch; }
html body.home .bg-v4-project-track { gap: 22px !important; padding-right: max(32px, calc((100vw - 1320px) / 2)) !important; padding-left: max(32px, calc((100vw - 1320px) / 2)) !important; }
html body.home .bg-v4-project-card { flex-basis: clamp(280px, 29vw, 410px) !important; }
html body.home .bg-v4-project-card:nth-child(2n) { padding-top: 72px; }
html body.home .bg-v4-project-card .c-img { aspect-ratio: 5 / 6; }
html body.home .bg-v4-project-card:nth-child(2n) .c-img { aspect-ratio: 5 / 6; }
html body.home .bg-v4-project-card .c-body { padding-top: 18px !important; }
html body.home .bg-v4-project-card h3 { font-size: 30px !important; }
html body.home .bg-v4-project-card .go { letter-spacing: .015em; }

/* Method: a reading line rather than five detached service cards. */
html body.home #metodo { background: var(--bg-taste-moss) !important; }
html body.home .bg-v4-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); border-top-color: var(--bg-taste-line-light); }
html body.home .bg-v4-steps .step { min-height: 244px; padding-top: 22px; border-right-color: var(--bg-taste-line-light); }
html body.home .bg-v4-steps .bg-step-number { margin-bottom: 62px; color: #e2c7a6; }
html body.home .bg-v4-steps h3 { font-size: 31px !important; }
html body.home .bg-v4-steps p { max-width: 19ch; color: rgba(255, 253, 248, .68) !important; }

/* Complementary solutions remain secondary to the project. */
html body.home #cosa-facciamo { background: var(--bg-taste-paper-deep) !important; }
html body.home .bg-v4-complementary-intro { grid-template-columns: minmax(0, .7fr) minmax(0, 1.1fr); gap: 10vw; }
html body.home .bg-v4-products-feature { grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr); gap: 8vw; padding-top: 42px; border-top-color: var(--bg-taste-line); }
html body.home .bg-v4-product-strip { gap: 1px; background: var(--bg-taste-line); }
html body.home .bg-v4-product-strip .card { padding: 0 0 14px; background: var(--bg-taste-paper-deep) !important; }
html body.home .bg-v4-product-strip .c-img { aspect-ratio: 1 / 1.08; background: var(--bg-taste-white); }
html body.home .bg-v4-training { margin-top: 62px; padding-top: 30px; border-top-color: var(--bg-taste-line); }

/* Team and closing action. */
html body.home #chi-siamo-home { background: var(--bg-taste-white) !important; }
html body.home .bg-v4-about > .wrap { grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr); gap: 10vw; }
html body.home .bg-about-portraits { gap: 1px; background: var(--bg-taste-line); }
html body.home .bg-about-portraits figure { background: var(--bg-taste-white); }
html body.home .bg-about-portraits figure:nth-child(2) { margin-top: 64px; }
html body.home #contatti-cta.bg-v4-cta { background: var(--bg-taste-clay) !important; }
html body.home .bg-v4-cta > .wrap { grid-template-columns: minmax(0, 1fr) minmax(280px, .6fr); gap: 10vw; }
html body.home .bg-v4-cta-copy p { max-width: 37ch; }

/* Modal, menus and browser surfaces. */
html body.home .bgv4-inquiry { background: rgba(27, 29, 27, .74); transition: opacity 180ms ease, visibility 180ms ease; }
html body.home .bgv4-inquiry-panel { transform: translateY(12px) scale(.98); transition: transform 220ms var(--bg-taste-ease-out); }
html body.home .bgv4-inquiry.is-open .bgv4-inquiry-panel { transform: none; }
html body.home .bgv4-inquiry-submit { min-height: 48px; }
html body.home .bg-premium-home ::selection { background: #d5b391; color: var(--bg-taste-ink); }
html body.home .bg-premium-home :is(a, button, input, select, textarea):focus-visible { outline-color: #e2c7a6 !important; }

/* Keep CTA arrows typographic: the legacy theme applies icon-box styles to
 * nested spans, which would otherwise turn the editorial arrow into a blue
 * square on the live page. */
html body.home .bg-premium-home :is(.bg-v4-button, .bg-v4-line-link, .bg-v4-side-link) > span {
  display: inline !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: inherit !important;
  font: inherit !important;
  line-height: inherit !important;
  transform: none !important;
}

/* The Reina/Elementor stack can decorate button descendants and pseudo
 * elements after the component styles have loaded. Keep these editorial
 * actions text-led and draw the arrow in one controlled place. */
html body.home .bg-premium-home .bg-v4-button > span {
  display: none !important;
}
html body.home .bg-premium-home .bg-v4-button::before {
  display: none !important;
  content: none !important;
}
html body.home .bg-premium-home .bg-v4-button::after {
  display: inline !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: inherit !important;
  content: '↗' !important;
  font: inherit !important;
  line-height: inherit !important;
  position: static !important;
  transform: none !important;
}

/* Art-direction pass 4.0.3: calmer scale, stronger hierarchy, less template
 * chrome. The image remains the signature; typography and spacing now support
 * it instead of competing with it. */
:root {
  --bg-taste-paper: #f6f3ec;
  --bg-taste-paper-deep: #e9e4da;
  --bg-taste-white: #fffefa;
  --bg-taste-ink: #1f2724;
  --bg-taste-muted: #646963;
  --bg-taste-moss: #263a34;
  --bg-taste-clay: #b38b62;
  --bg-taste-line: rgba(31, 39, 36, .16);
  --bg-taste-line-light: rgba(255, 254, 250, .25);
}

html body.home .bg-premium-home #top.bg-redesign-v4-home {
  min-height: min(790px, 88svh);
  height: min(790px, 88svh);
  align-items: center;
}
html body.home #top.bg-redesign-v4-home .hero-bg img {
  opacity: .78;
  object-position: 56% center;
  transform: scale(1.015);
}
html body.home #top.bg-redesign-v4-home .hero-bg::after {
  background: linear-gradient(90deg, rgba(19, 29, 26, .78) 0%, rgba(19, 29, 26, .42) 48%, rgba(19, 29, 26, .08) 100%);
}
html body.home #top.bg-redesign-v4-home > .wrap {
  padding: 92px 0 64px !important;
  align-items: center;
}
html body.home #top.bg-redesign-v4-home .hero-inner {
  width: min(760px, 58%);
  margin-left: max(32px, calc((100% - 1320px) / 2));
}
html body.home #top.bg-redesign-v4-home .bg-v4-kicker {
  display: inline-block !important;
  margin-bottom: 20px;
  color: #ead9bd !important;
  font-size: 10px !important;
  letter-spacing: .12em !important;
}
html body.home #top.bg-redesign-v4-home h1 {
  max-width: 14ch;
  margin-bottom: 24px !important;
  font-size: clamp(58px, 6.1vw, 96px) !important;
  line-height: .91 !important;
  letter-spacing: -.04em !important;
}
html body.home #top.bg-redesign-v4-home p {
  max-width: 48ch;
  font-size: 16px !important;
  line-height: 1.65 !important;
}
html body.home .bg-v4-hero-index,
html body.home .bg-v4-scroll-cue { display: none !important; }

html body.home .bg-taste-proof > .wrap {
  width: min(1320px, calc(100% - 64px));
  border-top: 1px solid rgba(255, 254, 250, .34);
}
html body.home .bg-taste-proof span { min-height: 84px; padding-top: 14px; padding-bottom: 14px; }

html body.home .bg-premium-home .bg-home-section { padding: clamp(86px, 8.5vw, 128px) 0 !important; }
html body.home .bg-v4-section-heading { gap: 8vw; margin-bottom: 48px; }
html body.home .bg-v4-section-heading h2,
html body.home .bg-v4-projects-intro h2,
html body.home .bg-v4-complementary-intro h2,
html body.home .bg-v4-about h2,
html body.home .bg-v4-cta h2 {
  max-width: 12ch;
  font-size: clamp(42px, 4.35vw, 68px) !important;
  line-height: .94 !important;
}
html body.home .bg-v4-section-heading > p,
html body.home .bg-v4-projects-intro > p,
html body.home .bg-v4-complementary-intro > p,
html body.home .bg-v4-about p { font-size: 15px !important; line-height: 1.7 !important; }

html body.home .bg-v4-pathways-grid { gap: 0; border-top: 1px solid var(--bg-taste-line); border-bottom: 1px solid var(--bg-taste-line); }
html body.home .bg-v4-path { min-height: 318px; padding: 34px clamp(28px, 4vw, 58px) 38px; }
html body.home .bg-v4-path + .bg-v4-path { border-left: 1px solid var(--bg-taste-line-light); }
html body.home .bg-v4-path-number { margin-bottom: 42px; }
html body.home .bg-v4-path h3 { max-width: 11ch; font-size: clamp(34px, 3.7vw, 54px) !important; line-height: .95 !important; }
html body.home .bg-v4-path p { max-width: 39ch; margin-bottom: 22px; font-size: 14px; line-height: 1.6; }
html body.home .bg-v4-side-link { margin-top: 16px; }

html body.home #settori { padding-top: 112px !important; padding-bottom: 112px !important; }
html body.home .bg-v4-sector-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1px; }
html body.home .bg-v4-sector-card,
html body.home .bg-v4-sector-card--wide { grid-column: span 4; min-height: 350px; }
html body.home .bg-v4-sector-card:nth-child(1),
html body.home .bg-v4-sector-card:nth-child(5) { grid-column: span 6; }
html body.home .bg-v4-sector-card img { min-height: 350px; opacity: .8; }
html body.home .bg-v4-sector-caption { inset: auto 24px 22px; }
html body.home .bg-v4-sector-caption strong { font-size: clamp(27px, 2.4vw, 38px); }

html body.home #realizzazioni-home { padding-top: 118px !important; padding-bottom: 126px !important; }
html body.home .bg-v4-projects-intro { width: min(1320px, calc(100% - 64px)); }
html body.home .bg-v4-projects-intro h2 { max-width: 11ch; }
html body.home .bg-v4-project-track { gap: 18px !important; }
html body.home .bg-v4-project-card { flex-basis: clamp(270px, 25vw, 360px) !important; }
html body.home .bg-v4-project-card:nth-child(2n) { padding-top: 48px; }
html body.home .bg-v4-project-card h3 { font-size: 27px !important; }

html body.home #metodo { padding-top: 106px !important; padding-bottom: 112px !important; }
html body.home .bg-v4-steps .step { min-height: 220px; }
html body.home .bg-v4-steps .bg-step-number { margin-bottom: 48px; }
html body.home .bg-v4-steps h3 { font-size: 27px !important; }

html body.home #cosa-facciamo { padding-top: 112px !important; padding-bottom: 112px !important; }
html body.home .bg-v4-product-strip .c-img { aspect-ratio: 1 / 1; }
html body.home .bg-v4-training { margin-top: 48px; }

html body.home #chi-siamo-home { padding-top: 120px !important; padding-bottom: 126px !important; }
html body.home .bg-about-portraits figure:nth-child(2) { margin-top: 42px; }

html body.home #contatti-cta.bg-v4-cta {
  background: var(--bg-taste-moss) !important;
  color: var(--bg-taste-white) !important;
}
html body.home .bg-v4-cta .bg-v4-kicker { color: #ead9bd !important; }
html body.home .bg-v4-cta h2 { max-width: 11ch; }

@media (max-width: 760px) {
  html body.home .bg-premium-home #top.bg-redesign-v4-home,
  html body.home #top.bg-redesign-v4-home { min-height: 720px; height: 720px; }
  html body.home #top.bg-redesign-v4-home > .wrap { padding: 78px 0 44px !important; align-items: flex-end; }
  html body.home #top.bg-redesign-v4-home .hero-inner { width: 100%; margin-left: 0; }
  html body.home #top.bg-redesign-v4-home h1 { max-width: 11ch; font-size: clamp(50px, 13vw, 68px) !important; }
  html body.home .bg-taste-proof > .wrap { display: block; width: calc(100% - 40px); }
  html body.home .bg-taste-proof span { min-height: 0; padding: 16px 0; }
  html body.home .bg-taste-proof span + span { padding-left: 0; border-top: 1px solid var(--bg-taste-line-light); border-left: 0; }
  html body.home .bg-premium-home .bg-home-section { padding: 76px 0 !important; }
  html body.home .bg-v4-path { min-height: 300px; padding: 28px 24px 34px; }
  html body.home .bg-v4-path + .bg-v4-path { border-top: 1px solid var(--bg-taste-line-light); border-left: 0; }
  html body.home .bg-v4-sector-grid { display: block; }
  html body.home .bg-v4-sector-card,
  html body.home .bg-v4-sector-card--wide,
  html body.home .bg-v4-sector-card img { min-height: 300px; }
  html body.home .bg-v4-sector-card + .bg-v4-sector-card { margin-top: 1px; }
  html body.home .bg-v4-project-card:nth-child(2n) { padding-top: 0; }
  html body.home #contatti-cta.bg-v4-cta { padding-top: 82px !important; padding-bottom: 86px !important; }
}

/* Art-direction pass 4.0.4: fix legacy theme leakage and bring the hero
 * back to a confident, readable scale. */
html body.home #top.bg-redesign-v4-home .hero-inner {
  width: min(680px, 54%);
}
html body.home #top.bg-redesign-v4-home h1 {
  max-width: 15ch;
  font-family: 'Work Sans', Arial, sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(52px, 5.15vw, 82px) !important;
  line-height: .94 !important;
  letter-spacing: -.065em !important;
}
html body.home #top.bg-redesign-v4-home p { max-width: 44ch; }

html body.home .bg-v4-path--dark,
html body.home .bg-v4-path--dark :is(h3, p, .bg-v4-path-number, .bg-v4-button) {
  color: var(--bg-taste-white) !important;
}
html body.home .bg-v4-path--dark .bg-v4-button {
  border-bottom-color: rgba(255, 254, 250, .78) !important;
}
html body.home .bg-premium-home .bg-v4-button {
  min-height: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid currentColor !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
html body.home .bg-premium-home .bg-v4-button::before,
html body.home .bg-premium-home .bg-v4-button::after {
  border-radius: 0 !important;
  box-shadow: none !important;
}
html body.home .bg-premium-home .bg-v4-side-link,
html body.home .bg-premium-home .bg-v4-side-link span {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
html body.home .bg-premium-home .bg-v4-side-link span::before,
html body.home .bg-premium-home .bg-v4-side-link span::after,
html body.home .bg-premium-home .bg-v4-side-link::before,
html body.home .bg-premium-home .bg-v4-side-link::after {
  display: none !important;
  content: none !important;
}
html body.home .bg-premium-home .bg-v4-side-link > .bg-v4-side-label {
  display: inline !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 0 2px !important;
  color: inherit !important;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-bottom: 1px solid currentColor !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font: inherit !important;
}
html body.home .bg-premium-home .bg-v4-side-link > i.bg-v4-arrow {
  all: unset !important;
  display: inline-block !important;
  position: relative !important;
  width: 16px !important;
  height: 12px !important;
  margin-left: 8px !important;
  color: inherit !important;
  background: none !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  font-style: normal !important;
  font-size: 0 !important;
  line-height: 0 !important;
  vertical-align: middle !important;
}
html body.home .bg-premium-home .bg-v4-side-link > i.bg-v4-arrow::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  top: 6px !important;
  left: 0 !important;
  width: 13px !important;
  height: 0 !important;
  border-top: 1px solid currentColor !important;
  background: none !important;
  box-shadow: none !important;
}
html body.home .bg-premium-home .bg-v4-side-link > i.bg-v4-arrow::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  top: 2px !important;
  right: 0 !important;
  width: 7px !important;
  height: 7px !important;
  border-top: 1px solid currentColor !important;
  border-right: 1px solid currentColor !important;
  background: none !important;
  box-shadow: none !important;
  transform: rotate(45deg) !important;
}

@media (max-width: 760px) {
  html body.home #top.bg-redesign-v4-home .hero-inner { width: 100%; }
  html body.home #top.bg-redesign-v4-home h1 {
    max-width: 12ch;
    font-size: clamp(46px, 12.5vw, 64px) !important;
  }
}

/* Internal pages use the same world, without inheriting homepage geometry. */
html body.bg-site-catalog,
html body.bg-inner-page { background: var(--bg-taste-paper) !important; color: var(--bg-taste-ink); }
html body.bg-site-catalog :is(h1, h2, h3),
html body.bg-inner-page :is(h1, h2, h3) { font-family: 'Cormorant Garamond', Georgia, serif !important; font-weight: 500 !important; letter-spacing: -.025em !important; }
html body.bg-realizations-page .bg-realizations-archive,
html body.bg-site-catalog .bg-case-v4,
html body.bg-site-catalog .bg-detail,
html body.bg-site-catalog .bg-site-archive { width: min(1320px, calc(100% - 64px)); }
html body.bg-realizations-page .bg-realizations-archive { padding: 54px 0 120px; }
html body.bg-realizations-page .bg-realizations-heading { max-width: 740px; margin: 70px 0 52px; }
html body.bg-realizations-page .bg-realizations-heading h1 { font-size: clamp(52px, 7vw, 100px); line-height: .88; }
html body.bg-realizations-page .bg-realizations-heading p:last-child { max-width: 54ch; color: var(--bg-taste-muted); font-size: 16px; line-height: 1.75; }
html body.bg-realizations-page .bg-realizations-filters { gap: 24px; padding: 16px 0; border-top: 1px solid var(--bg-taste-line); border-bottom: 1px solid var(--bg-taste-line); }
html body.bg-realizations-page .bg-realizations-filters a { min-height: 38px; padding: 8px 0; border: 0; border-radius: 0; background: transparent; color: var(--bg-taste-muted); font-size: 12px; }
html body.bg-realizations-page .bg-realizations-filters a.is-active { background: transparent; color: var(--bg-taste-ink); box-shadow: inset 0 -1px var(--bg-taste-clay); }
html body.bg-realizations-page .bg-realizations-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 54px 22px; }
html body.bg-realizations-page .bg-realization-card { grid-column: span 5; overflow: visible; border: 0; border-radius: 0; background: transparent; }
html body.bg-realizations-page .bg-realization-card:nth-child(3n + 2) { grid-column: 7 / span 6; margin-top: 92px; }
html body.bg-realizations-page .bg-realization-card:nth-child(3n + 3) { grid-column: 2 / span 5; }
html body.bg-realizations-page .bg-realization-card-photo { aspect-ratio: 5 / 6; background: var(--bg-taste-paper-deep); }
html body.bg-realizations-page .bg-realization-card:nth-child(3n + 2) .bg-realization-card-photo { aspect-ratio: 6 / 5; }
html body.bg-realizations-page .bg-realization-card-photo img { transition: transform 420ms var(--bg-taste-ease-in-out); }
html body.bg-realizations-page .bg-realization-card-copy { padding: 18px 0 0; }
html body.bg-realizations-page .bg-realization-card-type { color: var(--bg-taste-clay); font-size: 10px; letter-spacing: .09em; }
html body.bg-realizations-page .bg-realization-card h2 { margin-bottom: 14px; font-size: 34px; line-height: .98; }
html body.bg-realizations-page .bg-realization-card-link { color: var(--bg-taste-ink); text-decoration: none; border-bottom: 1px solid var(--bg-taste-ink); text-underline-offset: 5px; }
html body.bg-realizations-page .bg-realizations-cta { margin-top: 120px; padding: 64px 0; border-top: 1px solid var(--bg-taste-line); background: transparent; }
html body.bg-realizations-page .bg-realizations-cta h2 { font-size: clamp(46px, 5vw, 76px); line-height: .9; }

html body.bg-detail-page .bg-case-v4 { padding: 70px 0 130px; }
html body.bg-detail-page .bg-case-v4-hero { grid-template-columns: minmax(260px, .58fr) minmax(0, 1.42fr); gap: 10vw; }
html body.bg-detail-page .bg-case-v4-hero h1 { font-size: clamp(60px, 8vw, 112px) !important; line-height: .84 !important; }
html body.bg-detail-page .bg-case-v4-hero figure,
html body.bg-detail-page .bg-case-gallery figure { border-radius: 0; }
html body.bg-detail-page .bg-case-v4-story { gap: 10vw; padding: 150px 0 120px; }
html body.bg-detail-page .bg-case-v4-story h2,
html body.bg-detail-page .bg-case-v4-gallery-heading h2,
html body.bg-detail-page .bg-case-v4-next h2 { font-size: clamp(48px, 5.4vw, 82px) !important; line-height: .88 !important; }

@media (hover: hover) and (pointer: fine) {
  html body.home .bg-premium-home .bg-v4-project-card:hover .c-img img,
  html body.home .bg-premium-home .bg-v4-sector-card:hover img,
  html body.bg-realizations-page .bg-realization-card:hover .bg-realization-card-photo img,
  html body.bg-detail-page .bg-case-gallery a:hover img { transform: scale(1.035); }
  html body.home .bg-premium-home .bg-v4-project-card:hover .go,
  html body.home .bg-premium-home .bg-v4-sector-card:hover .bg-v4-sector-caption i { color: var(--bg-taste-clay); }
}

@media (max-width: 900px) {
  html body.home .bg-premium-header .menu { display: none; }
  html body.home .bg-premium-header .nav-cta > .btn { display: none; }
  html body.home .bg-premium-home .mobile-menu { background: var(--bg-taste-moss); transition: transform 260ms var(--bg-taste-ease-drawer); }
  html body.home #top.bg-redesign-v4-home .hero-inner { width: min(700px, calc(100% - 64px)); margin-left: 32px; }
  html body.home .bg-taste-hero-proof { margin-inline: 32px; }
  html body.home .bg-v4-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  html body.home .bg-v4-steps .step:nth-child(3) { border-right: 0; }
  html body.home .bg-v4-steps .step:nth-child(n + 4) { border-top: 1px solid var(--bg-taste-line-light); padding-top: 22px; }
  html body.bg-realizations-page .bg-realization-card { grid-column: span 6; }
  html body.bg-realizations-page .bg-realization-card:nth-child(3n + 2) { grid-column: 7 / span 6; }
  html body.bg-realizations-page .bg-realization-card:nth-child(3n + 3) { grid-column: 1 / span 6; }
}

@media (max-width: 760px) {
  html body.home header#nav.bg-premium-header,
  html body.home header#nav.bg-premium-header .wrap { min-height: 68px; }
  html body.home header#nav.bg-premium-header .wrap,
  html body.home #top.bg-redesign-v4-home > .wrap,
  html body.home .bg-premium-home .bg-home-section > .wrap,
  html body.home footer.bg-premium-footer > .wrap,
  html body.home .bg-footer-bottom { width: calc(100% - 40px); }
  html body.home #top.bg-redesign-v4-home { min-height: min(760px, 100svh); height: min(760px, 100svh); }
  html body.home #top.bg-redesign-v4-home > .wrap { padding: 72px 0 38px !important; }
  html body.home #top.bg-redesign-v4-home .hero-inner { width: 100%; margin-left: 0; }
  html body.home #top.bg-redesign-v4-home h1 { max-width: 8.5ch; font-size: clamp(50px, 14.1vw, 72px) !important; }
  html body.home #top.bg-redesign-v4-home p { max-width: 34ch; font-size: 15px !important; }
  html body.home .bg-taste-hero-proof { width: calc(100% - 40px); margin-inline: 20px; }
  html body.home .bg-taste-hero-proof span { padding-right: 10px; }
  html body.home .bg-taste-hero-proof span + span { padding-left: 10px; }
  html body.home .bg-taste-hero-proof strong { font-size: 10px; }
  html body.home .bg-taste-hero-proof small { font-size: 10px; }
  html body.home .bg-taste-proof > .wrap { width: calc(100% - 40px); }
  html body.home .bg-taste-proof span { min-height: 82px; padding-right: 10px; }
  html body.home .bg-taste-proof span + span { padding-left: 10px; }
  html body.home .bg-taste-proof strong { font-size: 10px; }
  html body.home .bg-taste-proof small { font-size: 10px; }
  html body.home .bg-v4-section-heading,
  html body.home .bg-v4-complementary-intro,
  html body.home .bg-v4-products-feature,
  html body.home .bg-v4-about > .wrap,
  html body.home .bg-v4-cta > .wrap { display: block; }
  html body.home .bg-v4-section-heading { margin-bottom: 40px; }
  html body.home .bg-v4-section-heading h2,
  html body.home .bg-v4-projects-intro h2,
  html body.home .bg-v4-complementary-intro h2,
  html body.home .bg-v4-about h2,
  html body.home .bg-v4-cta h2 { max-width: 9.5ch; font-size: 50px !important; }
  html body.home .bg-v4-section-heading > p { margin-top: 24px; }
  html body.home .bg-v4-pathways-grid { display: block; background: none; }
  html body.home .bg-v4-path + .bg-v4-path { margin-top: 1px; }
  html body.home .bg-v4-path { min-height: 330px; padding: 30px 24px; }
  html body.home .bg-v4-sector-grid { display: block; }
  html body.home .bg-v4-sector-card + .bg-v4-sector-card { margin-top: 1px; }
  html body.home .bg-v4-sector-card,
  html body.home .bg-v4-sector-card img { min-height: 330px; }
  html body.home .bg-v4-projects-intro { width: calc(100% - 40px); }
  html body.home .bg-v4-project-track { padding-inline: 20px !important; }
  html body.home .bg-v4-project-card { flex-basis: 82vw !important; }
  html body.home .bg-v4-project-card:nth-child(2n) { padding-top: 40px; }
  html body.home .bg-v4-steps { display: block; }
  html body.home .bg-v4-steps .step,
  html body.home .bg-v4-steps .step + .step,
  html body.home .bg-v4-steps .step:nth-child(n + 4) { min-height: 0; padding: 20px 0; border: 0; border-bottom: 1px solid var(--bg-taste-line-light); }
  html body.home .bg-v4-products-feature { padding-top: 30px; }
  html body.home .bg-v4-training { display: block; margin-top: 48px; }
  html body.home .bg-v4-training p { margin: 20px 0; }
  html body.home .bg-about-copy { margin-bottom: 44px; }
  html body.home .bg-about-portraits figure:nth-child(2) { margin-top: 34px; }
  html body.bg-realizations-page .bg-realizations-archive,
  html body.bg-site-catalog .bg-case-v4,
  html body.bg-site-catalog .bg-detail,
  html body.bg-site-catalog .bg-site-archive { width: calc(100% - 40px); }
  html body.bg-realizations-page .bg-realizations-archive { padding: 30px 0 76px; }
  html body.bg-realizations-page .bg-realizations-heading { margin: 52px 0 36px; }
  html body.bg-realizations-page .bg-realizations-heading h1 { font-size: 58px; }
  html body.bg-realizations-page .bg-realizations-filters { gap: 14px 20px; overflow-x: auto; flex-wrap: nowrap; }
  html body.bg-realizations-page .bg-realizations-grid { display: block; }
  html body.bg-realizations-page .bg-realization-card,
  html body.bg-realizations-page .bg-realization-card:nth-child(3n + 2),
  html body.bg-realizations-page .bg-realization-card:nth-child(3n + 3) { margin: 0 0 52px; }
  html body.bg-realizations-page .bg-realization-card:nth-child(odd) .bg-realization-card-photo { aspect-ratio: 5 / 6; }
  html body.bg-realizations-page .bg-realization-card:nth-child(even) .bg-realization-card-photo { aspect-ratio: 6 / 5; }
  html body.bg-realizations-page .bg-realizations-cta { margin-top: 42px; padding: 48px 0; }
  html body.bg-detail-page .bg-case-v4 { padding: 42px 0 78px; }
  html body.bg-detail-page .bg-case-v4-hero h1 { font-size: 68px !important; }
  html body.bg-detail-page .bg-case-v4-story { padding: 86px 0 76px; }
  html body.bg-detail-page .bg-case-v4-gallery { padding: 76px 0; }
}

@media (prefers-reduced-motion: reduce) {
  html body.home .bg-premium-home *,
  html body.home .bg-premium-home *::before,
  html body.home .bg-premium-home *::after,
  html body.bg-site-catalog *,
  html body.bg-site-catalog *::before,
  html body.bg-site-catalog *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  html body.home .bg-premium-home .bg-taste-hero-proof,
  html body.home .bg-premium-home .bg-v4-project-card:nth-child(2n) { transform: none !important; }
}

/* Contextual enquiry dialog from the legacy Elementor canvas: bring it into
 * the same editorial system as the rebuilt homepage instead of allowing the
 * old theme form styles to stretch it across the viewport. */
html body.home .inq {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1000 !important;
  display: grid !important;
  place-items: center !important;
  padding: clamp(16px, 3vw, 40px) !important;
  background: rgba(28, 31, 29, .72) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 180ms ease, visibility 180ms ease !important;
}
html body.home .inq.open { opacity: 1 !important; visibility: visible !important; }
html body.home .inq-scrim { position: absolute !important; inset: 0 !important; background: transparent !important; }
html body.home .inq-sheet {
  position: relative !important;
  z-index: 1 !important;
  width: min(820px, 100%) !important;
  max-height: min(760px, calc(100vh - 48px)) !important;
  overflow: auto !important;
  padding: clamp(30px, 5vw, 62px) !important;
  background: var(--bg-taste-paper) !important;
  color: var(--bg-taste-ink) !important;
  box-shadow: 0 24px 80px rgba(16, 19, 17, .22) !important;
  transform: translateY(12px) !important;
  transition: transform 220ms var(--bg-taste-ease-out) !important;
}
html body.home .inq.open .inq-sheet { transform: none !important; }
html body.home .inq-close {
  position: absolute !important;
  top: 18px !important;
  right: 22px !important;
  width: 38px !important;
  height: 38px !important;
  padding: 0 !important;
  border: 1px solid var(--bg-taste-line) !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: var(--bg-taste-ink) !important;
  font: 300 24px/1 'Work Sans', sans-serif !important;
  cursor: pointer !important;
}
html body.home .inq-intent {
  display: block !important;
  margin: 0 0 14px !important;
  color: var(--bg-taste-clay) !important;
  font: 600 11px/1.3 'Work Sans', sans-serif !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}
html body.home .inq-title {
  max-width: 10ch !important;
  margin: 0 0 28px !important;
  color: var(--bg-taste-ink) !important;
  font: 400 clamp(48px, 6vw, 76px)/.9 'Cormorant Garamond', Georgia, serif !important;
  letter-spacing: -.035em !important;
}
html body.home .inq-title em { font-style: italic !important; }
html body.home .inq-ctx {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 0 0 24px !important;
  padding: 14px 0 !important;
  border-top: 1px solid var(--bg-taste-line) !important;
  border-bottom: 1px solid var(--bg-taste-line) !important;
  color: var(--bg-taste-ink-soft) !important;
  font: 400 14px/1.45 'Work Sans', sans-serif !important;
}
html body.home .inq-ctx img { width: 58px !important; height: 58px !important; flex: 0 0 58px !important; object-fit: cover !important; }
html body.home .inq-ctx div { display: grid !important; gap: 2px !important; }
html body.home .inq-ctx span { font-size: 12px !important; }
html body.home .inq-ctx strong { color: var(--bg-taste-ink) !important; font-weight: 600 !important; }
html body.home .inq-ctx em { font-size: 12px !important; font-style: normal !important; }
html body.home .inq-form { display: grid !important; gap: 16px !important; }
html body.home .inq-row { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
html body.home .inq-form label { display: grid !important; gap: 7px !important; color: var(--bg-taste-ink-soft) !important; font: 600 11px/1.3 'Work Sans', sans-serif !important; letter-spacing: .04em !important; text-transform: uppercase !important; }
html body.home .inq-form input:not([type='checkbox']),
html body.home .inq-form textarea {
  width: 100% !important;
  min-height: 48px !important;
  padding: 12px 13px !important;
  border: 1px solid var(--bg-taste-line) !important;
  border-radius: 0 !important;
  background: var(--bg-taste-white) !important;
  color: var(--bg-taste-ink) !important;
  font: 400 15px/1.4 'Work Sans', sans-serif !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
html body.home .inq-form textarea { min-height: 110px !important; resize: vertical !important; }
html body.home .inq-form input:not([type='checkbox']):focus,
html body.home .inq-form textarea:focus { outline: 2px solid var(--bg-taste-clay) !important; outline-offset: 2px !important; }
html body.home .inq-consent { display: flex !important; grid-template-columns: none !important; align-items: flex-start !important; gap: 9px !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body.home .inq-consent input { width: 18px !important; min-height: 18px !important; margin: 0 !important; accent-color: var(--bg-taste-moss) !important; }
html body.home .inq-consent a { color: var(--bg-taste-ink) !important; text-decoration: underline !important; }
html body.home .inq-status { min-height: 20px !important; margin: 0 !important; color: var(--bg-taste-ink-soft) !important; font: 400 13px/1.5 'Work Sans', sans-serif !important; }
html body.home .inq-status.error { color: #8e3e34 !important; }
html body.home .inq-status.success { color: var(--bg-taste-moss) !important; }
html body.home .inq-submit { justify-self: start !important; min-height: 48px !important; margin-top: 2px !important; padding: 14px 20px !important; }
html body.home .inq-form.is-sending { opacity: .62 !important; pointer-events: none !important; }
@media (max-width: 760px) {
  html body.home .inq { padding: 12px !important; }
  html body.home .inq-sheet { max-height: calc(100vh - 24px) !important; padding: 48px 20px 24px !important; }
  html body.home .inq-row { grid-template-columns: 1fr !important; gap: 16px !important; }
  html body.home .inq-title { font-size: 52px !important; }
}
