/* Source-aligned identity, photo-to-figurine storytelling, and accessible controls. */
.header-inner{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:91px;gap:20px}
.brand{grid-column:2;grid-row:1;justify-self:center;gap:9px;font-size:30px}
.brand-symbol{width:48px;height:48px;object-fit:contain}
.header-inner #main-navigation{grid-column:3;grid-row:1;justify-self:end;gap:17px}
.menu-toggle{grid-column:1;grid-row:1}
.home-carousel{position:relative;background:linear-gradient(115deg,#fbf8f3 0%,#f2eee4 53%,#eadfd2 100%);overflow:hidden}
.carousel-track{position:relative;min-height:650px}
.carousel-slide{position:absolute;inset:0;visibility:hidden;opacity:0;transition:opacity .45s ease,visibility .45s ease}
.carousel-slide.is-active{visibility:visible;opacity:1;z-index:1}
.carousel-inner{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:42px;min-height:620px;padding-block:28px 70px}
.hero-copy{max-width:550px;padding-block:25px}
.hero-copy h1,.hero-copy h2{font-size:clamp(39px,4vw,59px);line-height:1.08}
.hero-copy .hero-description{max-width:500px;font-size:15px;line-height:1.85;color:#274c50}
.hero-copy .hero-tagline{font-size:28px;margin-top:20px}
.hero-copy .actions{margin-top:26px}
.hero-note{margin-top:17px;font-size:12px}
.carousel-visual{position:relative;margin:0;min-width:0}
.carousel-visual img{width:100%;height:auto;max-height:520px;object-fit:contain;border-radius:7px;box-shadow:0 24px 70px #4b34231a}
.carousel-visual figcaption{position:absolute;right:12px;bottom:12px;max-width:330px;padding:6px 10px;background:#fbf8f3e8;color:#345357;border-radius:3px;font-size:10px;line-height:1.45}
.carousel-controls{position:relative;z-index:2;display:flex;justify-content:flex-end;align-items:center;gap:12px;min-height:48px;margin-top:-59px;padding-bottom:10px}
.carousel-controls>button{min-width:36px;min-height:36px;padding:7px 10px;border:1px solid #78918c;border-radius:50px;background:#fbf8f3;color:var(--teal);font-size:13px}
.carousel-controls>button:hover{background:#e8f0e9}
.carousel-controls>[data-carousel-pause]{border-radius:3px;padding-inline:12px}
.carousel-dots{display:flex;gap:7px;align-items:center}
.carousel-dots button{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:#b1c2b9}
.carousel-dots button[aria-current=true]{width:25px;border-radius:9px;background:var(--teal)}
.process-grid.process-illustrated{gap:28px;margin-top:32px}
.process-illustrated li{min-width:0}
.process-illustrated figure{margin:0 0 19px}
.process-illustrated figure img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:5px}
.process-illustrated figcaption{margin-top:6px;font-size:10px;color:var(--muted)}
.process-illustrated li>span{display:block}
.process-illustrated li h3{margin-top:8px}
.process-illustrated li p{margin-top:8px}
.occasion-grid .occasion-card{position:relative;display:block;min-height:0;aspect-ratio:1.12;overflow:hidden;padding:0;border-radius:5px;background:#e8e0d5}
.occasion-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s}
.occasion-card:hover img{transform:scale(1.035)}
.occasion-card::after{content:"";position:absolute;inset:38% 0 0;background:linear-gradient(transparent,#142e2dcc)}
.occasion-card .occasion-caption{position:absolute;z-index:1;left:12px;top:12px;background:#fbf8f3e8;padding:4px 7px;border-radius:2px;font:10px/1.35 var(--sans);color:#274c50}
.occasion-card .occasion-title{position:absolute;z-index:1;left:18px;right:43px;bottom:17px;color:#fff;font:22px/1.2 var(--serif)}
.occasion-card .occasion-arrow{position:absolute;z-index:1;right:17px;bottom:18px;color:#fff;font-size:20px}
.cookie-notice[hidden]{display:none!important}
.cookie-notice{position:fixed;z-index:99;left:20px;right:20px;bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:24px;max-width:960px;margin-inline:auto;padding:19px 22px;background:#fffdf8;border:1px solid #cbd8d1;border-radius:7px;box-shadow:0 10px 42px #173d4326}
.cookie-notice strong{font-size:14px}
.cookie-notice p{max-width:600px;margin:4px 0 5px;font-size:12px;color:var(--muted);line-height:1.55}
.cookie-notice a{font-size:12px;text-decoration:underline;text-underline-offset:3px}
.cookie-actions{display:flex;gap:9px;flex-shrink:0}
.cookie-actions button{border:1px solid var(--teal);border-radius:3px;padding:9px 12px;background:#fff;color:var(--teal);font-size:12px}
.cookie-actions button[data-analytics-choice=accept]{background:var(--teal);color:white}
.privacy-choice-link{display:block;margin:0 auto 18px;border:0;background:none;color:var(--muted);text-decoration:underline;text-underline-offset:3px;font-size:11px}
@media(max-width:1150px){
  .header-inner #main-navigation{gap:12px}
  .header-inner #main-navigation .nav-group .nav-trigger,.header-inner #main-navigation>a{font-size:12px}
  .brand{font-size:26px}
  .brand-symbol{width:42px;height:42px}
  .carousel-inner{gap:25px}
}
@media(max-width:950px){
  .header-inner{grid-template-columns:40px 1fr 40px;min-height:78px}
  .brand{grid-column:2;justify-self:center;font-size:28px}
  .brand-symbol{width:40px;height:40px}
  .menu-toggle{display:flex;grid-column:1;justify-self:start}
  .header-inner #main-navigation{grid-column:1/-1;grid-row:2;justify-self:stretch;top:100%;left:0;right:0}
  .carousel-track{min-height:590px}
  .carousel-inner{min-height:565px;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:18px}
  .hero-copy h1,.hero-copy h2{font-size:clamp(35px,5vw,46px)}
  .hero-copy .actions .button{font-size:12px;padding:12px 14px;gap:12px}
  .carousel-controls{margin-top:-53px}
}
@media(max-width:650px){
  .header-inner{grid-template-columns:40px 1fr 40px;min-height:70px}
  .brand{font-size:26px;gap:7px}
  .brand-symbol{width:36px;height:36px}
  .carousel-track{min-height:0}
  .carousel-slide{display:none;position:relative;inset:auto;visibility:visible;opacity:1}
  .carousel-slide.is-active{display:block}
  .carousel-inner{width:calc(100% - 36px);min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:14px;padding-block:30px 74px}
  .hero-copy{max-width:none;padding:0}
  .hero-copy h1,.hero-copy h2{font-size:37px}
  .hero-copy .eyebrow{font-size:9px;margin-bottom:13px}
  .hero-copy .hero-tagline{font-size:24px;margin-top:14px}
  .hero-copy .hero-description{font-size:13px;line-height:1.7;margin-top:12px}
  .hero-copy .actions{gap:8px;margin-top:17px}
  .hero-copy .actions .button{min-height:45px;font-size:11px;padding:10px 12px;gap:8px}
  .hero-note{font-size:10px;margin-top:11px}
  .carousel-visual{width:100%}
  .carousel-visual img{max-height:none}
  .carousel-visual figcaption{font-size:9px;right:7px;bottom:7px;max-width:245px}
  .carousel-controls{min-height:45px;margin-top:-58px;justify-content:center;gap:9px;padding-bottom:10px}
  .carousel-controls>button{min-width:32px;min-height:32px;font-size:12px}
  .carousel-controls>[data-carousel-pause]{padding-inline:9px}
  .carousel-dots{gap:5px}
  .carousel-dots button{width:8px;height:8px}
  .process-grid.process-illustrated{gap:22px}
  .process-illustrated figure{grid-column:1/-1;margin-bottom:10px}
  .process-illustrated li>span{grid-column:1;grid-row:2/4}
  .process-illustrated li h3{grid-column:2;grid-row:2}
  .process-illustrated li p{grid-column:2;grid-row:3;margin-top:7px}
  .occasion-grid .occasion-card{aspect-ratio:1/1.08}
  .occasion-card .occasion-title{font-size:17px;left:12px;right:32px;bottom:12px}
  .occasion-card .occasion-arrow{right:11px;bottom:12px;font-size:18px}
  .occasion-card .occasion-caption{font-size:9px;left:8px;top:8px}
  .cookie-notice{left:10px;right:10px;bottom:10px;display:block;padding:15px}
  .cookie-notice p{font-size:11px}
  .cookie-actions{margin-top:12px;justify-content:flex-end}
  .cookie-actions button{font-size:11px;padding:8px 9px}
}
@media(prefers-reduced-motion:reduce){
  .carousel-slide,.occasion-card img{transition:none}
}

/* Brand lockup and primary navigation balanced around the centered logo. */
.site-header .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;justify-content:initial;gap:20px;min-height:108px}
#main-navigation.nav-sides{display:contents}
.site-header .nav-side{display:flex;align-items:center;white-space:nowrap;font-size:13px}
.site-header .nav-left{grid-column:1;justify-self:end;gap:20px}
.site-header .nav-right{grid-column:3;justify-self:start;gap:16px}
.site-header .brand{grid-column:2;grid-row:1;gap:4px;font-size:38px;letter-spacing:-1.8px;line-height:1;justify-self:center}
.site-header .brand-symbol{width:76px;height:76px;max-width:none;object-fit:contain;flex:none}
.site-header .menu-toggle{display:none}
@media(max-width:1150px){.site-header .header-inner{gap:12px;min-height:98px}.site-header .nav-left{gap:14px}.site-header .nav-right{gap:12px;font-size:12px}.site-header .brand{font-size:34px}.site-header .brand-symbol{width:68px;height:68px}.site-header .nav-cta{padding:10px 11px}}
@media(max-width:950px){.site-header .header-inner{grid-template-columns:40px minmax(0,1fr) 40px;gap:0;min-height:86px}.site-header .menu-toggle{display:flex;grid-column:1;grid-row:1;width:40px;height:40px;z-index:2}.site-header .brand{grid-column:2;grid-row:1;justify-self:center;font-size:34px}.site-header .brand-symbol{width:66px;height:66px}#main-navigation.nav-sides{display:none;position:absolute;left:0;right:0;top:100%;z-index:30;background:var(--cream);padding:19px 32px 23px;border-bottom:1px solid var(--line);align-items:stretch;gap:14px;white-space:normal}#main-navigation.nav-sides.open{display:flex;flex-direction:column}.site-header .nav-side{display:flex;flex-direction:column;align-items:stretch;gap:7px;white-space:normal}.site-header .nav-left{padding-bottom:10px;border-bottom:1px solid var(--line)}.site-header .nav-right{padding-top:2px}.site-header .nav-side>a{padding:8px 0}.site-header .nav-trigger{width:100%;text-align:left;display:flex;justify-content:space-between;padding:8px 0}.site-header .nav-panel{position:static;box-shadow:none;min-width:0;background:#f3f4ed;border:0;margin-top:4px}.site-header .nav-cta{text-align:center;margin-top:5px}}
@media(max-width:650px){.site-header .header-inner{min-height:82px}.site-header .brand{font-size:31px;letter-spacing:-1.4px}.site-header .brand-symbol{width:60px;height:60px}#main-navigation.nav-sides{padding:16px 18px 20px}}
