@font-face{font-family:Alegreya;src:url("assets/fonts/alegreya-italic.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Alegreya Sans";src:url("assets/fonts/alegreya-sans-regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Alegreya Sans";src:url("assets/fonts/alegreya-sans-medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
:root{--surface-rose:oklch(94% .025 25);--surface-cream:oklch(96% .010 65);--paper:var(--surface-rose);--paper-deep:var(--surface-cream);--paper-soft:oklch(92% .016 25);--ink:oklch(31% .025 335);--ink-soft:oklch(43% .018 335);--wine:oklch(40% .05 335);--accent:oklch(44% .045 350);--line:oklch(82% .018 25);--focus:var(--accent);--palette-linen:var(--paper);--palette-maroon:var(--ink);--font-display:Alegreya,Georgia,serif;--font-body:"Alegreya Sans",sans-serif;--page:max(24px,calc((100vw - 1248px)/2));--space-lg:24px;--header-height:112px;--z-header:200;--ease-out:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.65 var(--font-body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button{font:inherit;color:inherit}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.045em}h1,h2{line-height:1.12}em{color:var(--wine);font-weight:400}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:6px}.shell{width:calc(100% - var(--page)*2);max-width:1248px;margin-inline:auto}.chapter-label{text-transform:uppercase;font-size:11px;letter-spacing:.17em;color:var(--accent);font-weight:500;line-height:1.6}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:absolute;top:12px;left:12px;z-index:300;padding:12px 20px;background:var(--ink);color:var(--paper);transform:translateY(-200%)}.skip-link:focus{transform:none}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:124px}.brand{display:block;width:262px;flex-shrink:0}.brand img{width:100%;height:auto}.site-header nav{display:flex;align-items:center;gap:32px;font-size:14px}.site-header nav a{padding-block:12px}.site-header nav a:hover{color:var(--accent)}.nav-contact{border-bottom:1px solid var(--line)}.nav-contact span{margin-left:20px}.menu-button{display:none}
.hero{display:grid;grid-template-columns:1fr 1.05fr;gap:0 72px;padding-top:20px}.hero-copy{align-self:center;padding-bottom:24px}.hero h1{font-size:clamp(56px,6.8vw,94px);margin-block:24px 28px}.hero-lede{max-width:38ch;font-size:17px;color:var(--ink-soft);line-height:1.8}.editorial-link{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:48px;border-bottom:1px solid var(--line);font-size:14px;padding-block:12px}.hero .editorial-link{margin-top:24px}.editorial-link span{transition:transform .2s ease}.editorial-link:hover span{transform:translate(3px,-3px)}.hero-visual img{width:100%;height:540px;object-fit:cover;object-position:50% 40%}.hero-caption{grid-column:1/-1;display:flex;justify-content:space-between;gap:24px;padding-block:24px;border-bottom:1px solid var(--line);font-size:12px;color:var(--ink-soft)}
.offerings{padding-block:100px 112px}.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:32px;align-items:start;margin-bottom:56px}.section-heading .chapter-label{padding-top:16px}h2{font-size:clamp(36px,4.3vw,58px)}.offer-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}.offer{display:flex;flex-direction:column;align-items:flex-start;border-top:1px solid var(--line);padding-top:20px;min-width:0}.offer h3{font-size:32px;line-height:1.2;margin-block:20px 16px}.offer p{color:var(--ink-soft);font-size:17px;max-width:37ch}.offer ul{list-style:none;padding:0;margin:24px 0 28px;font-size:14px;line-height:1.9;color:var(--ink-soft)}.offer .editorial-link{margin-top:auto}
.works{overflow:hidden;background:var(--surface-rose);padding-block:72px 64px}.works-heading{padding-inline:var(--page);display:grid;grid-template-columns:1fr 2fr;gap:16px 32px}.works-heading .chapter-label{padding-top:16px}.works-heading h2{max-width:18ch}.works-heading>p:last-child{grid-column:2;max-width:43ch;font-size:15px;color:var(--ink-soft)}
.about{padding-block:104px;display:grid;grid-template-columns:1fr 2fr;gap:32px}.about>.chapter-label{padding-top:16px}.about-copy{max-width:600px}.about-copy>p{max-width:54ch;margin-top:24px;color:var(--ink-soft)}.about-copy .editorial-link{margin-top:20px}.contact{background:var(--paper-deep);padding-block:72px 80px}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:72px}.contact h2{margin-top:20px}.contact-copy p{max-width:48ch;color:var(--ink-soft)}.contact-link{display:inline-flex;align-items:center;gap:24px;border-bottom:1px solid var(--accent);padding-block:16px;font-size:clamp(17px,2vw,24px);overflow-wrap:anywhere}.contact-copy .contact-location{margin-top:20px;font-size:13px}footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;padding-block:32px}footer .brand{width:220px}footer p,footer>a:not(.brand){font-size:13px}footer small{font-size:12px;color:var(--ink-soft)}
@media(max-width:1000px){.hero{gap:0 36px}.hero h1{font-size:64px}.hero-visual img{height:480px}.offer-list{gap:28px}.site-header nav{gap:24px}.brand{width:232px}.contact-inner{gap:40px}}
@media(max-width:700px){:root{--page:20px}.site-header{min-height:110px;gap:12px;flex-wrap:wrap;padding-block:8px}.brand{width:210px}.menu-button{display:flex;align-items:center;gap:10px;min-height:48px;border:0;background:none;font-size:13px;padding:8px}.menu-button i{width:20px;height:10px;border-block:1px solid currentColor}.site-header nav{display:none;width:100%;padding-block:8px 16px;border-top:1px solid var(--line);gap:8px 24px;flex-wrap:wrap}.site-header nav.open{display:flex}.nav-contact{border-bottom:0}.nav-contact span{margin-left:6px}.hero{grid-template-columns:1fr;gap:32px;padding-top:32px}.hero-copy{padding-bottom:0}.hero h1{font-size:clamp(54px,13vw,76px);margin-block:20px 24px}.hero-lede{font-size:16px;max-width:38ch}.hero .editorial-link{margin-top:20px}.hero-visual img{height:auto;aspect-ratio:1.15;object-position:50% 37%}.hero-caption{margin-top:-12px;padding-block:0 20px;font-size:11px;flex-wrap:wrap;gap:4px 16px}.offerings{padding-block:64px}.section-heading,.works-heading{grid-template-columns:1fr;gap:12px}.section-heading{margin-bottom:32px}.section-heading .chapter-label,.works-heading .chapter-label,.about>.chapter-label{padding-top:0}.offer-list{grid-template-columns:1fr;gap:36px}.offer{display:grid;grid-template-columns:30px 1fr;gap:0 12px;padding-top:20px}.offer h3{margin:0 0 16px;font-size:30px}.offer p,.offer ul,.offer .editorial-link{grid-column:2}.offer ul{margin-block:16px}.offer .editorial-link{justify-self:start}.works{padding-block:56px 40px}.works-heading>p:last-child{grid-column:1}.works h2{font-size:36px}.about{grid-template-columns:1fr;padding-block:64px;gap:20px}.about h2{font-size:38px}.contact{padding-block:56px}.contact-inner{grid-template-columns:1fr;gap:28px}.contact h2{margin-top:14px}.contact-link{font-size:18px;gap:16px}footer{display:grid;grid-template-columns:1fr auto;gap:16px;padding-block:24px}footer .brand{grid-column:1/-1;width:200px}footer p{grid-column:1/-1}footer small{grid-column:1;grid-row:4}footer>a:not(.brand){grid-column:2;grid-row:4}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.gallery-viewport { margin-top: clamp(2.25rem, 4vw, 3.5rem); }

.gallery-layout {
  --gallery-tile: clamp(6.75rem, 30vw, 9.25rem);
  --gallery-gap: clamp(.35rem, 1.35vw, .6rem);
  display: grid;
  gap: clamp(.65rem, 1.4vw, .9rem);
}

.gallery-wall { min-width: 0; }

.gallery-feature {
  position: relative;
  height: calc((var(--gallery-tile) * 3) + (var(--gallery-gap) * 2));
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: var(--paper-soft);
}

.gallery-feature { display:grid;place-items:center;background:transparent; }
.gallery-feature[hidden] { display: none; }

.gallery-feature__image,
.gallery-feature__image img {
  display: block;
  width: 100%;
  height: 100%;
}

.gallery-feature__image {
  position: relative;
  width: min(100%, calc((var(--gallery-tile) * 3 + var(--gallery-gap) * 2) * var(--gallery-image-ratio, 1)));
  height: auto;
  aspect-ratio: var(--gallery-image-ratio, 1);
  max-height: 100%;
  overflow: hidden;
}

.gallery-feature__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  border-radius: 20px;
}

.gallery-feature__close {
  position: absolute;
  z-index: 2;
  top: .75rem;
  right: .75rem;
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  padding: 0;
  border: 1px solid color-mix(in oklch, var(--palette-linen) 72%, transparent);
  border-radius: 50%;
  background: color-mix(in oklch, var(--palette-maroon) 82%, transparent);
  color: var(--paper);
  font: 300 1.35rem/1 var(--font-body);
  cursor: pointer;
  transition: opacity 160ms ease;
}

.gallery-layout.is-transitioning .gallery-feature__close { opacity: 0; }

.gallery-flight {
  position: fixed;
  z-index: calc(var(--z-header) - 1);
  display: block;
  overflow: hidden;
  background: var(--paper-soft);
  pointer-events: none;
  transform-origin: top left;
  will-change: transform, opacity;
  contain: layout paint;
}

.gallery-flight img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery-stage {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scroll-padding-inline: var(--page);
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  touch-action: pan-x pan-y pinch-zoom;
  overflow-anchor: none;
}

.gallery-stage::-webkit-scrollbar { display: none; }
.gallery-stage:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.gallery-scene {
  display: inline-grid;
  grid-auto-flow: column;
  grid-auto-columns: var(--gallery-tile);
  grid-template-rows: repeat(3, var(--gallery-tile));
  gap: var(--gallery-gap);
  width: max-content;
  padding-inline: var(--page);
}

@media (max-width: 63.999rem) {
  .gallery-scene { grid-auto-columns: max-content; }

  .gallery-scene .work-card {
    width: var(--gallery-tile);
    grid-row: var(--gallery-grid-row);
    grid-column: var(--gallery-grid-column);
  }

  .gallery-feature--inline {
    width: min(78vw, 42rem);
    height: calc((var(--gallery-tile) * 3) + (var(--gallery-gap) * 2));
    grid-row: 1 / -1;
    grid-column: var(--gallery-feature-column);
    scroll-snap-align: start;
  }

  .gallery-layout.has-selection .gallery-stage { scroll-padding-inline-start: 14vw; }
}

.work-card {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  background: var(--paper-soft);
  text-align: left;
  cursor: zoom-in;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
  isolation: isolate;
}

.work-card.is-selected {
  cursor: zoom-out;
}

.work-card__image {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--paper-soft);
}

.work-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 160ms ease, transform 700ms var(--ease-out);
}

.work-card.is-selected .work-card__image img { opacity: 0; }

.work-card--moment img { object-position: 50% 75%; }
.work-card--roses img { object-position: 52% 38%; }
.work-card--workbench img { object-position: 50% 20%; }
.work-card--quiet img { object-position: 50% 50%; }
.work-card--landscape img { object-position: 25% 50%; }
.work-card--handbound img { object-position: 50% 65%; }
.work-card--wedding-detail img { object-position: 50% 50%; }
.work-card--detail img { object-position: 50% 43%; }
.work-card--vases img { object-position: 50% 70%; }
.work-card--wreath img { object-position: 50% 48%; }
.work-card--meadow img { object-position: 50% 50%; }
.work-card--pastel img { object-position: 50% 65%; }
.work-card--course img { object-position: 50% 52%; }

.gallery-controls {
  display: grid;
  grid-template-columns: minmax(5.5rem, 9rem) 1fr auto;
  align-items: center;
  gap: clamp(.85rem, 2vw, 1.5rem);
  margin-top: 1.15rem;
  padding-inline: var(--page);
}

.gallery-controls[hidden] { display: none; }

.gallery-progress {
  grid-column: 1;
  height: 1px;
  background: var(--line);
  overflow: hidden;
}

.gallery-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--wine);
  transform: scaleX(var(--gallery-progress, 0));
  transform-origin: left;
  transition: transform 260ms var(--ease-out);
}

.gallery-arrows {
  grid-column: 3;
  display: flex;
  align-items: center;
}

.gallery-arrows button {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition: color 180ms ease, opacity 180ms ease;
}

.gallery-arrows button:last-child { border-right: 1px solid var(--line); }
.gallery-arrows button:disabled { opacity: .28; cursor: default; }
.gallery-arrows span { font: 400 1.25rem/1 var(--font-display); }

@media (min-width:56.25rem){.gallery-layout{--gallery-tile:clamp(9.5rem,12.5vw,11.5rem);--gallery-gap:clamp(.5rem,.8vw,.75rem)}}
@media (min-width:64rem){.gallery-feature{cursor:zoom-out}.gallery-layout.has-selection{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;padding-inline:var(--page)}.gallery-layout.has-selection .gallery-feature{height:calc((var(--gallery-tile) * 3) + (var(--gallery-gap) * 2))}.gallery-layout.has-selection .gallery-scene,.gallery-layout.has-selection .gallery-controls{padding-inline:0}}

.gallery-viewport{--palette-linen:var(--paper);--palette-maroon:var(--ink)}

/* Soft image edges; botanical illustrations belong to the offer, not the background. */
.hero-visual{border-radius:28px;overflow:hidden}
.work-card,.work-card__image{border-radius:12px}
.gallery-feature,.gallery-feature__image,.gallery-flight{border-radius:20px}
/* Offers read as three editorial rows, with each illustration beside its heading. */
.offerings{padding-block:88px 96px}
.offerings .section-heading{margin-bottom:40px}
.offer-list{display:block}
.offer{display:grid;grid-template-columns:max-content minmax(0,1fr) minmax(0,44%);gap:48px;align-items:center;padding:36px 0;border-top:1px solid var(--line)}
.offer-heading{align-self:center}
.offer h3{font-size:clamp(32px,3vw,42px);margin:0}

.offer-art{display:flex;align-items:center;justify-content:center;width:100%;height:224px;margin:0}
.offer-art img{width:auto;height:208px;max-width:none;flex-shrink:0;object-fit:contain}
#hochzeiten .offer-art{transform:rotate(-8deg)}
/* The airy bouquet needs more height than the compact rose and wreath. */
#hochzeiten .offer-art img{height:280px}
#feste .offer-art{transform:rotate(8deg)}
#kurse .offer-art img{height:184px}
.offer-copy{min-width:0}
.offer-copy p{max-width:48ch}
.offer-copy ul{margin:16px 0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:15px;line-height:1.7}
.offer-copy li:not(:last-child)::after{content:" /";margin-left:12px;color:var(--wine)}
.offer-copy .editorial-link{margin-top:0;color:var(--accent);border-color:color-mix(in oklch,var(--accent) 35%,transparent)}
.contact{background:var(--surface-cream)}
.contact-link{color:var(--accent)}
@media(min-width:701px) and (max-width:1000px){.offer{gap:24px}.offer-art{height:192px}.offer-art img{height:176px}#hochzeiten .offer-art img{height:232px}#kurse .offer-art img{height:160px}.offer-copy ul{display:block}.offer-copy li::after{display:none}}
@media(max-width:700px){
.hero-visual{border-radius:20px}.work-card,.work-card__image{border-radius:10px}
.offerings{padding-block:56px 64px}.offerings .section-heading{margin-bottom:28px}
.offer{grid-template-columns:minmax(0,1fr) clamp(112px,32vw,128px);gap:24px 16px;padding-block:28px}
.offer-heading{grid-column:1;grid-row:1}.offer h3{font-size:30px;margin-top:0}
.offer-art{grid-column:2;grid-row:1;height:160px}.offer-art img{height:144px}#hochzeiten .offer-art{height:192px}#hochzeiten .offer-art img{height:clamp(180px,49.2vw,192px)}#kurse .offer-art img{height:128px}
.offer-copy{grid-column:1/-1}.offer-copy ul{display:block;margin-block:16px;text-align:center}.offer-copy li::after{display:none}.offer-copy .editorial-link{justify-self:auto}
}

/* A separate artist introduction, followed by her portrait and work. */
.site-header .brand{width:300px}
.site-header .nav-contact{border:0;color:var(--accent)}
.hero{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:56px;align-items:end;padding-block:56px 80px}
.hero-copy{padding:0}.hero h1{font-size:clamp(64px,7.7vw,110px);line-height:1.07;margin:24px 0 0;letter-spacing:-.055em}
.hero-lede{font-size:18px;line-height:1.8;max-width:29ch;margin-bottom:8px}
.about{grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:clamp(32px,4.5vw,64px);align-items:center;padding-block:0 64px}
.about-portrait{border-radius:28px;overflow:hidden;max-width:520px}
.about-portrait img{width:100%;height:440px;object-fit:cover;object-position:50% 39%}
.about-copy{max-width:500px}.about-copy>.chapter-label{margin:0 0 20px;font-size:11px;color:var(--accent)}
.about h2{font-size:clamp(36px,3.8vw,54px)}.about-copy>p:not(.chapter-label){font-size:18px;line-height:1.8;margin-top:24px}
.offerings{padding-top:28px;background:var(--surface-cream)}.section-heading{grid-template-columns:1fr 2fr}.section-heading h2{font-size:clamp(36px,4vw,54px)}
.offer-list{border:0}.offer{position:relative;border:0;padding-block:36px}


.offer h3{font-size:clamp(30px,2.8vw,39px);max-width:12ch;line-height:1.18}
.offer-copy ul{margin-bottom:0}.offer-copy li:not(:last-child)::after{content:none}.offer-copy ul{display:block;line-height:1.9}
.gallery-arrows{gap:20px}.gallery-arrows button,.gallery-arrows button:last-child{border:0;width:auto;min-width:48px;padding:0 4px}.gallery-arrows span{font:400 13px/1 var(--font-body)}
.instagram-link{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;color:var(--accent)}.instagram-link svg{width:24px;height:24px}.instagram-link:hover{color:var(--wine)}
.contact h2{font-size:clamp(36px,4vw,54px);max-width:13ch}.contact-link{border-bottom:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}
footer .brand{width:240px}
@media(min-width:701px) and (max-width:1000px){.site-header .brand{width:250px}.hero{gap:32px}.hero h1{font-size:clamp(60px,8vw,78px)}.hero-lede{font-size:16px}.about{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}.about-portrait img{height:420px}.offer h3{font-size:30px}}
@media(max-width:700px){
.site-header .brand{width:228px}.site-header{min-height:104px}.site-header nav{border:0}
.hero{grid-template-columns:1fr;gap:24px;padding-block:32px 44px}.hero h1{font-size:clamp(44px,11.4vw,76px);margin-top:20px}.hero-lede{font-size:16px;max-width:34ch;margin:0}
.about{grid-template-columns:1fr;gap:24px;padding-block:0 48px}.about-portrait{border-radius:20px;max-width:none}.about-portrait img{height:auto;aspect-ratio:1.06;object-position:50% 39%}.about-copy>.chapter-label{margin-bottom:16px}.about h2{font-size:38px}.about-copy>p:not(.chapter-label){font-size:17px;margin-top:20px}
.section-heading{grid-template-columns:1fr}.section-heading h2{font-size:35px}.offerings{padding-top:16px}.offer{padding-block:28px}.offer h3{font-size:28px}.offer-copy{padding-top:4px}
.contact h2{max-width:14ch}.gallery-arrows{gap:12px}
}

@media(max-width:700px){.site-header .brand{width:min(228px,calc(100% - 60px))}.menu-button{width:44px;min-width:44px;padding:0;justify-content:center}.menu-button>span{display:none}}

/* Compact opening: the personal introduction belongs beside the portrait. */
.hero{display:block;padding-block:20px 28px}
.hero h1{font-size:clamp(44px,6vw,82px);line-height:1.12;margin:0;letter-spacing:-.045em;text-wrap:balance}
.hero .hero-lede{font-size:16px;line-height:1.6;max-width:none;margin:16px 0 0;color:var(--accent)}
@media(max-width:700px){.hero{padding-block:16px 24px}.hero h1{font-size:clamp(42px,10.8vw,64px)}.hero .hero-lede{font-size:14px;max-width:30ch;margin-top:12px}}

/* The italic Alegreya headings pair with its softer sans-serif companion. */
h1,h2,h3,.hero h1{font-style:italic;letter-spacing:-.015em}

/* Full-width color transitions, following the user's wave reference. */
.section-wave{--wave-from:var(--surface-rose);--wave-to:var(--surface-cream);position:relative;height:clamp(40px,6vw,88px);background:var(--wave-from);pointer-events:none}
.section-wave::after{content:"";position:absolute;inset:0 0 -1px;background:var(--wave-to);mask:url("assets/section-wave.svg") 0 0/100% 100% no-repeat;-webkit-mask:url("assets/section-wave.svg") 0 0/100% 100% no-repeat}
.section-wave--rose{--wave-from:var(--surface-cream);--wave-to:var(--surface-rose)}
.section-wave--rose::after{transform:scaleX(-1)}

/* Section titles stand on their own without a separate label column. */
.hero h1{max-width:none;font-size:clamp(2.625rem,5.6vw,4.75rem)}
.section-heading,.works-heading{display:block}
.works-heading h2{max-width:none}
.works-heading>p:last-child{margin-top:16px;max-width:48ch;font-size:17px}
.contact h2{margin-top:0}

/* Shared heading sizes keep the italic hierarchy consistent. */
.about h2,.section-heading h2,.works h2,.contact h2{font-size:clamp(2.25rem,4.3vw,3.5rem);line-height:1.15;max-width:none}
.offer h3{font-size:clamp(1.75rem,2.8vw,2.5rem);line-height:1.2;max-width:none}
