/* ---------- Self-hosted fonts (no external CDN needed) ---------- */
@font-face{font-family:'Playfair Display';src:url('assets/fonts/playfair-display-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Playfair Display';src:url('assets/fonts/playfair-display-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Lora';src:url('assets/fonts/lora-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Lora';src:url('assets/fonts/lora-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Lora';src:url('assets/fonts/lora-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Lora';src:url('assets/fonts/lora-latin-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Parisienne';src:url('assets/fonts/parisienne-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}

/* ===========================================================
   Ket Hoe — Quality Dried Seafood Since 1941
   =========================================================== */

:root{
  --navy:#073654;
  --teal:#064f62;
  --cream:#fbf7ec;
  --paper:#fffdf8;
  --gold:#bd7b13;
  --gold2:#e2aa2f;
  --gold-soft:#e8b84b;
  --red:#c91f2b;
  --line:#eadcc2;
  --serif:'Lora',Georgia,'Times New Roman',serif;
  --display:'Playfair Display',Georgia,'Times New Roman',serif;
  --script:'Parisienne','Segoe Script',cursive;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--navy);
  font-family:var(--serif);
}
a{color:inherit}
h1,h2,h3,.brand b{font-family:var(--display)}
.script{font-family:var(--script);font-style:normal}
.arr{font-family:var(--serif);font-size:.9em}

/* ---------- Header ---------- */
.site-header{
  height:92px;
  padding:7px 4.6%;
  display:flex;align-items:center;justify-content:space-between;
  background:var(--paper);
  border-bottom:1px solid #e8dcc7;
}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand b{display:block;font-size:32px;line-height:1;letter-spacing:.01em;font-weight:700}
.brand b em{font-style:normal;color:#a86f14}
.brand small{display:block;font-size:12px;margin-top:3px}
.seal{display:flex;flex-direction:column;align-items:center;flex:0 0 auto}
.seal img{display:block;width:68px;height:auto}

.site-header nav,footer nav{display:flex;align-items:center;gap:28px}
.site-header nav a,footer nav a{text-decoration:none;font-size:14px}
.site-header nav a.active{border-bottom:3px solid var(--gold);padding-bottom:16px}
.site-header nav .divider{color:#cdbfa6}
.menu{display:none;border:0;background:none;font-size:25px;cursor:pointer}

/* ---------- Hero ---------- */
.hero{
  height:365px;position:relative;overflow:hidden;
  display:grid;grid-template-columns:45% 55%;align-items:center;
  padding:25px 4.8%;
  color:#fff;
  background:#052f42 url('assets/hero-bg.svg') center/cover no-repeat;
}
.hero:before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(2,20,31,.34) 0%,rgba(2,20,31,.06) 52%,rgba(2,20,31,0) 100%);
}
.hero-copy,.hero-products{position:relative;z-index:2}
.eyebrow{letter-spacing:.25em;font-size:13px;font-weight:600;margin:0}
.hero h1{
  font-size:60px;line-height:.96;margin:12px 0 8px;
  white-space:nowrap;font-weight:700;
  text-shadow:0 2px 10px rgba(0,0,0,.28);
}
.hero h1 em{font-style:normal;color:#f0b941;font-size:.82em}
.hero h2{font-size:27px;margin:0 0 11px;font-weight:600;text-shadow:0 2px 8px rgba(0,0,0,.25)}
.hero .lede{font-size:15px;line-height:1.5;max-width:575px;margin:0}

.actions{display:flex;gap:16px;margin-top:18px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:9px;
  border:1px solid rgba(255,255,255,.9);border-radius:28px;
  padding:11px 24px;text-decoration:none;font-weight:600;font-size:15px;
  background:rgba(0,40,53,.28);
  transition:transform .15s ease,background .15s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--red);border-color:var(--red)}
.btn.primary:hover{background:#b21925}

.hero-products{height:100%;width:100%;max-width:560px;justify-self:end}
.pack,.jar{position:absolute;filter:drop-shadow(0 14px 20px rgba(0,0,0,.45))}
.pack{width:72%;left:0;bottom:8px}
.jar{width:25%;right:0;bottom:0}

.heritage-tag{position:absolute;right:0;top:0;z-index:3;text-align:center;transform:rotate(-7deg)}
.heritage-tag .script{font-size:30px;line-height:1.15;display:block;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.swoosh{display:block;width:170px;height:11px;margin:2px auto 0}

/* ---------- Products ---------- */
.products{padding:12px 2.2% 16px;background:var(--paper);text-align:center}
.section-title{display:flex;align-items:center;justify-content:center;gap:22px}
.section-title span{width:44px;height:2px;background:var(--gold)}
.section-title h2{font-size:28px;margin:0;letter-spacing:.02em;font-weight:700}
.products .intro{font-size:15px;margin:6px 0 14px}

.product-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:18px;
  max-width:1510px;margin:auto;
}
.product-grid article{
  background:#fff;border:1px solid #eee1ca;border-radius:6px;
  overflow:hidden;padding-bottom:11px;
  display:flex;flex-direction:column;
  box-shadow:0 5px 15px rgba(87,56,17,.045);
  transition:transform .18s ease,box-shadow .18s ease;
}
.product-grid article:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(87,56,17,.1)}
.product-grid img{display:block;width:100%;height:205px;object-fit:cover}
.product-grid h3{font-size:16px;margin:8px 4px 3px;font-weight:700;white-space:nowrap}
.product-grid p{font-size:11.5px;line-height:1.3;margin:0 5px 12px;min-height:30px}
.product-grid a,.outline-btn{
  display:inline-flex;align-items:center;gap:7px;
  border:1px solid var(--gold);border-radius:20px;
  padding:6px 18px;text-decoration:none;font-size:12px;
  background:#fffdf7;
}
.product-grid a{margin:auto auto 0}
.product-grid a:hover,.outline-btn:hover{background:#fff4d9}

/* ---------- Heritage ---------- */
.heritage{
  min-height:285px;padding:10px 4%;
  display:grid;grid-template-columns:35% 37% 28%;align-items:center;
  background:
    linear-gradient(rgba(251,247,237,.92),rgba(251,247,237,.92)),
    repeating-linear-gradient(155deg,rgba(160,126,68,.07) 0 1px,transparent 1px 13px),
    var(--cream);
}
.heritage-art{height:236px;display:flex;justify-content:center;align-items:center}
.heritage-art img{height:auto;width:100%;max-height:236px;max-width:100%;object-fit:contain}
.compact{gap:14px}
.compact h2{font-size:28px;white-space:nowrap}
.compact span{width:34px}
.heritage-copy{padding:0 20px;border-right:1px solid #dfd0b5}
.heritage-copy h3{text-align:center;font-size:18px;font-weight:400;margin:4px 0 11px}
.heritage-copy p{font-size:12.5px;line-height:1.45;margin:8px 0}
.outline-btn{padding:7px 20px;margin-top:5px}

.trust{padding-left:26px}
.trust>div{display:flex;gap:13px;align-items:center;padding:6px 0;border-bottom:1px solid #e2d6c1}
.trust>div:last-child{border-bottom:0}
.trust i{
  flex:0 0 auto;width:42px;height:42px;
  border:2px solid var(--gold);border-radius:50%;
  display:grid;place-content:center;color:#a87520;
}
.trust i svg{width:21px;height:21px;display:block}
.trust span{display:flex;flex-direction:column}
.trust b{font-size:15px}
.trust small{font-size:9.5px;margin-top:2px;line-height:1.3}

/* ---------- Wholesale ---------- */
.wholesale{
  height:185px;padding:16px 5%;
  display:grid;grid-template-columns:42% 35% 23%;align-items:center;
  color:#fff;
  background:#05455a url('assets/wholesale-bg.svg') center/cover no-repeat;
}
.kicker{letter-spacing:.25em;font-size:12px;font-weight:600;color:#d99d28;margin:0}
.wholesale h2{font-size:32px;margin:4px 0;font-weight:700}
.wholesale p{font-size:13px;line-height:1.4;margin:0}
.wholesale .actions{margin-top:13px}
.wholesale .btn{padding:8px 20px;font-size:13px}
.wa-badge{
  width:22px;height:22px;border-radius:50%;
  background:#fff;color:var(--red);
  display:grid;place-content:center;
}
.wa-badge svg{width:14px;height:14px;display:block}

.business-types{display:grid;grid-template-columns:1fr 1fr;text-align:center}
.business-types div{padding:0 14px;border-right:1px solid rgba(255,255,255,.4);display:flex;flex-direction:column;align-items:center}
.business-types div:last-child{border-right:0}
.business-types i{color:#e7b64b}
.business-types i svg{width:31px;height:31px;display:block}
.business-types b{font-size:18px;margin-top:4px;font-family:var(--display)}
.business-types span{font-size:10.5px;line-height:1.35;margin-top:2px}

.sea-script{text-align:center;transform:rotate(-5deg)}
.sea-script .script{font-size:26px;line-height:1.2;display:block;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.sea-script .swoosh{width:150px}

/* ---------- Contact ---------- */
.contact{padding:14px 4.5% 20px;text-align:center;background:var(--paper)}
.contact h2{font-size:29px;margin:4px 0;font-weight:700}
.contact-intro{font-size:12.5px;margin:0 0 16px}
.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);max-width:1220px;margin:auto}
.contact-grid>div{
  display:flex;gap:12px;align-items:center;text-align:left;
  padding:0 16px;border-right:1px solid #dfd2bc;
}
.contact-grid>div:last-child{border-right:0}
.contact-grid i{
  flex:0 0 auto;width:40px;height:40px;
  background:var(--gold);color:#fff;border-radius:50%;
  display:grid;place-content:center;
}
.contact-grid i svg{width:19px;height:19px;display:block}
.contact-grid span{display:flex;flex-direction:column}
.contact-grid b{font-size:14px}
.contact-grid small{font-size:10px;line-height:1.5;margin-top:4px;white-space:nowrap}

/* ---------- Footer ---------- */
footer{
  height:100px;padding:8px 4%;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  border-top:1px solid #eadfca;
  background:repeating-radial-gradient(ellipse at 20% 140%,transparent 0 23px,rgba(188,129,33,.07) 24px 25px,transparent 26px 48px),var(--cream);
}
footer .brand{display:flex;align-items:center;gap:12px}
footer .brand b{font-size:23px}
footer .seal img{width:56px}
footer nav{gap:24px;justify-self:center}
footer nav a{font-size:11.5px}
.footer-end{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.social{display:flex;gap:12px}
.social a{
  width:28px;height:28px;border-radius:6px;
  background:var(--navy);color:#fff;
  display:grid;place-content:center;
}
.social a:hover{background:var(--teal)}
.social svg{width:16px;height:16px;display:block}
footer p{margin:0;text-align:right;font-size:10.5px}

/* ---------- Responsive ---------- */
@media(max-width:1000px){
  .site-header nav{gap:14px}
  .site-header nav a{font-size:13px}
  .brand b{font-size:27px}
  .seal img{width:52px}
  .hero{grid-template-columns:52% 48%}
  .hero h1{font-size:48px}
  .pack{width:68%;left:0;bottom:12px}
  .jar{width:25%;right:0;bottom:0}
  .heritage-tag .script{font-size:26px}
  .swoosh{width:135px}
  .product-grid{grid-template-columns:repeat(3,1fr)}
  .heritage{grid-template-columns:1fr 1.2fr}
  .trust{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);padding:14px 0 0}
  .trust>div{border:0}
  .wholesale{grid-template-columns:1fr 1fr}
  .sea-script{display:none}
  .contact-grid{grid-template-columns:repeat(2,1fr);gap:22px}
  .contact-grid>div{border:0}
  footer{grid-template-columns:1fr 1fr}
  footer nav{display:none}
}

@media(max-width:860px){
  .site-header{height:84px}
  .brand b{font-size:21px}
  .brand b em{display:none}
  .seal img{width:52px}
  .site-header nav{
    display:none;position:absolute;top:84px;gap:18px;left:0;right:0;z-index:20;
    background:var(--paper);padding:20px 28px;flex-direction:column;
    box-shadow:0 12px 24px rgba(0,0,0,.08);
  }
  .site-header nav.open{display:flex}
  .site-header nav a.active{padding-bottom:0}
  .site-header nav .divider{display:none}
  .menu{display:block}

  .hero{height:auto;min-height:0;grid-template-columns:1fr;padding:35px 24px 18px;align-content:start;row-gap:8px}
  .hero h1{font-size:44px}
  .hero h2{font-size:22px}
  .hero .lede br{display:none}
  .hero-products{height:235px;margin-top:0}
  .pack{width:66%;left:0;bottom:4px}
  .jar{width:24%;right:2%;bottom:0}
  .heritage-tag{display:none}

  .products{padding:28px 16px}
  .product-grid{grid-template-columns:repeat(2,1fr)}
  .product-grid img{height:135px}

  .heritage{grid-template-columns:1fr;padding:28px 22px}
  .heritage-copy{padding:20px 0;border:0}
  .trust{grid-template-columns:1fr;padding:0}
  .trust>div{border-bottom:1px solid #e2d6c1}

  .wholesale{height:auto;grid-template-columns:1fr;padding:32px 24px;gap:26px}
  .contact{padding:30px 20px}
  .contact-grid{grid-template-columns:1fr;gap:18px}
  .contact-grid>div{justify-content:flex-start;padding:0}

  footer{display:flex;flex-direction:column;gap:16px;padding:22px}
  footer .seal img{width:64px}
  .footer-end{align-items:center}
  footer p{text-align:center}
}

@media(max-width:430px){
  .hero h1{font-size:37px}
  .hero-products{height:215px}
  .product-grid img{height:115px}
  .product-grid h3{font-size:15px}
  .product-grid p{font-size:10.5px}
  .product-grid a{font-size:10px;padding:5px 12px}
  .business-types div{padding:0 8px}
}

/* ---------- V8.6 Heritage brand carousel ---------- */
.brand-carousel{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;grid-template-rows:1fr auto;align-items:center;gap:8px 10px;min-width:0}
.brand-stage{height:250px;display:flex;align-items:center;justify-content:center;position:relative;min-width:0}
.brand-slide{display:none;max-width:100%;max-height:235px;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(34,53,57,.08))}
.brand-slide.active{display:block;animation:brandFade .28s ease}
.brand-arrow{width:38px;height:38px;border:1px solid var(--gold);border-radius:50%;background:rgba(255,255,255,.62);color:var(--gold);font:400 31px/32px Georgia,serif;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.18s ease}
.brand-arrow:hover{background:var(--gold);color:#fff}
.brand-dots{grid-column:1/-1;display:flex;justify-content:center;gap:9px;padding-top:2px}
.brand-dots button{width:9px;height:9px;border:0;border-radius:50%;background:#ded2bb;padding:0;cursor:pointer}
.brand-dots button.active{background:var(--gold);transform:scale(1.18)}
@keyframes brandFade{from{opacity:.25;transform:translateX(8px)}to{opacity:1;transform:none}}
@media(max-width:860px){
  .brand-carousel{grid-template-columns:38px minmax(0,1fr) 38px;padding-bottom:4px}
  .brand-stage{height:225px}
  .brand-slide{max-height:210px}
  .brand-arrow{width:34px;height:34px;font-size:27px}
}
@media(max-width:430px){
  .brand-stage{height:190px}
  .brand-slide{max-height:178px}
}

/* ---------- V8.8 Heritage carousel spacing refinements ---------- */
/* Desktop: pull the navigation dots closer to the brand artwork. */
.brand-carousel{row-gap:2px}
.brand-dots{padding-top:0;transform:translateY(-6px)}

/* Mobile only: remove the oversized fixed carousel area while preserving
   each trademark's original aspect ratio. */
@media(max-width:860px){
  .heritage{padding-top:20px}
  .brand-carousel{
    grid-template-columns:38px minmax(0,1fr) 38px;
    grid-template-rows:auto auto;
    gap:0 8px;
    padding-bottom:0;
  }
  .brand-stage{
    height:180px;
    min-height:0;
  }
  .brand-slide{
    max-width:100%;
    max-height:170px;
    width:auto;
    height:auto;
  }
  .brand-dots{
    gap:9px;
    padding-top:0;
    transform:translateY(-2px);
  }
  .heritage-copy{padding:12px 0 14px}
  .heritage-copy h3{margin:2px 0 8px}
  .heritage-copy p{margin:7px 0;line-height:1.4}
  .heritage-copy .btn{max-width:100%;}
}
@media(max-width:430px){
  .brand-stage{height:164px}
  .brand-slide{max-height:154px}
  .brand-dots{transform:translateY(-1px)}
  .heritage-copy{padding-top:10px}
}

/* ---------- V8.9 Desktop Heritage carousel compact spacing ---------- */
@media(min-width:861px){
  .heritage{
    min-height:250px;
    padding-top:6px;
    padding-bottom:6px;
  }
  .brand-stage{
    height:205px;
  }
  .brand-slide{
    max-height:195px;
  }
  .brand-carousel{
    row-gap:0;
  }
  .brand-dots{
    transform:translateY(-8px);
  }
}

/* ---------- V8.10 Desktop brand artwork enlargement ---------- */
/* Desktop only: enlarge the heritage trademark artwork while keeping the
   compact V8.9 section height and leaving tablet/mobile sizing untouched. */
@media(min-width:861px){
  .brand-stage{height:205px;overflow:visible}
  .brand-slide{max-width:118%;max-height:205px}
}
