/* =========================================================
   合同会社エムプランニング — Renewal Design (local proposal)
   Design language: premium corporate / 深紺 × ブラス
   Fonts: Shippori Mincho (JP heading) / Noto Sans JP (body)
          Cormorant Garamond (latin display)
   ========================================================= */

:root{
  --ink:        #0E1E33;   /* deep navy */
  --ink-2:      #16294A;
  --ink-soft:   #243A5E;
  --brass:      #B0894C;   /* accent */
  --brass-2:    #C9A86A;   /* lighter accent */
  --brass-deep: #8C6A34;
  --stone:      #F6F3EC;   /* warm light bg */
  --stone-2:    #ECE6DA;
  --paper:      #FFFFFF;
  --text:       #1E2733;
  --muted:      #5C6776;
  --line:       #E3DFD6;
  --line-dark:  rgba(255,255,255,.14);

  --max: 1280px;
  --max-wide: 1440px;
  --ease: cubic-bezier(.22,.61,.36,1);

  --f-mincho: 'Shippori Mincho', 'Noto Serif JP', serif;
  --f-sans:   'Noto Sans JP', system-ui, -apple-system, sans-serif;
  --f-latin:  'Cormorant Garamond', 'Shippori Mincho', serif;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--f-sans);
  color:var(--text);
  background:var(--paper);
  line-height:1.9;
  font-weight:400;
  letter-spacing:.02em;
  overflow-x:hidden;
  font-feature-settings:"palt";
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }

.wrap{ width:100%; max-width:var(--max); margin-inline:auto; padding-inline:24px; }
.wrap-wide{ width:100%; max-width:var(--max-wide); margin-inline:auto; padding-inline:24px; }

/* ---------- helpers ---------- */
.en{ font-family:var(--f-latin); letter-spacing:.18em; text-transform:uppercase; font-weight:500; }
.mincho{ font-family:var(--f-mincho); }
.brass{ color:var(--brass); }
.center{ text-align:center; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.7em;
  font-family:var(--f-latin); font-size:.82rem; letter-spacing:.28em;
  text-transform:uppercase; color:var(--brass); font-weight:600;
}
.eyebrow::before{ content:""; width:34px; height:1px; background:var(--brass); display:inline-block; }
.eyebrow.center{ justify-content:center; }
.eyebrow.center::after{ content:""; width:34px; height:1px; background:var(--brass); display:inline-block; }

.sec-title{
  font-family:var(--f-mincho);
  font-weight:600;
  line-height:1.45;
  letter-spacing:.04em;
  font-size:clamp(1.7rem, 3.4vw, 2.6rem);
  color:var(--ink);
  margin-top:18px;
}
.sec-title.on-dark{ color:#fff; }
.lead{ color:var(--muted); font-size:1rem; line-height:2.1; margin-top:22px; }
.lead.on-dark{ color:rgba(255,255,255,.74); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.9em;
  font-family:var(--f-sans); font-size:.92rem; font-weight:500; letter-spacing:.08em;
  padding:17px 36px; border:1px solid var(--ink);
  background:var(--ink); color:#fff; position:relative; overflow:hidden;
  transition:.5s var(--ease);
}
.btn .arr{ transition:transform .5s var(--ease); }
.btn:hover{ background:var(--brass); border-color:var(--brass); }
.btn:hover .arr{ transform:translateX(6px); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn--ghost:hover{ background:var(--ink); color:#fff; }
.btn--gold{ background:var(--brass); border-color:var(--brass); color:#fff; }
.btn--gold:hover{ background:var(--brass-deep); border-color:var(--brass-deep); }
.btn--light{ background:#fff; color:var(--ink); border-color:#fff; }
.btn--light:hover{ background:var(--brass); border-color:var(--brass); color:#fff; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 clamp(20px,4vw,48px); height:84px;
  transition:.45s var(--ease);
}
.site-header .brand{ display:flex; align-items:baseline; gap:12px; color:#fff; transition:color .4s; }
.brand .brand-mark{
  font-family:var(--f-latin); font-size:1.5rem; font-weight:600; letter-spacing:.14em; line-height:1;
}
.brand .brand-mark b{ color:var(--brass-2); font-weight:600; }
.brand .brand-sub{ font-family:var(--f-mincho); font-size:.74rem; letter-spacing:.22em; opacity:.85; }

.nav{ display:flex; align-items:center; gap:34px; }
.nav a{
  position:relative; color:#fff; font-size:.86rem; letter-spacing:.12em; font-weight:500;
  padding:6px 0; transition:color .35s;
}
.nav a .nav-en{ display:block; font-family:var(--f-latin); font-size:.64rem; letter-spacing:.2em; opacity:.6; text-transform:uppercase; }
.nav a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:1px;
  background:var(--brass-2); transition:width .4s var(--ease);
}
.nav a:hover{ color:var(--brass-2); }
.nav a:hover::after{ width:100%; }
.nav a[aria-current="page"]{ color:var(--brass-2); }
.nav a[aria-current="page"]::after{ width:100%; }

.nav-cta{
  margin-left:8px; display:inline-flex; align-items:center; gap:.6em;
  background:var(--brass); color:#fff; padding:13px 24px; font-size:.84rem; letter-spacing:.1em;
  transition:.4s var(--ease);
}
.nav-cta:hover{ background:#fff; color:var(--ink); }

/* scrolled state */
.site-header.scrolled{
  height:70px; background:rgba(255,255,255,.96);
  box-shadow:0 1px 0 var(--line), 0 14px 40px -28px rgba(14,30,51,.4);
  backdrop-filter:blur(8px);
}
.site-header.scrolled .brand{ color:var(--ink); }
.site-header.scrolled .brand .brand-mark b{ color:var(--brass); }
.site-header.scrolled .nav a{ color:var(--ink); }
.site-header.scrolled .nav a:hover,
.site-header.scrolled .nav a[aria-current="page"]{ color:var(--brass); }

/* hamburger */
.burger{ display:none; flex-direction:column; gap:6px; width:30px; cursor:pointer; background:none; border:0; }
.burger span{ height:1.5px; width:100%; background:#fff; transition:.4s var(--ease); }
.site-header.scrolled .burger span{ background:var(--ink); }

/* mobile nav drawer */
.mobile-nav{
  position:fixed; inset:0; z-index:99; background:var(--ink);
  display:flex; flex-direction:column; justify-content:center; align-items:center; gap:8px;
  opacity:0; visibility:hidden; transition:.5s var(--ease);
}
.mobile-nav.open{ opacity:1; visibility:visible; }
.mobile-nav a{ color:#fff; font-family:var(--f-mincho); font-size:1.3rem; letter-spacing:.1em; padding:12px; }
.mobile-nav a .nav-en{ display:block; font-family:var(--f-latin); font-size:.7rem; letter-spacing:.24em; color:var(--brass-2); text-align:center; }

/* =========================================================
   HERO (top)
   ========================================================= */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  color:#fff; overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(14,30,51,.62) 0%, rgba(14,30,51,.42) 40%, rgba(14,30,51,.78) 100%),
    linear-gradient(90deg, rgba(14,30,51,.55) 0%, rgba(14,30,51,0) 60%);
}
.hero__inner{ position:relative; z-index:2; width:100%; }
.hero__copy{ max-width:880px; }
.hero h1{
  font-family:var(--f-mincho); font-weight:600;
  font-size:clamp(2.3rem, 5.6vw, 4.4rem); line-height:1.4; letter-spacing:.04em;
  text-shadow:0 4px 30px rgba(0,0,0,.25);
}
.hero h1 .hl{ color:var(--brass-2); }
.hero__sub{
  margin-top:28px; font-size:1.05rem; line-height:2.1; color:rgba(255,255,255,.82);
  max-width:560px; font-weight:300;
}
.hero__actions{ margin-top:42px; display:flex; gap:16px; flex-wrap:wrap; }
.hero__side{
  position:absolute; right:clamp(20px,4vw,48px); bottom:46px; z-index:2;
  display:flex; align-items:center; gap:14px; writing-mode:vertical-rl;
  font-family:var(--f-latin); letter-spacing:.3em; text-transform:uppercase;
  font-size:.72rem; color:rgba(255,255,255,.6);
}
.hero__scroll{
  position:absolute; left:50%; bottom:30px; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-family:var(--f-latin); font-size:.66rem; letter-spacing:.24em; color:rgba(255,255,255,.7);
}
.hero__scroll i{ width:1px; height:54px; background:linear-gradient(var(--brass-2),transparent); animation:scrollline 2.2s var(--ease) infinite; transform-origin:top; }
@keyframes scrollline{ 0%{transform:scaleY(0)} 50%{transform:scaleY(1)} 100%{transform:scaleY(0);transform-origin:bottom} }

/* page hero (sub pages) */
.page-hero{
  position:relative; min-height:52vh; display:flex; align-items:flex-end;
  color:#fff; overflow:hidden; padding-bottom:64px;
}
.page-hero__bg{ position:absolute; inset:0; z-index:0; }
.page-hero__bg img{ width:100%; height:100%; object-fit:cover; }
.page-hero__bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(14,30,51,.5), rgba(14,30,51,.82)); }
.page-hero__inner{ position:relative; z-index:2; }
.page-hero h1{ font-family:var(--f-mincho); font-weight:600; font-size:clamp(1.9rem,4.4vw,3rem); letter-spacing:.06em; line-height:1.4; }
.page-hero .en{ display:block; color:var(--brass-2); font-size:.86rem; margin-bottom:6px; }

/* breadcrumb */
.crumb{ background:var(--stone); border-bottom:1px solid var(--line); }
.crumb ul{ display:flex; gap:10px; align-items:center; padding:16px 0; font-size:.78rem; color:var(--muted); flex-wrap:wrap; }
.crumb a:hover{ color:var(--brass); }
.crumb li:not(:last-child)::after{ content:"—"; margin-left:10px; color:var(--line); }

/* =========================================================
   SECTIONS
   ========================================================= */
.section{ padding:clamp(72px,9vw,130px) 0; }
.section--stone{ background:var(--stone); }
.section--ink{ background:var(--ink); color:#fff; position:relative; }
.section--ink .sec-title{ color:#fff; }

.sec-head{ max-width:720px; }
.sec-head.center{ margin-inline:auto; text-align:center; }

/* message split */
.message{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(32px,5vw,80px); align-items:center; }
.message__text .sec-title{ font-size:clamp(1.7rem,3vw,2.4rem); }
.message__big{
  font-family:var(--f-mincho); font-weight:600; line-height:1.7; letter-spacing:.05em;
  font-size:clamp(1.5rem,2.6vw,2rem); color:var(--ink);
}
.message__media{ position:relative; }
.message__media img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.message__media .badge{
  position:absolute; bottom:-26px; left:-26px; background:var(--ink); color:#fff;
  padding:26px 30px; max-width:240px;
}
.message__media .badge .num{ font-family:var(--f-latin); font-size:2.6rem; color:var(--brass-2); line-height:1; }
.message__media .badge .lbl{ font-size:.78rem; color:rgba(255,255,255,.7); margin-top:6px; letter-spacing:.05em; }

/* business cards */
.biz-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.biz-card{
  background:var(--paper); border:1px solid var(--line); overflow:hidden;
  display:flex; flex-direction:column; transition:.5s var(--ease);
}
.biz-card:hover{ transform:translateY(-8px); box-shadow:0 30px 60px -36px rgba(14,30,51,.45); border-color:transparent; }
.biz-card__img{ position:relative; aspect-ratio:16/11; overflow:hidden; }
.biz-card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.biz-card:hover .biz-card__img img{ transform:scale(1.06); }
.biz-card__no{ position:absolute; top:16px; left:16px; font-family:var(--f-latin); font-size:.8rem; letter-spacing:.2em; color:#fff; background:rgba(14,30,51,.6); padding:5px 12px; }
.biz-card__body{ padding:30px 28px 34px; display:flex; flex-direction:column; flex:1; }
.biz-card__en{ font-family:var(--f-latin); font-size:.78rem; letter-spacing:.2em; color:var(--brass); text-transform:uppercase; }
.biz-card h3{ font-family:var(--f-mincho); font-size:1.32rem; font-weight:600; letter-spacing:.04em; margin:8px 0 14px; color:var(--ink); }
.biz-card p{ font-size:.92rem; color:var(--muted); line-height:1.95; flex:1; }
.biz-card .more{ margin-top:20px; display:inline-flex; align-items:center; gap:.6em; font-size:.84rem; color:var(--ink); letter-spacing:.08em; }
.biz-card .more .arr{ color:var(--brass); transition:transform .4s var(--ease); }
.biz-card:hover .more .arr{ transform:translateX(6px); }

/* strength / numbers */
.stat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-dark); }
.stat{ background:var(--ink); padding:44px 28px; text-align:center; }
.stat .en{ color:var(--brass-2); font-size:.72rem; }
.stat .num{ font-family:var(--f-latin); font-size:clamp(2.6rem,5vw,3.6rem); color:#fff; line-height:1; font-weight:500; }
.stat .num small{ font-size:1.2rem; color:var(--brass-2); margin-left:4px; }
.stat .lbl{ margin-top:12px; font-size:.86rem; color:rgba(255,255,255,.72); }

/* reason cards (top strength, no numbers) */
.reason-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark); margin-top:54px; }
.reason{ background:var(--ink); padding:48px 34px; text-align:center; }
.reason .ic{ font-family:var(--f-latin); font-size:1rem; letter-spacing:.2em; color:var(--brass-2); display:inline-flex; align-items:center; gap:.6em; }
.reason .ic::before,.reason .ic::after{ content:""; width:18px; height:1px; background:var(--brass); opacity:.5; }
.reason h3{ font-family:var(--f-mincho); font-size:1.25rem; color:#fff; margin:18px 0 14px; letter-spacing:.04em; }
.reason p{ font-size:.9rem; color:rgba(255,255,255,.72); line-height:1.95; }

/* feature rows (business page) */
.feature{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,70px); align-items:center; }
.feature + .feature{ margin-top:clamp(60px,8vw,110px); }
.feature--rev .feature__media{ order:2; }
.feature__media{ position:relative; }
.feature__media img{ width:100%; aspect-ratio:5/4; object-fit:cover; }
.feature__media .tag{ position:absolute; top:20px; left:20px; background:var(--brass); color:#fff; font-family:var(--f-latin); padding:8px 16px; letter-spacing:.18em; font-size:.82rem; }
.feature__text .eyebrow{ margin-bottom:14px; }
.feature__text h3{ font-family:var(--f-mincho); font-size:clamp(1.5rem,2.6vw,2rem); font-weight:600; color:var(--ink); letter-spacing:.04em; line-height:1.5; }
.feature__text p{ color:var(--muted); margin-top:20px; line-height:2.05; }
.chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.chips li{ font-size:.8rem; letter-spacing:.04em; color:var(--ink-soft); border:1px solid var(--line); background:var(--stone); padding:8px 15px; }

/* service tag cloud (21 fields) */
.field-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.field-grid li{ background:var(--paper); padding:22px 18px; font-size:.9rem; color:var(--ink); display:flex; align-items:center; gap:12px; transition:.4s; }
.field-grid li:hover{ background:var(--ink); color:#fff; }
.field-grid li .no{ font-family:var(--f-latin); font-size:.78rem; color:var(--brass); }
.field-grid li:hover .no{ color:var(--brass-2); }

/* news list */
.news-list{ border-top:1px solid var(--line); }
.news-row{
  display:grid; grid-template-columns:150px 130px 1fr auto; gap:24px; align-items:center;
  padding:26px 8px; border-bottom:1px solid var(--line); transition:.4s var(--ease);
}
.news-row:hover{ background:var(--stone); padding-inline:20px; }
.news-row time{ font-family:var(--f-latin); letter-spacing:.1em; color:var(--muted); font-size:.92rem; }
.news-row .cat{ justify-self:start; font-size:.72rem; letter-spacing:.12em; color:var(--brass); border:1px solid var(--brass); padding:4px 14px; }
.news-row .ttl{ font-size:.98rem; color:var(--ink); font-weight:500; }
.news-row .arr{ color:var(--brass); transition:transform .4s var(--ease); }
.news-row:hover .arr{ transform:translateX(6px); }

/* CTA band */
.cta{
  position:relative; color:#fff; text-align:center; overflow:hidden;
  padding:clamp(70px,10vw,120px) 0;
}
.cta__bg{ position:absolute; inset:0; z-index:0; }
.cta__bg img{ width:100%; height:100%; object-fit:cover; }
.cta__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(14,30,51,.84),rgba(14,30,51,.9)); }
.cta__inner{ position:relative; z-index:2; }
.cta h2{ font-family:var(--f-mincho); font-size:clamp(1.6rem,3.4vw,2.5rem); font-weight:600; letter-spacing:.05em; line-height:1.5; }
.cta p{ color:rgba(255,255,255,.78); margin-top:18px; }
.cta__row{ margin-top:38px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.cta__tel{ margin-top:30px; font-family:var(--f-latin); }
.cta__tel a{ font-size:clamp(1.8rem,4vw,2.6rem); letter-spacing:.06em; color:#fff; }
.cta__tel span{ display:block; font-family:var(--f-sans); font-size:.78rem; letter-spacing:.2em; color:var(--brass-2); }

/* =========================================================
   GENERIC CONTENT (company / privacy)
   ========================================================= */
.spec-table{ width:100%; border-collapse:collapse; border-top:1px solid var(--line); }
.spec-table th,.spec-table td{ text-align:left; padding:24px 4px; border-bottom:1px solid var(--line); vertical-align:top; font-size:.96rem; }
.spec-table th{ width:230px; font-weight:600; color:var(--ink); font-family:var(--f-mincho); letter-spacing:.04em; }
.spec-table td{ color:var(--muted); }

.prose h2{ font-family:var(--f-mincho); font-size:1.3rem; color:var(--ink); font-weight:600; margin:46px 0 14px; letter-spacing:.04em; padding-left:16px; border-left:3px solid var(--brass); }
.prose h2:first-child{ margin-top:0; }
.prose p{ color:var(--muted); margin-bottom:14px; line-height:2.05; }
.prose ol,.prose ul{ margin:0 0 14px 1.4em; color:var(--muted); }
.prose ol li,.prose ul li{ list-style:revert; margin-bottom:8px; line-height:1.95; }

/* contact */
.contact-grid{ display:grid; grid-template-columns:1fr 1.4fr; gap:clamp(30px,5vw,64px); }
.contact-aside .info-block{ padding:30px 0; border-bottom:1px solid var(--line); }
.contact-aside .info-block:first-child{ padding-top:0; }
.contact-aside .en{ color:var(--brass); font-size:.74rem; }
.contact-aside .big{ font-family:var(--f-latin); font-size:1.9rem; color:var(--ink); margin-top:6px; }
.contact-aside p{ color:var(--muted); font-size:.92rem; margin-top:6px; }

.form-field{ margin-bottom:26px; }
.form-field label{ display:block; font-size:.9rem; font-weight:500; color:var(--ink); margin-bottom:10px; letter-spacing:.04em; }
.form-field label .req{ color:#fff; background:var(--brass); font-size:.66rem; padding:2px 9px; margin-left:10px; letter-spacing:.08em; }
.form-field input,.form-field select,.form-field textarea{
  width:100%; padding:15px 18px; border:1px solid var(--line); background:var(--stone);
  font-family:inherit; font-size:.96rem; color:var(--text); transition:.3s;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  outline:none; border-color:var(--brass); background:#fff; box-shadow:0 0 0 4px rgba(176,137,76,.1);
}
.form-field textarea{ min-height:170px; resize:vertical; }
.form-policy{ display:flex; gap:12px; align-items:flex-start; font-size:.88rem; color:var(--muted); margin:8px 0 28px; }
.form-policy input{ margin-top:6px; }
.form-submit{ text-align:center; }
.form-submit .btn{ min-width:280px; justify-content:center; }

/* map */
.map-embed{ width:100%; aspect-ratio:16/7; border:0; filter:grayscale(.2) contrast(1.05); }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--ink); color:#fff; padding:80px 0 0; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:60px; border-bottom:1px solid var(--line-dark); }
.footer-brand .brand-mark{ font-family:var(--f-latin); font-size:1.7rem; letter-spacing:.14em; }
.footer-brand .brand-mark b{ color:var(--brass-2); }
.footer-brand .brand-sub{ font-family:var(--f-mincho); font-size:.82rem; letter-spacing:.18em; margin-top:6px; color:rgba(255,255,255,.8); }
.footer-brand p{ color:rgba(255,255,255,.6); font-size:.86rem; margin-top:22px; line-height:1.95; }
.footer-col h4{ font-family:var(--f-latin); font-size:.8rem; letter-spacing:.2em; color:var(--brass-2); margin-bottom:20px; text-transform:uppercase; }
.footer-col li{ margin-bottom:13px; }
.footer-col a{ color:rgba(255,255,255,.72); font-size:.88rem; transition:.3s; }
.footer-col a:hover{ color:var(--brass-2); padding-left:5px; }
.footer-contact .tel{ font-family:var(--f-latin); font-size:1.5rem; color:#fff; letter-spacing:.04em; }
.footer-contact p{ color:rgba(255,255,255,.6); font-size:.84rem; margin-top:6px; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:26px 0; flex-wrap:wrap; gap:12px; }
.footer-bottom small{ color:rgba(255,255,255,.5); font-size:.78rem; letter-spacing:.06em; }
.footer-bottom .en{ color:rgba(255,255,255,.4); font-size:.72rem; }

/* =========================================================
   REVEAL ANIMATION
   ========================================================= */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.12s; }
.reveal.d2{ transition-delay:.24s; }
.reveal.d3{ transition-delay:.36s; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; } }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1000px){
  .biz-grid{ grid-template-columns:1fr; max-width:520px; margin-inline:auto; }
  .stat-grid{ grid-template-columns:repeat(2,1fr); }
  .message{ grid-template-columns:1fr; }
  .message__media{ max-width:460px; }
  .feature,.feature--rev .feature__media{ grid-template-columns:1fr; order:0; }
  .reason-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  .nav,.nav-cta{ display:none; }
  .burger{ display:flex; }
  .news-row{ grid-template-columns:auto 1fr; gap:10px 16px; }
  .news-row .ttl{ grid-column:1/-1; }
  .news-row .arr{ display:none; }
  .spec-table th{ width:140px; font-size:.86rem; }
  .footer-top{ grid-template-columns:1fr; gap:34px; }
  .hero__side{ display:none; }
}

/* =========================================================
   WordPress: pagination / Contact Form 7
   ========================================================= */
.mpl-pagination ul{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; padding:0; }
.mpl-pagination li{ list-style:none; }
.mpl-pagination a,.mpl-pagination span{ display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 14px; border:1px solid var(--line); font-family:var(--f-latin); color:var(--ink); transition:.3s; }
.mpl-pagination a:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
.mpl-pagination .current{ background:var(--brass); color:#fff; border-color:var(--brass); }

.mpl-form .wpcf7-form > p{ margin:0; }
.mpl-form .form-field{ margin-bottom:26px; }
.mpl-form .wpcf7-form-control-wrap{ display:block; }
.mpl-form input[type=text],.mpl-form input[type=email],.mpl-form input[type=tel],
.mpl-form select,.mpl-form textarea{
  width:100%; padding:15px 18px; border:1px solid var(--line); background:var(--stone);
  font-family:inherit; font-size:.96rem; color:var(--text); transition:.3s;
}
.mpl-form input:focus,.mpl-form select:focus,.mpl-form textarea:focus{
  outline:none; border-color:var(--brass); background:#fff; box-shadow:0 0 0 4px rgba(176,137,76,.1);
}
.mpl-form textarea{ min-height:170px; resize:vertical; }
.mpl-form .wpcf7-not-valid-tip{ color:#c0392b; font-size:.82rem; margin-top:6px; display:block; }
.mpl-form .wpcf7-response-output{ margin:22px 0 0 !important; border:1px solid var(--line) !important; padding:14px 18px !important; font-size:.9rem; }
.mpl-form .wpcf7-spinner{ margin:14px auto 0; display:block; }
.mpl-form .form-submit-row{ text-align:center; margin-top:8px; }
.mpl-form .btn{ min-width:280px; justify-content:center; cursor:pointer; }
