*{box-sizing:border-box;margin:0;padding:0}
a{color:inherit}
:root{--brand:#1c2c52;--accent:#b8964a;--text:#2a2f3a;--sub:#4a5262;--muted:#8a90a0;--line:#e4e7ee;--night:#0b1430}
body{background:#fff}
.site{position:relative;background:#fff;color:var(--text);font-family:"Noto Sans JP",sans-serif;line-height:1.95;letter-spacing:.03em;overflow:hidden}
.wrap{max-width:980px;margin:0 auto;padding:0 24px}
.nb{display:inline-block}

header{position:absolute;left:0;right:0;z-index:5;color:#fff}
header .wrap{display:flex;align-items:center;gap:56px;min-height:84px}
header nav{margin-left:auto}
.logo{text-decoration:none;line-height:1.2;display:flex;align-items:center;gap:12px}
.logo img{height:46px;width:auto;display:block}
.name-ja{font-family:"Noto Serif JP",serif;font-size:19px;font-weight:500;letter-spacing:.14em;display:block;line-height:1.35}
.name-en{font-family:"Cormorant Garamond",serif;font-size:11px;letter-spacing:.32em;opacity:.75;display:block}
nav ul{display:flex;gap:30px;list-style:none;font-size:15px}
nav a{text-decoration:none;opacity:.92}
.menu-btn{display:none;background:none;border:1px solid #fff9;border-radius:6px;padding:6px 12px;font-size:13px;color:#fff;font-family:inherit;cursor:pointer}

/* ===== ヒーロー：星空から夜明けへ ===== */
.hero{position:relative;min-height:78vh;padding:120px 0 150px;padding-top:max(120px,calc(var(--hh,0px) + 36px));display:flex;align-items:center;color:#fff;
  background:
    radial-gradient(120% 90% at 82% 98%,#f3d9a4 0%,#d9a873 12%,#9a7f9e 26%,rgba(90,106,160,.6) 40%,transparent 58%),
    linear-gradient(180deg,#070d22 0%,#0d1838 38%,#1a2a5c 70%,#33467e 100%);}
.milky{position:absolute;inset:-20% -10%;background:linear-gradient(115deg,transparent 30%,rgba(170,185,255,.10) 42%,rgba(220,225,255,.16) 48%,rgba(170,185,255,.10) 54%,transparent 66%);filter:blur(18px);z-index:0}
#stars{position:absolute;inset:0;z-index:1;width:100%;height:100%}
.hero .wrap{position:relative;z-index:3;width:100%}
.hero h1{font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(28px,4.4vw,50px);line-height:1.6;letter-spacing:.08em;text-shadow:0 2px 20px #0008}
.hero p .lead{display:block;font-family:"Shippori Mincho",serif;font-weight:500;font-size:20px;letter-spacing:.1em;margin-bottom:6px;color:#fff}
.hero p{margin-top:24px;font-size:16px;max-width:680px;opacity:.92}

/* セクション */
section.block{padding:72px 0}
.split{display:block}
.split .sec-head{display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:22px}
.split .sec-head .sec-en,.split .sec-head h2{grid-column:1}
.split .sec-head .more{grid-column:2;grid-row:1/3;margin:0 0 8px}
.sec-head{margin-bottom:28px}
.sec-en{font-family:"Cormorant Garamond",serif;font-size:14px;letter-spacing:.32em;color:var(--accent);display:flex;align-items:center;gap:10px}
.sec-head h2{font-family:"Noto Serif JP",serif;font-size:clamp(22px,2.6vw,28px);color:var(--brand);letter-spacing:.08em;margin-top:4px}
.more{display:inline-block;margin-top:26px;font-size:14px;color:var(--brand);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:2px}

.ridges{position:absolute;left:0;right:0;bottom:0;width:100%;height:auto;aspect-ratio:1440/260;min-height:130px;z-index:2}
section.tint{background-color:#f6f4ef;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27240%27%20height%3D%27240%27%3E%3Cfilter%20id%3D%27n%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%27.9%27%20numOctaves%3D%272%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20values%3D%270%200%200%200%20.45%20%200%200%200%200%20.40%20%200%200%200%200%20.32%20%200%200%200%20.07%200%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%27100%25%27%20height%3D%27100%25%27%20filter%3D%27url%28%23n%29%27%2F%3E%3C%2Fsvg%3E")}
.news li{list-style:none;display:flex;gap:28px;padding:18px 0;border-bottom:1px solid var(--line)}
.news li:first-child{border-top:1px solid var(--line)}
.news time{font-family:"Cormorant Garamond",serif;font-size:18px;color:var(--muted);white-space:nowrap}
.news a{text-decoration:none}

.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.service{background:#fff;padding:26px 24px;border-radius:6px;border:1px solid var(--line)}
.service .num{font-family:"Cormorant Garamond",serif;font-size:28px;color:var(--accent);line-height:1}
.service h3{font-family:"Noto Serif JP",serif;font-size:17px;color:var(--brand);margin:10px 0 6px}
.service p{font-size:14.5px;color:var(--sub);line-height:1.85}

.prod{padding:22px 0;border-top:1px solid var(--line)}
.prod:last-child{border-bottom:1px solid var(--line)}
.prod h4{font-family:"Noto Serif JP",serif;font-size:18px;color:var(--brand)}
.prod .catch{font-family:"Noto Serif JP",serif;color:var(--accent);font-size:15px;margin-top:2px}
.prod p{font-size:15px;color:var(--sub);margin-top:4px}

.greet p+p{margin-top:1em}
.greet .sign{text-align:right;margin-top:1.6em;font-family:"Noto Serif JP",serif;color:var(--brand)}
/* ごあいさつの社名の由来の段落にロゴマークを添える（本文の [ロゴマーク] の1行。PCは右、スマホは下で中央） */
.origin{display:flex;flex-direction:row-reverse;gap:28px;align-items:center;margin:1.6em 0;padding:22px 26px;border-top:1px solid rgba(184,150,80,.35);border-bottom:1px solid rgba(184,150,80,.35)}
.origin .origin-mark{flex:0 0 118px;width:118px;height:auto}
.origin p{margin:0!important}
@media (max-width:640px){.origin{flex-direction:column-reverse;gap:16px;padding:20px 4px}.origin .origin-mark{width:104px;flex-basis:auto}}

footer{background:var(--night);color:#e9edf5;padding:48px 0 32px;font-size:13px;margin-top:0}
footer .brand{display:flex;align-items:center;gap:12px}
footer .brand img{height:40px;width:auto;display:block}
footer .brand .ja{font-family:"Noto Serif JP",serif;font-size:17px;letter-spacing:.14em}
footer .en{font-family:"Cormorant Garamond",serif;font-size:11px;letter-spacing:.32em;opacity:.75}
footer .addr{opacity:.8;margin-top:10px}
footer ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:18px}
footer a{text-decoration:none;opacity:.85}
footer small{display:block;margin-top:28px;opacity:.55;letter-spacing:.1em}

/* スマホ幅の調整 */
/* 文字を大きくしても崩れないように：メニューボタンは縮めず画面内に置き、幅が足りないときは会社名の側が
   「株式会社」と「ストレンクス」の間（.nb のかたまりの間）や英字の空白で折り返す。標準の文字サイズでは1行のまま */
.menu-btn{white-space:nowrap;flex:0 0 auto}
.logo{min-width:0}
.logo img,footer .brand img{flex:0 0 auto}
@media (max-width:760px){
  nav ul{display:none}
  .menu-btn{display:block}
  .split{grid-template-columns:1fr;gap:10px}
  .news li{flex-direction:column;gap:0}
  section.block{padding:68px 0}
  .services{grid-template-columns:1fr}
  header .wrap{min-height:72px;gap:12px}
  .logo img{height:38px}
  .name-ja{font-size:15px;letter-spacing:.08em}
  .name-en{font-size:9px;letter-spacing:.24em}
  .hero{min-height:auto;padding:110px 0 150px;padding-top:max(110px,calc(var(--hh,0px) + 38px))}
  .hero h1{font-size:27px}
  .hero p .lead{font-size:17px}
  .hero p{font-size:14.5px;line-height:1.9}
  /* メニューを開いたとき（モックには開いた状態の指定がないため追加） */
  header nav{position:absolute;left:0;right:0;top:100%;margin:0;display:none;background:#0b1430}
  header.open nav{display:block}
  header.open nav ul{display:block;padding:8px 24px 16px}
  header.open nav li{border-bottom:1px solid #ffffff22}
  header.open nav li a{display:block;padding:12px 0}
}
/* 340px 以下（小さい端末、Safari の文字サイズ拡大で画面が実質狭くなったとき）はヘッダーを少し詰め、会社名を1かたまりずつ収める */
@media (max-width:340px){
  header .wrap{padding:0 16px;gap:8px}
  .logo{gap:8px}
  .logo img{height:30px}
  .name-ja{letter-spacing:.02em}
}

/* ===== 下層ページ ===== */
/* 帯の上の余白は「ヘッダーの実際の高さ（--hh、menu.js が入れる）＋標準のときと同じ間隔」。文字を大きくしてヘッダーが高くなっても、ページ名と重ならない。標準では従来の値と同じ */
.hero.sub{min-height:auto;padding:104px 0 54px;padding-top:max(104px,calc(var(--hh,0px) + 20px))}
.hero.sub h1{font-size:clamp(26px,3.4vw,36px)}
.hero.sub p{margin-top:2px;font-family:"Cormorant Garamond",serif;letter-spacing:.35em;font-size:14px;color:#e2c88c}
.hero.sub .ridges{min-height:60px;aspect-ratio:1440/150}
.crumb{font-size:12.5px;color:var(--muted);padding:18px 0 0}
.crumb a{text-decoration:none;color:var(--muted)}
.intro{max-width:760px;color:var(--sub);font-size:15px}
.item{padding:34px 0;border-top:1px solid var(--line);scroll-margin-top:24px}
.item:last-child{border-bottom:1px solid var(--line)}
.item h3{font-family:"Noto Serif JP",serif;font-size:22px;color:var(--brand);letter-spacing:.06em}
.item .tag{display:inline-block;font-size:12px;color:#fff;background:var(--brand);padding:2px 10px;border-radius:2px;margin-left:10px;vertical-align:4px;letter-spacing:.08em}
.item .catch{font-family:"Noto Serif JP",serif;color:var(--accent);font-size:17px;margin-top:10px}
.item p{margin-top:8px;max-width:760px}
.item dl{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;margin-top:16px;font-size:14.5px;max-width:760px}
.item dt{color:var(--brand);font-weight:500;white-space:nowrap}
.item dd{color:var(--sub)}
.past details{border-top:1px solid var(--line);padding:18px 0;scroll-margin-top:24px}
.past details:last-child{border-bottom:1px solid var(--line)}
.past summary{cursor:pointer;font-family:"Noto Serif JP",serif;font-size:17px;color:var(--brand);list-style:none;display:flex;justify-content:space-between;gap:16px}
.past summary::-webkit-details-marker{display:none}
.past summary::after{content:"＋";color:var(--accent);font-family:"Noto Sans JP",sans-serif}
.past details[open] summary::after{content:"－"}
.past .body{margin-top:10px;font-size:14.5px;color:var(--sub);max-width:760px}
.past .body p+p,.past .body ul{margin-top:8px}
.past .body ul{padding-left:1.2em}
.note-past{font-size:13.5px;color:var(--muted);margin:-8px 0 18px}

table.company-t{width:100%;max-width:820px;border-collapse:collapse;font-size:15.5px;background:#fff}
table.company-t th,table.company-t td{padding:18px 20px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.company-t tr:first-child th,table.company-t tr:first-child td{border-top:1px solid var(--line)}
table.company-t th{width:9em;color:var(--brand);font-weight:500;white-space:nowrap;background:#f7f8fb}
table.company-t ul{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(16em,100%),1fr));gap:2px 18px}
table.company-t li::before{content:"・";color:var(--accent)}
.en-sm{display:block;font-family:"Cormorant Garamond",serif;font-size:12px;letter-spacing:.25em;color:var(--muted)}

.svcs{border-top:1px solid var(--line)}
.svc{display:grid;grid-template-columns:18em 1fr;gap:28px;padding:30px 0;border-bottom:1px solid var(--line)}
.svc-h{display:flex;align-items:baseline;gap:16px}
.svc-h .num{font-family:"Cormorant Garamond",serif;font-size:30px;color:var(--accent);line-height:1}
.svc-h h3{font-family:"Noto Serif JP",serif;font-size:19px;color:var(--brand);letter-spacing:.05em}
.svc-b p+p{margin-top:.6em}
.svc-b .small{font-size:14px;color:var(--sub)}
.svc-b .small a{color:var(--brand);text-decoration:none;border-bottom:1px solid var(--accent)}
.svc-b ul{list-style:none;margin-top:8px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(14em,100%),1fr));gap:2px 18px}
.svc-b li::before{content:"・";color:var(--accent)}

.newslist{list-style:none;border-top:1px solid var(--line);max-width:860px}
.newslist li{border-bottom:1px solid var(--line)}
.newslist a,.newslist .row{display:grid;grid-template-columns:8.5em 7em 1fr;gap:16px;align-items:baseline;padding:20px 4px;text-decoration:none;color:var(--text)}
.newslist a:hover h3{color:var(--accent)}
.newslist time{font-family:"Cormorant Garamond",serif;font-size:18px;color:var(--muted)}
.cat{font-size:11.5px;color:var(--brand);border:1px solid var(--brand);border-radius:2px;padding:1px 8px;text-align:center;letter-spacing:.06em;justify-self:start}
.newslist h3{font-size:16px;font-weight:500;line-height:1.7}
.article{max-width:760px}
.article .meta{display:flex;gap:14px;align-items:center}
.article .meta time{font-family:"Cormorant Garamond",serif;font-size:18px;color:var(--muted)}
.article h2.title{font-family:"Noto Serif JP",serif;font-size:clamp(21px,2.4vw,26px);color:var(--brand);line-height:1.6;margin:10px 0 28px;letter-spacing:.04em}
.article p+p{margin-top:1.2em}
.article a{color:var(--brand);border-bottom:1px solid var(--accent);text-decoration:none;word-break:break-all}
.article strong{color:var(--brand)}
.back{display:inline-block;margin-top:44px;font-size:14px;color:var(--brand);text-decoration:none;border-bottom:1px solid var(--accent)}

.legal{max-width:820px}
.legal .intro{margin-bottom:24px}
table.legal-t{width:100%;border-collapse:collapse;font-size:15px}
table.legal-t th,table.legal-t td{padding:16px 18px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.legal-t tr:first-child th,table.legal-t tr:first-child td{border-top:1px solid var(--line)}
table.legal-t th{width:13em;color:var(--brand);font-weight:500;background:#f7f8fb}
.legal h3{font-family:"Noto Serif JP",serif;font-size:18px;color:var(--brand);margin:34px 0 10px}
.legal ul{padding-left:1.3em;margin-top:8px}
.legal p+p{margin-top:.8em}
.legal table+*{margin-top:24px}
.mirror-head{padding-top:36px}
.mirror-head .co{font-size:13px;color:var(--muted);letter-spacing:.1em}
.mirror-head h1{font-family:"Noto Serif JP",serif;font-size:24px;color:var(--brand);margin-top:4px}

.cform{max-width:720px}
.lead-t{color:var(--sub);margin-bottom:28px}
.cform form{display:grid;gap:22px}
.cform label{display:grid;grid-template-columns:1fr;gap:8px;font-weight:500;color:var(--brand);font-size:15px}
.cform .lbl{display:flex;align-items:center}
.cform .req{display:inline-block;margin-left:10px;font-size:11px;color:#fff;background:var(--accent);border-radius:2px;padding:0 6px;font-weight:500;vertical-align:2px;justify-self:start}
.cform input,.cform textarea{font:inherit;font-weight:400;color:var(--text);border:1px solid #cfd5e2;border-radius:4px;padding:12px 14px;background:#fff;width:100%}
.cform input:focus,.cform textarea:focus{outline:2px solid #b8964a55;border-color:var(--accent)}
.cform .pp{font-size:13.5px;color:var(--sub)}
.cform .pp a{color:var(--brand)}
.cform .btn{justify-self:start;border:0;cursor:pointer;font:inherit;background:var(--brand);color:#fff;padding:15px 56px;border-radius:3px;letter-spacing:.14em}
.note-sales{display:inline-block;margin-top:8px;font-size:13.5px;color:var(--muted)}
.cform .btn:disabled{opacity:.6;cursor:default}
.cform .err{font-size:13.5px;font-weight:400;color:#b03a2e}
.err-box{margin-bottom:22px;padding:12px 16px;border-left:3px solid #b03a2e;background:#fbf1ef;color:#b03a2e;font-size:14px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.done-t{font-family:"Noto Serif JP",serif;font-size:24px;color:var(--brand);margin-bottom:18px}
.back{display:inline-block;margin-top:36px;font-size:14px;color:var(--brand);text-decoration:none;border-bottom:1px solid var(--accent)}
.small-n{font-size:13.5px;color:var(--muted);margin-top:14px}

@media (max-width:760px){
  .hero.sub{padding:88px 0 46px;padding-top:max(88px,calc(var(--hh,0px) + 16px))}
  .hero.sub h1{font-size:24px}
  .item dl{grid-template-columns:1fr;gap:0}
  .item dt{margin-top:8px}
  .item .tag{margin-left:0;display:table;margin-top:6px}
  table.company-t th,table.company-t td{display:block;width:auto}
  table.company-t th{border-bottom:0;padding:12px 16px 4px}
  table.company-t td{padding:4px 16px 14px}
  .svc{grid-template-columns:1fr;gap:10px;padding:24px 0}
  .newslist a,.newslist .row{grid-template-columns:auto 1fr;gap:4px 12px}
  .newslist h3{grid-column:1/-1}
  table.legal-t th,table.legal-t td{display:block;width:auto}
  table.legal-t th{border-bottom:0;padding:12px 14px 2px}
  table.legal-t td{padding:4px 14px 14px}
  .cform .btn{justify-self:stretch}
}
.entries{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.entry{position:relative;display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:26px 24px 24px;text-decoration:none;color:var(--text);transition:border-color .2s,transform .2s}
.entry:hover{border-color:var(--accent);transform:translateY(-2px)}
.entry .en{font-family:"Cormorant Garamond",serif;font-size:13px;letter-spacing:.3em;color:var(--accent)}
.entry .ttl{font-family:"Noto Serif JP",serif;font-size:20px;color:var(--brand);letter-spacing:.06em}
.entry .txt{font-size:14px;color:var(--sub);margin-top:4px}
.entry .arr{position:absolute;right:22px;bottom:20px;color:var(--accent)}
@media (max-width:760px){.entries{grid-template-columns:1fr}}
