/*
Theme Name:  anykey
Theme URI:   https://anykey.jp
Author:      anykey
Description: 1-page corporate LP — "The key that opens any door."
Version:     1.0.0
License:     All Rights Reserved
Text Domain: anykey
*/

/* =====================================================
   CSS CUSTOM PROPERTIES
===================================================== */
:root {
  --ak-black:         #000000;
  --ak-white:         #FFFFFF;
  --ak-off-black:     #1A1A1A;
  --ak-off-white:     #F5F5F5;
  --ak-bg-sub:        #FAFAF8;
  --ak-text-sub:      #999999;
  --ak-text-tertiary: #BBBBBB;
  --ak-red:           #CC0000;
  --ak-border-light:  #F0F0F0;
  --ak-border-dark:   #1A1A1A;

  --ak-font-en: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --ak-font-ja: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;

  --ak-ease: cubic-bezier(0.16, 1, 0.3, 1);

  --ak-section-pad: 120px;
  --ak-gutter:       48px;
  --ak-max-w:      1200px;
}

/* =====================================================
   BASE
===================================================== */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* WP admin bar adjustment */
body.admin-bar .anykey-nav {
  top: 32px;
}

/* Remove WP default margin on body and page */
.wp-site-blocks {
  padding: 0 !important;
}

/* =====================================================
   NAVIGATION
===================================================== */
.anykey-nav {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  padding: 28px var(--ak-gutter) !important;
  transition: background 0.5s var(--ak-ease), border-color 0.5s var(--ak-ease);
  border-bottom: 1px solid transparent;
}

.anykey-nav.on-hero {
  background: transparent !important;
  border-bottom-color: transparent;
}

.anykey-nav.on-body {
  background: rgba(255, 255, 255, 0.94) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom-color: var(--ak-border-light);
}

/* Logo text (always red) */
.anykey-nav-logo {
  margin: 0 !important;
  line-height: 1 !important;
}

.anykey-nav-logo a,
.anykey-nav-logo a:hover {
  font-family: var(--ak-font-en) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.2em !important;
  color: var(--ak-red) !important;
  text-decoration: none !important;
  transition: opacity 0.3s;
}

.anykey-nav-logo a:hover {
  opacity: 0.6;
}

/* Nav links wrapper */
.anykey-nav-links {
  gap: 40px !important;
}

.anykey-nav-link {
  margin: 0 !important;
  line-height: 1 !important;
}

.anykey-nav-link a {
  font-family: var(--ak-font-en) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: color 0.4s var(--ak-ease), opacity 0.3s;
}

.anykey-nav.on-hero .anykey-nav-link a {
  color: var(--ak-off-white) !important;
}

.anykey-nav.on-body .anykey-nav-link a {
  color: var(--ak-off-black) !important;
}

.anykey-nav-link a:hover {
  opacity: 0.4;
}

/* Hamburger */
.anykey-hamburger {
  display: none;
  flex-direction: column;
  gap: 6px;
  background: none !important;
  border: none !important;
  cursor: pointer;
  padding: 4px !important;
  margin: 0 !important;
}

.anykey-hamburger span {
  display: block;
  width: 22px;
  height: 1px;
  transition: background 0.4s;
}

.anykey-nav.on-hero .anykey-hamburger span {
  background: var(--ak-off-white);
}

.anykey-nav.on-body .anykey-hamburger span {
  background: var(--ak-off-black);
}

/* =====================================================
   MOBILE MENU OVERLAY
===================================================== */
.anykey-mobile-menu {
  position: fixed;
  inset: 0;
  background: var(--ak-white);
  z-index: 300;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 36px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s var(--ak-ease);
}

.anykey-mobile-menu.open {
  opacity: 1;
  pointer-events: all;
}

.anykey-mobile-menu-close {
  position: absolute;
  top: 28px;
  right: var(--ak-gutter);
  background: none !important;
  border: none !important;
  cursor: pointer;
  font-size: 18px !important;
  color: var(--ak-text-sub) !important;
  font-family: var(--ak-font-en) !important;
  padding: 8px !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.anykey-mobile-menu a {
  font-family: var(--ak-font-en) !important;
  font-size: 26px !important;
  font-weight: 300 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ak-off-black) !important;
  text-decoration: none !important;
}

/* =====================================================
   HERO SECTION
===================================================== */
.anykey-hero {
  background: var(--ak-black) !important;
  min-height: 100vh !important;
  min-height: 100svh !important; /* モバイルブラウザのUIを除いた正確な高さ */
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Cover inner container: fill full height, center content */
.anykey-hero .wp-block-cover__inner-container {
  min-height: 100vh !important;
  min-height: 100svh !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding-top: 80px !important;
  padding-bottom: 120px !important;
  position: relative !important;
  width: 100% !important;
}

/* Grain overlay */
.anykey-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  opacity: 1;
  pointer-events: none;
  z-index: 0;
}

.anykey-hero > .wp-block-cover__inner-container,
.anykey-hero-inner-wrap {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center;
}

/* Logo */
.anykey-hero-logo {
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-bottom: 56px !important;
}

.anykey-hero-logo figure.wp-block-image {
  display: flex !important;
  justify-content: center !important;
  margin: 0 auto !important;
  text-align: center !important;
}

.anykey-hero-logo img,
.anykey-hero-logo .wp-site-logo {
  max-height: 120px !important;
  width: auto !important;
  display: block !important;
  margin: 0 auto !important;
}

/* Hero copy lines */
.anykey-hero-copy {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0 !important;
  margin-bottom: 0 !important;
}

.anykey-copy-line {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(3.25rem, 5.5vw, 5rem) !important;
  font-weight: 300 !important;
  letter-spacing: 0.04em !important;
  line-height: 1.15 !important;
  margin: 0 !important;
  opacity: 0;
  transform: translateY(22px);
  animation: ak-fade-up 0.9s var(--ak-ease) forwards;
}

.anykey-copy-line-1 {
  color: var(--ak-off-white) !important;
  animation-delay: 0.35s;
}

.anykey-copy-line-2 {
  color: var(--ak-red) !important;
  animation-delay: 0.55s;
}

.anykey-hero-sub {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(0.8125rem, 1.5vw, 1.0625rem) !important;
  font-weight: 300 !important;
  letter-spacing: 0.1em !important;
  color: var(--ak-text-sub) !important;
  margin-top: 24px !important;
  margin-bottom: 0 !important;
  opacity: 0;
  transform: translateY(20px);
  animation: ak-fade-up 0.9s var(--ak-ease) 0.75s forwards;
}

/* Scroll cue — pinned to bottom of hero */
.anykey-scroll-cue {
  position: absolute !important;
  bottom: 48px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 14px !important;
  opacity: 0;
  animation: ak-fade-up 0.9s var(--ak-ease) 1.3s forwards;
  z-index: 2;
  /* Ensure it doesn't participate in flex flow */
  margin-top: 0 !important;
  width: auto !important;
}

.anykey-scroll-line {
  width: 1px;
  height: 56px;
  background: var(--ak-red);
  margin: 0 auto !important;
  transform-origin: top center;
  animation: ak-scroll-grow 2.4s ease-in-out infinite;
}

.anykey-scroll-label {
  font-family: var(--ak-font-en) !important;
  font-size: 9px !important;
  font-weight: 300 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--ak-text-sub) !important;
  margin: 0 !important;
  line-height: 1 !important;
}

/* =====================================================
   KEYFRAME ANIMATIONS
===================================================== */
@keyframes ak-fade-up {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes ak-scroll-grow {
  0%   { transform: scaleY(0); opacity: 0; }
  25%  { opacity: 1; }
  75%  { transform: scaleY(1); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0; }
}

/* IntersectionObserver fade-in */
.ak-fade {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.8s var(--ak-ease), transform 0.8s var(--ak-ease);
}

.ak-fade.visible {
  opacity: 1;
  transform: translateY(0);
}

.ak-d1 { transition-delay: 0.10s; }
.ak-d2 { transition-delay: 0.20s; }
.ak-d3 { transition-delay: 0.30s; }
.ak-d4 { transition-delay: 0.40s; }
.ak-d5 { transition-delay: 0.50s; }

/* =====================================================
   SECTION COMMON
===================================================== */
.anykey-section {
  padding-top: var(--ak-section-pad) !important;
  padding-bottom: var(--ak-section-pad) !important;
}

.anykey-section-inner {
  max-width: var(--ak-max-w);
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--ak-gutter) !important;
  padding-right: var(--ak-gutter) !important;
}

/* Section label: ▪ HEADING / — sub */
.anykey-section-label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 16px !important;
  margin-bottom: 80px !important;
}

.anykey-label-dot {
  width: 6px;
  height: 6px;
  background: var(--ak-red);
  flex-shrink: 0;
  margin-top: 14px;
  display: block;
}

.anykey-heading-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.anykey-section-title {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(2.25rem, 4.5vw, 3.25rem) !important;
  font-weight: 300 !important;
  letter-spacing: 0.06em !important;
  color: var(--ak-off-black) !important;
  line-height: 1.1 !important;
  margin: 0 !important;
}

.anykey-section-sub {
  font-family: var(--ak-font-en) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  letter-spacing: 0.1em !important;
  color: var(--ak-text-sub) !important;
  margin: 0 !important;
  line-height: 1 !important;
}

/* =====================================================
   CONCEPT SECTION
===================================================== */
.anykey-concept {
  background: var(--ak-white) !important;
}

.anykey-concept-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

.anykey-concept .anykey-section-label {
  justify-content: center !important;
  align-self: center;
}

.anykey-concept .anykey-section-title,
.anykey-concept .anykey-section-sub {
  text-align: center !important;
}

.anykey-poem {
  max-width: 660px;
  width: 100%;
  text-align: center !important;
}

/* Force centre-align on all poem text */
.anykey-poem p,
.anykey-poem .wp-block-paragraph,
.anykey-poem .wp-block-heading,
.anykey-concept-brand,
.anykey-concept-closing {
  text-align: center !important;
}

.anykey-stanza {
  margin-bottom: 52px !important;
}

.anykey-stanza:last-of-type {
  margin-bottom: 0 !important;
}

.concept-line {
  font-family: var(--ak-font-ja) !important;
  font-size: clamp(1.0625rem, 2.2vw, 1.4375rem) !important;
  font-weight: 300 !important;
  line-height: 2.1 !important;
  letter-spacing: 0.06em !important;
  color: var(--ak-off-black) !important;
  margin: 0 !important;
}

.concept-line.muted {
  color: var(--ak-text-sub) !important;
}

.anykey-concept-brand {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(2.375rem, 5.5vw, 3.75rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  color: var(--ak-red) !important;
  margin: 52px 0 !important;
  display: block;
  line-height: 1;
}

.anykey-concept-closing {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(0.8125rem, 1.4vw, 1rem) !important;
  font-weight: 300 !important;
  letter-spacing: 0.12em !important;
  color: var(--ak-text-sub) !important;
  margin: 0 !important;
}

/* =====================================================
   SERVICES SECTION
===================================================== */
.anykey-services {
  background: var(--ak-white) !important;
}

.anykey-services-list {
  max-width: 740px;
}

.anykey-service-item {
  display: grid !important;
  grid-template-columns: 64px 1fr !important;
  gap: 0 40px !important;
  padding-bottom: 120px !important;
}

.anykey-service-item:last-child {
  padding-bottom: 0 !important;
}

.service-num {
  font-family: var(--ak-font-en) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  color: var(--ak-red) !important;
  padding-top: 7px;
  margin: 0 !important;
}

.service-title-en {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(1.25rem, 2.6vw, 1.8125rem) !important;
  font-weight: 300 !important;
  letter-spacing: 0.03em !important;
  color: var(--ak-off-black) !important;
  margin: 0 0 6px !important;
  line-height: 1.3 !important;
}

.service-title-ja {
  font-family: var(--ak-font-ja) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.06em !important;
  color: var(--ak-text-sub) !important;
  margin: 0 0 20px !important;
}

.service-desc {
  font-family: var(--ak-font-ja) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 1.95 !important;
  color: var(--ak-off-black) !important;
  margin: 0 !important;
}

/* =====================================================
   MEDIA SECTION
===================================================== */
.anykey-media {
  background: var(--ak-white) !important;
}

.anykey-media-subcopy {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(1rem, 2vw, 1.375rem) !important;
  font-weight: 300 !important;
  line-height: 1.65 !important;
  color: var(--ak-text-sub) !important;
  max-width: 480px;
  margin-bottom: 72px !important;
}

.anykey-media-cards {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 32px !important;
  margin-bottom: 64px !important;
  max-width: 1100px;
}

.anykey-media-card {
  background: var(--ak-bg-sub) !important;
  border-left: 2px solid var(--ak-red) !important;
  padding: 52px 52px 52px 50px !important;
  margin-bottom: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}

.media-card-tag {
  font-family: var(--ak-font-en) !important;
  font-size: 9px !important;
  font-weight: 400 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--ak-red) !important;
  margin: 0 0 24px !important;
}

.media-card-name {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(1.5rem, 3.2vw, 2.375rem) !important;
  font-weight: 300 !important;
  letter-spacing: 0.06em !important;
  color: var(--ak-off-black) !important;
  margin: 0 0 18px !important;
  line-height: 1.2 !important;
}

.media-card-desc {
  font-family: var(--ak-font-ja) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 1.95 !important;
  color: var(--ak-off-black) !important;
  margin: 0 0 36px !important;
}

.media-card-link {
  font-family: var(--ak-font-en) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
  color: var(--ak-red) !important;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  position: relative;
  margin: 0 !important;
}

.media-card-link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--ak-red);
  transition: width 0.35s var(--ak-ease);
}

.media-card-link:hover::after {
  width: 100%;
}

.anykey-media-others {
  font-family: var(--ak-font-ja) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  color: var(--ak-text-tertiary) !important;
  letter-spacing: 0.04em !important;
  margin: 0 !important;
}

/* =====================================================
   COMPANY SECTION
===================================================== */
.anykey-company {
  background: var(--ak-white) !important;
}

.anykey-company-table {
  max-width: 640px;
}

.anykey-co-row {
  display: grid !important;
  grid-template-columns: 168px 1fr !important;
  gap: 0 32px !important;
  padding: 26px 0 !important;
  border-top: 1px solid var(--ak-border-light) !important;
}

.anykey-co-row:last-child {
  border-bottom: 1px solid var(--ak-border-light) !important;
}

.co-label {
  font-family: var(--ak-font-en) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--ak-text-sub) !important;
  padding-top: 3px;
  margin: 0 !important;
  line-height: 1.5 !important;
}

.co-value {
  font-family: var(--ak-font-ja) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: var(--ak-off-black) !important;
  line-height: 1.7 !important;
  margin: 0 !important;
}

.co-value.tbd {
  color: var(--ak-text-tertiary) !important;
}

.co-note {
  display: block;
  font-size: 12px !important;
  color: var(--ak-text-sub) !important;
  margin-top: 6px;
  line-height: 1.7;
}

.co-name-en {
  font-family: var(--ak-font-en) !important;
  font-size: 13px !important;
  color: var(--ak-text-sub) !important;
  letter-spacing: 0.05em;
}

/* =====================================================
   CONTACT SECTION
===================================================== */
.anykey-contact {
  background: var(--ak-white) !important;
}

.anykey-contact-subcopy {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(0.875rem, 1.8vw, 1.125rem) !important;
  font-weight: 300 !important;
  line-height: 1.85 !important;
  color: var(--ak-text-sub) !important;
  max-width: 480px;
  margin-bottom: 72px !important;
}

/* Contact Form 7 custom styling */
.anykey-contact .wpcf7-form,
.anykey-contact-form-wrap {
  max-width: 560px;
}

.anykey-contact .wpcf7-form p {
  margin-bottom: 44px !important;
}

.anykey-contact label,
.anykey-form-label {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-family: var(--ak-font-en) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ak-text-sub) !important;
  margin-bottom: 14px !important;
  display: block;
}

.anykey-contact .wpcf7-form input[type="text"],
.anykey-contact .wpcf7-form input[type="email"],
.anykey-contact .wpcf7-form textarea,
.anykey-form-input,
.anykey-form-textarea {
  width: 100% !important;
  background: none !important;
  border: none !important;
  border-bottom: 1px solid var(--ak-border-light) !important;
  border-radius: 0 !important;
  padding: 12px 0 !important;
  font-family: var(--ak-font-ja) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: var(--ak-off-black) !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.3s;
  -webkit-appearance: none;
}

.anykey-contact .wpcf7-form input:focus,
.anykey-contact .wpcf7-form textarea:focus {
  border-bottom-color: var(--ak-off-black) !important;
}

.anykey-contact .wpcf7-form textarea {
  height: 128px !important;
  resize: none !important;
}

.anykey-contact .wpcf7-form input[type="submit"],
.anykey-contact .wpcf7-submit,
.anykey-form-submit {
  display: inline-flex !important;
  align-items: center !important;
  gap: 18px !important;
  margin-top: 48px !important;
  padding: 17px 44px !important;
  background: var(--ak-red) !important;
  color: var(--ak-white) !important;
  font-family: var(--ak-font-en) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition: opacity 0.3s !important;
  -webkit-appearance: none !important;
}

.anykey-contact .wpcf7-form input[type="submit"]:hover,
.anykey-form-submit:hover {
  opacity: 0.82 !important;
}

/* CF7 validation messages */
.anykey-contact .wpcf7-not-valid-tip {
  font-family: var(--ak-font-ja) !important;
  font-size: 12px !important;
  color: var(--ak-red) !important;
}

.anykey-contact .wpcf7-response-output {
  font-family: var(--ak-font-ja) !important;
  font-size: 13px !important;
  border: none !important;
  padding: 0 !important;
  margin-top: 24px !important;
}

/* ── CF7 送信完了メッセージ ─────────────────────────────────── */
.anykey-contact .wpcf7-form.sent .wpcf7-response-output {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 16px !important;
  padding: 48px 0 !important;
  margin-top: 0 !important;
  font-size: 15px !important;
  line-height: 1.8 !important;
  color: var(--ak-off-black) !important;
  border: none !important;
}

.anykey-contact .wpcf7-form.sent .wpcf7-response-output::before {
  content: '' !important;
  display: block !important;
  width: 40px !important;
  height: 1px !important;
  background: var(--ak-off-black) !important;
}

/* 送信完了時はフォームを非表示 */
.anykey-contact .wpcf7-form.sent .wpcf7-form-control-wrap,
.anykey-contact .wpcf7-form.sent p:not(.wpcf7-response-output) {
  display: none !important;
}

/* =====================================================
   FOOTER
===================================================== */
.anykey-footer {
  border-top: 1px solid var(--ak-border-light) !important;
  padding: 40px var(--ak-gutter) !important;
}

.anykey-footer-logo {
  font-family: var(--ak-font-en) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.2em !important;
  color: var(--ak-red) !important;
  text-decoration: none !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.anykey-footer-copy {
  font-family: var(--ak-font-en) !important;
  font-size: 11px !important;
  font-weight: 300 !important;
  letter-spacing: 0.08em !important;
  color: var(--ak-text-tertiary) !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.anykey-footer-link {
  font-family: var(--ak-font-en) !important;
  font-size: 11px !important;
  font-weight: 300 !important;
  letter-spacing: 0.08em !important;
  color: var(--ak-text-tertiary) !important;
  text-decoration: none !important;
  transition: color 0.3s !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.anykey-footer-link a:hover {
  color: var(--ak-off-black) !important;
}

/* =====================================================
   HAMBURGER SPANS
===================================================== */
.anykey-hamburger-span {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  margin: 0 !important;
  line-height: 1 !important;
  cursor: pointer;
}

.anykey-hamburger-span span {
  display: block !important;
  width: 22px !important;
  height: 1px !important;
  transition: background 0.4s;
}

.anykey-nav.on-hero .anykey-hamburger-span span {
  background: var(--ak-off-white) !important;
}

.anykey-nav.on-body .anykey-hamburger-span span {
  background: var(--ak-off-black) !important;
}

/* Scroll line (hr override) */
hr.anykey-scroll-line,
.wp-block-separator.anykey-scroll-line {
  border: none !important;
  width: 1px !important;
  height: 56px !important;
  background-color: var(--ak-red) !important;
  margin: 0 auto !important;
  transform-origin: top center;
  animation: ak-scroll-grow 2.4s ease-in-out infinite !important;
  max-width: none !important;
}

/* =====================================================
   MISC / HELPERS
===================================================== */
/* Remove default WP block margins inside anykey sections */
.anykey-section .wp-block-group,
.anykey-section .wp-block-columns,
.anykey-section .wp-block-column {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Ensure cover block overlay doesn't interfere */
.anykey-hero .wp-block-cover__background {
  background-color: var(--ak-black) !important;
  opacity: 1 !important;
}

/* =====================================================
   RESPONSIVE
===================================================== */
@media (max-width: 768px) {
  :root {
    --ak-section-pad: 64px;
    --ak-gutter:      24px;
  }

  .anykey-nav {
    padding: 22px var(--ak-gutter) !important;
  }

  .anykey-nav-links {
    display: none !important;
  }

  .anykey-hamburger {
    display: flex !important;
  }

  /* HEROのスクロールインジケーターをモバイルで上に調整 */
  .anykey-hero .wp-block-cover__inner-container,
  .anykey-hero-inner-wrap {
    padding-bottom: 100px !important;
  }

  .anykey-scroll-cue {
    bottom: 72px !important;
  }

  /* セクション見出しのマージンを縮小 */
  .anykey-section-label {
    margin-bottom: 40px !important;
  }

  /* CONCEPTセクション */
  .anykey-stanza {
    margin-bottom: 36px !important;
  }

  /* SERVICEセクション */
  .anykey-service-item {
    grid-template-columns: 48px 1fr !important;
    gap: 0 20px !important;
    padding-bottom: 48px !important;
  }

  /* MEDIAカード */
  .anykey-media-cards {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    margin-bottom: 40px !important;
  }

  .anykey-media-card {
    padding: 32px 24px !important;
  }

  .anykey-media-subcopy {
    margin-bottom: 32px !important;
  }

  /* COMPANYテーブル */
  .anykey-co-row {
    grid-template-columns: 1fr !important;
    gap: 6px 0 !important;
    padding: 18px 0 !important;
  }

  /* CONTACTを詰める */
  .anykey-contact-subcopy {
    margin-bottom: 36px !important;
    font-size: 14px !important;
    line-height: 1.8 !important;
  }

  .anykey-contact .wpcf7-form p {
    margin-bottom: 24px !important;
  }

  .anykey-contact .wpcf7-form input[type="text"],
  .anykey-contact .wpcf7-form input[type="email"],
  .anykey-contact .wpcf7-form textarea {
    padding: 10px 0 !important;
  }

  .anykey-contact .wpcf7-form textarea {
    min-height: 100px !important;
  }

  .anykey-footer {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
  }
}

@media (max-width: 480px) {
  :root {
    --ak-section-pad: 52px;
  }

  .anykey-copy-line {
    font-size: clamp(2.5rem, 11vw, 3.5rem) !important;
  }

  .concept-line {
    font-size: 16px !important;
  }

  /* HEROのscroll cueをiOS Safariのホームバー分だけ上げる */
  .anykey-scroll-cue {
    bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .anykey-hero-sub {
    font-size: 11px !important;
  }

  /* CONTACTをさらに詰める */
  .anykey-contact-subcopy {
    margin-bottom: 28px !important;
  }

  .anykey-contact .wpcf7-form p {
    margin-bottom: 18px !important;
  }
}

/* =====================================================
   PAGE TEMPLATE (Privacy Policy etc.)
===================================================== */
.anykey-page-main {
  padding-top: 120px !important;
  padding-bottom: 120px !important;
  min-height: 80vh;
}

.anykey-page-inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 40px;
}

.anykey-page-title {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(1.6rem, 3vw, 2.2rem) !important;
  font-weight: 300 !important;
  letter-spacing: 0.08em !important;
  color: var(--ak-off-black) !important;
  margin-bottom: 56px !important;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ak-border-light);
}

.anykey-page-content {
  font-family: var(--ak-font-ja) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 1.9 !important;
  color: var(--ak-off-black) !important;
}

.anykey-page-content h2 {
  font-family: var(--ak-font-en) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--ak-off-black) !important;
  margin-top: 48px !important;
  margin-bottom: 16px !important;
}

.anykey-page-content p {
  margin-bottom: 1.4em !important;
  color: var(--ak-text-sub) !important;
}

.anykey-page-content a {
  color: var(--ak-red) !important;
  text-decoration: none;
}

.anykey-page-content a:hover {
  text-decoration: underline;
}

/* =====================================================
   JOURNAL — single post
===================================================== */
.anykey-journal-single {
  padding: 140px 0 120px !important;
  min-height: 80vh;
}

.anykey-journal-inner {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 32px;
}

.anykey-journal-meta {
  display: flex !important;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  margin: 0 0 20px !important;
}

.anykey-journal-meta > * {
  margin: 0 !important;
  font-family: var(--ak-font-en) !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ak-text-sub) !important;
}

.anykey-journal-meta .wp-block-post-author-name {
  position: relative;
  padding-left: 14px;
}

.anykey-journal-meta .wp-block-post-author-name::before {
  content: "·";
  position: absolute;
  left: 0;
  color: var(--ak-text-tertiary);
}

.anykey-journal-title {
  font-family: var(--ak-font-ja) !important;
  font-size: clamp(1.5rem, 3vw, 2rem) !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  color: var(--ak-off-black) !important;
  margin: 0 0 56px !important;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--ak-border-light);
  letter-spacing: 0.02em;
}

.anykey-journal-content {
  font-family: var(--ak-font-ja) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 1.95 !important;
  color: var(--ak-off-black) !important;
}

.anykey-journal-content p {
  margin: 0 0 1.7em !important;
}

.anykey-journal-content h2 {
  font-family: var(--ak-font-ja) !important;
  font-size: 1.1rem !important;
  font-weight: 500 !important;
  margin: 3em 0 0.8em !important;
  color: var(--ak-off-black) !important;
  letter-spacing: 0.02em;
}

.anykey-journal-content h3 {
  font-family: var(--ak-font-ja) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  margin: 2.4em 0 0.6em !important;
  color: var(--ak-off-black) !important;
}

.anykey-journal-content a {
  color: var(--ak-red) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

.anykey-journal-content a:hover {
  text-decoration: none;
}

.anykey-journal-content blockquote {
  border-left: 2px solid var(--ak-border-dark) !important;
  padding: 4px 0 4px 20px !important;
  margin: 1.8em 0 !important;
  color: var(--ak-text-sub) !important;
  font-style: normal;
}

.anykey-journal-content img {
  max-width: 100%;
  height: auto;
  margin: 1.6em 0;
}

.anykey-journal-content ul,
.anykey-journal-content ol {
  margin: 0 0 1.7em 1.4em !important;
  padding: 0 !important;
}

.anykey-journal-content li {
  margin-bottom: 0.5em !important;
}

.anykey-journal-back {
  margin-top: 80px;
  padding-top: 32px;
  border-top: 1px solid var(--ak-border-light);
}

.anykey-journal-back a {
  font-family: var(--ak-font-en) !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ak-text-sub) !important;
  text-decoration: none !important;
}

.anykey-journal-back a:hover {
  color: var(--ak-off-black) !important;
}

/* =====================================================
   JOURNAL — disclosure banner
===================================================== */
.anykey-disclosure {
  display: block;
  border: 1px solid var(--ak-border-light);
  border-left: 2px solid var(--ak-text-tertiary);
  background: var(--ak-bg-sub);
  padding: 14px 18px;
  margin: 0 0 40px;
  font-family: var(--ak-font-ja);
  font-size: 12px;
  line-height: 1.7;
  color: var(--ak-text-sub);
  letter-spacing: 0.02em;
}

.anykey-disclosure-label {
  display: inline-block;
  font-family: var(--ak-font-en);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.22em;
  color: var(--ak-text-tertiary);
  margin-right: 10px;
  vertical-align: 1px;
}

.anykey-disclosure-body {
  display: inline;
}

/* =====================================================
   JOURNAL — index (/journal/)
===================================================== */
.anykey-journal-index {
  padding: 140px 0 120px !important;
  min-height: 80vh;
}

.anykey-journal-index-inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 32px;
}

.anykey-journal-index-title {
  font-family: var(--ak-font-en) !important;
  font-size: clamp(1.6rem, 3vw, 2rem) !important;
  font-weight: 300 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ak-off-black) !important;
  margin: 0 0 8px !important;
}

.anykey-journal-index-sub {
  font-family: var(--ak-font-ja) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  color: var(--ak-text-sub) !important;
  margin: 0 0 64px !important;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--ak-border-light);
  letter-spacing: 0.04em;
}

.anykey-journal-list .wp-block-post {
  padding: 22px 0 !important;
  border-bottom: 1px solid var(--ak-border-light);
  list-style: none !important;
}

.anykey-journal-item-meta {
  display: flex !important;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin: 0 0 6px !important;
}

.anykey-journal-item-meta > * {
  margin: 0 !important;
  font-family: var(--ak-font-en) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--ak-text-tertiary) !important;
}

.anykey-journal-item-meta .wp-block-post-author-name {
  position: relative;
  padding-left: 12px;
}

.anykey-journal-item-meta .wp-block-post-author-name::before {
  content: "·";
  position: absolute;
  left: 0;
  color: var(--ak-text-tertiary);
  opacity: 0.7;
}

/* Backward-compat: 旧スタイル（単独post-dateの場合） */
.anykey-journal-list .wp-block-post-date {
  font-family: var(--ak-font-en) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  color: var(--ak-text-tertiary) !important;
}

.anykey-journal-list .wp-block-post-title {
  font-family: var(--ak-font-ja) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  margin: 0 !important;
  letter-spacing: 0.02em;
}

.anykey-journal-list .wp-block-post-title a {
  color: var(--ak-off-black) !important;
  text-decoration: none !important;
  transition: color 0.2s var(--ak-ease);
}

.anykey-journal-list .wp-block-post-title a:hover {
  color: var(--ak-red) !important;
}

.anykey-journal-empty {
  font-family: var(--ak-font-ja) !important;
  font-size: 13px !important;
  color: var(--ak-text-sub) !important;
  padding: 32px 0;
}

/* Journal mobile */
@media (max-width: 768px) {
  .anykey-journal-single,
  .anykey-journal-index {
    padding: 100px 0 80px !important;
  }
  .anykey-journal-inner,
  .anykey-journal-index-inner {
    padding: 0 24px;
  }
  .anykey-journal-title {
    margin-bottom: 36px !important;
    padding-bottom: 20px;
  }
  .anykey-disclosure {
    padding: 12px 14px;
    margin-bottom: 28px;
    font-size: 11.5px;
  }
}

/* =====================================================
   FOOTER — Journal link (subtle)
===================================================== */
.anykey-footer-journal a {
  font-family: var(--ak-font-en) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--ak-text-tertiary) !important;
  text-decoration: none !important;
}

.anykey-footer-journal a:hover {
  color: var(--ak-off-black) !important;
}
