
    :root{color-scheme:dark;--bg:#0b0c0c;--text:#f6f5f0;--muted:#aaaead;--line:#303433;--accent:#f2d66d}
    *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--accent);outline-offset:6px}button,a{-webkit-tap-highlight-color:transparent}.wrap{max-width:1000px;padding:0 40px;margin:auto}.top{display:flex;align-items:center;justify-content:space-between;padding:24px 0;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.top a{letter-spacing:0;text-transform:none;font-size:14px;color:var(--text)}.hero{display:flex;align-items:center;gap:42px;padding:54px 0 42px}.logo{width:154px;height:154px;flex-shrink:0}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}h1{font-size:clamp(32px,4.5vw,48px);line-height:1.12;letter-spacing:-.045em;margin:0 0 16px}h1 span{display:block}p{margin:0}.intro{max-width:580px;color:var(--muted);font-size:16px}.contact{display:flex;align-items:center;gap:24px;margin-top:26px;flex-wrap:wrap}.call{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--text);color:#101111;padding:13px 22px;border-radius:5px;font-weight:700;font-size:19px}.call:hover{background:var(--accent)}.call svg{width:22px;height:22px}.map-link{font-size:14px;border-bottom:1px solid #696c69;padding:5px 0}.hint{font-size:13px;color:var(--muted);margin-top:13px}.section-label{margin:0 0 20px;font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);font-weight:700}.services{border-top:1px solid var(--line);padding-top:28px}.service{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;padding:0 0 24px}.service+.service{border-top:1px solid var(--line);padding-top:24px}h2{font-size:22px;line-height:1.3;letter-spacing:-.025em;margin:0 0 8px}.service p{font-size:14px;color:var(--muted);max-width:590px}.price{font-size:28px;font-weight:700;letter-spacing:-.035em;white-space:nowrap;text-align:right}.price small{font-size:13px;color:var(--muted);font-weight:400;letter-spacing:0}.price .unit{display:block;font-size:12px;color:var(--muted);font-weight:400;letter-spacing:0}.price-note{font-size:12px;color:var(--muted);padding-bottom:27px}.delivery{border:1px solid var(--line);border-left:3px solid var(--accent);padding:22px 25px;margin:8px 0 38px;background:#111313}.delivery h2{font-size:18px}.delivery p{font-size:14px;color:var(--muted)}.delivery strong{color:var(--text)}.details{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid var(--line);padding:30px 0}.details h2{font-size:21px;margin-bottom:18px}.hours{width:100%;border-collapse:collapse;max-width:340px;font-size:14px}.hours td{padding:4px 0}.hours td:last-child{text-align:right}.hours td:first-child{color:var(--muted);width:30%}.hours-note{font-size:12px;color:var(--muted);margin-top:15px}.address{font-size:16px}.address p{margin-bottom:12px}.address .map-link{display:inline-block}.email{display:block;font-size:14px;color:var(--muted);margin-top:15px;overflow-wrap:anywhere}.reservation{border-top:1px solid var(--line);padding:22px 0;font-size:13px;color:var(--muted)}.reservation strong{color:var(--text)}footer{border-top:1px solid var(--line);padding:24px 0 32px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.mobile-call{display:none}
    @media(max-width:650px){.wrap{padding:0 22px}.top{padding:19px 0;font-size:10px;letter-spacing:.08em}.top a{font-size:12px}.hero{display:block;padding:32px 0}.logo{width:104px;height:104px;margin-bottom:22px}h1{font-size:37px}.intro{font-size:14px}.contact{gap:19px;margin-top:22px}.call{font-size:18px;padding:12px 17px}.hint{font-size:12px}.services{padding-top:23px}.service{gap:18px;align-items:start;grid-template-columns:1fr}.service h2{font-size:20px}.service p{font-size:13px}.price{text-align:left;font-size:26px}.price .unit{display:inline;margin-left:9px}.delivery{padding:20px;margin-bottom:30px}.delivery p{font-size:13px}.details{grid-template-columns:1fr;gap:30px;padding:26px 0}.reservation{font-size:12px}footer{display:block;padding-bottom:100px}footer p+p{margin-top:7px}.mobile-call{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--text);color:#101111;justify-content:center;align-items:center;gap:12px;min-height:57px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));font-size:16px;font-weight:700;border-top:1px solid #ddd}.mobile-call svg{width:20px;height:20px}}
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
    /* Centered composition, following the original site's layout. */
    .wrap{text-align:center;max-width:920px}
    .hero{flex-direction:column;gap:26px;padding-top:38px}
    .logo{width:170px;height:170px;margin:0 auto}
    h1 span{display:inline}
    .intro{margin:0 auto}
    .contact{justify-content:center}
    .service{grid-template-columns:1fr;gap:13px;justify-items:center}
    .service p{margin:0 auto}
    .price{text-align:center;font-size:27px}
    .price .unit{display:inline;margin-left:8px}
    .delivery{border-left:1px solid var(--line);border-top:2px solid var(--accent);max-width:730px;margin-left:auto;margin-right:auto}
    .details{gap:45px}
    .hours{margin:0 auto}
    .hours td:first-child{text-align:left}
    .hours td:nth-child(2){text-align:center}
    .reservation{max-width:760px;margin:0 auto}
    footer{justify-content:center;flex-direction:column;gap:4px}
    @media(max-width:650px){.hero{padding-top:28px;gap:22px}.logo{width:135px;height:135px;margin:0 auto}h1{font-size:34px}.service{justify-items:center}.price{text-align:center}.details{gap:30px}.contact{gap:18px}footer p+p{margin-top:0}}
  [hidden]{display:none!important}
button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.wrap{position:relative;padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}
.language-control{position:absolute;top:20px;right:24px;z-index:5;text-align:left;max-width:calc(100% - 44px)}
.language-toggle{display:flex;align-items:center;gap:7px;min-width:76px;min-height:44px;background:transparent;color:var(--text);border:1px solid var(--line);border-radius:22px;padding:8px 12px;font-size:12px}
.language-toggle:hover{border-color:var(--text)}.language-toggle svg{width:19px;height:19px}
.language-list{margin-top:8px;background:#0b0c0c;border:1px solid #fff;border-radius:12px;padding:8px;min-width:168px;max-height:75vh;overflow:auto;box-shadow:0 8px 30px #0009}
.language-list a{display:block;padding:10px 14px;border-radius:6px;font-size:14px}.language-list a:hover,.language-list a[aria-current]{background:#252827}.language-list a[aria-current]{color:var(--accent)}
.price-note{max-width:690px;margin:0 auto;font-size:13px}.hours th{font-weight:400;color:var(--muted);text-align:left;padding:4px 0}.hours td{font-variant-numeric:tabular-nums;white-space:nowrap}.hours td:nth-child(2){text-align:center;color:var(--text);width:auto}
.messengers{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:17px;font-size:13px;color:var(--muted)}.messengers a{border-bottom:1px solid #555;padding:5px 0}.messengers a:hover{color:white}
.call-dialog{width:min(480px,calc(100% - 36px));max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow:auto;background:#080909;color:#fff;border:1px solid #fff;border-radius:20px;padding:48px 30px 27px;text-align:center;box-shadow:0 20px 80px #0009;overscroll-behavior:contain}
.call-dialog::backdrop{background:#000b}.call-dialog h2{font-size:24px;margin-bottom:19px}.call-dialog p{font-size:15px;line-height:1.7}.dialog-close{position:absolute;right:12px;top:9px;width:44px;height:44px;border:none;background:transparent;color:#fff;font-size:31px;line-height:1}.continue-call{margin-top:27px;font-size:15px;white-space:normal;width:100%;min-height:48px}.dialog-back{display:block;margin:13px auto 0;color:#bbb;background:transparent;border:none;padding:10px 20px;font-size:13px}.dialog-open{position:fixed;width:100%;overflow:hidden}.call-dialog:not([open]){display:none}
html{scroll-padding-bottom:85px}
@media(max-width:650px){.language-control{top:15px;right:18px}.language-toggle{min-width:68px;padding:8px 10px}.hero{padding-top:32px}.call-dialog{padding:48px 22px 22px}.call-dialog p{font-size:14px}.eyebrow{font-size:11px;line-height:1.8}.price .unit{display:block;margin-left:0}.hours{font-size:13px}.hours th{width:auto}.hours td{padding:4px 5px}h1{overflow-wrap:normal}.mobile-call{z-index:4;text-align:center}.mobile-call span{max-width:calc(100% - 35px)}}
@media(max-width:359px){h1{font-size:30px}.contact{gap:12px}.call{font-size:16px}.hero .logo{width:120px;height:120px}.hours{font-size:12px}}
/* Give the logo more breathing room and keep the locality on a separate line. */
.hero{display:flex;flex-direction:column;gap:38.4px}
.hero-location{display:inline-block;white-space:nowrap}
@media(max-width:650px){.hero{gap:39.6px}}
.ivy-divider{width:100%;max-width:780px;height:clamp(64px,13vw,130px);margin:0 auto 24px;overflow:hidden;pointer-events:none}
.ivy-divider img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 51%;user-select:none}
.ivy-under-title{max-width:600px;height:90px;margin:0 auto 24px}
h1 span{display:block}
@media(max-width:650px){.ivy-divider{margin-bottom:24px;height:clamp(64px,18vw,105px)}}
/* Compact title, one introduction block and a centered telephone contact. */
.hero{gap:20px}
.hero h1{margin-bottom:8px}
.hero .ivy-under-title{margin-bottom:6px}
.intro-slogan{color:var(--accent)}
.hero .contact{flex-direction:column;align-items:center;gap:0}
.hero .contact .call{padding:8px 16px;border-radius:999px;min-height:44px;gap:10px;width:max-content;max-width:100%}
.hero-directions{display:inline-block;margin-top:12px}
.payment-note{margin-top:6px}
@media(max-width:650px){.hero{gap:20px}.hero .ivy-under-title{margin-bottom:6px}}
.hero h1.brand-title{position:relative;width:100%;max-width:var(--brand-title-width,250px);aspect-ratio:2048/456;margin:0 auto 8px;line-height:1;overflow:hidden}
.brand-title img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.brand-title .title-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Match the sign: visible title width is approximately 1.42 times logo width. */
.hero{--brand-logo-size:170px;--brand-title-width:250px;gap:30px}
.hero .logo{width:var(--brand-logo-size);height:auto}
.hero .ivy-under-title{max-width:330px;height:55px;margin-bottom:8px}
@media(max-width:650px){.hero{--brand-logo-size:135px;--brand-title-width:200px;gap:24px}.hero .ivy-under-title{max-width:260px;height:45px}}
@media(max-width:359px){.hero{--brand-logo-size:120px;--brand-title-width:176px;gap:22px}}

/* Separate the centered slogan and introduction below the ivy. */
.intro-block{margin:28px auto 0;text-align:center;max-width:580px}
.intro-slogan{font-size:14px;line-height:1.8;margin:0 0 14px;color:var(--accent)}
.intro-slogan span{display:block}
.intro-block .intro{text-align:center}
@media(max-width:650px){.intro-block{margin-top:26px}.intro-slogan{font-size:12px;line-height:1.9;margin-bottom:12px}}
@media(max-width:359px){.intro-slogan{font-size:11px}}

/* Keep the opening brand assets fully opaque and the title bright white. */
.hero .logo,.brand-title img{opacity:1}
.brand-title img{filter:brightness(1.05)}

/* The dropdown does not participate in sizing its anchored toggle. */
.language-control{width:max-content;z-index:8}
.language-list{position:absolute;top:100%;right:0;width:190px;max-width:calc(100vw - 36px);max-height:calc(100dvh - 90px)}
.language-backdrop{position:fixed;inset:0;z-index:7;background:rgba(0,0,0,.15)}
.languages-open main,.languages-open footer,.languages-open .mobile-call{filter:blur(6px);pointer-events:none;user-select:none}

/* Workshop photo: comparison without edge fading, same opacity. */
.services{position:relative;isolation:isolate}
.services::before{content:"";position:absolute;inset:0 -22px;z-index:-1;pointer-events:none;background:url('/workshop-background-v2.jpg') center/cover no-repeat;opacity:.10}
.error-page{padding-top:60px;padding-bottom:60px}.error-page p{margin:16px auto;max-width:580px}.error-page .call{margin:14px}

.updated-note{margin-top:6px}
