/* Shared design tokens. Page-specific content uses the same semantic primitives. */
:root {
  --cream:#fffbf1;
  --yellow:#f9c83d;
  --orange:#d65923;
  --ink:#34291f;
  --muted:#6b6055;
  --line:#ded7c8;
  --white:#fff;
  --max:1200px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}

body {
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Noto Sans JP',sans-serif;
  font-size:15px;
  line-height:1.95;
  overflow-wrap:anywhere;
}

a {
  color:inherit;
  text-decoration:none;
}

button,input,textarea {
  font:inherit;
}

button,a,input,textarea {
  -webkit-tap-highlight-color:transparent;
}

button {
  cursor:pointer;
}

img {
  max-width:100%;
  height:auto;
  display:block;
}

figure,p,h1,h2,h3 {
  margin:0;
}

ul,ol {
  margin:0;
  padding:0;
}

h1,h2,h3 {
  font-weight:700;
  line-height:1.6;
  letter-spacing:.03em;
}

a,button {
  transition:color .2s,background .2s,transform .2s;
}

a:hover {
  color:var(--orange);
}

:focus-visible {
  outline:3px solid var(--orange);
  outline-offset:5px;
}

button:focus-visible,input:focus-visible,textarea:focus-visible {
  outline-offset:3px;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
  border:0;
  border-radius:50px;
  padding:18px 28px;
  background:var(--orange);
  color:white;
  font-size:14px;
  font-weight:600;
  line-height:1.5;
}

.button:hover {
  background:#ad4018;
  color:white;
  transform:translateY(-2px);
}

.button-small {
  padding:16px 24px;
  font-size:13px;
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:50px;
  border-bottom:1px solid var(--ink);
  padding:12px 0;
  font-weight:600;
}

.eyebrow,.hero-label {
  font-family:'DM Sans',sans-serif;
  letter-spacing:.15em;
  font-weight:700;
  font-size:12px;
  color:var(--orange);
  line-height:1.4;
}

.section-wrap {
  max-width:var(--max);
  margin:auto;
  padding:105px 34px;
}

.section-heading {
  position:relative;
  margin-bottom:45px;
}

.section-heading h2 {
  font-size:36px;
  margin-top:15px;
}

.section-heading>p:last-of-type:not(.eyebrow) {
  margin-top:20px;
  color:var(--muted);
}

.site-header {
  position:relative;
  z-index:10;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:24px 3.5%;
  background:var(--cream);
  border-bottom:1px solid rgba(52,41,31,.12);
}

.brand {
  display:flex;
  align-items:center;
  gap:16px;
  flex-shrink:0;
}

.brand-mark {
  font-family:'DM Sans',sans-serif;
  font-weight:700;
  font-size:42px;
  line-height:1;
  letter-spacing:-.1em;
  color:var(--orange);
}

.brand-mark span {
  color:#ce8f00;
}

.brand-name {
  font-weight:700;
  font-size:19px;
  line-height:1.5;
}

.brand-name small {
  display:block;
  font-size:10px;
  letter-spacing:.03em;
  font-weight:500;
}

.site-nav {
  display:flex;
  align-items:center;
  gap:25px;
  font-size:12px;
  font-weight:600;
}

.menu-toggle {
  display:none;
}

.hero {
  position:relative;
  max-width:1600px;
  min-height:710px;
  margin:auto;
  padding:112px 6% 110px;
  isolation:isolate;
}

.hero h1 {
  font-size:clamp(36px,4.2vw,65px);
  line-height:1.55;
  margin:23px 0 25px;
  letter-spacing:.04em;
}

.hero h1 span {
  color:var(--orange);
}

.hero-copy {
  font-size:15px;
  line-height:2.3;
  margin-bottom:28px;
}

.hero-label {
  color:var(--ink);
}

.hero-image {
  position:absolute;
  right:1.6%;
  top:40px;
  width:53%;
  height:590px;
  z-index:-1;
}

.hero-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:62% center;
  border-radius:48% 48% 45% 45% / 57% 54% 43% 43%;
  transform:rotate(6deg);
}

.hero-image::before {
  content:'';
  position:absolute;
  inset:-8px -2px 18px 20px;
  background:var(--yellow);
  border-radius:48% 48% 45% 45% / 57% 54% 43% 43%;
  transform:rotate(-6deg);
  z-index:-1;
}

.hero-image figcaption {
  position:absolute;
  bottom:-20px;
  right:45px;
  font-family:'DM Sans',sans-serif;
  font-size:15px;
  transform:rotate(-5deg);
}

.hero-scroll {
  position:absolute;
  bottom:40px;
  left:auto;
  font-family:'DM Sans',sans-serif;
  font-size:10px;
  letter-spacing:.13em;
}

.announcement {
  display:flex;
  align-items:center;
  gap:35px;
  padding:24px max(6%, calc((100vw - 1600px) / 2 + 6vw));
  background:var(--yellow);
  font-size:14px;
}

.announcement>span {
  font-family:'DM Sans',sans-serif;
  font-weight:700;
  font-size:12px;
  letter-spacing:.1em;
}

.announcement a {
  flex:1;
  display:flex;
  justify-content:space-between;
  gap:20px;
}

.intro {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 80px;
  position:relative;
}

.intro>.eyebrow {
  grid-column:2;
  grid-row:1;
}

.intro h2 {
  grid-column:2;
  grid-row:2;
  font-size:36px;
}

.intro-copy {
  grid-column:2;
  grid-row:3;
  color:var(--muted);
  margin-top:10px;
}

.intro>.text-link {
  grid-column:2;
  grid-row:4;
  justify-self:start;
  margin-top:14px;
}

.intro-image {
  grid-column:1;
  grid-row:1/5;
  align-self:center;
}

.intro-image img {
  height:500px;
  width:100%;
  object-fit:cover;
  border-radius:46% 48% 42% 45% / 45% 48% 50% 53%;
}

.services {
  border-top:1px solid var(--line);
}

.services .section-heading>p:last-of-type {
  position:absolute;
  right:0;
  bottom:12px;
}

.service-list {
  list-style:none;
  border-top:1px solid var(--line);
  margin-bottom:32px;
}

.service-list li {
  display:grid;
  grid-template-columns:65px 260px 1fr 35px;
  gap:22px;
  align-items:center;
  padding:37px 0;
  border-bottom:1px solid var(--line);
}

.service-number {
  font-family:'DM Sans',sans-serif;
  font-size:20px;
  color:var(--orange);
}

.service-list h3 {
  font-size:21px;
}

.service-list p {
  color:var(--muted);
  font-size:14px;
}

.services>.button {
  float:right;
}

.services::after {
  content:'';
  display:block;
  clear:both;
}

.products {
  max-width:none;
  background:#f6ecd5;
  padding-left:max(34px,calc((100% - 1132px)/2));
  padding-right:max(34px,calc((100% - 1132px)/2));
  border-radius:90px 90px 0 0;
}

.product-grid {
  list-style:none;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
  margin-bottom:32px;
}

.product-grid figure {
  overflow:hidden;
  background:white;
  border-radius:18px;
  margin-bottom:22px;
}

.product-grid img {
  width:100%;
  height:280px;
  object-fit:contain;
  transition:transform .4s;
}

.product-grid a:hover img {
  transform:scale(1.035);
}

.product-grid .eyebrow {
  font-size:10px;
}

.product-grid h3 {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:19px;
  margin:10px 0;
}

.product-grid p:last-child {
  color:var(--muted);
  font-size:13px;
}

.news-section .section-heading {
  margin-bottom:38px;
}

.news-section .section-heading>.text-link {
  position:absolute;
  right:0;
  bottom:6px;
  font-size:13px;
}

.news-list {
  list-style:none;
  border-top:1px solid var(--line);
}

.news-list li {
  border-bottom:1px solid var(--line);
}

.news-list a {
  display:flex;
  align-items:center;
  gap:25px;
  padding:28px 0;
}

.news-list time {
  font-family:'DM Sans',sans-serif;
  color:var(--muted);
  font-size:13px;
  flex-shrink:0;
}

.news-category {
  display:inline-block;
  border:1px solid var(--line);
  border-radius:50px;
  padding:3px 15px;
  white-space:nowrap;
  font-size:11px;
}

.news-list h3,.news-list h2 {
  font-size:15px;
  font-weight:500;
  flex:1;
}

.knowledge-links {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:35px;
  font-size:13px;
}

.knowledge-links a {
  padding:16px 20px;
  background:#f2ecdc;
  border-radius:8px;
}

.contact-section {
  max-width:none;
  background:var(--yellow);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  padding-left:max(34px,calc((100% - 1132px)/2));
  padding-right:max(34px,calc((100% - 1132px)/2));
  border-radius:90px 90px 0 0;
}

.contact-section h2 {
  font-size:35px;
  margin:20px 0;
}

.contact-section header>p:not(.eyebrow) {
  font-size:14px;
}

.contact-phone {
  display:flex;
  align-items:center;
  gap:20px;
  font-family:'DM Sans',sans-serif;
  font-weight:600;
  font-size:36px;
  margin:28px 0 5px;
}

.contact-form>label:not(.privacy-check) {
  display:block;
  font-size:13px;
  font-weight:600;
  margin-bottom:19px;
}

.contact-form>label>span {
  font-size:10px;
  margin-left:10px;
  color:#81340c;
}

.contact-form input:not([type=checkbox]):not([type=hidden]),.contact-form textarea {
  display:block;
  width:100%;
  border:1px solid #dfac23;
  border-radius:8px;
  background:#fffaf0;
  padding:12px;
  margin-top:8px;
  color:var(--ink);
  font-size:16px;
}

.contact-form textarea {
  resize:vertical;
}

.form-note {
  font-size:12px;
  margin-bottom:20px;
}

.site-footer {
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 50px;
  padding:65px max(34px,calc((100% - 1132px)/2)) 35px;
  background:var(--cream);
}

.footer-brand {
  font-size:25px;
  font-weight:700;
}

.footer-brand small {
  display:block;
  font-size:12px;
}

.site-footer address {
  grid-column:1;
  font-style:normal;
  font-size:12px;
  color:var(--muted);
}

.site-footer nav {
  grid-column:2;
  grid-row:1/3;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
  font-size:12px;
  align-content:center;
}

.copyright {
  grid-column:1/3;
  border-top:1px solid var(--line);
  padding-top:25px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--muted);
}

.back-top {
  position:absolute;
  right:30px;
  bottom:25px;
  border:1px solid var(--line);
  border-radius:50%;
  width:44px;
  height:44px;
  text-align:center;
  font-size:22px;
}

.page-heading {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:100px max(34px,calc((100% - var(--max)) / 2 + 34px)) 108px;
  max-width:none;
  margin:24px 0 64px;
  color:var(--ink);
  background:var(--heading-photo,url('header-company.webp')) center top / cover no-repeat;
  border-radius:0;
  border:0;
}

.page-heading .eyebrow {
  color:var(--orange);
  margin-bottom:12px;
}

.page-heading::before,.page-heading::after {
  content:none;
}

.page-heading h1 {
  font-size:clamp(36px,3.2vw,48px);
  margin-top:12px;
  max-width:650px;
}

.page-heading>p:last-child:not(.eyebrow) {
  margin-top:15px;
}

.breadcrumb {
  display:flex;
  gap:12px;
  max-width:var(--max);
  padding:22px 34px 0;
  margin:auto;
  font-size:11px;
  color:var(--muted);
}

.prose {
  max-width:900px;
  margin:0 auto;
  padding:0 34px 100px;
}

.prose p,.prose ul,.prose ol,.prose table,.prose figure,.prose blockquote {
  margin-bottom:25px;
}

.prose h2 {
  font-size:25px;
  margin:52px 0 23px;
  padding-left:20px;
  border-left:4px solid var(--yellow);
}

.prose h3 {
  font-size:20px;
  margin:32px 0 18px;
}

.prose>h2:first-child {
  margin-top:0;
}

.prose a {
  color:var(--orange);
  text-decoration:underline;
  text-underline-offset:4px;
}

.prose ul,.prose ol {
  padding-left:25px;
}

.prose figure {
  margin:30px auto;
}

.prose img {
  max-height:700px;
  object-fit:contain;
  margin:auto;
  border-radius:10px;
}

.prose iframe {
  border:0;
  max-width:100%;
  width:100%;
  aspect-ratio:16/9;
  height:auto;
}

.prose video {
  max-width:100%;
  height:auto;
}

.prose table {
  display:block;
  max-width:100%;
  overflow:auto;
  border-collapse:collapse;
  font-size:14px;
}

.prose td,.prose th {
  border:1px solid var(--line);
  padding:14px;
  min-width:100px;
}

.prose th {
  background:#f6ecd5;
}

.prose figcaption {
  font-size:12px;
  text-align:center;
  color:var(--muted);
  margin-top:10px;
}

.prose blockquote {
  padding:20px;
  border-left:4px solid var(--yellow);
  background:#f6ecd5;
}

.prose .wp-block-columns {
  gap:24px;
}

.post-meta {
  font-size:12px;
  color:var(--muted);
}

.post-navigation {
  display:flex;
  justify-content:space-between;
  gap:25px;
  border-top:1px solid var(--line);
  padding:25px 0;
  margin-top:50px;
  font-size:13px;
}

.contact-banner {
  text-align:center;
  background:var(--yellow);
  padding:80px 24px;
  border-radius:80px 80px 0 0;
}

.contact-banner h2 {
  font-size:33px;
  margin:20px 0;
}

.contact-banner .button {
  margin-top:25px;
}

.page-main>.news-section,.page-main>.page-products {
  padding-top:20px;
}

.company-facts {
  display:grid;
  grid-template-columns:170px 1fr;
  border-top:1px solid var(--line);
}

.company-facts dt,.company-facts dd {
  padding:19px;
  border-bottom:1px solid var(--line);
  margin:0;
}

.company-facts dt {
  font-weight:600;
  background:#f6ecd5;
}

.company-facts dd {
  background:#fffdf8;
}

.consulting-detail {
  margin-top:45px;
  padding-top:35px;
  border-top:1px solid var(--line);
}

.consulting-detail .eyebrow {
  margin-bottom:12px;
}

.page-products {
  padding-top:0;
}

.page-numbers {
  display:block;
  margin-top:25px;
}

.page-numbers a,.page-numbers.current {
  display:inline-block;
  padding:8px 14px;
  background:#f6ecd5;
  margin:4px;
  border-radius:8px;
}

.screen-reader-text,.skip-link:not(:focus) {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
}

.skip-link:focus {
  position:fixed;
  left:20px;
  top:15px;
  z-index:100;
  background:white;
  padding:10px 20px;
}

.editor-styles-wrapper {
  background:var(--cream);
  color:var(--ink);
  font-family:'Noto Sans JP',sans-serif;
}

.editor-styles-wrapper .wp-block {
  max-width:832px;
}

.editor-styles-wrapper h2 {
  font-size:25px;
  border-left:4px solid var(--yellow);
  padding-left:20px;
}

@media(min-width:1600px) {
  .hero {
    padding-left:8%;
    padding-right:8%;
  }
  .hero-image {
    right:3%;
  }
  .hero-scroll {
    left:auto;
  }
}

@media(max-width:1100px) {
  .site-header {
    padding:20px 28px;
  }
  .menu-toggle {
    display:flex;
    gap:14px;
    align-items:center;
    background:none;
    border:0;
    padding:10px;
    font-size:13px;
  }
  .site-nav {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    padding:24px 28px;
    background:var(--cream);
    box-shadow:0 12px 20px #34291f12;
  }
  .site-nav.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .site-nav>a {
    padding:16px 12px;
    border-bottom:1px solid var(--line);
  }
  .site-nav>.button {
    margin-top:15px;
    border:0;
  }
  .hero {
    min-height:640px;
    padding-top:95px;
  }
  .hero h1 {
    font-size:45px;
  }
  .hero-image {
    height:480px;
    top:70px;
    width:51%;
    right:1%;
  }
  .hero-copy {
    font-size:13px;
  }
  .intro {
    gap:20px 45px;
  }
  .intro h2 {
    font-size:30px;
  }
  .intro-image img {
    height:430px;
  }
  .service-list li {
    grid-template-columns:50px 210px 1fr 25px;
    gap:15px;
  }
  .service-list h3 {
    font-size:19px;
  }
  .product-grid {
    gap:22px;
  }
  .product-grid img {
    height:220px;
  }
  .contact-section {
    gap:40px;
  }
  .contact-section h2 {
    font-size:28px;
  }
}

@media(max-width:760px) {
  body {
    font-size:14px;
  }
  .site-header {
    padding:16px 20px;
  }
  .brand-mark {
    font-size:35px;
  }
  .brand-name {
    font-size:16px;
  }
  .brand-name small {
    font-size:9px;
  }
  .brand {
    gap:13px;
  }
  .menu-toggle {
    font-size:11px;
    padding:8px 0;
  }
  .section-wrap {
    padding:65px 22px;
  }
  .section-heading h2 {
    font-size:27px;
  }
  .hero {
    padding:43px 24px 62px;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  .hero-label {
    font-size:10px;
  }
  .hero h1 {
    font-size:34px;
    margin:19px 0;
  }
  .hero-copy {
    font-size:12px;
    line-height:2.2;
    margin-bottom:24px;
  }
  .hero>.button {
    align-self:start;
    padding:15px 23px;
  }
  .hero-image {
    position:relative;
    right:auto;
    top:auto;
    order:5;
    width:100%;
    height:340px;
    margin-top:35px;
  }
  .hero-image figcaption {
    font-size:12px;
    right:20px;
    bottom:-15px;
  }
  .hero-scroll {
    display:none;
  }
  .announcement {
    padding:20px 24px;
    gap:20px;
    font-size:12px;
  }
  .announcement>span {
    font-size:10px;
  }
  .intro {
    grid-template-columns:1fr;
    gap:18px;
  }
  .intro>.eyebrow,.intro h2,.intro-copy,.intro>.text-link,.intro-image {
    grid-column:1;
    grid-row:auto;
  }
  .intro-image {
    grid-row:5;
    margin-top:22px;
  }
  .intro-image img {
    height:360px;
    width:85%;
    margin:auto;
  }
  .intro h2 {
    font-size:29px;
  }
  .intro-copy {
    font-size:13px;
  }
  .services .section-heading>p:last-of-type {
    position:static;
    font-size:13px;
    margin-top:20px;
  }
  .service-list li {
    grid-template-columns:38px 1fr 25px;
    padding:26px 0;
    gap:8px 15px;
  }
  .service-list h3 {
    font-size:19px;
  }
  .service-list p {
    grid-column:2/4;
    grid-row:2;
    font-size:13px;
  }
  .services>.button {
    float:none;
  }
  .products {
    border-radius:40px 40px 0 0;
  }
  .product-grid {
    grid-template-columns:1fr;
    gap:35px;
  }
  .product-grid img {
    height:270px;
  }
  .product-grid h3 {
    font-size:20px;
  }
  .news-section .section-heading>.text-link {
    position:static;
    margin-top:17px;
  }
  .news-list a {
    flex-wrap:wrap;
    gap:10px 16px;
    padding:23px 0;
  }
  .news-list h3,.news-list h2 {
    flex-basis:calc(100% - 45px);
    font-size:14px;
  }
  .knowledge-links {
    grid-template-columns:1fr;
    gap:10px;
  }
  .contact-section {
    grid-template-columns:1fr;
    gap:35px;
    border-radius:40px 40px 0 0;
  }
  .contact-section h2 {
    font-size:28px;
  }
  .contact-section header>p:not(.eyebrow) {
    font-size:12px;
  }
  .contact-phone {
    font-size:32px;
  }
  .site-footer {
    grid-template-columns:1fr;
    padding:45px 24px 26px;
    gap:18px;
  }
  .site-footer nav {
    grid-column:1;
    grid-row:auto;
    gap:12px;
    margin:15px 0;
  }
  .copyright {
    grid-column:1;
    padding-right:50px;
    font-size:9px;
  }
  .footer-brand {
    font-size:22px;
  }
  .page-heading {
    padding:52px 24px 56px;
    margin:20px 0 40px;
    background-size:auto 100%;
    background-position:40% center;
    border-radius:0;
  }
  .page-heading::before {
    right:-65px;
    opacity:.45;
  }
  .page-heading::after {
    right:-30px;
    opacity:.2;
  }
  .page-heading h1 {
    font-size:29px;
  }
  .breadcrumb {
    padding:18px 24px 0;
    font-size:10px;
  }
  .prose {
    padding:0 24px 65px;
  }
  .prose h2 {
    font-size:21px;
    margin-top:38px;
  }
  .prose h3 {
    font-size:18px;
  }
  .company-facts {
    grid-template-columns:100px 1fr;
    font-size:12px;
  }
  .company-facts dt,.company-facts dd {
    padding:15px 10px;
  }
  .contact-banner {
    border-radius:40px 40px 0 0;
    padding:60px 24px;
  }
  .contact-banner h2 {
    font-size:27px;
  }
  .contact-banner p {
    font-size:13px;
  }
  .post-navigation {
    flex-direction:column;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  * {
    transition:none!important;
  }
}

/* Contact Form 7 validation and acceptance states. */
.wpcf7 {
  min-width:0;
}

.wpcf7 .wpcf7-form-control-wrap {
  display:block;
}

.wpcf7-not-valid-tip {
  font-size:12px;
  color:#8c2509;
  margin-top:6px;
}

.wpcf7 form .wpcf7-response-output {
  margin:25px 0 0;
  padding:16px;
  border-radius:8px;
  background:#fffbf1;
  color:var(--ink);
}

.wpcf7-acceptance {
  font-size:12px;
}

.wpcf7-list-item {
  margin:0;
}

.wpcf7-list-item label {
  display:flex;
  gap:10px;
  align-items:center;
  margin:20px 0;
}

.wpcf7-acceptance input {
  width:18px;
  height:18px;
  accent-color:var(--orange);
}

.wpcf7-acceptance a {
  text-decoration:underline;
}

.wpcf7 .wpcf7-submit {
  width:auto!important;
  background:var(--orange)!important;
  color:white!important;
  border:0!important;
  font-size:14px!important;
  padding:18px 30px!important;
  cursor:pointer;
  border-radius:40px!important;
}

.wpcf7 .wpcf7-submit:disabled {
  opacity:.55;
  cursor:not-allowed;
}

.wpcf7 .wpcf7-submit:hover {
  background:#ad4018!important;
}

.brand>img {
  width:247px;
  height:auto;
}

.hero h1 small {
  display:block;
  font-size:13px;
  font-weight:500;
  letter-spacing:.12em;
  margin-bottom:18px;
  color:var(--muted);
}

@media(max-width:760px) {
  .brand>img {
    width:210px;
  }
  .hero h1 small {
    font-size:11px;
    letter-spacing:.06em;
    margin-bottom:13px;
  }
}

.contact-panel {
  min-width:0;
}

.contact-form textarea {
  min-height:160px;
}

@media(min-width:761px) {
  .hero-image {
    right:4%;
  }
}

.prose .process-list {
  list-style-position:inside;
  padding:0;
  counter-reset:process;
}

.process-list li {
  padding:16px 20px;
  margin-bottom:8px;
  background:#f6ecd5;
  border-radius:8px;
}

/* Decorative icons are drawn with CSS, never with arrow characters. */
.button:not(input)::after,
.text-link::after,
.announcement a::after,
.product-grid h3::after,
.knowledge-links a::after,
.news-list a::after {
  content: '';
  display: block;
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  align-self: center;
}

.knowledge-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}

.back-top {
  display: flex;
  align-items: center;
  justify-content: center;
}

.back-top::before {
  content: '';
  width: 8px;
  height: 8px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateY(2px) rotate(-45deg);
}

.menu-icon {
  width: 17px;
  height: 12px;
  display: block;
  border-top: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  position: relative;
}

.menu-icon::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  border-top: 1.5px solid currentColor;
  transform: translateY(-50%);
}

.hero-scroll::after {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-left: 12px;
  vertical-align: 2px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
}

/* The president's book and the original three purchase destinations. */
.book-section {
  display: grid;
  grid-template-columns: 340px 1fr;
  align-items: center;
  gap: 90px;
  border-top: 1px solid var(--line);
}

.book-cover img {
  width: 250px;
  height: auto;
  margin: auto;
  box-shadow: 12px 18px 35px #34291f18;
}

.book-copy h2 {
  font-size: 36px;
  margin: 20px 0;
}

.book-subtitle {
  color: var(--muted);
  font-size: 15px;
}

.book-author {
  font-size: 13px;
  margin-top: 20px;
}

.book-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.book-links .button {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--line);
  padding: 15px 20px;
  gap: 20px;
  font-size: 12px;
}

.book-links .button:hover {
  background: var(--yellow);
}

@media (max-width: 760px) {
  .book-section {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .book-copy h2 {
    font-size: 29px;
  }
  .book-cover img {
    width: 200px;
  }
  .book-links {
    flex-direction: column;
    align-items: stretch;
  }
}

.president-photo {
  float: right;
  width: 260px;
  margin: 0 0 30px 40px;
}

.president-photo img {
  width: 100%;
  height: auto;
}

.prose .company-facts {
  clear: both;
}

@media (max-width: 760px) {
  .president-photo {
    float: none;
    width: 230px;
    margin: 0 auto 30px;
  }
}

/* Keep the partner logos in their original brand colors and proportions. */
.partner-section {
  border-top: 1px solid var(--line);
}

.partner-logos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  list-style: none;
}

.partner-logos li {
  display: flex;
  align-items: center;
  justify-content: center;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 30px;
  min-height: 130px;
}

.partner-logos img {
  width: 100%;
  height: 80px;
  object-fit: contain;
}

@media (max-width: 760px) {
  .partner-logos {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .partner-logos li {
    min-height: 105px;
    padding: 18px;
  }
  .partner-logos img {
    height: 60px;
  }
}

/* Original content remains readable within the redesigned sections. */
.source-copy {
  max-width:850px;
  line-height:2;
  margin:28px 0;
}

.intro .source-copy {
  grid-column:2;
}

.source-copy h3 {
  font-size:22px;
  line-height:1.7;
  margin-bottom:18px;
}

.news-thumbnail {
  width:180px;
  aspect-ratio:16/10;
  object-fit:cover;
  border-radius:12px;
}

.news-list a {
  flex-wrap:wrap;
}

.news-excerpt {
  width:100%;
  line-height:1.8;
  color:var(--muted);
}

.social-link {
  margin-top:30px;
}

@media(max-width:760px) {
  .intro .source-copy {
    grid-column:1
  }
  .news-thumbnail {
    width:100%;
    max-width:260px
  }
  .source-copy h3 {
    font-size:19px
  }
}

.uv-intro {
  display:flow-root
}

.uv-intro figure {
  float:right;
  width:44%;
  margin:0 0 32px 6%
}

.uv-intro img {
  width:100%;
  border-radius:28px
}

.uv-page h2 {
  font-size:clamp(26px,3vw,40px);
  line-height:1.65;
  margin:0 0 28px
}

.uv-page h3 {
  font-size:22px;
  line-height:1.65;
  margin:28px 0 18px
}

.uv-page p,.uv-page li {
  line-height:2
}

.uv-nav {
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  padding-top:0;
  padding-bottom:32px
}

.uv-nav a {
  border-bottom:2px solid var(--orange);
  padding:10px 0
}

.uv-section {
  padding-top:64px;
  padding-bottom:64px;
  border-top:1px solid var(--line)
}

.uv-section>p {
  max-width:950px
}

.air-diagram {
  background:var(--yellow);
  border-radius:24px;
  padding:32px;
  margin:40px 0
}

.air-diagram figcaption {
  font-weight:700;
  font-size:20px
}

.air-diagram ol,.uv-steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  list-style:none;
  padding:0;
  counter-reset:step
}

.air-diagram li,.uv-steps li {
  position:relative;
  background:#fffaf0;
  border-radius:16px;
  padding:22px
}

.air-diagram strong,.air-diagram span {
  display:block
}

.air-diagram li:not(:last-child)::after {
  content:"";
  position:absolute;
  right:-16px;
  top:45%;
  width:9px;
  height:9px;
  border-right:2px solid var(--orange);
  border-top:2px solid var(--orange);
  transform:rotate(45deg)
}

.uv-steps li {
  counter-increment:step
}

.uv-steps li::before {
  content:"0" counter(step);
  color:var(--orange);
  font-family:'DM Sans',sans-serif;
  font-weight:700;
  font-size:26px
}

.uv-steps h3 {
  margin-top:12px
}

.uv-page table {
  width:100%;
  border-collapse:collapse;
  margin:32px 0
}

.uv-page caption {
  text-align:left;
  margin-bottom:14px;
  font-weight:700
}

.uv-page th,.uv-page td {
  padding:20px;
  border-bottom:1px solid var(--line);
  text-align:left;
  line-height:1.8
}

.uv-page thead {
  background:var(--yellow)
}

.research-note {
  padding:28px;
  background:#fff;
  border-left:4px solid var(--orange);
  margin-top:32px
}

.research-note h3 {
  margin-top:0
}

.uv-page details {
  padding:24px 0;
  border-bottom:1px solid var(--line)
}

.uv-page summary {
  font-weight:700;
  cursor:pointer;
  font-size:18px
}

.uv-page details p {
  margin:20px 0 0
}

@media(max-width:760px) {
  .uv-intro figure {
    float:none;
    width:100%;
    margin:0 0 28px
  }
  .air-diagram ol,.uv-steps {
    grid-template-columns:1fr
  }
  .air-diagram li:not(:last-child)::after {
    right:50%;
    top:auto;
    bottom:-16px;
    transform:rotate(135deg)
  }
  .uv-page th,.uv-page td {
    padding:12px;
    font-size:14px
  }
  .uv-section {
    padding-top:42px;
    padding-bottom:42px
  }
  .uv-nav {
    gap:12px;
    font-size:14px
  }
}

.intro-overview {
  grid-column:2;
  line-height:1.9;
  font-size:15px
}

.uv-intro {
  padding-top:30px;
  padding-bottom:50px
}

.uv-intro figcaption {
  font-size:12px;
  line-height:1.7;
  color:var(--muted);
  margin-top:12px
}

@media(max-width:760px) {
  .intro-overview {
    grid-column:1
  }
}

@media(min-width:1600px) {
  .announcement {
    padding-left:calc((100vw - 1600px)/2 + 8vw);
    padding-right:calc((100vw - 1600px)/2 + 8vw)
  }
}

/* Detail pages: a consistent reading width with purposefully sized source media. */
.detail-intro {
  padding-top:20px;
  padding-bottom:40px;
  max-width:1000px;
}

.detail-page h2,.page-products h2 {
  font-size:clamp(26px,3vw,38px);
  line-height:1.6;
  margin:0 0 24px;
}

.detail-page h3 {
  font-size:21px;
  line-height:1.7;
  margin:28px 0 16px;
}

.detail-page p,.detail-page li {
  line-height:2;
}

.detail-page p {
  margin-bottom:20px;
}

.detail-intro>p:not(.eyebrow) {
  max-width:820px;
}

.detail-nav {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  padding-top:0;
  padding-bottom:40px;
}

.detail-nav a,.uv-nav a {
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:14px 20px;
  line-height:1.6;
  transition:border-color .2s;
}

.detail-nav a:hover,.uv-nav a:hover {
  border-color:var(--orange);
}

.detail-nav span {
  color:var(--orange);
  margin-right:10px;
  font-weight:700;
}

.consulting-page .detail-nav {
  display:grid;
  grid-template-columns:repeat(3,1fr);
}

.detail-section {
  padding-top:60px;
  padding-bottom:60px;
  border-top:1px solid var(--line);
}

.detail-section>p,.detail-section>ul:not(.detail-gallery),.detail-section>ol,.detail-section>h3 {
  max-width:850px;
}

.detail-section ul:not(.detail-gallery),.detail-section ol:not(.consulting-steps) {
  padding-left:24px;
  margin:20px 0 28px;
}

.detail-section>.source-label {
  font-family:'DM Sans',sans-serif;
  color:var(--orange);
  letter-spacing:.12em;
  font-size:12px;
  font-weight:700;
}

.service-content {
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:50px;
  align-items:start;
}

.service-content:not(:has(>figure)) {
  grid-template-columns:1fr;
  max-width:900px;
}

.service-content>figure {
  position:sticky;
  top:30px;
  background:#fff;
  padding:18px;
  border-radius:16px;
  margin:0;
}

.service-content img {
  width:100%;
  height:auto;
  object-fit:contain;
  border-radius:8px;
}

.service-copy>p:first-of-type {
  font-size:18px;
  font-weight:700;
}

.detail-insight {
  border-left:3px solid var(--orange);
  padding:4px 0 4px 24px;
  margin-top:32px;
}

.detail-insight h3 {
  margin:0 0 12px;
  font-size:18px;
}

.detail-insight p {
  margin:0;
}

.consulting-steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  padding:0;
  list-style:none;
  margin:30px 0 40px;
  counter-reset:steps;
}

.consulting-steps li {
  counter-increment:steps;
  border-top:3px solid var(--yellow);
  padding-top:18px;
}

.consulting-steps li::before {
  content:'0' counter(steps);
  font:700 25px 'DM Sans',sans-serif;
  color:var(--orange);
}

.consulting-steps h3 {
  margin:12px 0;
  font-size:19px;
}

.detail-specs {
  display:grid;
  grid-template-columns:200px 1fr;
  max-width:900px;
  background:#fff;
  border-radius:12px;
  overflow:hidden;
  margin:28px 0;
}

.detail-specs dt,.detail-specs dd {
  margin:0;
  padding:20px 24px;
  border-bottom:1px solid var(--line);
  line-height:1.8;
}

.detail-specs dt {
  background:#fff2c9;
  font-weight:700;
}

.detail-note {
  font-size:13px;
  color:var(--muted);
}

.detail-gallery {
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  margin:30px 0;
  padding:0;
}

.detail-gallery:has(>li:only-child) {
  grid-template-columns:minmax(0,700px);
  justify-content:start;
}

.detail-gallery li {
  background:#fff;
  padding:22px;
  border:1px solid var(--line);
  border-radius:16px;
  min-width:0;
}

.detail-gallery figure {
  margin:0;
}

.detail-gallery a {
  display:block;
}

.detail-gallery img {
  display:block;
  width:100%;
  height:360px;
  object-fit:contain;
  border-radius:0;
  margin:auto;
}

.detail-checklist {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 32px;
}

.catalogue-intro {
  max-width:850px;
  line-height:2;
  margin-bottom:45px;
}

.catalogue-more {
  display:inline-block;
  font-size:11px;
  font-family:'DM Sans',sans-serif;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--orange);
  margin-top:14px;
}

.page-products .product-grid a {
  height:100%;
  display:flex;
  flex-direction:column;
}

.page-products .product-grid p {
  font-size:14px;
  line-height:1.9;
}

.page-products .product-grid figure {
  border:1px solid var(--line);
  padding:18px;
  border-radius:12px;
}

.page-products .product-grid img {
  height:260px;
  object-fit:contain;
}

/* News is one coherent row: thumbnail, copy, then a CSS chevron. */
.news-list a {
  display:grid;
  grid-template-columns:180px minmax(0,1fr) 12px;
  gap:30px;
  align-items:center;
  padding:30px 0;
}

.news-list .news-thumbnail {
  width:180px;
  height:120px;
  aspect-ratio:auto;
  object-fit:contain;
  background:#fff;
  border-radius:10px;
}

.news-body {
  min-width:0;
}

.news-meta {
  display:flex;
  gap:16px;
  align-items:center;
  margin-bottom:12px;
}

.news-list h3 {
  font-size:19px;
  line-height:1.7;
  margin:0 0 10px;
}

.news-excerpt {
  width:auto;
  font-size:14px;
  line-height:1.9;
  margin:0;
  color:var(--muted);
}

.news-list a::after {
  justify-self:end;
}

.news-placeholder {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:180px;
  height:120px;
  background:#fff0bd;
  border-radius:10px;
  color:var(--orange);
  font:700 28px 'DM Sans',sans-serif;
}

.news-placeholder>span {
  font-size:9px;
  letter-spacing:.1em;
  margin-top:8px;
}

.uv-nav {
  gap:12px;
}

.air-diagram {
  background:#fff;
  border:1px solid var(--line);
  padding:28px;
  border-radius:16px;
}

.air-diagram figcaption {
  margin-bottom:24px;
}

.air-diagram ol {
  gap:30px;
}

.air-diagram li {
  background:#fff4cf;
  min-height:110px;
  padding:20px;
}

.air-diagram span {
  font-size:14px;
  line-height:1.8;
  margin-top:8px;
}

.air-diagram>p {
  font-size:12px;
  color:var(--muted);
  margin:18px 0 0;
}

@media(max-width:760px) {
  .consulting-page .detail-nav {
    grid-template-columns:1fr 1fr;
    font-size:13px;
  }
  .detail-nav a,.uv-nav a {
    padding:12px 14px;
  }
  .detail-section {
    padding-top:40px;
    padding-bottom:40px;
  }
  .service-content {
    grid-template-columns:1fr;
    gap:24px;
  }
  .service-content>figure {
    position:static;
    max-width:420px;
  }
  .consulting-steps {
    grid-template-columns:1fr 1fr;
    gap:22px;
  }
  .detail-specs {
    grid-template-columns:110px minmax(0,1fr);
  }
  .detail-specs dt,.detail-specs dd {
    padding:14px;
    font-size:14px;
  }
  .detail-gallery {
    grid-template-columns:1fr;
    gap:20px;
  }
  .detail-gallery img {
    height:auto;
    max-height:450px;
  }
  .detail-checklist {
    grid-template-columns:1fr;
  }
  .news-list a {
    grid-template-columns:88px minmax(0,1fr) 9px;
    gap:14px;
    align-items:start;
    padding:24px 0;
  }
  .news-list .news-thumbnail,.news-placeholder {
    width:88px;
    height:76px;
  }
  .news-placeholder {
    font-size:22px;
  }
  .news-placeholder>span {
    font-size:7px;
  }
  .news-meta {
    flex-wrap:wrap;
    gap:7px;
    font-size:10px;
    margin-bottom:9px;
  }
  .news-list time {
    font-size:11px;
  }
  .news-list .news-category {
    font-size:9px;
    padding:3px 8px;
  }
  .news-list h3 {
    font-size:15px;
    margin-bottom:8px;
  }
  .news-excerpt {
    font-size:12px;
  }
  .news-list a::after {
    margin-top:30px;
  }
  .air-diagram {
    padding:22px;
  }
  .air-diagram ol {
    gap:30px;
  }
  .air-diagram li {
    min-height:0;
  }
}

.company-message-layout {
  display:grid;
  grid-template-columns:340px minmax(0,1fr);
  gap:50px;
  align-items:start;
}

.company-message-layout .president-photo {
  float:none;
  width:100%;
  margin:0;
}

.company-message-layout .president-photo img {
  width:100%;
  height:auto;
  border-radius:18px;
}

.company-message-layout figcaption {
  font-size:13px;
  color:var(--muted);
  text-align:center;
  margin-top:12px;
}

.company-message-copy p {
  margin-bottom:24px;
}

.company-page .company-facts {
  display:grid;
  grid-template-columns:180px 1fr;
  margin:30px 0 0;
  border-top:1px solid var(--line);
}

.company-page .company-facts dt,.company-page .company-facts dd {
  margin:0;
  padding:22px 24px;
  border-bottom:1px solid var(--line);
  line-height:1.8;
}

.company-page .company-facts dt {
  background:#fff3d0;
  font-weight:700;
}

.company-page iframe {
  width:100%;
  height:380px;
  border:0;
  border-radius:16px;
  margin:10px 0 28px;
}

.company-business {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  list-style:none!important;
  padding:0!important;
  max-width:none!important;
}

.company-business li {
  padding:24px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
}

.company-business h3 {
  margin-top:0;
}

.company-business .text-link {
  font-size:14px;
}

.contact-intro {
  padding-top:15px;
  padding-bottom:40px;
}

.contact-intro h2 {
  font-size:clamp(28px,3vw,42px);
  line-height:1.7;
  margin-bottom:24px;
}

.contact-intro p {
  line-height:2;
}

.contact-section {
  padding-top:20px;
  align-items:start;
  gap:64px;
}

.contact-guidance h2,.contact-panel h2 {
  font-size:25px;
  margin:0 0 24px;
}

.contact-guidance p,.contact-guidance li {
  line-height:1.9;
}

.contact-guidance ul {
  padding-left:22px;
  margin:24px 0;
}

.contact-call {
  padding:24px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin:32px 0 24px;
}

.contact-call .contact-phone {
  font-size:30px;
  margin:12px 0;
  display:block;
}

.contact-help,.form-instructions {
  font-size:14px;
  line-height:1.9;
}

.contact-panel {
  border:1px solid var(--line);
  background:#fff;
  padding:36px;
  border-radius:18px;
}

.contact-panel .eyebrow {
  margin-bottom:12px;
}

.contact-panel .form-note {
  background:#fff3cf;
  border:0;
  border-radius:8px;
  padding:14px;
  margin:24px 0;
  font-size:13px;
}

.contact-after {
  padding-top:0;
}

.contact-after h2 {
  font-size:27px;
}

.contact-form label {
  line-height:1.8;
}

.contact-form input:not([type=submit]),.contact-form textarea {
  background:#fffdf7;
  border:1px solid #ccc2ad;
  border-radius:8px;
}

.contact-form .wpcf7-acceptance {
  font-size:14px;
  line-height:1.8;
}

@media(max-width:760px) {
  .company-message-layout {
    grid-template-columns:1fr;
    gap:28px
  }
  .company-message-layout .president-photo {
    max-width:300px
  }
  .company-page .company-facts {
    grid-template-columns:100px minmax(0,1fr)
  }
  .company-page .company-facts dt,.company-page .company-facts dd {
    padding:16px 12px;
    font-size:14px
  }
  .company-page iframe {
    height:300px
  }
  .company-business {
    grid-template-columns:1fr
  }
  .contact-section {
    gap:32px
  }
  .contact-panel {
    padding:24px
  }
  .contact-call .contact-phone {
    font-size:28px
  }
}

/* Persistent header and CSS-drawn social/menu icons. */
.site-header {
  position:sticky;
  top:0;
  z-index:100;
}

.admin-bar .site-header {
  top:32px;
}

html {
  scroll-padding-top:125px;
}

.header-x {
  margin-left:auto;
  flex-shrink:0;
}

.x-link {
  position:relative;
  display:inline-flex;
  width:42px;
  height:42px;
  vertical-align:middle;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid var(--line);
  color:var(--ink);
  background:transparent;
  flex-shrink:0;
}

.x-link::before,.x-link::after {
  content:'';
  position:absolute;
  left:19px;
  top:9px;
  width:3px;
  height:23px;
  background:currentColor;
  transform:rotate(36deg);
}

.x-link::after {
  width:5px;
  left:18px;
  transform:rotate(-36deg);
  border-left:1px solid var(--cream);
  border-right:1px solid var(--cream);
}

.x-link:hover {
  background:var(--yellow);
  color:var(--ink);
}

.mobile-nav-label,.mobile-nav-caption {
  display:none;
}

.social-link {
  display:flex;
  gap:20px;
  align-items:center;
}

.site-footer nav {
  align-items:center;
}

@media(max-width:1100px) {
  .site-header {
    padding:14px 24px;
    gap:12px;
    min-height:78px;
  }
  .brand img {
    width:220px;
    height:auto;
  }
  .header-x {
    width:38px;
    height:38px;
  }
  .header-x::before {
    left:17px;
    top:7px
  }
  .header-x::after {
    left:16px;
    top:7px;
  }
  .menu-toggle {
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--line);
    border-radius:50%;
    background:var(--yellow);
    width:42px;
    height:42px;
    padding:0;
    flex-shrink:0;
  }
  .menu-icon {
    width:18px;
    height:14px;
    position:relative;
    display:block;
  }
  .menu-icon::before,.menu-icon::after {
    position:absolute;
    content:'';
    height:2px;
    width:18px;
    background:var(--ink);
    left:0;
    transition:transform .2s,top .2s;
    box-shadow:none;
  }
  .menu-icon::before {
    top:3px
  }
  .menu-icon::after {
    top:10px;
  }
  .menu-toggle[aria-expanded=true] .menu-icon::before {
    top:6px;
    transform:rotate(45deg);
  }
  .menu-toggle[aria-expanded=true] .menu-icon::after {
    top:6px;
    transform:rotate(-45deg);
  }
  .site-nav {
    position:fixed;
    top:78px;
    bottom:0;
    left:0;
    right:0;
    padding:34px 28px 45px;
    background:var(--cream);
    overflow-y:auto;
    overscroll-behavior:contain;
    box-shadow:none;
  }
  .site-nav.is-open {
    display:flex;
    gap:0;
    align-items:stretch;
    counter-reset:nav-item;
  }
  .mobile-nav-label {
    display:block;
    font:700 11px 'DM Sans',sans-serif;
    letter-spacing:.17em;
    color:var(--orange);
    margin:0 0 24px;
  }
  .site-nav>a:not(.button) {
    counter-increment:nav-item;
    position:relative;
    display:flex;
    align-items:center;
    gap:20px;
    font-size:20px;
    font-weight:700;
    line-height:1.6;
    padding:24px 0;
    border-bottom:1px solid var(--line);
  }
  .site-nav>a:not(.button)::before {
    content:'0' counter(nav-item);
    font:500 11px 'DM Sans',sans-serif;
    color:var(--orange);
  }
  .site-nav>a:not(.button)::after {
    content:'';
    width:7px;
    height:7px;
    border-top:2px solid currentColor;
    border-right:2px solid currentColor;
    transform:rotate(45deg);
    margin-left:auto;
    margin-right:3px;
  }
  .site-nav>a[aria-current=page] {
    color:var(--orange);
  }
  .site-nav>.button {
    margin-top:32px;
    padding:20px 24px;
    font-size:16px;
  }
  .mobile-nav-caption {
    display:block;
    font-size:12px;
    color:var(--muted);
    margin-top:30px;
  }
  body.menu-is-open {
    overflow:hidden;
  }
  html {
    scroll-padding-top:100px;
  }
  .admin-bar .site-nav {
    top:110px;
  }
}

@media(max-width:480px) {
  .brand img {
    width:205px
  }
  .site-header {
    padding-left:20px;
    padding-right:20px;
    gap:10px
  }
}

@media(max-width:360px) {
  .brand img {
    width:175px
  }
  .site-header {
    padding-left:16px;
    padding-right:16px
  }
  .header-x {
    width:34px;
    height:34px
  }
  .header-x::before {
    left:15px;
    top:5px
  }
  .header-x::after {
    left:14px;
    top:5px
  }
}

@media(max-width:782px) {
  .admin-bar .site-header {
    top:46px
  }
  .admin-bar .site-nav {
    top:124px
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  .menu-icon::before,.menu-icon::after {
    transition:none
  }
}

.plant-equipment {
  list-style:none;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  max-width:none!important;
  padding:0!important;
}

.plant-equipment>li {
  padding:24px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  min-width:0;
}

.plant-equipment h3 {
  font-size:19px;
  margin:12px 0;
}

.plant-equipment .detail-gallery {
  grid-template-columns:1fr;
  gap:15px;
  margin:15px 0;
}

.plant-equipment .detail-gallery li {
  padding:0;
  border:0;
  border-radius:0;
}

.plant-equipment .detail-gallery img {
  height:280px;
}

.plant-flow>ol {
  list-style:none;
  max-width:none!important;
  padding:0!important;
  margin:28px 0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.plant-flow>ol>li {
  padding:20px;
  border-top:3px solid var(--yellow);
  background:#fff;
  border-radius:0 0 12px 12px;
}

.plant-flow h3 {
  font-size:18px;
  margin:0;
}

.plant-flow p {
  margin:14px 0 0;
  font-size:14px;
}

.menu-icon {
  border:0;
}

@media(max-width:760px) {
  .plant-equipment,.plant-flow>ol {
    grid-template-columns:1fr
  }
  .plant-equipment .detail-gallery img {
    height:auto;
    max-height:360px
  }
}

.menu-icon::before,.menu-icon::after {
  border:0;
}

.back-top {
  position:fixed;
  right:28px;
  bottom:28px;
  top:auto;
  width:54px;
  height:54px;
  border:0;
  border-radius:50%;
  background:var(--yellow);
  color:var(--ink);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:80;
  box-shadow:0 4px 16px #34291f12;
}

.back-top:hover {
  background:#f2bc23;
  color:var(--ink);
  transform:translateY(-3px);
}

.back-top[hidden],.menu-is-open .back-top {
  display:none;
}

@media(max-width:760px) {
  .back-top {
    width:48px;
    height:48px;
    right:20px;
    bottom:20px
  }
}

/* Fixed consultation action; the egg illustration is drawn entirely in CSS. */
.consultation-dock {
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  z-index:80;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  min-height:62px;
  width:300px;
  padding:14px 26px;
  border-radius:50px;
  background:var(--orange);
  color:#fff;
  font-size:16px;
  font-weight:700;
  box-shadow:0 5px 20px #34291f26;
}

.consultation-dock:hover {
  background:#ad4018;
  color:#fff;
}

.consultation-dock::after {
  content:'';
  width:7px;
  height:7px;
  border-top:2px solid currentColor;
  border-right:2px solid currentColor;
  transform:rotate(45deg);
  margin-left:8px;
}

.egg-icon {
  display:block;
  position:relative;
  width:25px;
  height:33px;
  flex-shrink:0;
  background:#fffdf5;
  border-radius:50% 50% 46% 46% / 62% 62% 38% 38%;
  transform:rotate(-12deg);
}

.egg-icon::before {
  content:'';
  position:absolute;
  left:6px;
  bottom:6px;
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--yellow);
}

body:has(.consultation-dock) {
  padding-bottom:104px;
}

.menu-is-open .consultation-dock {
  display:none;
}

@media(max-width:760px) {
  .consultation-dock {
    left:20px;
    right:84px;
    bottom:18px;
    transform:none;
    width:auto;
    min-height:54px;
    padding:10px 18px;
    gap:14px;
    font-size:15px
  }
  .egg-icon {
    width:23px;
    height:30px
  }
  .egg-icon::before {
    width:12px;
    height:12px;
    left:6px;
    bottom:6px
  }
  .back-top {
    bottom:21px
  }
  .site-footer {
    padding-bottom:35px
  }
}

.consultation-dock[hidden] {
  display:none;
}

.x-link,.x-link:hover {
  border:0;
  border-radius:0;
  background:transparent;
}

.x-link:hover {
  color:var(--orange);
}

.detail-intro {
  max-width:var(--max);
}

@media(min-width:761px) {
  .consultation-dock {
    display:none
  }
  body:has(.consultation-dock) {
    padding-bottom:0
  }
}

.product-detail .detail-intro {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,420px);
  column-gap:60px;
  grid-template-rows:min-content min-content 1fr;
  align-items:start;
}

.product-detail .detail-intro>.eyebrow {
  grid-column:1;
  grid-row:1;
  margin:0 0 12px;
}

.product-detail .detail-intro>h2 {
  grid-column:1;
  grid-row:2;
  margin-top:0;
}

.product-detail .detail-intro>p:not(.eyebrow) {
  grid-column:1;
  grid-row:3;
  margin-bottom:0;
}

.product-hero-media {
  grid-column:2;
  grid-row:1 / 4;
  border:1px solid var(--line);
  background:#fff;
  border-radius:18px;
  padding:24px;
  margin:0;
}

.product-hero-media img {
  width:100%;
  height:300px;
  object-fit:contain;
}

@media(max-width:760px) {
  .product-detail .detail-intro {
    grid-template-columns:1fr;
    grid-template-rows:auto;
    gap:0
  }
  .product-hero-media {
    grid-column:1;
    grid-row:4;
    margin-top:28px
  }
  .product-hero-media img {
    height:230px
  }
}

/* Contact spacing is contained within the same content width as other pages. */
.contact-section {
  max-width:var(--max);
  margin:auto;
  background:transparent;
  border-radius:0;
  padding:24px 34px 75px;
  grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr);
  gap:50px;
}

.contact-guidance {
  padding:30px;
  background:#fff2c9;
  border-radius:16px;
  position:sticky;
  top:130px;
}

.contact-section h2 {
  font-size:25px;
  margin:0 0 22px;
}

.contact-panel {
  padding:34px;
}

.contact-form .wpcf7-form-control-wrap {
  display:block;
  margin-left:0!important;
}

.contact-form label {
  display:block;
  font-size:14px;
  font-weight:600;
}

.contact-form>p {
  margin:0 0 24px;
}

.contact-form input:not([type=checkbox]):not([type=hidden]):not([type=submit]),.contact-form textarea {
  margin-top:8px;
  border-color:#cfc5b3;
  background:#fffdf8;
}

.contact-form label>span:not(.wpcf7-form-control-wrap) {
  font-size:10px;
  margin-left:8px;
  color:var(--orange);
}

.contact-form>p:last-child {
  margin-bottom:0;
}

.contact-panel .form-instructions {
  margin:0 0 24px;
}

.contact-guidance p {
  margin:0 0 18px;
}

.contact-guidance .contact-help {
  margin:0;
}

.contact-call p:last-child {
  margin:0;
}

@media(max-width:760px) {
  .contact-section {
    padding:12px 24px 50px;
    grid-template-columns:1fr;
    gap:28px
  }
  .contact-guidance {
    position:static;
    padding:24px
  }
  .contact-panel {
    padding:24px
  }
  .contact-section h2 {
    font-size:22px
  }
  .contact-form>p {
    margin-bottom:20px
  }
}

.contact-form .wpcf7-list-item-label {
  font-size:14px;
  line-height:1.8;
  margin:0;
  color:var(--ink);
  font-weight:400;
}
.partner-section {padding-top:60px;padding-bottom:60px;}
.partner-section .section-heading {margin-bottom:30px;}
.partner-section .section-heading .eyebrow {margin-bottom:18px;}
.partner-section h2 {font-size:clamp(26px,3vw,38px);line-height:1.6;}
.company-page .detail-section {padding-top:55px;padding-bottom:55px;}
.company-message-layout {grid-template-columns:300px minmax(0,1fr);gap:45px;}
.company-message-layout .president-photo img {aspect-ratio:1/1;object-fit:cover;}
@media(max-width:760px){.partner-section{padding-top:40px;padding-bottom:40px}.company-page .detail-section{padding-top:40px;padding-bottom:40px}.company-message-layout{grid-template-columns:1fr;gap:26px}.company-message-layout .president-photo{width:240px;max-width:100%;margin:0 auto;}}

/* The same page index is used for company, services, UV and product pages. */
.page-index {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-top:0;padding-bottom:40px;counter-reset:page-link;}
.page-index-4 {grid-template-columns:repeat(4,minmax(0,1fr));}
.page-index a {counter-increment:page-link;display:flex;align-items:center;gap:14px;min-height:68px;padding:18px 20px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:14px;font-weight:600;line-height:1.7;}
.page-index a::before {content:'0' counter(page-link);font:600 12px 'DM Sans',sans-serif;color:var(--orange);flex-shrink:0;}
.page-index a::after {content:'';width:6px;height:6px;flex-shrink:0;border-bottom:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);margin-left:auto;margin-top:-4px;}
.page-index a:hover {border-color:var(--orange);color:var(--orange);background:#fffaf0;}
@media(max-width:760px){.page-index,.page-index-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-bottom:30px}.page-index a{min-height:64px;padding:14px 12px;font-size:12px;gap:8px}.page-index a::before{font-size:10px}.page-index a::after{width:5px;height:5px}}
.detail-specs dt:last-of-type,.detail-specs dd:last-of-type {border-bottom:0;}
/* Frameless product thumbnails: photos fill the canvas; diagrams retain their edges. */
.product-grid figure,.page-products .product-grid figure {padding:0;border:0;aspect-ratio:3/2;background:transparent;border-radius:12px;}
.product-grid img,.page-products .product-grid img {display:block;width:100%;height:100%;object-fit:cover;}
.product-grid .rack-thumb {background:#ebe7e4;}
.product-grid .document-thumb {background:#fff;}
.product-grid .equipment-thumb {background:#e8e3df;}
.product-grid .rack-thumb img,.product-grid .document-thumb img,.product-grid .equipment-thumb img {object-fit:contain;}
.page-products .product-grid figure.rack-thumb,.products .product-grid figure.rack-thumb {background:#ebe7e4;}
.page-products .product-grid figure.document-thumb,.products .product-grid figure.document-thumb {background:#fff;}
.page-products .product-grid figure.equipment-thumb {background:#e8e3df;}
.knowledge-links {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.knowledge-links a {display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:66px;padding:20px 24px;line-height:1.7;}
.social-panel {display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:36px;padding:28px 30px;background:#fff;border-left:3px solid var(--orange);border-radius:0 10px 10px 0;}
.social-panel .eyebrow {font-size:10px;margin-bottom:12px;}
.social-panel h3 {font-size:21px;line-height:1.7;margin:0 0 8px;}
.social-account {font:400 13px 'DM Sans',sans-serif;color:var(--muted);}
.social-panel .x-link {width:48px;height:48px;margin-right:4px;}
.social-panel .x-link::before {left:22px;top:11px;height:26px;}
.social-panel .x-link::after {left:21px;top:11px;height:26px;}
@media(max-width:760px){.knowledge-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.knowledge-links a{font-size:12px;min-height:76px;padding:14px 12px;gap:10px}.social-panel{padding:22px 20px;gap:12px}.social-panel h3{font-size:16px}.social-panel .x-link{margin-right:0}}
.site-footer .footer-nav {display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:36px;}
.footer-nav h2 {font-size:13px;font-weight:700;color:var(--orange);margin:0 0 20px;letter-spacing:.03em;}
.footer-nav ul {list-style:none;display:grid;gap:14px;padding:0;margin:0;}
.footer-nav a {display:inline-block;font-size:13px;line-height:1.8;}
@media(max-width:760px){.site-footer .footer-nav{grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.footer-nav h2{font-size:12px;margin-bottom:16px}.footer-nav a{font-size:12px}.footer-nav ul{gap:12px}}
.product-hero-media {padding:0;border:0;background:transparent;border-radius:0;}
.product-hero-media img {display:block;width:auto;max-width:100%;height:auto;max-height:340px;object-fit:contain;margin:auto;border-radius:12px;}
.detail-gallery>li {padding:0;border:0;background:transparent;border-radius:0;}
.detail-gallery img {width:auto;max-width:100%;height:auto;max-height:460px;object-fit:contain;border-radius:10px;}
@media(max-width:760px){.product-hero-media img{max-height:280px}.detail-gallery img{max-height:420px}}
.detail-actions {display:flex;align-items:center;gap:32px;flex-wrap:wrap;margin-top:30px;}
.detail-actions .text-link {font-size:13px;font-weight:500;gap:18px;border:0;padding:12px 0;}
.detail-actions .button {font-size:14px;padding:18px 26px;}
.site-footer {display:block;padding:55px 0 28px;}
.footer-inner {max-width:1200px;margin:auto;padding:0 34px;display:grid;grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr);gap:70px;align-items:start;}
.footer-info .footer-brand {display:block;font-size:24px;line-height:1.6;}
.footer-info .footer-brand small {font-size:12px;margin-top:6px;}
.footer-info address {font-size:13px;line-height:1.9;margin-top:24px;}
.site-footer .footer-nav {gap:28px;margin:0;}
.footer-nav h2 {font-size:12px;margin-bottom:16px;}
.footer-nav ul {gap:10px;}
.footer-nav a {font-size:12px;line-height:1.7;}
.site-footer .copyright {display:block;max-width:1200px;margin:30px auto 0;padding:24px 34px 0;border-top:1px solid var(--line);font-size:10px;}
@media(max-width:760px){.detail-actions{gap:12px 20px;margin-top:24px}.detail-actions .button{font-size:13px;padding:16px 22px}.detail-actions .text-link{font-size:12px}.site-footer{padding:40px 0 26px}.footer-inner{grid-template-columns:1fr;gap:30px;padding:0 24px}.footer-info address{margin-top:18px}.site-footer .footer-nav{margin:0;gap:24px}.site-footer .copyright{margin-top:26px;padding:20px 24px 0}.footer-nav ul{gap:10px}}
.site-footer .footer-nav {grid-column:auto;grid-row:auto;}

/* Product consultation uses the complete content grid. */
.product-detail #product-consultation > p,
.product-detail #product-consultation > ul,
.product-detail .consulting-steps { max-width:none; width:100%; }
.product-return { border-top:1px solid var(--line); padding-top:28px; padding-bottom:28px; text-align:right; }
.product-return .text-link { font-size:14px; border:0; padding:8px 0; }
.rack-related { background:var(--white,#fff); padding:28px; border-radius:12px; margin-top:32px; }
.rack-related h3 { margin-top:0; }
.rack-caption { text-align:center; margin:14px 0 0; font-size:13px; color:var(--muted); }
@media(max-width:760px) { .product-return { padding-top:22px; padding-bottom:22px; } .rack-related { padding:22px; } }

/* Process diagrams: one continuous row, one continuous column on phones. */
.plant-flow > ol { grid-template-columns:repeat(5,minmax(0,1fr)); gap:26px; margin:30px 0 0; }
.plant-flow > ol > li { position:relative; padding:22px 18px; border:1px solid var(--line); border-top:4px solid var(--yellow); border-radius:12px; }
.plant-flow > ol > li:not(:last-child)::after { content:''; position:absolute; width:9px; height:9px; border-top:2px solid var(--orange); border-right:2px solid var(--orange); transform:rotate(45deg); right:-19px; top:50%; }
.plant-flow h3 { font-size:15px; line-height:1.8; }
.plant-flow p { font-size:13px; line-height:1.8; }
@media(max-width:900px) {
  .plant-flow > ol { grid-template-columns:1fr; gap:24px; }
  .plant-flow > ol > li { padding:20px 22px; }
  .plant-flow > ol > li:not(:last-child)::after { right:50%; top:auto; bottom:-17px; transform:rotate(135deg); }
}
.image-viewer { position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:60px 30px 30px; border:0; background:transparent; color:#fff; overflow:hidden; }
.image-viewer[open] { display:grid; place-items:center; }
.image-viewer::backdrop { background:rgba(30,25,20,0); transition:background .25s ease; }
.image-viewer.is-visible::backdrop { background:rgba(30,25,20,.86); }
.image-viewer figure { margin:0; max-width:100%; opacity:0; transform:scale(.94) translateY(12px); transition:opacity .25s ease,transform .3s ease; pointer-events:none; }
.image-viewer.is-visible figure { opacity:1; transform:scale(1) translateY(0); }
.image-viewer img { display:block; width:auto; height:auto; max-width:calc(100vw - 60px); max-height:calc(100dvh - 145px); margin:auto; object-fit:contain; border-radius:6px; }
.image-viewer figcaption { text-align:center; margin-top:15px; font-size:13px; }
.image-viewer-close { position:absolute; right:24px; top:20px; width:44px; height:44px; border:1px solid #ffffff66; border-radius:50%; background:#ffffff12; cursor:pointer; opacity:0; transition:opacity .2s; }
.image-viewer.is-visible .image-viewer-close { opacity:1; }
.image-viewer-close::before,.image-viewer-close::after { content:''; position:absolute; width:20px; height:2px; background:#fff; left:11px; top:20px; transform:rotate(45deg); }
.image-viewer-close::after { transform:rotate(-45deg); }
.image-viewer-close:focus-visible { outline:3px solid var(--yellow); outline-offset:4px; }
@media(max-width:760px) { .image-viewer { padding:68px 16px 24px; } .image-viewer img { max-width:calc(100vw - 32px); } .image-viewer-close { right:16px; top:14px; } }
@media(prefers-reduced-motion:reduce) { .image-viewer figure,.image-viewer::backdrop,.image-viewer-close { transition:none; } }

/* SUS rack: group the four material benefits and the maintenance example. */
.rack-benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:30px; }
.rack-benefits > section { padding:26px; background:#fff; border-radius:12px; border-top:4px solid var(--yellow); }
.rack-benefits h3 { margin:0 0 14px; font-size:21px; }
.rack-benefits p { margin:0; font-size:15px; line-height:2; }
.rack-caution-layout { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:40px; }
.rack-caution-layout .detail-gallery { margin:0; }
.rack-caution-layout h3 { font-size:22px; }
@media(max-width:760px) { .rack-benefits,.rack-caution-layout { grid-template-columns:1fr; gap:22px; } .rack-benefits > section { padding:22px; } }

/* Plant process diagram: clear labels on a connected numbered track. */
.plant-flow { padding-top:42px; padding-bottom:42px; }
.plant-flow > ol { gap:28px; margin-top:28px; }
.plant-flow > ol > li { border:0; background:transparent; border-radius:0; padding:0; }
.flow-number { display:flex; align-items:center; justify-content:center; width:42px; height:42px; margin-bottom:18px; border-radius:50%; background:var(--yellow); color:var(--ink); font:700 15px 'DM Sans',sans-serif; }
.plant-flow > ol > li:not(:last-child)::before { content:''; position:absolute; left:52px; right:-17px; top:20px; height:1px; background:#d8cba5; }
.plant-flow > ol > li:not(:last-child)::after { right:-15px; top:17px; width:6px; height:6px; border-color:#bd9e5c; }
.plant-flow h3 { font-size:18px; line-height:1.6; margin:0 0 10px; word-break:keep-all; overflow-wrap:anywhere; }
.plant-flow .flow-condition { font-size:13px; line-height:1.9; margin:0; color:#625a4e; }
.plant-flow p:not(.flow-condition) { font-size:13px; margin:10px 0 0; }
@media(max-width:900px) {
 .plant-flow > ol { gap:0; }
 .plant-flow > ol > li { padding:0 0 28px 62px; min-height:85px; }
 .flow-number { position:absolute; left:0; top:0; margin:0; }
 .plant-flow > ol > li:not(:last-child)::before { left:20px; right:auto; top:50px; bottom:8px; height:auto; width:1px; }
 .plant-flow > ol > li:not(:last-child)::after { left:17px; right:auto; top:auto; bottom:8px; transform:rotate(135deg); }
 .plant-flow > ol > li:last-child { padding-bottom:0; }
 .plant-flow h3 { padding-top:5px; }
}

/* Equipment index: photographs and their specifications share one row. */
.plant-equipment { grid-template-columns:1fr; gap:0; margin-top:30px; }
.plant-equipment > li { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:center; padding:30px 0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; }
.equipment-media { display:flex; align-items:center; justify-content:center; gap:14px; min-width:0; }
.equipment-media figure { margin:0; min-width:0; flex:1; }
.equipment-media img { display:block; width:auto; max-width:100%; height:240px; object-fit:contain; margin:0 auto; border-radius:8px; }
.equipment-copy .eyebrow { margin:0 0 10px; font-size:11px; }
.equipment-copy h3 { margin:0 0 12px; font-size:23px; }
.equipment-copy .equipment-role { font-size:14px; margin:0 0 18px; color:#625a4e; }
.equipment-copy .equipment-spec { margin:8px 0; padding-left:14px; border-left:3px solid var(--yellow); font-size:15px; }
.plant-equipment > .equipment-text-only { grid-template-columns:1fr; padding:28px; background:#fff3ca; border:0; border-radius:12px; margin-top:20px; }
@media(max-width:760px) { .plant-equipment > li { grid-template-columns:1fr; gap:22px; padding:28px 0; } .equipment-copy { grid-row:1; } .equipment-media { grid-row:2; } .equipment-copy h3 { font-size:21px; } .equipment-media img { height:220px; } }

/* Egg-and-soy-sauce set: original product photography and proposal sheet. */
.tkg-detail #product-section-1 > p { margin:14px 0; }
.tkg-detail #product-section-2 .detail-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:24px; }
.tkg-detail #product-section-2 .detail-gallery img { width:100%; height:auto; max-height:none; border-radius:10px; }
.product-photo-caption { font-size:12px; text-align:center; margin:14px 0 0; color:#625a4e; }
@media(max-width:760px) { .tkg-detail #product-section-2 .detail-gallery { grid-template-columns:1fr; gap:28px; } }

.flavored-detail #flavored-materials .detail-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; align-items:start; }
.flavored-detail #flavored-materials .detail-gallery img { width:100%; height:auto; max-height:none; border-radius:8px; }
.flavored-detail #product-section-1 > p { margin:14px 0; }
@media(max-width:760px) { .flavored-detail #flavored-materials .detail-gallery { grid-template-columns:1fr; gap:28px; } }

/* Mayonnaise: product photograph, uses and three ingredient choices. */
.mayo-product-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:48px; align-items:center; margin:28px 0 38px; }
.mayo-product-layout .detail-gallery { margin:0; grid-template-columns:1fr; }
.mayo-product-layout .detail-gallery img { max-height:360px; width:auto; height:auto; margin:auto; }
.mayo-product-layout p { margin:0 0 18px; }
.detail-section > .mayo-ingredients { max-width:none; padding:0!important; list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.mayo-ingredients li { border-top:4px solid var(--yellow); background:#fff; border-radius:12px; padding:24px; font-size:14px; }
.mayo-ingredients h3 { margin:0 0 12px; font-size:24px; }
.page-index-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:760px) { .mayo-product-layout { grid-template-columns:1fr; gap:24px; } .mayo-product-layout .detail-gallery img { max-height:280px; } .detail-section > .mayo-ingredients { grid-template-columns:1fr; gap:16px; } }

/* Article navigation: matched previous/next cards and a centered index link. */
.post-pagination { max-width:1000px; padding-top:35px; padding-bottom:50px; }
.post-pagination .post-navigation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; padding:28px 0; margin:0; border-top:1px solid var(--line); }
.post-adjacent { position:relative; display:flex; flex-direction:column; gap:12px; padding:24px 30px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); text-decoration:none; }
.post-adjacent:hover { border-color:var(--orange); color:var(--orange); }
.post-direction { color:var(--orange); font-size:11px; font-weight:700; }
.post-adjacent-title { font-size:14px; font-weight:700; line-height:1.8; }
.post-next { grid-column:2; }
.post-direction::before { content:''; display:inline-block; width:6px; height:6px; border-left:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg); margin-right:10px; }
.post-next .post-direction::before { transform:rotate(225deg); }
.post-list-return { display:table; margin:0 auto; padding:13px 22px; font-size:13px; font-weight:700; color:var(--ink); text-decoration:none; border-radius:30px; background:var(--yellow); }
@media(max-width:760px) { .post-pagination .post-navigation { grid-template-columns:1fr; gap:14px; } .post-next { grid-column:1; } .post-adjacent { padding:20px 22px; } }

/* Social invitation: a bare mark, close grouping and a clear profile link. */
.social-panel { display:grid; grid-template-columns:64px minmax(0,1fr) auto; align-items:center; gap:28px; padding:30px 0; margin-top:42px; border:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.social-panel .social-mark { width:64px; height:64px; margin:0; border:0; border-radius:0; background:transparent; }
.social-panel .social-mark::before { left:31px; top:9px; height:46px; width:4px; }
.social-panel .social-mark::after { left:28px; top:9px; height:46px; width:7px; }
.social-panel .eyebrow { margin:0 0 7px; font-size:10px; letter-spacing:.16em; }
.social-panel h3 { margin:0 0 5px; font-size:25px; letter-spacing:.04em; line-height:1.5; }
.social-panel .social-description { margin:0; font-size:12px; color:var(--muted); }
.social-profile { display:flex; flex-direction:column; gap:10px; padding:8px 0 8px 30px; border-left:1px solid var(--line); text-decoration:none; color:var(--ink); }
.social-profile .social-account { font:500 15px 'DM Sans',sans-serif; color:var(--ink); margin:0; }
.social-visit { display:flex; align-items:center; justify-content:space-between; gap:40px; font-size:12px; font-weight:700; }
.social-arrow { width:22px; height:1px; background:currentColor; position:relative; }
.social-arrow::after { content:''; position:absolute; right:0; top:-3px; width:6px; height:6px; border-top:1px solid; border-right:1px solid; transform:rotate(45deg); }
.social-profile:hover { color:var(--orange); }
@media(max-width:760px) { .social-panel { grid-template-columns:44px minmax(0,1fr); gap:16px; padding:26px 0; } .social-panel .social-mark { width:44px; height:54px; } .social-panel .social-mark::before { left:21px; height:34px; } .social-panel .social-mark::after { left:18px; height:34px; } .social-panel h3 { font-size:20px; } .social-panel .social-description { font-size:11px; } .social-profile { grid-column:2; padding:12px 0 0; border-left:0; border-top:1px solid var(--line); } .social-visit { justify-content:flex-start; gap:20px; } }

/* Align the company information with the bottom of the footer menus. */
.footer-info { align-self:end; }

/* Process columns span the complete section on every service page. */
.detail-section > .consulting-steps { max-width:none; width:100%; }

/* Photo and title are separate surfaces, with the generated fade cropped out. */
.page-heading {
  min-height:340px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:64px max(34px,calc((100% - var(--max)) / 2 + 34px));
  background:var(--cream);
  overflow:hidden;
}
.page-heading::after {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 0 0 auto;
  width:55%;
  background-image:var(--heading-photo);
  background-repeat:no-repeat;
  background-size:auto 150%;
  background-position:right top;
  border-radius:64px 0 0 0;
}
.page-heading .eyebrow { max-width:38%; margin:0 0 16px; }
.page-heading h1 {
  max-width:38%;
  margin:0;
  font-size:clamp(30px,2.7vw,42px);
  line-height:1.5;
  word-break:normal;
  overflow-wrap:anywhere;
}
.page-heading>p:last-child:not(.eyebrow) { max-width:38%; }
@media(max-width:767px) {
  .page-heading {
    min-height:0;
    padding:34px 24px 0;
    margin:20px 0 40px;
    display:block;
  }
  .page-heading .eyebrow,.page-heading h1,.page-heading>p:last-child:not(.eyebrow) {max-width:none;}
  .page-heading h1 {font-size:30px;line-height:1.45;}
  .page-heading::after {
    position:relative;
    display:block;
    width:calc(100% + 24px);
    height:220px;
    margin:26px -24px 0 0;
    border-radius:40px 0 0 0;
    background-size:auto 150%;
    opacity:1;
  }
}
@media(max-width:767px) {
  .page-id-63 .page-heading::after { background-position:80% top; }
}
/* Two photo edges frame the page title. */
.page-heading {
  padding:64px 57% 64px calc(18% + 42px);
}
.page-heading::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:18%;
  z-index:-1;
  background:var(--yellow);
  border-radius:0 64px 0 0;
  opacity:1;
}
.page-heading .eyebrow,.page-heading h1,.page-heading>p:last-child:not(.eyebrow) {
  max-width:none;
}
.page-heading h1 {font-size:clamp(28px,2.2vw,40px);}
@media(max-width:767px) {
  .page-heading {padding:34px 24px 0;}
  .page-heading h1 {font-size:30px;}
  .page-heading::before {
    inset:auto auto 0 0;
    width:18%;
    height:220px;
    border-radius:0 36px 0 0;
  }
  .page-heading::after {
    width:calc(80% + 12px);
    margin:26px -24px 0 auto;
    border-radius:36px 0 0 0;
    background-size:auto 120%;
  }
  .page-id-63 .page-heading::after {background-position:75% top;}
}
/* Align the left photo edge with the main content's left edge. */
@media(min-width:768px) {
  .page-heading {
    --heading-left-edge:max(34px,calc((100vw - var(--max)) / 2 + 34px));
    padding-left:calc(var(--heading-left-edge) + 42px);
  }
  .page-heading::before {width:var(--heading-left-edge);}
}

/* Leave a 34px gap after the yellow heading accent. */
@media(min-width:768px) {
  .page-heading::before {left:-34px;}
}

/* Keep both people in the consulting photo visible at narrower widths. */
.page-id-63 .page-heading::after {background-position:72% top;}

/* Article photos must fill the complete heading photo frame. */
.single .page-heading::after {background-size:cover;background-position:center;}

/* Frame Yoshimura clearly in the new company and contact scenes. */
.page-id-89 .page-heading::after {background-position:50% top;}
.page-heading.page-heading--contact::after {background-size:cover;background-position:68% center;}

/* Keep the greeting portrait inside its column and give the copy breathing room. */
.company-page .company-message-layout { column-gap:64px; }
.company-page .company-message-layout .president-photo { margin:0; min-width:0; }
@media(max-width:760px) {
  .company-page .company-message-layout { gap:28px; }
  .company-page .company-message-layout .president-photo { margin:0 auto; }
}

/* Frame Yoshimura rather than the customer's back on small screens. */
@media(max-width:767px) {
  .page-heading.page-heading--contact::after {
    background-size:cover;
    background-position:62% center;
  }
}

/* Fix the contact portrait framing even when mobile background zoom is customized. */
@media(max-width:1024px) {
  .page-heading.page-heading--contact::after {
    background-size:auto 100% !important;
    background-position:72% center !important;
    background-repeat:no-repeat;
  }
}

.contact-guidance .contact-call { padding:20px 0; }
.contact-guidance .contact-call .eyebrow { margin:0 0 8px; }
.contact-guidance .contact-call .contact-phone { margin:0 0 10px; line-height:1.25; }
.contact-guidance .contact-call p:last-child { margin:0; line-height:1.6; }

.uv-design-lead {font-weight:700;font-size:20px;margin:0 0 12px;}
.uv-mobile-break {display:none;}
@media(max-width:767px) {
  .uv-mobile-break {display:block;}
  .uv-page h2 {font-size:24px;line-height:1.55;letter-spacing:0;}
  .uv-page h3 {font-size:20px;line-height:1.6;}
  .uv-page .uv-design-lead {font-size:17px;line-height:1.5;margin-bottom:10px;}
  .uv-section > ul {padding-left:1.25em;}
  .uv-page table,.uv-page tbody {display:block;width:100%;}
  .uv-page thead {display:none;}
  .uv-page caption {display:block;font-size:14px;margin-bottom:12px;}
  .uv-page tbody tr {display:block;padding:16px 0;border-bottom:1px solid var(--line);}
  .uv-page tbody th,.uv-page tbody td {display:block;width:auto;padding:0;border:0;text-align:left;line-height:1.8;}
  .uv-page tbody th {margin:0 0 6px;font-size:16px;white-space:normal;}
  .uv-page tbody td {font-size:15px;}
}

/* Reading lists retain an inset for their markers after the global reset. */
.page-main ul:not([class]),.page-main ol:not([class]) {
  padding-inline-start:1.4em;
  margin:20px 0 28px;
  list-style-position:outside;
}
.page-main ul:not([class]) > li,.page-main ol:not([class]) > li,
.detail-checklist > li,.contact-guidance ul > li {
  padding-inline-start:.15em;
  margin-bottom:8px;
  line-height:1.8;
  overflow-wrap:break-word;
}
.page-main ul:not([class]) > li:last-child,.page-main ol:not([class]) > li:last-child {margin-bottom:0;}
.page-main .air-diagram > ol,.page-main .plant-flow > ol {
  padding-inline-start:0;
  list-style:none;
}
.page-main .air-diagram > ol > li,.page-main .plant-flow > ol > li {margin-bottom:0;}
@media(max-width:767px) {
  .uv-steps > li {padding:20px;}
  .uv-steps h3 {margin:10px 0 12px;}
  .uv-steps li p {margin:0;line-height:1.8;}
}

/* Give the UV service a clear entrance from the first screen and main navigation. */

.hero-actions {display:flex;flex-wrap:wrap;gap:12px;align-items:center;max-width:590px;}
.hero-actions .button {font-size:13px;padding:18px 25px;gap:20px;}
.hero-actions .hero-uv-button {background:var(--yellow);color:var(--ink);}
.hero-actions .hero-uv-button:hover {background:#efbc24;}
.home-uv {padding:64px 24px;background:#fff2cb;}
.home-uv-inner {max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.home-uv-copy .eyebrow {font-size:11px;margin-bottom:24px;}
.home-uv-context {font-size:15px;font-weight:600;margin:0 0 12px;}
.home-uv h2 {font-size:clamp(32px,3.6vw,52px);line-height:1.4;letter-spacing:.02em;margin:0 0 24px;}
.home-uv-description {font-size:14px;line-height:2;margin-bottom:28px;}
.home-uv-visual {position:relative;display:block;min-height:360px;align-self:stretch;overflow:hidden;border-radius:70px 14px 14px 14px;text-decoration:none;background:#e8e1ef;}
.home-uv-visual img {width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:74% center;transition:transform .4s ease;}
.home-uv-visual:hover img {transform:scale(1.03);}
.home-uv-visual-label {position:absolute;left:30px;bottom:30px;padding:18px 22px;background:#fffbf0ed;border-radius:12px;font:600 24px 'DM Sans',sans-serif;letter-spacing:.08em;color:var(--ink);}
.home-uv-visual-label span {display:block;font:500 12px 'Noto Sans JP',sans-serif;letter-spacing:.04em;margin-top:8px;}
@media(min-width:1101px) and (max-width:1300px) {.site-nav {gap:16px;font-size:11px;}.site-header {gap:16px;}}
@media(max-width:767px) {
 .hero-actions {gap:10px;align-items:stretch;flex-direction:column;max-width:285px;}
 .hero-actions .button {padding:15px 22px;font-size:12px;justify-content:space-between;}
 .home-uv {padding:40px 24px;}
 .home-uv-inner {grid-template-columns:1fr;gap:28px;}
 .home-uv-copy .eyebrow {font-size:10px;margin-bottom:18px;letter-spacing:.08em;}
 .home-uv-context {font-size:12px;}
 .home-uv h2 {font-size:34px;margin-bottom:18px;}
 .home-uv-description {font-size:13px;line-height:1.9;margin-bottom:22px;}
 .home-uv-desktop-break {display:none;}
 .home-uv-copy .button {font-size:13px;padding:16px 24px;}
 .home-uv-visual {min-height:240px;border-radius:40px 12px 12px 12px;}
 .home-uv-visual-label {left:18px;bottom:18px;padding:14px 18px;font-size:21px;}
}

/* The opening hero has a larger scale than the following content sections. */
@media(min-width:768px) {
 .hero {max-width:none;min-height:clamp(780px,max(85vh,calc(46vw + 100px)),1040px);padding:100px 6% 110px;overflow:hidden;}
 .hero h1 {font-size:clamp(58px,5.2vw,100px);line-height:1.42;letter-spacing:.025em;margin:30px 0 30px;}
 .hero-image {width:60%;height:clamp(640px,46vw,920px);right:-1%;top:24px;}
 .hero-image figcaption {right:110px;bottom:-18px;}
 .hero-copy {font-size:16px;line-height:2.2;}
 .hero-actions .button {font-size:14px;padding:19px 28px;}
 .home-uv h2 {font-size:clamp(32px,3vw,44px);}
}
@media(min-width:768px) and (max-width:1100px) {
 .hero {min-height:720px;padding-top:80px;}
 .hero h1 {font-size:clamp(48px,5.5vw,60px);}
 .hero-image {width:61%;height:580px;right:-7%;top:45px;}
 .hero-copy {font-size:14px;}
 .hero-actions {max-width:440px;}
 .hero-actions .button {font-size:12px;padding:17px 22px;}
}
@media(max-width:767px) {
 .hero h1 {font-size:40px;line-height:1.45;letter-spacing:.015em;}
 .home-uv h2 {font-size:32px;}
}

/* One compact company introduction, ending with its destination link. */
.intro {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:center;}
.intro .intro-image {grid-column:1;grid-row:1;align-self:center;margin:0;}
.intro .intro-image img {height:auto;aspect-ratio:1/1;max-height:510px;}
.intro-copy-group {grid-column:2;grid-row:1;}
.intro-copy-group .eyebrow {margin-bottom:22px;}
.intro-copy-group h2 {font-size:clamp(28px,2.6vw,36px);line-height:1.6;margin-bottom:24px;}
.intro-copy-group > p:not(.eyebrow) {font-size:14px;line-height:2;margin:0 0 18px;color:var(--muted);}
.intro-copy-group .text-link {margin-top:8px;}
@media(max-width:767px) {
 .intro {grid-template-columns:1fr;gap:30px;}
 .intro-copy-group {grid-column:1;grid-row:1;}
 .intro .intro-image {grid-column:1;grid-row:2;max-width:330px;justify-self:center;width:100%;}
 .intro-copy-group .eyebrow {margin-bottom:16px;}
 .intro-copy-group h2 {font-size:27px;margin-bottom:20px;}
 .intro-copy-group > p:not(.eyebrow) {font-size:13px;line-height:1.9;margin-bottom:16px;}
}

/* Compact mobile links and a centered footer. */
.social-panel {border-bottom:0;}
@media(max-width:767px) {
 .knowledge-links {grid-template-columns:1fr;gap:12px;}
 .knowledge-links a {min-height:64px;padding:18px 22px;font-size:14px;}
 .site-footer .footer-inner {text-align:center;justify-items:center;}
 .site-footer .footer-info {width:100%;}
 .site-footer .footer-info address {font-size:12px;line-height:1.9;}
 .site-footer .footer-nav {width:100%;grid-template-columns:1fr;gap:30px;justify-items:center;}
 .site-footer .footer-nav h2 {margin-bottom:14px;}
 .site-footer .footer-nav ul {gap:10px;}
 .site-footer .copyright {text-align:center;font-size:9px;}
}

.book-links .button {min-width:150px;min-height:62px;padding:16px 20px;background:#fff;justify-content:space-between;}
.book-links .button img {width:125px;height:28px;object-fit:contain;}
.book-links .button:nth-child(2) img {width:95px;height:32px;}
@media(max-width:767px) {.menu-toggle {border:0;}.book-links .button {min-height:66px;}.book-links .button img {width:150px;height:30px;}.book-links .button:nth-child(2) img {width:110px;height:36px;}}

@media(max-width:767px) {
 .intro {display:flex;flex-direction:column;align-items:stretch;gap:0;}
 .intro-copy-group {display:contents;}
 .intro-copy-group .eyebrow {order:1;text-align:center;margin:0 0 14px;}
 .intro-copy-group h2 {order:2;text-align:center;font-size:26px;margin:0 0 24px;}
 .intro .intro-image {order:3;width:210px;max-width:70%;align-self:center;margin:0 auto 26px;}
 .intro .intro-image img {width:100%;height:auto;aspect-ratio:1/1;}
 .intro-copy-group > p:not(.eyebrow) {order:4;margin:0 0 16px;font-size:13px;line-height:1.9;}
 .intro-copy-group .text-link {order:5;align-self:center;margin-top:8px;}
}

/* Compact numbered rows keep mobile consultation flows easy to scan. */
@media (max-width:767px) {
  .uv-steps,.consulting-steps {grid-template-columns:1fr;gap:14px;margin:24px 0 32px;}
  .uv-steps > li,.consulting-steps > li {display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:12px;row-gap:8px;padding:20px 18px;background:#fff;border:0;border-radius:14px;}
  .uv-steps > li::before,.consulting-steps > li::before {grid-column:1;grid-row:1 / span 2;font-size:24px;line-height:1.4;}
  .uv-steps > li h3,.consulting-steps > li h3 {grid-column:2;margin:0;font-size:18px;line-height:1.5;}
  .uv-steps > li p,.consulting-steps > li p {grid-column:2;margin:0;font-size:13px;line-height:1.85;}
}

/* Shared mobile reading order: heading, visual, copy, destination. */
.book-links {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.book-links .button {width:100%;min-width:0;height:56px;min-height:56px;padding:12px 18px;gap:10px;}
.book-links .button img {width:104px;height:22px;}
.book-links .button:nth-child(2) img {width:72px;height:24px;}
@media(max-width:767px) {
 .hero h1 {font-size:clamp(28px,8.2vw,36px);}
 .intro-copy-group .eyebrow,.intro-copy-group h2 {text-align:left;}
 .intro-copy-group h2,.services .section-heading h2,.products .section-heading h2,.news-section .section-heading h2,.book-copy h2 {font-size:26px;line-height:1.55;letter-spacing:.01em;}
 .intro .intro-image {width:100%;max-width:none;margin:0 0 24px;align-self:stretch;}
 .intro .intro-image img {aspect-ratio:1.6;object-fit:cover;border-radius:40px 12px 12px 12px;max-height:none;}
 .intro-copy-group .text-link {align-self:flex-start;margin-top:8px;}
 .home-uv-inner {display:flex;flex-direction:column;gap:0;align-items:stretch;}
 .home-uv-copy {display:contents;}
 .home-uv-copy .eyebrow {order:1;}
 .home-uv-context {order:2;}
 .home-uv-copy h2 {order:3;margin-bottom:24px;}
 .home-uv-visual {order:4;min-height:220px;margin-bottom:24px;}
 .home-uv-description {order:5;}
 .home-uv-copy .button {order:6;align-self:flex-start;}
 .services .source-copy {margin:20px 0 24px;font-size:13px;line-height:1.9;}
 .services .source-copy p {margin:0;}
 .service-list li {grid-template-columns:32px minmax(0,1fr);column-gap:12px;padding:22px 0;}
 .service-list p {grid-column:2;}
 .service-list h3 {font-size:18px;}
 .product-grid {gap:30px;}
 .product-grid img {height:auto;aspect-ratio:1.5;object-fit:cover;}
 .book-section {display:flex;flex-direction:column;align-items:stretch;gap:0;}
 .book-copy {display:contents;}
 .book-copy .eyebrow {order:1;margin:0 0 14px;}
 .book-copy h2 {order:2;margin:0 0 24px;}
 .book-cover {order:3;margin:0 0 26px;}
 .book-cover img {width:160px;}
 .book-subtitle {order:4;margin:0 0 12px;font-size:13px;line-height:1.9;}
 .book-author {order:5;margin:0;font-size:12px;}
 .book-links {order:6;grid-template-columns:1fr;margin-top:24px;gap:10px;}
 .book-links .button {height:54px;min-height:54px;padding:12px 22px;}
 .book-links .button img {width:104px;height:22px;}
 .book-links .button:nth-child(2) img {width:72px;height:24px;}
}

@media(max-width:767px) {
 .book-section {text-align:center;}
 .book-links {width:100%;max-width:300px;align-self:center;}
 .book-links .button {justify-content:center;position:relative;padding:12px 42px;}
 .book-links .button::after {position:absolute;right:22px;}
}

.site-header {border-bottom:0;}

/* Diagram cards need their own inset, independent of prose list markers. */
.page-main .air-diagram > ol > li {padding:22px 24px;}
@media(max-width:767px) {
 .page-main .air-diagram {padding:20px;}
 .page-main .air-diagram > ol > li {padding:20px 22px;}
}

@media(min-width:768px) {
 .uv-steps {grid-template-columns:1fr;gap:16px;margin:30px 0 36px;}
 .uv-steps > li {display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:20px;row-gap:8px;padding:24px 28px;background:#fff;border-radius:16px;}
 .uv-steps > li::before {grid-column:1;grid-row:1 / span 2;font-size:28px;line-height:1.4;}
 .uv-steps > li h3 {grid-column:2;margin:0;font-size:21px;line-height:1.5;}
 .uv-steps > li p {grid-column:2;margin:0;font-size:15px;line-height:1.85;}
}

@media(min-width:768px) {
 .consulting-steps {grid-template-columns:1fr;gap:16px;margin:30px 0 36px;}
 .consulting-steps > li {display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:20px;row-gap:8px;padding:24px 28px;border:0;background:#fff;border-radius:16px;}
 .consulting-steps > li::before {grid-column:1;grid-row:1 / span 2;font-size:28px;line-height:1.4;}
 .consulting-steps > li h3 {grid-column:2;margin:0;font-size:21px;line-height:1.5;}
 .consulting-steps > li p {grid-column:2;margin:0;font-size:15px;line-height:1.85;}
}

.mobile-nav-label,.mobile-nav-caption {text-align:center;}


/* Product photos fill the same rounded header frame as other pages. */
.page-heading.page-heading--product::after {background-size:cover;background-position:center;}
