/* HOUSE OF INOYA 社歴 — shared styles
   Layout: year-labelled vertical timeline; single-column press pages.
   Palette: teal ink (Uribo site color) + marker yellow; division colors are semantic tags. */
:root{
  --bg:#F4F8F8; --surface:#FFFFFF; --fg:#0F2125; --muted:#4F646A; --line:#D2DEE0;
  --accent:#17748D;
  --uribo:#17748D; --inoya:#3F6B2B; --inov:#4A4EA8; --group:#0F2125;
  --mark:#F3D54A;
  --warn-bg:#FFF2BF; --warn-fg:#4A3A00; --chk-bg:#FFF2BF; --chk-fg:#6A4E00;
  --serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  color-scheme:light only;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:var(--sans); font-size:16px; line-height:1.9;
  font-feature-settings:"palt";
}
a{color:var(--accent); text-underline-offset:.18em}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent); outline-offset:3px}

.wrap{
  max-width:62rem; margin:0 auto;
  padding-left:max(16px, env(safe-area-inset-left,0px));
  padding-right:max(16px, env(safe-area-inset-right,0px));
  padding-block:1.25rem 0;
}
.site-head{
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:.5rem 1.5rem;
  padding-bottom:1rem; border-bottom:1px solid var(--line);
}
.brand{font-family:var(--serif); font-weight:700; letter-spacing:.14em; font-size:1rem; color:var(--fg); text-decoration:none; display:inline-block; line-height:0}
.brand img{height:40px; width:auto; display:block}
.site-head nav a{font-size:.9rem; margin-left:1.2rem}

/* draft note — remove the [data-draft] elements to publish */
.draft-note{
  background:var(--warn-bg); color:var(--warn-fg);
  padding:.75rem 1rem; font-size:.88rem; line-height:1.7; margin:1.25rem 0;
  border-left:4px solid var(--mark);
}
.draft-note ul{margin:.4rem 0 0; padding-left:1.2rem}
.chk{background:var(--chk-bg); color:var(--chk-fg); font-size:.82em; font-weight:700; padding:0 .35em; margin:0 .1em}

/* ---------- Timeline (index) ---------- */
.hero{padding-block:2.5rem 1rem}
.hero h1{
  font-family:var(--serif); font-weight:700; margin:0;
  font-size:clamp(2.6rem,9vw,4.6rem); line-height:1.15; letter-spacing:.04em;
}
.hero .sub{font-family:var(--serif); letter-spacing:.28em; font-size:.85rem; color:var(--muted); margin:0 0 .75rem}
.hero p.lead{max-width:38rem; margin:1rem 0 0; color:var(--muted)}

.filters{display:flex; flex-wrap:wrap; gap:.5rem; margin:1.75rem 0 .5rem}
.filter{
  font:inherit; font-size:.85rem; line-height:1.2; cursor:pointer;
  border:1px solid var(--line); background:transparent; color:var(--fg);
  padding:.45rem .95rem; border-radius:999px;
}
.filter[aria-pressed="true"]{background:var(--fg); color:var(--bg); border-color:var(--fg)}

.yr{
  display:grid; grid-template-columns:6.5rem minmax(0,1fr); column-gap:2rem;
  padding-block:2.25rem 0; border-top:1px solid var(--line); margin-top:1.5rem;
}
.yr-label{
  font-family:var(--serif); font-weight:700; font-size:2.6rem; line-height:1; margin:0;
  align-self:start; position:sticky; top:calc(env(safe-area-inset-top,0px) + 1rem);
}
.yr.planned .yr-label{font-size:1.4rem; line-height:1.3; color:var(--muted)}
.yr ol{list-style:none; margin:0; padding:0; border-left:1px solid var(--line); min-width:0}
.yr.planned ol{border-left-style:dashed}
.ev{position:relative; padding:0 0 2.4rem 1.7rem; --dot:var(--group)}
.ev::before{
  content:""; position:absolute; left:-5px; top:.62rem; width:9px; height:9px; border-radius:50%;
  background:var(--dot); box-shadow:0 0 0 4px var(--bg);
}
.ev[data-primary="uribo"]{--dot:var(--uribo)}
.ev[data-primary="inoya"]{--dot:var(--inoya)}
.ev[data-primary="inov"]{--dot:var(--inov)}
.ev[hidden]{display:none}
.yr[hidden]{display:none}
.ev-date{font-size:.85rem; color:var(--muted); letter-spacing:.05em; font-variant-numeric:tabular-nums; margin:0}
.ev h3{
  font-family:var(--serif); font-weight:700; font-size:1.2rem; line-height:1.65;
  margin:.1rem 0 .35rem; text-wrap:balance;
}
.ev h3 a{
  color:inherit; text-decoration:none;
  background:linear-gradient(var(--mark),var(--mark)) 0 100%/100% .22em no-repeat;
}
.ev h3 a:hover{background-size:100% .55em}
.ev p.sum{margin:0 0 .6rem; color:var(--muted); font-size:.95rem; line-height:1.8; max-width:40rem}
.ev .more{font-size:.88rem; font-weight:700}
.tags{display:flex; flex-wrap:wrap; gap:.35rem; margin:.15rem 0 0; padding:0; list-style:none}
.tag{font-size:.72rem; line-height:1.2; padding:.18rem .55rem; border:1px solid currentColor; border-radius:999px; color:var(--c,var(--group)); letter-spacing:.04em}
.t-uribo{--c:var(--uribo)} .t-inoya{--c:var(--inoya)} .t-inov{--c:var(--inov)} .t-hiroo{--c:var(--inov)} .t-group{--c:var(--group)}
.t-plan{--c:var(--muted); border-style:dashed}
.badge-chk{font-size:.72rem; background:var(--chk-bg); color:var(--chk-fg); padding:.15rem .5rem; font-weight:700}
.soon{font-size:.85rem; color:var(--muted)}

/* ---------- About / FAQ (index) ---------- */
.about,.faq{max-width:44rem; margin:3.5rem auto 0; padding-top:2rem; border-top:1px solid var(--line)}
.about h2,.faq h2{font-family:var(--serif); font-weight:700; font-size:1.5rem; line-height:1.5; margin:0 0 .8rem}
.about p{margin:.6rem 0}
.faq details{border-bottom:1px solid var(--line); padding:.2rem 0}
.faq summary{cursor:pointer; list-style:none; padding:.75rem 0; display:flex; gap:.75rem; align-items:baseline}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"＋"; flex:none; color:var(--accent); font-weight:700}
.faq details[open] summary::before{content:"－"}
.faq summary h3{font-family:var(--serif); font-weight:700; font-size:1.05rem; line-height:1.6; margin:0; display:inline}
.faq details p{margin:0 0 1rem 1.6rem; font-size:.95rem; line-height:1.9}
.updated{max-width:44rem; margin:2rem auto 0; font-size:.82rem; color:var(--muted); text-align:right}

/* ---------- Press release pages ---------- */
.press{max-width:44rem; margin:0 auto; padding-block:2.25rem 1rem}
.press .eyebrow{display:flex; flex-wrap:wrap; gap:.4rem .9rem; align-items:center; font-size:.82rem; letter-spacing:.08em; color:var(--muted); margin:0 0 .9rem}
.press .eyebrow strong{font-family:var(--serif); letter-spacing:.2em; color:var(--fg)}
.press h1{font-family:var(--serif); font-weight:700; font-size:clamp(1.55rem,5.4vw,2.1rem); line-height:1.6; margin:0 0 1.25rem; text-wrap:balance}
.press .lead{font-size:1.06rem; line-height:2; margin:0 0 2rem; padding-bottom:1.75rem; border-bottom:1px solid var(--line)}
.press h2{font-family:var(--serif); font-weight:700; font-size:1.3rem; line-height:1.6; margin:2.4rem 0 .6rem; text-wrap:balance}
.press p{margin:.6rem 0}
.press ul{margin:.6rem 0; padding-left:1.3rem}
.press li{margin:.3rem 0}
.tbl{overflow-x:auto; margin:1rem 0}
.tbl table{border-collapse:collapse; width:100%; min-width:30rem; font-size:.92rem; line-height:1.7}
.tbl th,.tbl td{border-bottom:1px solid var(--line); padding:.6rem .75rem .6rem 0; text-align:left; vertical-align:top}
.tbl thead th{font-size:.8rem; color:var(--muted); font-weight:500; border-bottom-color:var(--fg)}
.tbl tbody th{white-space:nowrap; font-weight:700; width:7rem}
.facts{margin:1rem 0; border-top:1px solid var(--fg)}
.facts div{display:grid; grid-template-columns:8rem minmax(0,1fr); gap:0 1rem; padding:.7rem 0; border-bottom:1px solid var(--line)}
.facts dt{font-weight:700; font-size:.9rem}
.facts dd{margin:0; font-size:.95rem; overflow-wrap:anywhere}
.links{margin:.6rem 0; padding:0; list-style:none}
.links a{overflow-wrap:anywhere}
.contact{background:var(--surface); border:1px solid var(--line); padding:1.1rem 1.25rem; margin-top:1rem; font-size:.92rem; line-height:1.8}
.contact p{margin:.15rem 0}
.pn{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--line)}
.pn a{display:block; text-decoration:none; color:inherit; font-size:.9rem; line-height:1.6}
.pn a span{display:block; font-size:.75rem; color:var(--muted); letter-spacing:.06em}
.pn a:hover b{text-decoration:underline; text-decoration-color:var(--mark); text-decoration-thickness:.2em}
.pn .next{text-align:right}
.back{display:inline-block; margin-top:2rem; font-size:.9rem; font-weight:700}

.foot{border-top:1px solid var(--fg); margin-top:4rem; padding-block:2.25rem 2rem; font-size:.84rem; line-height:1.75; color:var(--muted)}
.foot-top{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem 3rem; padding-bottom:1.75rem; border-bottom:1px solid var(--line)}
.foot-brand{display:block; line-height:0}
.foot-brand img{height:36px; width:auto}
.marks{display:flex; gap:1.75rem; margin:0; padding:0; list-style:none}
.marks li{display:flex; flex-direction:column; align-items:center; gap:.35rem}
.marks .mk{display:flex; align-items:center; justify-content:center; width:56px; height:56px}
.marks .mk.wide{width:112px}
.marks .mk img{max-width:100%; max-height:100%; width:auto; height:auto}
.marks small{font-size:.68rem; letter-spacing:.06em; color:var(--muted)}
.foot-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem 3rem; padding-block:2rem 1.75rem}
.foot-grid h2{font-family:var(--serif); font-size:.78rem; font-weight:500; letter-spacing:.22em; color:var(--muted); margin:0 0 .9rem}
.foot-grid p{margin:0 0 1rem}
.foot-grid p:last-child{margin-bottom:0}
.foot b{color:var(--fg); font-weight:700}
.foot .role{display:block; font-size:.74rem; letter-spacing:.03em; color:var(--muted)}
.foot-links{list-style:none; margin:0; padding:0}
.foot-links li{display:flex; flex-direction:column; margin-bottom:.8rem}
.foot-links a{color:var(--fg); text-decoration:none; font-weight:700; overflow-wrap:anywhere}
.foot-links a:hover{text-decoration:underline; text-decoration-color:var(--mark); text-decoration-thickness:.2em}
.foot-links small{font-size:.72rem; color:var(--muted)}
.foot-bottom{margin:0; padding-top:1.25rem; border-top:1px solid var(--line); font-size:.76rem; letter-spacing:.04em; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem}

@media (max-width:640px){
  .yr{grid-template-columns:minmax(0,1fr); row-gap:1.25rem}
  .yr-label{position:static; font-size:2.1rem}
  .facts div{grid-template-columns:minmax(0,1fr); gap:.1rem}
  .pn{grid-template-columns:minmax(0,1fr)}
  .pn .next{text-align:left}
  .site-head nav a{margin-left:0; margin-right:1.2rem}
  .brand img{height:32px}
  .foot-grid{grid-template-columns:minmax(0,1fr); gap:1.75rem}
  .marks{gap:1.25rem}
  .marks .mk{width:48px; height:48px} .marks .mk.wide{width:96px}
}
@media (prefers-reduced-motion:no-preference){
  .ev h3 a{transition:background-size .2s ease}
}

/* ---------- Brand marks on a press page (official logos, never recolored) ---------- */
.brandmarks{display:flex; flex-wrap:wrap; align-items:center; gap:1rem 2.5rem; margin:0 0 1.5rem; padding:0}
.brandmarks img{height:84px; width:auto; max-width:100%; object-fit:contain}
.brandmarks img[src*="1-44"]{height:110px}
@media (max-width:640px){ .brandmarks img{height:64px} .brandmarks img[src*="1-44"]{height:88px} }
