/* ============================================================
   Anchor Biz Catering - Common CSS
   Test site (https://test-anchor.tttest.tokyo) Top page 100% trace
   ============================================================ */

/* Mobile/PC-only utility classes (matches theme convention) */
@media ( max-width: 768px ) {
  .u-pc { display: none !important; }
}
@media ( min-width: 769px ) {
  .u-sp { display: none !important; }
}

/* ============================================================
   TablePress — tone-matched styling for Anchor Biz Catering
   Uses navy header / clean borders / subtle row alternation
   ============================================================ */
.tablepress-wrap,
.article-body .tablepress,
.article-body table.tablepress {
  display: block;
  width: 100%;
  margin: 28px 0 36px;
}
table.tablepress {
  border-collapse: collapse;
  width: 100% !important;
  font-family: var(--font-ja);
  font-size: 14px;
  line-height: 1.85;
  color: var(--text);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 4px;
  overflow: hidden;
}
/* Header row */
table.tablepress thead th,
table.tablepress tr:first-child th {
  background: var(--bg-navy, #1e3a5c) !important;
  color: #fff !important;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-align: center;
  vertical-align: middle;
  padding: 12px 14px !important;
  border: 1px solid #2a4a73 !important;
  font-size: 13.5px;
}
/* Body cells */
table.tablepress td,
table.tablepress tbody td {
  padding: 12px 16px !important;
  border: 1px solid var(--line) !important;
  background: #fff;
  vertical-align: middle;
  color: var(--text);
  line-height: 1.85;
}
/* First column (label column) — copper accent */
table.tablepress tbody tr td:first-child {
  background: #f9f7f4;
  color: var(--text);
  font-weight: 500;
  letter-spacing: 0.02em;
  min-width: 110px;
}
/* Row hover (desktop) */
@media ( hover: hover ) {
  table.tablepress tbody tr:hover td {
    background: #fdfaf5;
  }
  table.tablepress tbody tr:hover td:first-child {
    background: #f4ede1;
  }
}
/* Alternating rows */
table.tablepress tbody tr:nth-child(even) td {
  background: #fbfaf7;
}
table.tablepress tbody tr:nth-child(even) td:first-child {
  background: #f4f0e9;
}
/* Default row striping disable when only one column */
table.tablepress.no-stripe tbody tr td {
  background: #fff !important;
}
/* Inline edit link from TablePress admin — hide on frontend if any */
.tablepress + .tablepress-edit-link { display: none; }
/* Mobile: scroll horizontally if too wide */
@media ( max-width: 720px ) {
  .article-body .tablepress,
  .article-body table.tablepress {
    font-size: 12.5px;
    display: block;
    width: 100% !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--line);
    border-radius: 4px;
  }
  table.tablepress td,
  table.tablepress thead th,
  table.tablepress tr:first-child th {
    padding: 9px 10px !important;
    font-size: 12.5px;
  }
  table.tablepress tbody tr td:first-child {
    min-width: 88px;
  }
}

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Noto+Sans+JP:wght@300;400;500;700&family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap');

:root {
  /* Match test site :root variables */
  --font-ja: "Yu Gothic", "YuGothic", yu-gothic-pr6n, "Noto Sans JP", sans-serif;
  --font-ja-bold: "Yu Gothic", "YuGothic", "Noto Sans JP", sans-serif;
  --font-serif: "Zen Old Mincho", "游明朝", "Yu Mincho", "YuMincho", serif;
  --font-en: "Cormorant Garamond", "Times New Roman", serif;

  --wrapper-padding: min(6.41%, 80px);
  --section-margin: min(9.52vw, 120px);
  --footer-margin-top: min(13.09vw, 165px);

  --header-logo-width: 176px;
  --header-logo-height: calc(var(--header-logo-width) / 220 * 180);
  --header-h: 144px;

  /* Alias tokens (legacy / sub-page use) */
  --font-jp: var(--font-ja);
  --font-mincho: var(--font-serif);

  /* Colors */
  --bg: #f4f4f4;
  --bg-white: #ffffff;
  --bg-cream: #faf8f4;
  --bg-gray: #efefef;
  --text: #524b44;
  --text-2: #3a342e;
  --text-light: #8a807a;
  --text-mute: #b6ada4;
  --line: #e6e0d8;
  --line-soft: #efeae3;
  --gold: #e0ae74;
  --gold-soft: #f3dab2;
  --gold-dark: #c08d4d;
  --copper: #ab6333;
  --navy: #3a6ea5;
  --navy-deep: #2b4f78;
  --navy-bg: #2d4a6b;
  --dark: #2a2a2a;
  --black: #1a1a1a;
  --footer-bg: #524b44;
  --shadow-sm: 0 2px 8px rgba(82, 75, 68, 0.06);
  --shadow-md: 0 8px 28px rgba(82, 75, 68, 0.10);

  --container: 1200px;
  --container-wide: 1320px;

  /* Logo block background (matches test site brand navy) */
  --logo-bg: #1e3a5c;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-ja);
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.04em;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: opacity .25s ease, color .25s ease, background .2s ease; }
a:hover { opacity: .75; }
button { font-family: inherit; cursor: pointer; }

/* ============================================================
   .c-wrap container (test site spec)
   ============================================================ */
.c-wrap {
  width: 1248px;
  max-width: 100%;
  padding-inline: var(--wrapper-padding);
  margin-inline: auto;
}

/* ============================================================
   Header (test site .header structure)
   ============================================================ */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 500;
  display: flex;
  align-items: flex-start;
  pointer-events: none;
}
.header > * { pointer-events: auto; }
.header__logo {
  margin: 0;
  flex-shrink: 0;
}
/* .header__logo .c-logo {
  display: block;
  width: var(--header-logo-width);
  height: var(--header-logo-height);
  background: var(--logo-bg);
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}
.header__logo .c-logo img,
.header__logo .c-logo > svg {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 18px 22px;
  display: block;
  box-sizing: border-box;
} */
.header__nav {
  flex: 1 1 0%;
  display: flex;
  align-items: stretch;
  height: clamp(56px, calc(31.04px + 3.25vw), 72px);
  border-bottom: 1px solid rgba(255,255,255,0.6);
}
.header__list-area {
  flex: 1 1 0%;
  display: grid;
  grid-template-columns: minmax(15px, 40.98%) minmax(400px, auto) minmax(15px, 29.13%);
  align-items: stretch;
  background-color: rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  transition: background-color 0.3s, backdrop-filter 0.3s;
}
.header__list-area::before,
.header__list-area::after {
  content: "";
  display: block;
}
.header__list {
  padding-left: 0;
  margin: 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
.header__list a {
  height: 100%;
  padding-inline: 10px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: #000;
  text-decoration: none;
  transition: color 0.3s;
}
.header__list a:hover { font-weight: bold; opacity: 1; }
.header__list-ja {
  margin-block: 0.37em;
  font-size: clamp(10.8px, calc(7.6512px + 0.41vw), 12.8px);
  line-height: 1.2;
  letter-spacing: 0.03em;
}
.header__list a:hover .header__list-ja {
  font-family: var(--font-ja-bold);
  font-weight: 600;
}
.header__list-en {
  font-family: var(--font-en);
  font-size: clamp(9.6px, calc(7.0656px + 0.33vw), 11.2px);
  letter-spacing: 0.05em;
  font-weight: 300;
  line-height: 1.4;
}
.header__list a:hover .header__list-en { font-weight: 600; }
.header__btn-area {
  padding-left: 0;
  margin: 0;
  list-style: none;
  flex-shrink: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  width: 22.05%;
  min-width: 240px;
}
.header__btn {
  font-size: clamp(10.8px, calc(7.6512px + 0.41vw), 12.8px);
  border-left: 1px solid rgba(255,255,255,0.85);
}
.header__btn a {
  position: relative;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  height: 100%;
  background-color: #000;
  text-decoration: none;
  text-align: center;
  color: #fff;
  transition: background-color 0.3s;
}
.header__btn a:hover { background-color: #1a2e44; opacity: 1; }
.header__btn-icon {
  width: 1.62em;
  margin-block: 0.12em;
}
/* Transparent variant (used on page-hero overlap) */
.header.is-transparent .header__list-area {
  background-color: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.header.is-transparent .header__list a { color: #fff; }

/* Header spacer for sub-pages */
.header-spacer {
  height: var(--header-logo-height);
}

/* ============================================================
   Page Hero (gray strip - sub pages)
   Height matches /catering/ .sub-mv (≈413px). Left padding reserves
   space for the absolutely-positioned 176×144 logo at top-left so
   the title doesn't sit behind it.
   ============================================================ */
.page-hero {
  position: relative;
  background: var(--bg-gray);
  min-height: 413px;
  padding: 56px 56px 60px 224px;
  overflow: visible;
  display: flex;
  align-items: center;
}
.page-hero__inner {
  max-width: var(--container-wide);
  margin: 0 auto;
  position: relative;
  width: 100%;
}
.page-hero__label {
  font-family: var(--font-en);
  font-size: 56px;
  letter-spacing: 0.04em;
  color: var(--text);
  line-height: 1;
  margin: 0 0 8px;
  font-weight: 400;
}
.page-hero__title {
  font-family: var(--font-jp);
  font-size: 14px;
  letter-spacing: 0.16em;
  color: var(--text);
  margin: 0;
  font-weight: 500;
}

/* Photo hero variant (sitemap, etc.) */
.page-hero--photo {
  background:
    linear-gradient(rgba(0,0,0,0.15), rgba(0,0,0,0.25)),
    linear-gradient(135deg, #6b5d4a 0%, #8a6d4a 40%, #4d3f2e 100%);
  padding: 76px 56px 80px;
  color: #fff;
}
.page-hero--photo .page-hero__label,
.page-hero--photo .page-hero__title { color: #fff; }
.page-hero--photo .page-hero__label {
  display: inline-block;
  background: #fff;
  color: var(--text);
  padding: 8px 28px 4px;
  font-size: 38px;
  letter-spacing: 0.08em;
}

/* ============================================================
   Breadcrumb
   ============================================================ */
.breadcrumb {
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 18px 56px 0;
  font-size: 11px;
  color: var(--text-light);
  letter-spacing: 0.08em;
}
.breadcrumb ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.breadcrumb li + li::before { content: ">"; margin-right: 8px; color: var(--text-mute); }
.breadcrumb a { color: var(--text-light); }
.breadcrumb a:hover { color: var(--copper); }
.breadcrumb [aria-current] { color: var(--text); }

/* ============================================================
   c-hl-main (heading pattern from test site)
   ============================================================ */
.c-hl-main { margin: 0; }
.c-hl-main.u-ta-center { text-align: center; }
.c-hl-main__en {
  font-family: var(--font-en);
  font-size: clamp(48px, calc(10.5216px + 4.88vw), 72px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
}
.c-hl-main__ja {
  margin: 0;
  margin-top: 0.38em;
  font-family: var(--font-serif);
  font-size: clamp(12.8px, calc(10.2656px + 0.33vw), 14.4px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
}

/* Section Heading (legacy) */
.sec-head { text-align: center; margin-bottom: 40px; }
.sec-head__en {
  display: block;
  font-family: var(--font-en);
  font-size: 42px;
  letter-spacing: 0.04em;
  color: var(--text);
  line-height: 1;
  font-weight: 400;
  margin-bottom: 8px;
}
.sec-head__jp {
  font-family: var(--font-serif);
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--text);
  font-weight: 500;
}
.sec-head__cursive {
  font-family: var(--font-en);
  font-style: italic;
  font-size: 20px;
  color: var(--copper);
  letter-spacing: 0.02em;
  display: block;
  margin-bottom: 4px;
}

/* ============================================================
   Buttons (legacy)
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 16px 40px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.1em;
  border: none;
  background: linear-gradient(135deg, var(--copper), var(--gold));
  color: #fff;
  transition: all .25s ease;
  text-decoration: none;
}
.btn:hover { opacity: 1; transform: translateY(-1px); box-shadow: var(--shadow-md); }
.btn--outline { background: #fff; color: var(--text); border: 1px solid var(--text); }
.btn--white { background: #fff; color: var(--text); }
.btn--light { background: var(--bg-cream); color: var(--text); border: 1px solid var(--line); }
.btn--sm { padding: 10px 24px; font-size: 12px; }
.btn--lg { padding: 20px 56px; font-size: 15px; min-width: 280px; }

/* ============================================================
   CATERING band (Navy CTA section - sub page reuse)
   ============================================================ */
.catering-band {
  background: var(--navy-bg);
  color: #fff;
  padding: 80px 32px;
}
.catering-band__inner { max-width: var(--container); margin: 0 auto; }
.catering-band__head { margin-bottom: 48px; }
.catering-band__bracket {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.32em;
  color: var(--gold);
}
.catering-band__bracket::before { content: "[ "; }
.catering-band__bracket::after { content: " ]"; }
.catering-band__ttl {
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.6;
  margin: 14px 0 16px;
  color: #fff;
}
.catering-band__lead {
  font-size: 13px;
  line-height: 2;
  color: rgba(255,255,255,0.85);
  max-width: 640px;
}

/* ============================================================
   4-card nav (sub page reuse)
   ============================================================ */
.nav4 { padding: 72px 32px; background: var(--bg); }
.nav4__grid {
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 28px;
}
.nav4__item {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 18px;
  align-items: center;
  text-decoration: none;
  color: inherit;
}
.nav4__item:hover { opacity: 1; }
.nav4__item:hover .nav4__thumb { transform: scale(1.02); }
.nav4__thumb {
  width: 120px;
  aspect-ratio: 4/3;
  border-radius: 4px;
  background-color: #b3a294;
  background-image: linear-gradient(135deg, #b3a294, #ddc5a5);
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
  transition: transform .25s ease;
}
.nav4__thumb[style*="background-image"] {
  background-image-source: none;
}
.nav4__thumb::after {
  content: "Image";
  position: absolute; inset: 0;
  display: grid; place-items: center;
  color: rgba(255,255,255,0.55);
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: 0.2em;
}
.nav4__thumb[style*="background-image"]::after { content: none; }
.nav4__body h4 {
  font-family: var(--font-serif);
  font-size: 15px;
  letter-spacing: 0.1em;
  margin: 0 0 6px;
  font-weight: 500;
}
.nav4__body p {
  font-size: 11px;
  line-height: 1.85;
  color: var(--text-light);
  margin: 0 0 12px;
}
.nav4__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--copper), var(--gold));
  color: #fff;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-decoration: none;
}
.nav4__btn::after { content: "→"; }

/* ============================================================
   Footer (test site .footer 100% trace)
   ============================================================ */
.footer {
  color: #fff;
  background-color: #524b44;
  background-image:
    linear-gradient(rgba(20,18,16,0.45), rgba(20,18,16,0.60)),
    radial-gradient(ellipse at 18% 28%, rgba(110,92,70,0.6), transparent 55%),
    radial-gradient(ellipse at 78% 78%, rgba(40,30,20,0.7), transparent 55%),
    radial-gradient(circle at 50% 50%, #6a5a48 0%, #3d3326 80%);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin-top: var(--footer-margin-top);
}

/* ----- CONTACT section inside footer ----- */
.contact {
  padding-block: min(9.39vw, 118.4px) min(7.61vw, 96px);
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,0.4);
}
.contact .c-hl-main { text-align: left; }
.contact__row {
  margin-top: 47px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 32px;
}
.contact__desc {
  margin: 0;
  margin-top: 1.75em;
  font-size: clamp(11.2px, calc(8.6656px + 0.33vw), 12.8px);
  line-height: 2;
  letter-spacing: 0.03em;
}

/* Contact buttons */
.c-contact-btn {
  display: grid;
  width: 65%;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 4.86%;
  font-style: normal;
}
.c-contact-btn-col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.c-contact-btn__box {
  position: relative;
  padding-left: 10%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-decoration: none;
  color: #fff;
  border-radius: 5px;
  border: 1px solid #fff;
  background-color: rgba(255,255,255,0.15);
  height: 129.6px;
  transition: background-color 0.3s;
}
.c-contact-btn__box:hover {
  background-color: rgba(255,255,255,0.25);
  opacity: 1;
}
.c-contact-btn__ja,
.c-contact-btn__tel {
  position: relative;
  display: flex;
  align-items: center;
}
.c-contact-btn__ja::before,
.c-contact-btn__tel::before {
  content: "";
  display: block;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  /* fallback gold tint via mask not available — use solid svg url */
}
.c-contact-btn__ja {
  margin-top: 0.15em;
  letter-spacing: 0.01em;
  font-family: var(--font-ja);
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  gap: 0 0.35em;
}
.c-contact-btn__ja::before {
  width: 1.3em;
  height: 1.3em;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ddd2c4' stroke-width='1.4'><path d='M6 4l6 8 6-8M12 12v8M8 16h8M8 19h8'/></svg>");
}
.c-contact-btn__tel {
  margin-block: -0.05em 0.18em;
  letter-spacing: 0.02em;
  font-family: var(--font-en);
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
}
.c-contact-btn__tel::before {
  margin-top: 0.15em;
  margin-right: 0.2em;
  width: 0.65em;
  height: 0.65em;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ddd2c4'><path d='M20 15.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.25l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z'/></svg>");
}
.c-contact-btn__en {
  font-family: var(--font-en);
  font-size: 0.7rem;
  font-weight: 300;
  letter-spacing: 0.03em;
  line-height: 1;
  color: #fff;
}
.c-contact-btn__note {
  margin-top: 12.8px;
  font-size: clamp(11.2px, calc(8.6656px + 0.33vw), 12.8px);
  line-height: 1.4;
  letter-spacing: 0.03em;
}

/* Gold gradient pill + arrow on c-link-arrow-white */
.c-link-arrow-white {
  --link-arrow-width: clamp(29.2px, calc(25.3px + 1.04vw), 38.4px);
  --link-arrow-height: calc(var(--link-arrow-width) / 48 * 23);
  position: relative;
}
.c-link-arrow-white::before,
.c-link-arrow-white::after {
  content: "";
  position: absolute;
  top: 50%;
  translate: 0 -50%;
}
.c-link-arrow-white::before {
  right: 5.5%;
  width: var(--link-arrow-width);
  height: var(--link-arrow-height);
  border-radius: calc(var(--link-arrow-height) / 2);
  background: linear-gradient(224deg, #ab6333 0%, #dda665 50%, #ab6333 100%);
}
.c-link-arrow-white::after {
  right: calc(5.5% + 7px);
  width: 13px;
  height: 13px;
  background:
    linear-gradient(to right, #fff 0, #fff 100%) center / 13px 1px no-repeat,
    linear-gradient(45deg, transparent 50%, #fff 50%, #fff 65%, transparent 65%) right center / 7px 7px no-repeat,
    linear-gradient(-45deg, transparent 35%, #fff 35%, #fff 50%, transparent 50%) right center / 7px 7px no-repeat;
}

/* ----- Footer info row -----
   3-column horizontal layout per design spec:
     [Logo+lead] | [Sitemap (2 sub-columns)] | [QE banner]
   The QE banner is added as a CSS ::after pseudo-element so we don't
   need to change theme markup. Uses higher specificity + !important
   to override the theme rules that load after this stylesheet.
   ----- */
.footer .footer__row,
footer .footer__row {
  margin-top: 56px !important;
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 32px !important;
  padding-block: 0 !important;
  text-align: left !important;
}
.footer .footer__row::after,
footer .footer__row::after {
  content: "";
  display: block;
  width: 252px;
  height: 182px;
  flex: 0 0 252px;
  background: transparent
    url('/wp-content/themes/anchor/assets/img/common/c_bnr_estimate.webp')
    no-repeat center / contain;
}
.footer .footer__logo-area,
footer .footer__logo-area {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
  flex: 0 0 auto;
}
.c-logo--footer {
  display: block;
  width: 100%;
  max-width: 360px;
  aspect-ratio: 220 / 180;
  height: auto;
  background: var(--logo-bg);
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}
/* .c-logo--footer img,
.c-logo--footer > svg {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 14% 12%;
  display: block;
  box-sizing: border-box;
} */
/* Header button icon (inline SVG variant) */
svg.header__btn-icon {
  width: 1.62em !important;
  height: 1.62em;
  margin-block: 0.12em;
  display: block;
}
.footer__logo-lead {
  margin-top: 0.77em;
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.06em;
  color: #fff;
  line-height: 1.6;
}
.footer__logo-lead .u-kana { letter-spacing: 0.02em; }

/* Footer navigation (c-gnav) — middle column in the 3-col footer row */
.footer .c-gnav,
footer .c-gnav {
  display: flex !important;
  justify-content: center !important;
  width: auto !important;
  gap: 0 60px !important;
  margin-top: 0 !important;
  flex: 1 1 auto;
  position: relative;
  text-align: left;
  padding: 0;
  background: transparent;
  border-radius: 0;
  backdrop-filter: none;
}
.c-gnav a {
  position: relative;
  text-decoration: none;
  color: #fff;
  transition: color .25s;
}
.c-gnav a::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: -0.4em;
  width: 100%;
  height: 0.5px;
  transform: scale(0, 1);
  transform-origin: left center;
  background: #fff;
  transition: transform 0.25s;
}
.c-gnav a:hover::before { transform: scale(1, 1); }
.c-gnav__col {
  display: flex;
  flex-direction: column;
}
.c-gnav__list {
  padding-left: 0;
  margin: 0;
  list-style: none;
}
.c-gnav__item {
  font-size: clamp(11.2px, calc(8.6656px + 0.33vw), 12.8px);
  line-height: 1.4;
  letter-spacing: 0.03em;
  font-weight: bold;
}
.c-gnav__item:not(:first-child) { margin-top: 1.1em; }
.c-gnav__sub-list {
  padding-left: 0;
  margin-top: 2.13em;
  list-style: none;
  font-size: clamp(11.2px, calc(9.9712px + 0.16vw), 12px);
  line-height: 1.4;
  letter-spacing: 0.03em;
  font-weight: normal;
}
.c-gnav__sub-item:not(:first-child) { margin-top: 0.73em; }

/* Footer bottom */
.footer__btm {
  padding-block: min(9.52vw, 120px) min(5.07vw, 64px);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  flex-wrap: wrap;
}
.footer__copyright {
  font-family: var(--font-en);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #fff;
}
.footer__btm-nav {
  padding-left: 0;
  margin: 0;
  list-style: none;
  display: flex;
  gap: 0 30px;
  font-size: clamp(10.4px, calc(7.8656px + 0.33vw), 12px);
  letter-spacing: 0.03em;
}
.footer__btm-nav a {
  position: relative;
  text-decoration: none;
  color: #fff;
}
.footer__btm-nav a::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: -0.4em;
  width: 100%;
  height: 0.5px;
  transform: scale(0, 1);
  transform-origin: left center;
  background: #fff;
  transition: transform 0.25s;
}
.footer__btm-nav a:hover::before { transform: scale(1, 1); }

@media (max-width: 1080px) {
  .c-contact-btn { width: 100%; }
}
@media (max-width: 980px) {
  .c-wrap { padding-inline: 32px; }
  .contact { padding-block: 80px 64px; }
  .contact__row { flex-direction: column; align-items: stretch; gap: 28px; }
  .c-contact-btn { grid-template-columns: 1fr; gap: 16px; width: 100%; }
  .c-contact-btn__box { height: 110px; }
  .footer__row { flex-direction: column; gap: 32px; }
  .c-gnav { width: 100%; }
}
@media (max-width: 640px) {
  .c-hl-main__en { font-size: 48px; }
  .contact { padding-block: 56px 48px; }
  .c-wrap { padding-inline: 20px; }
  .footer__btm { justify-content: center; text-align: center; }
  .footer__btm-nav { gap: 0 20px; }
}

/* ============================================================
   Header responsive
   ============================================================ */
@media (max-width: 1080px) {
  .header__list a { padding-inline: 6px; }
}
@media (max-width: 920px) {
  .header__list-area { display: none; }
  .header__btn-area { min-width: 200px; }
  /* .header__logo .c-logo { width: 110px; height: 90px; } */
  .header-spacer { height: 90px; }
  /* mobile-ish: smaller logo, smaller hero, reserve left padding past logo */
  .page-hero { min-height: 320px; padding: 48px 24px 48px 150px; }
  .breadcrumb { padding: 16px 24px 0; }
  .nav4__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  body { font-size: 14px; }
  .header__btn a { font-size: 11px; padding: 0 8px; }
  /* .header__logo .c-logo { width: 90px; height: 74px; } */
  .header-spacer { height: 74px; }
  /* phone: smaller logo (90px wide), stack title below logo with top padding */
  .page-hero { min-height: 240px; padding: 90px 20px 24px; }
  .page-hero__label { font-size: 36px; }
  .nav4__item { grid-template-columns: 100px 1fr; gap: 14px; }
  .nav4__thumb { width: 100px; }
}

/* ============================================================
   Reusable bits
   ============================================================ */
.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 32px;
}
.container--wide { max-width: var(--container-wide); }
.container--narrow { max-width: 880px; }

.section { padding: 80px 32px; }
.section--bg { background: var(--bg); }
.section--cream { background: var(--bg-cream); }

.u-ta-center { text-align: center; }

.tag {
  display: inline-block;
  font-size: 11px;
  letter-spacing: 0.08em;
  padding: 5px 14px;
  border-radius: 4px;
  background: var(--bg-cream);
  border: 1px solid var(--line);
  color: var(--text);
}
.tag--gold {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
}
.tag--gold-out {
  background: rgba(224,174,116,0.10);
  border-color: var(--gold);
  color: var(--copper);
}
.tag--navy {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}
.tag--dark {
  background: var(--text);
  color: #fff;
  border-color: var(--text);
}

/* SVG icon placeholder helper */
.ph-img {
  background: var(--bg-gray);
  position: relative;
  overflow: hidden;
}
.ph-img::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 36% 42%, #c3bdb5 0 24px, transparent 25px),
    linear-gradient(135deg, #c4bdb4 0%, #cfc8be 40%, #b6ada4 100%);
}
.ph-img::after {
  content: "";
  position: absolute;
  bottom: 18%;
  left: 14%;
  right: 14%;
  height: 50%;
  background:
    linear-gradient(135deg, transparent 50%, #a8a098 50%, #a8a098 65%, transparent 65%),
    linear-gradient(135deg, #a8a098 0%, #b8b0a8 50%, transparent 50%);
  clip-path: polygon(0 100%, 25% 30%, 50% 60%, 75% 10%, 100% 100%);
}

/* ============================================================
   Brand mark partial (text fallback)
   ============================================================ */
.brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
  letter-spacing: 0.06em;
}
.brand-text__row1 {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.18em;
  font-weight: 400;
  color: var(--text);
  text-transform: uppercase;
}
.brand-text__row2 {
  font-family: var(--font-en);
  font-style: italic;
  font-size: 16px;
  letter-spacing: 0.04em;
  color: var(--copper);
  margin-top: 2px;
}

/* ============================================================
   Estimate form (page-estimate.php) — faithful to mockup
   ============================================================ */
:is(.form-section--estimate, .form-section--contact) { max-width: 980px; padding: 56px 32px 80px; }
:is(.form-section--estimate, .form-section--contact) .form-head { border-bottom: 1px solid var(--line); padding-bottom: 28px; margin-bottom: 8px; }
:is(.form-section--estimate, .form-section--contact) .wpcf7 { margin-top: 8px; }
:is(.form-section--estimate, .form-section--contact) .wpcf7-form { display: block; }

/* Row layout — 180px label + flexible control area */
:is(.form-section--estimate, .form-section--contact) .form-row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 16px 32px;
  align-items: start;
  padding: 24px 4px;
  border-bottom: 1px solid var(--line-soft);
}
:is(.form-section--estimate, .form-section--contact) .form-row:last-of-type { border-bottom: none; }
:is(.form-section--estimate, .form-section--contact) .form-row__lbl {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--text);
  padding-top: 10px;
}
:is(.form-section--estimate, .form-section--contact) .req {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10.5px;
  color: #fff;
  background: var(--copper);
  padding: 3px 10px 2px;
  border-radius: 2px;
  letter-spacing: 0.06em;
  font-weight: 500;
  line-height: 1.2;
  flex-shrink: 0;
}
:is(.form-section--estimate, .form-section--contact) .form-row__ctl {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--text);
}

/* Inputs */
:is(.form-section--estimate, .form-section--contact) input[type=number],
:is(.form-section--estimate, .form-section--contact) input[type=text],
:is(.form-section--estimate, .form-section--contact) input[type=tel],
:is(.form-section--estimate, .form-section--contact) input[type=email],
:is(.form-section--estimate, .form-section--contact) input[type=date],
:is(.form-section--estimate, .form-section--contact) input[type=time],
:is(.form-section--estimate, .form-section--contact) select,
:is(.form-section--estimate, .form-section--contact) textarea {
  width: 100%;
  max-width: 460px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text);
  box-sizing: border-box;
  transition: border-color .2s, box-shadow .2s;
}
:is(.form-section--estimate, .form-section--contact) input[type=number] { max-width: 140px; display: inline-block; vertical-align: middle; }
:is(.form-section--estimate, .form-section--contact) input[type=time]   { max-width: 130px; display: inline-block; vertical-align: middle; }
:is(.form-section--estimate, .form-section--contact) input[type=date]   { max-width: 220px; display: inline-block; vertical-align: middle; }
:is(.form-section--estimate, .form-section--contact) textarea { min-height: 160px; max-width: 100%; resize: vertical; }
:is(.form-section--estimate, .form-section--contact) input:focus,
:is(.form-section--estimate, .form-section--contact) textarea:focus,
:is(.form-section--estimate, .form-section--contact) select:focus {
  outline: none;
  border-color: var(--copper);
  box-shadow: 0 0 0 3px rgba(171,99,51,0.12);
}
:is(.form-section--estimate, .form-section--contact) input::placeholder,
:is(.form-section--estimate, .form-section--contact) textarea::placeholder { color: var(--text-mute); }

/* Inline number + unit */
:is(.form-section--estimate, .form-section--contact) .wpcf7-form-control-wrap { display: inline-block; }
:is(.form-section--estimate, .form-section--contact) .form-note {
  font-size: 11.5px;
  color: var(--text-light);
  margin-top: 6px;
  line-height: 1.7;
}
/* People count: input + 名 unit on the same line */
:is(.form-section--estimate, .form-section--contact) .people-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
}
:is(.form-section--estimate, .form-section--contact) .people-row .wpcf7-form-control-wrap {
  display: inline-block;
  flex: 0 0 auto;
}
:is(.form-section--estimate, .form-section--contact) .people-row input[type=number] {
  max-width: 140px;
  margin: 0;
}
:is(.form-section--estimate, .form-section--contact) .people-unit {
  font-size: 14px;
  color: var(--text);
  white-space: nowrap;
}

/* time-range */
:is(.form-section--estimate, .form-section--contact) .time-range {
  margin-top: 10px;
  font-size: 14px;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
:is(.form-section--estimate, .form-section--contact) .time-range .wpcf7-form-control-wrap {
  display: inline-block !important;
  width: auto !important;
}
:is(.form-section--estimate, .form-section--contact) .time-range select.wpcf7-select {
  min-width: 100px;
  width: 110px !important;
  padding: 8px 28px 8px 12px;
  font-size: 14px;
  height: 40px;
  background-position: right 8px center;
  display: inline-block;
}
@media ( max-width: 640px ) {
  :is(.form-section--estimate, .form-section--contact) .time-range {
    gap: 4px;
    font-size: 12px;
    flex-wrap: nowrap;
  }
  :is(.form-section--estimate, .form-section--contact) .time-range select.wpcf7-select {
    width: 78px !important;
    min-width: 78px;
    padding: 6px 18px 6px 6px;
    font-size: 12px;
    height: 36px;
  }
  :is(.form-section--estimate, .form-section--contact) .time-range__lbl {
    font-size: 12px;
    white-space: nowrap;
  }
  :is(.form-section--estimate, .form-section--contact) .time-range__sep {
    font-size: 12px;
    padding: 0 2px;
  }
}

/* Options */
:is(.form-section--estimate, .form-section--contact) .opt-group { margin-bottom: 16px; }
:is(.form-section--estimate, .form-section--contact) .opt-group:last-child { margin-bottom: 0; }
:is(.form-section--estimate, .form-section--contact) .opt-group__ttl {
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
  margin: 6px 0 10px;
  padding-left: 10px;
  border-left: 3px solid var(--copper);
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-checkbox,
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item-label { display: inline; }
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item {
  display: inline-block;
  margin: 0 20px 6px 0;
  font-size: 13.5px;
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item label { font-weight: 400; cursor: pointer; }
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item input[type=checkbox],
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item input[type=radio] {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  margin-right: 8px;
  vertical-align: -4px;
  border: 1.5px solid var(--copper);
  border-radius: 3px;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  display: inline-block;
  box-sizing: border-box;
  transition: background-color .15s, border-color .15s;
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item input[type=radio] {
  border-radius: 50%;
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item input[type=checkbox]:checked {
  background: var(--copper);
  border-color: var(--copper);
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 5px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item input[type=radio]:checked {
  background: radial-gradient(circle, var(--copper) 35%, #fff 38%);
  border-color: var(--copper);
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item input[type=checkbox]:focus,
:is(.form-section--estimate, .form-section--contact) .wpcf7-list-item input[type=radio]:focus {
  outline: 2px solid rgba(171, 99, 51, 0.3);
  outline-offset: 1px;
}

/* Privacy box */
:is(.form-section--estimate, .form-section--contact) .form-row--privacy .form-row__ctl { gap: 12px; }
:is(.form-section--estimate, .form-section--contact) .privacy-text {
  font-size: 13px;
  line-height: 1.95;
  color: var(--text);
  margin: 0;
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-acceptance .wpcf7-list-item { margin: 4px 0 0; display: block; }

/* Submit */
:is(.form-section--estimate, .form-section--contact) .form-row--submit {
  display: block;
  padding: 40px 0 0;
  border-bottom: none;
  text-align: center;
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 80px;
  font-size: 14px;
  letter-spacing: 0.16em;
  font-weight: 500;
  border: none;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--copper), var(--gold));
  color: #fff;
  cursor: pointer;
  transition: opacity .2s, transform .2s, box-shadow .2s;
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-submit:hover {
  opacity: 0.92;
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}
:is(.form-section--estimate, .form-section--contact) .wpcf7-spinner { display: none; }

@media (max-width: 780px) {
  :is(.form-section--estimate, .form-section--contact) { padding: 40px 20px 64px; }
  :is(.form-section--estimate, .form-section--contact) .form-row { grid-template-columns: 1fr; gap: 10px; padding: 18px 0; }
  :is(.form-section--estimate, .form-section--contact) .form-row__lbl { padding-top: 0; }
  :is(.form-section--estimate, .form-section--contact) input[type=text],
  :is(.form-section--estimate, .form-section--contact) input[type=email],
  :is(.form-section--estimate, .form-section--contact) input[type=tel],
  :is(.form-section--estimate, .form-section--contact) input[type=number],
  :is(.form-section--estimate, .form-section--contact) input[type=date],
  :is(.form-section--estimate, .form-section--contact) input[type=time],
  :is(.form-section--estimate, .form-section--contact) select { max-width: 100%; }
  :is(.form-section--estimate, .form-section--contact) .wpcf7-submit { padding: 14px 48px; width: 100%; max-width: 320px; }
}

/* ============================================================
   FAQ page (page-faq.php)
   ============================================================ */
.faq-lead {
  max-width: 1080px;
  margin: 0 auto;
  padding: 56px 32px 32px;
  font-size: 15px;
  line-height: 2;
  color: var(--text);
  text-align: center;
}
.faq-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 56px;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 32px 80px;
}
.faq-side {
  position: sticky;
  top: 100px;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
  line-height: 1.6;
}
.faq-side ul,
.faq-side ul li,
.faq-list,
.faq-list li {
  list-style: none !important;
  padding-left: 0;
  margin-left: 0;
}
.faq-side ul li::before,
.faq-list li::before {
  content: none !important;
}
.faq-side a {
  display: block;
  padding: 10px 14px;
  border-radius: 4px;
  color: var(--text);
  border-left: 3px solid transparent;
  transition: background .2s, border-color .2s;
}
.faq-side a:hover,
.faq-side a.is-active {
  background: #fff;
  border-left-color: var(--copper);
  color: var(--copper);
  opacity: 1;
}
.faq-content { display: flex; flex-direction: column; gap: 48px; }
.faq-group { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 28px 32px; }
.faq-group > h2 {
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin: 0 0 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line-soft);
  color: var(--text);
}
.faq-list { display: flex; flex-direction: column; gap: 14px; }
.faq-item {
  border: 1px solid var(--line-soft);
  border-radius: 4px;
  background: #fff;
  overflow: hidden;
}
.faq-q {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 18px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
  color: var(--text);
  cursor: pointer;
  background: #f9f7f4;
  position: relative;
}
@media screen and (max-width: 767px) {
  .faq-q {
    padding: 14px 22px 14px 10px;
  }
}
.faq-q::-webkit-details-marker {
  display: none;
}
.faq-q::before {
  content: "Q";
  flex-shrink: 0;
  display: inline-grid;
  place-items: center;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--copper);
  color: #fff;
  font-family: var(--font-en);
  font-size: 12px;
}
.faq-q-plus {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0.7em;
  width: 0.9em;
  height: 0.9em;
  z-index: 5;
}
@media (max-width: 980px) {
  .faq-q-plus {
    right: 0.55em;
    width: 0.8em;
    height: 0.8em;
  }
}
.faq-q-plus::before,
.faq-q-plus::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  position: absolute;
  top: 50%;
  left: 50%;
  background: #a08d81;
  transform: translate(-50%, -50%);
  transition: transform 0.4s ease, opacity 0.4s ease;
}
.faq-q-plus::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.faq-item[open] .faq-q-plus::before {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}
.faq-item[open] .faq-q-plus::after {
  transform: translate(-50%, -50%) rotate(180deg);
}
.faq-a {
  display: flex;
  gap: 12px;
  padding: 14px 18px;
  font-size: 13.5px;
  line-height: 1.95;
  color: var(--text);
  border-top: 1px solid var(--line-soft);
}
@media screen and (max-width: 767px) {
  .faq-a {
    padding: 14px 18px 14px 10px;
  }
}
.faq-a::before {
  content: "A";
  flex-shrink: 0;
  display: inline-grid;
  place-items: center;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--gold);
  color: #fff;
  font-family: var(--font-en);
  font-size: 12px;
}

/* ORDER FLOW */
/* .order-flow { background: var(--bg-gray); padding: 64px 32px; }
.order-flow__inner { max-width: 1080px; margin: 0 auto; }
.order-flow__head { text-align: center; margin-bottom: 40px; }
.flow-steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}
.flow-step {
  background: #fff;
  border-radius: 6px;
  padding: 24px 16px;
  text-align: center;
  position: relative;
  border: 1px solid var(--line);
}
.flow-step__no {
  display: inline-block;
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--copper);
  margin-bottom: 8px;
}
.flow-step__icon {
  font-size: 28px;
  margin-bottom: 8px;
}
.flow-step h4 { font-family: var(--font-serif); font-size: 14px; font-weight: 500; margin: 6px 0; letter-spacing: 0.04em; }
.flow-step p { font-size: 11.5px; line-height: 1.7; color: var(--text-light); margin: 0; }
.flow-sub { text-align: center; font-size: 12px; color: var(--text-light); margin-top: 24px; } */

/* USAGE SCENE */
.usage-scene { padding: 64px 32px; }
.usage-scene__inner { max-width: 1080px; margin: 0 auto; }
.usage-scene__head { text-align: center; margin-bottom: 40px; }
.usage-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.usage-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
}
.usage-card__thumb {
  aspect-ratio: 16/10;
  background: linear-gradient(135deg, #b3a294, #ddc5a5);
  background-size: cover;
  background-position: center;
}
.usage-card__body { padding: 18px 20px; }
.usage-card__body h4 { font-family: var(--font-serif); font-size: 15px; margin: 0 0 8px; font-weight: 500; }
.usage-card__body p { font-size: 12.5px; line-height: 1.85; color: var(--text-light); margin: 0; }
.usage-cta { text-align: center; margin-top: 40px; }

@media (max-width: 980px) {
  .faq-layout { grid-template-columns: 1fr; padding: 0 24px 64px; gap: 24px; }
  .faq-side { position: static; flex-direction: row; flex-wrap: wrap; }
  .faq-side a { flex: 1 1 calc(50% - 6px); }
  .faq-group { padding: 20px 22px; }
  .flow-steps { grid-template-columns: repeat(2, 1fr); }
  .usage-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .faq-side a { flex: 1 1 100%; }
  .flow-steps { grid-template-columns: 1fr; }
}

/* ============================================================
   Sitemap page (page-sitemap.php)
   ============================================================ */
.sitemap-hero { padding: 64px 32px 40px; text-align: center; }
.sitemap-hero__inner { max-width: 1080px; margin: 0 auto; }
.sitemap-hero__label {
  font-family: var(--font-en);
  font-size: 48px;
  font-weight: 400;
  letter-spacing: 0.04em;
  margin: 0;
  color: var(--text);
}
.sitemap-hero__title {
  font-family: var(--font-serif);
  font-size: 14px;
  letter-spacing: 0.16em;
  color: var(--text);
  margin: 6px 0 0;
}
.sitemap-list {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 32px 80px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px 36px;
}
.sitemap-section {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 22px 26px;
}
.sitemap-section h2 {
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-soft);
  color: var(--text);
}
.sitemap-section ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.sitemap-section li { font-size: 13px; line-height: 1.7; }
.sitemap-section a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  padding: 4px 0;
}
.sitemap-section a::before { content: "›"; color: var(--copper); }
.sitemap-section a:hover { color: var(--copper); opacity: 1; }

@media (max-width: 720px) {
  .sitemap-list { grid-template-columns: 1fr; padding: 0 20px 64px; }
}

/* ============================================================
   Privacy policy page (page-privacy.php)
   ============================================================ */
.pp-wrap {
  max-width: 880px;
  margin: 0 auto;
  padding: 64px 32px 64px;
  font-size: 14px;
  line-height: 2;
  color: var(--text);
}
.pp-intro { font-size: 14.5px; line-height: 2; margin: 0 0 48px; }
.pp-section { margin: 0 0 40px; }
.pp-section .ttl {
  display: flex;
  align-items: baseline;
  gap: 14px;
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin: 0 0 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
  color: var(--text);
}
.pp-section .num {
  font-family: var(--font-en);
  font-size: 32px;
  font-weight: 500;
  line-height: 1;
  color: var(--copper);
  letter-spacing: 0.04em;
  flex-shrink: 0;
}
.pp-section p { margin: 0 0 1em; line-height: 2; }
.pp-section ul, .pp-section ol { padding-left: 1.4em; margin: 0 0 1em; }
.pp-section li { margin: 0 0 0.4em; line-height: 1.95; }
.pp-contact-box {
  margin-top: 16px;
  padding: 20px 24px;
  background: #f9f7f4;
  border-left: 3px solid var(--copper);
  border-radius: 4px;
  font-size: 13.5px;
  line-height: 1.95;
}
.pp-foot { margin-top: 48px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 12px; color: var(--text-light); }

@media (max-width: 720px) {
  .pp-wrap { padding: 40px 20px 56px; }
  .pp-section .ttl { font-size: 16px; flex-wrap: wrap; gap: 10px; }
  .pp-section .num { font-size: 28px; font-weight: 500; line-height: 1; }
}

/* ============================================================
   Generic form-section header layout (used by both Contact + Estimate)
   ============================================================ */
.form-section {
  max-width: 980px;
  margin: 0 auto;
}
.form-head {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.form-head > div {
  flex: 0 0 200px;
}
.form-head h2 {
  font-family: var(--font-en);
  font-size: 42px;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1;
  margin: 0;
  color: var(--text);
}
.form-head small {
  display: block;
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--text-light);
  margin-top: 6px;
}
.form-head p {
  flex: 1;
  min-width: 280px;
  font-size: 14px;
  line-height: 2;
  margin: 0;
  color: var(--text);
}
/* Generic CF7 form helpers (response output, spinner, not-valid tips) */
.wpcf7-response-output {
  margin: 24px 0 0 !important;
  padding: 14px 18px !important;
  border-radius: 4px !important;
  font-size: 13px;
  line-height: 1.7;
}
.wpcf7-not-valid-tip {
  color: #c64545;
  font-size: 12px;
  margin-top: 6px;
  display: block;
}
.wpcf7-spinner { display: none; }

/* Contact-specific tweaks: textarea taller, page padding */
.form-section--contact { padding: 56px 32px 80px; }
.form-section--contact textarea { min-height: 220px; }
@media (max-width: 720px) {
  .form-section--contact { padding: 40px 20px 64px; }
  .form-head { flex-direction: column; gap: 16px; }
  .form-head > div { flex: 1; }
  .form-head h2 { font-size: 32px; }
}

/* ============================================================
   COLUMN / CASE archive + single layouts
   ============================================================ */

/* common shared container width */
.col-intro,
.col-list,
.col-pager,
.case-intro,
.case-list,
.case-pager,
.case-wrap,
.case-related,
.case-menu,
.article-wrap {
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 32px;
  padding-right: 32px;
  box-sizing: border-box;
}

/* ---------- Column archive ---------- */
.col-intro {
  padding-top: 56px;
  padding-bottom: 32px;
  font-size: 15px;
  line-height: 2;
  color: var(--text);
}
.col-intro p { margin: 0 0 1.2em; }
.col-intro p:last-child { margin-bottom: 0; }

.col-list {
  padding-top: 0;
  padding-bottom: 72px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.col-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
  transition: box-shadow .25s;
  position: relative;
}
.col-card:hover { box-shadow: var(--shadow-md); }
.col-card__thumb {
  background: linear-gradient(135deg, #b3a294, #ddc5a5);
  background-size: cover;
  background-position: center;
  width: 100%;
  aspect-ratio: 4 / 3;
  min-height: 0;
}
.col-card__body {
  padding: 20px 22px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.col-card__head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 10px;
  font-size: 12px;
  color: var(--text-light);
}
.col-card__head .date { display: inline-flex; align-items: center; gap: 4px; }
.col-card__title {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.6;
  margin: 0 0 10px;
  letter-spacing: 0.02em;
}
.col-card__title a { color: var(--text); }
.col-card__title a:hover { color: var(--copper); opacity: 1; }
/* Lightweight inline tags under title */
.col-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin: 0 0 14px;
}
.col-card__tag {
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--text-light);
  background: transparent;
  border: 0;
  padding: 0;
  font-weight: 400;
  line-height: 1.6;
  text-decoration: none;
  transition: color 0.18s ease;
}
a.col-card__tag:hover {
  color: var(--copper);
  opacity: 1;
}
.col-card__excerpt {
  font-size: 13px;
  line-height: 1.85;
  color: var(--text-light);
  margin: 0 0 16px;
}
.col-card__more {
  align-self: flex-end;
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 18px;
  font-size: 11px;
  letter-spacing: 0.1em;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--copper), var(--gold));
  color: #fff;
}
.col-card__more::after { content: "→"; }
.col-empty { text-align: center; color: var(--text-light); padding: 80px 0; }

.col-pager,
.case-pager {
  padding-bottom: 80px;
  text-align: center;
  font-size: 13px;
  letter-spacing: 0.08em;
}
.col-pager .page-numbers,
.case-pager .page-numbers {
  display: inline-block;
  padding: 6px 12px;
  margin: 0 2px;
  border: 1px solid var(--line);
  border-radius: 4px;
  color: var(--text);
}
.col-pager .page-numbers.current,
.case-pager .page-numbers.current {
  background: var(--text);
  color: #fff;
  border-color: var(--text);
}

/* ---------- Case archive ---------- */
.case-intro {
  padding-top: 56px;
  padding-bottom: 32px;
  font-size: 15px;
  line-height: 2;
  color: var(--text);
}
.case-list {
  padding-bottom: 72px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 24px;
}
.case-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
  transition: box-shadow .25s;
}
.case-card:hover { box-shadow: var(--shadow-md); }
.case-card__link { display: block; color: inherit; }
.case-card__thumb {
  aspect-ratio: 16/10;
  background: linear-gradient(135deg, #8a7c6a, #c9b18a);
  background-size: cover;
  background-position: center;
}
.case-card__body { padding: 16px 18px 20px; }
.case-card__head { margin-bottom: 8px; }
.case-card__head .tag { font-size: 10.5px; padding: 3px 9px; }
.case-card__title {
  font-family: var(--font-serif);
  font-size: 14.5px;
  font-weight: 500;
  line-height: 1.6;
  margin: 0 0 8px;
  letter-spacing: 0.02em;
}
.case-card__excerpt {
  font-size: 11.5px;
  line-height: 1.8;
  color: var(--text-light);
  margin: 0;
}
.case-empty { text-align: center; color: var(--text-light); padding: 80px 0; grid-column: 1 / -1; }

/* ---------- Single Case ---------- */
.case-wrap { padding-top: 56px; padding-bottom: 72px; }

.case-title {
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.04em;
  color: var(--text);
  margin: 0 0 28px;
}

.case-info {
  margin: 0 0 28px;
  padding: 18px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.case-info__row {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line-soft);
  font-size: 13.5px;
  line-height: 1.7;
}
.case-info__row:last-child { border-bottom: none; }
.case-info__row dt {
  color: var(--text-light);
  letter-spacing: 0.06em;
  font-weight: 500;
  margin: 0;
}
.case-info__row dd { margin: 0; color: var(--text); }
.case-info__row dd .tag { margin-right: 6px; }

.case-lead {
  margin: 0 0 32px;
  font-size: 14.5px;
  line-height: 2;
  color: var(--text);
  letter-spacing: 0.04em;
}

.case-hero {
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, #b3a294, #ddc5a5);
  background-size: cover;
  background-position: center;
  border-radius: 6px;
  margin-bottom: 24px;
}
.case-sub-images {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 36px;
}
.case-sub-image {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #c9b18a, #b3a294);
  background-size: cover;
  background-position: center;
  border-radius: 6px;
}

.case-body { font-size: 15px; line-height: 2; margin-bottom: 36px; }
.case-body p { margin: 0 0 1.2em; }
.case-body h2 { margin: 48px 0 18px; font-size: 22px; font-family: var(--font-serif); font-weight: 500; line-height: 1.6; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.case-body h3 { margin: 36px 0 14px; font-size: 18px; font-family: var(--font-serif); font-weight: 500; line-height: 1.6; }
.case-body h4 { margin: 28px 0 12px; font-size: 16px; font-family: var(--font-serif); font-weight: 500; }
.case-body img, .case-body figure { max-width: 100%; height: auto; margin: 1em 0; }

.case-mid-image {
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, #b3a294, #ddc5a5);
  background-size: cover;
  background-position: center;
  border-radius: 6px;
  margin: 36px 0;
}

.case-menu {
  margin: 56px auto;
  padding: 32px 36px;
  background: #f8f5ef;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.case-menu__head {
  display: flex;
  flex-direction: column;
  margin: 0 0 16px;
  font-family: var(--font-serif);
}
.case-menu__label {
  font-size: 22px;
  font-weight: 500;
  color: var(--text);
  letter-spacing: 0.06em;
}
.case-menu__note {
  font-size: 11px;
  color: var(--copper);
  letter-spacing: 0.04em;
  margin-top: 4px;
}
.case-menu__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px 24px;
  padding: 0;
  margin: 0 0 16px;
  list-style: none;
  font-size: 13px;
  line-height: 2;
}
.case-menu__list li { padding-left: 1em; position: relative; }
.case-menu__list li::before { content: "・"; position: absolute; left: 0; color: var(--copper); }
.case-menu__plan { margin: 12px 0 0; font-size: 12px; color: var(--text-light); }
.case-menu__plan a { color: var(--copper); }

.case-foot {
  margin-top: 56px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.case-back,
.article-back {
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--text);
}
.case-back:hover,
.article-back:hover { color: var(--copper); opacity: 1; }

/* Share row */
.share-row { display: flex; align-items: center; gap: 10px; font-size: 12px; letter-spacing: 0.1em; color: var(--text-light); }
.share-row a {
  display: inline-flex; justify-content: center; align-items: center;
  width: 30px; height: 30px;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--text);
  text-decoration: none;
}
.share-row a:hover { background: var(--text); color: #fff; opacity: 1; }

/* Related cases */
.case-related { padding-bottom: 80px; }
.case-related__head {
  text-align: center;
  margin: 0 0 36px;
  font-family: var(--font-serif);
}
.case-related__main {
  display: block;
  font-size: 22px;
  font-weight: 500;
  color: var(--text);
  letter-spacing: 0.06em;
}
.case-related__sub {
  display: block;
  font-size: 11px;
  color: var(--copper);
  letter-spacing: 0.04em;
  margin-top: 4px;
}
.case-related__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.case-related__card {
  display: block;
  color: inherit;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
  transition: box-shadow .25s;
}
.case-related__card:hover { box-shadow: var(--shadow-md); opacity: 1; }
.case-related__thumb {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #8a7c6a, #c9b18a);
  background-size: cover;
  background-position: center;
}
.case-related__title {
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 500;
  margin: 16px 18px 4px;
  line-height: 1.55;
}
.case-related__meta {
  font-size: 11px;
  color: var(--text-light);
  margin: 0 18px 18px;
  letter-spacing: 0.04em;
}

/* ---------- Single Column / Article shared ---------- */
.article-wrap { padding-top: 40px; padding-bottom: 56px; }
.article-hero {
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, #b3a294, #ddc5a5);
  background-size: cover;
  background-position: center;
  border-radius: 6px;
  margin-bottom: 24px;
}
.article-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 14px;
  font-size: 12px;
  color: var(--text-light);
}
.article-meta .date { display: inline-flex; align-items: center; gap: 4px; }
.article-title {
  font-family: var(--font-serif);
  font-size: 26px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
  margin: 0 0 18px;
  color: var(--text);
}
.article-lead {
  font-size: 14.5px;
  line-height: 2;
  color: var(--text);
  margin: 0 0 32px;
}
.article-body { font-size: 15px; line-height: 2; }
.article-body p { margin: 0 0 1.2em; }
.article-body img, .article-body figure { max-width: 100%; height: auto; margin: 1em 0; }
.article-body a { color: var(--copper); text-decoration: underline; }
.article-body a:hover { opacity: 0.7; }
.article-foot {
  margin-top: 56px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

/* ============================================================
   Responsive: mobile (≤980px)
   ============================================================ */
@media (max-width: 980px) {
  .col-intro,
  .col-list,
  .col-pager,
  .case-intro,
  .case-list,
  .case-pager,
  .case-wrap,
  .case-related,
  .case-menu,
  .article-wrap {
    padding-left: 24px;
    padding-right: 24px;
  }
  .col-list { grid-template-columns: repeat(2, 1fr); }
  .col-card__thumb { aspect-ratio: 16/9; }
  .case-list { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .case-related__grid { grid-template-columns: 1fr; gap: 20px; }
  .case-info__row { grid-template-columns: 120px 1fr; gap: 12px; font-size: 13px; }
  .case-menu__list { grid-template-columns: 1fr; }
  .case-sub-images { grid-template-columns: 1fr; }
  .case-title { font-size: 22px; }
  .article-title { font-size: 21px; }
}

@media (max-width: 640px) {
  .col-intro,
  .col-list,
  .col-pager,
  .case-intro,
  .case-list,
  .case-pager,
  .case-wrap,
  .case-related,
  .case-menu,
  .article-wrap {
    padding-left: 16px;
    padding-right: 16px;
  }
  .col-card__body { padding: 18px 20px; }
  .col-card__title { font-size: 16px; }
  .case-list { grid-template-columns: 1fr; gap: 18px; }
  .case-card__body { padding: 14px 16px 18px; }
  .case-card__title { font-size: 14px; }
  .case-info { padding: 14px 16px; }
  .case-info__row { grid-template-columns: 100px 1fr; gap: 8px; font-size: 12.5px; padding: 8px 0; }
  .case-menu { padding: 22px 20px; }
  .case-menu__label { font-size: 18px; }
  .case-foot,
  .article-foot { flex-direction: column-reverse; align-items: flex-start; }
  .share-row { width: 100%; justify-content: flex-start; }
}

/* ============================================================
   Column blog parts (used inside .article-body)
   ============================================================ */
:root {
  --bp-navy:  #173860;
  --bp-copper:#BA7843;
}

.text-color-1 { color: var(--bp-navy); }
.text-color-2 { color: var(--bp-copper); }

.text-yellow {
  background-image: linear-gradient(transparent 50%, #ffff00 50%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  padding: 0 0.05em;
}

.post-box {
  border: 1.5px solid var(--bp-navy);
  border-radius: 6px;
  padding: 26px 32px;
  margin: 32px 0;
  background: #fff;
  line-height: 2;
}
.post-box > *:first-child { margin-top: 0; }
.post-box > *:last-child  { margin-bottom: 0; }

.mh_post-h2 {
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 500;
  line-height: 1.55;
  color: var(--bp-navy);
  margin: 56px 0 24px;
  padding: 10px 14px 10px 20px;
  border-left: 6px solid var(--bp-copper);
  border-bottom: 1px solid var(--bp-navy);
  letter-spacing: 0.04em;
}

.mh_post-h3 {
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--bp-navy);
  margin: 44px 0 20px;
  padding: 0 0 10px 72px;
  border-bottom: 2px solid var(--bp-copper);
  letter-spacing: 0.04em;
  background: url("data:image/png;base64,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") left center / 60px auto no-repeat;
  min-height: 36px;
  display: flex;
  align-items: center;
}

.mh_post-h4 {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--bp-navy);
  margin: 36px 0 16px;
  padding-left: 14px;
  border-left: 3px solid var(--bp-copper);
  letter-spacing: 0.04em;
}

/* ============================================================
   QE widget — rectangular banner card to match theme c-bnr-estimate.
   The theme's banner is an image (c_bnr_estimate.webp). We render
   the same image as the widget background and hide the legacy
   text-only inner content.
   ============================================================ */
.qe-widget {
  position: absolute;
  top: 50%;
  right: 56px;
  transform: translateY(-50%);
  width: 252px;
  height: 182px;
  /* aspect-ratio kept by fixed w/h; image scales via cover */
  background: transparent
    url('/wp-content/themes/anchor/assets/img/common/c_bnr_estimate.webp')
    no-repeat center / contain;
  border-radius: 0;
  box-shadow: var(--shadow-md);
  z-index: 2;
  padding: 0;
  text-indent: -9999px;
  overflow: hidden;
  cursor: pointer;
}
.qe-widget::before {
  /* clickable overlay so the whole banner acts like a link to /estimate/ */
  content: "";
  position: absolute;
  inset: 0;
}
.qe-widget::after { display: none; }
.qe-widget em,
.qe-widget strong,
.qe-widget span,
.qe-widget small { display: none; }
@media (max-width: 920px) {
  .qe-widget { display: none; }
}
/* Hide QE on /estimate/ (user is already on the estimate form) */
body.page-id-260 .qe-widget,
body.page-id-260 .qe-widget--draggable,
.form-section--estimate ~ * .qe-widget--draggable,
body.no-qe-widget .qe-widget,
body.no-qe-widget .qe-widget--draggable {
  display: none !important;
}

/* ============================================================
   Draggable QE widget (set by qe-drag.js)
   ============================================================ */
.qe-widget--draggable {
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}
.qe-widget--draggable.is-dragging {
  cursor: grabbing;
  box-shadow: 0 18px 48px rgba(82, 75, 68, 0.22);
}
.qe-widget__close {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  background: rgba(255, 255, 255, 0.95);
  color: var(--text-light);
  font-size: 16px;
  line-height: 1;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  z-index: 3;
}
.qe-widget__close:hover { color: var(--copper); }
.qe-widget__hint {
  position: absolute;
  bottom: -22px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--text-mute);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s;
}
.qe-widget--draggable:hover .qe-widget__hint,
.qe-widget--draggable.is-dragging .qe-widget__hint { opacity: 1; }



/* ============================================================
   Additional CSS
   ============================================================ */

.footer--bnr-margin .c-gnav, .footer--bnr-margin .footer__btm {
  margin-right: 0 !important;
}
@media screen and (max-width: 767px) {
  .footer .footer__row {
    flex-direction: column !important;
  }
}
.footer .footer__row::after {
  width: max(92px, 23.16%);
  height: auto;
  padding-bottom: 16.73%;
  flex: 0 1 auto;
}
@media screen and (max-width: 767px) {
  .footer .footer__row::after {
    width: min(100%, 252px);
    height: 182px;
  }
  .footer--bnr-margin {
    padding-bottom: 0 !important;
  }
  .c-logo--footer {
    margin-inline: auto;
  }
}

.faq-group .faq-list {
  margin-top: 30px;
}
@media screen and (max-width: 767px) {
  .faq-group .faq-list {
    padding-inline: 0;
  }
}
