@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@600;700&family=DM+Sans:wght@400;500;600&family=Work+Sans:wght@400;500;600&display=swap');

:root { --ink:#0d0d0d; --cream:#f5f5f5; --gray:#a3a3a3; --orange:#ff8c00; --red:#ff3a1d; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
html, body { margin:0; padding:0; background:var(--ink); color:var(--cream); }
body { font-family:"DM Sans",sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
h1,h2,h3,h4,p,blockquote { margin-top:0; }
h2 { margin-bottom:0; font:700 clamp(62px,8vw,96px)/.98 "Archivo",sans-serif; letter-spacing:-.02em; }
h2 strong { color:var(--red); }
.red { background:var(--red); color:var(--ink); }
.dark { background:var(--ink); color:var(--cream); }
.gradient { background:linear-gradient(140deg,var(--ink),#792114); }
.eyebrow { display:block; margin-bottom:34px; color:var(--orange); font:500 13px/1.4 "Work Sans",sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.eyebrow.dark-text { color:var(--ink); }
.orange { color:var(--orange); }

.site-header { height:170px; padding:30px 16px; display:flex; align-items:flex-start; justify-content:space-between; background:var(--ink); position:relative; z-index:10; }
.brand-logo { width:166px; height:110px; object-fit:contain; }
.site-header nav { display:flex; gap:40px; margin:43px 0 0; font-size:16px; }
.site-header nav a { padding-bottom:6px; }
.site-header nav a.active { border-bottom:1px solid currentColor; }

.home-hero { height:786px; position:relative; background:url('assets/home-hero.webp') center/cover no-repeat; display:grid; place-items:center; text-align:center; }
.hero-shade { position:absolute; inset:0; background:rgba(0,0,0,.38); }
.home-hero-copy { position:relative; z-index:1; width:min(1000px,calc(100% - 48px)); }
.home-hero h1 { margin:0; font:700 clamp(60px,6vw,72px)/.98 "Archivo",sans-serif; letter-spacing:-.03em; }
.home-hero h1 strong { display:block; color:var(--red); }
.home-hero p { max-width:830px; margin:62px auto 36px; font:400 16px/1.55 "Work Sans",sans-serif; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 34px; background:var(--orange); color:var(--ink); border:0; border-radius:4px; cursor:pointer; font:600 14px "DM Sans",sans-serif; transition:transform .2s ease,background .2s ease; }
.button:hover, .reservation-form button:hover { transform:translateY(-2px); background:#ff9d21; }
.dark-button { background:var(--ink); color:var(--cream); }
.text-link { display:inline-flex; gap:12px; margin-top:34px; color:var(--orange); font:600 14px "DM Sans",sans-serif; }

.split-section { min-height:718px; padding:62px 0 62px 6.55%; display:grid; grid-template-columns:43% 1fr; align-items:center; gap:2%; overflow:hidden; }
.split-section .section-copy { max-width:510px; position:relative; z-index:1; }
.split-section .section-copy > p { margin:24px 0 0; color:var(--gray); font-size:16px; line-height:1.18; }
.split-section > img { width:100%; height:568px; object-fit:cover; }
.home-story > img { object-position:center; }

.testimonials { min-height:735px; padding:126px 6.55% 80px; }
.testimonials h2 { max-width:1000px; }
.testimonial-grid { display:grid; grid-template-columns:1fr 1fr; gap:7%; margin:128px 3% 0; }
.testimonial-grid blockquote { border-top:1px solid #3d3d3d; padding-top:32px; }
.testimonial-grid blockquote > p { min-height:106px; font:600 22px/1.2 "Archivo",sans-serif; }
.testimonial-grid cite { font:500 13px "Work Sans",sans-serif; font-style:normal; }

.cta { min-height:547px; padding:110px 21%; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.cta h2 { max-width:760px; }
.cta p { max-width:665px; margin:30px auto 40px; line-height:1.18; }
.cta.gradient { color:var(--cream); }
.cta.gradient p { color:var(--gray); }

.menu-intro { min-height:778px; }
.menu-intro > img { height:518px; }
.menu-intro h2 strong { display:block; }
.flavors { min-height:1066px; padding:118px 6.55% 90px; }
.flavors .lead { margin:64px 0 86px; max-width:1000px; }
.flavor-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.flavor-grid article { min-height:420px; padding:30px 24px; background:var(--ink); color:var(--cream); display:flex; flex-direction:column; }
.flavor-grid article > span { color:var(--orange); font:500 13px "Work Sans",sans-serif; }
.flavor-grid h3 { margin:80px 0 40px; font:700 clamp(36px,4.7vw,56px)/1.05 "Archivo",sans-serif; }
.flavor-grid p { margin-top:auto; color:var(--gray); line-height:1.18; }

.feast { min-height:1030px; padding:114px 6.55% 90px; }
.feast h2 strong { color:var(--red); }
.feast-grid { display:grid; grid-template-columns:55% 1fr; gap:6%; align-items:center; margin:76px 3% 0; }
.king-crab img { width:100%; height:345px; object-fit:cover; margin-bottom:35px; }
.king-crab h3 { margin:0 0 24px; font:700 56px/1.05 "Archivo",sans-serif; }
.king-crab p, .feast-list p { color:var(--gray); line-height:1.18; }
.feast-list article { padding:32px 0; border-top:1px solid #3d3d3d; }
.feast-list article:last-child { border-bottom:1px solid #3d3d3d; }
.feast-list h4 { margin:0 0 26px; font:600 22px "Archivo",sans-serif; }

.visit-hero { min-height:996px; }
.visit-hero > img { height:512px; }
.visit-hero .button { margin-top:38px; }
.visit-hero h2 strong { display:block; }
.reservation { min-height:690px; padding:108px 6.55%; display:grid; grid-template-columns:40% 1fr; gap:8%; align-items:center; }
.reservation-copy p { margin-top:32px; line-height:1.18; }
.reservation-form { display:flex; flex-direction:column; gap:18px; }
.reservation-form label { display:flex; flex-direction:column; gap:8px; font:400 16px "Work Sans",sans-serif; }
.reservation-form input, .reservation-form textarea { width:100%; border:0; border-bottom:1px solid var(--ink); background:transparent; color:var(--ink); padding:10px 0 12px; outline:none; font:400 16px "DM Sans",sans-serif; }
.reservation-form input::placeholder, .reservation-form textarea::placeholder { color:#5c332c; }
.reservation-form textarea { min-height:74px; resize:vertical; }
.reservation-form button { align-self:flex-start; min-height:52px; padding:0 34px; border:0; border-radius:4px; background:var(--ink); color:var(--cream); cursor:pointer; font:600 14px "DM Sans",sans-serif; transition:transform .2s ease,background .2s ease; }
.form-message { margin:0; font-weight:600; }

.site-footer { min-height:438px; padding:74px 6.55% 40px; background:var(--ink); display:grid; grid-template-columns:1.3fr 1fr; column-gap:6%; }
.footer-title h2 { font:700 51px/1 "Archivo",sans-serif; letter-spacing:-.025em; }
.footer-title p, .footer-info p, .footer-info a { font:400 16px/1.55 "Work Sans",sans-serif; }
.footer-info { display:flex; flex-direction:column; align-items:flex-start; }
.footer-info .eyebrow { margin-bottom:8px; }
.footer-info p, .footer-info a { margin:0 0 4px; }
.footer-bottom { grid-column:1/-1; display:grid; grid-template-columns:1.1fr 1fr auto; align-items:end; margin-top:64px; padding-top:20px; border-top:1px solid #363636; font:500 13px "Work Sans",sans-serif; }
.footer-bottom p { margin:0; }
.footer-bottom nav { display:flex; letter-spacing:.12em; }
.instagram { width:34px; height:34px; border:1px solid var(--cream); border-radius:50%; display:grid; place-items:center; font-size:10px; }

@media (max-width:800px) {
  h2 { font-size:54px; }
  .site-header { height:116px; padding:14px 16px; align-items:center; }
  .brand-logo { width:116px; height:76px; }
  .site-header nav { gap:17px; margin:0; font-size:13px; }
  .home-hero { height:700px; }
  .home-hero-copy { width:calc(100% - 32px); }
  .home-hero h1 { font-size:48px; }
  .home-hero p { margin:38px auto 30px; }
  .split-section { padding:72px 16px; grid-template-columns:1fr; gap:48px; }
  .split-section > img { height:430px; order:-1; }
  .home-story > img { order:0; }
  .testimonials { padding:88px 16px; }
  .testimonial-grid { grid-template-columns:1fr; gap:44px; margin:70px 0 0; }
  .testimonial-grid blockquote > p { min-height:auto; }
  .cta { min-height:500px; padding:80px 20px; }
  .flavors, .feast { padding:86px 16px; }
  .flavors .lead { margin:40px 0 54px; }
  .flavor-grid { grid-template-columns:1fr; }
  .flavor-grid article { min-height:360px; }
  .flavor-grid h3 { font-size:48px; }
  .feast-grid { grid-template-columns:1fr; gap:52px; margin:54px 0 0; }
  .king-crab h3 { font-size:48px; }
  .visit-hero { padding-top:60px; }
  .visit-hero > img { order:0; }
  .reservation { padding:86px 16px; grid-template-columns:1fr; gap:60px; }
  .site-footer { padding:64px 16px 36px; grid-template-columns:1fr; gap:48px; }
  .footer-bottom { grid-column:1; grid-template-columns:1fr auto; gap:20px; margin-top:20px; }
  .footer-bottom nav { order:3; grid-column:1/-1; }
}

@media (max-width:480px) {
  .site-header nav { gap:12px; font-size:12px; }
  .brand-logo { width:92px; }
  .home-hero h1 { font-size:42px; }
  h2 { font-size:48px; }
  .footer-title h2 { font-size:42px; }
}
