/* ALEST HP polish 2026-11-03 — refine only; keep existing look */

/* --- 1) Mobile: hide hero topline that bled behind fixed logo --- */
@media (max-width: 760px) {
  .premium-hero {
    padding-top: var(--header, 68px);
  }
  .premium-hero .hero-topline {
    display: none;
  }
  .hero-topline > span:first-child {
    /* safety for any non-premium hero that reuses the label */
  }
}

/* Desktop: keep topline but clear fixed header */
@media (min-width: 761px) {
  .premium-hero {
    padding-top: max(56px, calc(var(--header, 104px) - 40px));
  }
}

/* --- 2) Header CTA: premium mobile sizing, tap >= 44px --- */
@media (max-width: 760px) {
  .header .header-cta {
    box-sizing: border-box;
    width: auto;
    min-width: 118px;
    min-height: 44px;
    padding: 9px 15px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1.25;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
  }
  .header .header-cta span {
    margin-top: 0;
    font-size: 9px;
    letter-spacing: 0.16em;
    opacity: 0.88;
    line-height: 1.2;
  }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .header .header-cta {
    min-height: 48px;
    letter-spacing: 0.06em;
  }
}


/* --- 4) Consultation flow on top page --- */
.premium-flow {
  padding: 72px 0 64px;
}
.premium-flow .premium-section-top {
  margin-bottom: 36px;
}
.premium-flow .flow-list {
  margin-top: 8px;
}
.premium-flow .flow-note {
  margin: 28px 0 0;
  font-size: 13px;
  line-height: 1.8;
  color: #626262;
  letter-spacing: 0.03em;
}
.premium-flow .flow-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  margin-top: 28px;
}
.premium-flow .flow-actions .premium-button,
.premium-flow .flow-actions .premium-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
@media (max-width: 760px) {
  .premium-flow {
    padding: 48px 0 40px;
  }
  .premium-flow .flow-list {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .premium-flow .flow-list li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px 16px;
    align-items: start;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(32, 33, 32, 0.08);
  }
  .premium-flow .flow-list li > span {
    font-size: 28px;
    line-height: 1;
  }
  .premium-flow .flow-list h3 {
    margin: 0 0 6px;
    font-size: 17px;
  }
  .premium-flow .flow-list p {
    margin: 0;
    font-size: 14px;
    line-height: 1.75;
  }
}

/* --- 5) Premium polish: buttons, focus, rhythm, images --- */
.header-cta,
.premium-button,
a.premium-link,
.contact-option,
.mobile-contact-bar a {
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
}

.header-cta:focus-visible,
.premium-button:focus-visible,
.premium-link:focus-visible,
.menu-button:focus-visible,
.desktop-nav a:focus-visible,
.footer a:focus-visible,
.mobile-contact-bar a:focus-visible,
.contact-option:focus-visible {
  outline: 2px solid #805737;
  outline-offset: 3px;
}


.section-caption,
.eyebrow {
  letter-spacing: 0.18em;
}

.premium-intro,
.premium-business,
.premium-philosophy,
.premium-works,
.premium-message-grid {
  scroll-margin-top: 100px;
}

@media (min-width: 761px) {
  .premium-intro {
    padding-block: 8px 8px;
  }
  .premium-business {
    padding-block: 8px;
  }
}

.hero-photo-window,
.page-concept-window,
.office-location-photo,
.premium-works figure {
  overflow: hidden;
}
.hero-photo-window img,
.page-concept-window img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Soften cramped english micro-labels in sticky mobile bar */
@media (max-width: 760px) {
  .mobile-contact-bar a span {
    letter-spacing: 0.14em;
  }
}


/* Filled CTA used on top-page flow */
.premium-button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 22px;
  border: 0;
  border-radius: 0;
  background: #202120;
  color: #fff !important;
  font-family: var(--sans, "Helvetica Neue", "Hiragino Sans", sans-serif);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-decoration: none;
}
.premium-button:hover {
  background: #805737;
  color: #fff !important;
}
.premium-button:focus-visible {
  outline: 2px solid #805737;
  outline-offset: 3px;
}



/* --- Polish3: hero without trust block --- */
.premium-hero .hero-composition {
  padding-bottom: 8px;
}
.premium-hero .hero-statement {
  margin-bottom: 0;
}
@media (max-width: 760px) {
  .premium-hero .hero-composition {
    padding-bottom: 4px;
  }
}

/* --- Inquiry flow: mobile bottom bar + soft section links --- */
.mobile-inquiry-bar.mobile-contact-bar {
  /* override legacy COMPANY/CONTACT bar look */
}
@media (max-width: 768px) {
  :root {
    --mobile-inquiry-height: 52px;
  }
  body {
    padding-bottom: calc(var(--mobile-inquiry-height) + 10px + env(safe-area-inset-bottom, 0px));
  }
  .mobile-contact-bar.mobile-inquiry-bar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 40;
    min-height: var(--mobile-inquiry-height);
    padding: 0 0 env(safe-area-inset-bottom, 0px);
    background: #faf8f5;
    border-top: 1px solid rgba(32, 33, 32, 0.12);
    box-shadow: none;
  }
  .mobile-contact-bar.mobile-inquiry-bar > a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: var(--mobile-inquiry-height);
    padding: 0 12px;
    font-family: var(--sans, "Helvetica Neue", "Hiragino Sans", "Noto Sans JP", sans-serif);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-decoration: none;
    color: #2a2a2a;
    background: transparent;
    border: 0;
    position: static;
  }
  .mobile-contact-bar.mobile-inquiry-bar > a > span,
  .mobile-contact-bar.mobile-inquiry-bar .arrow {
    display: none !important;
  }
  .mobile-contact-bar.mobile-inquiry-bar > a.mib-contact {
    color: #2a2a2a;
    background: #faf8f5;
    border-right: 1px solid rgba(32, 33, 32, 0.1);
  }
  .mobile-contact-bar.mobile-inquiry-bar > a.mib-line {
    color: #805737;
    background: #f3eee5;
  }
  .mobile-contact-bar.mobile-inquiry-bar > a:focus-visible {
    outline: 2px solid #805737;
    outline-offset: -2px;
  }
  .menu-open .mobile-contact-bar.mobile-inquiry-bar {
    display: none;
  }
  /* Hide on contact & easy-assessment */
  body.page-contact,
  body.ea-page-body {
    padding-bottom: 0;
  }
  body.page-contact .mobile-contact-bar,
  body.ea-page-body .mobile-contact-bar {
    display: none !important;
  }
  /* easy-assessment sticky sits on safe area only (no site bar underneath) */
  body.ea-page-body .ea-sticky-line {
    bottom: 0;
  }
  body.ea-page-body {
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
  }
}
@media (min-width: 769px) {
  .mobile-contact-bar.mobile-inquiry-bar {
    display: none !important;
  }
}

/* Soft inquiry link at end of business / works */
.inquiry-soft-link {
  margin: 0 auto;
  padding: 28px 0 8px;
  border-top: 1px solid rgba(32, 33, 32, 0.1);
  max-width: 1120px;
}
.inquiry-soft-link .inquiry-soft-main {
  margin: 0 0 8px;
  font-family: var(--serif, "Shippori Mincho", "Noto Serif JP", serif);
  font-size: clamp(15px, 1.6vw, 17px);
  letter-spacing: 0.04em;
  line-height: 1.8;
}
.inquiry-soft-link .inquiry-soft-main a {
  color: #2a2a2a;
  text-decoration: none;
  border-bottom: 1px solid rgba(128, 87, 55, 0.45);
  padding-bottom: 2px;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.inquiry-soft-link .inquiry-soft-main a:hover,
.inquiry-soft-link .inquiry-soft-main a:focus-visible {
  color: #805737;
  border-bottom-color: #805737;
}
.inquiry-soft-link .inquiry-soft-sub {
  margin: 0;
  font-size: 13px;
  letter-spacing: 0.04em;
  color: #626262;
  line-height: 1.7;
}
.inquiry-soft-link .inquiry-soft-sub a {
  color: #4a4a4a;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.inquiry-soft-link .inquiry-soft-sub a:hover {
  color: #805737;
}
.premium-business + .inquiry-soft-link,
.work-carousel + .inquiry-soft-link {
  width: calc(100% - 80px);
  margin-top: 8px;
  margin-bottom: 24px;
}
@media (max-width: 760px) {
  .premium-business + .inquiry-soft-link,
  .work-carousel + .inquiry-soft-link {
    width: calc(100% - 40px);
  }
  .inquiry-soft-link {
    padding: 22px 0 4px;
  }
}
/* works / service page placement */
.business-revision .inquiry-soft-link,
.works-page .inquiry-soft-link,
main .inquiry-soft-link {
  margin-top: 36px;
  margin-bottom: 12px;
}

/* --- Company profile balance (2026-11-03) --- */
/* Trust remnant removed from HTML; ensure no ghost styles */
.company-trust-figures { display: none !important; }

/* Prefer stacking earlier so table keeps usable width on tablets */
@media (max-width: 980px) {
  .company-detail {
    display: block !important;
    padding-bottom: 80px;
  }
  .company-heading {
    margin-bottom: 28px;
  }
}

@media (min-width: 981px) {
  .company-detail {
    grid-template-columns: minmax(220px, 0.85fr) minmax(0, 1.45fr);
    gap: 0 56px;
    align-items: start;
  }
  .company-detail > .company-heading,
  .company-detail > .company-table {
    min-width: 0;
  }
  .company-detail > .office-grid {
    grid-column: 1 / -1;
  }
}

/* Beat Link/global overflow-wrap:anywhere that splits 号 / 丁目 / 銀行 */
.company-table dd {
  overflow-wrap: break-word !important;
  word-break: keep-all !important;
  line-break: strict;
  white-space: pre-line;
}
.company-table .license-no,
.company-table dd .nowrap {
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
}
.company-table .bank-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(10.5em, 1fr));
  gap: 0.25rem 1.25rem;
  columns: unset !important;
  column-count: 1 !important;
}
.company-table .bank-list li {
  margin: 0;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
  line-break: strict;
  break-inside: avoid;
  white-space: nowrap;
}
@media (max-width: 480px) {
  .company-table .bank-list {
    grid-template-columns: 1fr;
  }
  .company-table .bank-list li {
    white-space: normal;
  }
  .company-table > div {
    grid-template-columns: 1fr !important;
    gap: 8px;
  }
}

/* Tablet: keep dt|dd side-by-side once table is full-width */
@media (min-width: 481px) and (max-width: 980px) {
  .company-table > div {
    grid-template-columns: minmax(96px, 130px) minmax(0, 1fr) !important;
    gap: 14px 28px;
    align-items: start;
  }
  .company-table dt {
    padding-top: 2px;
  }
}

/* --- Business hours (2026-11-03) --- */
.company-table .hours-no {
  white-space: nowrap;
}
.footer-hours {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--muted, #686868);
}
.business-hours-note {
  margin: 14px 0 0;
  font-size: 15px;
  line-height: 1.85;
  color: #404040;
}
.business-hours-note--sub {
  margin-top: 6px;
  font-size: 14px;
  color: var(--muted, #686868);
}
.ea-hours-note {
  margin: 0 0 1.1rem;
  font-size: 0.92rem;
  line-height: 1.75;
  color: #626262;
}
.form-phone {
  margin-top: 18px;
}

