:root {
  --cb-blue: #0545a5;
  --cb-blue-deep: #07387f;
  --cb-cream: #f5eee8;
  --cb-sand: #c6b2a7;
  --cb-ink: #082e68;
  --cb-white: #fff;
  --cb-acid: #b4d651;
  --cb-line: rgba(5,69,165,.18);
  --cb-display: "Hobeaux", "Arial Rounded MT Bold", "Trebuchet MS", Arial, sans-serif;
  --cb-title-font: var(--cb-display);
  --cb-body: "Azo Sans", "Avenir Next", Avenir, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { margin: 0; background: var(--cb-cream); color: var(--cb-ink); font-family: var(--cb-body); font-size: 16px; line-height: 1.55; overflow-x: hidden; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.skip-link { position: fixed; left: 16px; top: -60px; z-index: 9999; background: var(--cb-cream); color: var(--cb-blue); padding: 10px 16px; }
.skip-link:focus { top: 12px; }

.site-header { position: fixed; z-index: 1000; inset: 0 0 auto; height: 88px; padding: 12px clamp(20px,4vw,64px); display: flex; align-items: center; justify-content: space-between; color: white; transition: background .35s ease, box-shadow .35s ease, height .35s ease; }
.site-header.scrolled, .site-header.menu-open { height: 86px; background: rgba(5,69,165,.96); box-shadow: 0 10px 35px rgba(4,42,101,.18); backdrop-filter: blur(12px); }
.brand { width: 180px; height: 62px; display: flex; align-items: center; position: relative; z-index: 2; }
.brand img { width: 180px; height: auto; filter: drop-shadow(0 2px 10px rgba(0,0,0,.16)); }
.site-nav { display: flex; z-index:1001; gap: clamp(18px,2.2vw,38px); align-items: center; font-weight: 700; font-size: .77rem; letter-spacing: .09em; text-transform: uppercase; }
.site-nav a { position: relative; padding: 10px 0; }
.site-nav a:not(.nav-cta)::after { content:""; position:absolute; left:0; right:100%; bottom:4px; height:2px; background:white; transition:right .25s ease; }
.site-nav a:hover::after, .site-nav a:focus-visible::after { right:0; }
.nav-cta { border: 1px solid rgba(255,255,255,.7); border-radius: 999px; padding: 10px 16px !important; transition: background .2s,color .2s; }
.nav-cta:hover { background:white; color:var(--cb-blue); }
.menu-toggle { display:none; cursor:pointer; touch-action:manipulation; border:0; background:none; padding:9px; position:relative; z-index:1002; }
.menu-toggle span { display:block; width:26px; height:2px; background:white; margin:6px 0; transition:.25s; }

.hero { height: max(680px, 100svh); min-height: 680px; position: relative; background: var(--cb-blue); overflow: hidden; }
.hero-slider,.hero-slide,.hero-slide-link { position:absolute; inset:0; display:block; }
.hero-slide { opacity:0; visibility:hidden; transition:opacity .8s ease,visibility .8s ease; }
.hero-slide.is-active { opacity:1; visibility:visible; }
.hero-image { position:absolute; inset:0; background:url("assets/hero-four-drinks.png") 50% 48% / cover no-repeat; transform:scale(1.01); }
.hero-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,28,80,.34) 0,transparent 27%,transparent 75%,rgba(5,69,165,.12) 100%); pointer-events:none; }
.hero-arrow { position:absolute; z-index:4; top:50%; width:48px; height:48px; margin-top:-24px; border:1px solid rgba(255,255,255,.65); border-radius:50%; background:rgba(5,69,165,.18); color:white; font-size:2rem; line-height:1; cursor:pointer; backdrop-filter:blur(5px); }
.hero-arrow{display:grid;place-items:center;font-size:0}
.hero-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hero-prev { left:clamp(16px,3vw,46px); }.hero-next { right:clamp(16px,3vw,46px); }
.hero-dots { position:absolute; z-index:4; left:50%; bottom:30px; display:flex; gap:10px; transform:translateX(-50%); }
.hero-dot { width:9px; height:9px; padding:0; border:1px solid white; border-radius:50%; background:transparent; cursor:pointer; }
.hero-dot.is-active { background:white; }
.hero-slider:not([data-slide-count="1"]) .scroll-mark { display:none; }
.scroll-mark { position:absolute; left:50%; bottom:28px; width:1px; height:70px; background:rgba(255,255,255,.38); overflow:hidden; }
.scroll-mark span { display:block; width:1px; height:32px; background:white; animation:scrollLine 2s ease-in-out infinite; }
@keyframes scrollLine { 0%{transform:translateY(-34px)} 60%,100%{transform:translateY(72px)} }

.section { padding: clamp(80px,10vw,150px) clamp(22px,6vw,96px); }
.intro { background:var(--cb-cream); padding-bottom:0; }
.eyebrow { display:flex; justify-content:space-between; gap:20px; padding-bottom:18px; border-bottom:1px solid var(--cb-line); font-weight:800; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; }
.intro-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.72fr); gap:clamp(40px,8vw,130px); align-items:start; padding:clamp(55px,7vw,110px) 0 110px; }
.display, h2 { font-family:var(--cb-display); text-transform:uppercase; letter-spacing:-.065em; line-height:.82; margin:0; }
.display,
.section-head h2,
.process-copy h2,
.bakery-copy h2,
.visit-panel h2,
.contact-intro h2 { font-family:var(--cb-title-font); }
.display { font-size:clamp(4.2rem,10vw,10rem); color:var(--cb-blue); }
.display em { font-style:normal; color:var(--cb-sand); }
.intro-copy { padding-top:12px; max-width:620px; }
.intro-copy .lead { font-size:clamp(1.35rem,2vw,2rem); line-height:1.28; font-weight:650; letter-spacing:-.025em; margin:0 0 30px; }
.intro-copy p:not(.lead) { max-width:54ch; color:#284d7b; }
.text-link { display:inline-flex; gap:28px; align-items:center; margin-top:24px; padding-bottom:7px; border-bottom:2px solid var(--cb-blue); font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:.78rem; }
.text-link span { font-size:1.15rem; transition:transform .2s; }
.text-link:hover span { transform:translate(4px,4px); }
.flat-arrow{position:relative;display:inline-block;flex:0 0 auto;width:15px;height:15px;margin-left:6px;transition:transform .2s}
.flat-arrow::before{content:"";position:absolute;left:1px;top:7px;width:14px;height:1.5px;background:currentColor;transform:rotate(-45deg);transform-origin:center}
.flat-arrow::after{content:"";position:absolute;right:0;top:0;width:7px;height:7px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor}
.flat-arrow.down{transform:rotate(90deg)}
.text-link:hover .flat-arrow{transform:translate(3px,3px)}
.text-link:hover .flat-arrow.down{transform:rotate(90deg) translate(3px,-3px)}
.menu-section { background:var(--cb-blue); color:white; padding-top:clamp(90px,9vw,140px); }
.section-head { display:grid; grid-template-columns:1.35fr .65fr; gap:60px; align-items:end; margin-bottom:clamp(70px,10vw,150px); }
.kicker { margin:0 0 22px; font-weight:800; font-size:.72rem; letter-spacing:.17em; text-transform:uppercase; }
.section-head h2, .process h2, .bakery h2, .visit h2, .contact h2 { font-size:clamp(4rem,8vw,8.5rem); }
.section-head > p { max-width:430px; margin:0 0 8px auto; font-size:1.15rem; color:rgba(255,255,255,.76); }
.product-list { display:flex; flex-direction:column; gap:clamp(90px,12vw,180px); }
.product { display:grid; grid-template-columns:72px minmax(340px,.9fr) minmax(320px,.8fr); gap:clamp(26px,5vw,82px); align-items:center; position:relative; }
.product.reverse { grid-template-columns:72px minmax(320px,.8fr) minmax(340px,.9fr); }
.product.reverse .product-visual { grid-column:3; }
.product.reverse .product-info { grid-column:2; grid-row:1; }
.product-number { align-self:start; font-weight:800; letter-spacing:.12em; font-size:.75rem; border-top:1px solid rgba(255,255,255,.45); padding-top:10px; }
.product-visual { background:transparent; padding:0; aspect-ratio:1/1; display:flex; align-items:center; overflow:hidden; position:relative; }
.product-visual::after { content:none; }
.product-visual img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .7s cubic-bezier(.2,.8,.2,1); }
.product:hover .product-visual img { transform:scale(1.035); }
.product-info { max-width:520px; }
.product-title { width:min(100%,480px); height:auto; max-height:150px; object-fit:contain; object-position:left center; margin-bottom:32px; }
.product-title.title-wide { max-height:80px; }
.product-info p { font-size:clamp(1.05rem,1.5vw,1.35rem); color:rgba(255,255,255,.78); max-width:40ch; }
.tag { display:inline-block; margin-top:18px; border:1px solid rgba(255,255,255,.46); border-radius:999px; padding:8px 14px 7px; text-transform:uppercase; font-size:.68rem; font-weight:800; letter-spacing:.13em; }

.process { background:var(--cb-sand); display:grid; grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr); padding:0; min-height:800px; }
.process-image { min-height:760px; overflow:hidden; }
.process-image img { height:100%; object-fit:cover; object-position:center 46%; }
.process-copy { padding:clamp(70px,10vw,150px) clamp(30px,7vw,110px); align-self:center; }
.process-copy h2 { color:var(--cb-blue); font-size:clamp(3.3rem,6.7vw,7rem); }
.process-copy > p:not(.kicker) { max-width:48ch; margin:36px 0 44px; color:#163f73; font-size:1.1rem; }
.process-copy ol { list-style:none; padding:0; margin:0; border-top:1px solid rgba(5,69,165,.24); }
.process-copy li { display:flex; gap:25px; padding:15px 0; border-bottom:1px solid rgba(5,69,165,.24); font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:.8rem; }
.process-copy li span { color:rgba(5,69,165,.52); }

.bakery { background:var(--cb-cream); display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:clamp(50px,8vw,130px); min-height:760px; }
.bakery h2 { color:var(--cb-blue); }
.bakery-copy > p:last-child { max-width:44ch; margin-top:36px; font-size:1.1rem; color:#35567e; }
.bakery-art { min-height:520px; position:relative; background:var(--cb-blue); overflow:hidden; border-radius:50% 50% 4px 4px; }
.bakery-art.has-custom-image { background-position:center; background-size:cover; background-repeat:no-repeat; }
.bakery-art.has-custom-image .cookie, .bakery-art.has-custom-image .scone { display:none; }
.bakery-art > span { position:absolute; color:white; font-family:var(--cb-display); font-size:clamp(2.5rem,5vw,5.3rem); line-height:.85; left:8%; bottom:8%; z-index:3; }
.cookie, .scone { position:absolute; background:#b87944; box-shadow:inset -18px -16px 0 rgba(76,36,10,.16), 0 25px 40px rgba(0,0,0,.18); }
.cookie { width:180px; aspect-ratio:1; border-radius:50%; }
.cookie::before { content:""; position:absolute; inset:22px; background:radial-gradient(circle at 20% 24%,#452715 0 6px,transparent 7px),radial-gradient(circle at 68% 18%,#452715 0 8px,transparent 9px),radial-gradient(circle at 52% 60%,#452715 0 7px,transparent 8px),radial-gradient(circle at 78% 74%,#452715 0 5px,transparent 6px),radial-gradient(circle at 18% 72%,#452715 0 6px,transparent 7px); }
.cookie-one { right:8%; top:8%; transform:rotate(14deg); }
.cookie-two { right:30%; top:38%; width:140px; transform:rotate(-18deg); }
.scone { width:230px; height:210px; right:5%; bottom:3%; clip-path:polygon(50% 0,100% 100%,0 100%); background:#d3a16d; transform:rotate(9deg); }

.social { background:var(--cb-blue-deep); color:white; }
.social-head { margin-bottom:70px; }
.round-link { justify-self:end; width:76px; height:76px; border:1px solid rgba(255,255,255,.55); border-radius:50%; display:grid; place-items:center; font-size:2rem; transition:.25s; }
.round-link:hover { background:white; color:var(--cb-blue); transform:rotate(8deg); }
.social-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; align-items:start; }
.social-card { display:block; position:relative; overflow:hidden; aspect-ratio:1/1; background:var(--cb-blue); }
.social-card.tall { aspect-ratio:3/4; }
.social-card img { height:100%; object-fit:cover; transition:transform .65s cubic-bezier(.2,.8,.2,1); }
.social-card span { position:absolute; inset:auto 12px 12px; background:rgba(245,238,232,.94); color:var(--cb-blue); padding:10px 12px 9px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:.66rem; transform:translateY(calc(100% + 14px)); transition:.3s; }
.social-card:hover img { transform:scale(1.04); }
.social-card:hover span, .social-card:focus-visible span { transform:translateY(0); }

.visit { background:var(--cb-cream); display:grid; grid-template-columns:1.08fr .92fr; padding:0; }
.visit-panel { background:var(--cb-blue); color:white; padding:clamp(70px,9vw,140px) clamp(28px,7vw,105px); display:flex; flex-direction:column; justify-content:space-between; min-height:820px; }
.visit-panel h2 { font-size:clamp(4rem,7.5vw,8rem); }
.visit-details { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:end; }
.visit-details p { color:rgba(255,255,255,.76); }
.visit-details strong { color:white; }
.button { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--cb-blue); background:var(--cb-blue); color:white; padding:15px 22px 14px; text-transform:uppercase; letter-spacing:.1em; font-size:.72rem; font-weight:800; cursor:pointer; transition:.2s; }
.button:hover { background:var(--cb-blue-deep); }
.button.light { grid-column:1/-1; justify-self:start; background:white; color:var(--cb-blue); border-color:white; }
.button.light:hover { background:var(--cb-sand); border-color:var(--cb-sand); }
.visit-image { min-height:820px; overflow:hidden; }
.visit-image img { height:100%; object-fit:cover; }

.contact { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(60px,9vw,150px); background:var(--cb-sand); }
.contact h2 { color:var(--cb-blue); font-size:clamp(3.4rem,6.5vw,7rem); }
.contact-intro > p:last-child { max-width:42ch; margin-top:35px; color:#274d7d; }
.contact-intro a { text-decoration:underline; text-underline-offset:4px; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:25px 20px; align-self:start; }
.contact-form label { display:flex; flex-direction:column; gap:8px; }
.contact-form label:nth-child(4) { grid-column:1/-1; }
.contact-form label span { font-weight:800; text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; }
.contact-form input, .contact-form textarea { width:100%; border:0; border-bottom:1px solid rgba(5,69,165,.4); background:transparent; color:var(--cb-ink); border-radius:0; padding:12px 0; outline:none; }
.contact-form textarea { resize:vertical; min-height:110px; }
.contact-form input:focus, .contact-form textarea:focus { border-color:var(--cb-blue); box-shadow:0 1px 0 var(--cb-blue); }
.contact-form .button { justify-self:start; }
.contact-form .button:disabled { cursor:wait; opacity:.65; }
.form-note { font-size:.75rem; color:#486481; align-self:center; margin:0; }
.form-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.form-status { grid-column:1/-1; min-height:1.4em; margin:0; font-size:.85rem; font-weight:700; }
.form-status.is-success { color:#176b3a; }
.form-status.is-error { color:#a32727; }

.inner-page .site-header { background:rgba(5,69,165,.97); backdrop-filter:blur(12px); }
.news-hero { background:var(--cb-blue); color:white; padding:clamp(155px,18vw,240px) clamp(22px,6vw,96px) clamp(80px,10vw,145px); }
.news-hero .eyebrow { border-color:rgba(255,255,255,.28); }
.news-hero h1 { max-width:1000px; margin:clamp(46px,7vw,86px) 0 28px; font-family:var(--cb-title-font); font-size:clamp(4.2rem,11vw,11rem); line-height:.82; letter-spacing:-.07em; text-transform:uppercase; }
.news-hero > p:last-child { max-width:620px; margin:0; color:rgba(255,255,255,.75); font-size:clamp(1.05rem,1.7vw,1.3rem); }
.news-index { background:var(--cb-cream); }
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.news-card { display:flex; flex-direction:column; min-height:540px; background:white; border:1px solid var(--cb-line); transition:transform .3s ease, box-shadow .3s ease; }
.news-card:hover { transform:translateY(-7px); box-shadow:0 24px 50px rgba(5,69,165,.11); }
.news-card-image { aspect-ratio:4/3; overflow:hidden; background:var(--cb-blue); }
.news-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.news-card:hover .news-card-image img { transform:scale(1.035); }
.news-card-body { flex:1; display:flex; flex-direction:column; padding:28px; }
.news-meta { display:flex; justify-content:space-between; gap:15px; color:var(--cb-blue); font-size:.68rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.news-card h2 { margin:30px 0 20px; color:var(--cb-blue); font-size:clamp(2.1rem,3vw,3.3rem); line-height:.92; }
.news-card p { color:#486481; }
.news-card .text-link { margin-top:auto; align-self:flex-start; }
.news-note { margin-top:60px; padding:24px 0; border-top:1px solid var(--cb-line); border-bottom:1px solid var(--cb-line); color:#496581; }
.article-hero { background:var(--cb-blue); color:white; padding:clamp(150px,17vw,225px) clamp(22px,12vw,190px) clamp(70px,9vw,120px); }
.article-hero .news-meta { color:var(--cb-sand); max-width:800px; }
.article-hero h1 { max-width:1000px; margin:40px 0 0; font-family:var(--cb-title-font); font-size:clamp(3.6rem,8vw,8rem); line-height:.86; letter-spacing:-.06em; text-transform:uppercase; }
.article-content { background:var(--cb-cream); padding:clamp(70px,10vw,145px) clamp(22px,18vw,290px); }
.article-content .lead { margin:0 0 34px; color:var(--cb-blue); font-size:clamp(1.4rem,2.4vw,2.1rem); line-height:1.3; font-weight:700; letter-spacing:-.025em; }
.article-content p { max-width:720px; color:#35567e; font-size:1.05rem; }
.article-content .status-box { max-width:720px; margin:45px 0; padding:28px; background:white; border-left:5px solid var(--cb-blue); }
.article-content .status-box strong { display:block; margin-bottom:8px; color:var(--cb-blue); text-transform:uppercase; letter-spacing:.1em; font-size:.75rem; }
.article-back { margin-top:55px; }

.site-footer { background:var(--cb-blue-deep); color:white; }
.footer-main { display:grid; grid-template-columns:.7fr .9fr 1.25fr 1.15fr; gap:clamp(35px,5vw,80px); padding:clamp(70px,8vw,120px) clamp(22px,6vw,96px); }
.newsletter-strip { display:grid; grid-template-columns:minmax(115px,.55fr) minmax(0,1.45fr); gap:clamp(12px,4vw,55px); align-items:center; width:100%; height:60px; min-height:60px; max-height:60px; padding:3px clamp(14px,6vw,96px); overflow:hidden; background:var(--cb-blue); border-top:1px solid rgba(255,255,255,.22); }
.newsletter-copy .kicker, .newsletter-copy > p:last-child { display:none; }
.newsletter-copy h2 { margin:0; color:white; font-family:var(--cb-title-font); font-size:clamp(.9rem,1.7vw,1.35rem); line-height:1; white-space:nowrap; }
.newsletter-form { position:relative; align-self:center; min-width:0; padding-bottom:11px; }
.newsletter-fields { display:grid; grid-template-columns:minmax(70px,1fr) auto; align-items:center; gap:8px; }
.newsletter-fields input { width:100%; min-width:0; min-height:28px; height:28px; border:0; border-bottom:1px solid rgba(255,255,255,.65); border-radius:0; outline:none; background:transparent; color:white; font-size:.78rem; }
.newsletter-fields input::placeholder { color:rgba(255,255,255,.65); }
.newsletter-fields input:focus { border-color:white; box-shadow:0 1px 0 white; }
.newsletter-fields .button { grid-column:auto; min-height:29px; padding:6px 11px 5px; white-space:nowrap; font-size:.58rem; }
.newsletter-fields .button:disabled { cursor:wait; opacity:.65; }
.newsletter-consent { display:none; }
.newsletter-form .form-status { position:absolute; right:0; bottom:0; left:0; min-height:9px; margin:0; overflow:hidden; color:white; font-size:.6rem; line-height:1; white-space:nowrap; text-overflow:ellipsis; }
.newsletter-form .form-status.is-success { color:#bdeccf; }
.newsletter-form .form-status.is-error { color:#ffd0d0; }
.screen-reader-text { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.footer-col h3 { margin:0 0 24px; color:var(--cb-sand); font-family:var(--cb-display); text-transform:uppercase; font-size:1rem; letter-spacing:.03em; }
.footer-col p, .footer-col nav { color:rgba(255,255,255,.78); font-size:.92rem; }
.footer-col nav { display:flex; flex-direction:column; align-items:flex-start; gap:8px; text-transform:uppercase; letter-spacing:.08em; }
.footer-col nav a:hover { color:white; }
.social-icons { display:flex; gap:12px; }
.social-icons a { width:44px; height:44px; border:1px solid rgba(255,255,255,.4); border-radius:50%; display:grid; place-items:center; transition:.2s; }
.social-icons a:hover { background:white; color:var(--cb-blue); }
.social-icons svg { width:19px; fill:none; stroke:currentColor; stroke-width:1.8; }
.social-icons svg.filled { fill:currentColor; stroke:none; }
.footer-brand img { width:min(270px,100%); margin-top:-22px; }
.footer-brand p { margin-top:-8px; }
.rhg-band { background:#3b4c43; box-sizing:border-box; width:100%; height:80px; min-height:80px; max-height:80px; padding:8px clamp(22px,6vw,96px); display:flex; flex-direction:row; gap:18px; align-items:center; justify-content:center; text-align:center; overflow:hidden; border-top:1px solid rgba(255,255,255,.16); }
.rhg-band p { margin:0; color:rgba(255,255,255,.65); font-size:.58rem; font-weight:800; letter-spacing:.16em; white-space:nowrap; text-transform:uppercase; }
.rhg-band img { width:auto; max-width:min(240px,55vw); height:52px; max-height:52px; object-fit:contain; }
.footer-bottom { background:#101913; padding:20px clamp(22px,6vw,96px); display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.6); }
.footer-legal-links { display:flex; gap:24px; }
.footer-legal-links a { border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:3px; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 1020px) {
  .site-header { height:76px; padding-inline:24px; }
  .brand { width:150px; height:56px; }
  .brand img { width:150px; }
  .menu-toggle { display:block; }
  .site-nav { position:fixed; inset:86px 0 auto; max-height:calc(100vh - 86px); overflow:auto; background:var(--cb-blue); flex-direction:column; align-items:flex-start; padding:24px; gap:2px; transform:translateY(-130%); opacity:0; visibility:hidden; pointer-events:none; transition:.3s; box-shadow:0 16px 30px rgba(4,42,101,.16); }
  .menu-open .site-nav { transform:none; opacity:1; visibility:visible; pointer-events:auto; }
  .site-nav a { width:100%; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.16); }
  .nav-cta { border:0; border-radius:0; }
  .menu-open .menu-toggle span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
  .menu-open .menu-toggle span:nth-child(2) { opacity:0; }
  .menu-open .menu-toggle span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
  .hero { min-height:620px; }
  .hero-image { background-position:center 48%; }
  .intro-grid { grid-template-columns:1fr; gap:45px; }
  .intro-copy { margin-left:auto; }
  .section-head { grid-template-columns:1fr; gap:28px; }
  .section-head > p { margin-left:0; }
  .product, .product.reverse { grid-template-columns:46px minmax(0,1fr); gap:24px; }
  .product .product-visual, .product.reverse .product-visual { grid-column:2; grid-row:1; }
  .product .product-info, .product.reverse .product-info { grid-column:2; grid-row:2; }
  .product-number { grid-column:1; grid-row:1; }
  .process { grid-template-columns:1fr 1fr; }
  .process-copy { padding:70px 36px; }
  .bakery { grid-template-columns:1fr 1fr; }
  .social-grid { grid-template-columns:repeat(2,1fr); }
  .visit-details { grid-template-columns:1fr; }
  .button.light { grid-column:auto; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .news-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 720px) {
  html { scroll-padding-top:82px; }
  .site-header, .site-header.scrolled, .site-header.menu-open { height:82px; }
  .site-nav { top:82px; }
  .brand { width:132px; }
  .brand img { width:132px; }
  .hero { min-height:540px; height:78svh; }
  .hero-image { background-size:auto 100%; background-position:50% 50%; }
  .section { padding:74px 22px; }
  .eyebrow { flex-direction:column; gap:7px; }
  .intro-grid { padding:55px 0 72px; }
  .display { font-size:clamp(3.7rem,18vw,6.3rem); }
  .section-head h2, .process h2, .bakery h2, .visit h2, .contact h2 { font-size:clamp(3.1rem,14vw,5.2rem); }
  .menu-section { padding-top:80px; }
  .product, .product.reverse { display:grid; grid-template-columns:1fr; gap:22px; }
  .product-number { grid-column:1; grid-row:auto; }
  .product .product-visual, .product.reverse .product-visual { grid-column:1; grid-row:auto; }
  .product .product-info, .product.reverse .product-info { grid-column:1; grid-row:auto; }
  .product-title { max-height:95px; margin-bottom:22px; }
  .product-title.title-wide { max-height:55px; }
  .process { grid-template-columns:1fr; }
  .process-image { min-height:560px; }
  .process-copy { padding:74px 22px; }
  .bakery { grid-template-columns:1fr; min-height:0; }
  .bakery-art { min-height:430px; }
  .social-head { grid-template-columns:1fr auto; }
  .social-head .round-link { grid-column:2; grid-row:1; }
  .social-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .social-card span { transform:none; font-size:.58rem; }
  .visit { grid-template-columns:1fr; }
  .visit-panel { min-height:700px; padding:74px 22px; }
  .visit-image { min-height:560px; }
  .contact { grid-template-columns:1fr; gap:60px; }
  .contact-form { grid-template-columns:1fr; }
  .contact-form label:nth-child(4) { grid-column:auto; }
  .newsletter-strip { grid-template-columns:minmax(82px,.52fr) minmax(0,1.48fr); gap:8px; padding-inline:10px; }
  .newsletter-copy h2 { font-size:.82rem; }
  .newsletter-fields { grid-template-columns:minmax(58px,1fr) auto; gap:6px; }
  .newsletter-fields .button { justify-self:stretch; padding-inline:8px; }
  .footer-main { grid-template-columns:1fr 1fr; padding:68px 22px; }
  .footer-brand { grid-column:1/-1; }
  .footer-brand img { width:230px; }
  .footer-bottom { padding-inline:22px; flex-direction:column; }
  .rhg-band { height:80px; min-height:80px; max-height:80px; padding-block:8px; }
  .news-grid { grid-template-columns:1fr; }
  .news-card { min-height:0; }
}

@media (max-width: 430px) {
  .hero { height:72svh; min-height:500px; }
  .hero-image { background-size:auto 100%; }
  .social-grid { grid-template-columns:1fr; }
  .social-card, .social-card.tall { aspect-ratio:4/5; }
  .footer-main { grid-template-columns:1fr; }
  .footer-brand { grid-column:auto; }
  .bakery-art { min-height:390px; }
  .cookie-one { width:140px; }
  .cookie-two { width:110px; }
  .scone { width:180px; height:170px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
/* Elementor/Astra integration */
.coolbean-site-shell{margin:0;width:100%;overflow:hidden;background:#0545a5}
.coolbean-site-shell .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.elementor-widget-shortcode .elementor-shortcode{width:100%}
.page-template-elementor_canvas{margin:0}
.home-news{background:#f5eee8;color:#07387f}
.footer-extra-social{display:flex;gap:1rem;margin-top:1rem;flex-wrap:wrap}.footer-extra-social a{color:inherit;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}
.menu-section .section-head h2,.visit-panel h2{color:var(--cb-sand)}
.menu-section .section-head>p,.visit-panel .visit-details,.visit-panel .visit-details p{color:var(--cb-white)}
@media(max-width:700px){.coolbean-site-shell .hero-video{object-position:center}.home-news-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.home-news-grid .news-card{min-width:88%;scroll-snap-align:center}}

/* Native WordPress News archive and individual posts */
.cb-blog-page{margin:0;background:var(--cb-cream);color:var(--cb-ink);font-family:var(--cb-body)}
.cb-blog-page .coolbean-site-shell{min-height:100vh;background:var(--cb-cream)!important}
.cb-blog-main{padding:150px clamp(22px,6vw,96px) 110px;background:var(--cb-cream)!important;color:var(--cb-ink)!important}
.cb-blog-title{display:block!important;visibility:visible!important;opacity:1!important;margin:0 0 26px;font-family:var(--cb-title-font);font-size:clamp(4.2rem,10vw,10rem);line-height:.82;letter-spacing:-.065em;text-transform:uppercase;color:var(--cb-blue)!important}
.cb-blog-intro{max-width:650px;margin:0 0 70px;font-size:clamp(1.1rem,1.8vw,1.35rem);color:#284d7b}
.cb-blog-empty{padding:50px 0;border-top:1px solid var(--cb-line)}
.cb-pagination{margin-top:55px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.cb-pagination .page-numbers{display:inline-block;margin:4px;padding:9px 14px;border:1px solid var(--cb-blue)}
.cb-pagination .current{background:var(--cb-blue);color:white}
.cb-article{max-width:960px;margin:auto}
.cb-article .news-meta{margin-bottom:28px}
.cb-article-title{display:block!important;visibility:visible!important;opacity:1!important;margin:0 0 45px;font-family:var(--cb-title-font);font-size:clamp(3.4rem,8vw,7.5rem);line-height:.86;letter-spacing:-.055em;text-transform:uppercase;color:var(--cb-blue)!important}
.cb-article-image{margin:0 0 55px;aspect-ratio:16/9;object-fit:cover}
.cb-article-content{max-width:760px;margin:auto;font-size:1.12rem;line-height:1.8;color:#183f70}
.cb-article-content h2,.cb-article-content h3{margin:1.4em 0 .5em;color:var(--cb-blue);line-height:1}
.cb-article-content a{color:var(--cb-blue);text-decoration:underline}
.cb-blog-back{display:inline-block;margin-top:55px;border-bottom:2px solid var(--cb-blue);font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.cb-blog-back svg{display:inline-block;width:16px;height:16px;margin-right:5px;vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.footer-blog-social{display:flex;flex-direction:column;gap:9px}.footer-blog-social a{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.instagram-popup{position:fixed;z-index:10020;right:clamp(16px,3vw,42px);bottom:clamp(16px,3vw,42px);width:min(350px,calc(100vw - 32px));padding:30px;background:var(--cb-blue);color:white;box-shadow:0 24px 70px rgba(4,42,101,.38);transform:translateY(28px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,transform .3s ease,visibility .3s ease;overflow:hidden}
.instagram-popup.is-visible{transform:none;opacity:1;visibility:visible;pointer-events:auto}
.instagram-popup .kicker{margin:0 0 18px;color:var(--cb-sand)}
.instagram-popup h2{margin:0 0 18px;font-family:var(--cb-display);font-size:clamp(2.15rem,3vw,2.75rem);line-height:.88;letter-spacing:-.035em;text-transform:uppercase;color:white;word-break:normal}
.instagram-popup>p:not(.kicker){margin:0 0 24px;line-height:1.55;color:rgba(255,255,255,.82)}
.instagram-popup .button{display:inline-flex;max-width:100%;font-size:.7rem;gap:8px;padding-inline:18px;white-space:normal}
.instagram-popup-close{position:absolute;top:10px;right:14px;border:0;background:transparent;color:white;font:300 2rem/1 var(--cb-body);cursor:pointer}
.social-head h2{color:var(--cb-sand)}
.rhg-band a{display:flex;width:auto;height:52px;align-items:center;justify-content:center}
.rhg-band a img{width:auto}
@media(max-width:700px){.cb-blog-main{padding-top:115px}}
@media(max-width:700px){.instagram-popup{width:min(330px,calc(100vw - 24px));right:12px;bottom:12px;padding:25px 22px}.instagram-popup h2{font-size:2.15rem}.instagram-popup .button{font-size:.64rem}}
