/* /Components/Home/Gallery.razor.rz.scp.css */
/* Rows wrap and a shorter last row is centred, so the grid looks complete with any number of photos */
.gallery__grid[b-3j9xee5kzg] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-sm);
}

.gallery__grid > li[b-3j9xee5kzg] {
    flex: 0 0 calc((100% - var(--space-sm)) / 2);
}

.gallery__item[b-3j9xee5kzg] {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    padding: 0;
    overflow: hidden;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-sm);
    background: var(--color-cream-dark);
    transition: box-shadow var(--transition-base), transform var(--transition-base);
}

.gallery__item[b-3j9xee5kzg]  .gallery__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

.gallery__item[b-3j9xee5kzg]::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(to top, rgba(62, 39, 35, 0.35), transparent 50%);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.gallery__zoom[b-3j9xee5kzg] {
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(253, 246, 236, 0.92);
    color: var(--color-brown-dark);
    box-shadow: var(--shadow-sm);
    opacity: 0;
    transform: translateY(6px) scale(0.9);
    transition: opacity var(--transition-base), transform var(--transition-base);
}

.gallery__zoom svg[b-3j9xee5kzg] {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.gallery__item:hover[b-3j9xee5kzg],
.gallery__item:focus-visible[b-3j9xee5kzg] {
    box-shadow: var(--shadow-hover);
    transform: translateY(-3px);
}

.gallery__item:hover[b-3j9xee5kzg]  .gallery__img,
.gallery__item:focus-visible[b-3j9xee5kzg]  .gallery__img {
    transform: scale(1.05);
}

.gallery__item:hover[b-3j9xee5kzg]::after,
.gallery__item:focus-visible[b-3j9xee5kzg]::after,
.gallery__item:hover .gallery__zoom[b-3j9xee5kzg],
.gallery__item:focus-visible .gallery__zoom[b-3j9xee5kzg] {
    opacity: 1;
    transform: none;
}

/* Touch screens have no hover: keep the zoom hint visible */
@media (hover: none) {
    .gallery__zoom[b-3j9xee5kzg] {
        opacity: 1;
        transform: none;
        width: 32px;
        height: 32px;
    }
}

@media (min-width: 720px) {
    .gallery__grid[b-3j9xee5kzg] {
        gap: var(--space-md);
    }

    .gallery__grid > li[b-3j9xee5kzg] {
        flex-basis: calc((100% - 3 * var(--space-md)) / 4);
    }
}
/* /Components/HowTo/DeliveryAnimation.razor.rz.scp.css */
/* The base styles are a complete still scene: with reduced motion the animations are cut short and this is what stays */
.delivery-scene[b-2h3tkkdug1] {
    display: block;
    width: 100%;
    height: 100%;
}

.delivery-scene__glow[b-2h3tkkdug1] {
    fill: var(--color-gold-light);
    opacity: 0.35;
    transform-box: fill-box;
    transform-origin: center;
    animation: deliveryGlow-b-2h3tkkdug1 5s ease-in-out infinite alternate;
}

.delivery-scene__sun[b-2h3tkkdug1] {
    fill: #F1DDB3;
}

.delivery-scene__cloud[b-2h3tkkdug1] {
    fill: var(--color-white);
    opacity: 0.9;
    animation: deliveryCloud-b-2h3tkkdug1 16s ease-in-out infinite alternate;
}

.delivery-scene__cloud--slow[b-2h3tkkdug1] {
    animation-duration: 22s;
    animation-direction: alternate-reverse;
}

.delivery-scene__hill-far[b-2h3tkkdug1] {
    fill: #F3E4CC;
}

.delivery-scene__hill[b-2h3tkkdug1],
.delivery-scene__ground[b-2h3tkkdug1] {
    fill: var(--color-gold-light);
}

.delivery-scene__route[b-2h3tkkdug1] {
    fill: none;
    stroke: var(--color-gold-dark);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 0.1 9.9;
    animation: deliveryRoute-b-2h3tkkdug1 0.9s linear infinite;
}

.delivery-scene__twinkle[b-2h3tkkdug1] {
    fill: var(--color-gold);
    transform-box: fill-box;
    transform-origin: center;
    animation: deliveryTwinkle-b-2h3tkkdug1 2.8s ease-in-out infinite;
}

.delivery-scene__twinkle--late[b-2h3tkkdug1] {
    animation-delay: -1.4s;
}

.delivery-scene__pin[b-2h3tkkdug1] {
    animation: deliveryPin-b-2h3tkkdug1 2.4s ease-in-out infinite alternate;
}

.delivery-scene__pin-body[b-2h3tkkdug1] {
    fill: var(--color-gold);
    stroke: var(--color-brown-dark);
    stroke-width: 2.5;
    stroke-linejoin: round;
}

.delivery-scene__pin-heart[b-2h3tkkdug1] {
    fill: #F7ECEE;
}

.delivery-scene__pin-shadow[b-2h3tkkdug1] {
    fill: var(--color-brown-dark);
    opacity: 0.15;
    transform-box: fill-box;
    transform-origin: center;
    animation: deliveryPinShadow-b-2h3tkkdug1 2.4s ease-in-out infinite alternate;
}

.delivery-scene__road[b-2h3tkkdug1] {
    fill: #DCC6A2;
}

.delivery-scene__road-edge[b-2h3tkkdug1] {
    stroke: var(--color-gold);
    stroke-width: 2;
}

.delivery-scene__lane[b-2h3tkkdug1] {
    fill: var(--color-cream);
    animation: deliveryLane-b-2h3tkkdug1 0.7s linear infinite;
}

.delivery-scene__puff[b-2h3tkkdug1] {
    fill: var(--color-white);
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    animation: deliveryPuff-b-2h3tkkdug1 1.4s ease-out infinite;
}

.delivery-scene__puff--late[b-2h3tkkdug1] {
    animation-delay: -0.7s;
}

.delivery-scene__van[b-2h3tkkdug1] {
    animation: deliveryVan-b-2h3tkkdug1 0.5s ease-in-out infinite alternate;
}

.delivery-scene__van-part[b-2h3tkkdug1] {
    fill: #FFF8EE;
    stroke: var(--color-brown-dark);
    stroke-width: 3;
    stroke-linejoin: round;
}

.delivery-scene__van-window[b-2h3tkkdug1] {
    fill: var(--color-pink-light);
    stroke: var(--color-brown-dark);
    stroke-width: 2.5;
    stroke-linejoin: round;
}

.delivery-scene__van-stripe[b-2h3tkkdug1] {
    fill: var(--color-gold);
}

.delivery-scene__van-light[b-2h3tkkdug1] {
    fill: var(--color-gold-light);
}

.delivery-scene__van-logo[b-2h3tkkdug1] {
    fill: #F7ECEE;
    stroke: var(--color-brown-dark);
    stroke-width: 2;
    stroke-linejoin: round;
}

.delivery-scene__van-dot[b-2h3tkkdug1] {
    fill: var(--color-gold);
}

.delivery-scene__wheel[b-2h3tkkdug1] {
    fill: var(--color-brown-dark);
    transform-box: fill-box;
    transform-origin: center;
    animation: deliveryWheel-b-2h3tkkdug1 0.8s linear infinite;
}

.delivery-scene__hub[b-2h3tkkdug1] {
    fill: var(--color-gold-light);
}

.delivery-scene__spokes[b-2h3tkkdug1] {
    stroke: var(--color-brown-dark);
    stroke-width: 1.6;
    stroke-linecap: round;
}

@keyframes deliveryGlow-b-2h3tkkdug1 {
    to { transform: scale(1.12); opacity: 0.55; }
}

@keyframes deliveryCloud-b-2h3tkkdug1 {
    from { transform: translateX(-14px); }
    to { transform: translateX(18px); }
}

/* One dash period (10), so the loop is seamless; the dots travel from the van to the pin */
@keyframes deliveryRoute-b-2h3tkkdug1 {
    from { stroke-dashoffset: 0; }
    to { stroke-dashoffset: -10; }
}

@keyframes deliveryTwinkle-b-2h3tkkdug1 {
    0%, 100% { transform: scale(0.6); opacity: 0.5; }
    50% { transform: scale(1.1); opacity: 1; }
}

@keyframes deliveryPin-b-2h3tkkdug1 {
    to { transform: translateY(-6px); }
}

@keyframes deliveryPinShadow-b-2h3tkkdug1 {
    to { transform: scale(0.75); opacity: 0.08; }
}

/* One lane-mark period (44), so the loop is seamless */
@keyframes deliveryLane-b-2h3tkkdug1 {
    to { transform: translateX(-44px); }
}

@keyframes deliveryPuff-b-2h3tkkdug1 {
    0% { opacity: 0.9; transform: none; }
    100% { opacity: 0; transform: translate(-26px, -6px) scale(1.8); }
}

@keyframes deliveryVan-b-2h3tkkdug1 {
    to { transform: translateY(-1.5px); }
}

@keyframes deliveryWheel-b-2h3tkkdug1 {
    to { transform: rotate(360deg); }
}
/* /Components/HowTo/GiftBoxAnimation.razor.rz.scp.css */
/* The base styles are the closed box: with reduced motion the animations are cut short and this is what stays */
.gift[b-enos064k4m] {
    display: block;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 50% 38%, var(--color-white) 0%, var(--color-cream) 55%, var(--color-gold-light) 100%);
    --gift-loop: 7s;
}

.gift__shadow[b-enos064k4m] {
    fill: var(--color-brown-dark);
    opacity: 0.1;
}

.gift__body[b-enos064k4m] {
    transform-box: fill-box;
    transform-origin: center bottom;
    animation: giftLand-b-enos064k4m var(--gift-loop) ease-out infinite;
}

.gift__inside[b-enos064k4m] {
    fill: #A97E52;
}

.gift__box[b-enos064k4m] {
    fill: #E3C597;
}

.gift__lid-top[b-enos064k4m] {
    fill: #EBD2A6;
}

.gift__ribbon[b-enos064k4m] {
    fill: var(--color-pink);
}

.gift__outline[b-enos064k4m],
.gift__cookie-icing[b-enos064k4m],
.gift__bow[b-enos064k4m],
.gift__knot[b-enos064k4m] {
    stroke: var(--color-brown-dark);
    stroke-width: 2.5;
    stroke-linejoin: round;
}

.gift__outline[b-enos064k4m] {
    fill: none;
}

.gift__bow[b-enos064k4m] {
    fill: var(--color-pink);
    stroke-width: 2;
}

.gift__knot[b-enos064k4m] {
    fill: var(--color-pink-dark);
    stroke-width: 2;
}

.gift__lid[b-enos064k4m] {
    transform-box: fill-box;
    transform-origin: center;
    animation: giftLid-b-enos064k4m var(--gift-loop) ease-in-out infinite;
}

.gift__cookie[b-enos064k4m] {
    transform-box: fill-box;
    transform-origin: center;
    animation: giftCookie-b-enos064k4m var(--gift-loop) ease-in-out infinite;
}

.gift__cookie-icing[b-enos064k4m] {
    fill: #F7ECEE;
}

.gift__cookie-dot[b-enos064k4m] {
    fill: var(--color-gold);
}

.gift__heart[b-enos064k4m] {
    fill: var(--color-pink);
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    animation: giftHeart-b-enos064k4m var(--gift-loop) ease-out infinite;
}

.gift__heart-float:nth-of-type(2) .gift__heart[b-enos064k4m] {
    animation-delay: 0.3s;
    --drift: 10px;
}

.gift__heart-float:nth-of-type(3) .gift__heart[b-enos064k4m] {
    animation-delay: 0.6s;
    --drift: 4px;
}

/* 14-24%: the lid lifts, 22-32%: the cookie rises and sways, 56-66%: both go back, 66-73%: the box settles */
@keyframes giftLid-b-enos064k4m {
    0%, 14% { transform: none; }
    24% { transform: translateY(-54px) rotate(-6deg); }
    34% { transform: translateY(-50px) rotate(4deg); }
    44% { transform: translateY(-53px) rotate(-2deg); }
    56% { transform: translateY(-52px); }
    66%, 100% { transform: none; }
}

@keyframes giftCookie-b-enos064k4m {
    0%, 20% { transform: none; }
    32% { transform: translateY(-48px) rotate(-6deg); }
    40% { transform: translateY(-45px) rotate(5deg); }
    48% { transform: translateY(-48px) rotate(-3deg); }
    54% { transform: translateY(-47px); }
    62%, 100% { transform: none; }
}

@keyframes giftLand-b-enos064k4m {
    0%, 66% { transform: none; }
    69% { transform: scale(1.02, 0.96); }
    73%, 100% { transform: none; }
}

@keyframes giftHeart-b-enos064k4m {
    0%, 28% { opacity: 0; transform: scale(0.5); }
    34% { opacity: 1; transform: scale(1); }
    54%, 100% { opacity: 0; transform: translate(var(--drift, -8px), -40px) scale(1.1); }
}
/* /Components/HowTo/IcingAnimation.razor.rz.scp.css */
/* The base styles are the finished cookie: with reduced motion the animations are cut short and this is what stays */
.icing[b-x1ppbwd0wi] {
    display: block;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 50% 38%, var(--color-white) 0%, var(--color-cream) 55%, var(--color-pink-light) 100%);
    --icing-loop: 9s;
}

.icing__shadow[b-x1ppbwd0wi] {
    fill: var(--color-brown-dark);
    opacity: 0.1;
}

.icing__dough[b-x1ppbwd0wi] {
    fill: #E9C08A;
    stroke: var(--color-brown-dark);
    stroke-width: 2.5;
    stroke-linejoin: round;
}

.icing__flood[b-x1ppbwd0wi] {
    fill: var(--color-pink-light);
    transform-box: fill-box;
    transform-origin: center;
    animation: icingFlood-b-x1ppbwd0wi var(--icing-loop) ease-out infinite;
}

.icing__outline[b-x1ppbwd0wi] {
    fill: none;
    stroke: var(--color-pink);
    stroke-width: 6;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 101;
    animation: icingPipe-b-x1ppbwd0wi var(--icing-loop) linear infinite;
}

.icing__shine[b-x1ppbwd0wi] {
    fill: var(--color-white);
    opacity: 0;
    animation: icingShine-b-x1ppbwd0wi var(--icing-loop) ease-in-out infinite;
}

.icing__dot[b-x1ppbwd0wi] {
    fill: var(--color-gold);
    transform-box: fill-box;
    transform-origin: center;
    animation: icingDot-b-x1ppbwd0wi var(--icing-loop) ease-out infinite;
}

.icing__dot:nth-of-type(2)[b-x1ppbwd0wi] { animation-delay: 0.12s; }
.icing__dot:nth-of-type(3)[b-x1ppbwd0wi] { animation-delay: 0.24s; }
.icing__dot:nth-of-type(4)[b-x1ppbwd0wi] { animation-delay: 0.36s; }
.icing__dot:nth-of-type(5)[b-x1ppbwd0wi] { animation-delay: 0.48s; }

.icing__bag[b-x1ppbwd0wi] {
    opacity: 0;
    animation: icingBag-b-x1ppbwd0wi var(--icing-loop) linear infinite;
}

.icing__bag-body[b-x1ppbwd0wi] {
    fill: var(--color-white);
    stroke: var(--color-brown-dark);
    stroke-width: 2;
    stroke-linejoin: round;
}

.icing__bag-filling[b-x1ppbwd0wi] {
    fill: var(--color-pink);
    opacity: 0.85;
}

.icing__bag-tie[b-x1ppbwd0wi] {
    fill: none;
    stroke: var(--color-brown-dark);
    stroke-width: 2;
    stroke-linecap: round;
}

.icing__bag-nozzle[b-x1ppbwd0wi] {
    fill: var(--color-gold);
    stroke: var(--color-brown-dark);
    stroke-width: 1.5;
    stroke-linejoin: round;
}

/* 6-46%: the outline is piped, 47-56%: flooded, 58-66%: sprinkled, 70-82%: shine, 90-96%: fades out for the next round */
@keyframes icingPipe-b-x1ppbwd0wi {
    0%, 6% { stroke-dashoffset: 102; opacity: 1; }
    46% { stroke-dashoffset: 0; }
    90% { stroke-dashoffset: 0; opacity: 1; }
    96%, 100% { stroke-dashoffset: 0; opacity: 0; }
}

@keyframes icingFlood-b-x1ppbwd0wi {
    0%, 47% { opacity: 0; transform: scale(0.92); }
    56% { opacity: 1; transform: none; }
    90% { opacity: 1; transform: none; }
    96%, 100% { opacity: 0; transform: none; }
}

@keyframes icingDot-b-x1ppbwd0wi {
    0%, 58% { opacity: 0; transform: scale(0); }
    62% { opacity: 1; transform: scale(1.3); }
    65% { opacity: 1; transform: none; }
    90% { opacity: 1; transform: none; }
    96%, 100% { opacity: 0; transform: none; }
}

@keyframes icingShine-b-x1ppbwd0wi {
    0%, 70% { opacity: 0; transform: translateX(20px) skewX(-20deg); }
    72% { opacity: 0.55; }
    82% { opacity: 0.55; transform: translateX(190px) skewX(-20deg); }
    83%, 100% { opacity: 0; transform: translateX(190px) skewX(-20deg); }
}

/* The nozzle follows the outline at equal steps along its length, in time with the piping above */
@keyframes icingBag-b-x1ppbwd0wi {
    0% { opacity: 0; transform: translate(128px, 128px); animation-timing-function: ease-out; }
    6% { opacity: 1; transform: translate(100px, 147.7px); }
    7% { transform: translate(93.5px, 142.9px); }
    8% { transform: translate(87.1px, 137.9px); }
    9% { transform: translate(80.7px, 132.8px); }
    10% { transform: translate(74.5px, 127.5px); }
    11% { transform: translate(68.6px, 122px); }
    12% { transform: translate(63.1px, 116.1px); }
    13% { transform: translate(58px, 109.7px); }
    14% { transform: translate(53.7px, 102.8px); }
    15% { transform: translate(50.5px, 95.4px); }
    16% { transform: translate(48.5px, 87.5px); }
    17% { transform: translate(47.9px, 79.4px); }
    18% { transform: translate(49.2px, 71.4px); }
    19% { transform: translate(52.7px, 64.1px); }
    20% { transform: translate(58.2px, 58.1px); }
    21% { transform: translate(65.2px, 54.1px); }
    22% { transform: translate(73.1px, 52.3px); }
    23% { transform: translate(81.2px, 53px); }
    24% { transform: translate(88.6px, 56px); }
    25% { transform: translate(95px, 61.1px); }
    26% { transform: translate(100px, 67.4px); }
    27% { transform: translate(105px, 61.1px); }
    28% { transform: translate(111.4px, 56px); }
    29% { transform: translate(118.8px, 53px); }
    30% { transform: translate(126.9px, 52.3px); }
    31% { transform: translate(134.8px, 54.1px); }
    32% { transform: translate(141.8px, 58.1px); }
    33% { transform: translate(147.3px, 64.1px); }
    34% { transform: translate(150.8px, 71.4px); }
    35% { transform: translate(152.1px, 79.4px); }
    36% { transform: translate(151.5px, 87.5px); }
    37% { transform: translate(149.5px, 95.4px); }
    38% { transform: translate(146.3px, 102.8px); }
    39% { transform: translate(142px, 109.7px); }
    40% { transform: translate(136.9px, 116.1px); }
    41% { transform: translate(131.4px, 122px); }
    42% { transform: translate(125.5px, 127.5px); }
    43% { transform: translate(119.3px, 132.8px); }
    44% { transform: translate(112.9px, 137.9px); }
    45% { transform: translate(106.5px, 142.9px); }
    46% { opacity: 1; transform: translate(100px, 147.7px); animation-timing-function: ease-in; }
    54%, 100% { opacity: 0; transform: translate(132px, 118px); }
}
/* /Components/Offer/PersonalisationAnimation.razor.rz.scp.css */
/* The SMIL timeline in the markup drives the cookie and the caption. The CSS loops here are ambient
   (light, float, sparkles); with reduced motion they are cut short and end on their resting frame. */
.studio[b-1z485fj7yc] {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(160deg, #FFFDF9 0%, var(--color-cream) 45%, #F8E4DA 100%);
}

/* Soft blurred lights drifting behind the cookie */
.studio__aurora span[b-1z485fj7yc] {
    position: absolute;
    border-radius: 50%;
    filter: blur(42px);
    opacity: 0.85;
    will-change: transform;
}

.studio__aurora span:nth-child(1)[b-1z485fj7yc] {
    width: 70%;
    aspect-ratio: 1;
    left: -18%;
    top: -12%;
    background: var(--color-pink-light);
    animation: studioDriftA-b-1z485fj7yc 16s ease-in-out infinite;
}

.studio__aurora span:nth-child(2)[b-1z485fj7yc] {
    width: 64%;
    aspect-ratio: 1;
    right: -20%;
    top: 28%;
    background: var(--color-gold-light);
    animation: studioDriftB-b-1z485fj7yc 19s ease-in-out infinite;
}

.studio__aurora span:nth-child(3)[b-1z485fj7yc] {
    width: 56%;
    aspect-ratio: 1;
    left: 10%;
    bottom: -18%;
    background: #FFFFFF;
    animation: studioDriftC-b-1z485fj7yc 23s ease-in-out infinite;
}

/* Fine grain over the gradient, like matte paper */
.studio[b-1z485fj7yc]::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    opacity: 0.22;
    mix-blend-mode: soft-light;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Frosted pill behind the caption; its box matches the caption area of the 400 x 500 scene */
.studio__glass[b-1z485fj7yc] {
    position: absolute;
    left: 25%;
    top: 81.6%;
    width: 50%;
    height: 9.2%;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.85);
    box-shadow: 0 8px 24px rgba(92, 61, 46, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.9);
    -webkit-backdrop-filter: blur(14px) saturate(1.4);
    backdrop-filter: blur(14px) saturate(1.4);
}

.studio__scene[b-1z485fj7yc] {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
}

.studio__shadow[b-1z485fj7yc] {
    fill: var(--color-brown-dark);
    opacity: 0.2;
    transform-box: fill-box;
    transform-origin: center;
    animation: studioShadow-b-1z485fj7yc 6s ease-in-out infinite;
}

.studio__float[b-1z485fj7yc] {
    animation: studioFloat-b-1z485fj7yc 6s ease-in-out infinite;
}

.studio__dough[b-1z485fj7yc] {
    stroke: #B57A45;
    stroke-opacity: 0.55;
    stroke-width: 1.5;
}

/* ===== Decorations ===== */
.studio__piping path[b-1z485fj7yc] {
    fill: none;
    stroke: var(--color-brown-dark);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1;
}

.studio__piping .studio__dot[b-1z485fj7yc] {
    fill: var(--color-brown-dark);
}

.studio__dot[b-1z485fj7yc] {
    fill: #DDB46A;
}

.studio__name[b-1z485fj7yc] {
    font-family: var(--font-accent);
    font-weight: 600;
    font-size: 76px;
    fill: #8B4A55;
}

.studio__swash[b-1z485fj7yc] {
    fill: none;
    stroke: var(--color-pink-dark);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 1;
}

.studio__pearl[b-1z485fj7yc] {
    fill: #DDB46A;
    stroke: #FFF6E3;
    stroke-width: 1.2;
}

.studio__leaf[b-1z485fj7yc] {
    fill: #A9C6A0;
}

.studio__petal[b-1z485fj7yc] {
    fill: #F2B3BC;
}

.studio__heart[b-1z485fj7yc] {
    fill: #F2B3BC;
    stroke: var(--color-pink-dark);
    stroke-width: 2;
    stroke-linejoin: round;
}

.studio__splash[b-1z485fj7yc] {
    fill: none;
    stroke: var(--color-white);
    stroke-width: 3;
}

/* ===== Bag ===== */
.studio__bag[b-1z485fj7yc] {
    fill: url(#studio-cellophane);
    stroke: var(--color-white);
    stroke-opacity: 0.9;
    stroke-width: 2;
    stroke-linejoin: round;
}

.studio__bag-crease[b-1z485fj7yc] {
    fill: none;
    stroke: var(--color-white);
    stroke-opacity: 0.7;
    stroke-width: 3;
    stroke-linecap: round;
}

.studio__bow[b-1z485fj7yc] {
    fill: #DDB46A;
    stroke: var(--color-gold-dark);
    stroke-width: 1.4;
    stroke-linejoin: round;
}

/* ===== Sparkles ===== */
.studio__sparkle[b-1z485fj7yc] {
    fill: var(--color-gold);
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(0);
    animation: studioTwinkle-b-1z485fj7yc 4.2s ease-in-out infinite;
}

g:nth-of-type(2) > .studio__sparkle[b-1z485fj7yc] { fill: var(--color-white); animation-delay: -1.1s; animation-duration: 5s; }
g:nth-of-type(3) > .studio__sparkle[b-1z485fj7yc] { animation-delay: -2.3s; animation-duration: 4.6s; }
g:nth-of-type(4) > .studio__sparkle[b-1z485fj7yc] { fill: var(--color-white); animation-delay: -3.2s; }
g:nth-of-type(5) > .studio__sparkle[b-1z485fj7yc] { animation-delay: -0.6s; animation-duration: 5.4s; }
g:nth-of-type(6) > .studio__sparkle[b-1z485fj7yc] { fill: var(--color-pink-dark); animation-delay: -2.8s; animation-duration: 3.8s; }
g:nth-of-type(7) > .studio__sparkle[b-1z485fj7yc] { fill: var(--color-white); animation-delay: -1.7s; animation-duration: 4.4s; }
g:nth-of-type(8) > .studio__sparkle[b-1z485fj7yc] { animation-delay: -3.6s; animation-duration: 5.2s; }

/* ===== Caption ===== */
.studio__label[b-1z485fj7yc] {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 19px;
    letter-spacing: 0.02em;
    fill: var(--text-primary);
}

.studio__progress-track[b-1z485fj7yc] {
    fill: var(--color-brown-dark);
    opacity: 0.12;
}

.studio__progress[b-1z485fj7yc] {
    fill: var(--color-gold-dark);
}

/* ===== Keyframes ===== */
@keyframes studioFloat-b-1z485fj7yc {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-9px); }
}

@keyframes studioShadow-b-1z485fj7yc {
    0%, 100% { transform: none; opacity: 0.2; }
    50% { transform: scale(0.88); opacity: 0.13; }
}

@keyframes studioTwinkle-b-1z485fj7yc {
    0%, 55%, 100% { transform: scale(0) rotate(0deg); opacity: 0; }
    70% { transform: scale(1) rotate(45deg); opacity: 1; }
    85% { transform: scale(0.2) rotate(90deg); opacity: 0; }
}

@keyframes studioDriftA-b-1z485fj7yc {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(18%, 14%) scale(1.15); }
}

@keyframes studioDriftB-b-1z485fj7yc {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(-22%, -16%) scale(0.9); }
}

@keyframes studioDriftC-b-1z485fj7yc {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(16%, -12%) scale(1.2); }
}
/* /Components/Shared/Footer.razor.rz.scp.css */
.footer[b-yfotdv3p4n] {
    background-color: var(--color-brown-dark);
    color: var(--color-cream);
    padding: var(--space-xl) 0 var(--space-lg);
}

.footer__grid[b-yfotdv3p4n] {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-lg);
    margin-bottom: var(--space-lg);
}

.footer ul[b-yfotdv3p4n] {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.footer__logo[b-yfotdv3p4n] {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 1.75rem;
    line-height: 1.2;
    color: var(--color-cream);
    margin-bottom: 0;
}

.footer__tagline[b-yfotdv3p4n] {
    font-size: 1.15rem;
    color: var(--color-gold-light);
    margin-bottom: var(--space-md);
}

.footer__desc[b-yfotdv3p4n] {
    color: rgba(253, 246, 236, 0.78);
    font-size: 0.95rem;
    line-height: 1.7;
    max-width: 36ch;
    margin-bottom: 0;
}

.footer__heading[b-yfotdv3p4n] {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--color-cream);
    margin-bottom: var(--space-md);
    position: relative;
    padding-bottom: var(--space-sm);
}

.footer__heading[b-yfotdv3p4n]::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 30px;
    height: 2px;
    background-color: var(--color-gold);
}

.footer__link[b-yfotdv3p4n] {
    display: inline-block;
    color: rgba(253, 246, 236, 0.82);
    font-size: 0.95rem;
    padding: 0.3rem 0;
    transition: color var(--transition-fast), transform var(--transition-fast);
}

.footer__link:hover[b-yfotdv3p4n] {
    color: var(--color-gold-light);
    transform: translateX(4px);
}

.footer__contact-item[b-yfotdv3p4n] {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    color: rgba(253, 246, 236, 0.82);
    font-size: 0.95rem;
    overflow-wrap: anywhere;
}

.footer__contact-item a[b-yfotdv3p4n] {
    padding: 0.3rem 0;
}

.footer__contact-item a:hover[b-yfotdv3p4n] {
    color: var(--color-gold-light);
}

.footer__contact-item svg[b-yfotdv3p4n] {
    color: var(--color-gold-light);
    flex-shrink: 0;
}

.footer__bottom[b-yfotdv3p4n] {
    border-top: 1px solid rgba(253, 246, 236, 0.12);
    padding-top: var(--space-lg);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-xs);
}

.footer__bottom p[b-yfotdv3p4n] {
    color: rgba(253, 246, 236, 0.65);
    font-size: 0.85rem;
    margin: 0;
}

.footer__legal-link[b-yfotdv3p4n] {
    color: rgba(253, 246, 236, 0.75);
    font-size: 0.85rem;
    padding: 0.3rem 0;
    text-decoration: underline;
    text-decoration-color: rgba(253, 246, 236, 0.3);
    text-underline-offset: 3px;
    transition: color var(--transition-fast), text-decoration-color var(--transition-fast);
}

.footer__legal-link:hover[b-yfotdv3p4n] {
    color: var(--color-gold-light);
    text-decoration-color: var(--color-gold-light);
}

@media (min-width: 769px) {
    .footer[b-yfotdv3p4n] {
        padding-top: var(--space-2xl);
    }

    .footer__grid[b-yfotdv3p4n] {
        grid-template-columns: 1.5fr 1fr 1fr;
        gap: var(--space-xl);
        margin-bottom: var(--space-xl);
    }
}
/* /Components/Shared/LanguageSwitcher.razor.rz.scp.css */
.lang-switcher[b-5kki3tzv9j] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-left: 1rem;
}

.lang-switcher__btn[b-5kki3tzv9j] {
    background: none;
    border: none;
    color: var(--color-text-light, #8B7355);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0.25rem 0.4rem;
    border-radius: 4px;
    transition: color 0.2s, background-color 0.2s;
    letter-spacing: 0.05em;
}

.lang-switcher__btn:hover[b-5kki3tzv9j] {
    color: var(--color-gold, #C9A96E);
}

.lang-switcher__btn--active[b-5kki3tzv9j] {
    color: var(--color-gold, #C9A96E);
    background-color: rgba(201, 169, 110, 0.1);
}

.lang-switcher__divider[b-5kki3tzv9j] {
    color: var(--color-text-light, #8B7355);
    opacity: 0.4;
    font-size: 0.85rem;
}
/* /Components/Shared/NavBar.razor.rz.scp.css */
.navbar[b-wyik36fg6j] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    height: var(--nav-height);
    border-bottom: 1px solid transparent;
    transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

/* The frosted background lives on a pseudo-element: backdrop-filter on .navbar itself
   would make it the containing block of the fixed mobile menu and clip it to the navbar height */
.navbar[b-wyik36fg6j]::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: rgba(253, 246, 236, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: background-color var(--transition-base);
}

.navbar--solid[b-wyik36fg6j] {
    box-shadow: var(--shadow-sm);
    border-bottom-color: rgba(201, 169, 110, 0.25);
}

.navbar--solid[b-wyik36fg6j]::before {
    background-color: rgba(253, 246, 236, 0.94);
}

.navbar__container[b-wyik36fg6j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    height: 100%;
}

/* Logo */
.navbar__logo[b-wyik36fg6j] {
    display: flex;
    align-items: center;
    flex: none;
    border-radius: var(--border-radius-sm);
    z-index: 101;
    transition: opacity 400ms ease, transform 400ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s;
}

.navbar__logo:hover[b-wyik36fg6j] {
    opacity: 0.8;
}

.navbar__logo-img[b-wyik36fg6j] {
    height: calc(var(--nav-height) - 14px);
    width: auto;
    display: block;
}

.navbar--over-hero[b-wyik36fg6j]::before {
    background-color: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.navbar--over-hero .navbar__logo[b-wyik36fg6j] {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 300ms ease, transform 300ms ease, visibility 0s linear 300ms;
}

/* Nav links */
.navbar__nav[b-wyik36fg6j] {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-left: auto;
}

.navbar__link[b-wyik36fg6j] {
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-primary);
    position: relative;
    padding: 0.5rem 0;
}

.navbar__link[b-wyik36fg6j]::after {
    content: '';
    position: absolute;
    bottom: 0.2rem;
    left: 0;
    width: 100%;
    height: 2px;
    border-radius: 1px;
    background-color: var(--color-gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-base);
}

.navbar__link:hover[b-wyik36fg6j] {
    color: var(--text-accent);
}

.navbar__link:hover[b-wyik36fg6j]::after,
.navbar__link--active[b-wyik36fg6j]::after {
    transform: scaleX(1);
}

.navbar__link--active[b-wyik36fg6j] {
    color: var(--text-accent);
}

.navbar__link--menu-only[b-wyik36fg6j] {
    display: none;
}

.navbar__actions[b-wyik36fg6j] {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    z-index: 101;
}

.navbar__cta[b-wyik36fg6j] {
    white-space: nowrap;
}

.navbar__cta--active[b-wyik36fg6j] {
    background-color: var(--color-brown-dark);
    color: var(--color-cream);
}

/* Burger */
.navbar__burger[b-wyik36fg6j] {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    margin-right: -10px;
    border-radius: var(--border-radius-sm);
    cursor: pointer;
}

.navbar__burger svg[b-wyik36fg6j] {
    display: block;
    flex: none;
    overflow: visible;
}

/* SVG strokes are antialiased evenly at any display scaling, unlike 2px boxes */
.navbar__burger line[b-wyik36fg6j] {
    stroke: var(--color-brown-dark);
    stroke-width: 2;
    stroke-linecap: round;
    transform-origin: 12px 12px;
    transition: transform 400ms cubic-bezier(0.65, 0, 0.35, 1), opacity 250ms ease;
}

.navbar__burger--open line:nth-child(1)[b-wyik36fg6j] {
    transform: rotate(45deg) translateY(6px);
}

.navbar__burger--open line:nth-child(2)[b-wyik36fg6j] {
    opacity: 0;
    transform: translateX(-10px);
}

.navbar__burger--open line:nth-child(3)[b-wyik36fg6j] {
    transform: rotate(-45deg) translateY(-6px);
}

/* Desktop: a little more room between the links and the order button */
@media (min-width: 901px) {
    .navbar__actions[b-wyik36fg6j] {
        margin-left: var(--space-md);
    }
}

/* Mobile & tablet: the links move into a full-screen menu below ~900px.
   Keep in sync with the scroll-lock breakpoint in app.css and interop.js */
@media (max-width: 900px) {
    .navbar__burger[b-wyik36fg6j] {
        display: flex;
    }

    .navbar__link--menu-only[b-wyik36fg6j] {
        display: block;
    }

    .navbar__nav[b-wyik36fg6j] {
        position: fixed;
        inset: 0;
        margin: 0;
        padding: var(--nav-height) var(--space-lg) var(--space-xl);
        background-color: var(--bg-primary);
        background-image:
            radial-gradient(circle at 15% 85%, rgba(232, 180, 184, 0.25) 0, transparent 45%),
            radial-gradient(circle at 85% 20%, rgba(232, 213, 168, 0.35) 0, transparent 45%);
        flex-direction: column;
        justify-content: flex-start;
        gap: 1.75rem;
        overflow-y: auto;
        overscroll-behavior: contain;
        z-index: 100;
        opacity: 0;
        visibility: hidden;
        /* Closing: fade out first, hide once the fade has finished */
        transition: opacity 300ms ease, visibility 0s linear 300ms;
    }

    .navbar__nav--open[b-wyik36fg6j] {
        opacity: 1;
        visibility: visible;
        transition: opacity 400ms ease, visibility 0s linear 0s;
    }

    .navbar__link[b-wyik36fg6j] {
        font-family: var(--font-heading);
        font-size: 1.6rem;
        font-weight: 600;
        letter-spacing: 0;
        text-transform: none;
        opacity: 0;
        transform: translateY(14px);
        transition: color var(--transition-fast), opacity 200ms ease, transform 200ms ease;
    }

    /* Opening: links rise in one after another */
    .navbar__nav--open .navbar__link[b-wyik36fg6j] {
        opacity: 1;
        transform: none;
        transition: color var(--transition-fast),
                    opacity 500ms cubic-bezier(0.22, 1, 0.36, 1) var(--link-delay, 0ms),
                    transform 500ms cubic-bezier(0.22, 1, 0.36, 1) var(--link-delay, 0ms);
    }

    /* Auto margins centre the list but, unlike justify-content: center, keep the
       first link reachable when it overflows (phones in landscape) */
    .navbar__link:first-child[b-wyik36fg6j] { margin-top: auto; }
    .navbar__link:last-child[b-wyik36fg6j] { margin-bottom: auto; }

    .navbar__nav--open .navbar__link:nth-child(1)[b-wyik36fg6j] { --link-delay: 80ms; }
    .navbar__nav--open .navbar__link:nth-child(2)[b-wyik36fg6j] { --link-delay: 130ms; }
    .navbar__nav--open .navbar__link:nth-child(3)[b-wyik36fg6j] { --link-delay: 180ms; }
    .navbar__nav--open .navbar__link:nth-child(4)[b-wyik36fg6j] { --link-delay: 230ms; }

    /* The menu covers the hero, so the logo comes back while it is open */
    .navbar--menu-open[b-wyik36fg6j]::before {
        background-color: transparent;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .navbar--menu-open[b-wyik36fg6j] {
        box-shadow: none;
        border-bottom-color: transparent;
    }
}

@media (max-width: 900px) and (max-height: 500px) {
    .navbar__nav[b-wyik36fg6j] {
        gap: 1rem;
        padding-bottom: var(--space-md);
    }

    .navbar__link[b-wyik36fg6j] {
        font-size: 1.3rem;
    }
}

@media (max-width: 360px) {
    .navbar__cta[b-wyik36fg6j] {
        padding-inline: 0.85rem;
    }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
    .navbar__link[b-wyik36fg6j],
    .navbar__nav--open .navbar__link[b-wyik36fg6j] {
        transform: none;
        transition: color var(--transition-fast), opacity 150ms ease;
    }
}
/* /Components/UI/CtaBanner.razor.rz.scp.css */
.cta-banner[b-gj34o2by38] {
    position: relative;
    overflow: hidden;
    padding: var(--space-xl) 0;
    background: linear-gradient(135deg, var(--color-brown-dark) 0%, var(--color-brown) 55%, #7a5638 100%);
}

.cta-banner[b-gj34o2by38]::before,
.cta-banner[b-gj34o2by38]::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.cta-banner[b-gj34o2by38]::before {
    top: -40%;
    right: -10%;
    width: 480px;
    height: 480px;
    background: radial-gradient(circle, rgba(201, 169, 110, 0.22) 0%, transparent 70%);
}

.cta-banner[b-gj34o2by38]::after {
    bottom: -45%;
    left: -12%;
    width: 420px;
    height: 420px;
    background: radial-gradient(circle, rgba(232, 180, 184, 0.14) 0%, transparent 70%);
}

.cta-banner__content[b-gj34o2by38] {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 640px;
    margin: 0 auto;
}

.cta-banner__accent[b-gj34o2by38] {
    font-size: 1.4rem;
    color: var(--color-gold-light);
    margin-bottom: var(--space-xs);
}

.cta-banner h2[b-gj34o2by38] {
    color: var(--color-cream);
    margin-bottom: var(--space-md);
}

.cta-banner__text[b-gj34o2by38] {
    color: rgba(253, 246, 236, 0.85);
    font-size: 1.1rem;
    line-height: 1.7;
    margin: 0 auto var(--space-lg);
}

@media (min-width: 769px) {
    .cta-banner[b-gj34o2by38] {
        padding: var(--space-2xl) 0;
    }
}
/* /Components/UI/Lightbox.razor.rz.scp.css */
.lightbox[b-exd29t0p2w] {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    border: none;
    background: rgba(30, 19, 16, 0.92);
    color: var(--color-cream);
    overflow: hidden;
}

.lightbox[open][b-exd29t0p2w] {
    animation: lightboxIn-b-exd29t0p2w 280ms ease both;
}

.lightbox[b-exd29t0p2w]::backdrop {
    background: transparent;
}

.lightbox__stage[b-exd29t0p2w] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 64px var(--space-md) var(--space-md);
    touch-action: pan-y;
}

.lightbox__figure[b-exd29t0p2w] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-sm);
    min-width: 0;
    max-width: 100%;
    max-height: 100%;
    animation: lightboxPhoto-b-exd29t0p2w 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.lightbox__img[b-exd29t0p2w] {
    width: auto;
    height: auto;
    max-width: min(100vw - 2rem, 1100px);
    max-height: calc(100vh - 150px);
    max-height: calc(100dvh - 150px);
    object-fit: contain;
    border-radius: var(--border-radius);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
    user-select: none;
}

.lightbox__caption[b-exd29t0p2w] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.25rem 1rem;
    max-width: 60ch;
    text-align: center;
    font-size: 0.95rem;
    line-height: 1.5;
    color: rgba(253, 246, 236, 0.9);
}

.lightbox__counter[b-exd29t0p2w] {
    color: var(--color-gold-light);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.lightbox__btn[b-exd29t0p2w] {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(253, 246, 236, 0.12);
    color: var(--color-cream);
    transition: background-color var(--transition-fast), transform var(--transition-fast);
}

.lightbox__btn:hover[b-exd29t0p2w] {
    background: rgba(253, 246, 236, 0.24);
}

.lightbox__btn svg[b-exd29t0p2w] {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lightbox__btn--close[b-exd29t0p2w] {
    top: 10px;
    right: 10px;
}

.lightbox__btn--prev[b-exd29t0p2w],
.lightbox__btn--next[b-exd29t0p2w] {
    top: 50%;
    transform: translateY(-50%);
}

.lightbox__btn--prev[b-exd29t0p2w] { left: 10px; }
.lightbox__btn--next[b-exd29t0p2w] { right: 10px; }

.lightbox__btn--prev:hover[b-exd29t0p2w] { transform: translateY(-50%) translateX(-2px); }
.lightbox__btn--next:hover[b-exd29t0p2w] { transform: translateY(-50%) translateX(2px); }

/* Phones: the arrows move below the photo so they never cover it (swiping works too) */
@media (max-width: 640px) {
    .lightbox__stage[b-exd29t0p2w] {
        padding: 64px var(--space-sm) 84px;
    }

    .lightbox__img[b-exd29t0p2w] {
        max-width: calc(100vw - 1rem);
        max-height: calc(100vh - 230px);
        max-height: calc(100dvh - 230px);
    }

    .lightbox__btn--prev[b-exd29t0p2w],
    .lightbox__btn--next[b-exd29t0p2w] {
        top: auto;
        bottom: 18px;
        transform: none;
    }

    .lightbox__btn--prev[b-exd29t0p2w] { left: calc(50% - 64px); }
    .lightbox__btn--next[b-exd29t0p2w] { right: calc(50% - 64px); }

    .lightbox__btn--prev:hover[b-exd29t0p2w],
    .lightbox__btn--next:hover[b-exd29t0p2w] {
        transform: none;
    }
}

@keyframes lightboxIn-b-exd29t0p2w {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes lightboxPhoto-b-exd29t0p2w {
    from {
        opacity: 0;
        transform: scale(0.97);
    }
    to {
        opacity: 1;
        transform: none;
    }
}
/* /Components/UI/PageHero.razor.rz.scp.css */
.page-hero[b-ppvu9plttx] {
    position: relative;
    overflow: hidden;
    padding: calc(var(--nav-height) + var(--space-xl)) 0 var(--space-xl);
    text-align: center;
    background:
        radial-gradient(ellipse at 12% 0%, rgba(232, 180, 184, 0.28) 0, transparent 55%),
        radial-gradient(ellipse at 90% 100%, rgba(232, 213, 168, 0.45) 0, transparent 55%),
        var(--bg-primary);
}

/* Piped-icing dots along the bottom edge */
.page-hero[b-ppvu9plttx]::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 18px;
    height: 8px;
    background: radial-gradient(circle, var(--color-gold-light) 3px, transparent 3.5px) center / 22px 8px repeat-x;
    opacity: 0.9;
}

.page-hero__content[b-ppvu9plttx] {
    position: relative;
    max-width: 760px;
    animation: heroRise-b-ppvu9plttx 900ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.page-hero__accent[b-ppvu9plttx] {
    font-size: 1.5rem;
    color: var(--text-accent);
    margin-bottom: var(--space-xs);
}

.page-hero__lead[b-ppvu9plttx] {
    font-size: 1.15rem;
    line-height: 1.7;
    max-width: 56ch;
    margin: 0 auto;
}

@keyframes heroRise-b-ppvu9plttx {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@media (min-width: 769px) {
    .page-hero[b-ppvu9plttx] {
        padding: calc(var(--nav-height) + var(--space-2xl)) 0 var(--space-2xl);
    }
}
/* /Layout/MainLayout.razor.rz.scp.css */
main[b-070wpbjgtu] {
    display: block;
    min-height: 100vh;
}

main:focus[b-070wpbjgtu] {
    outline: none;
}

.page-transition[b-070wpbjgtu] {
    animation: pageEnter-b-070wpbjgtu 600ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes pageEnter-b-070wpbjgtu {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.skip-link[b-070wpbjgtu] {
    position: fixed;
    top: var(--space-sm);
    left: var(--space-sm);
    z-index: 1000;
    padding: 0.75rem 1.25rem;
    border-radius: var(--border-radius-sm);
    background: var(--color-brown-dark);
    color: var(--color-cream);
    font-weight: 700;
    transform: translateY(-150%);
    transition: transform var(--transition-fast);
}

.skip-link:focus[b-070wpbjgtu] {
    transform: none;
}
/* /Pages/Contact.razor.rz.scp.css */
.contact__grid[b-z23veg8kho] {
    display: grid;
    gap: var(--space-lg);
    align-items: start;
}

/* Form */
.contact__form-wrapper[b-z23veg8kho] {
    background: var(--color-white);
    padding: var(--space-lg) var(--space-md);
    border-radius: var(--border-radius);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-md);
}

.contact__form-wrapper h2[b-z23veg8kho],
.contact__info h2[b-z23veg8kho] {
    font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.2rem);
    margin-bottom: 0;
}

.contact__form-intro[b-z23veg8kho] {
    font-size: 0.95rem;
    margin-bottom: var(--space-lg);
}

.contact__submit[b-z23veg8kho] {
    width: 100%;
}

.contact__submit:disabled[b-z23veg8kho] {
    opacity: 0.7;
    cursor: progress;
}

.contact__privacy[b-z23veg8kho] {
    margin: var(--space-md) 0 0;
    font-size: 0.85rem;
    line-height: 1.55;
}

.contact__privacy-link[b-z23veg8kho] {
    color: var(--text-primary);
    text-decoration: underline;
    text-decoration-color: var(--color-gold);
    text-underline-offset: 2px;
}

.contact__privacy-link:hover[b-z23veg8kho] {
    color: var(--text-accent);
}

/* Honeypot field, kept off-screen rather than display:none so bots still see it */
.contact__hp[b-z23veg8kho] {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Turnstile stays empty unless Cloudflare asks the visitor to click */
.contact__turnstile:not(:empty)[b-z23veg8kho] {
    margin-bottom: var(--space-md);
}

.contact__error[b-z23veg8kho] {
    margin-bottom: var(--space-md);
    padding: var(--space-sm) var(--space-md);
    border-left: 3px solid var(--color-error);
    border-radius: var(--border-radius);
    background: color-mix(in srgb, var(--color-error) 8%, transparent);
    color: var(--text-primary);
    font-size: 0.95rem;
}

/* Success message */
.contact__success[b-z23veg8kho] {
    text-align: center;
    padding: var(--space-lg) 0;
    animation: successIn-b-z23veg8kho 600ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.contact__success svg[b-z23veg8kho] {
    margin: 0 auto var(--space-md);
}

.contact__success-ring[b-z23veg8kho] {
    stroke-dasharray: 126;
    stroke-dashoffset: 126;
    animation: drawStroke-b-z23veg8kho 700ms ease forwards;
}

.contact__success-tick[b-z23veg8kho] {
    stroke-dasharray: 30;
    stroke-dashoffset: 30;
    animation: drawStroke-b-z23veg8kho 400ms ease 550ms forwards;
}

.contact__success h3[b-z23veg8kho] {
    color: var(--text-accent);
    margin-bottom: var(--space-sm);
}

.contact__success p[b-z23veg8kho] {
    margin-bottom: var(--space-lg);
}

@keyframes successIn-b-z23veg8kho {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes drawStroke-b-z23veg8kho {
    to { stroke-dashoffset: 0; }
}

/* Info */
.contact__info[b-z23veg8kho] {
    padding: var(--space-sm) 0;
}

.contact__info-cards[b-z23veg8kho] {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
    margin-top: var(--space-lg);
}

.contact__info-card[b-z23veg8kho] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-md);
}

.contact__info-icon[b-z23veg8kho] {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-gold-light), var(--color-gold));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-brown-dark);
    flex-shrink: 0;
    transition: transform var(--transition-base);
}

.contact__info-card:hover .contact__info-icon[b-z23veg8kho] {
    transform: rotate(-8deg) scale(1.06);
}

.contact__info-card h3[b-z23veg8kho] {
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-secondary);
    margin-bottom: 0.2rem;
}

.contact__info-card p[b-z23veg8kho] {
    font-size: 1.05rem;
    color: var(--text-primary);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

.contact__info-card .contact__info-note[b-z23veg8kho] {
    margin-top: 0.2rem;
    font-size: 0.95rem;
    color: var(--text-secondary);
}

.contact__info-link[b-z23veg8kho] {
    font-weight: 700;
    border-bottom: 2px solid var(--color-gold-light);
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.contact__info-link:hover[b-z23veg8kho] {
    color: var(--text-accent);
    border-bottom-color: var(--color-gold);
}

@media (min-width: 600px) {
    .contact__form-wrapper[b-z23veg8kho] {
        padding: var(--space-xl) var(--space-lg);
    }

    .contact__submit[b-z23veg8kho] {
        width: auto;
    }
}

@media (min-width: 900px) {
    .contact__grid[b-z23veg8kho] {
        grid-template-columns: 1.3fr 1fr;
        gap: var(--space-xl);
    }

    .contact__info[b-z23veg8kho] {
        padding-top: var(--space-xl);
    }
}
/* /Pages/Home.razor.rz.scp.css */
/* ===== Hero ===== */
.hero[b-9mx82iinlt] {
    position: relative;
    overflow: hidden;
    padding: calc(var(--nav-height) + var(--space-md)) 0 var(--space-xl);
    background:
        radial-gradient(ellipse at 0% 10%, rgba(232, 180, 184, 0.30) 0, transparent 50%),
        radial-gradient(ellipse at 100% 90%, rgba(232, 213, 168, 0.50) 0, transparent 55%),
        var(--bg-primary);
}

.hero__grid[b-9mx82iinlt] {
    display: grid;
    gap: var(--space-lg);
    align-items: center;
}

.hero__text[b-9mx82iinlt] {
    text-align: center;
}

.hero__text > *[b-9mx82iinlt] {
    animation: heroRise-b-9mx82iinlt 900ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.hero__text > :nth-child(2)[b-9mx82iinlt] { animation-delay: 120ms; }
.hero__text > :nth-child(3)[b-9mx82iinlt] { animation-delay: 200ms; }
.hero__text > :nth-child(4)[b-9mx82iinlt] { animation-delay: 280ms; }
.hero__text > :nth-child(5)[b-9mx82iinlt] { animation-delay: 360ms; }

/* The negative top margin, added back below, centres the logo between the navbar's buttons and the accent line */
.hero__logo[b-9mx82iinlt] {
    width: 230px;
    height: auto;
    margin: -1.25rem auto calc(var(--space-sm) + 1.25rem);
}

.hero__accent[b-9mx82iinlt] {
    font-size: 1.75rem;
    color: var(--text-accent);
    margin-bottom: var(--space-xs);
}

.hero__title[b-9mx82iinlt] {
    font-size: clamp(2.1rem, 1.5rem + 3vw, 3.6rem);
    margin-bottom: var(--space-md);
    text-wrap: balance;
}

.hero__lead[b-9mx82iinlt] {
    font-size: 1.125rem;
    line-height: 1.7;
    max-width: 46ch;
    margin: 0 auto var(--space-lg);
}

.hero__actions[b-9mx82iinlt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-md);
}

.hero__link[b-9mx82iinlt] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.25rem;
    font-weight: 700;
    color: var(--text-primary);
    border-bottom: 2px solid var(--color-gold-light);
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.hero__link svg[b-9mx82iinlt] {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform var(--transition-base);
}

.hero__link:hover[b-9mx82iinlt] {
    color: var(--text-accent);
    border-bottom-color: var(--color-gold);
}

.hero__link:hover svg[b-9mx82iinlt] {
    transform: translateY(3px);
}

/* Photo in an arch, like a shop window */
.hero__media[b-9mx82iinlt] {
    position: relative;
    width: min(88vw, 380px);
    margin: 0 auto;
    animation: heroPhoto-b-9mx82iinlt 1100ms cubic-bezier(0.22, 1, 0.36, 1) 150ms both;
}

.hero__media[b-9mx82iinlt]::before {
    content: '';
    position: absolute;
    inset: 0;
    border: 2px solid var(--color-gold);
    border-radius: 999px 999px var(--border-radius) var(--border-radius);
    transform: translate(12px, 12px);
}

.hero__frame[b-9mx82iinlt] {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: 999px 999px var(--border-radius) var(--border-radius);
    box-shadow: var(--shadow-lg);
}

.hero__frame[b-9mx82iinlt]  .hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero__sprinkle[b-9mx82iinlt] {
    position: absolute;
    border-radius: 50%;
    animation: float 6s ease-in-out infinite;
}

.hero__sprinkle--1[b-9mx82iinlt] {
    width: 18px;
    height: 18px;
    top: 12%;
    left: -22px;
    background: var(--color-pink);
}

.hero__sprinkle--2[b-9mx82iinlt] {
    width: 12px;
    height: 12px;
    top: 38%;
    right: -26px;
    background: var(--color-gold);
    animation-delay: -2s;
}

.hero__sprinkle--3[b-9mx82iinlt] {
    width: 9px;
    height: 9px;
    bottom: 14%;
    left: -14px;
    background: var(--color-brown-light);
    animation-delay: -4s;
}

@keyframes heroRise-b-9mx82iinlt {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes heroPhoto-b-9mx82iinlt {
    from {
        opacity: 0;
        transform: translateY(24px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@media (min-width: 900px) {
    .hero[b-9mx82iinlt] {
        padding: calc(var(--nav-height) + var(--space-xl)) 0 var(--space-2xl);
    }

    .hero__grid[b-9mx82iinlt] {
        grid-template-columns: 1.1fr 0.9fr;
        gap: var(--space-xl);
    }

    .hero__text[b-9mx82iinlt] {
        text-align: left;
    }

    .hero__logo[b-9mx82iinlt] {
        width: 300px;
        margin: -2rem 0 calc(var(--space-md) + 2rem) -12px;
    }

    .hero__lead[b-9mx82iinlt] {
        margin-left: 0;
    }

    .hero__actions[b-9mx82iinlt] {
        flex-direction: row;
        gap: var(--space-lg);
    }

    .hero__media[b-9mx82iinlt] {
        width: min(100%, 440px);
        margin-right: 0;
    }
}

/* ===== Teasers ===== */
.teasers__grid[b-9mx82iinlt] {
    display: grid;
    gap: var(--space-md);
    max-width: 960px;
    margin: 0 auto;
}

.teaser-card[b-9mx82iinlt] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    height: 100%;
    padding: var(--space-lg);
    border-radius: var(--border-radius);
    background: var(--color-white);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.teaser-card:hover[b-9mx82iinlt] {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
    border-color: var(--color-gold-light);
}

.teaser-card__icon[b-9mx82iinlt] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: var(--space-md);
    border-radius: 50%;
    background: var(--color-cream);
    color: var(--color-gold-dark);
    transition: transform var(--transition-base), background-color var(--transition-base);
}

.teaser-card__icon svg[b-9mx82iinlt] {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.teaser-card:hover .teaser-card__icon[b-9mx82iinlt] {
    transform: rotate(-6deg) scale(1.05);
    background: var(--color-gold-light);
}

.teaser-card__title[b-9mx82iinlt] {
    font-size: 1.6rem;
    margin-bottom: var(--space-sm);
}

.teaser-card__text[b-9mx82iinlt] {
    flex: 1;
    align-self: stretch;
    margin-bottom: var(--space-md);
}

.teaser-card__link[b-9mx82iinlt] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 700;
    color: var(--text-accent);
}

.teaser-card__link svg[b-9mx82iinlt] {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform var(--transition-base);
}

.teaser-card:hover .teaser-card__link svg[b-9mx82iinlt] {
    transform: translateX(4px);
}

@media (min-width: 720px) {
    .teasers__grid[b-9mx82iinlt] {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-lg);
    }

    .teaser-card[b-9mx82iinlt] {
        padding: var(--space-xl) var(--space-lg);
    }
}
/* /Pages/HowToOrder.razor.rz.scp.css */
/* ===== Steps ===== */
.steps__list[b-4nfs67lnlz] {
    max-width: 860px;
    margin: 0 auto;
}

.steps__item[b-4nfs67lnlz] {
    position: relative;
}

.steps__item[b-4nfs67lnlz]  .steps__row {
    position: relative;
    display: grid;
    grid-template-columns: 52px 1fr;
    column-gap: var(--space-md);
    padding-bottom: var(--space-lg);
}

/* Connecting line that is "piped" down to the next step once the step scrolls into view */
.steps__item[b-4nfs67lnlz]  .steps__row::before {
    content: '';
    position: absolute;
    top: 56px;
    bottom: 4px;
    left: 25px;
    width: 2px;
    border-radius: 1px;
    background: linear-gradient(var(--color-gold), var(--color-gold-light));
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 900ms cubic-bezier(0.65, 0, 0.35, 1) 250ms;
}

.steps__item[b-4nfs67lnlz]  .steps__row.is-visible::before {
    transform: scaleY(1);
}

.steps__item:last-child[b-4nfs67lnlz]  .steps__row::before {
    display: none;
}

.steps__number[b-4nfs67lnlz] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--color-white);
    border: 2px solid var(--color-gold);
    color: var(--color-brown-dark);
    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 700;
    box-shadow: 0 0 0 6px var(--bg-primary), var(--shadow-sm);
    transition: background-color var(--transition-base), transform var(--transition-base);
}

.steps__item:hover .steps__number[b-4nfs67lnlz] {
    background: var(--color-gold-light);
    transform: scale(1.06);
}

.steps__body[b-4nfs67lnlz] {
    padding-top: 0.6rem;
}

.steps__body h3[b-4nfs67lnlz] {
    font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.6rem);
    margin-bottom: var(--space-sm);
}

.steps__body p[b-4nfs67lnlz] {
    margin-bottom: 0;
    max-width: 52ch;
}

.steps__link[b-4nfs67lnlz] {
    display: inline-block;
    margin-top: var(--space-sm);
    font-weight: 700;
    color: var(--text-accent);
    border-bottom: 2px solid var(--color-gold-light);
    transition: border-color var(--transition-fast);
}

.steps__link:hover[b-4nfs67lnlz] {
    border-bottom-color: var(--color-gold);
}

.steps__media[b-4nfs67lnlz] {
    grid-column: 2;
    width: min(60%, 220px);
    aspect-ratio: 1;
    margin-top: var(--space-md);
    overflow: hidden;
    border-radius: 50%;
    border: 4px solid var(--color-white);
    box-shadow: var(--shadow-md);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.steps__item:hover .steps__media[b-4nfs67lnlz] {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}

@media (min-width: 720px) {
    .steps__item[b-4nfs67lnlz]  .steps__row {
        grid-template-columns: 52px 1fr 200px;
        column-gap: var(--space-lg);
        padding-bottom: var(--space-xl);
    }

    /* Keeps the illustrations above and below this row from overlapping */
    .steps__item:not(:last-child)[b-4nfs67lnlz]  .steps__row--media {
        min-height: 224px;
    }

    /* Centred on the gap above its step: between steps 3 and 4, and between steps 4 and 5 */
    .steps__media[b-4nfs67lnlz] {
        position: absolute;
        top: calc(var(--space-xl) / -2);
        right: 0;
        width: 200px;
        margin-top: 0;
        translate: 0 -50%;
    }
}

/* ===== Delivery ===== */
.delivery[b-4nfs67lnlz] {
    scroll-margin-top: var(--nav-height);
}

.delivery__grid[b-4nfs67lnlz] {
    display: grid;
    gap: var(--space-xl);
    align-items: center;
}

.delivery__list[b-4nfs67lnlz] {
    display: grid;
    gap: var(--space-md);
    margin-top: var(--space-md);
}

.delivery__list[b-4nfs67lnlz]  .delivery__item {
    display: flex;
    gap: var(--space-md);
    align-items: flex-start;
    padding: var(--space-md);
    border-radius: var(--border-radius);
    background: var(--color-white);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-sm);
}

.delivery__icon[b-4nfs67lnlz] {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--color-cream);
    color: var(--color-gold-dark);
}

.delivery__icon[b-4nfs67lnlz]  svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.delivery__list h3[b-4nfs67lnlz] {
    font-size: 1.2rem;
    margin-bottom: 0.2rem;
}

.delivery__list p[b-4nfs67lnlz] {
    margin: 0;
}

.delivery__media[b-4nfs67lnlz] {
    aspect-ratio: 4 / 5;
    width: min(80vw, 360px);
    margin: 0 auto;
    overflow: hidden;
    border-radius: 999px 999px var(--border-radius) var(--border-radius);
    box-shadow: var(--shadow-lg);
}

@media (min-width: 900px) {
    .delivery__grid[b-4nfs67lnlz] {
        grid-template-columns: 1.2fr 0.8fr;
        gap: var(--space-2xl);
    }

    .delivery__media[b-4nfs67lnlz] {
        width: 100%;
    }
}
/* /Pages/NotFound.razor.rz.scp.css */
.not-found[b-buj7x0knjq] {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(var(--nav-height) + var(--space-xl)) 0 var(--space-xl);
    background:
        radial-gradient(ellipse at 15% 20%, rgba(232, 180, 184, 0.25) 0, transparent 50%),
        radial-gradient(ellipse at 85% 80%, rgba(232, 213, 168, 0.45) 0, transparent 50%),
        var(--bg-primary);
}

.not-found__content[b-buj7x0knjq] {
    text-align: center;
    max-width: 640px;
}

.not-found__cookie[b-buj7x0knjq] {
    display: inline-block;
    margin-bottom: var(--space-sm);
    animation: floatSlow 5s ease-in-out infinite;
}

.not-found__code[b-buj7x0knjq] {
    font-size: 2rem;
    color: var(--text-accent);
    margin-bottom: 0;
}

.not-found h1[b-buj7x0knjq] {
    margin-bottom: var(--space-md);
}

.not-found__desc[b-buj7x0knjq] {
    font-size: 1.1rem;
    max-width: 48ch;
    margin: 0 auto var(--space-lg);
}

.not-found__actions[b-buj7x0knjq] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
    justify-content: center;
}
/* /Pages/Offer.razor.rz.scp.css */
/* ===== Occasions ===== */
.occasions__grid[b-8f333jfqoc] {
    display: grid;
    gap: var(--space-lg);
}

.occasion-card[b-8f333jfqoc] {
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: var(--border-radius);
    background: var(--color-white);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.occasion-card:hover[b-8f333jfqoc] {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
}

.occasion-card__media[b-8f333jfqoc] {
    aspect-ratio: 3 / 2;
    overflow: hidden;
}

.occasion-card__media[b-8f333jfqoc]  .occasion-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

.occasion-card:hover .occasion-card__media[b-8f333jfqoc]  .occasion-card__img {
    transform: scale(1.04);
}

.occasion-card__body[b-8f333jfqoc] {
    padding: var(--space-lg);
}

.occasion-card__body h3[b-8f333jfqoc] {
    margin-bottom: var(--space-sm);
}

.occasion-card__list[b-8f333jfqoc] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin-top: var(--space-md);
}

.occasion-card__list li[b-8f333jfqoc] {
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    background: var(--color-cream);
    border: 1px solid var(--color-gold-light);
    color: var(--text-primary);
    font-size: 0.95rem;
    font-weight: 700;
}

.occasion-card__note[b-8f333jfqoc] {
    margin: var(--space-md) 0 0;
    font-style: italic;
}

@media (min-width: 900px) {
    .occasions__grid[b-8f333jfqoc] {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-xl);
    }
}

/* ===== Personalisation ===== */
.personalisation__grid[b-8f333jfqoc] {
    display: grid;
    gap: var(--space-xl);
    align-items: start;
}

.personalisation__media[b-8f333jfqoc] {
    position: relative;
    width: min(84vw, 400px);
    margin: 0 auto;
}

/* Gold outline offset behind the animation, as in the home page hero */
.personalisation__media[b-8f333jfqoc]::before {
    content: '';
    position: absolute;
    inset: 0;
    border: 2px solid var(--color-gold);
    border-radius: calc(var(--border-radius) * 2);
    transform: translate(-12px, 12px);
}

.personalisation__frame[b-8f333jfqoc] {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: calc(var(--border-radius) * 2);
    box-shadow: var(--shadow-lg);
}

.personalisation__lead[b-8f333jfqoc] {
    font-size: 1.1rem;
    margin-bottom: var(--space-lg);
}

.personalisation__list[b-8f333jfqoc] {
    display: grid;
    gap: var(--space-md);
}

.personalisation__list[b-8f333jfqoc]  .personalisation__item {
    display: flex;
    gap: var(--space-md);
    align-items: flex-start;
    padding: var(--space-md);
    border-radius: var(--border-radius);
    background: var(--color-white);
    border: 1px solid var(--border-subtle);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.personalisation__list[b-8f333jfqoc]  .personalisation__item:hover {
    border-color: var(--color-gold-light);
    box-shadow: var(--shadow-md);
    transform: translateX(4px);
}

.personalisation__icon[b-8f333jfqoc] {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--color-cream);
    color: var(--color-gold-dark);
}

.personalisation__icon[b-8f333jfqoc]  svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.personalisation__list h3[b-8f333jfqoc] {
    font-size: 1.2rem;
    margin-bottom: 0.2rem;
}

.personalisation__list p[b-8f333jfqoc] {
    margin: 0;
}

.personalisation__note[b-8f333jfqoc] {
    margin: var(--space-lg) 0 0;
    padding-left: var(--space-md);
    border-left: 3px solid var(--color-gold);
    font-size: 1.05rem;
    color: var(--text-primary);
}

@media (min-width: 900px) {
    .personalisation__grid[b-8f333jfqoc] {
        grid-template-columns: 0.85fr 1.15fr;
        gap: var(--space-2xl);
    }

    .personalisation__grid[b-8f333jfqoc]  .personalisation__media-wrap {
        position: sticky;
        top: calc(var(--nav-height) + var(--space-lg));
    }

    .personalisation__media[b-8f333jfqoc] {
        width: 100%;
    }
}
/* /Pages/PrivacyPolicy.razor.rz.scp.css */
.policy__body[b-quqk1qv0x6] {
    max-width: 72ch;
    margin: 0 auto;
}

.policy__body h2[b-quqk1qv0x6] {
    font-size: clamp(1.45rem, 1.25rem + 0.9vw, 1.9rem);
    margin: var(--space-lg) 0 var(--space-sm);
}

.policy__body h2:first-child[b-quqk1qv0x6] {
    margin-top: 0;
}

.policy__list[b-quqk1qv0x6] {
    list-style: disc;
    padding-left: 1.4rem;
    margin-bottom: var(--space-md);
    color: var(--text-secondary);
}

.policy__list li[b-quqk1qv0x6] {
    padding-left: 0.2rem;
    text-wrap: pretty;
}

.policy__list li + li[b-quqk1qv0x6] {
    margin-top: var(--space-xs);
}

.policy__list li[b-quqk1qv0x6]::marker {
    color: var(--color-gold);
}

.policy__link[b-quqk1qv0x6] {
    font-weight: 700;
    color: var(--text-primary);
    border-bottom: 2px solid var(--color-gold-light);
    overflow-wrap: anywhere;
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.policy__link:hover[b-quqk1qv0x6] {
    color: var(--text-accent);
    border-bottom-color: var(--color-gold);
}

.policy__updated[b-quqk1qv0x6] {
    margin: var(--space-xl) 0 0;
    padding-top: var(--space-md);
    border-top: 1px solid var(--border-subtle);
    font-size: 0.9rem;
}
