/*
Theme Name: YKJ Capital
Theme URI: https://ykj-c.com
Author: YKJ Capital
Description: パラディン森永 / YKJ CAPITAL コーポレートサイトテーマ
Version: 1.0.0
Text Domain: ykj
*/

/* =========================================================
   YKJ CAPITAL — HOME (Frame 1)
   Design tokens taken from Figma Dev Mode inspection.
   ========================================================= */

:root{
  --gold: #C29951;
  --white: #FFFFFF;
  --bg: #111111;
  --text-dim: #cfc9bd;

  --font-en: "Adobe Garamond Pro", "EB Garamond", Georgia, serif; /* fallback: Figma uses Adobe Garamond Pro */
  --font-jp-serif: "Noto Serif JP", serif;
  --font-jp-sans: "Noto Sans JP", sans-serif;

  --max: 1440px;
  --pad: 135px; /* left/right content inset used across sections, from Figma layout values */
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--white);
  font-family:var(--font-jp-sans);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font:inherit;cursor:pointer;}

.wrap{
  max-width:1170px; /* 1440 - 135*2 */
  margin:0 auto;
  padding:0 32px;
}

/* ---------- shared: section heading with diamond rule ---------- */
.section-heading{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  font-family:var(--font-en);
  font-weight:400;
  font-size:42px;
  color:var(--gold);
  margin:0 0 48px;
}
.section-heading .heading-deco{
  display:block;
  width:120px;
  height:auto;
  flex:none;
}

/* richer heading ornaments used for PALADIN'S ACTIVITIES / LATEST */
.section-heading.fancy .heading-deco{width:130px;}

.br-sp{display:none;}

/* ---------- buttons ---------- */
.btn-outline{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:200px;
  height:60px;
  padding:0 28px;
  background:var(--bg);
  border:1px solid var(--gold);
  color:var(--white);
  font-family:var(--font-jp-sans);
  font-size:16px;
  transition:background .25s, color .25s;
}
.btn-outline:hover{background:var(--gold);color:var(--bg);}
.btn-outline .arrow{
  position:absolute;
  right:28px;
  font-family:var(--font-en);
}

.btn-outline.small{
  min-width:0;
  width:100%;
  height:48px;
  font-size:14px;
}

.btn-solid{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:48px;
  padding:0 24px;
  background:var(--gold);
  color:#ffffff;
  border:none;
  border-radius:5px;
  font-family:var(--font-jp-sans);
  font-size:14px;
  white-space:nowrap;
  transition:opacity .25s;
}
.btn-solid:hover{opacity:.85;}

/* ---------- header ---------- */
header{
  position:absolute;
  top:0;left:0;right:0;
  z-index:50;
  padding:24px 0;
}
header .wrap{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding:0 40px 0 0;
  max-width:none;
  width:100%;
  margin:0;
}
.header-logo{
  position:absolute;
  top:0;
  left:0;
  z-index:2;
  display:block;
  line-height:0;
}
.header-logo img{
  display:block;
  width:303px;
  height:auto;
}
.nav-panel{
  position:static;
  display:flex;
  align-items:center;
  gap:40px;
  font-family:var(--font-jp-sans);
  font-weight:500;
}
.navlinks{
  display:flex;align-items:center;gap:40px;
}
.navlinks a{
  font-family:var(--font-jp-sans);
  font-weight:700;
  font-size:15px;
  color:var(--white);
}
.navlinks a:hover{color:var(--gold);}
.header-cta{
  height:48px;
  padding:0 24px;
  font-size:14px;
  font-family:var(--font-jp-sans);
  font-weight:500;
}

/* hamburger (mobile only) */
.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  width:30px;height:23px;
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
  flex:none;
}
.nav-toggle span{
  display:block;
  height:2px;
  width:100%;
  background:var(--white);
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  height:710px;
  overflow:hidden;
  background:#1a1a1a url("assets/images/hero-paladin.png") center top / cover no-repeat;
  display:flex;
  align-items:center;
}
.hero::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,.05) 70%);
}
.hero-inner{
  position:relative;z-index:2;
  padding-left:var(--pad);
  max-width:620px;
}
.hero .eyebrow{
  display:block;
  font-family:var(--font-en);
  font-weight:400;
  font-size:24px;
  color:var(--gold);
  margin-bottom:8px;
}
.hero h1{
  margin:0 0 8px;
  font-family:var(--font-jp-serif);
  font-weight:500;
  font-size:60px;
  color:var(--white);
  line-height:1.1;
}
.hero .tagline{
  margin:0 0 20px;
  font-family:var(--font-jp-serif);
  font-weight:500;
  font-size:32px;
  color:var(--gold);
}
.hero p{
  margin:0;
  font-family:var(--font-jp-serif);
  font-weight:500;
  font-size:18px;
  color:var(--white);
}

/* ---------- generic dark section w/ grain ---------- */
.section{
  position:relative;
  padding:90px 0;
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse at 15% 0%, rgba(194,153,81,.05), transparent 55%),
    radial-gradient(ellipse at 85% 100%, rgba(194,153,81,.05), transparent 55%);
}

/* ---------- NEWS ---------- */
.news .wrap{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:48px;
}
.news-head .en{
  font-family:var(--font-en);
  font-size:42px;
  color:var(--gold);
  margin:0;
  line-height:1; 
}
.news-head .jp{
  font-family:var(--font-jp-sans);
  font-size:14px;
  color:var(--gold);
  margin:0px 0 28px;
}
.news-list li{
  display:flex;
  gap:32px;
  padding:20px 0;
  border-bottom:1px solid rgba(255,255,255,.15);
  font-family:var(--font-jp-sans);
  font-size:15px;
}
.news-list li:first-child{padding-top:4px;}
.news-list time{color:var(--text-dim);flex:none;width:110px;}

/* ---------- LATEST ---------- */
.latest{
  background:#0d1224 url("assets/images/latest-bg.png") center / cover no-repeat;
}
.latest-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:32px;
  margin-bottom:48px;
}
.latest-card{
  display:block;
  transition:opacity .25s;
}
.latest-card:hover{opacity:.8;}
.latest-card figure{margin:0;}
.latest-card img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  background:#222;
}
.latest-card .cap{
  margin:16px 0 8px;
  font-family:var(--font-jp-sans);
  font-size:13.5px;
  color:var(--text-dim);
  line-height:1.7;
}
.latest-card time{
  font-family:var(--font-en);
  font-size:12px;
  color:var(--text-dim);
}
.latest .btn-outline{
  display:flex;
  width:calc((100% - 64px) / 3);
  max-width:100%;
  margin:0 auto;
}

/* ---------- PALADIN'S ACTIVITIES ---------- */
.activities-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:32px;
}
.activity-card{
  border:1px solid var(--gold);
  padding:40px 24px 24px;
  text-align:center;
}
.activity-card .icon{
  width:56px;height:56px;
  margin:0 auto 20px;
  display:block;
  object-fit:contain;
}
.activity-card .handle{
  font-family:var(--font-jp-sans);
  font-size:15px;
  color:var(--white);
  margin-bottom:20px;
}

/* ---------- COMPANY ---------- */
.company{
  background:#151310 url("assets/images/company-bg.png") center / cover no-repeat;
  padding:0;
}
.company-inner{
  background:rgba(10,9,8,.35);
  padding:90px 0;
}
.company h2{margin-bottom:56px;}
.company-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
}
.company-row h3{
  margin:0 0 12px;
  font-family:var(--font-jp-sans);
  font-weight:700;
  font-size:20px;
  color:var(--white);
}
.company-row p{
  margin:0;
  font-family:var(--font-jp-sans);
  font-size:14.5px;
  color:var(--text-dim);
  max-width:420px;
}

/* ---------- footer ---------- */
footer{
  padding:56px 0 34px;
  text-align:center;
  background:#111;
}
.footer-logo{
  display:inline-block;
  margin-bottom:26px;
  line-height:0;
}
.footer-logo img{
  display:block;
  width:227px;
  height:auto;
}
.foot-links{
  display:flex;justify-content:center;gap:34px;margin-bottom:30px;
  font-family:var(--font-jp-sans);
  font-size:13px;
  color:var(--white);
}
.foot-links a:hover{color:var(--gold);}
.copyright{
  font-family:var(--font-jp-sans);
  font-size:12px;
  color:var(--white);
  letter-spacing:.02em;
}

/* =========================================================
   COMPANY PAGE (Frame 2) — 会社概要
   ========================================================= */

/* ---------- title band (mini hero) ---------- */
.title-band{
  position:relative;
  height:316px;
  background:#1a1a1a url("assets/images/company-hero-bg.png") center / cover no-repeat;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.title-band::before{
  content:"";
  position:absolute;inset:0;
  background:rgba(0,0,0,.7);
}
.title-band .inner{position:relative;z-index:2;}
.title-band .eyebrow{
  display:block;
  font-family:var(--font-en);
  font-weight:400;
  font-size:24px;
  color:var(--gold);
  margin-bottom:8px;
}
.title-band h1{
  margin:0 0 20px;
  font-family:var(--font-jp-serif);
  font-weight:500;
  font-size:50px;
  color:var(--white);
  line-height:1.1;
}
.title-band .title-band-deco{
  display:block;
  width:264px;
  height:auto;
  margin:0 auto;
}

/* ---------- COMPANY INFORMATION table ---------- */
.info-table{
  border:1px solid #42392E;
}
.info-row{
  display:grid;
  grid-template-columns:351px 1fr;
  border-bottom:1px solid #42392E;
}
.info-row:last-child{border-bottom:none;}
.info-row dt{
  margin:0;
  padding:24px 24px;
  background:#0D1E33;
  border-right:1px solid #42392E;
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--gold);
  display:flex;
  align-items:center;
}
.info-row dd{
  margin:0;
  padding:24px 32px;
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--white);
  line-height:1.75;
  display:flex;
  align-items:center;
}
.info-row .biz-list li{
  position:relative;
  padding-left:14px;
}
.info-row .biz-list li::before{
  content:"・";
  position:absolute;left:0;
}

/* ---------- MEMBERS ---------- */
.member{
  display:grid;
  grid-template-columns:360px 1fr;
  gap:64px;
  align-items:flex-start;
  padding:56px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.member:last-child{border-bottom:none;}
.member.reverse{grid-template-columns:1fr 360px;}
.member.reverse .m-photo{order:2;}
.member.reverse .m-body{order:1;}

.m-photo{
  position:relative;
  width:360px;
  aspect-ratio:360/415;
  border:1px solid var(--gold);
  background:#1a1a1a;
  overflow:hidden;
}
.m-photo img{width:100%;height:100%;object-fit:cover;}
.m-photo .corner{
  position:absolute;
  width:32px;height:32px;
  color:var(--gold);
  pointer-events:none;
}
.m-photo .corner svg{width:100%;height:100%;}
.m-photo .corner.tl{top:8px;left:8px;}
.m-photo .corner.tr{top:8px;right:8px;transform:scaleX(-1);}
.m-photo .corner.bl{bottom:8px;left:8px;transform:scaleY(-1);}
.m-photo .corner.br{bottom:8px;right:8px;transform:scale(-1,-1);}

.m-body h3{
  margin:0 0 6px;
  font-family:var(--font-jp-serif);
  font-weight:700;
  font-size:40px;
  color:var(--white);
  display:flex;
  align-items:baseline;
  gap:16px;
}
.m-body h3 .en{
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--gold);
  font-weight:400;
}
.m-body .role{
  font-family:var(--font-jp-sans);
  font-weight:500;
  font-size:24px;
  color:var(--white);
  margin-bottom:22px;
}
.m-body p{
  margin:0 0 14px;
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--white);
  line-height:1.75;
}
.m-body .credit{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.15);
  font-family:var(--font-jp-sans);
  font-size:14px;
  color:var(--text-dim);
}
.m-body .credit div{margin:4px 0;}

/* ---------- ACCESS ---------- */
#access{
  background:#151310 url("assets/images/company-bg.png") center / cover no-repeat;
}
#access::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(10,9,8,.35);
  pointer-events:none;
}
#access .wrap{
  position:relative;
  z-index:1;
}
.access-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:48px;
  align-items:start;
}
.access-label{
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--gold);
  margin-bottom:12px;
}
.access-text address{
  font-style:normal;
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--white);
  line-height:1.75;
}
.map-frame{
  border:1px solid #42392E;
  aspect-ratio:732/312;
  position:relative;
  overflow:hidden;
  background:#e8e6df;
}
.map-frame iframe{
  position:absolute;inset:0;
  width:100%;height:100%;
  border:0;
  filter:saturate(.85);
}

/* =========================================================
   BUSINESS PAGE (Frame 3) — 業務内容
   ========================================================= */

/* ---------- sub-headings ---------- */
.subheading{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:var(--font-en);
  font-weight:400;
  font-size:24px;
  color:var(--white);
  margin:0 0 24px;
}
.subheading.bar::before{
  content:"";
  width:5px;height:30px;
  background:var(--gold);
  flex:none;
}
.subheading.bullet::before{
  content:"●";
  color:var(--white);
  font-size:14px;
}

.report-heading{
  font-family:var(--font-en);
  font-weight:400;
  font-size:24px;
  color:var(--white);
  margin:0 0 16px;
  padding-bottom:16px;
  border-bottom:1px solid var(--gold);
}

.business-block{margin-bottom:64px;}
.business-block:last-child{margin-bottom:0;}

.lead{
  font-family:var(--font-jp-sans);
  font-size:24px;
  color:var(--white);
  width:fit-content;
  max-width:100%;
  margin:0 auto 32px;
  padding-bottom:16px;
  border-bottom:1px solid var(--gold);
}

.meta{
  font-family:var(--font-jp-sans);
  font-size:15px;
  color:var(--white);
  margin:6px 0;
}
.link-gold{color:var(--gold);text-decoration:underline;}
.link-gold:hover{color:var(--white);}

/* ---------- gray / outline boxes ---------- */
.box-gray{
  background:#2C2C2C;
  padding:24px 32px;
  margin-bottom:40px;
}
.box-gray p{
  margin:0;
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--white);
  line-height:1.75;
}
.box-gray.center{text-align:center;}

.box-outline{
  border:1px solid var(--gold);
  padding:24px 32px;
  margin-bottom:40px;
}
.stat-list li{
  font-family:var(--font-jp-sans);
  font-size:15px;
  color:var(--white);
  line-height:1.9;
  position:relative;
  padding-left:14px;
}
.stat-list li::before{content:"・";position:absolute;left:0;}

.report-text p{
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--white);
  line-height:1.75;
  margin:0 0 24px;
}
.report-text{margin-bottom:40px;}

/* ---------- step list ---------- */
.step-list{margin:0 0 56px;}
.step-row{
  display:flex;
  align-items:flex-start;
  margin-bottom:0;
  overflow:visible;
}
.step-row + .step-row{
  margin-top:45px;
}
.step-row:last-child{margin-bottom:0;}
.step-badge{
  flex:none;
  position:relative;
  width:152px;
  height:175px;
  align-self:flex-start;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
.step-badge-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
}
.step-badge-label{
  position:relative;
  z-index:1;
  font-family:var(--font-jp-sans);
  font-weight:700;
  font-size:32px;
  color:#000;
}
.step-row:nth-child(1) .step-badge{z-index:3;}
.step-row:nth-child(2) .step-badge{z-index:2;}
.step-row:nth-child(3) .step-badge{z-index:1;}
.step-row ul{
  flex:1;
  height:140px;
  min-height:140px;
  box-sizing:border-box;
  margin:0;
  padding:24px 32px;
  border:1px solid #8C8C8C;
  background:var(--bg);
  overflow:hidden;
}
.step-row li{
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--white);
  line-height:1.75;
  position:relative;
  padding-left:14px;
}
.step-row li::before{content:"・";position:absolute;left:0;}

/* =========================================================
   CONTACT PAGE (Frame 4) — お問い合わせ
   ========================================================= */
.contact-form{
  max-width:550px;
  margin:0 auto;
}
.field{margin-bottom:32px;}
.field label{
  display:block;
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--white);
  margin-bottom:12px;
}
.field input,
.field textarea{
  display:block;
  width:100%;
  background:#E9E9E9;
  border:1px solid #737373;
  border-radius:5px;
  padding:0 16px;
  font-family:var(--font-jp-sans);
  font-size:15px;
  color:#111;
}
.field input{height:50px;}
.field textarea{
  height:200px;
  padding:12px 16px;
  resize:vertical;
}
.contact-form .submit-row{
  text-align:center;
  margin-top:24px;
}
.contact-form .btn-solid{
  width:160px;
  height:43px;
}

body.nav-open{overflow:hidden;}

/* ---------- responsive ---------- */
@media (max-width: 960px){
  :root{--pad:24px;}

  /* header: collapse nav into hamburger-triggered dropdown (SP frame spec) */
  .nav-toggle{display:flex;}
  header .wrap{
    position:absolute;
    top:24px;
    right:40px;
    width:auto;
    padding:0;
    z-index:2;
  }
  .nav-panel{
    display:none;
    position:fixed;
    top:72px;
    left:0;
    right:0;
    width:100%;
    max-width:100%;
    max-height:calc(100dvh - 72px);
    box-sizing:border-box;
    overflow-y:auto;
    z-index:49;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:rgba(10,9,8,.97);
    padding:8px 24px 24px;
  }
  header.nav-open .nav-panel{display:flex;}
  .navlinks{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
  }
  .navlinks a{
    width:100%;
    padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  .header-cta{margin-top:20px;width:100%;}

  .hero h1{font-size:40px;}
  .hero .tagline{font-size:24px;}
  .news .wrap{grid-template-columns:1fr;gap:0;}
  .news-head{display:contents;}
  .news-head .en{order:1;}
  .news-head .jp{order:2;margin-bottom:8px;}
  .news-list{order:3;}
  .news-head .btn-outline{
    order:4;
    display:flex;
    width:100%;
    min-width:0;
    margin-top:24px;
  }
  .latest-grid, .activities-grid{grid-template-columns:1fr;}
  .latest .btn-outline,
  .company-row .btn-outline{
    display:flex;
    width:100%;
    min-width:0;
    box-sizing:border-box;
  }
  .activities .wrap{
    padding-left:80px;
    padding-right:80px;
  }
  .section-heading{font-size:32px;}
  .company-row{flex-direction:column;align-items:center;text-align:center;}

  .title-band h1{font-size:34px;}
  .info-row{grid-template-columns:130px 1fr;}
  .info-row dt{padding:16px;font-size:14px;}
  .info-row dd{padding:16px;font-size:14px;}
  .member, .member.reverse{grid-template-columns:1fr;gap:28px;}
  .member.reverse .m-photo{order:1;}
  .member.reverse .m-body{order:2;}
  .m-photo{width:100%;max-width:280px;margin:0 auto;}
  .m-body h3{font-size:28px;}
  .access-grid{grid-template-columns:1fr;}

  .subheading{font-size:20px;}
  .report-heading{font-size:20px;}
  .step-row{flex-direction:column;overflow:visible;}
  .step-badge{
    width:100%;
    height:64px;
    margin-top:0;
    align-self:auto;
    background:var(--gold);
  }
  .step-badge-bg{display:none;}
  .step-badge-label{font-size:24px;}
  .step-row + .step-row{margin-top:0;}
  .step-row ul{
    width:100%;
    flex:none;
    height:auto;
    min-height:0;
    overflow:visible;
    box-sizing:border-box;
  }
  .box-gray, .box-outline{padding:20px;}
}

@media (max-width: 480px){
  .hero{
    height:480px;
    padding:0;
    align-items:flex-start;
    background-position:55% top;
  }
  .hero-inner{
    padding-top:100px;
    padding-left:20px;
    max-width:55%;
  }
  .hero .eyebrow{
    font-size:14px;
    margin-bottom:4px;
    letter-spacing:.05em;
  }
  .hero h1{
    font-size:28px;
    margin-bottom:6px;
    line-height:1.2;
  }
  .hero .tagline{
    font-size:16px;
    margin-bottom:12px;
    line-height:1.5;
  }
  .hero p{
    font-size:13px;
    line-height:1.7;
  }
  .header-logo img{width:180px;}
  header .wrap{
    top:20px;
    right:20px;
  }
  .nav-panel{
    top:64px;
    max-height:calc(100dvh - 64px);
    padding-left:20px;
    padding-right:20px;
  }

  .br-sp{display:block;}
  .section-heading{
    font-size:32px;
    gap:10px;
    flex-wrap:nowrap;
  }
  .section-heading .heading-deco{width:56px;}
  .section-heading.fancy .heading-deco{width:56px;}
  .section-heading .heading-label{
    text-align:center;
    line-height:1.15;
  }
}

/* FV: 430px基準で比例縮小（375px等の狭い端末） */
@media (max-width: 429px){
  html,body{overflow-x:hidden;}
  .hero{
    width:430px;
    height:480px;
    transform:scale(calc(100vw / 430px));
    transform-origin:top left;
    margin-bottom:calc(480px * (100vw / 430px - 1));
  }
}

/* =========================================================
   NEWS ARCHIVE / SINGLE
   ========================================================= */
.news-archive .wrap,
.news-single .wrap{
  max-width:800px;
}
.news-list--archive li span a:hover{color:var(--gold);}
.news-empty,
.contact-notice{
  font-family:var(--font-jp-sans);
  font-size:16px;
  text-align:center;
  margin:0 0 32px;
}
.contact-notice--success{color:#8fd48f;}
.contact-notice--error{color:#e88;}
.news-pagination{
  margin-top:48px;
  text-align:center;
}
.news-pagination .nav-links{
  display:inline-flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:center;
  font-family:var(--font-jp-sans);
  font-size:14px;
}
.news-pagination .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  height:40px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.2);
  color:var(--white);
}
.news-pagination .page-numbers.current,
.news-pagination .page-numbers:hover{
  border-color:var(--gold);
  color:var(--gold);
}
.news-article__date{
  display:block;
  font-family:var(--font-en);
  font-size:14px;
  color:var(--text-dim);
  margin-bottom:12px;
}
.news-article__title{
  margin:0 0 32px;
  font-family:var(--font-jp-serif);
  font-weight:500;
  font-size:32px;
  color:var(--white);
  line-height:1.4;
}
.news-article__body{
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--white);
  line-height:1.85;
}
.news-article__body p{margin:0 0 1.2em;}
.news-back{
  margin:56px 0 0;
  text-align:center;
}
.news-back .btn-outline{
  display:inline-flex;
}

/* =========================================================
   LEGAL PAGES / CONTACT FORM 7
   ========================================================= */
.legal-page .wrap{
  max-width:800px;
}
.legal-body{
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--white);
  line-height:1.85;
}
.legal-body p{margin:0 0 1.2em;}
.legal-body h2,
.legal-body h3{
  font-family:var(--font-jp-serif);
  font-weight:500;
  color:var(--gold);
  margin:2em 0 1em;
}
.contact-form .wpcf7{
  max-width:550px;
  margin:0 auto;
}
.contact-form .wpcf7-form-control-wrap{
  display:block;
}
.contact-form label,
.contact-form .wpcf7-form label{
  display:block;
  font-family:var(--font-jp-sans);
  font-size:16px;
  color:var(--white);
  margin-bottom:12px;
}
.contact-form .wpcf7-form-control:not(.wpcf7-submit){
  display:block;
  width:100%;
  background:#E9E9E9;
  border:1px solid #737373;
  border-radius:5px;
  padding:0 16px;
  font-family:var(--font-jp-sans);
  font-size:15px;
  color:#111;
  box-sizing:border-box;
}
.contact-form input.wpcf7-form-control:not(.wpcf7-submit){
  height:50px;
}
.contact-form textarea.wpcf7-form-control{
  height:200px;
  padding:12px 16px;
  resize:vertical;
}
.contact-form .wpcf7-form p{
  margin-bottom:32px;
}
.contact-form .wpcf7-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:160px;
  height:43px;
  background:var(--gold);
  color:#fff;
  border:none;
  border-radius:5px;
  font-family:var(--font-jp-sans);
  font-size:14px;
  cursor:pointer;
}
.contact-form .wpcf7-submit:hover{opacity:.85;}
.contact-form .wpcf7-response-output{
  font-family:var(--font-jp-sans);
  font-size:15px;
  text-align:center;
  border:none !important;
  margin:0 0 24px !important;
  padding:0 !important;
}
.contact-form .wpcf7-spinner{margin-left:8px;}
