@font-face{font-family:Barlow Condensed;src:url('assets/barlow-condensed-600.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:DM Sans;src:url('assets/dm-sans-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:DM Sans;src:url('assets/dm-sans-600.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
:root{color-scheme:light;--paper:#f7f4ee;--paper-tint:#eee9df;--ink:#263f47;--accent:#964d3b;--muted:#586562;--line:#cfcfc3;--blue:#29464e;--radius:2px;--header-height:76px;--gutter:20px;--layer-header:10;--layer-skip:20}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 20px)}body{margin:0;background:var(--paper);color:var(--ink);font-family:DM Sans,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body.is-locked{position:fixed;left:0;right:0;width:100%;overflow:hidden}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:600}h1,h2{font-family:Barlow Condensed,'Arial Narrow',sans-serif;line-height:1.04;letter-spacing:-.012em}h2{font-size:clamp(44px,6vw,76px)}h3{font-size:24px;line-height:1.25;letter-spacing:-.035em}p{max-width:60ch}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0}svg{display:block;width:22px;height:22px;flex:none}img{max-width:100%}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}@media(hover:hover) and (pointer:fine){a:hover{text-decoration:none}}::selection{background:#c6d7db;color:#182e33}.shell{width:min(100% - var(--gutter)*2,1200px);margin-inline:auto}.section{padding-block:64px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;line-height:1.5}.text-link{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;padding-block:10px;border-bottom:1px solid currentColor;width:fit-content}.text-link svg{width:18px;height:18px}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;min-height:52px;padding:13px 23px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--paper);font-size:14px;font-weight:600;line-height:1.3;white-space:nowrap}@media(hover:hover) and (pointer:fine){.button:hover{background:#7d3e30;border-color:#7d3e30}}.button-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}@media(hover:hover) and (pointer:fine){.button-light:hover{background:#e8e3d8;border-color:#e8e3d8}}.button-outline{background:rgba(0,0,0,.08);border-color:rgba(255,255,255,.8);color:#fff}@media(hover:hover) and (pointer:fine){.button-outline:hover{background:rgba(0,0,0,.2)}}.skip-link{position:fixed;top:8px;left:8px;z-index:var(--layer-skip);transform:translateY(-150%);background:var(--paper);color:var(--ink);padding:10px 18px}.skip-link:focus{transform:none}
/* Two document layers: fixed navigation and skip link. Native dialogs occupy the top layer. */
.site-header{height:var(--header-height);position:fixed;inset:0 0 auto;z-index:var(--layer-header);background:var(--paper);border-bottom:1px solid rgba(45,82,92,.12)}.nav-shell{height:100%;max-width:1440px;padding-inline:var(--gutter);margin:auto;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand-link{display:inline-flex;flex:none;align-items:center;line-height:1}.wordmark{display:flex;flex-direction:column;font-family:Barlow Condensed,'Arial Narrow',sans-serif;font-weight:600;line-height:1;letter-spacing:.025em}.wordmark>span{font-size:25px}.wordmark small{font-size:11px;letter-spacing:.33em;margin-top:6px}.desktop-nav{display:none}.nav-actions,.social-links{display:flex;align-items:center;gap:3px}.icon-link{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;background:transparent;border-radius:var(--radius)}@media(hover:hover) and (pointer:fine){.icon-link:hover{background:rgba(150,77,59,.08);color:var(--accent)}}.icon-link svg{width:21px;height:21px}.menu-toggle{margin-left:2px}.nav-actions>.social-links{gap:0}

/* The photographed blue-grey walls, cream trim and brick-red seating inform the palette. */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;isolation:isolate;background:var(--blue);color:#fff;overflow:hidden}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;z-index:-2}
.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.10) 40%,rgba(0,0,0,.28) 100%)}
.hero-content{padding-block:calc(var(--header-height) + 40px) 54px;}
.hero .eyebrow{margin-bottom:19px;text-shadow:0 1px 6px rgba(0,0,0,.22)}
.hero h1{font-size:clamp(42px,10.8vw,76px);line-height:1.04;letter-spacing:.005em;text-shadow:0 2px 12px rgba(0,0,0,.18)}
.hero h1 span{display:block;font-size:.69em;letter-spacing:.115em;margin-top:8px}
.hero-description{font-size:17px;line-height:1.6;max-width:30ch;margin-top:22px;text-shadow:0 1px 5px rgba(0,0,0,.25)}
.hero-actions{display:flex;gap:12px;margin-top:26px}.hero-actions .button{gap:14px;padding-inline:20px}.hero a:focus-visible{outline-color:#fff}

.house-strip{background:var(--blue);color:var(--paper)}.house-strip-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-block:21px}
.house-strip p{display:flex;flex-direction:column;text-align:center;gap:3px;padding-inline:5px}.house-strip p+p{border-left:1px solid rgba(247,244,238,.24)}.house-strip strong{font-size:11px;font-weight:600;white-space:nowrap}.house-strip span{font-size:10px;color:#d0dad7}

/* Required photographs retain a measured 3:4 box independently of text and captions. */
.portrait{position:relative;display:block;width:100%;aspect-ratio:3/4;overflow:hidden;align-self:start;border-radius:var(--radius)}.portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:var(--image-position,50% 50%)}
.story{display:grid;gap:34px}.story-copy{align-self:center}.story-copy h2{margin-bottom:22px}.story-copy>p{font-size:15px;color:var(--muted);margin-bottom:16px;max-width:46ch}
.story-details{border-top:1px solid var(--line);margin:25px 0 0;padding-top:18px;display:grid;gap:12px}.story-details>div{display:grid;grid-template-columns:110px 1fr;gap:16px;font-size:12px;line-height:1.5}.story-details dt{font-weight:600;color:var(--accent)}.story-details dd{margin:0;color:var(--muted)}.story-copy .text-link{margin-top:21px}
.story-visual{position:relative;max-width:440px;isolation:isolate}.story-visual::before{content:'';position:absolute;width:17px;right:-11px;top:24px;bottom:54px;z-index:-1;background:repeating-linear-gradient(90deg,var(--accent) 0 3px,var(--paper) 3px 6px)}.story-visual figcaption{font-size:11px;line-height:1.5;color:var(--muted);margin-top:12px}
.menu-section{position:relative;background:var(--paper-tint)}.menu-section::before{content:'';position:absolute;inset:0 0 auto;height:7px;background:repeating-linear-gradient(90deg,var(--accent) 0 3px,var(--paper-tint) 3px 11px)}
.section-heading{margin-bottom:30px}.section-heading>p{margin-top:16px;font-size:15px;color:var(--muted);max-width:43ch}
.menu-grid{display:grid;gap:38px}.menu-item{min-width:0}.menu-copy{padding-top:20px}.menu-item h3{font-size:24px}.menu-item p{font-size:14px;line-height:1.6;margin-top:9px;color:var(--muted);max-width:36ch}.menu-item ul{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid #c9c3b8;font-size:13px;line-height:1.8}.menu-item li+li{margin-top:3px}.menu-item .menu-feature{font-family:Barlow Condensed,'Arial Narrow',sans-serif;font-weight:600;font-size:28px;line-height:1.25;color:var(--accent);margin-bottom:10px}

/* This central product composition replaces the second repeated split layout. */
.coffee-break{background:var(--paper)}.break-heading{margin-bottom:30px}.break-heading .eyebrow{color:var(--accent);margin-bottom:13px;max-width:none}.break-heading h2{font-size:52px}
.brew-layout{display:grid;gap:26px}.break-image{grid-row:1;min-width:0}.brew-coffee{grid-row:2}.brew-note{min-width:0}.brew-kind{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-bottom:5px}.brew-note h3{font-family:Barlow Condensed,'Arial Narrow',sans-serif;font-size:31px;line-height:1.15;letter-spacing:0}.brew-note p{color:var(--muted);font-size:14px;line-height:1.65;margin-top:10px;max-width:34ch}.brew-notes{display:grid;gap:24px}.brew-notes .brew-note{border-top:1px solid var(--line);padding-top:22px}
.gallery-section{background:#e9ece7}.gallery-grid{display:grid;gap:14px}.gallery-open{padding:0;text-align:left;background:#d9e0dd}.enlarge-icon{position:absolute;bottom:14px;right:14px;width:34px;height:34px;display:flex;justify-content:center;align-items:center;color:var(--ink);background:var(--paper);border-radius:var(--radius)}.enlarge-icon svg{width:18px;height:18px}

/* User-approved contrasting review section; the page retains a fixed light theme. */
.reviews-section{background:var(--blue);color:var(--paper)}.reviews-section a:focus-visible{outline-color:var(--paper)}.review-heading{display:grid;gap:26px;margin-bottom:32px}.rating-summary{display:flex;align-items:center;gap:20px}.rating-summary>strong{font-family:Barlow Condensed,'Arial Narrow',sans-serif;font-size:80px;line-height:.95;font-weight:600}.rating-summary>strong>span{font-family:DM Sans,Arial,sans-serif;font-size:18px;font-weight:400;color:#cbd6d4;margin-left:7px}.stars{color:inherit;font-size:16px;letter-spacing:3px;line-height:1.4}.rating-summary>span{display:flex;flex-direction:column;gap:6px}.rating-summary a{font-size:12px;text-decoration:underline;text-underline-offset:4px}
.reviews-grid{display:grid;gap:28px}.review{display:flex;flex-direction:column;padding-top:24px;border-top:1px solid #708389}.review blockquote{margin:17px 0 22px;font-size:17px;line-height:1.7;max-width:38ch}.review-author{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;margin-top:auto}.review-author img{width:44px;height:44px;object-fit:cover;border-radius:50%}.review .text-link{font-size:12px;margin-top:10px;padding-block:7px;border-bottom:0;color:#d6e0dd}@media(hover:hover) and (pointer:fine){.review .text-link:hover{color:#fff}}.review .text-link svg{width:15px;height:15px}

.visit-section{background:var(--paper)}.visit-grid{display:grid;gap:30px}.visit-grid address{font-style:normal;color:var(--muted);line-height:1.8;margin-top:22px;font-size:16px}.phone-link{display:inline-flex;margin-top:12px;padding-block:7px;font-weight:600;text-underline-offset:5px;text-decoration:underline}@media(hover:hover) and (pointer:fine){.phone-link:hover{color:var(--accent)}}.visit-hours{align-self:center;background:var(--paper-tint);padding:25px 24px 28px;border-top:3px solid var(--accent)}.visit-hours h3{font-size:20px;letter-spacing:-.025em}.hours-line{display:flex;flex-direction:column;gap:5px;margin-top:21px;font-size:12px;color:var(--muted)}.hours-line strong{font-family:Barlow Condensed,'Arial Narrow',sans-serif;font-size:47px;line-height:1.15;white-space:nowrap;color:var(--ink);font-weight:600}.hours-line strong span{font-size:24px;padding-inline:5px}.visit-hours p{font-size:13px;color:var(--muted);margin:17px 0 22px;max-width:30ch}.visit-hours .button{width:100%}
.map-wrap{margin-top:34px;height:390px;background:#dce4e1;overflow:hidden}.map-wrap iframe{display:block;width:100%;height:100%;border:0;max-width:none;transform-origin:top left}
.site-footer{padding-block:37px 21px;border-top:1px solid var(--line)}.footer-main{display:grid;grid-template-columns:1fr 1fr;gap:25px}.footer-brand{grid-column:1/-1}.footer-brand .wordmark>span{font-size:31px}.footer-brand .wordmark small{font-size:13px}.footer-contact{font-size:12px;line-height:1.8;color:var(--muted)}.footer-contact a{display:inline-block;margin-top:8px}.footer-main nav{display:flex;flex-direction:column;align-items:flex-start;gap:5px;font-size:13px;justify-self:end}.footer-main nav a{padding-block:5px}@media(hover:hover) and (pointer:fine){.footer-main nav a:hover{color:var(--accent)}}.footer-main .social-links{margin-left:-10px;grid-column:1/-1}.copyright{font-size:11px;color:var(--muted);margin-top:24px;padding-top:17px;border-top:1px solid var(--line)}
dialog{border:0;padding:0;color:var(--ink)}dialog::backdrop{background:rgba(0,0,0,.45)}.nav-dialog{position:fixed;inset:0 0 0 auto;width:min(440px,100%);height:100dvh;max-height:100dvh;max-width:100vw;margin:0;background:var(--paper);padding:20px 26px;overflow:auto}.nav-dialog[open]{display:flex;flex-direction:column}.nav-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding-bottom:15px}.nav-dialog-top>span{font-size:13px}.nav-dialog nav{display:flex;flex-direction:column;margin-top:28px}.nav-dialog nav>a{display:flex;align-items:center;justify-content:space-between;gap:20px;font-family:Barlow Condensed,'Arial Narrow',sans-serif;font-weight:600;font-size:39px;line-height:1.4;padding-block:10px}@media(hover:hover) and (pointer:fine){.nav-dialog nav>a:hover{color:var(--accent)}}.nav-dialog nav svg{width:24px;height:24px}.drawer-bottom{margin-top:auto;padding-top:32px;display:flex;justify-content:space-between;align-items:end;gap:10px}.drawer-bottom p{font-size:12px;line-height:1.8;color:var(--muted)}.lightbox{position:fixed;inset:0;margin:auto;width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;color:#f6f7f3;background:transparent;overflow:hidden}.lightbox::backdrop{background:rgba(12,19,21,.96)}.lightbox-inner{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:12px 16px}.lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:15px;max-width:1320px;width:100%;margin-inline:auto;font-size:13px}.lightbox .icon-link{color:#fff;background:rgba(255,255,255,.08)}@media(hover:hover) and (pointer:fine){.lightbox .icon-link:hover{background:rgba(255,255,255,.18)}}.lightbox button:focus-visible{outline-color:#fff}.lightbox-stage{display:flex;align-items:center;justify-content:center;min-height:0;padding-block:12px}.lightbox-image{height:100%;width:100%;max-height:100%;object-fit:contain;display:block}.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:32px;padding-block:4px}.lightbox-counter{font-size:12px;font-variant-numeric:tabular-nums;min-width:38px;text-align:center}

@media(min-width:640px){
 :root{--gutter:32px}.section{padding-block:78px}.hero h1{font-size:76px}.hero-content{padding-bottom:72px}.hero-image{object-position:50% 50%}.house-strip-inner{padding-block:25px}.house-strip strong{font-size:16px}.house-strip span{font-size:12px}
 .menu-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.menu-item h3{font-size:20px}.menu-item p,.menu-item ul{font-size:13px}.menu-item .menu-feature{font-size:25px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
}
@media(min-width:768px){
 .story{grid-template-columns:1.15fr 1fr;gap:55px}.story-copy h2{font-size:58px}.story-visual{width:100%;justify-self:end}.story-details>div{grid-template-columns:1fr;gap:3px}.story-details{gap:13px}
 .break-heading{text-align:center;margin-bottom:40px}.break-heading h2{font-size:70px}.brew-layout{grid-template-columns:1fr 1.4fr 1fr;gap:25px;align-items:center}.brew-coffee{grid-column:1;grid-row:1}.break-image{grid-column:2;grid-row:1}.brew-notes{grid-column:3;grid-row:1;gap:25px}.brew-notes .brew-note:first-child{padding-top:0;border-top:0}.brew-note h3{font-size:27px}.brew-note p{font-size:13px}.brew-kind{font-size:11px}
 .reviews-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.review blockquote{font-size:15px}.review-author{gap:10px;font-size:12px}.review-author img{width:38px;height:38px}.review-heading{display:flex;justify-content:space-between;align-items:center;gap:35px}.visit-grid{grid-template-columns:1.15fr 1fr;gap:60px}.visit-grid h2{font-size:58px}.visit-hours{padding:27px}.visit-hours h3{font-size:21px}.map-wrap{height:440px;margin-top:42px}
}
@media(min-width:1024px){
 :root{--gutter:56px}.section{padding-block:92px}.nav-shell{gap:30px}.desktop-nav{display:flex;align-items:center;gap:34px;font-size:13px}.desktop-nav>a{padding-block:20px}@media(hover:hover) and (pointer:fine){.desktop-nav>a:hover{color:var(--accent)}}.wordmark>span{font-size:28px}.wordmark small{font-size:11px}.nav-actions>.social-links{gap:6px}.menu-toggle{display:none}
 .hero h1{font-size:104px}.hero-description{font-size:18px;max-width:35ch}.hero-content{padding-bottom:78px}.hero-actions{margin-top:28px}.hero-actions .button{min-width:161px}.house-strip-inner{padding-block:26px}.house-strip strong{font-size:18px}.house-strip span{font-size:12px}
 .story{gap:110px}.story-copy h2{font-size:78px}.story-copy>p{font-size:16px}.story-details{margin-top:28px;gap:13px}.story-details>div{grid-template-columns:125px 1fr;gap:16px;font-size:13px}.story-visual figcaption{font-size:12px}
 .section-heading{margin-bottom:38px}.section-heading>p{font-size:16px}.menu-grid{gap:30px}.menu-item h3{font-size:25px}.menu-item p{font-size:14px;min-height:45px}.menu-item ul{font-size:14px}.menu-item .menu-feature{font-size:31px}.menu-copy{padding-top:24px}
 .break-heading h2{font-size:84px}.break-heading{margin-bottom:45px}.brew-layout{grid-template-columns:1fr 440px 1fr;gap:50px}.brew-note h3{font-size:36px}.brew-note p{font-size:15px}.brew-kind{font-size:12px}.brew-notes{gap:36px}.brew-notes .brew-note{padding-top:28px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
 .review-heading{margin-bottom:42px}.rating-summary>strong{font-size:100px}.reviews-grid{gap:48px}.review blockquote{font-size:17px}.review-author{font-size:13px}.review-author img{width:44px;height:44px}.visit-grid{gap:115px}.visit-grid h2{font-size:78px}.visit-hours{padding:31px 34px 34px}.visit-hours h3{font-size:23px}.hours-line{margin-top:24px}.hours-line strong{font-size:58px}.visit-hours .button{width:auto;min-width:210px}.map-wrap{height:480px;margin-top:46px}
 .footer-main{grid-template-columns:1.3fr 1.1fr .6fr auto;gap:32px;align-items:start}.footer-brand{grid-column:auto}.footer-main nav{justify-self:start}.site-footer{padding-block:44px 24px}.footer-main .social-links{margin:0;grid-column:auto}.footer-contact{font-size:13px}.copyright{margin-top:32px}.lightbox-inner{padding:18px 40px}.lightbox-stage{padding-block:16px}
}
@media(max-width:374px){.wordmark>span{font-size:22px}.wordmark small{font-size:10px}.nav-shell{gap:4px}.nav-actions{gap:0}.nav-actions .icon-link{width:38px}.hero-actions .button{padding-inline:15px;gap:10px}.hero h1{font-size:40px}.house-strip strong{font-size:10px}.house-strip span{font-size:9px}.story-details>div{grid-template-columns:100px 1fr;gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Local Lucide icons make visit details easier to scan without adding decorative noise. */
.visit-details{display:grid;gap:15px;margin-top:22px}.visit-detail{display:flex;align-items:flex-start;gap:12px}.visit-grid address.visit-detail{margin-top:0}.visit-icon{width:20px;height:20px;flex:none;margin-top:3px;color:var(--accent)}.phone-link.visit-detail{justify-self:start;align-items:flex-start;margin-top:0;padding-block:0;text-decoration:none}.phone-link.visit-detail span{text-decoration:underline;text-underline-offset:5px}.visit-hours-title{display:flex;align-items:center;gap:10px}.visit-hours-title .visit-icon{margin-top:0}

/* Desktop storefront composition: the name anchors the left; the visit invitation holds the right. */
@media(min-width:1024px){
 .site-header{transition:background .24s ease,border-color .24s ease,color .24s ease}
 body.hero-at-top .site-header{background:transparent;border-bottom-color:transparent;color:#fff}
 body.hero-at-top .site-header .brand-link,body.hero-at-top .site-header .desktop-nav>a,body.hero-at-top .site-header .icon-link{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.38)}
 body.hero-at-top .site-header .desktop-nav>a[aria-current="location"]{border-bottom-color:#fff}
 body.hero-at-top .site-header .icon-link:hover{background:rgba(255,255,255,.14);color:#fff}
 .hero{align-items:stretch}
 .hero-content{height:100svh;padding:0 0 clamp(50px,7vh,76px);display:flex;align-items:flex-end;justify-content:space-between;gap:48px}
 .hero-branding{flex:1 1 auto;min-width:0}
 .hero .eyebrow{margin:0 0 20px}
 .hero h1{max-width:850px;font-size:clamp(90px,9.6vw,150px);line-height:.88;letter-spacing:.005em}
 .hero h1 span{font-size:.58em;letter-spacing:.11em;margin-top:12px}
 .hero-cta{flex:0 1 360px;padding-bottom:5px;text-align:right}
 .hero-description{max-width:29ch;margin:0 0 28px auto;font-size:18px}
 .hero-actions{justify-content:flex-end;margin-top:0}
 .hero-actions .button{min-width:161px}
}
