/* 合同会社RMG1 トップページ。法務3ページは style.css */
:root{--bg:#fff;--fg:#14202b;--muted:#566370;--line:#dfe4e8;--accent:#1b4f72;--accent-d:#133a55;--accent-soft:#e8eff5;--soft:#f6f8fa;color-scheme:light}
html{color-scheme:light;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
*{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent)}
.wrap{max-width:1080px;margin:0 auto;padding-inline:24px}
.serif,h1,h2,.brand{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif}

/* header */
.site-header{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--line);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
.site-header .wrap{max-width:1440px;display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px;padding-inline:clamp(24px,4.5vw,72px)}
.brand{display:flex;align-items:baseline;gap:14px;text-decoration:none;color:var(--fg);font-family:inherit;font-weight:500;font-size:12px;letter-spacing:.02em;white-space:nowrap}
.brand-mark{font-size:29px;font-weight:800;color:var(--fg);letter-spacing:-.09em;line-height:1}
.site-nav{display:flex;align-items:center;gap:clamp(22px,3vw,44px);white-space:nowrap}
.site-nav a{color:var(--fg);text-decoration:none;font-size:13px;font-weight:500;padding:8px 0;transition:color .2s}
.site-nav a:hover{color:var(--accent)}
.site-nav .nav-cta{border-bottom:1px solid var(--fg);padding-bottom:7px}
.site-nav .nav-cta:hover{border-color:var(--accent)}
.site-header a:focus-visible,.hero a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}

/* hero */
.hero-wrap{max-width:1440px;padding-inline:clamp(24px,4.5vw,72px)}
.hero{min-height:min(calc(100dvh - 72px),680px);display:grid;grid-template-columns:minmax(0,1fr) clamp(480px,50%,720px);grid-template-rows:auto auto 1fr;column-gap:clamp(16px,2vw,32px);align-content:space-between;padding-block:clamp(28px,4vh,48px) clamp(28px,4vh,48px);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
.hero .eyebrow{grid-column:1;align-self:start;margin:0;font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--muted)}
.hero h1{grid-column:1;margin:clamp(24px,4vh,44px) 0 clamp(24px,4vh,40px);font-family:inherit;font-size:clamp(40px,4.4vw,72px);line-height:1.2;font-weight:700;letter-spacing:-.065em;color:var(--fg)}
.hero h1 span{display:block;white-space:nowrap}
.hero-foot{grid-column:1;align-self:end;display:grid;justify-items:start;gap:32px;padding-bottom:4px}
.hero-description{max-width:39em;margin:0;color:var(--muted);font-size:15px;line-height:2;font-weight:400}
.hero .cta{display:flex;flex-wrap:wrap;align-items:center;gap:30px}
.hero .btn{min-height:auto;padding:0 0 9px;border:0;border-bottom:1px solid var(--fg);border-radius:0;background:none;color:var(--fg);font-size:14px;font-weight:700;line-height:1.5;white-space:nowrap;transition:color .2s,border-color .2s,transform .2s}
.hero .btn::after{content:"↗";display:inline-block;width:auto;height:auto;margin-left:16px;border-radius:0;background:none;color:inherit;font-size:17px;line-height:1;transform:none}
.hero .btn:hover{background:none;color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}
.hero .btn:hover::after{transform:none}
.hero .btn:active{transform:translateY(1px)}
.hero .btn-ghost{font-weight:500;color:var(--muted);border-color:var(--line)}
.hero-phones{grid-column:2;grid-row:1/4;align-self:center;position:relative;width:100%;padding:0;overflow:hidden}
.hero .hp-stage{width:100%}
.cta{display:flex;flex-wrap:wrap;gap:14px}
.btn{display:inline-flex;align-items:center;gap:12px;min-height:54px;padding:0 28px;border-radius:999px;font-weight:700;font-size:16px;text-decoration:none;border:2px solid var(--accent);cursor:pointer;font-family:inherit;transition:background .2s,color .2s,transform .2s}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary::after{content:"→";display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#fff;color:var(--accent);font-size:14px;line-height:1;transition:transform .25s}
.btn-primary:hover{background:var(--accent-d);border-color:var(--accent-d)}
.btn-primary:hover::after{transform:translateX(4px)}
.btn-ghost{background:#fff;color:var(--accent)}
.btn-ghost:hover{background:var(--accent);color:#fff}
.btn[disabled]{opacity:.6;cursor:default}
.hp-stage{position:relative;transform-style:preserve-3d;width:100%;height:400px;perspective:1000px;perspective-origin:50% 30%;touch-action:pan-y;user-select:none;-webkit-user-select:none;outline:none}
.hp-stage:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;border-radius:12px}
.ph{position:absolute;left:50%;top:14px;width:var(--pw,160px);margin-left:calc(var(--pw,160px)/-2);transform-style:preserve-3d;will-change:transform}
.ph-f{position:relative;background:#0b0d10;border-radius:calc(var(--pw,160px)*.17);padding:calc(var(--pw,160px)*.036);box-shadow:inset 0 0 0 1.5px #4a515a}
.ph-f img{display:block;width:100%;height:auto;border-radius:calc(var(--pw,160px)*.135);-webkit-user-drag:none;pointer-events:none}
.ph-isl{position:absolute;top:calc(var(--pw,160px)*.062);left:50%;width:27%;height:calc(var(--pw,160px)*.062);margin-left:-13.5%;background:#050607;border-radius:99px}
.ph-gl{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.2) 0,rgba(255,255,255,0) 34%)}
.ph-dim{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:#fff;opacity:var(--dim,0)}
.ph-s{position:absolute;inset:0;border-radius:calc(var(--pw,160px)*.17);background:#171a1f;box-shadow:inset 0 0 0 1.5px #4a515a;transform:translateZ(calc(var(--k)*-1.6px))}
.ph-s:nth-child(even){background:#23282f}
.ph-b{position:absolute;width:3px;background:#2b3138;border-radius:2px;transform:translateZ(-6px)}
.ph-bl{left:-2px;top:20%;height:9%}
.ph-br{right:-2px;top:28%;height:14%}
.ph-sh{position:absolute;left:6%;right:6%;bottom:calc(var(--pw,160px)*-.1);height:calc(var(--pw,160px)*.12);background:radial-gradient(ellipse at center,rgba(20,32,43,.34),rgba(20,32,43,0) 70%);transform:translateZ(-16px)}

/* sections */
section{padding-block:88px;border-top:1px solid var(--line)}
.sec-label{margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
h2{margin:0 0 48px;font-size:clamp(26px,3.2vw,36px);line-height:1.3;font-weight:700}
.items{display:flex;flex-direction:column}
.item{display:grid;grid-template-columns:1fr 280px;gap:56px;align-items:start;padding-block:56px;border-top:1px solid var(--line)}
.item:first-child{border-top:0;padding-top:0}
.item:nth-child(even){grid-template-columns:280px 1fr}
.item:nth-child(even) .body{order:2}
.item:nth-child(even) .phone{order:1}
.body{min-width:0}
.icon{width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin-bottom:16px}
.icon svg{width:24px;height:24px}
h3{margin:0 0 4px;font-size:24px;line-height:1.4;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.status{font-size:12px;font-weight:700;padding:3px 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent);letter-spacing:.04em}
.sub{margin:0 0 16px;color:var(--accent);font-weight:700}
.body p{margin:0 0 14px}
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:18px 0;padding:0}
.tags li{font-size:13px;padding:2px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}
.price{padding:14px 18px;background:var(--soft);border-left:3px solid var(--accent);font-weight:700}
.price small{font-weight:400;color:var(--muted)}
.svc-url{font-size:14px;word-break:break-all}
.qr-box{display:flex;align-items:center;gap:16px;margin-top:18px}
.qr-box img{width:96px;height:96px;border:1px solid var(--line);border-radius:8px}
.qr-box p{margin:0;font-size:14px;line-height:1.6}
.qr-id{color:var(--muted)}
.phone{margin:0;position:sticky;top:96px}
.phone{position:relative}
.phone img{display:block;box-sizing:border-box;width:100%;height:auto;border-radius:11% / 5%;border:7px solid #0b0d10;background:#0b0d10;box-shadow:0 0 0 1.5px #4a515a,0 14px 34px rgba(20,32,43,.22)}
.phone::before{content:"";position:absolute;z-index:1;top:16px;left:50%;width:27%;height:14px;margin-left:-13.5%;background:#050607;border-radius:99px}
.phone::after{content:"";position:absolute;z-index:1;right:-4px;top:22%;width:3px;height:11%;background:#2a2f36;border-radius:0 2px 2px 0}
.phones{display:grid;grid-template-columns:1fr 1fr;gap:16px;position:sticky;top:96px}
.phones .phone{position:relative;top:auto}
.phone figcaption{margin-top:12px;font-size:12px;line-height:1.6;color:var(--muted);text-align:center}

/* company */
#company{background:var(--soft)}
.table-scroll{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px}
table{width:100%;border-collapse:collapse}
th,td{padding:18px 24px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
tr:last-child th,tr:last-child td{border-bottom:0}
th{width:9em;font-weight:700;color:var(--accent);white-space:nowrap;background:#fbfcfd}

/* contact */
.contact-box{max-width:720px}
.lead{margin:0 0 28px;color:var(--muted)}
.cform{display:grid;gap:20px}
.cform label{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;font-size:14px}
.req{display:inline-block;margin-left:0;font-size:11px;color:#fff;background:var(--accent);border-radius:4px;padding:0 6px}
input[type=text],input[type=email],select,textarea{width:100%;font:inherit;font-weight:400;padding:14px 16px;border:1px solid #c5cdd3;border-radius:10px;background:#fff;color:var(--fg)}
input:focus,select:focus,textarea:focus{outline:3px solid var(--accent-soft);border-color:var(--accent)}
.note{margin:0;font-size:13px;color:var(--muted)}
.cform .btn{justify-self:start}
.cform label>input,.cform label>textarea,.cform label>select{flex:0 0 100%}
.status-msg{margin:0;font-size:14px;min-height:1.5em}.status-msg.ok{color:#1d6b3a}.status-msg.err{color:#b3261e}

/* footer */
.site-footer{border-top:1px solid var(--accent);padding-block:40px;font-size:14px}
.site-footer p{margin:0 0 12px}
.footer-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-bottom:16px}
.footer-links a{color:var(--fg)}

/* motion */
.motion .rv{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.motion .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion .rv{opacity:1;transform:none}}

/* mobile */
@media (max-width:820px){
  .site-header .wrap{height:64px;padding-inline:24px}
  .hero-wrap{padding-inline:24px}
  .hero{min-height:calc(100dvh - 64px);grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto;gap:0;padding-block:36px 52px}
  .hero h1{grid-column:1;margin:48px 0 42px;font-size:clamp(28px,7.5vw,48px);line-height:1.35;letter-spacing:-.055em}
  .hero h1 span{white-space:normal}
  .hero-foot{grid-column:1;gap:24px}
  .hero-description{font-size:14px;line-height:1.9}
  .hero .cta{gap:26px}
  .hero-phones{grid-column:1;grid-row:4;width:min(100%,280px);margin:36px 0 0 auto}
  .item,.item:nth-child(even){grid-template-columns:1fr;gap:28px;padding-block:40px}
  .item:nth-child(even) .body{order:0}.item:nth-child(even) .phone{order:0}
  .phone{position:relative;top:auto;max-width:240px;margin-inline:auto}
  .phones{position:static;max-width:420px;margin-inline:auto}
  .phones .phone{max-width:none}
  section{padding-block:56px}
  .site-nav{gap:16px}.site-nav a:not(.nav-cta){display:none}
  .brand{font-size:14px}
  th{display:block;width:auto;border-bottom:0;padding-bottom:0}td{display:block;padding-top:4px}
  .cform .btn{justify-self:stretch;justify-content:center}
}
@media (max-width:390px){
  .brand{gap:8px;font-size:11px}
  .brand-mark{font-size:26px}
  .site-header .wrap,.hero-wrap{padding-inline:20px}
  .hero h1{margin-block:38px 34px}
  .hero-phones{width:min(100%,260px);margin-top:30px}
}
section[id]{scroll-margin-top:72px}
