/* =========================================================
   main.css  (Greenrich Corp)
   - Reset / Base
   - Header / Nav (Hamburger + Mobile panel)
   - Sections (Hero / News / Company / Hotels / Offices)
   - Page templates (Page Hero / Page Body / Posts / Single)
   - Components (Rule Heading / Card)
   - Utilities (Fade-in, Full-bleed fix, Responsive tweaks)
   ========================================================= */

/* ---------------- Fonts & CSS Vars ---------------------- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,400;500;600&display=swap');

:root{
  --gr-gap: clamp(12px, 2.2vw, 20px);
  --gr-radius: 14px;
  --gr-shadow: 0 6px 18px rgba(0,0,0,.06);
  --gr-header-h: 56px;
  --font-sans: "Inter", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-serif: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
}

/* ---------------- Reset / Base -------------------------- */
*,
*::before,
*::after{ box-sizing: border-box; }

html, body{
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 400;
  letter-spacing: .02em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-optical-sizing: auto;
  font-kerning: normal;
  font-variant-numeric: proportional-nums;
  overflow-x: clip;               /* 100vw丸め誤差の横スクロール抑止 */
}
@supports not (overflow: clip){
  html, body{ overflow-x: hidden; }
}

img, video{ max-width: 100%; height: auto; display: block; }
a{ color: inherit; }

/* layout helper */
.container{ max-width: 1200px; margin: 0 auto; padding: 0 var(--gr-gap); }

/* ---------------- Header & Navigation ------------------- */
.gr-header{
  position: sticky; top: 0; z-index: 100;
  background: #fff;
  transition: background-color .25s ease, box-shadow .25s ease, backdrop-filter .25s ease;
}
.gr-header.is-stuck{
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(160%) blur(8px);
  box-shadow: var(--gr-shadow);
}
.gr-header__inner{
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--gr-gap); padding: 10px 0;
}

/* brand */
.gr-brand__link{ display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.gr-brand__logo{ height: 36px; width: auto; display: block; }
.gr-brand__logo_footer{ width: clamp(140px, 40vw, 200px); height: auto; display: block; }

/* nav (desktop) */
.gr-nav{ position: relative; }
.gr-nav .menu{
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: 18px; align-items: center;
}
.gr-nav .menu > li > a{
  display: block;
  padding: 12px 10px;
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  font-size: 15px;
  letter-spacing: .04em;
  line-height: 1.2;
}
.gr-nav .menu > li > a:hover{ background: #f3f4f6; text-decoration: none; }

/* dropdown */
.gr-nav .menu li.menu-item-has-children{ position: relative; }
.gr-nav .menu li .sub-menu{
  position: absolute; left: 0; top: 100%;
  min-width: 220px; background: #fff;
  border: 1px solid #e5e7eb; border-radius: 12px; padding: 8px;
  box-shadow: 0 12px 28px rgba(0,0,0,.08);
  display: none; z-index: 10;
}
.gr-nav .menu li.menu-item-has-children:hover > .sub-menu,
.gr-nav .menu li.menu-item-has-children:focus-within > .sub-menu{ display: block; }
.gr-nav .menu li .sub-menu a{
  display: block; padding: 10px 12px; border-radius: 8px; color: #111; text-decoration: none;
  font-size: 14px; font-weight: 500; letter-spacing: .01em; line-height: 1.35;
}
.gr-nav .menu li .sub-menu a:hover{ background: #f3f4f6; }

/* Hamburger button */
.gr-nav-toggle{
  display: none;
  background: none; border: 0;
  width: 42px; height: 42px; padding: 0;
  align-items: center; justify-content: center;
  flex-direction: column; gap: 6px;           /* ← 縦に積む */
  border-radius: 10px;
}
.gr-nav-toggle:focus-visible{ outline: 2px solid #111; outline-offset: 2px; }
.gr-nav-toggle__bar{
  width: 24px; height: 2px; border-radius: 2px; background: #111;
  transition: transform .22s ease, opacity .22s ease;
}

/* 「×」に変形 */
.gr-nav-toggle[aria-expanded="true"] .gr-nav-toggle__bar:nth-child(1){
  transform: translateY(8px) rotate(45deg);
}
.gr-nav-toggle[aria-expanded="true"] .gr-nav-toggle__bar:nth-child(2){
  opacity: 0;
}
.gr-nav-toggle[aria-expanded="true"] .gr-nav-toggle__bar:nth-child(3){
  transform: translateY(-8px) rotate(-45deg);
}

/* Mobile nav panel */
@media (max-width: 960px){
  .gr-nav-toggle{ display: inline-flex; }

  .gr-nav{
    position: fixed; left: 0; right: 0; top: var(--gr-header-h);
    background: #fff; z-index: 99;
    height: calc(100dvh - var(--gr-header-h));
    overflow: auto;
    transform: translateY(-120%);
    transition: transform .22s ease;
    padding: 14px;
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
  }
  .gr-nav.is-open{ transform: translateY(0); }

  .gr-nav .menu{
    flex-direction: column; align-items: flex-start; gap: 6px;
  }
  .gr-nav .menu li .sub-menu{
    position: static; display: block; border: none; box-shadow: none; padding: 6px 0; margin-left: 20px;
  }
  .gr-nav .menu > li > a{ font-size: 16px; line-height: 1.35; }
  .gr-nav .menu li .sub-menu a{ font-size: 15px; }

  .gr-brand__logo {
    height: 25px;
    width: auto;
    display: block;
  }


}

/* ナビ開時は背面スクロール停止（JSで html に .is-nav-open を付与） */
html.is-nav-open{ overflow: hidden; }

/* ---------------- HERO (full-bleed) --------------------- */
.gr-hero{
  position: relative;
  width: 100vw; left: 50%; right: 50%;
  margin-left: -50vw; margin-right: -50vw;
  min-height: calc(100vh - var(--gr-header-h));
  display: grid; place-items: center;
  overflow: clip; isolation: isolate;
}
@supports not (overflow: clip){ .gr-hero{ overflow: hidden; } }
.gr-hero__img{
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center; transform: scale(1.02);
}
.gr-hero__overlay{ position: absolute; inset: 0; background: rgba(0,0,0,.45); }
.gr-hero__mark{ position: absolute; inset: 0; display: grid; place-items: center; z-index: 2; pointer-events: none; }
.gr-hero__mark-inner{ display: flex; flex-direction: column; align-items: center; gap: clamp(10px,2vw,16px); }
.gr-hero__svg{ width: clamp(200px, 30vw, 580px); height: auto; display: block; filter: drop-shadow(0 4px 22px rgba(0,0,0,.4)); }
.gr-hero__tagline{
  margin: 0; color: #fff;
  font-weight: 500; font-size: clamp(12px, 1.6vw, 18px); letter-spacing: .02em;
  text-shadow: 0 2px 12px rgba(0,0,0,.35); opacity: .95;
}

/* GR pop-in animation */
.gr-letter{ opacity: 0; transform: translateY(14px) scale(.94); filter: blur(8px); transform-origin: 50% 60%; will-change: transform, filter, opacity; }
.gr-hero__tagline{ opacity: 0; transform: translateY(8px); will-change: transform, opacity; }
.gr-hero.is-anim .gr-letter{ animation: gr-pop .9s cubic-bezier(.2,.8,.2,1) forwards; }
.gr-hero.is-anim .gr-r{ animation-delay: .12s; }
.gr-hero.is-anim .gr-hero__tagline{ animation: gr-fade .6s ease-out .28s forwards; }
.gr-hero__mark-inner{ position: relative; }
.gr-hero__mark-inner::after{
  content:""; position:absolute; inset:-6% -20%;
  background: linear-gradient(100deg, transparent 45%, rgba(255,255,255,.35) 50%, transparent 55%);
  transform: translateX(-120%); pointer-events:none; filter: blur(4px); opacity: 0;
}
.gr-hero.is-anim .gr-hero__mark-inner::after{ animation: gr-shine 1.1s ease-out .18s both; }
@keyframes gr-pop{ 0%{opacity:0; transform:translateY(14px) scale(.92); filter:blur(8px);} 60%{opacity:1; transform:translateY(0) scale(1.04); filter:blur(0);} 100%{opacity:1; transform:translateY(0) scale(1); filter:blur(0);} }
@keyframes gr-fade{ to{ opacity:1; transform:translateY(0); } }
@keyframes gr-shine{ 0%{opacity:0; transform:translateX(-120%);} 10%{opacity:.9;} 100%{opacity:0; transform:translateX(120%);} }

/* Motion reduction */
@media (prefers-reduced-motion: reduce){
  .gr-letter, .gr-hero__tagline, .gr-hero__mark-inner::after{
    animation: none !important; filter: none !important; transform: none !important; opacity: 1 !important;
  }
}

/* ---------------- News – text rail ---------------------- */
.section--news-rail{
  position: relative; background: #EAEAEA;
  width: 100vw; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw;
  padding: clamp(34px, 6vw, 64px) 0;
  overflow: clip;
}
@supports not (overflow: clip){ .section--news-rail{ overflow: hidden; } }

.news-rail{
  display: grid; grid-template-columns: minmax(120px, 18vw) 1fr;
  align-items: start; column-gap: clamp(20px, 6vw, 60px);
}
@media (max-width: 800px){ .news-rail{ grid-template-columns: 1fr; row-gap: 16px; } }

.news-rail__title{
  margin: 0; font-weight: 800; font-size: clamp(22px, 3vw, 40px); letter-spacing: .02em;
}

.news-lines{ list-style: none; padding: 0; margin: 0; display: grid; gap: clamp(10px, 2.2vw, 20px); }
.news-line{ border-bottom: 1px solid rgba(0,0,0,.08); }
.news-line:last-child{ border-bottom: none; }

.news-line__link{
  display: grid; grid-template-columns: 140px 1fr 28px;
  align-items: center; gap: clamp(10px, 2vw, 24px);
  padding: clamp(8px, 1.6vw, 14px) 0; color: inherit; text-decoration: none;
}
@media (max-width: 560px){ .news-line__link{ grid-template-columns: 110px 1fr 24px; } }
@media (max-width: 400px){ .news-line__link{ grid-template-columns: 90px 1fr 24px; } }

.news-line__link > *{ min-width: 0; }  /* はみ出し防止 */
.news-line__date{ font-size: clamp(13px, 1.6vw, 15px); color: #6B7280; letter-spacing: .02em; white-space: nowrap; }
.news-line__title{ font-size: clamp(15px, 2.2vw, 18px); line-height: 1.6; overflow-wrap: anywhere; word-break: break-word; }

/* circle arrow */
.news-line__arrow{
  position: relative; width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid rgba(0,0,0,.25); opacity: .6; transition: transform .2s ease, opacity .2s ease;
}
.news-line__arrow::before{ content: "→"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 14px; }
.news-line__link:hover .news-line__arrow{ transform: translateX(2px); opacity: .9; }

.news-more-rail{ margin: clamp(16px, 3vw, 28px) 0 0; text-align: right; }
.news-more-rail__link{
  position: relative; display: inline-flex; align-items: center; gap: 12px;
  color: #9CA3AF; text-decoration: none; font-weight: 700; letter-spacing: .08em;
}
.news-more-rail__link::after{
  content: ""; display: inline-block; width: clamp(40px, 10vw, 120px); height: 1px;
  background: currentColor; opacity: .6; transform: translateY(1px);
}
.news-more-rail__link:hover{ color: #6B7280; }

/* ---------------- COMPANY (video | menu) ---------------- */
.section--company{ padding: clamp(36px, 6vw, 72px) 0; background: #fff; }
.section--company .section__title{
  margin: 0; font-weight: 800; font-size: clamp(22px, 3vw, 40px); letter-spacing: .02em;
}

.company-grid{
  display: grid; grid-template-columns: 1.2fr 1fr;
  gap: clamp(16px, 3vw, 40px); align-items: stretch;
}
@media (max-width: 980px){ .company-grid{ grid-template-columns: 1fr; } }
.company-grid > *{ min-width: 0; }

.company-media{ display: flex; }
.embed-cover{
  flex: 1 1 auto; height: 100%; min-height: 260px;
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  background: #000;
}
.embed-cover iframe{ width: 100%; height: 100%; border: 0; }
@media (max-width: 980px){ .embed-cover{ height: auto; aspect-ratio: 16 / 9; } .embed-cover iframe{ height: 100%; } }

.company-nav{ height: 100%; display: flex; }
.company-menu{
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: clamp(10px, 1.8vw, 14px);
  width: 100%; height: 100%;
}
.company-menu > li{ flex: 1 1 0; display: flex; }
.company-link{
  flex: 1 1 auto; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: clamp(12px, 2vw, 16px) clamp(14px, 2.4vw, 18px);
  border: 1px solid #e5e7eb; border-radius: 14px; background: #fff; color: inherit; text-decoration: none;
  font-weight: 700; font-size: clamp(16px, 2vw, 18px); letter-spacing: .02em;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}
.company-link:hover{ border-color: #d1d5db; transform: translateY(-1px); box-shadow: 0 10px 24px rgba(0,0,0,.06); }
.company-link__arrow{
  width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid rgba(0,0,0,.25); opacity: .7; flex: 0 0 auto; position: relative;
  transition: transform .2s ease, opacity .2s ease;
}
.company-link__arrow::before{ content: "→"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 14px; }
.company-link:hover .company-link__arrow{ transform: translateX(2px); opacity: .95; }

/* 1カラム化時の自然な高さ */
@media (max-width: 980px){
  .company-nav{ height: auto; }
  .company-menu{ height: auto; }
  .company-menu > li{ flex: initial; }
  .company-link{ min-height: 54px; }
}

/* ---------------- HOTELS (grid) ------------------------- */
.section--hotels{ padding: clamp(34px, 6vw, 64px) 0; background: #fff; }
.hotels__header{ display: flex; align-items: center; gap: clamp(10px,2vw,18px); margin-bottom: clamp(16px,3vw,28px); }
.section--hotels .section__title{
  margin: 0; font-weight: 800; font-size: clamp(22px, 3vw, 40px); letter-spacing: .02em;
}
.hotels__rule{ flex: 1 1 auto; height: 2px; background: #111; opacity: .18; }

/* PC=5, Tab=3, SP=2 */
.nh-grid{
  display: grid; grid-template-columns: repeat(5, minmax(0,1fr));
  gap: clamp(14px, 2vw, 24px);
}
@media (max-width: 1024px){ .nh-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 600px){ .nh-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }

.nh-card a{ display: block; color: inherit; text-decoration: none; }
.nh-card img{
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  transition: transform .35s ease;
}
.nh-card h3{
  margin: clamp(8px,1.4vw,12px) 0 0;
  font-size: clamp(12px,1vw,13px);
  font-weight: 100; text-align: center; line-height: 1.4;
  overflow-wrap: anywhere; word-break: break-word;
}
.nh-card a:hover img{ transform: scale(1.02); }

/* Hotels stagger-in */
.nh-card{
  opacity: 0; transform: translateY(16px);
  transition: opacity .7s ease, transform .7s ease;
  transition-delay: var(--stagger, 0ms);
  will-change: opacity, transform;
}
.nh-card.is-inview{ opacity: 1; transform: none; }

/* ---------------- Offices (address | map) --------------- */
.section--offices{
  position: relative; background: #EAEAEA;
  width: 100vw; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw;
  padding: clamp(34px, 6vw, 64px) 0; overflow: clip;
}
@supports not (overflow: clip){ .section--offices{ overflow: hidden; } }
.section--offices .section__header{ margin-bottom: clamp(16px, 3vw, 28px); }
.section--offices .section__title{
  margin: 0; font-weight: 800; font-size: clamp(22px, 3vw, 40px); letter-spacing: .02em;
}

.offices{ display: grid; gap: clamp(24px, 4vw, 40px); }
.office{
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: clamp(16px, 3vw, 40px); align-items: stretch;
}
.office > *{ min-width: 0; }
@media (max-width: 980px){ .office{ grid-template-columns: 1fr; } }

.office__info{
  padding-right: clamp(10px, 2vw, 14px);
  border-right: 2px solid rgba(0,0,0,.15);
}
@media (max-width: 980px){ .office__info{ border-right: none; padding-right: 0; } }

.office__jp{ margin: 0 0 .4em; font-size: 16px; color: #111; }
.office__addr{ margin: 0; line-height: 1.8; font-style: normal; font-size: 15px; }
.office__maplink{ margin: .6em 0 0; }
.office__maplink a{
  color: #6B7280; text-decoration: none; font-weight: 700; letter-spacing: .06em;
  display: inline-flex; align-items: center; gap: 8px;
}
.office__maplink a:hover{ color: #4B5563; }
.office__maplink .arrow{ opacity: .8; }

.office__map{ display: flex; }
.map-embed{
  flex: 1 1 auto; height: 100%; min-height: 260px;
  border-radius: 14px; overflow: hidden;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  background: #ddd;
}
.map-embed iframe{ width: 100%; height: 100%; border: 0; }
@media (max-width: 980px){ .map-embed{ height: auto; aspect-ratio: 16 / 9; } }

/* Footer links under MAP */
.footer-links{ margin-top: clamp(14px, 3vw, 22px); }
.footer-links__menu{
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 8px 10px;
}
.footer-links__menu > li{ min-width: 0; }
.footer-links__menu > li > a{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 12px; background: #fafafa;
  border: 1px solid #e5e7eb; border-radius: 999px;
  color: inherit; text-decoration: none; font-weight: 700; font-size: 13px; letter-spacing: .02em;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
  transition: transform .15s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
  white-space: normal; word-break: break-word;
}
.footer-links__menu > li > a::after{ content: "↗"; font-size: .92em; opacity: .6; transform: translateY(-.5px); }
.footer-links__menu > li > a:hover{ transform: translateY(-1px); border-color: #d1d5db; box-shadow: 0 10px 24px rgba(0,0,0,.08); }

/* ---------------- Page – Hero --------------------------- */
.gr-page-hero{
  position: relative;
  width: 100vw; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw;
  min-height: clamp(240px, 36vh, 420px);
  display: grid; place-items: end center; overflow: clip; isolation: isolate;
  background: linear-gradient(180deg, #e5e7eb 0%, #f3f4f6 100%);
}
@supports not (overflow: clip){ .gr-page-hero{ overflow: hidden; } }
.gr-page-hero__img{
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center; transform: scale(1.02); filter: saturate(110%);
}
.gr-page-hero__overlay{
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.45) 100%);
}
.gr-page-hero__inner{
  position: relative; z-index: 1; width: 100%;
  padding: clamp(18px, 3vw, 28px) 0; color: #fff; text-shadow: 0 2px 14px rgba(0,0,0,.32);
}
.gr-page-title{
  margin: .2em 0 0; font-weight: 800; font-size: clamp(28px, 5.2vw, 40px); letter-spacing: .01em; line-height: 1.15;
}

/* ---------------- Page – Body / Typography -------------- */
.gr-page{ padding: clamp(26px, 5vw, 44px) 0; }
.gr-page-content{
  max-width: 920px; margin: 0 auto;
  font-size: clamp(15px, 1.7vw, 17px); line-height: 1.9; color: #111;
}
.gr-page-content > * + *{ margin-top: 1.1em; }
.gr-page-content h2{ margin: 1.8em 0 .6em; font-size: clamp(22px, 2.6vw, 28px); font-weight: 800; letter-spacing: .01em; }
.gr-page-content h3{ margin: 1.6em 0 .5em; font-size: clamp(18px, 2.2vw, 22px); font-weight: 700; }
.gr-page-content h4{ margin: 1.4em 0 .4em; font-weight: 700; }
.gr-page-content p{ margin: 0; }
.gr-page-content a{ color: #2563eb; }
.gr-page-content a:hover{ text-decoration: underline; }
.gr-page-content ul, .gr-page-content ol{ padding-left: 1.2em; }
.gr-page-content blockquote{
  margin: 1.6em 0; padding: .8em 1em;
  border-left: 4px solid #e5e7eb; background: #fafafa; border-radius: 8px;
}
.gr-page-content img, .gr-page-content video{
  border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.06);
}

/* Gutenberg wide/full */
.gr-page-content .alignwide{ width: min(1100px, 100%); margin-inline: auto; }
.gr-page-content .alignfull{ width: 100vw; margin-left: 50%; transform: translateX(-50%); }

/* ---------------- News Archive (index) ------------------ */
.section--news-archive{ padding: clamp(34px,6vw,64px) 0; background:#fff; }

.news-index{
  list-style:none; padding:0; margin:0;
  display:grid; gap: clamp(10px, 2vw, 16px);
}
.news-index__item{ border-bottom:1px solid rgba(0,0,0,.08); }
.news-index__item:last-child{ border-bottom:none; }

.news-index__link{
  display:grid;
  grid-template-columns: clamp(120px, 14vw, 160px) 1fr 28px;
  align-items:center; gap: clamp(10px, 2vw, 20px);
  padding: clamp(10px, 2vw, 14px) 0; color:inherit; text-decoration:none;
}
@media (max-width: 560px){
  .news-index__link{ grid-template-columns: 110px 1fr 24px; }
}

.news-index__media{
  display:grid; grid-template-rows: auto 1fr; align-items:start; gap: 8px;
}
.news-index__date{ font-size: 13px; color:#6B7280; letter-spacing:.02em; white-space:nowrap; }
.news-index__thumb{
  position:relative; overflow:hidden; width:100%; aspect-ratio: 4 / 3;
  border-radius: 10px; background:#eee; box-shadow: 0 4px 14px rgba(0,0,0,.05);
}
.news-index__img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center; transition: transform .3s ease;
}
.news-index__ph{ position:absolute; inset:0; background: linear-gradient(165deg,#eee,#fafafa); }

.news-index__title{ margin:0; font-size: clamp(16px, 2.2vw, 18px); line-height:1.6; font-weight:700; }
.news-index__arrow{
  position:relative; width:28px; height:28px; border-radius:50%;
  border:1px solid rgba(0,0,0,.25); opacity:.6; transition: transform .2s ease, opacity .2s ease;
}
.news-index__arrow::before{ content:"→"; position:absolute; inset:0; display:grid; place-items:center; font-size:14px; }
.news-index__link:hover .news-index__img{ transform: scale(1.02); }
.news-index__link:hover .news-index__arrow{ transform: translateX(2px); opacity:.9; }

/* Pager (common) */
.pager{ margin-top: clamp(18px,3vw,28px); text-align:center; }
.pager .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; margin:0 4px; border-radius:10px;
  border:1px solid #e5e7eb; background:#fff; color:#111;
  font-weight:700; font-size:14px; text-decoration:none;
}
.pager .page-numbers.current{ background:#111; color:#fff; border-color:#111; }
.pager .page-numbers:hover{ box-shadow:0 6px 18px rgba(0,0,0,.06); transform:translateY(-1px); }

/* ---------------- Posts index – Card grid --------------- */
.post-cards{
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr));
  gap: clamp(18px, 3vw, 28px);
}
@media (max-width: 780px){ .post-cards{ grid-template-columns: 1fr; } }

.post-card{ display: grid; grid-template-rows: auto 1fr; gap: clamp(10px, 1.6vw, 14px); }
.post-card__media{
  position: relative; display:block; overflow:hidden;
  border-radius: 22px; background:#ddd; box-shadow: 0 10px 26px rgba(0,0,0,.10);
}
.post-card__img, .post-card__ph{
  display:block; width:100%; height:auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: center;
}
.post-card__ph{ background: linear-gradient(165deg,#eee,#fafafa); }
.post-card__media:hover .post-card__img{ transform: scale(1.02); transition: transform .4s ease; }
.post-card__body{ display: grid; grid-template-rows: auto auto 1fr; align-items: start; }
.post-card__date{ font-size: 13px; letter-spacing: .02em; color:#6B7280; margin-bottom: .35em; }
.post-card__title{ margin: 0; font-size: clamp(16px, 2.2vw, 20px); line-height: 1.5; font-weight: 800; }
.post-card__title a{ color: inherit; text-decoration: none; }
.post-card__title a:hover{ text-decoration: underline; }
.post-card__more{ margin: .6em 0 0; display: flex; justify-content: flex-end; }
.post-card__moreLink{
  display:inline-flex; align-items:center; gap:8px; color:#6B7280; text-decoration:none; font-weight:700; letter-spacing:.06em;
}
.post-card__moreLink:hover{ color:#4B5563; }

/* ---------------- Single Post --------------------------- */
.section--single{ padding: clamp(34px, 6vw, 64px) 0; background: #fff; }
.gr-single{ max-width: 860px; margin: 0 auto; }
.gr-single__header{ margin-bottom: clamp(10px, 2vw, 16px); text-align: center; margin-top: 50px; }
.gr-single__title{ margin: 0 0 .2em; font-weight: 800; font-size: clamp(24px, 5vw, 40px); letter-spacing: .01em; line-height: 1.2; }
.gr-single__date{ display: block; font-size: 13px; color: #6B7280; letter-spacing: .02em; }
.gr-single__thumb{
  margin: clamp(12px, 2vw, 18px) 0 clamp(18px, 3vw, 28px);
  border-radius: 22px; overflow: hidden; background: #ddd; box-shadow: 0 10px 26px rgba(0,0,0,.10);
}
.gr-single__img{
  display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center;
}
.gr-single__cap{ padding: 8px 12px; font-size: 12px; color: #6B7280; background: #f8f8f8; }
.gr-single__content{ font-size: clamp(15px, 1.7vw, 17px); line-height: 1.9; color: #111; }
.gr-single__content > * + *{ margin-top: 1.1em; }
.gr-single__content h2{ margin: 1.8em 0 .6em; font-size: clamp(22px, 2.6vw, 28px); font-weight: 800; }
.gr-single__content h3{ margin: 1.6em 0 .5em; font-size: clamp(18px, 2.2vw, 22px); font-weight: 700; }
.gr-single__content img, .gr-single__content video{ border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.gr-single__content a{ color: #2563EB; }
.gr-single__content a:hover{ text-decoration: underline; }
.gr-page-pager{ margin-top: 1.4em; }
.gr-page-pager span{ display:inline-block; margin-right:4px; }

.post-nav{
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  margin-top: clamp(22px, 3vw, 32px); padding-top: 14px; border-top: 1px solid rgba(0,0,0,.08);
}
.post-nav a{ display:inline-block; color: #6B7280; text-decoration: none; font-weight: 700; letter-spacing: .04em; }
.post-nav a:hover{ color: #4B5563; }
.post-nav__prev{ text-align: left; }
.post-nav__next{ text-align: right; }

/* ---------------- Rule Heading -------------------------- */
.gr-ruleHeading{
  margin: clamp(14px,2.6vw,22px) 0;
  display:flex; align-items:center; gap:clamp(10px,2vw,14px); flex-wrap:wrap;
  font-weight:800; letter-spacing:.02em; font-size: clamp(22px,3vw,40px);
}
.gr-ruleHeading::after{
  content:""; flex:1 1 160px; height:2px; background:#111; opacity:.18; border-radius:2px;
}
.gr-ruleHeading--md{ font-size: clamp(18px,2.6vw,28px); }
.gr-ruleHeading--sm{ font-size: clamp(16px,2.2vw,20px); }
.is-on-dark .gr-ruleHeading{ color:#fff; }
.is-on-dark .gr-ruleHeading::after{ background:#fff; opacity:.25; }

/* ---------------- Card base ----------------------------- */
.gr-card{
  position: relative; border-radius: 18px; background: #fff;
  box-shadow: 0 10px 26px rgba(0,0,0,.10);
  overflow: hidden; display: flex; flex-direction: column;
}
.gr-card .wp-block-cover{ min-height: 420px; border-radius: inherit; }
.gr-card .wp-block-cover__image-background{ object-fit: cover; object-position: center; }
.gr-card .wp-block-cover__inner-container{
  width: 100%; padding: clamp(16px, 3vw, 24px);
  display: grid; justify-items: center; gap: 6px;
}
.gr-card__eyebrow{
  margin: 0; color: #fff; font-weight: 800; letter-spacing: .08em;
  font-size: clamp(12px, 1.6vw, 14px); text-transform: uppercase; text-shadow: 0 2px 8px rgba(0,0,0,.35);
}
.gr-card__headline{
  margin: .1em 0 0; color: #fff; font-weight: 900; letter-spacing: .02em; line-height: 1;
  font-size: clamp(28px, 7vw, 56px); text-shadow: 0 4px 16px rgba(0,0,0,.45);
}
.gr-card__spec{ margin: 10px 16px 6px; color: #6b7280; font-size: 14px; letter-spacing: .02em; }
.gr-card__price{ margin: 0 16px 16px; font-weight: 800; letter-spacing: .02em; }
.gr-card__link{ position: absolute; inset: 0; z-index: 2; text-indent: -9999px; overflow: hidden; }
.gr-card:hover{ transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0,0,0,.12); transition: .25s ease; }

/* ---------------- Fade-in utility ----------------------- */
.js-fade-in{
  opacity: 0; transform: translateY(22px);
  transition: opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1);
  will-change: opacity, transform;
}
.js-fade-in.is-inview{ opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce){
  .js-fade-in{ opacity: 1 !important; transform: none !important; }
}

@media (max-width: 780px){ 

  .site-info{
    font-size: 0.5em;
    text-align: center;
  }

.gr-page-hero__inner {
    margin-left: 10px;
}

.gr-brand__logo_footer
 {
    width: 90%;
  }
}



