/* Schmiedehafen: original photographs, quiet rhythm, mobile first. */
.home-harbor { --ink:#30302e; --navy:#30302e; --cream:#f4f0e9; --copper:#8a7059; }
.home-harbor .site-header { background:#30302e; }
.home-harbor .brand img { width:68px; height:68px; }
.home-harbor .hero { display:grid; grid-template-columns:minmax(0, .82fr) minmax(0, 1.18fr); height:auto; min-height:660px; color:#fff; isolation:isolate; }
.home-harbor .hero:after { display:none; }
.home-harbor .hero-image { position:absolute; inset:0 0 0 auto; width:58%; height:100%; object-fit:cover; object-position:61% 58%; filter:none; }
.home-harbor .hero-copy { position:relative; left:auto; right:auto; top:auto; transform:none; width:100%; max-width:none; padding:clamp(2rem,4.5vw,5rem) clamp(1.5rem,4vw,4rem); align-self:center; grid-column:1; z-index:1; }
.home-harbor .hero h1 { font:600 clamp(2.8rem,4.5vw,5.2rem)/1.07 var(--serif); letter-spacing:-.045em; text-transform:none; text-shadow:none; margin:.8rem 0 1.6rem; overflow-wrap:normal; }
.home-harbor .hero-copy > p:not(.eyebrow) { font-size:1rem; line-height:1.75; color:#e9e3da; max-width:34rem; }
.home-harbor .hero .eyebrow { font-size:.68rem; letter-spacing:.16em; }
.home-harbor .hero .actions { flex-wrap:wrap; gap:.65rem; margin-top:1.65rem; }
.home-harbor .hero .button { font-size:.85rem; padding:.8rem 1.2rem; }
.home-harbor .hero .open-card { position:static; width:100%; max-width:340px; margin-top:2rem; padding:1rem 0 0; border-radius:0; border-top:1px solid #ffffff35; background:none; color:#f4f0e9; box-shadow:none; }
.home-harbor .hero .open-card small,.home-harbor .hero .open-card a { color:#ded6ca; }
.home-harbor .status-dot { background:#d4c3aa; }
.hero-caption { position:absolute; right:1.4rem; bottom:1rem; margin:0; padding:.55rem .9rem; color:#fff; background:#30302ed9; font-size:.72rem; letter-spacing:.04em; border-radius:4px; }
.home-harbor .quick a { padding:1.15rem clamp(1rem,3vw,3rem); }
.home-harbor .wrap { max-width:1260px; }
.home-harbor .intro { gap:clamp(2rem,5vw,5rem); padding-top:clamp(3.5rem,6vw,6rem); padding-bottom:3rem; }
.home-harbor .intro h2 { font-size:clamp(2.7rem,4.8vw,4.8rem); line-height:1.06; }
.home-harbor .intro p { font-size:1.04rem; }
.harbor-section-head { display:flex; justify-content:space-between; align-items:end; gap:3rem; margin-bottom:1.6rem; }
.harbor-section-head > p { max-width:390px; color:#60594f; margin:0; }
.harbor-section-head h2 { font:600 clamp(2rem,3.4vw,3.4rem)/1.1 var(--serif); letter-spacing:-.035em; margin:.4rem 0 0; }
.harbor-visit { padding-bottom:clamp(3.5rem,6vw,6rem); }
.visit-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:1rem; }
.visit-photo { position:relative; padding:0; border:0; border-radius:10px; overflow:hidden; text-align:left; color:#30302e; font:inherit; cursor:zoom-in; background:#eae2d6; }
.visit-photo > img { width:100%; height:300px; object-fit:cover; transition:transform .45s; }
.visit-photo:first-child > img { object-position:48% 50%; }
.visit-label { position:relative; display:grid; gap:.35rem; padding:1.25rem; background:#eae2d6; }
.visit-label b { font:600 1.4rem/1.2 var(--serif); }
.visit-label small { font-size:.82rem; color:#62574d; }
.photo-expand { position:absolute; right:.8rem; top:.8rem; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#f4f0e9; font-size:1.2rem; }
.harbor-kitchen { display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:center; padding-block:1rem clamp(3.5rem,6vw,6rem); }
.harbor-kitchen figure { margin:0; border-radius:10px; overflow:hidden; }
.harbor-kitchen img { height:440px; object-fit:cover; }
.harbor-kitchen h2 { font:600 clamp(2.8rem,4.8vw,4.8rem)/1.07 var(--serif); letter-spacing:-.04em; margin:.6rem 0 1.2rem; }
.harbor-kitchen p { max-width:420px; }
.harbor-kitchen .text-link { display:table; margin-top:1rem; }
.home-harbor .host-story { padding-block:2rem clamp(3.5rem,6vw,6rem); gap:clamp(2rem,6vw,6rem); }
.home-harbor .host-story img { height:510px; border-radius:10px; object-position:center 40%; }
.home-harbor .host-story h2 { font-size:clamp(2.4rem,4.2vw,4.2rem); }
.home-harbor .places { padding-block:clamp(3.5rem,6vw,6rem); background:#373634; }
.home-harbor .places h2 { font-size:clamp(2.5rem,4.4vw,4.4rem); line-height:1.08; }
.home-harbor .place-grid { margin-top:2rem; }
.home-harbor .place-grid article { background:#45423e; border-radius:10px; }
.home-harbor .place-grid article div { padding:1.4rem; }
.home-harbor .place-grid b { font-size:1.55rem; }
.home-harbor .offer-worlds { padding:clamp(3.5rem,6vw,6rem) max(1.2rem,calc((100vw - 1196px)/2)); background:#f4f0e9; }
.home-harbor .offer-head { margin-bottom:2rem; }
.home-harbor .offer-head h2 { font-size:clamp(2.7rem,4.8vw,4.8rem); line-height:1.06; }
.home-harbor .offer-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); grid-auto-rows:320px; gap:1rem; }
.home-harbor .offer-grid > .offer-card { grid-column:span 2; grid-row:auto; border-radius:10px; min-width:0; }
.home-harbor .offer-grid > .offer-card:nth-child(1),.home-harbor .offer-grid > .offer-card:nth-child(2) { grid-column:span 3; }
.home-harbor .offer-grid > .offer-card:nth-child(7) { grid-column:span 4; }
.home-harbor .offer-card img { width:100%; height:100%; object-fit:cover; }
.home-harbor .offer-card:after { background:linear-gradient(transparent 30%,#242320d9); }
.home-harbor .offer-card b { font-size:clamp(1.4rem,2.2vw,2rem); }
.home-harbor .offer-card small { color:#fff2e0; font-size:.66rem; }
.home-harbor .patisserie-card img { object-position:center 52%; }
.home-harbor .moment-studio { padding-block:1rem clamp(3.5rem,6vw,6rem); gap:2rem 3rem; }
.home-harbor .moment-head h2 { font-size:clamp(2.5rem,4vw,4rem); line-height:1.1; }
.home-harbor .moment-choices button { min-height:104px; border-radius:8px; }
.home-harbor .moment-result { border-radius:10px; }
.home-harbor .moment-result h3 { font-size:clamp(1.8rem,2.8vw,2.8rem); line-height:1.12; }
.home-harbor .favorite-seat { padding-block:clamp(3.5rem,6vw,6rem); background:#373634; }
.home-harbor .favorite-seat h2 { font-size:clamp(2.5rem,4.4vw,4.4rem); line-height:1.08; }
.seat-preview { display:grid; grid-template-columns:120px 1fr; align-items:center; text-align:left; margin:1rem auto; max-width:490px; border:1px solid #ffffff30; border-radius:8px; overflow:hidden; }
.seat-preview img { width:120px; height:96px; object-fit:cover; }
.seat-preview figcaption { padding:1rem; font-size:.88rem; }
.home-harbor .social-proof { min-height:460px; background:#736355; }
.home-harbor .proof-copy { padding:clamp(2rem,4vw,4rem); }
.home-harbor .proof-copy blockquote { font-size:clamp(2.2rem,3.8vw,3.8rem); }
.home-harbor .gift-copy h2 { font-size:clamp(2.7rem,4.4vw,4.4rem); line-height:1.07; }
.home-harbor .hours { padding-block:clamp(3.5rem,6vw,6rem); }
.home-harbor .cta { background:#373634; padding:4rem 1.2rem; }
.home-harbor .cta h2 { font-size:clamp(3rem,5vw,5rem); line-height:1.05; }
.harbor-lightbox { width:min(1100px,94vw); max-height:92dvh; padding:1rem; border:0; border-radius:12px; color:#f4f0e9; background:#30302e; }
.harbor-lightbox::backdrop { background:#171716e8; }
.harbor-lightbox img { width:100%; height:min(70dvh,800px); object-fit:contain; }
.harbor-lightbox p { margin:.75rem 0 0; text-align:center; }
.photo-close { display:block; margin:0 0 .8rem auto; min-height:44px; padding:.6rem 1rem; font:inherit; color:#30302e; background:#f4f0e9; border:0; border-radius:30px; cursor:pointer; }
.photo-open { overflow:hidden; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) { .visit-photo:hover > img { transform:scale(1.025); } }
@media (min-width:901px) and (max-width:1150px) { .home-harbor .site-header { gap:1rem; padding-inline:1.2rem; } .home-harbor .site-header nav { gap:.9rem; } .home-harbor .brand span { display:none; } .home-harbor .hero h1 { font-size:3.2rem; } }
@media (max-width:900px) {
  .home-harbor .brand img { width:54px; height:54px; }
  .home-harbor .hero { display:flex; flex-direction:column; height:auto; min-height:0; }
  .home-harbor .hero-image { position:static; width:100%; height:clamp(260px,52vw,460px); object-fit:cover; object-position:center 60%; }
  .home-harbor .hero-copy { padding:2rem; }
  .home-harbor .hero h1 { font-size:clamp(2.7rem,7vw,4rem); max-width:650px; }
  .home-harbor .hero-caption { display:none; }
  .home-harbor .hero .actions { flex-direction:row; }
  .home-harbor .hero .open-card { max-width:none; margin-top:1.4rem; }
  .harbor-section-head { display:block; }
  .harbor-section-head > p { margin-top:1rem; max-width:none; }
  .visit-grid { gap:.7rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .visit-photo > img { height:230px; }
  .visit-label { padding:1rem; }
  .visit-label b { font-size:1.2rem; }
  .harbor-kitchen { gap:2rem; }
  .harbor-kitchen img { height:380px; }
  .home-harbor .host-story img { height:460px; }
  .home-harbor .offer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:300px; }
  .home-harbor .offer-grid > .offer-card:nth-child(n) { grid-column:auto; grid-row:auto; }
  .home-harbor .offer-grid > .offer-card:last-child { grid-column:1/-1; }
  .home-harbor .mobile-actions { padding-bottom:env(safe-area-inset-bottom,0px); background:#faf7f2; }
  .home-harbor .mobile-actions a { display:grid; place-items:center; min-height:52px; }
  .home-harbor .mobile-actions a:nth-child(2) { background:#30302e; color:white; }
  .home-harbor .mobile-actions a:last-child { background:#faf7f2; color:#30302e; }
}
@media (max-width:600px) {
  .home-harbor .hero-copy { padding:1.65rem 1.2rem 2rem; }
  .home-harbor .hero h1 { font-size:clamp(2.5rem,9vw,3.5rem); }
  .home-harbor .hero .button { flex:1; padding:.8rem .75rem; }
  .home-harbor .hero .eyebrow { font-size:.62rem; }
  .home-harbor .quick a { padding:1rem; }
  .home-harbor .quick b { font-size:.9rem; }
  .visit-grid { grid-template-columns:1fr; gap:1rem; }
  .visit-photo { display:grid; grid-template-columns:42% 1fr; align-items:stretch; }
  .visit-photo > img { height:170px; }
  .visit-label { align-content:center; padding:1rem; }
  .photo-expand { left:.6rem; right:auto; top:.6rem; width:30px; height:30px; }
  .harbor-kitchen { grid-template-columns:1fr; }
  .harbor-kitchen img { height:300px; }
  .home-harbor .host-story img { height:400px; }
  .home-harbor .place-grid img { height:300px; }
  .home-harbor .offer-grid { grid-template-columns:1fr; grid-auto-rows:290px; }
  .home-harbor .offer-grid > .offer-card:nth-child(n) { grid-column:1; }
  .home-harbor .offer-card b { font-size:1.8rem; }
  .home-harbor .moment-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; }
  .home-harbor .moment-choices button { min-width:0; min-height:106px; padding:.85rem; }
  .home-harbor .moment-choices button b { font-size:1.1rem; }
  .home-harbor .social-proof .proof-copy { min-height:0; padding:2.5rem 1.2rem; }
  .home-harbor .proof-image { height:280px; }
  .home-harbor .hours { gap:2rem; }
  .home-harbor .hours dl div { gap:1rem; }
  .home-harbor .hours dd { margin:0; text-align:right; }
}
@media (prefers-reduced-motion:reduce) { .home-harbor { scroll-behavior:auto; } html:has(.home-harbor) { scroll-behavior:auto; } .home-harbor *, .home-harbor *::before, .home-harbor *::after { animation:none!important; transition:none!important; } }


/* Visual audit: small text remains legible against the dark hero. */
.home-harbor .hero .eyebrow { font-size: .75rem; line-height: 1.6; letter-spacing: .12em; }
.home-harbor .hero .button { font-size: .875rem; line-height: 1.5; }
.home-harbor .hero-caption { font-size: .8125rem; line-height: 1.5; }
.home-harbor .intro .eyebrow { font-size: .75rem; }

/* Small phones need a calmer title and full-width hero actions. */
@media(max-width:380px) {
 .home-harbor .hero h1 { font-size:2rem; line-height:1.12; }
 .home-harbor .hero .actions { flex-direction:column; align-items:stretch; }
 .home-harbor .hero .button { flex:auto; width:100%; }
 .home-harbor .mobile-actions a { font-size:13px; padding-inline:2px; }
}


/* Clear page hierarchy, 20 September 2026. */

.home-harbor .harbor-kitchen{padding-top:clamp(3rem,6vw,6rem)}
.home-harbor .favorite-seat{padding-block:clamp(2.5rem,5vw,4.5rem);gap:1.5rem}
.home-harbor .favorite-seat h2{font-size:clamp(2rem,3.8vw,3.8rem);line-height:1.12}
.home-harbor .seat-disclosure{width:100%;max-width:1120px;margin:auto;min-width:0}
.home-harbor .seat-disclosure>summary{width:fit-content;margin:auto;min-height:48px;padding:.75rem 1rem;cursor:pointer;border:1px solid #ffffff55;border-radius:6px}
.home-harbor .seat-disclosure .seat-note{text-align:center}
.home-harbor .gift-copy{padding:clamp(2rem,5vw,5rem)}
.home-harbor .gift-copy h2{font-size:clamp(2.4rem,4vw,4rem);line-height:1.08}
.home-harbor .gift-ideas{margin:1.5rem 0}
.home-harbor .gift-ideas>summary{min-height:44px;padding:.65rem 0;cursor:pointer}
.home-harbor .gift-portrait{display:flex;flex-direction:column;min-height:0}
.home-harbor .gift-photo{width:100%;height:360px;min-height:0;object-fit:cover}
.home-harbor .gift-portrait figcaption{position:static;padding:1.25rem;background:var(--cream)}
.home-harbor summary:focus-visible{outline:3px solid var(--copper);outline-offset:4px}
@media(max-width:900px){.home-harbor .gift-copy{grid-row:auto}.home-harbor .gift-photo{height:280px}.home-harbor .gift-world{gap:0}}


.home-harbor .visit-more{margin-top:2rem;border-top:1px solid #cfc4b7}
.home-harbor .visit-more>summary{min-height:48px;padding:1rem 0;cursor:pointer}
.home-harbor .visit-more .place-grid{margin-top:1rem}
.home-harbor .visit-more .place-grid article{color:var(--cream)}

.home-harbor .gift-portrait .gift-photo{flex:0 0 auto;aspect-ratio:auto;max-height:360px;height:360px}
@media(max-width:900px){.home-harbor .gift-portrait{grid-row:auto}.home-harbor .gift-portrait .gift-photo{height:280px;max-height:280px}}
