/* ===== ALFas v36 ===== */
:root{
  --text:#071321;
  --muted:#3f556b;

  /* Corporate blues (adjust here) */
  --blue-900:#0b2a6f;
  --blue-700:#1f4fd6;
  --blue-600:#2c66ff;
  --blue-500:#3a7dff;
  --blue-100:#eaf2ff;

  --white:#fff;
  --soft:#f6f9ff;
  --shadow: 0 12px 40px rgba(0,0,0,.18);
  --radius: 18px;
  --container: 1120px;

  /* UI accents */
  --header-bg: linear-gradient(90deg, rgba(44,102,255,.96) 0%, rgba(31,79,214,.96) 60%, rgba(11,42,111,.96) 100%);
  --header-text: rgba(255,255,255,.96);
  --border: rgba(7,19,33,.10);
}
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
  color: var(--text);
  background:#fff;
  line-height:1.65;
}
.container{ width:min(var(--container), calc(100% - 48px)); margin:0 auto; }

/* header */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background: var(--header-bg);
  color: var(--header-text);
  border-bottom: 1px solid rgba(255,255,255,.18);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; padding:14px 0; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand-text{ display:flex; flex-direction:column; gap:2px; }
.brand-logo{
  height: 28px;
  width: auto;
  display:block;
  filter: drop-shadow(0 2px 10px rgba(0,0,0,.18));
}
.brand-mark{ font-weight:800; letter-spacing:.06em; }
.brand-mark.small{ font-size:14px; }
.brand-sub{ font-size:12px; color: rgba(255,255,255,.82); }
.brand-desc{ margin-top:2px; font-size:11px; color: rgba(255,255,255,.78); letter-spacing:.05em; line-height:1.2; max-width:56ch; }
.nav{ display:flex; align-items:center; gap:18px; font-size:13px; }
.nav a{
  color: rgba(255,255,255,.92);
  text-decoration:none;
  padding:8px 10px;
  border-radius:999px;
}

.nav a:hover{ background: rgba(255,255,255,.14); }
.nav-cta{ border:1px solid rgba(255,255,255,.38); background: rgba(255,255,255,.10); }

/* hero: NEVER crop images */
.hero{ background:#0b0f14; }
.hero-slider{ position:relative; }
.hero-frame{
  position:relative;
  width:100%;
  aspect-ratio: 1920 / 520;
  background:#0b0f14;
  overflow:hidden;
}
.hero-slide{
  position:absolute; inset:0;
  opacity:0;
  transition: opacity 700ms ease;
  display:grid; place-items:center;
}
.hero-slide.is-active{ opacity:1; }
.hero-slide img{
  width:100%; height:100%;
  object-fit: contain; /* IMPORTANT */
  object-position:center;
  display:block;
  background:#0b0f14;
}
.hero-dots{
  position:absolute; left:50%; bottom:16px; transform:translateX(-50%);
  display:flex; gap:10px; z-index:3;
}
.dot{
  width:9px; height:9px; border-radius:50%;
  background: rgba(255,255,255,.46);
  border: 1px solid rgba(255,255,255,.25);
  cursor:pointer;
}
.dot.is-active{ background: rgba(58,125,255,.98); border-color: rgba(255,255,255,.22); }
.hero-gap{ height:22px; background:#fff; }

/* typography */
.section{ padding:74px 0; }
.section-tight{ padding:56px 0; }
.section-muted{ background: var(--blue-100); }
.eyebrow{ margin:0 0 10px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color: var(--blue-900); }
.h2{ margin:0 0 12px; font-size: clamp(22px, 2.3vw, 32px); line-height:1.22; }
.lead{ margin:0 0 24px; color: var(--muted); font-size:14px; max-width:74ch; }

/* buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 14px; border-radius:999px; border:1px solid rgba(44,102,255,.22);
  color:#0e141b; text-decoration:none;
  font-weight:700; letter-spacing:.02em; font-size:13px;
}
.btn-primary{ background: var(--blue-600); color:#fff; border-color: rgba(255,255,255,.0); }
.btn-ghost{ background: rgba(44,102,255,.08); border-color: rgba(44,102,255,.22); }

.brand-sub{ font-size:12px; color: rgba(255,255,255,.88); letter-spacing:.02em; }
.site-header .brand-mark{ display:none; } /* header ALFas text hidden */

/* service icons */
.service-icon{
  width: 46px;
  height: 46px;
  display:block;
  margin: 2px 0 10px;
  opacity: .96;
}
.card-title{ margin-top: 0; }

/* cards */
.card-grid{ display:grid; grid-template-columns: repeat(5, 1fr); gap:14px; }
.card{
  background:#fff;
  border: 1px solid rgba(44,102,255,.16);
  border-top: 3px solid rgba(44,102,255,.40);
  border-radius: var(--radius);
  padding: 18px 16px;
  box-shadow: 0 10px 28px rgba(7,19,33,.08);
}

.card-title{ margin:0 0 6px; font-size:14px; }
.card-desc{ margin:0; color: var(--muted); font-size:12.5px; }

/* steps */
.steps{ display:grid; grid-template-columns: repeat(3, 1fr); gap:14px; margin-top:22px; }
.step{
  display:flex;
  gap:12px;
  align-items:flex-start;
  background:#fff;
  border: 1px solid rgba(44,102,255,.14);
  border-radius: var(--radius);
  padding: 18px 16px;
}
.step-num{
  width: 46px;
  height: 46px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius: 14px;
  background: rgba(44,102,255,.10);
  border: 2px solid rgba(44,102,255,.22);
  color: var(--blue-700);
  font-weight: 900;
  font-size: 26px;
  line-height: 1;
  letter-spacing: .04em;
  flex: 0 0 46px;
}
.step-title{ margin:8px 0 6px; font-size:15px; }
.step-desc{ margin:0; color: var(--muted); font-size:13px; }

/* process */
.process{ display:grid; grid-template-columns: repeat(2, 1fr); gap:14px; margin-top:18px; }
.process-item{
  display:flex; gap:12px; align-items:flex-start;
  padding:18px 16px;
  background:#fff;
  border: 1px solid rgba(44,102,255,.14);
  border-radius: var(--radius);
}
.process-badge{ width:28px; height:28px; border-radius:10px; display:grid; place-items:center; background: rgba(44,102,255,.10); font-weight:900; color: var(--blue-900); font-size:12px; }
.process-title{ margin:0 0 4px; font-size:14px; }
.process-desc{ margin:0; color: var(--muted); font-size:13px; }

/* works */
.works-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:14px; margin-top:18px; }
.work{
  padding:0; text-align:left;
  border: 1px solid rgba(44,102,255,.14);
  border-radius: var(--radius);
  overflow:hidden; background:#fff;
  cursor:pointer;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}
.work:hover{ transform: translateY(-1px); transition: transform 200ms ease; }


.work-thumb{ height: 180px; border-radius: 14px; overflow:hidden; border: 1px solid rgba(44,102,255,.14); background:#f3f6ff; }
.work-thumb img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }

/* 画像の内容が上寄りに見えるため、食材加工工場だけ少し下へ */
.work-food .work-thumb img{ object-position:center 85%; }
.work-body{ padding: 14px 2px 0; text-align:left; }
.work-title{ margin: 0 0 6px; font-size:16px; }
.work-meta{ margin:0 0 8px; color: var(--muted); font-size:12px; }
.work-excerpt{ margin:0; color:#223142; font-size:13px; line-height:1.6; }

/* (work-thumb/work-body styles are defined above; keep a single source of truth) */

/* about image: NEVER crop + no overlay */
.about-figure{
  margin: 10px 0 18px;
  border-radius: var(--radius);
  overflow:hidden;
  background:#0b0f14;
  border: 1px solid rgba(44,102,255,.14);
}
.about-figure img{
  width:100%;
  height:auto;
  display:block;
}
.about-bottom{
  display:flex;
  gap:18px;
  align-items:flex-start;
  justify-content:space-between;
  flex-wrap:wrap;
}
.about-text{ margin:0; max-width:72ch; color:#223142; font-size:14px; }
.about-pills{ display:flex; flex-wrap:wrap; gap:8px; }
.pill{
  display:inline-flex;
  padding:7px 10px;
  border-radius:999px;
  background: rgba(44,102,255,.08);
  border: 1px solid rgba(15,22,32,.10);
  color:#223142;
  font-size:12px;
}

/* contact */
.contact-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:14px; margin-top:18px; }
.contact-card{
  border: 1px solid rgba(44,102,255,.14);
  border-radius: var(--radius);
  background:#fff;
  padding:18px 16px;
}
.contact-title{ margin:0 0 6px; font-size:15px; }
.contact-desc{ margin:0 0 14px; color: var(--muted); font-size:13px; }
.contact-note{ margin:10px 0 0; font-size:12px; color: var(--muted); }

/* footer */
.site-footer{
  background: linear-gradient(90deg, var(--blue-900), #071321);
  color: rgba(255,255,255,.78);
  padding: 30px 0 22px;
}
.footer-inner{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.footer-right{ display:flex; gap:12px; flex-wrap:wrap; }
.site-footer a{ color: rgba(255,255,255,.78); text-decoration:none; font-size:12px; }
.site-footer a:hover{ color:#fff; }
.footer-meta{ font-size:12px; opacity:.85; }
.footer-bottom{ margin-top:18px; opacity:.75; }

/* modal */
.modal{ position:fixed; inset:0; display:none; z-index:100; overflow:auto; -webkit-overflow-scrolling: touch; }
.modal.is-open{ display:block; }
.modal-backdrop{ position:absolute; inset:0; background: rgba(0,0,0,.58); }
.modal-panel{
  position:relative;
  width:min(760px, calc(100% - 32px));
  margin: 64px auto;
  background:#fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;

  /* Make the panel scroll correctly on mobile */
  max-height: calc(100vh - 96px);
  display:flex;
  flex-direction: column;
}
.modal-close{
  position:absolute;
  top:12px; right:12px;
  width:44px; height:44px;
  border-radius:12px;
  border: 1px solid rgba(20,30,42,.14);
  background: rgba(255,255,255,.92);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  line-height:1;
  z-index: 5;
  pointer-events: auto;
}
.modal-close > span{ pointer-events:none; }
.modal-head{ padding: 22px 20px 12px; border-bottom: 1px solid rgba(20,30,42,.10); }
.modal-kicker{ font-size:11px; letter-spacing:.18em; opacity:.65; }
.modal-title{ margin:6px 0 4px; font-size:18px; }
.modal-meta{ font-size:13px; color: var(--muted); }
.modal-body{
  padding: 16px 20px 22px;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}


.modal-gallery{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:10px;
  margin: 2px 0 12px;
}
.modal-gallery img{
  width:100%;
  height: 150px;
  object-fit:cover;
  border-radius: 14px;
  border: 1px solid rgba(44,102,255,.14);
  background:#f3f6ff;
}
@media (max-width: 720px){
  .modal-gallery{ grid-template-columns: 1fr; }
  .modal-gallery img{ height: 200px; }
}
.modal-desc{
  margin: 6px 0 12px;
  color:#223142;
  line-height:1.7;
}

.modal-points{ margin:0; padding-left:18px; color:#223142; }
.modal-points li{ margin:8px 0; }

@media (max-width: 560px){
  .modal-panel{ margin: 16px auto; width: calc(100% - 16px); max-height: calc(100vh - 32px); }
}


/* responsive */
@media (max-width: 980px){
  .nav{ display:none; }
  .card-grid{ grid-template-columns: repeat(2, 1fr); }
  .steps{ grid-template-columns: 1fr; }
  .process{ grid-template-columns: 1fr; }
  .works-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px){
  .works-grid{ grid-template-columns: 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }
  .container{ width:min(var(--container), calc(100% - 32px)); }
}


/* key visual */
.key-visual{
  margin: 6px 0 0;
  border-radius: var(--radius);
  overflow:hidden;
  border: 1px solid rgba(44,102,255,.14);
  box-shadow: 0 12px 34px rgba(7,19,33,.10);
  background: #fff;
}
.key-visual img{
  width:100%;
  height:auto;
  display:block;
}


/* Process illustrated background (uses assets/key-visual.png as a subtle background) */
.section-illustrated-bg{
  position: relative;
  overflow: hidden;
}
.section-illustrated-bg::before{
  content:"";
  position:absolute;
  inset:-20px;
  background: url("assets/key-visual.png") right center / cover no-repeat;
  opacity: .26;
  pointer-events:none;
}
.section-illustrated-bg::after{.section-illustrated-bg::after{
  content:"";
  position:absolute;
  inset:0;
    background:
    linear-gradient(90deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.86) 45%, rgba(255,255,255,.72) 100%),
    linear-gradient(180deg, rgba(234,242,255,.86) 0%, rgba(234,242,255,.74) 40%, rgba(234,242,255,.86) 100%);
  pointer-events:none;
}
.section-illustrated-bg .container{
  position: relative;
  z-index: 1;
}


.process-card{
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(44,102,255,.18);
  border-radius: var(--radius);
  padding: 18px 16px;
  box-shadow: 0 14px 34px rgba(7,19,33,.10);
  }

/* Readability safeguard inside illustrated Process section */
#process.section-illustrated-bg .card,
#process.section-illustrated-bg .process-card,
#process.section-illustrated-bg .process-item,
#process.section-illustrated-bg .process-step{
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 14px 34px rgba(7,19,33,.10) !important;
}
#process.section-illustrated-bg .section-title,
#process.section-illustrated-bg .eyebrow{
  text-shadow: 0 2px 14px rgba(255,255,255,.85);
}

#process.section-illustrated-bg, 
#process.section-illustrated-bg p, 
#process.section-illustrated-bg li{
  color: var(--text);
}



/* v49: Process readability (solid cards, no see-through) */
#process.section-illustrated-bg .card,
#process.section-illustrated-bg .process-card,
#process.section-illustrated-bg .process-item,
#process.section-illustrated-bg .process-step{
  background: #ffffff !important;
  border: 1px solid rgba(44,102,255,.18) !important;
  box-shadow: 0 14px 34px rgba(7,19,33,.10) !important;
}
#process.section-illustrated-bg .card p,
#process.section-illustrated-bg .process-card p,
#process.section-illustrated-bg .process-item p,
#process.section-illustrated-bg .process-step p{
  color: rgba(10,24,48,.86);
}
/* v48: soften top edge so background doesn't feel pasted */
#process.section-illustrated-bg::marker{ content:""; } /* harmless */
#process.section-illustrated-bg .container{ position: relative; z-index:1; }
#process.section-illustrated-bg::before{ /* keep as is */ }
#process.section-illustrated-bg .fade-top{
  position:absolute;
  left:0; right:0; top:0;
  height: 64px;
  background: linear-gradient(180deg, #ffffff 0%, rgba(255,255,255,.0) 100%);
  z-index: 0;
  pointer-events:none;
}


/* v50: keep Process cards on cleaner side of the illustration */
#process.section-illustrated-bg .process{
  position: relative;
  z-index: 1;
}

/* v51: disable illustrated background (readability first) */
.section-illustrated-bg::before,
.section-illustrated-bg::after{
  content: none !important;
  background: none !important;
}

/* v51: Process cards solid, no transparency */
#process .card,
#process .process-card,
#process .process-item,
#process .process-step{
  background: #ffffff !important;
}


.process-right{
    position: static;
  }
}



/* v53: Process split layout (readable + balanced) */
.process-split{
  display:grid;
  grid-template-columns: minmax(360px, 520px) minmax(420px, 1fr);
  gap: 26px;
  align-items: start;
  margin-top: 12px;
}

/* left: stack 1-4 vertically */
.process-left .process{
  display:grid;
  grid-template-columns: 1fr !important;
  gap: 14px;
}
.process-left .process-card,
.process-left .process-item,
.process-left .process-step,
.process-left .card{
  width: 100%;
}

/* right: illustration as “insert” (not background) */
.process-right{
  position: relative;
}
.process-illustration{
  margin: 0;
}
.process-illustration img{
  width: 100%;
  height: auto;
  max-height: 420px;
  object-fit: contain;
  display: block;
}

/* keep the section title aligned with the left column */
#process .section-title,
#process .eyebrow{
  max-width: 520px;
}

/* responsive */
@media (max-width: 980px){
  .process-split{
    grid-template-columns: 1fr;
  }
  #process .section-title,
  #process .eyebrow{
    max-width: none;
  }
  .process-illustration img{
    max-height: 340px;
  }
}

/* If any process number badge is positioned oddly, normalize spacing */
#process .process-card,
#process .process-item,
#process .process-step{
  display:flex;
  gap: 12px;
  align-items:flex-start;
}
#process .process-card .badge,
#process .process-item .badge,
#process .process-step .badge{
  flex: 0 0 auto;
}



/* v56: align illustration top with step cards */
.process-right{ align-self: start; }
.process-illustration{ margin-top: 0; }



/* v57: Strength (3 colorful illustrations) */
#strength .lead{
  margin: 10px 0 18px;
  max-width: 760px;
  color: rgba(10,24,48,.78);
  line-height: 1.8;
}
.strength-cards{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 12px;
}
.strength-card{
  background: #ffffff;
  border: 1px solid rgba(44,102,255,.14);
  border-radius: var(--radius);
  box-shadow: 0 14px 34px rgba(7,19,33,.08);
  padding: 16px 16px 18px;
}
.strength-illust{
  width: 100%;
  height: 150px;
  object-fit: contain;
  display: block;
  margin: 6px auto 10px;
}
.strength-title{
  margin: 0 0 6px;
  font-size: 18px;
  letter-spacing: .01em;
}
.strength-sub{
  font-weight: 600;
  color: rgba(44,102,255,.82);
  margin-left: 6px;
  font-size: 14px;
}
.strength-desc{
  margin: 0;
  color: rgba(10,24,48,.78);
  line-height: 1.7;
  font-size: 14px;
}
@media (max-width: 980px){
  .strength-cards{
    grid-template-columns: 1fr;
  }
  .strength-illust{ height: 160px; }
}

/* WORKS: サムネイル高さを全カードで統一（真ん中だけ小さく見える問題の対策） */
.work-thumb{
  height: 180px;
  padding: 0;
  display: block;
}
.work-thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}


/* v72: company page */
.company-card{ margin-top: 16px; }
.company-dl{ display: grid; gap: 10px; margin: 14px 0 0; }
.company-dl > div{ display: grid; grid-template-columns: 120px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(0,0,0,.06); }
.company-dl dt{ font-weight: 700; color: rgba(0,0,0,.75); }
.company-dl dd{ margin: 0; color: rgba(0,0,0,.82); }
.nav a.is-active{ border-bottom: 2px solid var(--primary); padding-bottom: 6px; }

/* v73 header fixed */
body{ padding-top: var(--header-h); }

/* v73 footer nav */
.footer-nav{ display:flex; flex-wrap:wrap; gap: 12px 18px; margin: 10px 0 14px; }
.footer-nav a{ color: rgba(255,255,255,.92); text-decoration:none; font-weight:600; font-size: 13px; }
.footer-nav a:hover{ text-decoration: underline; }
.site-footer{ background: var(--blue-900); color: rgba(255,255,255,.92); }
.site-footer small{ opacity:.85; }

.about-actions{ margin-top: 12px; }

/* v75: contact email CTA card */
.contact-cta .btn{ margin-top: 10px; }

/* v76: move company button to About image bottom-right */
/* NOTE: HTML uses .about-figure (not .about-visual). */
.about-figure{ position: relative; }
.about-company-btn{
  position: absolute;
  right: 14px;
  bottom: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--blue-900);
  text-decoration: none;
  font-weight: 700;
  box-shadow: 0 10px 24px rgba(0,0,0,.14);
}
.about-company-btn:hover{ background: rgba(255,255,255,1); }

.contact-mail-btn{ margin-top: 12px; }

/* v81 responsive */
.btn{ min-height: 44px; }

.brand-desc{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 52vw;
}

.nav-toggle{
  display:none;
  margin-left:auto;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(0,0,0,.12);
  border-radius: 12px;
  cursor: pointer;
}
.nav-toggle span{
  display:block;
  height:2px;
  margin:6px 10px;
  background: rgba(255,255,255,.92);
  border-radius: 2px;
}

@media (max-width: 820px){
  .header-inner{ gap: 10px; }
  .brand-desc{ max-width: 58vw; }

  /* mobile nav (hamburger) */
  .nav-toggle{ display:inline-flex; flex-direction:column; justify-content:center; }
  .nav[hidden]{ display:none !important; }
  .nav{
    position: fixed;
    top: var(--header-h);
    left: 12px;
    right: 12px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(6, 26, 61, .98);
    box-shadow: 0 20px 40px rgba(0,0,0,.25);
    display: none;
    flex-direction: column;
    gap: 10px;
    z-index: 60;
  }
  .nav.is-open{ display:flex; }
  .nav a{ padding: 10px 12px; border-radius: 12px; }
  .nav .nav-cta{ width: 100%; text-align: center; }


  /* keep hamburger visible in portrait: prevent brand from pushing it out */
  .header-inner{ flex-wrap: nowrap; }
  .brand{ flex: 1 1 auto; min-width: 0; }
  .brand-desc{ max-width: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .nav-toggle{ flex: 0 0 auto; }

}

@media (max-width: 640px){
  :root{ --header-h: 86px; }

  body{ padding-top: var(--header-h); }

  /* hero: keep images uncut, add frame height */
  .hero{ padding-top: 0; }
  .hero-slider{ background: #061a3d; border-radius: 18px; overflow: hidden; }
  .hero-slide img{ width:100%; height: 240px; object-fit: contain; background: #061a3d; }

  /* v82 hero frame fix: keep 1920x520 ratio from collapsing on phones */
  .hero-frame{ aspect-ratio: auto; height: 240px; }
  .hero-slide img{ height: 100%; }

  /* works: 1 column and fixed thumb ratio */
  .works-grid{ grid-template-columns: 1fr !important; }
  .work-thumb{ aspect-ratio: 16 / 9; }
  .work-thumb img{ width:100%; height:100%; object-fit: cover; }

  /* about button padding */
  .about-company-btn{ right: 12px; bottom: 12px; }
}

/* v83 header height fix */
:root{ --header-h: 74px; }
.site-header{ height: var(--header-h); }
body{ padding-top: var(--header-h); }

.site-header{ padding-top: env(safe-area-inset-top); }

.brand-link{ text-decoration:none; color: inherit; display: inline-flex; }
.brand-link:hover{ opacity: .95; }


/* =========================
   FIXPACK (stable, no regressions)
   - Mobile hamburger always visible
   - Mobile nav opens reliably (hidden + is-open)
   ========================= */
@media (max-width: 980px){
  .nav-toggle{
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }
  /* hidden attribute should always win */
  .nav[hidden]{ display:none !important; }
  /* open state */
  .nav.is-open{ display:flex !important; }
}