/* ==========================================================================
   The Dubliner Irish Pub
   Jeden systém: farby, typografia, medzery, rádius a karty sú definované raz.
   ========================================================================== */

:root {
    /* farby – svetlé sekcie */
    --bg: #f5efe3;
    --bg-alt: #ebe1cd;
    --surface: #fffaf1;
    --ink: #1f1a16;
    --ink-muted: #5f574e;
    --line: #ddd1b8;

    /* farby – tmavé sekcie */
    --green: #0e3426;
    --green-deep: #0a271c;
    --on-dark: #f3eee3;
    --on-dark-muted: rgba(243, 238, 227, .7);
    --line-dark: rgba(243, 238, 227, .14);
    --surface-dark: rgba(255, 255, 255, .045);

    /* akcenty */
    --gold: #c9a24a;
    --gold-light: #e0c27a;
    --gold-ink: #8a6a24;     /* zlatá pre text na krémovej (kontrast AA) */
    --wood: #15110d;
    --danger: #b3261e;

    /* typografia */
    --font-display: "Playfair Display", Georgia, serif;
    --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

    /* rozmery */
    --container: 1180px;
    --gutter: 1.25rem;
    --gap: clamp(1rem, 2vw, 1.5rem);
    --section-y: clamp(4rem, 8vw, 6.5rem);
    --pad: clamp(1.5rem, 3vw, 2rem);
    --r: 6px;
    --header-h: 72px;
    --ease: cubic-bezier(.22, .61, .36, 1);
    --shadow: 0 12px 32px -16px rgba(31, 26, 22, .35);
}

/* ---------- základ ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: var(--header-h); }
body {
    margin: 0;
    font: 400 1rem/1.65 var(--font-body);
    color: var(--ink);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
}
img, svg, iframe { display: block; max-width: 100%; }
picture { display: block; }
img { height: auto; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
address { font-style: normal; }
[hidden] { display: none !important; }
main:focus { outline: none; }

:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.sr-only {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
    position: fixed; top: .75rem; left: .75rem; z-index: 1000;
    padding: .6rem 1rem; border-radius: var(--r);
    background: var(--gold); color: var(--wood); font-weight: 600; text-decoration: none;
    transform: translateY(-200%);
}
.skip-link:focus { transform: none; }

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }

/* ---------- typografia ---------- */
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: none; }
.eyebrow {
    display: flex; align-items: center; gap: .75rem;
    margin-bottom: .75rem;
    font-size: .75rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
    color: var(--gold-ink);
}
.h2 {
    font-family: var(--font-display); font-weight: 600;
    font-size: clamp(2rem, 3.6vw, 2.75rem); line-height: 1.15; letter-spacing: -.01em;
    margin-bottom: 1rem;
}
.h3 { font-family: var(--font-display); font-weight: 600; font-size: 1.375rem; line-height: 1.3; margin-bottom: 1.25rem; }
.lead { font-size: 1.125rem; line-height: 1.7; }
.split-text p + p, .history-text p + p { margin-top: 1rem; }
.split-text .lead + p { margin-top: 1.25rem; }

/* ---------- tlačidlá ---------- */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    min-height: 48px; padding: .75rem 1.5rem;
    font-size: .9375rem; font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none;
    border: 1px solid transparent; border-radius: var(--r); cursor: pointer;
    transition: background-color .2s, border-color .2s, color .2s;
}
.btn svg { width: 18px; height: 18px; flex: none; }
.btn-primary { background: var(--gold); border-color: var(--gold); color: var(--wood); }
.btn-primary:hover { background: var(--gold-light); border-color: var(--gold-light); }
.btn-outline { border-color: var(--ink); color: var(--ink); }
.btn-outline:hover { background: var(--ink); color: var(--bg); }
.btn-ghost { border-color: rgba(243, 238, 227, .5); color: var(--on-dark); }
.btn-ghost:hover { background: var(--on-dark); border-color: var(--on-dark); color: var(--wood); }
.btn-sm { min-height: 40px; padding: .5rem 1.1rem; font-size: .875rem; }
.btn-block { width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; }

.icon-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 50%;
    background: transparent; border: 1px solid var(--line); color: var(--ink); cursor: pointer;
    transition: background-color .2s, color .2s, border-color .2s, opacity .2s;
}
.icon-btn svg { width: 18px; height: 18px; }
.icon-btn:hover:not(:disabled) { background: var(--ink); border-color: var(--ink); color: var(--bg); }
.icon-btn:disabled { opacity: .35; cursor: default; }

/* ---------- hero ---------- */
.hero {
    position: relative; isolation: isolate;
    display: flex; flex-direction: column; justify-content: center;
    min-height: 100vh; min-height: 100svh;
    padding-top: var(--header-h);
    color: var(--on-dark); background: var(--wood);
}
.hero-media { position: absolute; inset: 0; z-index: -1; }
.hero-media picture, .hero-media img { width: 100%; height: 100%; object-fit: cover; }
.hero-media::after {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(ellipse at center, rgba(11, 9, 7, .32) 0%, rgba(11, 9, 7, .55) 100%),
        linear-gradient(0deg, rgba(11, 9, 7, .75) 0%, transparent 45%, rgba(11, 9, 7, .2) 100%);
}
.hero-content { padding-block: clamp(3rem, 8vh, 6rem); text-align: center; }
.hero .eyebrow { justify-content: center; gap: 1rem; margin-bottom: 1.75rem; color: var(--gold-light); font-size: clamp(.6875rem, 1.2vw, .8125rem); letter-spacing: .14em; }
.hero .eyebrow::after { content: ''; width: 28px; height: 1px; background: currentColor; flex: none; }
.hero-title {
    max-width: 18ch; margin-inline: auto;
    font-family: var(--font-display); font-weight: 600;
    font-size: clamp(2.6rem, 8vw, 6rem); line-height: 1.08; letter-spacing: -.025em;
    text-shadow: 0 4px 28px #0005;
}
.hero-title>span { display: block; margin-top: .45em; font-size: .45em; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-light); }
.hero-lead { max-width: 38ch; margin: 1.75rem auto 2.25rem; font-size: clamp(1.125rem, 2.2vw, 1.5rem); color: #ede7dc; text-wrap: balance; }
.hero .btn-row { justify-content: center; gap: 14px; }
.hero .btn { min-width: 200px; min-height: 54px; padding: .875rem 1.6rem; gap: 22px; border-radius: 5px; font-size: 1rem; }
.hero .btn-primary { box-shadow: 0 6px 24px #0003; }
.hero .btn-ghost { background: #0b100b55; }
.hero .btn-ghost:hover { background: var(--on-dark); }
@media(max-width:480px) {
    .hero .eyebrow { gap: .5rem; letter-spacing: .06em; }
    .hero .eyebrow::before,.hero .eyebrow::after { width: 14px; }
    .hero .btn-row { max-width: 300px; margin-inline: auto; gap: 12px; }
    .hero .btn { width: 100%; }
}

.hero-bar { display: none; }
@media (min-width: 768px) {
    .hero { padding-bottom: 105px; }
    .hero-bar { display: block; position: absolute; inset: auto 0 0; border-top: 1px solid var(--line-dark); }
    .hero-bar-inner { display: grid; grid-template-columns: repeat(3, 1fr); }
    .hero-bar p { padding: 1.25rem 0; font-size: .9375rem; color: var(--on-dark); }
    .hero-bar p + p { padding-left: 1.5rem; border-left: 1px solid var(--line-dark); }
    .hero-bar span { display: block; font-size: .6875rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-light); margin-bottom: .2rem; }
    .hero-bar a { text-decoration: none; }
    .hero-bar a:hover { color: var(--gold-light); }
}


/* Compact navigation */
.site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--header-h);color:var(--on-dark);transition:background .2s;border-bottom:1px solid #ffffff20}
.site-header.is-scrolled,.site-header.is-open{background:var(--green-deep)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.logo{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;flex-shrink:0;font:600 1.4rem/1.2 var(--font-display)}
.logo svg{width:28px;height:32px;color:var(--gold)}
.site-header .logo svg{width:42px;height:48px;flex-shrink:0}
.logo small{display:block;margin-top:6px;font:500 .75rem/1.3 var(--font-body);letter-spacing:.23em}
.site-header nav{display:flex;align-items:center;gap:1.8rem}
.site-header nav>a:not(.btn){font-size:.875rem;text-decoration:none;color:#eee7d6}
.site-header nav>a:not(.btn):hover{color:var(--gold-light)}
.nav-toggle{display:none;background:none;border:1px solid #ffffff50;border-radius:3px;padding:8px 12px;color:inherit}
.illustration{width:24px;height:24px;flex-shrink:0}
/* Paper, ink and subtle tartan: styles below do not change the hero. */
.section{padding-block:88px}
.kicker{font-size:.875rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;color:#7e632c;margin-bottom:20px}
h2{font:500 clamp(2.2rem,4vw,3.5rem)/1.13 var(--font-display);letter-spacing:-.035em;color:var(--green)}
h2 em{font-weight:500;color:#8b6a32}
h3{font:500 1.55rem/1.3 var(--font-display)}
.section-copy>p:not(.kicker),.heading-note{color:var(--ink-muted);font-size:.95rem;line-height:1.85}
.section-copy>p:not(.kicker){margin-top:24px;max-width:37ch}
.text-link{display:inline-flex;align-items:center;gap:.6rem;text-underline-offset:6px;font-size:.875rem;font-weight:600}
.text-link:hover{color:#8b6a32}
.welcome-strip{display:flex;justify-content:center;align-items:center;gap:30px;padding:22px 20px;border-bottom:1px solid var(--line);font:italic 1rem var(--font-display);color:var(--green)}
.welcome-strip svg{width:15px;height:15px;color:#9c803c}
.menu-layout{display:grid;grid-template-columns:.85fr 1.4fr;gap:65px;align-items:center}
.sketch-note{display:flex;align-items:center;gap:15px;margin-top:25px;transform:rotate(-5deg);color:#8b6a32}
.sketch-note svg{width:62px;height:90px;stroke-width:1.1}
.sketch-note>span{font:italic 1.8rem var(--font-display)}
.sketch-note small{display:block;font:400 .875rem var(--font-body);margin-top:7px}
.menu-sheets{width:100%;max-width:510px;justify-self:center}
.menu-sheet{position:relative;text-align:center;background:#fcf8ef;border:1px solid #cabea5;padding:28px 20px;outline:1px solid #dcd0b9;outline-offset:-8px;box-shadow:4px 6px 0 #e7decb}
.menu-sheet::before{content:'';position:absolute;top:0;left:25%;width:50%;height:3px;background:#8b6a32}
.sheet-top{display:flex;justify-content:center;align-items:center;gap:8px;font-size:.875rem;letter-spacing:.08em;color:#7e632c;margin-bottom:28px}
.sheet-top svg{width:32px;height:40px}
.menu-sheet h3{font-size:1.7rem;color:var(--green);margin-bottom:12px}
.menu-sheet p{font-size:.875rem;line-height:1.8;color:var(--ink-muted)}
.sheet-edition{display:block;font-size:.875rem;letter-spacing:.13em;margin:28px 0 15px;color:#7b6d53}
.menu-download{display:flex;padding:13px 8px;font-size:.875rem;color:var(--green);border:1px solid #b9ad91;border-radius:2px}
.menu-download:hover{background:var(--green);color:var(--bg)}
.menu-sheet>.text-link,.sheet-footnote{display:inline-block;font-size:.875rem;margin-top:17px;color:#6b655a}
/* Live music */
.music-section{background:var(--green-deep);color:var(--on-dark);position:relative;border-block:6px solid #b3914e}
.music-section .kicker,.reservation-section .kicker{color:#d4b575}
.music-section h2,.reservation-copy h2{color:var(--on-dark)}
.music-section h2 em,.reservation-copy h2 em{color:#d4b575}
.section-heading{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:38px}
.music-time{padding:12px 25px;border-left:1px solid #c6a36166;text-align:center}
.music-time span{display:block;font-size:.875rem;letter-spacing:.17em;color:#cbb27d}
.music-time strong{display:block;font:500 2.3rem var(--font-display);margin-top:4px}
.music-layout{display:grid;grid-template-columns:1fr 1.12fr;gap:55px}
.music-photo{position:relative;min-height:410px}
.music-photo picture{height:100%}
.music-photo img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center 45%;filter:saturate(.7)}
.music-photo figcaption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:45px 22px 18px;background:linear-gradient(transparent,#000b);font:italic 1.25rem var(--font-display)}
.music-copy>p:first-child{font-size:.94rem;color:#dedbcf;max-width:49ch}
.band-feature{display:flex;gap:24px;align-items:center;margin:25px 0;text-decoration:none;background:#ffffff08;border:1px solid #ffffff25;padding:12px}
.band-feature picture{width:44%;flex-shrink:0}
.band-feature img{width:100%;height:120px;object-fit:cover;filter:saturate(.55)}
.band-feature small{font-size:.875rem;letter-spacing:.14em;color:#d4b575}
.band-feature strong{display:block;font:500 1.7rem var(--font-display);margin:6px 0}
.band-feature>span>span{font-size:.875rem;color:#d1c9b5}
.small-label{font-size:.875rem;letter-spacing:.17em;text-transform:uppercase;color:#d4b575}
.band-list{display:flex;flex-wrap:wrap;margin:10px 0 25px;gap:7px 0}
.band-list li{font-size:.875rem;color:#e8e1d4}
.band-list li:not(:last-child)::after{content:'·';margin:0 10px;color:#ab8b4d}
.light-link{color:#e9d7ae}
.light-link:hover{color:white}
.light-link svg{width:17px}
/* Interiors and corporate events */
.heading-note{max-width:36ch}
.space-photos{display:grid;grid-template-columns:1.3fr 1fr;gap:26px}
.space-photos img{width:100%;height:310px;object-fit:cover;filter:saturate(.75)}
.space-photos figcaption{font-size:.875rem;color:#766d5d;margin-top:12px}
.company-note{display:flex;align-items:center;gap:25px;margin-top:36px;padding:27px 0;border-top:1px solid #cec2a9;border-bottom:1px solid #cec2a9}
.company-note>svg{width:84px;height:80px;color:#8b6a32;stroke-width:1.1}
.company-note>div{flex:1}
.company-note h3{font-size:1.5rem;color:var(--green)}
.company-note p{max-width:66ch;font-size:.875rem;color:var(--ink-muted);margin-top:8px}
.company-note>a{white-space:nowrap}
/* Reviews use a verified excerpt, never generated testimonials. */
.reviews-section{padding:55px 0;background:#ebe3d1;border-block:1px solid #d8cbb3}
.reviews-layout{display:grid;grid-template-columns:1fr .7fr 1.25fr;gap:40px;align-items:center}
.reviews-layout h2{font-size:2.35rem;margin-bottom:22px}
.reviews-layout .kicker{margin-bottom:15px}
.rating-summary{text-align:center;border-inline:1px solid #cfc1a6;padding:12px 24px}
.rating-summary>strong{font:500 3.7rem var(--font-display);color:var(--green)}
.rating-summary>strong>span{font:400 .85rem var(--font-body);color:#6c6559;margin-left:6px}
.stars{color:#8d6b28;letter-spacing:3px;font-size:1.1rem}.stars>span{opacity:.45}
.rating-summary p{font-size:.875rem;margin:8px 0}.rating-summary small{display:block;font-size:.875rem;line-height:1.6;color:#726958}
.review-quote{position:relative;padding-top:15px}
.quote-mark{position:absolute;top:-25px;font:5rem Georgia;color:#bba579;opacity:.65}
.review-quote blockquote{position:relative;font:italic 1.25rem/1.7 var(--font-display);color:var(--green)}
.review-quote figcaption{display:flex;gap:12px;align-items:center;margin-top:18px;font-size:.875rem}
.review-avatar{display:grid;place-items:center;width:36px;height:36px;border:1px solid #b8a98c;border-radius:50%;color:#796134}
.review-quote small{display:block;font-size:.875rem;color:#776e5d}.review-quote>a{display:inline-block;margin-top:10px;font-size:.875rem;color:#776e5d;text-underline-offset:3px}
/* Reservation form — intentionally a non-submitting design preview. */
.reservation-section{background-color:#143529;background-image:repeating-linear-gradient(0deg,transparent 0 79px,#00000010 79px 110px,transparent 110px 115px,#c5a56614 115px 116px,transparent 116px 120px),repeating-linear-gradient(90deg,transparent 0 79px,#00000010 79px 110px,transparent 110px 115px,#c5a56614 115px 116px,transparent 116px 120px)}
.reservation-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:0;align-items:stretch}
.reservation-copy{padding-top:30px;color:#dfdfd0}
.reservation-copy>p:not(.kicker){font-size:.91rem;max-width:36ch;line-height:1.85;margin-top:24px}
.reservation-contact{margin-top:35px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.reservation-contact>span{font-size:.875rem;letter-spacing:.16em;color:#d4b575;margin-bottom:4px}
.reservation-contact>a{text-decoration:none;font-size:.875rem}
.reservation-contact>a:first-of-type{font:500 1.8rem var(--font-display);color:#f3eee3}
.reservation-contact>a:hover{text-decoration:underline}
.reservation-art{margin-top:40px;color:#b9a572;transform:rotate(-4deg);text-align:center;max-width:300px}
.reservation-art svg{width:200px;height:130px;margin:auto;stroke-width:1}
.reservation-art>span{font:italic 1rem var(--font-display)}
.reservation-form{background:#f8f3e8;padding:34px;border:1px solid #d2c2a2;box-shadow:7px 7px 0 #0002;border-top:4px solid #c6a361}
.form-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--green)}
.form-heading h3{font-size:1.8rem}.form-heading svg{color:#8b6a32;width:25px;height:25px}
.form-preview{font-size:.875rem;line-height:1.7;color:#71644d;padding-bottom:20px;margin:13px 0 22px;border-bottom:1px solid #d8cbb3}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.form-grid label{display:block;font-size:.875rem;font-weight:600;color:#3f493d}
.form-grid input,.form-grid select,.form-grid textarea{display:block;margin-top:7px;width:100%;min-width:0;border:1px solid #d5cbb9;background:#fffcf5;border-radius:2px;padding:12px 10px;min-height:45px;font-size:.875rem;font-weight:400;color:#3d453b}
.form-grid textarea{resize:vertical}.form-grid input::placeholder,.form-grid textarea::placeholder{color:#8b867a;opacity:1}
.full-width{grid-column:1/-1}.optional{font-weight:400;color:#777266}
.reservation-submit{width:100%;display:flex;justify-content:space-between;margin-top:22px;background:#d9ddcf;border:1px solid #c1c7b7;color:#5b6456;font-size:.875rem;cursor:not-allowed;border-radius:2px}
.form-footnote{font-size:.875rem;text-align:center;color:#726c5d;margin-top:12px}
/* Quiet, useful footer */
footer{background:#09231a;color:#e5e0d3;padding-top:45px}
.footer-main{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:50px;padding-bottom:35px}
.footer-main p{font:italic .86rem var(--font-display);color:#b9b6a4;margin-top:15px}
.footer-main address,.footer-contact{font-size:.875rem;line-height:1.9}
.footer-main address>span,.footer-contact>span{display:block;font-size:.875rem;letter-spacing:.17em;color:#c5ad7e;margin-bottom:11px}
.footer-main address>a,.footer-contact>a{display:block;text-decoration:none}.footer-main a:hover{color:var(--gold-light)}
.footer-bottom{display:flex;justify-content:space-between;padding-block:18px;border-top:1px solid #ffffff20;color:#b3b7a9;font-size:.875rem}.footer-bottom a{text-decoration:none}
@media(min-width:1500px){.section{padding-block:100px}}
@media(max-width:1120px){.site-header nav{gap:1rem}.site-header nav>a:not(.btn){font-size:.875rem}.menu-layout{gap:30px;grid-template-columns:.8fr 1.2fr}.music-layout{gap:30px}.reservation-layout{gap:0}.reviews-layout{gap:20px}.menu-sheet{padding-inline:15px}.menu-sheet h3{font-size:1.4rem}}
@media(max-width:760px){
    .section{padding-block:55px}.nav-toggle{display:block}.site-header nav{display:none;position:absolute;top:var(--header-h);left:0;right:0;background:var(--green-deep);padding:20px;flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid #9c803c}
    .site-header.is-open nav{display:flex}.site-header nav>a:not(.btn){padding:14px 0;font-size:.95rem;border-bottom:1px solid #ffffff18}.site-header nav .btn{margin-top:15px}
    .welcome-strip{gap:12px;font-size:.875rem;padding-inline:12px}.welcome-strip svg{width:12px}.welcome-strip span:last-child{max-width:15ch}
    .menu-layout,.music-layout,.reservation-layout{grid-template-columns:1fr;gap:30px}.menu-sheets{max-width:560px;width:100%;margin:auto}.section-copy>p:not(.kicker){max-width:55ch}.sketch-note{display:none}
    .section-heading{align-items:start;gap:22px}.music-time{padding:8px 0 8px 18px;flex-shrink:0}.music-time strong{font-size:1.7rem}.music-time span{font-size:.875rem}
    .music-photo{min-height:300px;max-height:360px}.music-copy>p:first-child{max-width:none}.band-feature{max-width:480px}.band-feature img{height:110px}
    .spaces-section .section-heading{display:block}.heading-note{margin-top:20px;max-width:55ch}.space-photos{gap:15px}.space-photos img{height:220px}.space-photos figcaption{font-size:.875rem}
    .company-note{flex-wrap:wrap;gap:17px}.company-note>svg{width:50px;height:60px}.company-note>div{min-width:200px}.company-note>a{margin-left:67px}
    .reviews-layout{grid-template-columns:1fr 1fr;gap:25px}.rating-summary{border-right:0}.review-quote{grid-column:1/-1;border-top:1px solid #cfc1a6;padding-top:28px}.quote-mark{top:0}.review-quote blockquote{max-width:48ch}
    .reservation-copy{padding-top:0}.reservation-copy>p:not(.kicker){max-width:50ch}.reservation-contact{margin-top:25px}.reservation-art{display:none}.reservation-form{padding:25px}.footer-main{grid-template-columns:1fr 1fr;gap:30px}.footer-main>div:first-child{grid-column:1/-1}
}
@media(max-width:390px){.menu-sheet{padding:23px 12px}.sheet-top{font-size:.875rem;gap:4px}.sheet-top svg{width:22px}.menu-sheet h3{font-size:1.2rem}.menu-sheet p{font-size:.875rem}.menu-download{font-size:.875rem}.menu-sheet>.text-link,.sheet-footnote{font-size:.875rem}.reservation-form{padding:20px}.form-grid{gap:14px 10px}.footer-main{grid-template-columns:1fr}.footer-main>div:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Reservation dropdowns: cream paper, brass border and forest-green selection. */
.form-grid select{appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='m2 2 5 5 5-5' fill='none' stroke='%238b6a32' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.select-field{min-width:0}
.select-label{display:block;font-size:.875rem;font-weight:600;color:#3f493d}
.pub-select{position:relative;margin-top:7px;font-size:.875rem;font-weight:400}
.pub-select.is-open{z-index:5}
.pub-select-trigger{position:relative;display:block;width:100%;min-height:45px;padding:12px 34px 12px 10px;text-align:left;font:inherit;line-height:1.65;color:#3d453b;background:#fffcf5;border:1px solid #d5cbb9;border-radius:2px;cursor:pointer;transition:border-color .18s,box-shadow .18s}
.pub-select-trigger::after{content:'';position:absolute;right:14px;top:17px;width:7px;height:7px;border-right:1.5px solid #8b6a32;border-bottom:1.5px solid #8b6a32;transform:rotate(45deg);transition:transform .18s}
.pub-select-trigger:hover{border-color:#a88c54}
.pub-select-trigger:focus-visible,.pub-select.is-open .pub-select-trigger{outline:none;border-color:#a88c54;box-shadow:0 0 0 3px #b3914e22}
.pub-select.is-open .pub-select-trigger::after{transform:translateY(4px) rotate(225deg)}
.pub-select-trigger.is-placeholder{color:#827b6b}
.pub-select-options{position:absolute;inset:calc(100% + 6px) 0 auto;z-index:10;margin:0;padding:5px;overflow-y:auto;overscroll-behavior:contain;list-style:none;background:#fffcf5;border:1px solid #bfa97c;border-radius:3px;box-shadow:0 12px 28px #09231a24;scrollbar-width:thin;scrollbar-color:#bda77e #f3eddf}
.pub-select.opens-up .pub-select-options{inset:auto 0 calc(100% + 6px)}
.pub-select-options li{position:relative;min-height:40px;padding:10px 27px 10px 10px;border-radius:2px;line-height:1.5;color:#3d453b;cursor:pointer}
.pub-select-options li.is-active,.pub-select-options li:hover{background:#eee5d2;color:#173c2c}
.pub-select-options li[aria-selected="true"]{background:#173c2c;color:#fff8e8}
.pub-select-options li[aria-selected="true"]::after{content:'✓';position:absolute;right:10px;color:#dfc381}
@media(prefers-reduced-motion:reduce){.pub-select-trigger,.pub-select-trigger::after{transition:none}}

.rating-summary .write-review{display:inline-flex;align-items:center;justify-content:center;margin-top:17px;padding:9px 13px;border:1px solid #ad9569;border-radius:2px;color:var(--green);font-size:.875rem;font-weight:600;text-decoration:none;transition:background .2s,color .2s}
.rating-summary .write-review:hover{background:var(--green);border-color:var(--green);color:#fff8e8}

/* Comfortable reading sizes and a single shared reservation panel. */
:root{--text-body:1rem;--text-small:.875rem}
.site-header nav .btn-primary,.site-header nav .btn-primary:hover,.site-header nav .btn-primary:focus-visible{color:var(--wood)}
.section-copy>p:not(.kicker),.heading-note,.music-copy>p:first-child,.company-note p,.menu-sheet p,.band-list li,.footer-main address,.footer-contact{font-size:var(--text-body)}
.kicker,.small-label{letter-spacing:.12em}
.text-link,.menu-download{font-size:.9375rem}
.menu-sheet{padding:30px}
.sheet-top{flex-wrap:wrap;gap:12px;margin-bottom:20px}
.sheet-edition{letter-spacing:.08em}
.menu-ornament svg{width:130px;height:54px;margin:0 auto 18px;color:#8b6a32}
.music-heading-detail{display:flex;align-items:center;gap:22px}
.harp-drawing svg{width:76px;height:100px;color:#d4b575;transform:rotate(-8deg)}
.review-quote{background:#f8f3e8;border:1px solid #d0c1a4;padding:30px}
.review-quote .quote-mark{top:3px;left:20px;font-size:4.5rem;opacity:.4}
.review-quote blockquote{font-size:clamp(1.4rem,2vw,1.7rem);line-height:1.6}
.review-quote figcaption{font-size:1rem;margin-top:24px;align-items:flex-start}
.review-quote small{font-size:.875rem;color:#5f574e;margin-top:4px;line-height:1.6}
.review-quote>a{font-size:.9375rem;color:var(--green);margin-top:20px}
.review-avatar{width:44px;height:44px;flex-shrink:0;background:#e9dfca;font-size:.875rem}
.reviews-layout{grid-template-columns:1fr .85fr 1.5fr;gap:30px}
.rating-summary{padding-inline:15px}
.rating-summary small{color:#5f574e}
.reservation-layout{background:#f8f3e8;border:1px solid #c5ad7e;border-top:4px solid #c6a361;box-shadow:0 12px 36px #0002}
.reservation-copy{display:flex;flex-direction:column;padding:40px;color:var(--ink-muted);background:#eee6d5;border-right:1px solid #d2c2a2}
.reservation-copy .kicker{color:#795d26}
.reservation-copy h2{color:var(--green);font-size:clamp(2.2rem,3.3vw,3rem)}
.reservation-copy h2 em{color:#8b6a32}
.reservation-copy>p:not(.kicker){font-size:1rem;max-width:38ch}
.reservation-contact{padding-top:25px;border-top:1px solid #cdbd9e;gap:12px}
.reservation-contact>span{color:#795d26;letter-spacing:.1em}
.reservation-contact>a{font-size:1rem;color:var(--green);overflow-wrap:anywhere}
.reservation-contact>a:first-of-type{color:var(--green);font-size:clamp(1.45rem,2.4vw,2rem);white-space:nowrap}
.reservation-art{display:flex;align-items:end;justify-content:center;gap:18px;max-width:none;margin-top:auto;padding-top:35px;color:#927137;transform:none}
.reservation-art svg:first-child{width:125px;height:160px;margin:0;transform:rotate(-8deg)}
.reservation-art svg:last-child{width:70px;height:95px;margin:0 0 12px;transform:rotate(9deg)}
.reservation-form{min-width:0;margin:0;padding:40px;background:transparent;border:0;box-shadow:none}
.form-heading h3{font-size:1.9rem}
.form-preview{font-size:.9375rem;color:#5f574e;line-height:1.7}
.form-grid{gap:20px 18px}
.form-grid label,.select-label{font-size:.9375rem}
.form-grid input,.form-grid select,.form-grid textarea,.pub-select{font-size:1rem}
.form-grid input,.form-grid select,.form-grid textarea,.pub-select-trigger{min-height:50px;padding:12px}
.pub-select-trigger{padding-right:34px}
.pub-select-trigger::after{top:20px}
.form-grid input::placeholder,.form-grid textarea::placeholder,.pub-select-trigger.is-placeholder{color:#6d695f}
.form-footnote{font-size:.875rem;color:#5f574e}
.reservation-submit{font-size:.9375rem;min-height:50px}
.footer-bottom{font-size:.875rem}
@media(min-width:761px) and (max-width:1050px){
    .site-header nav{gap:.8rem}.header-inner{gap:1rem}.logo{font-size:1.2rem}
    .reviews-layout{grid-template-columns:1fr 1fr}.review-quote{grid-column:1/-1}
    .reservation-copy,.reservation-form{padding:28px}
}
@media(max-width:760px){
    .reviews-layout{grid-template-columns:1fr 1fr;gap:24px}.review-quote{grid-column:1/-1;padding:25px}
    .reservation-layout{grid-template-columns:1fr;gap:0}
    .reservation-copy{padding:28px;border-right:0;border-bottom:1px solid #d2c2a2}
    .reservation-form{padding:28px}.reservation-art{display:none}
    .music-heading-detail{gap:10px}.harp-drawing svg{width:48px;height:70px}
    .music-section .section-heading{flex-wrap:wrap}.music-time span{font-size:.875rem}
    .space-photos{grid-template-columns:1fr}.space-photos img{height:280px}
    .welcome-strip{font-size:.9375rem;flex-wrap:wrap}.welcome-strip span:last-child{max-width:none}
}
@media(max-width:480px){
    .reviews-layout{grid-template-columns:1fr}.rating-summary{border:0;border-block:1px solid #cfc1a6;padding:24px 0}.review-quote{grid-column:auto}
    .form-grid{grid-template-columns:1fr}.reservation-copy,.reservation-form{padding:24px 20px}
    .footer-main{grid-template-columns:1fr}.footer-main>div:first-child{grid-column:auto}
    .menu-sheet{padding:26px 20px}.menu-sheet h3{font-size:1.65rem}
    .band-feature{gap:14px}.band-feature picture{width:36%}
}
/* Switch to the compact navigation before the larger labels run out of room. */
@media(min-width:761px) and (max-width:1120px){
    .nav-toggle{display:block}
    .site-header nav{display:none;position:absolute;top:var(--header-h);left:0;right:0;background:var(--green-deep);padding:20px;flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid #9c803c}
    .site-header.is-open nav{display:flex}
    .site-header nav>a:not(.btn){padding:14px 0;font-size:1rem;border-bottom:1px solid #ffffff18}
    .site-header nav .btn{margin-top:15px}
}

/* Two verified performers, with local photographs. */
.performer-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}
.performer-card{display:block;text-decoration:none;border:1px solid #ffffff30;background:#ffffff08;transition:border-color .2s}
.performer-card:hover{border-color:#d4b575}
.performer-card img{width:100%;height:190px;object-fit:cover;object-position:center 32%}
.performer-card>span{display:flex;justify-content:space-between;gap:10px;padding:12px 14px;font:500 1.15rem var(--font-display);color:#f3eee3}
.performer-card>span>span{color:#d4b575}
/* Compact booking: consistent field height, note expands only when needed. */
.reservation-section{padding-block:60px}
.booking-card{background:#f8f3e8;border:1px solid #c5ad7e;border-top:3px solid #c6a361;box-shadow:0 12px 36px #0002}
.booking-header{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:26px 32px;border-bottom:1px solid #d8cbb3}
.booking-header .kicker{margin-bottom:10px;color:#795d26}
.booking-header h2{font-size:clamp(1.8rem,3vw,2.5rem);color:var(--green)}
.booking-contact{display:flex;flex-direction:column;gap:3px;text-align:right;flex-shrink:0}
.booking-contact>span{font-size:.75rem;letter-spacing:.1em;color:#795d26}
.booking-contact>a{font-size:.9375rem;color:var(--green);text-decoration:none}
.booking-contact>a:first-of-type{font-size:1.3rem;font-weight:600}
.booking-contact>a:hover{text-decoration:underline;text-underline-offset:4px}
.booking-form{padding:22px 32px 26px}
.booking-form .form-preview{display:flex;align-items:center;gap:12px;margin:0 0 20px;padding:0;border:0;font-size:.9375rem}
.booking-form .form-preview svg{width:21px;height:21px;color:#8b6a32}
.booking-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;align-items:start}
.booking-form .form-grid input,.booking-form .pub-select-trigger,.booking-form .form-grid select,.booking-form .form-grid textarea{height:48px;min-height:48px;padding-block:10px;line-height:26px}
.booking-form .form-grid textarea{max-height:180px;overflow-y:auto;resize:vertical}
.booking-form .pub-select-trigger::after{top:18px}
.booking-note{grid-column:span 2;align-self:start;min-width:0}
.booking-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;padding-top:20px;border-top:1px solid #d8cbb3}
.booking-actions .form-footnote{margin:0;text-align:left;font-size:.875rem}
.booking-actions .reservation-submit{width:auto;min-width:290px;margin:0;gap:25px;min-height:46px}
@media(max-width:760px){
    .booking-header{align-items:flex-start;padding:24px;flex-direction:column;gap:18px}
    .booking-contact{text-align:left}.booking-form{padding:22px 24px}
    .booking-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .booking-note{grid-column:1/-1}.booking-actions{align-items:stretch;flex-direction:column;gap:12px}
    .booking-actions .reservation-submit{width:100%;min-width:0}
}
@media(max-width:480px){
    .booking-header,.booking-form{padding:20px}.booking-form .form-grid{grid-template-columns:1fr}
    .booking-form .form-preview{align-items:flex-start}.performer-grid{gap:12px}
    .performer-card img{height:160px}.performer-card>span{font-size:1rem;padding:12px 10px}
}

/* Compact guest cards, using excerpts supplied by the site owner. */
.guest-reviews{padding:40px 0;background:#f0e8d8;border-block:1px solid #d2c3a8}
.reviews-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.reviews-heading h2{font-size:clamp(1.6rem,2.5vw,2rem);line-height:1.25}
.reviews-heading .text-link{color:var(--green);font-size:.9375rem}
.review-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.guest-card{margin:0;background:#fcf8ef;border:1px solid #d4c8b2;border-top:3px solid var(--gold);border-radius:10px;padding:26px;box-shadow:0 6px 20px rgba(31,26,22,.045)}
.guest-card figcaption{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid #e7ddc9}
.guest-initials{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;background:var(--green);border:1px solid var(--green);border-radius:50%;color:var(--gold-light);font-size:.8125rem;font-weight:600}
.guest-card strong{display:block;font-size:.9375rem;line-height:1.4;color:#173c2c}
.guest-card small{display:block;font-size:.875rem;color:#635b4e;margin-top:3px}
.guest-card blockquote{margin:0;font:400 1rem/1.7 var(--font-body);color:#3c4237;text-wrap:pretty}
.reviews-note{margin:18px 0 0;color:#635b4e;font-size:.8125rem;line-height:1.6}
@media(max-width:900px){.review-cards{gap:12px}.guest-card{padding:18px}}
@media(max-width:700px){
    .guest-reviews{padding:32px 0}.reviews-heading{align-items:flex-start;flex-direction:column;gap:12px}
    .review-cards{grid-template-columns:1fr}.guest-card{padding:20px}
    .guest-card figcaption{margin-bottom:12px}
}
@media(max-width:480px){.booking-form .booking-note{grid-column:1/-1}}

/* A photographic tasting menu, with quiet motion throughout the page. */
.food-section{padding-top:12px;background:var(--bg)}
.food-heading{align-items:end}
.food-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.food-card{position:relative;isolation:isolate;margin:0;overflow:hidden;aspect-ratio:1/1;border-radius:8px;background:var(--green-deep)}
.food-card::after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(5,20,14,.88));z-index:0;pointer-events:none}
.food-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.65,.3,1)}
.food-card figcaption{position:absolute;inset:auto 24px 24px;z-index:1;color:#fffaf1}
.food-card figcaption>span{display:block;font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#f1d79c;margin-bottom:7px}
.food-card h3{font:500 clamp(1.4rem,2.2vw,1.85rem)/1.2 var(--font-display);color:inherit}
.food-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:26px}
.food-footer p{margin:0;color:var(--ink-muted);font-size:.9375rem}
.food-footer .text-link{color:var(--green)}
.pub-select-options{transform-origin:top center}
.pub-select.opens-up .pub-select-options{transform-origin:bottom center}
.pub-select.is-open .pub-select-options{animation:select-unfold .22s cubic-bezier(.2,.7,.3,1) both}
.pub-select-options li{transition:background-color .15s,color .15s}
@keyframes select-unfold{from{opacity:0;transform:scaleY(.94) scaleX(.99)}to{opacity:1;transform:scale(1)}}
@keyframes section-arrive{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
.reveal-in{animation:section-arrive .65s cubic-bezier(.2,.65,.3,1) both}
.btn,.guest-card,.performer-card{transition:transform .25s,box-shadow .25s,border-color .25s,background-color .25s}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
    .food-card:hover img{transform:scale(1.045)}
    .btn:not(:disabled):hover{transform:translateY(-2px)}
    .guest-card:hover,.performer-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px #09231a12}
}
@media(max-width:760px){
    .food-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
    .food-card figcaption{inset:auto 16px 18px}
    .food-footer{align-items:flex-start;flex-direction:column;gap:12px}
}
@media(max-width:480px){
    .food-gallery{gap:10px}.food-card{aspect-ratio:3/4}
    .food-card figcaption{inset:auto 12px 16px}.food-card h3{font-size:1.25rem}
    .food-card figcaption>span{font-size:.625rem;letter-spacing:.06em}
}
@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation:none!important;transition:none!important}
    html{scroll-behavior:auto}
}

/* Compact contact footer: hours and essentials in one tidy row. */
.compact-footer{padding-top:28px;border-top:1px solid #c9a24a40}
.compact-footer .footer-main{grid-template-columns:1.05fr .85fr 1.15fr 1.1fr;gap:28px;padding-bottom:24px;align-items:start}
.compact-footer .footer-main>div:first-child{grid-column:auto}
.compact-footer .logo{font-size:1.2rem;gap:9px}
.compact-footer .logo small{font-size:.6rem;letter-spacing:.16em;margin-top:5px}
.compact-footer .logo svg{width:25px;height:28px}
.compact-footer .footer-title{font:600 .6875rem/1.4 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-light);margin:0 0 10px}
.compact-footer address,.compact-footer .footer-contact,.footer-hours dl{font-size:.8125rem;line-height:1.8}
.footer-hours dl>div{display:flex;justify-content:space-between;gap:14px}
.footer-hours dt{color:#bfc5b9}.footer-hours dd{white-space:nowrap;font-variant-numeric:tabular-nums}
.compact-footer .footer-social{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;text-decoration:none;margin-top:14px;color:#c8cebf}
.footer-social svg{width:16px;height:16px}
.compact-footer .footer-phone{font-size:.9375rem;font-weight:600}
.compact-footer .footer-contact .footer-music{font-size:.6875rem;letter-spacing:0;color:#bfc5b9;margin:7px 0 0;line-height:1.5}
.compact-footer .footer-bottom{padding-block:12px;font-size:.75rem;gap:16px}
@media(max-width:1120px){.compact-footer .footer-main{grid-template-columns:1fr 1fr;gap:22px 36px}.footer-hours dl{max-width:290px}}
@media(max-width:540px){.compact-footer .footer-main{grid-template-columns:1fr;gap:20px}.compact-footer .footer-brand{display:flex;justify-content:space-between;align-items:center;gap:12px}.compact-footer .footer-social{margin:0}.compact-footer .footer-bottom{flex-wrap:wrap}.footer-hours dl{max-width:none}}

/* A deliberate social link, using the pub's own colours. */
.compact-footer .footer-social{gap:8px;min-height:32px;padding:0;border:0;border-radius:0;background:none;color:#f3eee3;font-size:.8125rem;font-weight:500;transition:color .2s}
.footer-social .social-icon{display:grid;place-items:center;width:18px;height:18px;background:none;color:var(--gold-light)}
.footer-social .social-icon svg{width:18px;height:18px}
.footer-social .social-arrow{margin-left:2px;color:var(--gold-light);transition:transform .2s}
.compact-footer .footer-social:hover{background:none;color:var(--gold-light)}
.footer-social:hover .social-arrow{transform:translate(2px,-2px)}
@media(max-width:540px){.compact-footer .footer-brand{flex-wrap:wrap;gap:14px}.compact-footer .footer-social{flex-shrink:0}}

/* Keep the mobile panel mounted so opening and closing both transition. */
.nav-toggle-icon{position:relative;display:block;width:20px;height:18px;flex:none;margin:0}
.nav-toggle-icon>span{position:absolute;left:0;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .25s,opacity .18s}
.nav-toggle-icon>span:nth-child(1){top:2px}
.nav-toggle-icon>span:nth-child(2){top:8px}
.nav-toggle-icon>span:nth-child(3){top:14px}
.site-header.is-open .nav-toggle-icon>span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.site-header.is-open .nav-toggle-icon>span:nth-child(2){opacity:0;transform:scaleX(.4)}
.site-header.is-open .nav-toggle-icon>span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:1120px){
    .header-inner{gap:12px}
    .nav-toggle{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-height:0;padding:0;border:0;border-radius:0;background:none;cursor:pointer}
    .site-header nav{display:flex;max-height:calc(100svh - var(--header-h));overflow-y:auto;overscroll-behavior:contain;padding:12px 24px 24px;border-bottom:1px solid #c9a24a66;border-radius:0 0 14px 14px;box-shadow:0 18px 30px #0003;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px);transition:opacity .24s ease,transform .28s cubic-bezier(.2,.7,.3,1),visibility 0s linear .28s}
    .site-header.is-open nav{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
    .site-header nav>a:not(.btn){padding:15px 4px;font-size:1rem}
    .site-header nav .btn{min-height:48px;justify-content:center;border-radius:5px}
}

/* Small, consistent language controls in the navigation and footer. */
.language-switch{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;width:max-content;padding:3px;border:1px solid #c9a24a55;border-radius:5px}
.language-switch a{display:grid;place-items:center;min-width:34px;min-height:32px;padding:3px 7px;font:600 .75rem/1 var(--font-body);letter-spacing:.04em;text-decoration:none;color:#c8cebf;border-radius:3px;transition:color .18s,background .18s}
.language-switch a[aria-current="true"]{background:var(--gold);color:var(--wood)}
.language-switch a:not([aria-current]):hover{background:#ffffff12;color:#fffaf1}
.compact-footer .footer-bottom{align-items:center}
.compact-footer .footer-bottom>.language-switch{margin-left:auto}
@media(max-width:1120px){
    .site-header nav .language-switch{margin-top:20px;align-self:flex-start}
    .language-switch a{min-width:40px;min-height:38px}
}
@media(max-width:540px){
    .compact-footer .footer-bottom>span{flex-basis:100%}
    .compact-footer .footer-bottom>.language-switch{margin-left:0}
}

/* Our story: an understated date panel beside readable editorial copy. */
.about-story{display:grid;grid-template-columns:.7fr 1.6fr;gap:clamp(28px,5vw,64px);align-items:center;margin:0 0 36px}
.about-year{position:relative;padding:28px 24px;border-block:1px solid #c5ad7e;text-align:center;color:var(--green)}
.about-year>span{display:block;font-size:.6875rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold-ink)}
.about-year strong{display:block;font:500 clamp(4rem,8vw,6rem)/1.15 var(--font-display);letter-spacing:-.045em;margin:8px 0}
.about-year time{display:block;font-size:.8125rem;color:var(--ink-muted)}
.about-year svg{width:24px;height:24px;margin:16px auto 0;color:var(--gold-ink)}
.about-copy h3,.about-atmosphere h3{font:500 clamp(1.4rem,2.4vw,1.85rem)/1.3 var(--font-display);color:var(--green);margin-bottom:16px}
.about-copy p,.about-atmosphere p{font-size:1rem;line-height:1.85;color:var(--ink-muted);text-wrap:pretty}
.about-copy p+p{margin-top:14px}
.about-atmosphere{display:grid;grid-template-columns:.7fr 1.6fr;gap:clamp(28px,5vw,64px);margin:30px 0 36px}
.about-atmosphere .about-motto{font:italic 500 clamp(1.15rem,2vw,1.4rem)/1.6 var(--font-display);color:var(--green);margin-top:18px;padding-left:18px;border-left:2px solid var(--gold)}
@media(max-width:700px){.about-story,.about-atmosphere{grid-template-columns:1fr;gap:24px}.about-year{padding:20px}.about-year strong{font-size:4.5rem}.about-year svg{display:none}.about-atmosphere h3{margin-bottom:0}}

/* Compact layout limited to the About section. */
.spaces-section{padding-block:52px}
.spaces-section .section-heading{display:block;max-width:760px;margin-bottom:24px}
.spaces-section .kicker{margin:0 0 10px;font-size:.6875rem;letter-spacing:.13em}
.spaces-section h2{font-size:clamp(1.8rem,3.2vw,2.55rem);line-height:1.2;letter-spacing:-.025em}
.spaces-section .heading-note{max-width:70ch;margin:14px 0 0;font-size:.9375rem;line-height:1.75}
.spaces-section .space-photos{grid-template-columns:1fr 1fr;gap:16px}
.spaces-section .space-photos img{height:270px;border-radius:4px;filter:none}
.spaces-section .company-note{display:block;margin-top:22px;padding:20px 0 0;border-bottom:0;border-top:1px solid var(--line)}
.spaces-section .company-note h3{font:500 1.25rem/1.4 var(--font-display);margin:0 0 6px}
.spaces-section .company-note p{margin:0 0 12px;max-width:70ch;font-size:.9375rem;line-height:1.7}
@media(max-width:760px){.spaces-section{padding-block:36px}.spaces-section .space-photos img{height:220px}}
@media(max-width:540px){.spaces-section .space-photos{grid-template-columns:1fr;gap:12px}.spaces-section .space-photos img{height:auto;aspect-ratio:16/10}}

/* About: story text beside an overlapping photo collage, facts strip, dark event band. */
.spaces-section{padding-block:64px}
.story-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,64px);align-items:stretch}
.spaces-section .kicker{margin:0 0 12px;font-size:.75rem;letter-spacing:.16em}
.spaces-section h2{font-size:clamp(2.1rem,4.2vw,3.25rem);line-height:1.1;letter-spacing:-.03em;margin-bottom:22px}
.story-text p:not(.kicker){font-size:1rem;line-height:1.75;color:var(--ink-muted);text-wrap:pretty}
.story-text p+p{margin-top:14px}
.story-text .story-lead{font-size:1.125rem;line-height:1.65;color:var(--ink)}
.story-facts{list-style:none;margin:28px 0 0;padding:22px 0 0;border-top:1px solid #c5ad7e}
.story-facts li{display:flex;align-items:baseline;gap:14px}
.story-facts li span{margin-top:0;font-size:.9375rem}
.story-facts strong{display:block;font:500 clamp(1.5rem,2.4vw,2rem)/1.1 var(--font-display);letter-spacing:-.02em;color:var(--green)}
.story-facts span{display:block;margin-top:6px;font-size:.8125rem;letter-spacing:.02em;color:var(--ink-muted)}
.story-collage{position:relative;min-height:460px}
.story-collage::before{content:"";position:absolute;top:-12px;right:-12px;bottom:68px;left:calc(14% + 12px);border:1px solid var(--gold);border-radius:var(--r)}
.story-collage figure{position:absolute;margin:0;overflow:hidden;border-radius:var(--r);background:var(--wood)}
.story-collage picture{display:block;height:100%}
.story-collage img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.story-photo-main{inset:0 0 56px 14%;box-shadow:var(--shadow)}
.story-photo-side{left:0;bottom:0;width:54%;aspect-ratio:4/3;border:6px solid var(--bg);box-shadow:var(--shadow)}
.story-stamp{position:absolute;right:18px;bottom:22px;width:112px;height:112px;border-radius:50%;display:grid;place-content:center;justify-items:center;background:var(--gold);color:var(--wood);box-shadow:0 0 0 5px var(--bg),var(--shadow);transform:rotate(-8deg)}
.story-stamp svg{width:18px;height:18px}
.story-stamp span{font-size:.625rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-top:3px}
.story-stamp strong{font:600 1.75rem/1 var(--font-display);letter-spacing:-.02em}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.story-collage figure:hover img{transform:scale(1.04)}}
.event-band{display:flex;align-items:center;gap:24px;margin-top:48px;padding:24px 32px;border-radius:var(--r);background:var(--green-deep);color:var(--on-dark)}
.event-band>svg{flex:none;width:40px;height:40px;color:var(--gold)}
.event-band>div{flex:1}
.event-band h3{font:500 1.5rem/1.3 var(--font-display);color:var(--on-dark)}
.event-band p{margin-top:4px;font-size:.9375rem;line-height:1.6;color:var(--on-dark-muted)}
.event-band .btn{flex:none}
@media(max-width:900px){
    .spaces-section{padding-block:44px}
    .story-grid{grid-template-columns:1fr;gap:36px}
    .story-collage{min-height:0;aspect-ratio:5/4;margin-right:12px}
}
@media(max-width:600px){
    .story-stamp{width:88px;height:88px;right:10px;bottom:14px}
    .story-stamp strong{font-size:1.35rem}
    .story-collage::before{top:-8px;right:-8px}
    .event-band{flex-direction:column;align-items:flex-start;gap:16px;padding:22px 20px;margin-top:36px}
    .event-band>svg{display:none}
    .event-band .btn{width:100%;justify-content:center}
}
