@font-face{font-family:"PP Woodland";src:url("/assets/fonts/PPWoodland-Bold.otf") format("opentype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Neue Montreal";src:url("/assets/fonts/NeueMontreal-Regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
:root{--paper:#f9f9f5;--ink:#25271f;--gutter:28px;--font:"Neue Montreal",Arial,sans-serif;--font-heading:"PP Woodland",Georgia,serif;color-scheme:light;font-family:var(--font);font-weight:400;color:var(--ink);background:var(--ink)}
*{box-sizing:border-box}
html,body{margin:0;min-width:280px}
body{font-size:1.25rem;line-height:1.25}
h1,h2,h3,h4,h5,h6,.gallery-caption,.editorial-copy .lead{font-family:var(--font-heading);font-weight:700;text-transform:uppercase}
button,a,summary{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none;text-underline-offset:.22em}
a:hover{text-decoration:underline}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:5px}
img{display:block;max-width:100%;height:auto}
[hidden]{display:none!important}
.text-button{background:none;border:0;padding:0;min-height:44px}
.eyebrow{font-size:clamp(.875rem,1.45vw,1.125rem);text-transform:uppercase;letter-spacing:.015em}
.site-shell{position:relative;min-height:640px;height:100svh;color:#fff}
.site-header{position:absolute;z-index:5;top:0;left:0;right:0;padding:24px var(--gutter);display:grid;grid-template-columns:1fr min(38vw,490px) 1fr;align-items:start;gap:20px}
.header-contact{justify-self:start;display:flex;align-items:center;min-height:44px}
.brand{display:block;margin:0;line-height:0;padding-top:2px}
.brand img{width:100%;filter:invert(1)}
.brand:is(:hover,:active,:focus-visible) img,.content-page .brand img{filter:none}
.site-menu{justify-self:end;position:relative}
.menu-trigger{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:44px;list-style:none;cursor:pointer}
.menu-trigger::-webkit-details-marker{display:none}
.menu-symbol{font-size:1rem;line-height:1;transition:transform .2s ease}
.site-menu[open] .menu-symbol{transform:rotate(180deg)}
.menu-dropdown{position:absolute;right:0;top:calc(100% + 12px);min-width:250px;width:max-content;max-width:calc(100vw - 2 * var(--gutter));max-height:calc(100svh - 160px);overflow-y:auto;overscroll-behavior:contain;background:var(--paper);color:var(--ink);padding:20px 24px 22px;box-shadow:0 6px 22px #0002;border:1px solid #25271f20;display:flex;flex-direction:column}
.menu-dropdown a{font-size:1.6rem;line-height:1.2;padding:10px 0;min-height:44px}
.menu-dropdown a[aria-current="page"]{font-style:italic;text-decoration:underline}
main{outline:none}
.home-main{height:100%}
.gallery{position:relative;height:100%;isolation:isolate;overflow:hidden;touch-action:pan-y}
.gallery-slide{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;background:#292d23}
.image-panel{height:100%;overflow:hidden}
.image-panel img{height:100%;width:100%;object-fit:cover;object-position:50% 50%}
.image-panel-detail img{object-position:50% 44%}
.gallery-slide.is-active{animation:reveal .5s ease both}
.gallery-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0006,transparent 32%,transparent 55%,#0009)}
.gallery-caption{position:absolute;bottom:92px;left:var(--gutter);right:var(--gutter);margin:0;text-align:center;font-size:calc(clamp(1.4rem,2.7vw,2.6rem) * .9);letter-spacing:-.025em;text-shadow:0 1px 8px #0006}
.gallery-controls{position:absolute;z-index:2;left:50%;bottom:20px;transform:translateX(-50%);display:flex;align-items:center;gap:16px}
.gallery-controls button{width:44px;font-size:1.5rem}
.gallery-controls button:hover{transform:translateX(3px)}
.gallery-controls .gallery-previous:hover{transform:translateX(-3px)}
.gallery-count{font-size:1rem;margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.count-divider{padding:0 6px;opacity:.65}
.site-footer{position:absolute;z-index:2;bottom:0;left:0;right:0;padding:28px var(--gutter);display:flex;justify-content:space-between;gap:20px;pointer-events:none}
.site-footer a{pointer-events: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:10;top:12px;left:12px;padding:12px;background:var(--paper);color:var(--ink);transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0)}
.content-page{background:var(--paper);min-height:100svh;display:flex;flex-direction:column}
.content-page .site-header{position:relative;grid-template-columns:1fr min(29vw,340px) 1fr}
.page-main{width:100%;max-width:1800px;margin:0 auto;flex:1;padding:60px var(--gutter) 100px}
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:50px}
.page-title{line-height:1;letter-spacing:-.04em;font-size:calc(clamp(3.5rem,7vw,7rem) * .9);margin:0}
.page-heading p{max-width:350px;margin:0;font-size:1.125rem;line-height:1.4}
.catalog-note{color:#51534c}
.bouquet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 28px}
.bouquet-card{min-width:0}
.bouquet-photo{display:block;overflow:hidden;background:#e8e7e2;aspect-ratio:3/4}
.bouquet-photo img{height:100%;width:100%;object-fit:cover;transition:transform .4s ease}
.bouquet-photo:hover img{transform:scale(1.025)}
.bouquet-caption{display:flex;justify-content:space-between;align-items:baseline;gap:15px;margin:19px 0 8px}
.bouquet-caption h2,.bouquet-caption p{font-size:1.45rem;margin:0}.bouquet-caption h2{font-size:calc(1.45rem * .9)}
.bouquet-caption p{white-space:nowrap}
.bouquet-inquiry{display:inline-block;font-size:1rem;margin-top:8px;line-height:1.5;text-decoration:underline}
.catalog-footer{font-size:1rem;line-height:1.5;max-width:750px;margin:48px 0 0}
.editorial-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8vw;align-items:start}
.editorial-image{margin:0}
.editorial-image img{width:100%;height:auto;max-height:860px;object-fit:cover}
.editorial-image figcaption{font-size:.875rem;line-height:1.4;margin-top:12px;color:#51534c}
.editorial-copy{padding:30px 0;max-width:650px}
.editorial-copy .eyebrow{margin:0 0 28px}
.editorial-copy h1{margin-bottom:36px}
.editorial-copy .lead{font-size:calc(clamp(1.65rem,2.7vw,2.5rem) * .9);line-height:1.18;letter-spacing:-.02em;margin:0 0 28px}
.editorial-copy p{font-size:1.25rem;line-height:1.5;margin:0 0 25px}
.editorial-copy h2{font-size:calc(1rem * .9);text-transform:uppercase;letter-spacing:.025em;margin:45px 0 18px}
.client-list{padding:0;margin:0;list-style:none;display:flex;flex-wrap:wrap;gap:16px 28px;font-size:1.6rem;line-height:1.3}
.text-link{display:inline-block;text-decoration:underline;font-size:1.125rem;line-height:1.5;margin-top:18px}
.contact-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:6vw;padding-top:15px}
.contact-heading p{font-size:1.5rem;margin:30px 0 0;line-height:1.3}
.contact-details{margin:0;padding-top:7px}
.contact-row{padding:25px 0 30px;border-top:1px solid #25271f40}
.contact-row:first-child{padding-top:0;border-top:0}
.contact-row dt{font-size:.9375rem;text-transform:uppercase;margin-bottom:12px}
.contact-row dd{margin:0;font-size:clamp(1.25rem,2.5vw,2rem);line-height:1.3;overflow-wrap:anywhere}
.page-footer{display:flex;justify-content:space-between;gap:25px;margin:0 var(--gutter);padding:24px 0;border-top:1px solid #25271f40;font-size:.875rem;line-height:1.4;text-transform:uppercase}
@keyframes reveal{from{opacity:.35}to{opacity:1}}
@media(min-width:1600px){:root{--gutter:40px}.site-header{padding-top:32px}.site-footer{padding-bottom:34px}.gallery-controls{bottom:26px}}
@media(max-width:1000px){.editorial-layout{gap:5vw}.editorial-copy{padding-top:0}.editorial-copy .page-title{font-size:calc(clamp(3rem,6vw,5rem) * .9)}.editorial-copy p{font-size:1.125rem}.client-list{font-size:1.35rem}.bouquet-caption{flex-wrap:wrap;gap:5px 12px}.bouquet-caption h2,.bouquet-caption p{font-size:1.25rem}.bouquet-caption h2{font-size:calc(1.25rem * .9)}}
/* Desktop proportions: one shared content width, compact navigation, complete
   product/portrait photographs and reading columns independent of screen size. */
@media(min-width:701px){
  :root{--gutter:clamp(28px,3vw,56px);--page-width:1440px}
  .site-shell{min-height:560px}
  .site-header{grid-template-columns:minmax(0,1fr) clamp(280px,min(29vw,44svh),440px) minmax(0,1fr);align-items:center;padding-block:24px}
  .header-contact,.menu-trigger{font-size:1rem;letter-spacing:.04em}
  .brand{padding:0}
  .menu-trigger{gap:14px;padding:4px 0 4px 20px}
  .menu-dropdown{width:clamp(270px,20vw,320px);min-width:0;padding:15px 24px 18px;max-height:calc(100svh - 185px)}
  .menu-dropdown a{font-size:1.375rem;padding:11px 0;line-height:1.2}
  .menu-dropdown a:hover{text-decoration:none;background:#25271f0a}
  .gallery-caption{font-size:calc(clamp(1.75rem,2.25vw,2.625rem) * .9);bottom:88px;line-height:1.2}
  .gallery-controls{bottom:21px;gap:20px}
  .site-footer{padding-block:30px;font-size:1rem;letter-spacing:.025em}
  .image-panel-space img{object-position:50% 55%}
  .content-page .site-header{width:min(100%,var(--page-width));margin-inline:auto;grid-template-columns:minmax(0,1fr) clamp(220px,18vw,270px) minmax(0,1fr);padding-block:20px}
  .page-main{max-width:var(--page-width);padding-top:28px;padding-bottom:64px}
  .page-heading{gap:48px;margin-bottom:30px;align-items:center}
  .page-title{font-size:calc(clamp(3.5rem,4.7vw,5rem) * .9);line-height:1.05;letter-spacing:-.035em}
  .page-heading p{font-size:1rem;max-width:340px;line-height:1.5}
  .bouquet-grid{gap:32px;align-items:start}
  .bouquet-card{width:100%;max-width:calc(clamp(300px,calc(100svh - 390px),560px) * .75);justify-self:center}
  .bouquet-photo{background:transparent}
  .bouquet-photo img{object-fit:contain;object-position:center top}
  .bouquet-caption{margin-top:16px;gap:12px;flex-wrap:wrap}
  .bouquet-caption h2,.bouquet-caption p{font-size:1.25rem;line-height:1.3}.bouquet-caption h2{font-size:calc(1.25rem * .9)}
  .bouquet-inquiry{font-size:.9375rem;margin-top:6px}
  .catalog-footer{margin-top:36px;max-width:720px;font-size:.9375rem}
  .editorial-layout{max-width:1180px;margin-inline:auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,5vw,88px);align-items:center}
  .editorial-image{width:min(100%,calc(clamp(360px,61svh,660px) * .72));justify-self:center}
  .editorial-image img{width:100%;height:auto;max-height:none;object-fit:contain}
  .editorial-image figcaption{font-size:.8125rem;line-height:1.4}
  .editorial-copy{padding:0;max-width:34rem}
  .editorial-copy .eyebrow{font-size:.9375rem;margin-bottom:20px}
  .editorial-copy .lead{font-size:calc(clamp(1.75rem,2.2vw,2.375rem) * .9);line-height:1.2;max-width:25ch;margin-bottom:24px}
  .editorial-copy p{font-size:clamp(1.125rem,1.15vw,1.25rem);line-height:1.55;margin-bottom:22px}
  .editorial-copy h2{font-size:calc(.9375rem * .9);margin-top:30px;margin-bottom:16px}
  .client-list{font-size:1.375rem;gap:12px 24px}
  .text-link{font-size:1rem;margin-top:12px}
  .contact-layout{max-width:1180px;margin-inline:auto;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(48px,6vw,96px);padding-top:12px}
  .contact-heading p{font-size:1.375rem;line-height:1.4;margin-top:24px}
  .contact-row{padding:22px 0 26px}
  .contact-row dd{font-size:clamp(1.25rem,1.8vw,1.75rem);line-height:1.4}
  .page-footer{width:min(calc(100% - 2 * var(--gutter)),calc(var(--page-width) - 2 * var(--gutter)));margin-inline:auto;padding-block:22px;font-size:.875rem;letter-spacing:.025em}
}
@media(min-width:701px) and (max-height:700px){
  .site-header{grid-template-columns:1fr 280px 1fr;padding-block:18px}
  .content-page .site-header{grid-template-columns:1fr 210px 1fr;padding-block:16px}
  .page-main{padding-top:20px}
  .page-heading{margin-bottom:24px}
  .page-title{font-size:calc(3.5rem * .9)}
  .gallery-caption{bottom:78px;font-size:calc(1.75rem * .9)}
}
@media(max-width:700px){
:root{--gutter:18px}
.site-shell{min-height:570px}
.site-header,.content-page .site-header{padding-top:17px;grid-template-columns:1fr 1fr;gap:17px}
.header-contact{grid-column:1;grid-row:1}
.site-menu{grid-column:2;grid-row:1}
.brand{grid-column:1/-1;grid-row:2;width:100%;max-width:450px;justify-self:center;padding:0 3px}
.content-page .brand{max-width:380px}
.menu-dropdown{min-width:230px;max-height:calc(100svh - 95px);overflow-y:auto}
.menu-dropdown a{font-size:1.45rem}
.gallery-slide{grid-template-columns:1fr}
.image-panel-space{display:none}
.gallery-shade{background:linear-gradient(180deg,#0008,transparent 40%,transparent 50%,#000b)}
.gallery-caption{bottom:144px;font-size:calc(1.8rem * .9);max-width:300px;margin:auto;line-height:1.1}
.gallery-controls{bottom:80px}
.site-footer{padding-bottom:23px;font-size:.875rem;gap:25px}
.site-footer span{text-align:right}
.page-main{padding-top:35px;padding-bottom:65px}
.page-heading{display:block;margin-bottom:32px}
.page-title{font-size:calc(clamp(3rem,12vw,4.75rem) * .9)}
.page-heading p{font-size:1rem;margin-top:22px}
.bouquet-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px}
.bouquet-caption{display:block;margin-top:14px}
.bouquet-caption h2{font-size:calc(1.25rem * .9);margin-bottom:5px}
.bouquet-caption p,.bouquet-inquiry{font-size:.9375rem}
.editorial-layout{display:flex;flex-direction:column;gap:30px}
.editorial-image{width:100%}
.editorial-image img{max-height:none}
.editorial-copy{padding:0}
.editorial-copy .page-title{font-size:calc(3.25rem * .9)}
.editorial-copy .lead{font-size:calc(1.8rem * .9)}
.editorial-copy .eyebrow{margin-bottom:20px}
.editorial-copy h1{margin-bottom:25px}
.contact-layout{display:block;padding-top:0}
.contact-heading p{font-size:1.25rem;margin-top:22px}
.contact-details{margin-top:50px;padding:0}
.contact-row dd{font-size:1.35rem}
.page-footer{font-size:.875rem;gap:18px}
.page-footer span{text-align:right}
}
@media(max-width:380px){.bouquet-grid{grid-template-columns:1fr}.site-footer{gap:12px}.gallery-caption{font-size:calc(1.55rem * .9)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
