/* Public tour and account surfaces share the home type scale, not console layout. */
body.public-page { max-width: 80rem; }
.public-page { --radius: 6px; }
.public-page .site-header { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; border-top: 0; padding: 1.15rem 2rem; }
.public-page .site-header nav { margin-top: 0; }
.public-page .site-header .me { margin-left: auto; }
.public-page main { padding: 2.5rem 2rem 3rem; }
.public-page .site-footer { padding: 2rem; }
.public-page h1 { font-size: 2rem; line-height: 1.4; font-weight: 750; letter-spacing: 0; text-wrap: initial; }
.public-page h2 { font-size: 1.5rem; line-height: 1.4; font-weight: 750; letter-spacing: 0; border: 0; padding: 0; margin: 0 0 1rem; }
.public-page h2::before { display: none; }
.public-page h3 { font-size: 1.125rem; line-height: 1.5; letter-spacing: 0; }
.public-page .meta, .public-page .empty { font-size: .9rem; line-height: 1.7; }
.public-page main > h1 { margin-bottom: 1rem; }
.content-page main { max-width: 60rem; margin-inline: auto; }
.content-page main > h2, .content-page main > section { border-top: 1px solid var(--glaze); margin-top: 2rem; padding-top: 2rem; }
.public-page .stack { max-width: 44rem; gap: 1.25rem; margin-block: 2rem; }
.public-page .auth-login { width: 100%; max-width: 36rem; margin-inline: auto; }
.public-page .auth-login .stack { max-width: none; }
.public-page .auth-login input::placeholder { color: var(--muted); opacity: .65; }
.public-page .auth-login button:disabled,
.public-page.account-page button:disabled { background: var(--glaze); color: var(--muted); cursor: not-allowed; }
.public-page .stack label { font-size: .95rem; gap: .5rem; }
.public-page .stack :is(input, select, textarea) { min-width: 0; max-width: 100%; font-size: 1rem; }
.public-page .stack :is(input:not([type=checkbox]):not([type=radio]), select) { min-height: 2.75rem; }
.public-page .stack fieldset { min-width: 0; margin: .5rem 0; border: 0; border-top: 1px solid var(--glaze); padding: 1.25rem 0 0; }
.public-page .stack legend { padding: 0 .75rem 0 0; font-size: 1.125rem; font-weight: 700; }
.public-page .stack fieldset > label + label { margin-top: 1rem; }
.public-page .stack > button, .public-page main .cta { background: var(--aqua); color: var(--accent-ink); border: 1px solid transparent; border-radius: 6px; min-height: 2.75rem; font-weight: 750; padding: .7rem 1.1rem; }
.public-page .stack > button:hover, .public-page main .cta:hover { border-color: var(--plaque); }
.public-page .notice, .public-page .note { border-radius: 0; border: 0; border-left: 3px solid var(--aqua); padding: 1rem 1.25rem; line-height: 1.75; }
.public-page .formerror { line-height: 1.7; }
.public-page .empty--lg { border: 0; border-block: 1px solid var(--glaze); border-radius: 0; background: var(--card); padding: 3rem 1.5rem; font-size: 1rem; }
.public-page .chips { flex-wrap: wrap; gap: .5rem; margin-block: 1rem; overflow: visible; }
.public-page .chip { min-height: 2.5rem; display: inline-flex; align-items: center; padding: .4rem .8rem; }
.public-page .chip-on { background: var(--aqua-soft); border-color: var(--plaque); color: var(--ink); font-weight: 700; }
.booking-page .booking-summary { position: static; border: 0; border-block: 2px solid var(--aqua); border-radius: 0; box-shadow: none; padding: 1.25rem 0; gap: 1rem; }
.booking-page .booking-summary-guide { gap: .3rem; }
.booking-page .booking-summary-guide strong { font-size: 1.25rem; }
.booking-page .booking-summary-list { gap: 1rem; }
.booking-page .booking-summary-list dt { font-size: .875rem; margin-bottom: .4rem; }
.public-page .bookinfo { grid-template-columns: minmax(6rem, 10rem) minmax(0, 1fr); gap: 0 1.5rem; padding-block: .5rem; border-block: 1px solid var(--glaze); margin-block: 2rem; }
.public-page .bookinfo :is(dt, dd) { padding: .75rem 0; border-bottom: 1px solid var(--glaze); overflow-wrap: anywhere; }
.public-page .bookinfo :is(dt, dd):nth-last-child(-n+2) { border-bottom: 0; }
.booking-history .cards > .card { display: block; padding: 1.75rem 0; }
.booking-history .card h2 { font-size: 1.25rem; margin-bottom: .75rem; }
.booking-history .card p { margin: .65rem 0; }
.booking-history .card section { border-left: 3px solid var(--lemon); padding-left: 1rem; margin-block: 1.25rem; }
.booking-history .card h3, .booking-history .card h4 { font-size: 1rem; margin-block: .75rem; }
.review-followup main > h2 { border: 0; padding-top: 0; font-size: 1.25rem; }
.public-page .sellerinfo { border-top: 1px solid var(--glaze); margin-top: 2rem; padding-top: 1rem; }
.public-page .sellerinfo dd { margin-left: 0; padding-bottom: 1rem; border-bottom: 1px solid var(--glaze); }
.public-page .tourhero { padding: 0; margin: 0 0 2rem; }
.public-page .tourhero-lead { font-size: 1rem; margin: .6rem 0 0; line-height: 1.7; }
.public-page .hint { font-size: .875rem; color: var(--muted); }
.guide-filters { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; border-block: 1px solid var(--glaze); padding: 1.25rem 0; }
.guide-filters label { display: grid; gap: .4rem; font-size: .875rem; flex: 1 1 12rem; }
.guide-filters select { width: 100%; min-width: 0; }
.guide-filters button { min-height: 2.75rem; }
.guide-directory-grid { list-style: none; padding: 0; margin: 2rem 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.directory-guide { min-width: 0; }
.directory-guide > a { display: block; color: var(--ink); text-decoration: none; }
.directory-photo { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 8px; display: block; }
.directory-caption { display: grid; gap: .65rem; padding: 1rem 0; }
.directory-name { font-size: 1.25rem; font-weight: 750; }
.directory-headline { font-size: .95rem; line-height: 1.7; color: var(--muted); }
.directory-styles { font-size: .8rem; color: var(--plaque); }
.directory-tour { font-size: .9rem; }
.directory-stats { display: flex; gap: 2rem; border-block: 1px solid var(--glaze); padding: .9rem 0; margin: 0; }
.directory-stats dt { font-size: .75rem; color: var(--muted); }
.directory-stats dd { margin: .25rem 0 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.guide-profile main, .tour-detail main, .account-page main { max-width: 60rem; margin-inline: auto; }
.public-page .guidecard { background: transparent; border: 0; border-bottom: 1px solid var(--glaze); border-radius: 0; padding: 1.5rem 0; margin: 0 0 2rem; }
.guide-profile .guidecard { display: grid; grid-template-columns: minmax(0, 16rem) minmax(0, 1fr); gap: 2rem; align-items: center; }
.guide-profile .guidecard-photo { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 8px; }
.public-page .guidecard .meta { font-size: .95rem; }
.public-page .guidepage h2 { margin: 2.5rem 0 1rem; }
.public-page .bodytext { font-size: 1rem; line-height: 1.85; }
.public-page .tourlist li { padding: 1.2rem 0; }
.public-page .tourlist .meta { display: block; margin-top: .4rem; font-size: .9rem; }
.public-page .tourshot { background: transparent; border-radius: 0; }
.public-page .tourshot > img { max-height: 30rem; height: auto; width: 100%; object-fit: contain; border-radius: 8px; }
.public-page .tourshot-cap { position: static; padding: 1.5rem 0; background: transparent; color: var(--ink); }
.public-page .tourshot-cap h1 { color: var(--ink); font-size: 2rem; }
.public-page .tourshot-cap p { color: var(--muted); font-size: .95rem; }
.public-page .toursec { border-top: 1px solid var(--glaze); padding-top: 2rem; margin-top: 2.5rem; }
.public-page .tourprice { border-block: 1px solid var(--glaze); background: transparent; padding: 1.25rem 0; line-height: 2; font-size: 1rem; }
.public-page .toursec h2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; }
.public-page .tourdetail-imgs { margin-top: 1.5rem; }
.account-heading p { font-size: 1.05rem; color: var(--muted); margin-top: .5rem; }
.account-nav { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; padding: 1rem 0; border-bottom: 2px solid var(--aqua); }
.account-nav a { font-size: .9rem; text-decoration: none; }
.account-section { padding: 2rem 0; border-bottom: 1px solid var(--glaze); scroll-margin-top: 1.5rem; }
.account-section h3 { font-size: 1rem; margin: 1rem 0; }
.account-facts { margin: 0; }
.account-facts > div { display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 1rem; padding: .65rem 0; }
.account-facts dt { color: var(--muted); font-size: .95rem; }
.account-facts dd { margin: 0; overflow-wrap: anywhere; }
.account-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2rem; }
.account-links a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--glaze); text-decoration: none; font-weight: 600; }
.account-links a:hover { border-color: var(--plaque); }
.account-posts, .account-identities { list-style: none; padding: 0; }
.account-posts li { padding: 1rem 0; border-bottom: 1px solid var(--glaze); }
.account-posts .meta { display: block; }
.account-identities li { padding: .5rem 0; }
.account-section .empty { font-size: .95rem; padding: 1rem 0; }
.account-delete { margin-top: 2rem; }
.account-delete summary { color: var(--muted); cursor: pointer; font-size: .9rem; padding: .5rem 0; }
.account-delete form { max-width: 30rem; }
.account-delete button { background: #b3401b; color: #fff; }
.public-page .account-delete button { background: #b3401b; color: #fff; }
@media (max-width: 52rem) {
  .public-page .site-header { gap: .7rem 1rem; padding: .8rem 1.25rem; }
  .public-page .site-header .brand { flex: 1; }
  .public-page .site-header .tabs { order: 1; width: 100%; }
  .public-page .site-header .me { font-size: .8rem; margin-left: 0; }
  .public-page main { padding: 2rem 1.25rem; }
  .public-page .site-footer { padding: 1.5rem 1.25rem; }
  .public-page h1, .public-page .tourshot-cap h1 { font-size: 1.75rem; }
  .guide-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
  .guide-profile .guidecard { grid-template-columns: minmax(0, 9rem) minmax(0, 1fr); gap: 1rem; }
  .account-links { grid-template-columns: 1fr; gap: .5rem; }
  .public-page .bookinfo { grid-template-columns: 6rem minmax(0, 1fr); gap: 0 1rem; }
}
@media (max-width: 30rem) {
  .guide-directory-grid, .guide-profile .guidecard { grid-template-columns: 1fr; }
  .guide-profile .guidecard-photo { max-width: 18rem; }
  .account-facts > div { grid-template-columns: 6rem minmax(0, 1fr); }
}
