/* Professional finishing layer: keep existing content, brand and functionality. */
:root { --content-width: 1200px; --soft-shadow: 0 12px 36px rgba(25,20,12,.07); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.wrap { width: min(var(--content-width), calc(100% - 48px)); }
.section { padding-block: clamp(64px, 7vw, 104px); }
.section-top { margin-bottom: clamp(28px, 4vw, 52px); }
p { overflow-wrap: break-word; }
h1,h2,h3 { text-wrap: balance; }
header { box-shadow: 0 4px 18px rgba(25,20,12,.035); }
nav a, .login-link { transition: color .2s ease; }
.btn { font-weight: 600; transition: background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease; }
.btn:hover { box-shadow: 0 8px 22px rgba(25,20,12,.13); }
.btn:active { transform: translateY(0); }
.category, .panel, form.panel, .auth-card, .video-card { box-shadow: var(--soft-shadow); }
.category { overflow: hidden; }
.category img, .menu-row img { object-position: center; }
input,select,textarea { max-width: 100%; }
input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea { transition: border-color .2s ease,box-shadow .2s ease; }
input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,select:focus,textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,162,74,.15); }
#mobile-menu a { border-bottom: 1px solid rgba(255,255,255,.12); }
footer a { transition: color .2s ease; }
footer a:hover { color: var(--muted); }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 9999; padding: 12px 18px; background: var(--black); color: var(--ivory); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
#main { min-width: 0; }
@media (max-width: 700px) {
  .wrap { width: calc(100% - 36px); }
  .hero h1 { font-size: clamp(2.8rem, 12vw, 4.6rem); }
  .hero-content { padding-block: 58px; }
  .header-actions .btn { min-height: 44px; }
  .categories { gap: 14px; }
  .category img { height: clamp(155px, 35vw, 220px); }
  .category h3 { overflow-wrap: anywhere; }
  .gallery { column-gap: 12px; }
  .gallery button,.video-card { margin-bottom: 12px; }
  form.panel,.panel { padding: 20px; }
}
@media (max-width: 390px) {
  .brand { font-size: 16px; min-width: 0; }
  .brand small { font-size: 7px; letter-spacing: .15em; }
  .header-inner { gap: 8px; }
  .header-actions { gap: 6px; }
  .header-actions .btn { padding-inline: 10px; font-size: 10px; }
  .categories { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print {
  header,footer,#mobile-menu,.hamburger,.actions,.skip-link { display: none !important; }
  body { background: #fff; color: #000; }
  .section { padding: 20px 0; }
  .panel,.category { box-shadow: none; }
}

/* Our Story: original founders portrait, with balanced responsive typography. */
.about-story {background:#f8f4ea;color:#211c17}
.about-story-layout {display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,80px);align-items:start}
.about-story-portrait {margin:0;position:sticky;top:95px}
.about-story-portrait img {display:block;width:100%;height:auto;max-height:850px;object-fit:cover;border-radius:4px}
.about-story-copy h2 {font-size:clamp(1.55rem,2.65vw,2.8rem);line-height:1.18;letter-spacing:.015em;margin:14px 0 24px}
.about-story-copy h2 em {color:#9c7835;font-style:normal}
.about-story-copy p {line-height:1.85;margin:0 0 1.15em}
.about-story-copy .about-story-signoff {font-family:Georgia,serif;font-size:1.25rem;margin-top:1.6rem}
.about-story-copy .about-story-location {border-top:1px solid #b69a64;padding-top:20px;margin-top:22px;color:#7d5b24;font-size:.82rem;letter-spacing:.12em;font-weight:700}
@media(max-width:800px){.about-story-layout{grid-template-columns:1fr}.about-story-portrait{position:static;max-width:560px;margin:auto}.about-story-copy h2{font-size:clamp(1.5rem,6vw,2.25rem)}}
/* Home hero: centred headline layout with announcement strip */
.home-view .hero{display:flex;align-items:center;justify-content:center;padding-top:132px}
.home-view .hero .wrap{width:100%}
.home-view .hero-content{max-width:960px;margin:0 auto;text-align:center;padding:60px 0 100px}
.home-view .hero h1{font-size:clamp(44px,6vw,84px);line-height:1.02}
.home-view .hero p:not(.eyebrow){max-width:560px;margin-left:auto;margin-right:auto}
.home-view .hero .actions{justify-content:center;gap:14px;margin-top:28px}
.home-view .hero .actions .btn{border-radius:4px;background:var(--ivory,#faf6ec);color:var(--black);letter-spacing:.14em;text-transform:uppercase;padding:18px 34px;border:0}
.home-view .hero-bottom{display:none}
.home-view .hero:after{background:color-mix(in srgb,var(--black) 45%,transparent)}
.hero-announce{position:absolute;top:92px;left:0;right:0;z-index:3;display:flex;justify-content:center;flex-wrap:wrap;gap:0;background:color-mix(in srgb,var(--ivory) 92%,transparent);color:var(--black);font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:10px 16px}
.hero-announce span+span{border-left:1px solid var(--line);margin-left:14px;padding-left:14px}
.hero:not(.home-view .hero) .hero-announce{top:0}
@media(max-width:700px){.hero-announce span:not(:first-child){display:none}.home-view .hero .actions .btn{padding:14px 20px}}
.hero-nav{position:absolute;top:0;left:0;right:0;z-index:4;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:26px 40px;color:var(--ivory,#faf6ec)}
.hero-nav-side{display:flex;gap:26px;flex-wrap:wrap}
.hero-nav-side:first-child{justify-content:flex-end}
.hero-nav-side a{color:inherit;text-decoration:none;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.hero-nav-side a:hover{color:var(--gold)}
.hero-nav-title{color:inherit;text-decoration:none;font-family:var(--serif,Georgia,serif);font-size:clamp(22px,2.6vw,34px);white-space:nowrap;text-align:center}
.home-view .hero-announce{top:86px}
@media(max-width:760px){.hero-nav{grid-template-columns:1fr;gap:10px;padding:18px 14px}.hero-nav-title{order:-1}.hero-nav-side,.hero-nav-side:first-child{justify-content:center;gap:14px}.hero-nav-side a{font-size:10px}.home-view .hero-announce{top:130px}.home-view .hero{padding-top:180px}}
body.home-view:not(.header-in) header{opacity:0;pointer-events:none;transform:translateY(-100%)}
body.home-view header{transition:opacity .3s,transform .3s}
.home-view .hero-announce{top:auto;bottom:0}
.home-view .hero{padding-top:90px}
.home-view .carousel-dots{bottom:58px}
/* Front page top bar: one line on a black stripe */
.hero-nav{background:#0d0d0d;padding:14px clamp(14px,3vw,40px);gap:clamp(12px,2.4vw,32px)}
.hero-nav-side{flex-wrap:nowrap;gap:clamp(10px,1.8vw,26px)}
.hero-nav-side a{white-space:nowrap;font-size:clamp(10px,1.05vw,12px);letter-spacing:clamp(.06em,.9vw,.16em)}
.hero-nav-title{font-size:clamp(18px,2.4vw,32px)}
@media(max-width:760px){.hero-nav{grid-template-columns:1fr;padding:12px}.hero-nav-side{flex-wrap:wrap}}
.hero-nav{background:var(--ivory,#faf6ec);color:#0d0d0d}
.hero-nav-side a:hover{color:var(--gold)}
/* Badge logo beside the front page name */
.hero-nav-brand{display:flex;align-items:center;justify-content:center;gap:clamp(8px,1.2vw,16px);min-width:0}
.hero-nav-logo{width:clamp(30px,3.4vw,46px);height:clamp(30px,3.4vw,46px);object-fit:cover;border-radius:50%;border:1px solid color-mix(in srgb,var(--gold) 55%,transparent);box-shadow:0 6px 18px -10px rgba(0,0,0,.45);flex:0 0 auto}
@media(max-width:760px){.hero-nav-brand{gap:10px}.hero-nav-logo{width:30px;height:30px}}
/* Frozen top banner: one bar, visible on every page */
.hero-nav{position:fixed;top:0;left:0;right:0;z-index:60;box-shadow:0 8px 24px -18px rgba(0,0,0,.55)}
#site-header{display:none}
#mobile-menu{top:0}
.menu-sheet{padding-top:calc(var(--banner-h,64px) + 18px)}
body:not(.home-view) #main{padding-top:var(--banner-h,64px)}
.home-view .hero{padding-top:calc(var(--banner-h,64px) + 26px)}
.hero-nav .login-link{font-size:clamp(9px,.95vw,11px);letter-spacing:.16em;text-transform:uppercase;color:inherit;text-decoration:none;border-left:1px solid color-mix(in srgb,var(--black) 18%,transparent);padding-left:clamp(8px,1vw,14px)}
.hero-nav .login-link:hover{color:var(--gold)}
.hero-nav .hamburger{display:none;border:0;background:none;color:inherit;font-size:22px;line-height:1;padding:0}
@media(max-width:900px){.hero-nav .hamburger{display:block}}
/* Phones: the bar keeps the badge, the name, the sign-in link and the menu button */
@media(max-width:760px){
 .hero-nav{grid-template-columns:1fr auto;align-items:center;gap:10px;padding:9px 14px}
 .hero-nav-side:first-child{display:none}
 .hero-nav-side{justify-content:flex-end;gap:12px}
 .hero-nav-side a:not(.login-link){display:none}
 .hero-nav-title{font-size:clamp(16px,5.2vw,22px);text-align:right}
 .hero-nav-brand{justify-content:flex-end}
 .hero-nav-logo{width:30px;height:30px}
 .hero-nav .login-link{border-left:0;padding-left:0}
}
