/*
Theme Name: 日本彩美会
Author: 日本彩美会
Description: 日本彩美会 公式サイト テーマ
Version: 1.0.0
License: Private
Text Domain: saibikai
*/

/* ===========================================================
   共通スタイル
   =========================================================== */

/* LINESeedJP Thin (100) */
@font-face{
  font-family:"LINESeedJP";
  src:url("assets/fonts/LINESeedJP_OTF_Th.woff2") format("woff2"),
      url("assets/fonts/LINESeedJP_OTF_Th.woff")  format("woff");
  font-weight:100;font-style:normal;font-display:swap;
}
/* LINESeedJP Regular (400) */
@font-face{
  font-family:"LINESeedJP";
  src:url("assets/fonts/LINESeedJP_OTF_Rg.woff2") format("woff2"),
      url("assets/fonts/LINESeedJP_OTF_Rg.woff")  format("woff");
  font-weight:400;font-style:normal;font-display:swap;
}
/* LINESeedJP Bold (700) */
@font-face{
  font-family:"LINESeedJP";
  src:url("assets/fonts/LINESeedJP_OTF_Bd.woff2") format("woff2"),
      url("assets/fonts/LINESeedJP_OTF_Bd.woff")  format("woff");
  font-weight:700;font-style:normal;font-display:swap;
}
/* LINESeedJP ExtraBold (800) — 900 も同ファイルで対応 */
@font-face{
  font-family:"LINESeedJP";
  src:url("assets/fonts/LINESeedJP_OTF_Eb.woff2") format("woff2"),
      url("assets/fonts/LINESeedJP_OTF_Eb.woff")  format("woff");
  font-weight:800 900;font-style:normal;font-display:swap;
}

:root{
  --ink:#1a1413;
  --black:#000000;
  --white:#ffffff;
  --paper:#ffffff;
  --periwinkle:#5a68b7;
  --periwinkle-dk:#4a5699;
  --lavender:#b1b8dd;
  --lavender-soft:#c7cce6;
  --field:#d8d8d8;
  --ph:#ededed;
  --line:#1a1413;
  --maxw:1240px;
  --pad:clamp(20px,6vw,90px);
  --font-jp:"LINESeedJP",sans-serif;
  --font-en:"LINESeedJP",sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;font-family:var(--font-jp);color:var(--ink);
  background:var(--paper);line-height:1.85;font-weight:400;
  letter-spacing:.02em;overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}

.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:flex-start;justify-content:space-between;
  transition:background .3s,box-shadow .3s;
}
.site-header .logo{padding:clamp(18px,2.4vw,34px) var(--pad);transition:filter .3s;}
.site-header .logo img{height:clamp(34px,3.4vw,48px);width:auto;}
.site-header.home-header{background:transparent;}
.site-header.home-header.scrolled{
  background:rgba(255,255,255,.95);backdrop-filter:blur(8px);
  box-shadow:0 1px 0 rgba(26,20,19,.07);
}
.site-header.solid{
  position:sticky;background:rgba(255,255,255,.95);
  backdrop-filter:blur(8px);box-shadow:0 1px 0 rgba(26,20,19,.07);
}
.logo--invert img{filter:brightness(0) invert(1);}
.site-header.home-header.scrolled .logo--invert img{filter:none;}

.hamburger{
  width:clamp(58px,5.2vw,80px);height:clamp(58px,5.2vw,80px);
  background:var(--periwinkle);border:none;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  flex:0 0 auto;transition:background .25s;
}
.hamburger:hover{background:var(--periwinkle-dk);}
.hamburger span{display:block;width:clamp(24px,2vw,30px);height:2px;background:#fff;transition:.25s;}

/* ---------- Menu overlay ---------- */
.menu-overlay{
  position:fixed;inset:0;z-index:200;background:#fff;
  opacity:0;visibility:hidden;transition:opacity .4s ease;
  padding:var(--pad);display:flex;flex-direction:column;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.menu-overlay.open{opacity:1;visibility:visible;}
.menu-close{
  position:fixed;top:0;right:0;z-index:201;
  width:clamp(58px,5.2vw,80px);height:clamp(58px,5.2vw,80px);
  background:var(--periwinkle);border:none;color:#fff;
}
.menu-close::before,.menu-close::after{
  content:"";position:absolute;top:50%;left:50%;width:30px;height:2px;background:#fff;
}
.menu-close::before{transform:translate(-50%,-50%) rotate(45deg);}
.menu-close::after{transform:translate(-50%,-50%) rotate(-45deg);}
.menu-inner{max-width:var(--maxw);margin-inline:auto;width:100%;padding-top:clamp(60px,9vw,120px);}
.menu-inner .menu-logo{height:clamp(70px,7vw,110px);margin-bottom:clamp(28px,4vw,54px);}

/* WordPress nav menu リセット */
.menu-nav{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:clamp(14px,1.6vw,22px);
}
.menu-nav li{display:block;}
.menu-nav a{
  font-size:clamp(20px,2.4vw,28px);font-weight:500;width:max-content;white-space:nowrap;
  position:relative;transition:color .2s;display:inline-block;
}
.menu-nav a::after{
  content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;
  background:var(--periwinkle);transition:width .3s;
}
.menu-nav a:hover{color:var(--periwinkle);}
.menu-nav a:hover::after{width:100%;}
.menu-privacy{margin-top:clamp(40px,6vw,72px);}
.menu-privacy a{font-size:clamp(15px,1.6vw,18px);}

/* ---------- Section watermark heading ---------- */
.sec-head{position:relative;margin-bottom:clamp(40px,5vw,72px);padding-top:clamp(20px,3vw,40px);}
.sec-head .en{
  display:block;font-family:var(--font-en);font-weight:800;
  color:var(--lavender);line-height:.96;letter-spacing:.01em;
  font-size:clamp(40px,7.6vw,104px);text-transform:uppercase;
}
.sec-head .en .star{color:var(--lavender);}
.sec-head .jp{
  position:absolute;left:0;bottom:clamp(-20px,-1vw,-5px);
  font-weight:700;color:var(--ink);
  font-size:clamp(20px,2.7vw,34px);letter-spacing:.06em;
  background:transparent;white-space:nowrap;
}
.sec-head.on-dark .jp{color:#fff;}

.h-block{font-weight:700;font-size:clamp(19px,2vw,24px);letter-spacing:.05em;margin:0 0 18px;}

.body-text{font-size:clamp(14px,1.05vw,15.5px);line-height:2.15;text-wrap:pretty;color:#2a2422;}
.body-text+.body-text{margin-top:1.6em;}
.body-text--right{text-align:right;}

/* ---------- Buttons ---------- */
.btn-line{
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--ink);background:transparent;color:var(--ink);
  padding:16px 30px;font-size:14px;letter-spacing:.12em;transition:.25s;min-height:44px;
}
.btn-line:hover{background:var(--ink);color:#fff;}
.btn-fill{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--periwinkle);color:#fff;border:none;
  padding:18px 64px;font-size:16px;letter-spacing:.14em;transition:.25s;min-height:52px;
  cursor:pointer;
}
.btn-fill:hover{background:var(--periwinkle-dk);}

/* ---------- Footer ---------- */
.site-footer{padding:clamp(56px,8vw,110px) 0 clamp(40px,5vw,70px);background:#fff;}
.site-footer .foot-logo{height:clamp(56px,6vw,84px);margin-bottom:clamp(26px,3vw,40px);}
.foot-nav{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:9px;font-size:clamp(13px,1.1vw,15px);
}
.foot-nav li{display:block;}
.foot-nav a{width:max-content;white-space:nowrap;transition:color .2s;display:inline-block;}
.foot-nav a:hover{color:var(--periwinkle);}
.foot-privacy{margin-top:clamp(28px,3.5vw,48px);}
.foot-privacy a{font-size:clamp(13px,1.1vw,15px);transition:color .2s;}
.foot-privacy a:hover{color:var(--periwinkle);}
.foot-copy{margin-top:clamp(28px,3.5vw,44px);font-size:11px;letter-spacing:.12em;color:#9b9590;}

/* ---------- Page-top button ---------- */
.pagetop{
  position:fixed;right:clamp(14px,2vw,30px);bottom:clamp(18px,2.5vw,40px);z-index:80;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  opacity:0;visibility:hidden;transform:translateY(12px);transition:.35s;border:none;background:none;
}
.pagetop.show{opacity:1;visibility:visible;transform:none;}
.pagetop .tri{
  width:0;height:0;border-left:22px solid transparent;border-right:22px solid transparent;
  border-bottom:30px solid var(--periwinkle);transition:.2s;
}
.pagetop:hover .tri{border-bottom-color:var(--periwinkle-dk);}
.pagetop .lbl{font-family:var(--font-en);font-weight:700;font-size:10px;letter-spacing:.22em;color:var(--periwinkle);}

/* ---------- Reveal animation ---------- */
@media(prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease;}
  .reveal.in{opacity:1;transform:none;}
}

/* ---------- Image placeholder ---------- */
.ph{
  background:repeating-linear-gradient(45deg,#e9e9ec 0 10px,#f3f3f6 10px 20px);
  border:1px solid #e2e2e6;
  display:flex;align-items:center;justify-content:center;
  color:#9a9aa6;font-family:var(--font-en);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  aspect-ratio:4/3;width:100%;
}
.logo-card{
  border:1px solid var(--ink);aspect-ratio:3/2;width:100%;
  display:flex;align-items:center;justify-content:center;background:#fff;
}
.logo-card img{width:70%;height:auto;display:block;}

section{position:relative;}

/* ===========================================================
   TOP PAGE
   =========================================================== */
.hero{
  background:var(--black);color:#fff;position:relative;overflow:hidden;
  min-height:clamp(580px,82vh,780px);display:flex;align-items:center;
}
.hero__video{
  position:absolute;inset:0;z-index:0;width:100%;height:100%;
  object-fit:cover;object-position:right center;display:block;
}
@media(max-width:767px){.hero__video{display:none;}}
.hero__wedge{
  position:absolute;top:0;left:0;z-index:2;width:40%;height:840px;
  background:var(--black);clip-path:polygon(0 0,100% 0,50% 100%,0 100%);
}
.hero__inner{position:relative;z-index:3;width:100%;}
.hero h1{
  margin:0;color:var(--periwinkle);font-weight:900;
  font-size:clamp(40px,7vw,70px);line-height:1.12;letter-spacing:.04em;
  font-family:var(--font-jp);
}
.hero h1 .dot{color:var(--periwinkle);}
.hero .lead{
  margin-top:clamp(26px,3.4vw,44px);color:#e7e7ea;font-weight:400;
  font-size:clamp(13px,1.25vw,16px);line-height:2;letter-spacing:.06em;
}

/* NEWS */
.news{padding:clamp(70px,9vw,130px) 0 clamp(60px,8vw,120px);}
.news-list{display:flex;flex-direction:column;}
.news-item{
  display:grid;grid-template-columns:128px 1fr;gap:clamp(22px,3vw,46px);
  align-items:center;padding:clamp(18px,2vw,26px) 0;
}
.news-item .thumb{width:128px;overflow:hidden;}
.news-item .thumb img{width:80%;height:auto;display:block;}
.news-item .thumb.has-thumb img{width:100%;height:100%;object-fit:cover;}
.news-item .date{font-family:var(--font-en);font-weight:600;font-size:13px;letter-spacing:.1em;color:#7a756f;}
.news-item .ttl{font-size:clamp(15px,1.3vw,18px);font-weight:500;margin-top:4px;transition:color .2s;}
.news-item:hover .ttl{color:var(--periwinkle);}

/* EXHIBITION (dark) */
.exhibition{background:var(--black);color:#fff;padding:clamp(70px,9vw,130px) 0;}
.exhibition .sec-head{margin-bottom:clamp(50px,6vw,90px);}
.exh-card{display:grid;grid-template-columns:clamp(260px,34%,400px) 1fr;gap:clamp(28px,4vw,64px);align-items:center;}
.exh-card .logo-card{background:#fff;border-color:#fff;}
.exh-card .exh-meta .date{font-family:var(--font-en);font-weight:600;font-size:14px;letter-spacing:.1em;color:#b9bdd6;}
.exh-card .exh-meta .what{font-size:clamp(15px,1.4vw,19px);font-weight:500;margin-top:8px;line-height:1.7;}

/* MESSAGE */
.message{padding:clamp(80px,10vw,150px) 0;}
.message .copy{max-width:1040px;}

/* CONTACT */
.contact-top{padding:clamp(30px,4vw,60px) 0 clamp(80px,9vw,130px);}
.contact-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(30px,5vw,80px);align-items:center;}
.contact-copy .txt{font-size:clamp(14px,1.1vw,16px);line-height:2;margin:0 0 clamp(26px,3vw,40px);color:#2a2422;}
.art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.art-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#eee;}

/* LINK (dark) */
.link-sec{background:var(--black);color:#fff;padding:clamp(70px,9vw,130px) 0 clamp(80px,10vw,150px);}
.link-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,48px);}
.link-card{display:flex;flex-direction:column;align-items:center;gap:18px;}
.link-card .plate{
  width:100%;aspect-ratio:64/19;background:#fff;color:var(--ink);
  display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;
}
.link-card .plate .alj{font-weight:700;font-size:clamp(20px,2.4vw,32px);letter-spacing:.18em;display:flex;align-items:center;gap:.4em;}
.link-card .plate .alj .a-mark{color:#c0392b;font-family:var(--font-en);}
.link-card .plate .sample{font-family:var(--font-en);font-weight:700;font-size:clamp(22px,2.8vw,40px);letter-spacing:.06em;color:#222;}
.link-card a.plate{text-decoration:none;}
.link-card .plate img{width:70%;height:auto;display:block;}
.link-card .cap{font-size:clamp(13px,1.1vw,15px);color:#d7d9e4;letter-spacing:.04em;}
.link-card .cap a{color:inherit;text-decoration:none;}
.link-card .cap a:hover{text-decoration:underline;}

@media(max-width:760px){
  .news-item{grid-template-columns:92px 1fr;gap:18px;}
  .news-item .thumb{width:92px;}
  .exh-card{grid-template-columns:1fr;gap:24px;}
  .contact-grid{grid-template-columns:1fr;}
  .link-cards{grid-template-columns:1fr;gap:28px;}
}

/* ===========================================================
   ABOUT
   =========================================================== */
.page-body{padding-top:clamp(40px,6vw,90px);}
.sub-sec{padding:clamp(20px,3vw,40px) 0;}
.greeting{max-width:1000px;}
.chair{display:grid;grid-template-columns:1fr clamp(260px,30%,360px);gap:clamp(34px,5vw,72px);align-items:start;margin-top:clamp(24px,3vw,40px);}
.history{font-size:clamp(12.5px,1vw,14px);line-height:1.9;color:#3a342f;}
.history dl{display:grid;grid-template-columns:max-content 1fr;gap:6px clamp(18px,2vw,34px);margin:0;}
.history dt{font-family:var(--font-en);font-weight:600;color:#1a1413;white-space:nowrap;}
.history dd{margin:0;}
.chair-photo img{width:100%;background:#eee;}
.chair-photo figcaption{font-size:12px;color:#8a847e;margin-top:8px;letter-spacing:.06em;}
.gareki-btn{margin:clamp(34px,4vw,56px) 0;}
.paintings{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,36px);}
.paintings figure{margin:0;}
.paintings img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#eee;}
.paintings figcaption{font-size:13px;color:#3a342f;margin-top:10px;letter-spacing:.04em;}
.paintings figure.lower{align-self:end;}
.bio{max-width:1080px;margin-top:clamp(40px,5vw,72px);}
.bio p{font-size:clamp(12.5px,.98vw,14px);line-height:2.05;color:#3a342f;margin:0 0 .9em;text-wrap:pretty;}
.company{background:var(--black);color:#fff;padding:clamp(60px,8vw,110px) 0;margin-top:clamp(50px,7vw,100px);}
.company h2{font-weight:700;font-size:clamp(18px,2vw,24px);letter-spacing:.08em;margin:0 0 clamp(22px,3vw,36px);}
.company dl{display:grid;grid-template-columns:max-content 1fr;gap:12px clamp(28px,4vw,56px);margin:0;font-size:clamp(13px,1.1vw,15px);}
.company dt{color:#b9bdd6;letter-spacing:.06em;}
.company dd{margin:0;}
.member-table{width:100%;border-collapse:collapse;font-size:clamp(12.5px,1vw,14px);line-height:1.9;}
.member-table tr{border-bottom:1px solid #e2e2e6;}
.member-table tr:first-child{border-bottom:2px solid var(--ink);}
.member-table th{text-align:left;white-space:nowrap;padding:clamp(8px,1vw,12px) clamp(18px,2vw,34px) clamp(8px,1vw,12px) 0;color:#1a1413;font-weight:700;vertical-align:top;}
.member-table tr:first-child th{color:#9a9590;font-weight:400;font-size:11px;letter-spacing:.1em;}
.member-table td{padding:clamp(8px,1vw,12px) 0;color:#3a342f;vertical-align:top;}

@media(max-width:760px){
  .chair{grid-template-columns:1fr;}
  .chair-photo{max-width:320px;}
  .paintings{grid-template-columns:1fr 1fr;}
}

/* ===========================================================
   WORKS
   =========================================================== */
.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,40px);}
.works-grid figure{margin:0;overflow:hidden;}
.works-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#eee;transition:transform .5s ease;}
.works-grid figure:hover img{transform:scale(1.04);}
.donation-block{margin-top:clamp(40px,5vw,72px);}
.donation-block h3{font-weight:700;font-size:clamp(16px,1.5vw,19px);letter-spacing:.05em;margin:0 0 clamp(16px,2vw,26px);}
.don-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,22px);margin-bottom:clamp(20px,2.5vw,32px);}
.don-photos.two{grid-template-columns:repeat(2,1fr);max-width:66%;}
.don-photos .ph{aspect-ratio:3/2;overflow:hidden;}
.don-photos .ph img{width:100%;height:100%;object-fit:cover;display:block;}
.don-text{font-size:clamp(12.5px,1vw,14.5px);line-height:2;color:#3a342f;max-width:1080px;text-wrap:pretty;}

.saito-hero{margin-bottom:clamp(24px,3vw,40px);}
.saito-hero img{width:100%;height:auto;display:block;}
.saito-title{margin-top:clamp(24px,3vw,40px);}
.saito-address{margin-bottom:clamp(16px,2vw,24px);}
.saito-btn{margin-bottom:clamp(24px,3vw,40px);}
.saito-map{margin-bottom:clamp(32px,4vw,56px);}
.saito-map iframe{display:block;}
.saito-grid{grid-template-columns:repeat(4,1fr);width:100%;}
.saito-grid img{aspect-ratio:3/2;}

@media(max-width:760px){
  .works-grid{gap:12px;}
  .don-photos{grid-template-columns:1fr 1fr;}
  .don-photos.two{max-width:100%;}
  .saito-grid{grid-template-columns:1fr 1fr;}
}

/* ===========================================================
   EXHIBITION
   =========================================================== */
.exh-intro{max-width:1080px;margin-bottom:clamp(40px,5vw,68px);}
.exh-intro .lead-ttl{font-size:clamp(15px,1.4vw,18px);font-weight:500;letter-spacing:.04em;margin:0 0 14px;}
.exh-list{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px) clamp(18px,2.4vw,40px);}
.exh-list .item .logo-card{transition:border-color .25s;}
.exh-list .item:hover .logo-card{border-color:var(--periwinkle);}
.exh-list .item .date{font-family:var(--font-en);font-weight:600;font-size:13px;letter-spacing:.08em;color:#7a756f;margin-top:14px;}
.exh-list .item .ttl{font-size:clamp(13px,1.1vw,15px);margin-top:4px;}
.more-btn{margin-top:clamp(40px,5vw,72px);}
.exh-list-ttl{margin-top:clamp(40px,5vw,68px);/*text-align:center;*/}
.pdf-list{list-style:none;padding:0;margin:clamp(20px,2.5vw,32px) 0 0;/*width:fit-content;margin-inline:auto;*/}
.pdf-list li+li{margin-top:clamp(6px,.6vw,10px);}
.pdf-list li.pdf-list__gap{margin-top:clamp(20px,2.5vw,32px);}
.pdf-list a{font-size:clamp(13.5px,1.1vw,15.5px);color:var(--periwinkle);text-decoration:underline;text-underline-offset:3px;transition:color .2s;}
.pdf-list a:hover{color:var(--periwinkle-dk);}

@media(max-width:760px){.exh-list{grid-template-columns:1fr 1fr;gap:24px 16px;}}
@media(max-width:460px){.exh-list{grid-template-columns:1fr;}}

/* ===========================================================
   NEWS (single)
   =========================================================== */
.article{max-width:920px;margin-top:clamp(20px,3vw,50px);}
.article .date{font-family:var(--font-en);font-weight:600;font-size:14px;letter-spacing:.1em;color:#7a756f;}
.article h1{font-size:clamp(20px,2.4vw,30px);font-weight:700;letter-spacing:.03em;line-height:1.5;margin:10px 0 clamp(28px,3.5vw,44px);text-wrap:pretty;}
.article .hero-img{border:1px solid var(--ink);aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;margin-bottom:clamp(30px,4vw,52px);background:#fff;overflow:hidden;}
.article .hero-img img{width:80%;height:auto;display:block;}
.article .hero-img.has-thumb img{height:auto;width:100%;object-fit:cover;}
.article p{font-size:clamp(13.5px,1.05vw,15.5px);line-height:2.1;color:#2a2422;margin:0 0 1.4em;text-wrap:pretty;}
.back-row{margin-top:clamp(36px,5vw,60px);}

/* NEWS archive (旧) */
.news-archive-list{display:flex;flex-direction:column;padding-bottom:clamp(60px,8vw,120px);}
.news-archive-list .news-item{border-bottom:1px solid #e8e4e0;}
.news-archive-list .news-item:first-child{border-top:1px solid #e8e4e0;}

/* NEWS 一覧（イメージ左半分 / 本文右半分） */
.news-full-list{display:flex;flex-direction:column;padding-bottom:clamp(60px,8vw,120px);}
.news-full-item{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px);
  align-items:start;padding:clamp(30px,4vw,50px) 0;border-bottom:1px solid #e8e4e0;
}
.news-full-item:first-child{border-top:1px solid #e8e4e0;}
.news-full-img{
  border:1px solid var(--ink);aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;
  background:#fff;overflow:hidden;min-width:0;
}
.news-full-img img{width:80%;height:auto;display:block;}
.news-full-img.has-thumb img{width:100%;height:100%;object-fit:cover;}
.news-full-body{display:flex;flex-direction:column;min-width:0;}
.news-full-body .date{font-family:var(--font-en);font-weight:600;font-size:14px;letter-spacing:.1em;color:#7a756f;}
.news-full-body .ttl{
  font-size:clamp(18px,1.8vw,24px);font-weight:700;letter-spacing:.03em;line-height:1.5;
  margin:8px 0 clamp(14px,1.8vw,20px);text-wrap:pretty;transition:color .2s;
}
.news-full-item:hover .ttl{color:var(--periwinkle);}
.news-full-body .excerpt{
  font-size:clamp(13.5px,1.05vw,15.5px);line-height:2.1;color:#2a2422;text-wrap:pretty;
  overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:8;
}
@media(max-width:767px){
  .news-full-item{grid-template-columns:1fr;gap:18px;}
  .news-full-body .excerpt{-webkit-line-clamp:5;}
}

/* ===========================================================
   CONTACT
   =========================================================== */
.form-wrap{max-width:720px;margin:clamp(20px,4vw,60px) auto 0;}
.field{margin-bottom:clamp(22px,2.6vw,34px);}
.field label{display:block;font-weight:700;font-size:clamp(14px,1.2vw,16px);letter-spacing:.04em;margin-bottom:10px;}
.field label .req{color:var(--periwinkle);font-size:12px;margin-left:8px;font-weight:500;letter-spacing:.08em;}
.field input,.field textarea{
  width:100%;background:var(--field);border:none;color:var(--ink);
  font-family:inherit;font-size:15px;padding:14px 16px;line-height:1.7;
  transition:outline .15s;outline:2px solid transparent;outline-offset:-2px;
}
.field input{height:48px;}
.field textarea{min-height:260px;resize:vertical;}
.field input:focus,.field textarea:focus{outline-color:var(--periwinkle);}
.agree{display:flex;align-items:center;gap:12px;margin:clamp(20px,2.6vw,30px) 0 clamp(28px,3.4vw,44px);font-size:clamp(13px,1.1vw,15px);}
.agree input{width:20px;height:20px;accent-color:var(--periwinkle);flex:0 0 auto;}
.agree a{text-decoration:underline;text-underline-offset:3px;}
.submit-row{text-align:center;}
.form-done{
  text-align:center;padding:clamp(40px,6vw,72px) 20px;
  border:1px solid var(--periwinkle);
}
.form-done .big{font-family:var(--font-en);font-weight:800;font-size:clamp(28px,4vw,48px);color:var(--lavender);letter-spacing:.02em;}
.form-done .msg{margin-top:14px;font-size:15px;line-height:2;color:#3a342f;}
.form-notice{
  padding:14px 18px;margin-bottom:clamp(20px,3vw,36px);font-size:14px;
  border-left:3px solid var(--periwinkle);background:#f0f1f8;color:#2a2422;
}
.form-notice.error{border-left-color:#c0392b;background:#fdf0ee;}

/* ===========================================================
   PRIVACY
   =========================================================== */
.policy{max-width:1080px;margin-top:clamp(20px,3vw,40px);}
.policy .block{margin-bottom:clamp(34px,4vw,56px);}
.policy h2{font-weight:700;font-size:clamp(17px,1.8vw,23px);letter-spacing:.04em;margin:0 0 14px;}
.policy p{font-size:clamp(13px,1.05vw,15px);line-height:2.05;color:#2a2422;margin:0;text-wrap:pretty;}
.policy ul{margin:8px 0 0;padding:0;list-style:none;}
.policy li{font-size:clamp(13px,1.05vw,15px);line-height:1.95;color:#2a2422;padding-left:1.1em;position:relative;}
.policy li::before{content:"・";position:absolute;left:0;color:var(--periwinkle);}

/* ===========================================================
   404 / generic page
   =========================================================== */
.error404-body{padding:clamp(80px,12vw,160px) 0;text-align:center;}
.error404-body .code{font-family:var(--font-en);font-weight:900;font-size:clamp(80px,14vw,160px);color:var(--lavender);line-height:1;margin:0;}
.error404-body .msg{font-size:clamp(16px,1.6vw,20px);margin:24px 0 40px;color:#2a2422;}
.generic-page-body{padding:clamp(40px,6vw,90px) 0 clamp(60px,8vw,120px);}
.generic-page-body .entry-content{max-width:920px;margin-top:clamp(20px,3vw,40px);}
.entry-content p{font-size:clamp(14px,1.05vw,16px);line-height:2.1;color:#2a2422;margin:0 0 1.4em;}
.entry-content h2{font-size:clamp(18px,2vw,24px);font-weight:700;margin:1.8em 0 .7em;}
