:root {
    --sd-black: #080808;
    --sd-black-soft: #0d0d0d;
    --sd-black-raised: #13110f;
    --sd-paper: #f3eee6;
    --sd-paper-deep: #e9e0d5;
    --sd-ink: #191614;
    --sd-muted-light: rgba(243, 238, 230, .62);
    --sd-muted-dark: #6f675f;
    --sd-wood: #a9784f;
    --sd-wood-light: #d0a06f;
    --sd-coral: #dc5757;
    --sd-coral-light: #ef8c80;
    --sd-red-deep: #92333c;
    --sd-line-light: rgba(243, 238, 230, .12);
    --sd-ease: cubic-bezier(.22, 1, .36, 1);
    --sd-header-height: 82px;
    --sd-nav-bottom: 90px;
    --sd-hero-media-y: 0px;
}

*, *::before, *::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    background: var(--sd-black);
}

body {
    margin: 0;
    overflow-x: hidden;
    background: var(--sd-black);
    color: var(--sd-paper);
    font-family: "Manrope", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.sd-lock {
    overflow: hidden;
}

img {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
}

button, a {
    font: inherit;
}

::selection {
    background: var(--sd-coral);
    color: #fff;
}

a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--sd-coral-light);
    outline-offset: 4px;
}

.sd-skip-link {
    position: fixed;
    z-index: 10000;
    top: .75rem;
    left: .75rem;
}

/* Bootstrap remains the shell/grid system. Limit the visual line length on ultrawide displays. */
.container-xxl {
    --bs-gutter-x: clamp(2rem, 5vw, 5.75rem);
    max-width: 1500px;
}

.sd-anchor {
    height: 1px;
    background: var(--sd-black);
}

/* ========================= Shared ========================= */
.sd-kicker {
    margin: 0 0 1.15rem;
    display: flex;
    align-items: center;
    gap: .8rem;
    color: var(--sd-wood-light);
    font-size: .68rem;
    font-weight: 650;
    letter-spacing: .21em;
    line-height: 1.4;
    text-transform: uppercase;
}

.sd-kicker i {
    width: 1.9rem;
    height: 1px;
    display: inline-block;
    background: rgba(208, 160, 111, .48);
}

.sd-kicker--paper {
    color: #b45d52;
}

.sd-btn {
    position: relative;
    min-height: 3.65rem;
    padding: .95rem 1.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: 2px;
    isolation: isolate;
    color: var(--sd-paper);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .10em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform .32s var(--sd-ease), border-color .32s ease, color .32s ease, background-color .32s ease;
}

.sd-btn__label {
    position: relative;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: .9rem;
}

.sd-btn i {
    transition: transform .32s var(--sd-ease);
}

.sd-btn:hover {
    color: #fff;
    transform: translateY(-2px);
}

.sd-btn:hover i {
    transform: translate(3px, -2px);
}

.sd-btn--primary {
    min-width: 13.4rem;
    border-color: rgba(255,255,255,.04);
    background: linear-gradient(112deg, #d84f52, #c84249 70%, #b93d45);
    box-shadow: 0 1rem 3rem rgba(139, 41, 47, .12);
}

.sd-btn__bloom {
    position: absolute;
    z-index: 1;
    left: var(--ink-x, 50%);
    top: var(--ink-y, 50%);
    width: 2.4rem;
    aspect-ratio: 1;
    border-radius: 48% 52% 43% 57% / 55% 43% 57% 45%;
    opacity: 0;
    transform: translate(-50%, -50%) scale(.18) rotate(-14deg);
    background:
        radial-gradient(circle at 37% 31%, rgba(255, 212, 199, .96), transparent 16%),
        radial-gradient(circle at 53% 48%, rgba(244, 121, 113, .94), rgba(176, 41, 51, .76) 50%, transparent 72%);
    filter: blur(3px) saturate(.92);
    transition: transform .82s var(--sd-ease), opacity .22s ease;
    pointer-events: none;
}

.sd-btn--primary:hover .sd-btn__bloom {
    opacity: .93;
    transform: translate(-50%, -50%) scale(14.5) rotate(9deg);
}

.sd-btn--ghost {
    border-color: rgba(243, 238, 230, .24);
    background: rgba(0,0,0,.12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.sd-btn--ghost:hover {
    border-color: rgba(208, 160, 111, .65);
    background: rgba(169, 120, 79, .08);
}

/* ========================= Header ========================= */
.sd-header {
    position: fixed;
    z-index: 1000;
    inset: 0 0 auto;
    border-bottom: 1px solid transparent;
    transition: background-color .4s ease, border-color .4s ease, backdrop-filter .4s ease;
}

.sd-header::after {
    position: absolute;
    content: "";
    left: 0;
    right: 0;
    bottom: -1px;
    height: 1px;
    opacity: .3;
    background: linear-gradient(90deg, transparent 3%, rgba(208,160,111,.18) 28%, rgba(243,238,230,.1) 68%, transparent 97%);
}

.sd-header.is-scrolled {
    background: rgba(8,8,8,.76);
    border-color: rgba(243,238,230,.08);
    backdrop-filter: blur(20px) saturate(115%);
    -webkit-backdrop-filter: blur(20px) saturate(115%);
}

.sd-header__inner {
    min-height: var(--sd-header-height);
    display: flex;
    align-items: center;
    gap: 2rem;
}

.sd-brand {
    display: inline-flex;
    align-items: center;
    gap: .82rem;
    text-decoration: none;
}

.sd-brand__mark {
    width: 2.7rem;
    height: auto;
    flex: 0 0 auto;
    object-fit: contain;
    filter: drop-shadow(0 .4rem 1rem rgba(0,0,0,.18));
}

.sd-brand__title {
    width: 7.25rem;
    height: auto;
    flex: 0 0 auto;
    object-fit: contain;
    filter: drop-shadow(0 .4rem 1rem rgba(0,0,0,.18));
}

.sd-nav {
    margin-left: auto;
    align-items: center;
    gap: clamp(1.15rem, 2vw, 2.25rem);
}

.sd-nav a {
    position: relative;
    color: rgba(243,238,230,.68);
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .11em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color .25s ease;
}

.sd-nav a::after {
    position: absolute;
    content: "";
    left: 0;
    right: 100%;
    bottom: -.55rem;
    height: 1px;
    background: linear-gradient(90deg, var(--sd-coral-light), var(--sd-wood-light));
    transition: right .38s var(--sd-ease);
}

.sd-nav a:hover,
.sd-nav a.is-active {
    color: var(--sd-paper);
}

.sd-nav a:hover::after,
.sd-nav a.is-active::after {
    right: 0;
}

.sd-header__actions {
    display: flex;
    align-items: center;
    gap: .8rem;
}

.sd-header__reserve {
    min-height: 2.8rem;
    padding: 0 1rem;
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    border: 1px solid rgba(243,238,230,.18);
    color: rgba(243,238,230,.9);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color .28s ease, border-color .28s ease, transform .28s var(--sd-ease);
}

.sd-header__reserve i {
    color: var(--sd-coral-light);
    transition: transform .28s var(--sd-ease);
}

.sd-header__reserve:hover {
    color: #fff;
    border-color: rgba(239,140,128,.5);
    background: rgba(220,87,87,.075);
    transform: translateY(-1px);
}

.sd-header__reserve:hover i {
    transform: translate(3px,-3px);
}

.sd-menu-toggle {
    position: relative;
    width: 3rem;
    height: 3rem;
    border: 1px solid rgba(243,238,230,.18);
    border-radius: 2px;
    background: rgba(8,8,8,.18);
    color: var(--sd-paper);
}

.sd-menu-toggle span {
    position: absolute;
    left: 50%;
    width: 1.35rem;
    height: 1px;
    background: currentColor;
    transform-origin: center;
    transition: transform .35s var(--sd-ease), opacity .2s ease;
}

.sd-menu-toggle span:nth-child(1) { transform: translate(-50%,-6px); }
.sd-menu-toggle span:nth-child(2) { transform: translate(-50%,0); }
.sd-menu-toggle span:nth-child(3) { transform: translate(-50%,6px); }
.sd-menu-toggle.is-open span:nth-child(1) { transform: translate(-50%,0) rotate(45deg); }
.sd-menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.sd-menu-toggle.is-open span:nth-child(3) { transform: translate(-50%,0) rotate(-45deg); }

/* ========================= Mobile menu ========================= */
.sd-mobile-menu {
    position: fixed;
    z-index: 999;
    inset: 0;
    visibility: hidden;
    opacity: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    pointer-events: none;
    background: #0a0908;
    transition: opacity .4s ease, visibility 0s linear .4s;
}

.sd-mobile-menu.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transition-delay: 0s;
}

.sd-mobile-menu__paper {
    position: absolute;
    inset: 0;
    opacity: .17;
    background-image:
        linear-gradient(rgba(243,238,230,.022) 1px, transparent 1px),
        linear-gradient(90deg,rgba(243,238,230,.022) 1px, transparent 1px),
        radial-gradient(circle at 85% 10%, rgba(169,120,79,.14), transparent 28rem);
    background-size: 54px 54px, 54px 54px, auto;
    pointer-events: none;
}

.sd-mobile-menu__wash {
    position: absolute;
    border-radius: 55% 45% 62% 38% / 43% 58% 42% 57%;
    filter: blur(1px);
    pointer-events: none;
}

.sd-mobile-menu__wash::after {
    position: absolute;
    content: "";
    inset: 12%;
    border-radius: inherit;
    background: radial-gradient(circle at 44% 38%, rgba(255,190,181,.38), rgba(219,78,82,.12) 52%, transparent 72%);
    filter: blur(18px);
}

.sd-mobile-menu__wash--one {
    right: -7rem;
    top: 4rem;
    width: 18rem;
    height: 23rem;
    opacity: .28;
    transform: rotate(20deg);
    background: radial-gradient(circle at 37% 28%, rgba(236,123,115,.34), rgba(126,38,46,.18) 56%, transparent 72%);
}

.sd-mobile-menu__wash--two {
    left: -7rem;
    bottom: 8rem;
    width: 14rem;
    height: 18rem;
    opacity: .13;
    transform: rotate(-28deg);
    background: rgba(220,87,87,.26);
}

.sd-mobile-menu__inner {
    position: relative;
    min-height: 100svh;
    padding-top: clamp(7.1rem, 14vh, 8.4rem);
    padding-bottom: max(2rem, env(safe-area-inset-bottom));
    display: flex;
    flex-direction: column;
}

.sd-mobile-menu__nav {
    display: flex;
    flex-direction: column;
}

.sd-mobile-menu__nav a {
    position: relative;
    display: grid;
    grid-template-columns: 2.5rem 1fr;
    align-items: baseline;
    padding: .7rem 0;
    border-bottom: 1px solid rgba(243,238,230,.09);
    color: var(--sd-paper);
    opacity: 0;
    transform: translate3d(0,1.15rem,0);
    text-decoration: none;
    transition: opacity .46s var(--sd-ease), transform .58s var(--sd-ease), border-color .28s ease;
}

.sd-mobile-menu.is-open .sd-mobile-menu__nav a {
    opacity: 1;
    transform: translate3d(0,0,0);
}

.sd-mobile-menu.is-open .sd-mobile-menu__nav a:nth-child(1) { transition-delay: .08s, .08s, 0s; }
.sd-mobile-menu.is-open .sd-mobile-menu__nav a:nth-child(2) { transition-delay: .14s, .14s, 0s; }
.sd-mobile-menu.is-open .sd-mobile-menu__nav a:nth-child(3) { transition-delay: .20s, .20s, 0s; }
.sd-mobile-menu.is-open .sd-mobile-menu__nav a:nth-child(4) { transition-delay: .26s, .26s, 0s; }
.sd-mobile-menu.is-open .sd-mobile-menu__nav a:nth-child(5) { transition-delay: .32s, .32s, 0s; }

.sd-mobile-menu__nav small {
    color: var(--sd-coral-light);
    font-size: .58rem;
    letter-spacing: .08em;
}

.sd-mobile-menu__nav span {
    font-size: clamp(2rem, 8.3vw, 2.8rem);
    font-weight: 300;
    letter-spacing: -.05em;
    line-height: 1.03;
}

.sd-mobile-menu__nav a.is-active span {
    color: #fff;
}

.sd-mobile-menu__nav a.is-active::after {
    position: absolute;
    content: "";
    right: 0;
    bottom: -1px;
    width: clamp(2.5rem, 8vw, 4.5rem);
    height: 1px;
    background: linear-gradient(90deg, var(--sd-coral-light), var(--sd-wood-light));
}

.sd-mobile-menu__footer {
    margin-top: auto;
    padding-top: clamp(1.5rem,4vh,2.2rem);
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: end;
    gap: 1.5rem;
}

.sd-mobile-menu__footer p {
    margin: 0 0 .7rem;
    color: rgba(243,238,230,.46);
    font-size: .76rem;
    line-height: 1.75;
}

.sd-mobile-menu__phone {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    color: rgba(243,238,230,.8);
    font-size: .8rem;
    text-decoration: none;
}

.sd-mobile-menu__phone i {
    color: var(--sd-wood-light);
}

/* ========================= Hero ========================= */
/*
 * Keep every visible Hero layer in one positive stacking order.
 * Chromium can otherwise retain stale GPU tiles for transformed media that sits
 * on negative z-index layers after the Hero is off-screen and the viewport is
 * resized/refocused. Order: media -> veil -> grain/slats -> watermark -> content.
 */
.sd-hero {
    position: relative;
    z-index: 1;
    min-height: max(700px, 100svh);
    overflow: hidden;
    isolation: isolate;
    background: var(--sd-black);
}

.sd-hero__media {
    position: absolute;
    z-index: 0;
    inset: 0 0 0 29%;
    overflow: hidden;
    pointer-events: none;
}

.sd-hero__poster,
.sd-hero__canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transform: translate3d(0,var(--sd-hero-media-y),0) scale(1.055);
    filter: saturate(.94) contrast(1.035) brightness(.90);
    transition: opacity .6s ease, transform 1s var(--sd-ease), filter .8s ease;
    will-change: transform;
}

.sd-hero__poster {
    object-fit: cover;
    object-position: 51% 52%;
}

.sd-hero__canvas {
    opacity: 0;
}

.sd-hero.is-video-ready .sd-hero__canvas {
    opacity: 1;
}

/* Keep the source video renderable but completely off-screen. This avoids
   third-party download overlays while Canvas is the only visible media. */
.sd-hero__video-source {
    position: fixed;
    z-index: -100;
    top: 0;
    left: -10000px;
    width: 320px;
    height: 180px;
    opacity: .001;
    pointer-events: none;
}

.sd-hero__veil {
    position: absolute;
    z-index: 1;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg,
            #080808 0%,
            #080808 21%,
            rgba(8,8,8,.975) 31%,
            rgba(8,8,8,.90) 39%,
            rgba(8,8,8,.66) 49%,
            rgba(8,8,8,.22) 66%,
            rgba(8,8,8,.05) 82%,
            rgba(8,8,8,.18) 100%),
        linear-gradient(180deg,
            rgba(0,0,0,.36) 0%,
            rgba(0,0,0,.03) 30%,
            rgba(0,0,0,.08) 68%,
            rgba(0,0,0,.68) 100%);
}

/* v1.8.2 — Chromium off-screen resize hardening.
 * The CSS gradient remains as the no-JS fallback. Once the veil canvas has
 * been painted, the large CSS gradient is removed from the compositor and the
 * exact same tonal mask is supplied by a resize-safe 2D canvas instead. */
.sd-hero__veil-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
}

.sd-hero.is-veil-canvas-ready .sd-hero__veil {
    background: none;
}

.sd-hero__grain {
    position: absolute;
    z-index: 2;
    inset: 0;
    opacity: .16;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 30% 20%, rgba(255,255,255,.028) 0 1px, transparent 1.5px),
        radial-gradient(circle at 70% 65%, rgba(255,255,255,.018) 0 1px, transparent 1.5px);
    background-size: 23px 23px, 31px 31px;
    mix-blend-mode: soft-light;
}

.sd-hero__slats {
    position: absolute;
    z-index: 3;
    top: 13%;
    left: 0;
    width: 26vw;
    height: 62%;
    display: grid;
    grid-template-columns: repeat(5,1fr);
    opacity: .18;
    pointer-events: none;
    -webkit-mask-image: linear-gradient(180deg,transparent,#000 20%,#000 78%,transparent);
    mask-image: linear-gradient(180deg,transparent,#000 20%,#000 78%,transparent);
}

.sd-hero__slats i {
    border-right: 1px solid rgba(208,160,111,.15);
}

.sd-hero__watermark {
    position: absolute;
    z-index: 4;
    top: 50%;
    left: -11.6rem;
    width: clamp(32rem, 44vw, 47rem);
    max-width: none;
    opacity: .108;
    pointer-events: none;
    transform: translate3d(0,-50%,0) rotate(-16deg);
    transform-origin: 48% 52%;
    filter: saturate(.82) contrast(.96) brightness(.88);
    mix-blend-mode: screen;
    -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,.98) 0%, rgba(0,0,0,.92) 59%, rgba(0,0,0,.34) 88%, transparent 100%);
    mask-image: linear-gradient(90deg, rgba(0,0,0,.98) 0%, rgba(0,0,0,.92) 59%, rgba(0,0,0,.34) 88%, transparent 100%);
}

.sd-hero__watermark::selection {
    background: transparent;
}

.sd-hero__inner {
    position: relative;
    z-index: 5;
    min-height: max(700px, 100svh);
}

.sd-hero__inner > .row {
    min-height: max(700px, 100svh) !important;
    padding-top: var(--sd-header-height);
    padding-bottom: 3.3rem;
}

.sd-hero__copy {
    width: min(100%, 46rem);
    padding-top: 1.25rem;
}

.sd-hero__title {
    margin: 0;
    display: flex;
    flex-direction: column;
    width: max-content;
    max-width: none;
    color: var(--sd-paper);
    font-size: clamp(4.05rem, 5.55vw, 6.65rem);
    font-weight: 300;
    letter-spacing: -.064em;
    line-height: .91;
}

.sd-hero__title-line {
    display: block;
    white-space: nowrap;
}

.sd-hero__title span:last-child {
    color: rgba(243,238,230,.95);
}

.sd-hero__tagline {
    margin: 1.65rem 0 0;
    color: var(--sd-wood-light);
    font-size: clamp(1.06rem, 1.45vw, 1.28rem);
    font-weight: 450;
    letter-spacing: -.02em;
}

.sd-hero__lead {
    max-width: 34rem;
    margin: 1.55rem 0 0;
    color: var(--sd-muted-light);
    font-size: clamp(.92rem, 1.05vw, 1.04rem);
    line-height: 1.78;
}

.sd-hero__actions {
    margin-top: 2.25rem;
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
}

.sd-hero__address {
    margin-top: 2rem;
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    color: rgba(243,238,230,.39);
    font-size: .67rem;
    font-weight: 500;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.sd-hero__address i {
    color: rgba(208,160,111,.7);
    font-size: .78rem;
}

.sd-hero__hours {
    position: absolute;
    right: calc(var(--bs-gutter-x) * .5);
    bottom: 3.25rem;
    display: grid;
    grid-template-columns: 1px auto auto;
    align-items: stretch;
    gap: 1.1rem;
    color: rgba(243,238,230,.5);
}

.sd-hero__hours-line {
    grid-row: 1 / 3;
    width: 1px;
    background: linear-gradient(180deg,transparent,rgba(208,160,111,.72) 30%,rgba(208,160,111,.34) 76%,transparent);
}

.sd-hero__hours p {
    margin: 0;
    min-width: 7.2rem;
    font-size: .65rem;
    line-height: 1.55;
}

.sd-hero__hours strong,
.sd-hero__hours span {
    display: block;
}

.sd-hero__hours strong {
    color: rgba(243,238,230,.82);
    font-size: .57rem;
    font-weight: 650;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.sd-hero__scroll {
    position: absolute;
    z-index: 6;
    left: 50%;
    bottom: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    color: rgba(243,238,230,.36);
    font-size: .52rem;
    font-weight: 650;
    letter-spacing: .18em;
    text-decoration: none;
    text-transform: uppercase;
    transform: translateX(-50%);
}

.sd-hero__scroll i {
    position: relative;
    width: 1px;
    height: 2rem;
    overflow: hidden;
    background: rgba(243,238,230,.12);
}

.sd-hero__scroll i::after {
    position: absolute;
    content: "";
    left: 0;
    top: -1rem;
    width: 1px;
    height: 1rem;
    background: var(--sd-wood-light);
    animation: sdScrollCue 2s ease-in-out infinite;
}

@keyframes sdScrollCue {
    0% { transform: translateY(0); }
    70%,100% { transform: translateY(3rem); }
}

.sd-hero-reveal {
    opacity: 0;
    transform: translate3d(0,1.35rem,0);
    filter: blur(4px);
}

.sd-hero.is-ready .sd-hero-reveal {
    animation: sdHeroReveal .86s var(--sd-ease) forwards;
}

.sd-hero.is-ready .sd-hero__copy > .sd-hero-reveal:nth-child(1) { animation-delay: .07s; }
.sd-hero.is-ready .sd-hero__copy > .sd-hero-reveal:nth-child(2) { animation-delay: .14s; }
.sd-hero.is-ready .sd-hero__copy > .sd-hero-reveal:nth-child(3) { animation-delay: .23s; }
.sd-hero.is-ready .sd-hero__copy > .sd-hero-reveal:nth-child(4) { animation-delay: .31s; }
.sd-hero.is-ready .sd-hero__copy > .sd-hero-reveal:nth-child(5) { animation-delay: .40s; }
.sd-hero.is-ready .sd-hero__copy > .sd-hero-reveal:nth-child(6) { animation-delay: .49s; }
.sd-hero.is-ready .sd-hero__hours.sd-hero-reveal { animation-delay: .58s; }

@keyframes sdHeroReveal {
    to {
        opacity: 1;
        transform: none;
        filter: none;
    }
}

/* ========================= Notre histoire ========================= */
.sd-story {
    position: relative;
    isolation: isolate;
    min-height: clamp(47rem, 82svh, 61rem);
    overflow: hidden;
    background: #080706;
    color: var(--sd-paper);
    border-top: 0;
}

.sd-story::after {
    position: absolute;
    content: "01";
    z-index: 3;
    right: clamp(-1.8rem, -1vw, -.4rem);
    bottom: clamp(-2.8rem, -2.4vw, -1.2rem);
    color: rgba(243,238,230,.025);
    font-size: clamp(11rem, 21vw, 25rem);
    font-weight: 300;
    letter-spacing: -.105em;
    line-height: .74;
    pointer-events: none;
}

.sd-story__media {
    --sd-story-media-y: 0px;
    position: absolute;
    z-index: 0;
    inset: -2.8% -1.5%;
    overflow: hidden;
    transform: translate3d(0, var(--sd-story-media-y), 0);
    will-change: transform;
}

.sd-story__media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: 52% 52%;
    transform: scale(1.045);
    filter: brightness(.90) contrast(1.055) saturate(.94) sepia(.025);
    transition: transform 1.2s var(--sd-ease), filter .9s ease;
}

.sd-story__veil {
    position: absolute;
    z-index: 1;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            rgba(6,6,6,.985) 0%,
            rgba(6,6,6,.975) 16%,
            rgba(6,6,6,.94) 27%,
            rgba(6,6,6,.82) 37%,
            rgba(6,6,6,.55) 47%,
            rgba(6,6,6,.20) 61%,
            rgba(6,6,6,.055) 76%,
            rgba(6,6,6,.02) 100%
        ),
        linear-gradient(
            180deg,
            rgba(0,0,0,.20) 0%,
            rgba(0,0,0,.03) 30%,
            rgba(0,0,0,.035) 66%,
            rgba(0,0,0,.45) 100%
        );
}

.sd-story__texture {
    position: absolute;
    z-index: 2;
    inset: 0;
    pointer-events: none;
    opacity: .34;
    background:
        radial-gradient(circle at 14% 18%, rgba(239,140,128,.06), transparent 23rem),
        linear-gradient(90deg, rgba(208,160,111,.018) 1px, transparent 1px);
    background-size: auto, 5.4rem 100%;
    -webkit-mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.80) 32%, transparent 67%);
    mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.80) 32%, transparent 67%);
}

.sd-story__inner {
    position: relative;
    z-index: 4;
    min-height: inherit;
    display: flex;
    align-items: center;
    padding-top: clamp(5.7rem, 8vw, 8.6rem);
    padding-bottom: clamp(5.7rem, 8vw, 8.6rem);
}

.sd-story__copy {
    position: relative;
    width: min(47rem, 52%);
    max-width: 47rem;
    padding-left: clamp(.15rem, .4vw, .45rem);
}

.sd-story__copy::before {
    position: absolute;
    content: "";
    left: -1.45rem;
    top: 1.05rem;
    width: 1px;
    height: 7.4rem;
    opacity: .48;
    background: linear-gradient(180deg, transparent, rgba(208,160,111,.64), transparent);
}

.sd-story .sd-kicker {
    margin-bottom: clamp(1.45rem, 2vw, 2.1rem);
    color: var(--sd-wood-light);
}

.sd-story__title {
    margin: 0;
    color: var(--sd-paper);
    font-size: clamp(3.35rem, 4.25vw, 5.15rem);
    font-weight: 300;
    letter-spacing: -.058em;
    line-height: .99;
}

.sd-story__title-line {
    display: block;
    white-space: nowrap;
}

.sd-story__lead,
.sd-story__note {
    max-width: 35rem;
    margin: 2rem 0 0;
    color: rgba(243,238,230,.66);
    font-size: clamp(.88rem, .95vw, .98rem);
    font-weight: 400;
    line-height: 1.82;
}

.sd-story__note {
    max-width: 31.5rem;
    margin-top: 1.15rem;
    color: rgba(243,238,230,.58);
    font-size: clamp(.82rem, .86vw, .90rem);
}

.sd-story__accent {
    width: 4.8rem;
    height: .7rem;
    margin-top: 1.7rem;
    display: flex;
    align-items: center;
    gap: .42rem;
}

.sd-story__accent i,
.sd-story__accent span {
    display: block;
    height: 1px;
}

.sd-story__accent i {
    width: 2.85rem;
    transform-origin: left center;
    background: var(--sd-wood-light);
}

.sd-story__accent span {
    width: .62rem;
    background: var(--sd-coral);
}

.sd-story__meta {
    position: absolute;
    right: calc(var(--bs-gutter-x) * .5);
    bottom: clamp(1.6rem, 2.2vw, 2.5rem);
    display: flex;
    align-items: center;
    gap: .75rem;
    color: rgba(243,238,230,.57);
    font-size: .56rem;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.sd-story__meta span {
    color: var(--sd-wood-light);
}

.sd-story__meta small {
    padding-left: .75rem;
    border-left: 1px solid rgba(243,238,230,.20);
    color: rgba(243,238,230,.55);
    font-size: inherit;
    letter-spacing: inherit;
}

.sd-story-reveal {
    opacity: 0;
    transform: translate3d(0, 1.75rem, 0);
    filter: blur(3px);
    transition:
        opacity .76s ease,
        transform .92s var(--sd-ease),
        filter .72s ease;
}

.sd-story-reveal.is-visible {
    opacity: 1;
    transform: none;
    filter: none;
}

.sd-story__copy .sd-story-reveal:nth-child(2) { transition-delay: .07s; }
.sd-story__copy .sd-story-reveal:nth-child(3) { transition-delay: .14s; }
.sd-story__copy .sd-story-reveal:nth-child(4) { transition-delay: .21s; }
.sd-story__copy .sd-story-reveal:nth-child(5) { transition-delay: .28s; }
.sd-story__meta.sd-story-reveal { transition-delay: .30s; }

.sd-story__accent.sd-story-reveal i {
    transform: scaleX(0);
    transition: transform .72s var(--sd-ease) .22s;
}

.sd-story__accent.sd-story-reveal.is-visible i {
    transform: scaleX(1);
}

@media (hover:hover) and (pointer:fine) {
    .sd-story:hover .sd-story__media img {
        transform: scale(1.06);
        filter: brightness(.93) contrast(1.05) saturate(.98) sepia(.018);
    }
}



/* ========================= Signature section ========================= */
.sd-signature {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle at 16% 14%, rgba(255,255,255,.58), transparent 24rem),
        radial-gradient(circle at 96% 8%, rgba(241,177,165,.18), transparent 18rem),
        linear-gradient(180deg, #f3ece2 0%, #efe6da 100%);
    color: var(--sd-ink);
}

.sd-signature::before {
    position: absolute;
    content: "";
    z-index: 0;
    right: clamp(-12rem, -8vw, -3rem);
    top: 51%;
    width: clamp(37rem, 58vw, 63rem);
    height: clamp(37rem, 58vw, 63rem);
    transform: translateY(-49%) rotate(-17deg);
    background: url("../img/sushi-design-logo-icon.75399cb942b7.png") no-repeat center / contain;
    opacity: .88;
    pointer-events: none;
}

.sd-signature::after {
    position: absolute;
    content: "";
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 12% 20%, rgba(255,255,255,.42), transparent 25rem),
        radial-gradient(circle at 102% 15%, rgba(239,140,128,.14), transparent 16rem),
        radial-gradient(circle at 0% 88%, rgba(228,212,191,.30), transparent 16rem),
        linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,0) 40%);
}

.sd-signature__paper {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    opacity: .68;
    background:
        linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 28%),
        url("../img/sushi-design-paper-tile.9e58dbdeceb1.png") 0 0 / 230px 230px repeat;
    mix-blend-mode: multiply;
}

.sd-signature__inner {
    position: relative;
    z-index: 3;
    min-height: clamp(34rem, 48vw, 42rem);
    display: flex;
    align-items: center;
    gap: clamp(2rem, 5vw, 5rem);
    padding-top: clamp(4.75rem, 6vw, 6.25rem);
    padding-bottom: clamp(4.75rem, 6vw, 6.25rem);
}

.sd-signature__copy {
    position: relative;
    width: min(35rem, 44%);
    max-width: 35rem;
}

.sd-signature__title {
    margin: 0;
    color: #151210;
    font-size: clamp(3.3rem, 4.1vw, 5rem);
    font-weight: 700;
    letter-spacing: -.05em;
    line-height: .94;
}

.sd-signature__title span {
    display: block;
}

.sd-signature__lead {
    max-width: 34rem;
    margin: 2rem 0 0;
    color: rgba(25,22,20,.76);
    font-size: clamp(.98rem, 1.05vw, 1.24rem);
    font-weight: 500;
    line-height: 1.62;
}

.sd-signature__accent {
    width: 4.6rem;
    height: .7rem;
    margin-top: 2rem;
    display: flex;
    align-items: center;
    gap: .42rem;
}

.sd-signature__accent i,
.sd-signature__accent span {
    display: block;
    height: 1px;
}

.sd-signature__accent i {
    width: 2.9rem;
    background: rgba(188,132,89,.62);
}

.sd-signature__accent span {
    width: .65rem;
    background: var(--sd-coral-light);
}

.sd-signature__visual {
    position: absolute;
    z-index: 4;
    right: clamp(1.25rem, 4vw, 4.5rem);
    bottom: clamp(1rem, 2.4vw, 2rem);
    width: min(44vw, 42rem);
    max-width: 42rem;
    overflow: visible;
    transform: rotate(-5.5deg);
    transform-origin: center center;
}

.sd-signature__visual::before {
    position: absolute;
    content: "";
    z-index: -1;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 31% 7.8% at 43% 66%, rgba(116, 78, 48, .24) 0%, rgba(124, 84, 52, .16) 42%, rgba(139, 99, 68, .07) 60%, transparent 72%),
        radial-gradient(ellipse 17% 6.6% at 82% 86%, rgba(116, 78, 48, .22) 0%, rgba(124, 84, 52, .14) 44%, rgba(139, 99, 68, .06) 60%, transparent 72%);
    filter: blur(5px);
    transform: translate3d(8px, 11px, 0);
    opacity: .96;
}

.sd-signature__visual img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: auto;
    display: block;
    filter:
        drop-shadow(0 1px 1px rgba(152, 106, 68, .18))
        drop-shadow(0 7px 9px rgba(111, 74, 46, .14))
        drop-shadow(0 16px 15px rgba(92, 60, 36, .08));
}



/* ========================= Restaurant atmosphere ========================= */
.sd-place {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle at 79% 34%, rgba(208,160,111,.055), transparent 30rem),
        linear-gradient(180deg, #080706 0%, #090807 100%);
    color: var(--sd-paper);
}

.sd-place::after {
    position: absolute;
    content: "";
    z-index: 0;
    right: -7rem;
    top: 8%;
    width: 20rem;
    height: 20rem;
    border: 1px solid rgba(239,140,128,.05);
    border-radius: 50%;
    pointer-events: none;
}

.sd-place__inner {
    position: relative;
    z-index: 2;
    min-height: clamp(45.25rem, 58vw, 58.25rem);
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    align-items: center;
    gap: clamp(3.2rem, 6.2vw, 6.7rem);
    padding-top: clamp(1.55rem, 2.1vw, 2.1rem);
    padding-bottom: clamp(1.55rem, 2.1vw, 2.1rem);
}

.sd-place__copy {
    position: relative;
    z-index: 4;
    max-width: 34rem;
}

.sd-place__title {
    margin: 0;
    color: var(--sd-paper);
    font-size: clamp(3.15rem, 4.05vw, 5rem);
    font-weight: 300;
    letter-spacing: -.055em;
    line-height: .98;
}

.sd-place__title span { display: block; }

.sd-place__lead,
.sd-place__note {
    max-width: 31rem;
    margin: 2rem 0 0;
    color: rgba(243,238,230,.62);
    font-size: clamp(.9rem, .95vw, 1rem);
    line-height: 1.76;
}

.sd-place__note {
    max-width: 29rem;
    margin-top: 1.3rem;
    color: rgba(243,238,230,.54);
    font-size: clamp(.84rem, .88vw, .92rem);
}

.sd-place__accent {
    width: 4.8rem;
    height: .7rem;
    margin-top: 1.8rem;
    display: flex;
    align-items: center;
    gap: .42rem;
}

.sd-place__accent i,
.sd-place__accent span { display: block; height: 1px; }
.sd-place__accent i { width: 2.9rem; background: var(--sd-wood-light); }
.sd-place__accent span { width: .65rem; background: var(--sd-coral); }

.sd-place__cta {
    width: fit-content;
    min-height: 3.35rem;
    margin-top: 2rem;
    padding: .9rem 1.25rem;
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    border: 1px solid rgba(208,160,111,.52);
    border-radius: 2px;
    color: rgba(243,238,230,.92);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color .28s ease, background-color .28s ease, border-color .28s ease, transform .3s var(--sd-ease);
}

.sd-place__cta:hover {
    transform: translateY(-2px);
    border-color: rgba(208,160,111,.82);
    background: rgba(208,160,111,.08);
    color: #fff;
}

/* Architectural threads between copy and imagery. They descend from the top
   edge of the section at deliberately different lengths, echoing the concept art. */
.sd-place__threads {
    position: absolute;
    z-index: 3;
    top: 0;
    bottom: 3.5%;
    left: 44.45%;
    width: clamp(5rem, 6.1vw, 6.9rem);
    transform: translateX(-50%);
    pointer-events: none;
}

.sd-place__threads span {
    position: absolute;
    top: 0;
    width: 1px;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(222,170,113,.72) 0%, rgba(195,142,91,.32) 72%, rgba(195,142,91,0) 100%);
    box-shadow: 0 0 12px rgba(208,160,111,.035);
}

.sd-place__threads span:nth-child(1) { left: 2%;  height: 64%; opacity: .92; }
.sd-place__threads span:nth-child(2) { left: 14%; height: 39%; opacity: .42; }
.sd-place__threads span:nth-child(3) { left: 30%; height: 77%; opacity: .72; }
.sd-place__threads span:nth-child(4) { left: 47%; height: 27%; opacity: .36; }
.sd-place__threads span:nth-child(5) { left: 62%; height: 57%; opacity: .66; }
.sd-place__threads span:nth-child(6) { left: 79%; height: 44%; opacity: .40; }
.sd-place__threads span:nth-child(7) { left: 96%; height: 71%; opacity: .58; }

.sd-place__threads span::after {
    position: absolute;
    content: "";
    top: -25%;
    left: -1px;
    width: 3px;
    height: 24%;
    opacity: 0;
    background: linear-gradient(180deg, transparent 0%, rgba(255,220,166,.14) 20%, rgba(255,203,128,.94) 52%, rgba(239,140,128,.35) 75%, transparent 100%);
    filter: blur(.35px);
    transform: translateY(0);
}

.sd-place__threads span:nth-child(1)::after,
.sd-place__threads span:nth-child(3)::after,
.sd-place__threads span:nth-child(5)::after,
.sd-place__threads span:nth-child(7)::after {
    animation: sd-place-thread-flow 5.8s cubic-bezier(.42,0,.28,1) infinite;
}

.sd-place__threads span:nth-child(3)::after { animation-delay: -1.8s; }
.sd-place__threads span:nth-child(5)::after { animation-delay: -3.4s; }
.sd-place__threads span:nth-child(7)::after { animation-delay: -4.6s; }

@keyframes sd-place-thread-flow {
    0%   { transform: translateY(-10%); opacity: 0; }
    12%  { opacity: .82; }
    72%  { opacity: .46; }
    100% { transform: translateY(520%); opacity: 0; }
}

.sd-place__gallery {
    position: relative;
    min-height: clamp(46rem, 59.5vw, 59rem);
    align-self: stretch;
}

.sd-place__shot {
    position: absolute;
    overflow: hidden;
    margin: 0;
    background: #0a0908;
    box-shadow: 0 1.5rem 4rem rgba(0,0,0,.27);
}

.sd-place__shot::after {
    position: absolute;
    content: "";
    inset: 0;
    pointer-events: none;
    border: 1px solid rgba(243,238,230,.07);
    box-shadow: inset 0 0 0 1px rgba(208,160,111,.035);
}

.sd-place__shot img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(.88) contrast(1.055) saturate(.92) sepia(.02);
    transition: transform 1.1s var(--sd-ease), filter .7s ease;
}

/* The main image owns almost the whole visual column. Its upper-right notch is
   physically cut out so the detail panel is part of the composition rather
   than merely sitting on top of it. */
.sd-place__shot--main {
    z-index: 2;
    left: 5.7%;
    right: 0;
    top: .18%;
    bottom: .18%;
    clip-path: polygon(0 0, 54.7% 0, 54.7% 31.2%, 100% 31.2%, 100% 100%, 0 100%);
}

.sd-place__shot--main img { object-position: 50% 49%; }

.sd-place__shot--lamp {
    z-index: 3;
    left: 52.2%;
    right: -5.4%;
    top: 0;
    height: 32.2%;
    border-left: .7rem solid #090807;
    border-bottom: .7rem solid #090807;
}

.sd-place__shot--lamp img { object-position: 55% 49%; }

@media (hover:hover) and (pointer:fine) {
    .sd-place__shot:hover img {
        transform: scale(1.018);
        filter: brightness(.95) contrast(1.04) saturate(.98) sepia(.01);
    }
}

@media (max-width: 1199.98px) {
    .sd-place__inner {
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
        gap: 3rem;
    }

    .sd-place__title { font-size: clamp(3rem, 4.7vw, 4.4rem); }
    .sd-place__gallery { min-height: 44rem; }
    .sd-place__threads { left: 44.8%; width: 4.8rem; }
    .sd-place__shot--main { left: 3%; }
    .sd-place__shot--lamp {
        left: 52.8%;
        right: -4.2%;
        height: 31.2%;
    }
}

@media (max-width: 991.98px) {
    .sd-place__inner {
        min-height: auto;
        grid-template-columns: 1fr;
        gap: 3.3rem;
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .sd-place__copy { max-width: 39rem; }
    .sd-place__gallery { min-height: clamp(35rem, 84vw, 44rem); }

    .sd-place__threads {
        left: auto;
        right: 1.4rem;
        width: 5rem;
        height: 54%;
        bottom: auto;
        opacity: .62;
    }

    .sd-place__shot--main {
        left: 4%;
        clip-path: polygon(0 0, 60% 0, 60% 26%, 100% 26%, 100% 100%, 0 100%);
    }

    .sd-place__shot--lamp {
        left: 58.4%;
        right: 0;
        height: 27.4%;
    }
}

@media (max-width: 767.98px) {
    .sd-place__inner {
        gap: 2.5rem;
        padding-top: 3.5rem;
        padding-bottom: 3.3rem;
    }

    .sd-place__title { font-size: clamp(2.9rem, 12vw, 4.25rem); }

    .sd-place__lead {
        margin-top: 1.55rem;
        font-size: .91rem;
        line-height: 1.7;
    }

    .sd-place__note { font-size: .82rem; line-height: 1.66; }
    .sd-place__cta { width: 100%; justify-content: space-between; }

    .sd-place__gallery { min-height: clamp(31.5rem, 124vw, 40rem); }
    .sd-place__threads { display: none; }

    .sd-place__shot--main {
        left: 0;
        top: 1%;
        bottom: 1%;
        clip-path: polygon(0 0, 57% 0, 57% 24%, 100% 24%, 100% 100%, 0 100%);
    }

    .sd-place__shot--lamp {
        left: 55%;
        right: 0;
        top: 0;
        height: 25.5%;
        border-left-width: .55rem;
        border-bottom-width: .55rem;
    }
}

@media (max-width: 575.98px) {
    .sd-place__gallery { min-height: 31rem; }
    .sd-place__shot--main img { object-position: 50% 50%; }
    .sd-place__shot--lamp img { object-position: 58% 50%; }
}

@media (prefers-reduced-motion: reduce) {
    .sd-place__threads span::after { animation: none !important; }
}



/* ========================= Flavors section ========================= */
.sd-flavors {
    position: relative;
    isolation: isolate;
    min-height: clamp(39rem, 48vw, 48rem);
    overflow: hidden;
    background: #090807;
    color: var(--sd-paper);
}

.sd-flavors__media,
.sd-flavors__veil,
.sd-flavors__texture {
    position: absolute;
    inset: 0;
}

.sd-flavors__media {
    z-index: 0;
    overflow: hidden;
}

.sd-flavors__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 67% 52%;
    filter: brightness(.83) contrast(1.055) saturate(.92) sepia(.025);
    transform: scale(1.006);
    transition: transform 1.3s var(--sd-ease), filter .8s ease;
}

.sd-flavors:hover .sd-flavors__media img {
    transform: scale(1.018);
    filter: brightness(.87) contrast(1.05) saturate(.96) sepia(.018);
}

.sd-flavors__veil {
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(90deg,
            rgba(7,7,7,.98) 0%,
            rgba(7,7,7,.96) 20%,
            rgba(7,7,7,.84) 34%,
            rgba(7,7,7,.53) 47%,
            rgba(7,7,7,.14) 66%,
            rgba(7,7,7,.03) 100%),
        linear-gradient(180deg, rgba(7,7,7,.18), transparent 20%, transparent 76%, rgba(7,7,7,.25));
}

.sd-flavors__texture {
    z-index: 2;
    pointer-events: none;
    opacity: .26;
    background:
        radial-gradient(circle at 9% 88%, rgba(220,87,87,.07), transparent 15rem),
        repeating-linear-gradient(90deg, rgba(255,255,255,.008) 0 1px, transparent 1px 7px);
    mix-blend-mode: screen;
}

.sd-flavors__inner {
    position: relative;
    z-index: 3;
    min-height: inherit;
    display: flex;
    align-items: center;
    padding-top: clamp(4.3rem, 6vw, 6rem);
    padding-bottom: clamp(4.3rem, 6vw, 6rem);
}

.sd-flavors__copy {
    width: min(39rem, 48%);
    max-width: 39rem;
}

.sd-flavors__title {
    margin: 0;
    color: var(--sd-paper);
    font-size: clamp(3.25rem, 4.6vw, 5.4rem);
    font-weight: 300;
    letter-spacing: -.055em;
    line-height: .96;
}

.sd-flavors__title span {
    display: block;
}

.sd-flavors__lead,
.sd-flavors__note {
    max-width: 33rem;
    margin: 2rem 0 0;
    color: rgba(243,238,230,.66);
    font-size: clamp(.92rem, .98vw, 1.03rem);
    line-height: 1.72;
}

.sd-flavors__note {
    max-width: 27rem;
    margin-top: 1.3rem;
    color: rgba(243,238,230,.54);
    font-size: clamp(.84rem, .9vw, .94rem);
}

.sd-flavors__accent {
    width: 4.8rem;
    height: .7rem;
    margin-top: 1.8rem;
    display: flex;
    align-items: center;
    gap: .42rem;
}

.sd-flavors__accent i,
.sd-flavors__accent span {
    display: block;
    height: 1px;
}

.sd-flavors__accent i {
    width: 2.9rem;
    background: var(--sd-wood-light);
}

.sd-flavors__accent span {
    width: .65rem;
    background: var(--sd-coral);
}

@media (max-width: 991.98px) {
    .sd-flavors {
        min-height: clamp(38rem, 82vw, 44rem);
    }

    .sd-flavors__media img {
        object-position: 66% 53%;
    }

    .sd-flavors__veil {
        background:
            linear-gradient(90deg,
                rgba(7,7,7,.97) 0%,
                rgba(7,7,7,.91) 34%,
                rgba(7,7,7,.66) 54%,
                rgba(7,7,7,.27) 76%,
                rgba(7,7,7,.12) 100%),
            linear-gradient(180deg, rgba(7,7,7,.18), transparent 26%, transparent 72%, rgba(7,7,7,.28));
    }

    .sd-flavors__copy {
        width: min(36rem, 66%);
    }
}

@media (max-width: 767.98px) {
    .sd-flavors {
        min-height: auto;
    }

    .sd-flavors__media img {
        object-position: 63% 54%;
        filter: brightness(.68) contrast(1.06) saturate(.86) sepia(.03);
    }

    .sd-flavors:hover .sd-flavors__media img {
        transform: scale(1.006);
        filter: brightness(.68) contrast(1.06) saturate(.86) sepia(.03);
    }

    .sd-flavors__veil {
        background:
            linear-gradient(180deg,
                rgba(7,7,7,.91) 0%,
                rgba(7,7,7,.76) 30%,
                rgba(7,7,7,.62) 58%,
                rgba(7,7,7,.78) 100%),
            linear-gradient(90deg, rgba(7,7,7,.88) 0%, rgba(7,7,7,.36) 100%);
    }

    .sd-flavors__inner {
        min-height: 38rem;
        align-items: flex-start;
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .sd-flavors__copy {
        width: 100%;
        max-width: 35rem;
    }

    .sd-flavors__title {
        font-size: clamp(3rem, 13vw, 4.5rem);
    }

    .sd-flavors__lead {
        margin-top: 1.6rem;
        font-size: .92rem;
        line-height: 1.7;
    }

    .sd-flavors__note {
        font-size: .83rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sd-flavors__media img {
        transition: none;
        transform: none !important;
    }
}


/* ========================= Reservation closing ========================= */
.sd-reservation {
    position: relative;
    isolation: isolate;
    min-height: clamp(29rem, 33vw, 35.5rem);
    overflow: hidden;
    background:
        radial-gradient(circle at 14% 16%, rgba(255,255,255,.56), transparent 25rem),
        radial-gradient(circle at 94% 12%, rgba(241,177,165,.16), transparent 20rem),
        linear-gradient(180deg, #f4ede3 0%, #efe5d8 100%);
    color: var(--sd-ink);
}

/* Same watercolor signature used earlier, but the mark itself is mirrored
   on both axes here to close the visual story without repeating the exact
   third-screen composition. */
.sd-reservation__mark {
    position: absolute;
    z-index: 0;
    right: clamp(-14rem, -8vw, -5rem);
    top: 52%;
    width: clamp(38rem, 54vw, 61rem);
    aspect-ratio: 1;
    pointer-events: none;
    background: url("../img/sushi-design-logo-icon.75399cb942b7.png") no-repeat center / contain;
    opacity: .90;
    transform: translateY(-50%) scaleX(-1) scaleY(-1) rotate(-10deg);
    transform-origin: center;
    filter: saturate(.96) contrast(.99);
}

.sd-reservation__paper {
    position: absolute;
    z-index: 1;
    inset: 0;
    pointer-events: none;
    opacity: .70;
    background:
        linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 30%),
        url("../img/sushi-design-paper-tile.9e58dbdeceb1.png") 0 0 / 230px 230px repeat;
    mix-blend-mode: multiply;
}

.sd-reservation__glow {
    position: absolute;
    z-index: 2;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 5% 86%, rgba(227,207,184,.34), transparent 16rem),
        radial-gradient(circle at 101% 14%, rgba(239,140,128,.10), transparent 18rem),
        linear-gradient(90deg, rgba(255,255,255,.15), rgba(255,255,255,0) 48%);
}

.sd-reservation__inner {
    position: relative;
    z-index: 3;
    min-height: inherit;
    display: flex;
    align-items: center;
    padding-top: clamp(4.6rem, 6vw, 6.25rem);
    padding-bottom: clamp(4.6rem, 6vw, 6.25rem);
}

.sd-reservation__copy {
    width: min(39rem, 52%);
    max-width: 39rem;
}

.sd-reservation__title {
    margin: 0;
    color: #151210;
    font-size: clamp(3.35rem, 4.6vw, 5.35rem);
    font-weight: 380;
    letter-spacing: -.055em;
    line-height: .98;
}

.sd-reservation__lead {
    max-width: 33rem;
    margin: 1.7rem 0 0;
    color: rgba(25,22,20,.72);
    font-size: clamp(.98rem, 1.08vw, 1.18rem);
    font-weight: 500;
    line-height: 1.62;
}

.sd-reservation__cta {
    min-width: clamp(16.5rem, 20vw, 20rem);
    margin-top: 2.25rem;
    min-height: 4.6rem;
    justify-content: space-between;
    padding-inline: 1.8rem;
    box-shadow: 0 12px 30px rgba(217, 75, 80, .12);
}

.sd-reservation__cta i {
    position: relative;
    z-index: 3;
    margin-left: 1.2rem;
    font-size: 1rem;
    transition: transform .32s var(--sd-ease);
}

.sd-reservation__cta:hover i {
    transform: translate(3px,-3px);
}

.sd-reservation__copy .sd-story-reveal:nth-child(2) { transition-delay: .06s; }
.sd-reservation__copy .sd-story-reveal:nth-child(3) { transition-delay: .13s; }
.sd-reservation__copy .sd-story-reveal:nth-child(4) { transition-delay: .20s; }

@media (max-width: 1199.98px) {
    .sd-reservation {
        min-height: clamp(28rem, 41vw, 33rem);
    }

    .sd-reservation__mark {
        right: -13rem;
        width: clamp(36rem, 62vw, 49rem);
    }

    .sd-reservation__copy {
        width: min(36rem, 56%);
    }
}

@media (max-width: 991.98px) {
    .sd-reservation {
        min-height: 34rem;
    }

    .sd-reservation__mark {
        right: -15rem;
        top: 58%;
        width: clamp(36rem, 78vw, 46rem);
        opacity: .68;
        transform: translateY(-50%) scaleX(-1) scaleY(-1) rotate(-9deg);
    }

    .sd-reservation__inner {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }

    .sd-reservation__copy {
        width: min(34rem, 67%);
    }
}

@media (max-width: 767.98px) {
    .sd-reservation {
        min-height: 33rem;
    }

    .sd-reservation__mark {
        right: -17.5rem;
        top: 61%;
        width: 39rem;
        opacity: .52;
    }

    .sd-reservation__inner {
        align-items: flex-start;
        padding-top: 4.4rem;
        padding-bottom: 4.6rem;
    }

    .sd-reservation__copy {
        width: 100%;
        max-width: 31rem;
    }

    .sd-reservation__title {
        max-width: 29rem;
        font-size: clamp(3rem, 12.9vw, 4.35rem);
    }

    .sd-reservation__lead {
        max-width: 28rem;
        font-size: .94rem;
    }

    .sd-reservation__cta {
        min-width: min(19rem, 100%);
        margin-top: 2rem;
        min-height: 4.35rem;
    }
}

@media (max-width: 575.98px) {
    .sd-reservation {
        min-height: 31rem;
    }

    .sd-reservation__mark {
        right: -18.75rem;
        top: 64%;
        width: 38rem;
        opacity: .46;
    }

    .sd-reservation__inner {
        padding-top: 4rem;
        padding-bottom: 4.2rem;
    }

    .sd-reservation__title {
        font-size: clamp(2.75rem, 13.6vw, 3.9rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .sd-reservation__cta,
    .sd-reservation__cta i {
        transition: none;
    }
}

/* ========================= Footer ========================= */
.sd-footer {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(3.6rem, 5.5vw, 5.8rem) 0 2rem;
    background:
        radial-gradient(circle at -4% 42%, rgba(220,87,87,.10) 0%, rgba(220,87,87,.035) 18%, transparent 31%),
        radial-gradient(circle at 104% 36%, rgba(208,160,111,.075) 0%, rgba(208,160,111,.025) 17%, transparent 30%),
        #070707;
    color: var(--sd-paper);
}

.sd-footer::after {
    position: absolute;
    content: "";
    z-index: -1;
    inset: 0;
    pointer-events: none;
    opacity: .24;
    background-image:
        linear-gradient(rgba(255,255,255,.012) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.008) 1px, transparent 1px);
    background-size: 4px 4px, 4px 4px;
    mask-image: linear-gradient(180deg, rgba(0,0,0,.68), transparent 82%);
}

.sd-footer__ornament {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: clamp(2.8rem, 4vw, 4rem);
}

.sd-footer__ornament-line {
    height: 1px;
    flex: 1 1 auto;
    background: linear-gradient(90deg, transparent, rgba(208,160,111,.58));
}

.sd-footer__ornament-line:last-child {
    background: linear-gradient(90deg, rgba(208,160,111,.58), transparent);
}

.sd-footer__ornament-seal {
    width: 2.8rem;
    height: 2.8rem;
    flex: 0 0 2.8rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(208,160,111,.48);
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgba(208,160,111,.025);
}

.sd-footer__ornament-glyph {
    width: 1.55rem;
    height: 1.55rem;
    overflow: visible;
    fill: none;
    stroke: rgba(218, 171, 121, .92);
    stroke-width: 1.55;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .96;
    transform-origin: 50% 50%;
    transition: opacity .25s ease, transform .35s ease, stroke .25s ease;
}

.sd-footer__ornament-seal:hover .sd-footer__ornament-glyph {
    stroke: rgba(232, 190, 143, 1);
    opacity: 1;
    transform: rotate(4deg) scale(1.04);
}

.sd-footer__main {
    position: relative;
    padding: 0 0 clamp(3rem, 4.5vw, 4.25rem);
}

.sd-footer__panel {
    position: relative;
    min-height: 15.5rem;
    height: 100%;
    padding: .6rem clamp(2rem, 4vw, 4.4rem);
}

.sd-footer__main > div:first-child .sd-footer__panel {
    padding-left: 0;
}

.sd-footer__main > div:last-child .sd-footer__panel {
    padding-right: 0;
}

.sd-footer__panel--divided::before {
    position: absolute;
    content: "";
    top: .65rem;
    bottom: .65rem;
    left: 0;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(208,160,111,.7) 14%, rgba(208,160,111,.7) 86%, transparent);
}

.sd-footer__brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.sd-footer__brand-mark {
    width: clamp(4.9rem, 5.4vw, 6.2rem);
    height: auto;
    margin-bottom: 1.05rem;
}

.sd-footer__brand-title {
    width: clamp(11.2rem, 13vw, 14.4rem);
    height: auto;
}

.sd-footer__brand-tagline {
    margin: 1.05rem 0 0;
    color: var(--sd-wood-light);
    font-size: clamp(.65rem, .75vw, .78rem);
    font-weight: 650;
    letter-spacing: .2em;
    line-height: 1.5;
    text-transform: uppercase;
}

.sd-footer__heading {
    margin: .25rem 0 1.7rem;
    color: var(--sd-wood-light);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .2em;
    line-height: 1.4;
    text-transform: uppercase;
}

.sd-footer__info-row {
    width: fit-content;
    max-width: 100%;
    display: flex;
    align-items: flex-start;
    gap: 1.1rem;
    margin-bottom: 1.15rem;
    color: rgba(243,238,230,.83);
    text-decoration: none;
}

.sd-footer__info-row[href] {
    transition: color .28s ease, transform .28s var(--sd-ease);
}

.sd-footer__info-row[href]:hover {
    color: var(--sd-paper);
    transform: translateX(.2rem);
}

.sd-footer__icon {
    width: 2.8rem;
    height: 2.8rem;
    flex: 0 0 2.8rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(208,160,111,.58);
    border-radius: 50%;
    color: var(--sd-wood-light);
    font-size: 1.15rem;
}

.sd-footer__info-copy {
    padding-top: .58rem;
    font-size: clamp(.88rem, 1vw, 1.05rem);
    font-weight: 450;
    line-height: 1.6;
}

.sd-footer__hours {
    display: grid;
    gap: .65rem;
    padding-top: .42rem;
}

.sd-footer__hours > span {
    display: grid;
    gap: .08rem;
}

.sd-footer__hours strong {
    color: rgba(243,238,230,.92);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sd-footer__hours em {
    color: rgba(243,238,230,.68);
    font-size: clamp(.82rem, .92vw, .98rem);
    font-style: normal;
    line-height: 1.55;
    white-space: nowrap;
}

.sd-footer__bottom {
    padding-top: 1.55rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.4rem 2.2rem;
    border-top: 1px solid rgba(208,160,111,.28);
    color: rgba(243,238,230,.38);
    font-size: .64rem;
}

.sd-footer__legal,
.sd-footer__nav {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .65rem 0;
}

.sd-footer__legal > *,
.sd-footer__nav > * {
    position: relative;
}

.sd-footer__legal > * + *,
.sd-footer__nav > * + * {
    margin-left: 1.25rem;
    padding-left: 1.25rem;
}

.sd-footer__legal > * + *::before,
.sd-footer__nav > * + *::before {
    position: absolute;
    content: "";
    top: 50%;
    left: 0;
    width: 1px;
    height: 1.1em;
    transform: translateY(-50%);
    background: rgba(208,160,111,.42);
}

.sd-footer__bottom a {
    color: rgba(243,238,230,.53);
    text-decoration: none;
    transition: color .25s ease;
}

.sd-footer__bottom a:hover {
    color: var(--sd-paper);
}

.sd-footer__top-link {
    color: rgba(208,160,111,.72) !important;
}

.sd-footer__top-link:hover {
    color: var(--sd-wood-light) !important;
}

@media (max-width: 991.98px) {
    .sd-footer {
        padding-top: 3.6rem;
    }

    .sd-footer__ornament {
        margin-bottom: 2.6rem;
    }

    .sd-footer__panel {
        min-height: auto;
        padding: 2.2rem 0;
    }

    .sd-footer__main > div:first-child .sd-footer__panel {
        padding-top: .2rem;
    }

    .sd-footer__panel--divided::before {
        top: 0;
        right: 0;
        bottom: auto;
        width: auto;
        height: 1px;
        background: linear-gradient(90deg, rgba(208,160,111,.52), transparent 78%);
    }

    .sd-footer__brand {
        padding-bottom: 2.8rem;
    }

    .sd-footer__brand-mark {
        width: 5.2rem;
    }

    .sd-footer__brand-title {
        width: 12rem;
    }

    .sd-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .sd-footer__legal,
    .sd-footer__nav {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .sd-footer {
        padding-top: 3rem;
    }

    .sd-footer__ornament {
        gap: .75rem;
        margin-bottom: 2rem;
    }

    .sd-footer__ornament-seal {
        width: 2.45rem;
        height: 2.45rem;
        flex-basis: 2.45rem;
    }

    .sd-footer__panel {
        padding: 1.9rem 0;
    }

    .sd-footer__brand-mark {
        width: 4.75rem;
    }

    .sd-footer__brand-title {
        width: 11rem;
    }

    .sd-footer__brand-tagline {
        font-size: .62rem;
        letter-spacing: .16em;
    }

    .sd-footer__heading {
        margin-bottom: 1.35rem;
    }

    .sd-footer__icon {
        width: 2.55rem;
        height: 2.55rem;
        flex-basis: 2.55rem;
        font-size: 1.05rem;
    }

    .sd-footer__info-row {
        gap: .9rem;
    }

    .sd-footer__hours em {
        white-space: normal;
    }

    .sd-footer__bottom {
        padding-top: 1.35rem;
        font-size: .61rem;
    }

    .sd-footer__legal,
    .sd-footer__nav {
        align-items: flex-start;
        flex-direction: column;
        gap: .55rem;
    }

    .sd-footer__legal > * + *,
    .sd-footer__nav > * + * {
        margin-left: 0;
        padding-left: 0;
    }

    .sd-footer__legal > * + *::before,
    .sd-footer__nav > * + *::before {
        display: none;
    }
}

/* ========================= Responsive ========================= */
@media (min-width: 1800px) {
    .container-xxl {
        max-width: 1500px;
    }

    .sd-hero__title {
        font-size: 7.2rem;
    }
}

@media (max-width: 1199.98px) {
    .sd-hero__media {
        left: 23%;
    }

    .sd-hero__title {
        font-size: clamp(4.1rem,7.3vw,6.2rem);
    }

    .sd-hero__hours {
        display: none;
    }

    .sd-story__copy {
        width: min(41rem, 57%);
    }

    .sd-story__title {
        font-size: clamp(3.25rem, 4.6vw, 4.6rem);
    }
}

@media (min-width: 992px) and (max-height: 840px) {
    .sd-hero,
    .sd-hero__inner,
    .sd-hero__inner > .row {
        min-height: 100svh !important;
    }

    .sd-hero__inner > .row {
        padding-bottom: 2rem;
    }

    .sd-hero__copy {
        padding-top: .7rem;
    }

    .sd-hero__copy > .sd-kicker {
        margin-bottom: .8rem;
    }

    .sd-hero__title {
        font-size: clamp(3.7rem, 5.05vw, 5.35rem);
    }

    .sd-hero__tagline {
        margin-top: 1rem;
        font-size: 1rem;
    }

    .sd-hero__lead {
        margin-top: .9rem;
        max-width: 32rem;
        font-size: .86rem;
        line-height: 1.58;
    }

    .sd-hero__actions {
        margin-top: 1.35rem;
    }

    .sd-btn {
        min-height: 3.15rem;
        padding-block: .8rem;
    }

    .sd-hero__address {
        margin-top: 1.15rem;
    }

    .sd-hero__hours {
        bottom: 1.7rem;
    }
}

@media (max-width: 991.98px) {
    .sd-header__actions {
        margin-left: auto;
    }

    .sd-hero__media {
        inset: 0;
    }

    .sd-hero__poster {
        object-position: 64% 51%;
    }

    .sd-hero__title {
        width: auto;
        max-width: 10.4ch;
    }

    .sd-hero__title-line {
        white-space: normal;
    }

    .sd-hero__veil {
        background:
            linear-gradient(90deg, rgba(8,8,8,.97) 0%, rgba(8,8,8,.90) 38%, rgba(8,8,8,.50) 77%, rgba(8,8,8,.22) 100%),
            linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.05) 35%, rgba(0,0,0,.18) 63%, rgba(0,0,0,.73) 100%);
    }

    .sd-hero__slats {
        width: 47vw;
    }

   .sd-hero__copy {
        width: min(100%, 38rem);
    }

    .sd-hero__watermark {
        left: -13.5rem;
        width: clamp(31rem, 66vw, 42rem);
        opacity: .087;
        transform: translate3d(0,-50%,0) rotate(-17deg);
    }

    .sd-story__media {
        inset: -3% -4%;
    }

    .sd-story__media img {
        object-position: 58% 50%;
    }

    .sd-story__veil {
        background:
            linear-gradient(90deg, rgba(6,6,6,.985) 0%, rgba(6,6,6,.95) 30%, rgba(6,6,6,.78) 48%, rgba(6,6,6,.35) 74%, rgba(6,6,6,.12) 100%),
            linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.04) 38%, rgba(0,0,0,.48) 100%);
    }

    .sd-story__copy {
        width: min(40rem, 66%);
    }

    .sd-story__title {
        font-size: clamp(3.2rem, 5.7vw, 4.6rem);
    }
}

@media (max-width: 767.98px) {
    :root {
        --sd-header-height: 74px;
    }

    .container-xxl,
    .container {
        --bs-gutter-x: 2.3rem;
    }

    .sd-brand__mark {
        width: 2.45rem;
    }

    .sd-brand__title {
        width: 6.75rem;
    }

    .sd-hero {
        min-height: max(720px,100svh);
    }

    .sd-hero__inner,
    .sd-hero__inner > .row {
        min-height: max(720px,100svh) !important;
    }

    .sd-hero__inner > .row {
        align-items: end !important;
        padding-top: calc(var(--sd-header-height) + 5rem);
        padding-bottom: 6rem;
    }

   .sd-hero__copy {
        padding-top: 0;
    }

    .sd-hero__title {
        max-width: 9.4ch;
        font-size: clamp(3.65rem,15vw,5.6rem);
        line-height: .92;
    }

    .sd-hero__tagline {
        margin-top: 1.35rem;
        font-size: 1.04rem;
    }

    .sd-hero__lead {
        max-width: 31rem;
        font-size: .9rem;
        line-height: 1.7;
    }

    .sd-hero__actions {
        margin-top: 1.8rem;
    }

    .sd-hero__address {
        display: none;
    }

    .sd-hero__scroll {
        display: none;
    }

    .sd-mobile-menu__footer {
        grid-template-columns: 1fr;
    }

    .sd-mobile-menu__footer .sd-btn {
        width: 100%;
    }

    .sd-story {
        min-height: clamp(46rem, 88svh, 54rem);
    }

    .sd-story__media {
        inset: -2.5rem -8rem;
    }

    .sd-story__media img {
        object-position: 61% 50%;
        transform: scale(1.055);
    }

    .sd-story__veil {
        background:
            linear-gradient(90deg, rgba(6,6,6,.98) 0%, rgba(6,6,6,.94) 34%, rgba(6,6,6,.70) 57%, rgba(6,6,6,.30) 100%),
            linear-gradient(180deg, rgba(0,0,0,.16) 0%, rgba(0,0,0,.08) 42%, rgba(0,0,0,.66) 100%);
    }

    .sd-story__inner {
        align-items: flex-end;
        padding-top: 7.2rem;
        padding-bottom: 6.4rem;
    }

    .sd-story__copy {
        width: min(39rem, 78%);
        max-width: 39rem;
    }

    .sd-story__title {
        font-size: clamp(3.35rem, 7.2vw, 4.85rem);
    }

    .sd-story__meta {
        right: calc(var(--bs-gutter-x) * .5);
        bottom: 1.25rem;
    }

}

@media (max-width: 575.98px) {
    .sd-header__inner {
        gap: .8rem;
    }

    .sd-brand__mark {
        width: 2.2rem;
        height: auto;
    }

    .sd-brand__title {
        width: 6.15rem;
    }

    .sd-hero__poster {
        object-position: 68% 50%;
    }

    .sd-hero__veil {
        background:
            linear-gradient(90deg, rgba(8,8,8,.96) 0%, rgba(8,8,8,.81) 50%, rgba(8,8,8,.35) 100%),
            linear-gradient(180deg, rgba(0,0,0,.39) 0%, rgba(0,0,0,.08) 31%, rgba(0,0,0,.20) 57%, rgba(0,0,0,.82) 100%);
    }

    .sd-hero__slats {
        display: none;
    }

    .sd-hero__watermark {
        top: 42%;
        left: -12.75rem;
        width: 29rem;
        opacity: .072;
        transform: translate3d(0,-50%,0) rotate(-18deg);
    }

    .sd-hero__title {
        font-size: clamp(3.35rem,16.4vw,4.75rem);
    }

    .sd-hero__lead {
        max-width: 26rem;
    }

    .sd-hero__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .sd-btn {
        width: 100%;
    }

    .sd-story {
        min-height: max(720px, 100svh);
    }

    .sd-story__media {
        inset: -2rem -10rem;
    }

    .sd-story__media img {
        object-position: 66% 50%;
        filter: brightness(.82) contrast(1.055) saturate(.92) sepia(.02);
    }

    .sd-story__veil {
        background:
            linear-gradient(90deg, rgba(6,6,6,.97) 0%, rgba(6,6,6,.88) 55%, rgba(6,6,6,.54) 100%),
            linear-gradient(180deg, rgba(0,0,0,.22) 0%, rgba(0,0,0,.10) 28%, rgba(0,0,0,.82) 100%);
    }

    .sd-story__texture {
        opacity: .22;
    }

    .sd-story__inner {
        align-items: flex-start;
        padding-top: calc(var(--sd-header-height) + 2.25rem);
        padding-bottom: 5.4rem;
    }

    .sd-story__copy {
        width: 100%;
        max-width: 32rem;
        padding-left: 0;
    }

    .sd-story__copy::before {
        display: none;
    }

    .sd-story__title {
        font-size: clamp(3.05rem, 12.4vw, 4.25rem);
        line-height: .96;
    }

    .sd-story__title-line {
        white-space: normal;
    }

    .sd-story__lead {
        max-width: 29rem;
        margin-top: 1.55rem;
        font-size: .88rem;
        line-height: 1.72;
    }

    .sd-story__note {
        max-width: 27rem;
        font-size: .81rem;
        line-height: 1.68;
    }

    .sd-story__meta {
        left: calc(var(--bs-gutter-x) * .5);
        right: auto;
        bottom: 1.2rem;
        flex-direction: column;
        align-items: flex-start;
        gap: .28rem;
    }

    .sd-story__meta small {
        padding-left: 0;
        border-left: 0;
    }
}

@media (hover:hover) and (pointer:fine) {
    .sd-mobile-menu__nav a:hover {
        border-color: rgba(239,140,128,.34);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }

    .sd-hero-reveal,
    .sd-story-reveal {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }

    .sd-hero__canvas {
        display: none !important;
    }

    .sd-hero__poster {
        opacity: 1 !important;
    }
}

/* ========================= v1.4.2 mobile story flow fix ========================= */
@media (max-width: 575.98px) {
    /* Let the section follow its real content height instead of forcing a full
       viewport after the copy has already finished. */
    .sd-story {
        min-height: 0;
    }

    .sd-story__inner {
        min-height: 0;
        display: block;
        padding-top: calc(var(--sd-header-height) + 2.25rem);
        padding-bottom: 3.25rem;
    }

    /* On phones the meta becomes part of the normal reading flow. This removes
       the large dead zone created by pinning it to the bottom of a 100svh section. */
    .sd-story__meta {
        position: relative;
        left: auto;
        right: auto;
        bottom: auto;
        margin-top: 2.9rem;
        flex-direction: column;
        align-items: flex-start;
        gap: .28rem;
    }
}


@media (max-width: 1199.98px) {
    .sd-signature::before {
        right: -10rem;
        width: 48rem;
        height: 48rem;
        opacity: .85;
        transform: translateY(-49%) rotate(-16deg);
    }

    .sd-signature__copy {
        width: min(37rem, 50%);
    }

    .sd-signature__visual {
        width: min(42vw, 34rem);
        right: 1.2rem;
        bottom: 1rem;
    }
}

@media (max-width: 991.98px) {
    .sd-story::after {
        display: none;
    }

    .sd-signature::before {
        right: -9.5rem;
        top: 6.75rem;
        width: 33rem;
        height: 33rem;
        transform: rotate(-15deg);
        opacity: .74;
    }

    .sd-signature__inner {
        min-height: auto;
        display: block;
        padding-top: 4.25rem;
        padding-bottom: 3.5rem;
    }

    .sd-signature__copy {
        width: min(100%, 38rem);
        max-width: 38rem;
    }

    .sd-signature__visual {
        position: relative;
        right: auto;
        bottom: auto;
        width: min(100%, 34rem);
        margin: 2rem auto 0;
        transform: rotate(-4.5deg);
    }
}

@media (max-width: 767.98px) {
    .sd-signature {
        padding-top: 0;
    }

    .sd-signature::before {
        right: -10.5rem;
        top: 8.2rem;
        width: 31rem;
        height: 31rem;
        transform: rotate(-15deg);
        opacity: .72;
    }

    .sd-signature__paper {
        opacity: .56;
        background-size: 190px 190px;
    }

    .sd-signature__inner {
        padding-top: 3rem;
        padding-bottom: 2.8rem;
    }

    .sd-signature__title {
        font-size: clamp(2.85rem, 12vw, 4.1rem);
    }

    .sd-signature__lead {
        margin-top: 1.5rem;
        font-size: 1.02rem;
        line-height: 1.68;
    }

    .sd-signature__accent {
        margin-top: 1.6rem;
    }

    .sd-signature__visual {
        width: min(100%, 30rem);
        margin-top: 1.8rem;
        transform: rotate(-4deg);
    }
}

@media (max-width: 575.98px) {
    .sd-signature::before {
        opacity: .70;
    }
}


/* ========================= Navigation rework v1.9.5 ========================= */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .sd-header__inner {
        gap: 1rem;
    }

    .sd-nav {
        gap: .82rem;
    }

    .sd-nav a {
        font-size: .56rem;
        letter-spacing: .075em;
    }

    .sd-header__reserve {
        padding-inline: .78rem;
    }
}

@media (max-height: 760px) and (max-width: 991.98px) {
    .sd-mobile-menu__inner {
        padding-top: 6.25rem;
    }

    .sd-mobile-menu__nav a {
        padding-block: .52rem;
    }

    .sd-mobile-menu__nav span {
        font-size: clamp(1.72rem, 7.2vw, 2.35rem);
    }

    .sd-mobile-menu__footer {
        padding-top: 1.15rem;
    }
}
