/* ===== ブランドページ（/stay/brand/<slug>/） bp- =====
   docs/tools/build-brand-pages.py が出力するページ専用。2026-09-26 作成 */
.bp{--bp-night:#0f1a17;--bp-night-2:#16241f;--bp-ink:#141414;--bp-weak:#6f716c;--bp-line:#dcdcd6;--bp-paper:#f6f6f4;--bp-accent:var(--c-cta,#2c4c39)}
.bp-hero{position:relative;min-height:min(92svh,860px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--bp-night)}
@media(max-width:767px){.bp-hero{min-height:74svh}}
.bp-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.bp-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,14,12,.15) 0%,rgba(8,14,12,.05) 40%,rgba(8,14,12,.72) 100%)}
.bp-hero-in{position:relative;z-index:1;width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter) clamp(2.5rem,7vw,5rem)}
.bp-eyebrow{font-family:var(--font-latin);letter-spacing:.28em;font-size:.8rem;opacity:.9}
.bp-hero h1{font-family:var(--font-head);font-weight:600;font-size:clamp(2rem,5.6vw,3.8rem);line-height:1.45;letter-spacing:.12em;margin:.6rem 0 1rem;text-wrap:balance}
.bp-hero p{font-size:clamp(.95rem,1.4vw,1.1rem);letter-spacing:.08em;opacity:.92;margin:0}
.bp-hero .bp-credit{position:absolute;right:var(--gutter);bottom:1rem;font-size:.7rem;opacity:.7;letter-spacing:.06em}
.bp-concept{padding-block:clamp(4.5rem,11vw,9rem);text-align:center;background:#fff}
.bp-concept p{font-family:var(--font-head);font-size:clamp(1rem,1.6vw,1.2rem);line-height:2.3;letter-spacing:.12em;max-width:34em;margin:0 auto;color:var(--bp-ink)}
.bp-concept .bp-mark{display:block;width:1px;height:48px;background:var(--bp-ink);opacity:.35;margin:0 auto 2.4rem}
.bp-pillars{background:var(--bp-night);color:#e9ece8;padding-block:clamp(4rem,9vw,7rem)}
.bp-pillars .container{display:grid;gap:clamp(3rem,6vw,5rem)}
.bp-pillar{display:grid;grid-template-columns:1fr;gap:1.4rem;align-items:center}
@media(min-width:900px){.bp-pillar{grid-template-columns:1.25fr 1fr;gap:4rem}.bp-pillar:nth-child(even) .bp-ph{order:2}}
.bp-ph{aspect-ratio:3/2;overflow:hidden;background:var(--bp-night-2)}
.bp-ph img{width:100%;height:100%;object-fit:cover;display:block}
.bp-pillar .bp-k{font-family:var(--font-latin);letter-spacing:.28em;font-size:.75rem;color:#a9b8ae}
.bp-pillar h2{font-family:var(--font-head);font-weight:600;font-size:clamp(1.4rem,2.6vw,2rem);letter-spacing:.12em;margin:.5rem 0 1rem;color:#fff}
.bp-pillar p{line-height:2.1;letter-spacing:.06em;max-width:28em;margin:0;color:#d5dbd6}
.bp-sec{padding-block:clamp(4rem,9vw,7rem)}
#types{scroll-margin-top:calc(var(--header-h) + var(--notice-h) + 1rem)}
.bp-head{text-align:center;margin-bottom:clamp(2rem,5vw,3.5rem)}
.bp-head .label{display:block;margin-bottom:.6rem}
.bp-head h2{font-family:var(--font-head);font-size:clamp(1.4rem,2.6vw,1.9rem);letter-spacing:.12em;margin:0}
.bp-head p{color:var(--bp-weak);margin:.8rem auto 0;max-width:36em;font-size:.95rem}
.bp-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:clamp(1.5rem,3vw,2.5rem)}
.bp-type{display:flex;flex-direction:column;background:#fff}
.bp-type .bp-ph{aspect-ratio:4/3}
.bp-type-b{padding:1.4rem 1.3rem 1.5rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.bp-type-name{font-family:var(--font-en-serif);font-size:1.6rem;letter-spacing:.12em;line-height:1.2}
.bp-type-name small{display:block;font-family:var(--font-head);font-size:.78rem;letter-spacing:.1em;color:var(--bp-weak);margin-top:.2rem}
.bp-type-copy{font-family:var(--font-head);font-size:1rem;letter-spacing:.06em;line-height:1.8;margin:0}
.bp-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--bp-line);border-bottom:1px solid var(--bp-line);margin:.2rem 0}
.bp-stats div{padding:.6rem 0;text-align:center;font-size:.72rem;color:var(--bp-weak);letter-spacing:.06em}
.bp-stats div+div{border-left:1px solid var(--bp-line)}
.bp-stats b{display:block;font-family:var(--font-latin);font-size:1.35rem;color:var(--bp-ink);font-weight:400;letter-spacing:.04em;line-height:1.3}
.bp-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none}
.bp-chips li{font-size:.72rem;letter-spacing:.06em;padding:.18rem .6rem;border:1px solid var(--bp-line);color:#3d403b}
.bp-type-act{display:flex;gap:.6rem;margin-top:auto;padding-top:.4rem}
.bp-type-act a{flex:1;text-align:center;font-size:.85rem;letter-spacing:.08em;padding:.75rem .5rem;text-decoration:none}
.bp-btn-line{border:1px solid var(--bp-ink);color:var(--bp-ink)}
.bp-btn-fill{background:var(--bp-accent);color:#fff;border:1px solid var(--bp-accent)}
.bp-btn-line:hover,.bp-btn-fill:hover{opacity:.85}
.bp-table-wrap{overflow-x:auto;background:#fff;-webkit-overflow-scrolling:touch}
.bp-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.88rem;letter-spacing:.04em}
.bp-table th,.bp-table td{padding:.85rem 1rem;border-bottom:1px solid var(--bp-line);text-align:center;white-space:nowrap}
.bp-table thead th{font-family:var(--font-en-serif);font-size:1.05rem;letter-spacing:.1em;font-weight:500}
.bp-table tbody th{text-align:left;font-weight:500;color:var(--bp-weak);font-size:.8rem;position:sticky;left:0;background:#fff}
.bp-table td.num{font-family:var(--font-latin);font-size:1.05rem}
.bp-flow-tabs{display:flex;justify-content:center;gap:.5rem;margin-bottom:2rem}
.bp-flow-tabs button{font:inherit;font-size:.85rem;letter-spacing:.1em;padding:.55rem 1.4rem;border:1px solid var(--bp-ink);background:transparent;color:var(--bp-ink);cursor:pointer}
.bp-flow-tabs button[aria-pressed="true"]{background:var(--bp-ink);color:#fff}
.bp-flow{list-style:none;margin:0 auto;padding:0;max-width:760px;position:relative}
.bp-flow::before{content:"";position:absolute;left:4.2rem;top:.6rem;bottom:.6rem;width:1px;background:var(--bp-line)}
.bp-flow li{display:grid;grid-template-columns:4.2rem 1fr;gap:1.6rem;padding:.9rem 0;position:relative}
.bp-flow li::after{content:"";position:absolute;left:calc(4.2rem - 3px);top:1.45rem;width:7px;height:7px;border-radius:50%;background:var(--bp-ink)}
.bp-flow time{font-family:var(--font-latin);font-size:1.15rem;letter-spacing:.06em;text-align:right;padding-right:.6rem}
.bp-flow b{font-family:var(--font-head);font-weight:600;letter-spacing:.08em;display:block;margin-bottom:.2rem}
.bp-flow span{color:var(--bp-weak);font-size:.9rem;line-height:1.9}
.bp-flow .bp-day{grid-column:1/-1;font-family:var(--font-latin);letter-spacing:.24em;font-size:.75rem;color:var(--bp-weak);padding:.6rem 0 0 5.8rem}
.bp-flow .bp-day::after{display:none}
.bp-seasons{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.6rem,1.5vw,1rem)}
@media(min-width:900px){.bp-seasons{grid-template-columns:repeat(4,1fr)}}
.bp-season{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--bp-paper);display:flex;align-items:flex-end}
.bp-season img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bp-season::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.6))}
.bp-season div{position:relative;z-index:1;color:#fff;padding:1rem}
.bp-season b{font-family:var(--font-latin);letter-spacing:.24em;font-size:.8rem;display:block;opacity:.9}
.bp-season span{font-family:var(--font-head);font-size:.92rem;letter-spacing:.06em;line-height:1.8}
.bp-season.todo{border:1px dashed #b9b9b2}
.bp-season.todo::after{display:none}
.bp-season.todo div{color:var(--bp-weak)}
.bp-season.todo em{display:inline-block;font-style:normal;font-size:.7rem;border:1px solid currentColor;padding:0 .45rem;margin-bottom:.4rem}
.bp-access{display:grid;gap:2rem;grid-template-columns:1fr}
@media(min-width:900px){.bp-access{grid-template-columns:1fr 1fr;gap:4rem}}
.bp-times{display:grid;gap:0;border-top:1px solid var(--bp-line)}
.bp-times div{display:flex;justify-content:space-between;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--bp-line);gap:1rem}
.bp-times dt{font-size:.9rem;letter-spacing:.06em}
.bp-times dd{margin:0;font-family:var(--font-latin);font-size:1.3rem;letter-spacing:.04em;white-space:nowrap}
.bp-times dd small{font-family:var(--font-head);font-size:.75rem;color:var(--bp-weak);margin-left:.2rem}
.bp-note{font-size:.8rem;color:var(--bp-weak);line-height:1.9}
.bp-others{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem}
.bp-other{position:relative;aspect-ratio:16/9;overflow:hidden;color:#fff;text-decoration:none;display:flex;align-items:flex-end}
.bp-other img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.bp-other:hover img{transform:scale(1.04)}
.bp-other::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.65))}
.bp-other div{position:relative;z-index:1;padding:1.2rem 1.3rem}
.bp-other b{font-family:var(--font-en-serif);font-size:1.4rem;letter-spacing:.1em;display:block}
.bp-other span{font-family:var(--font-head);font-size:.85rem;letter-spacing:.06em}
.bp-final{background:var(--bp-night);color:#fff;text-align:center;padding-block:clamp(4rem,9vw,6.5rem)}
.bp-final h2{font-family:var(--font-head);font-size:clamp(1.3rem,2.4vw,1.7rem);letter-spacing:.12em;margin:0 0 1rem}
.bp-final p{opacity:.85;margin:0 0 2rem;font-size:.95rem}
.bp-final a{display:inline-block;background:#fff;color:var(--bp-night);padding:1rem 3rem;letter-spacing:.14em;text-decoration:none;font-size:.95rem}
.bp-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(255,255,255,.97);border-top:1px solid var(--bp-line);padding:.6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:.8rem;transform:translateY(110%);transition:transform .35s ease;backdrop-filter:blur(6px)}
.bp-bar.show{transform:none}
@media(max-width:1023px){body.bp-bar-on #chatmgpt-bubble-button>div{bottom:calc(var(--bp-bar-h,64px) + 12px)!important}}
.bp-bar p{margin:0;font-size:.72rem;line-height:1.5;color:var(--bp-weak);flex:1}
.bp-bar p b{display:block;color:var(--bp-ink);font-family:var(--font-head);font-size:.88rem;letter-spacing:.06em}
.bp-bar a{background:var(--bp-accent);color:#fff;text-decoration:none;padding:.8rem 1.3rem;font-size:.85rem;letter-spacing:.08em;white-space:nowrap}
@media(min-width:1024px){.bp-bar{right:auto;left:1.5rem;bottom:1.5rem;border:1px solid var(--bp-line);max-width:420px}}
.bp-draft{background:#fff4d6;color:#6a4b00;font-size:.8rem;text-align:center;padding:.5rem 1rem;letter-spacing:.04em}
@media (prefers-reduced-motion: reduce){.bp-bar,.bp-other img{transition:none}}
