/* Internal pages extend the accepted warm Fenix identity; all content stays crawlable HTML. */
.internal-page { background:#fffdf8; }
.internal-page .site-header { position:relative; }
.internal-page .desktop-nav { gap:clamp(12px,1.6vw,30px); }
.breadcrumbs { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:26px var(--gutter) 0; color:#687080; font-size:.82rem; }
.breadcrumbs a { text-decoration:none; }
.breadcrumbs a:hover { color:#304aa0; }
.page-hero { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:clamp(24px,4vw,80px); align-items:center; min-height:min(760px,calc(100svh - 120px)); padding:52px var(--gutter) 64px; background:#fffdf8; isolation:isolate; }
.page-hero-copy { min-width:0; position:relative; z-index:1; }
.page-hero h1 { font-size:clamp(3rem,5.6vw,6.6rem); line-height:1.09; letter-spacing:-.052em; margin-top:24px; max-width:15ch; overflow-wrap:anywhere; }
.page-hero-lead { font-size:clamp(1.05rem,1.28vw,1.3rem); color:#586171; line-height:1.75; margin-top:28px; max-width:57ch; }
.page-hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:34px; }
.page-hero-actions .button,.internal-page .button { min-height:50px; display:inline-flex; align-items:center; justify-content:center; gap:14px; text-decoration:none; }
.page-button-secondary { background:transparent; border-color:#a8b4cf; color:#304aa0; }
.page-button-secondary:hover { background:#304aa0; border-color:#304aa0; color:white; }
.page-hero-visual { position:relative; min-width:0; display:flex; align-items:center; justify-content:center; }
.page-hero-art { width:100%; height:auto; aspect-ratio:1; object-fit:contain; max-height:590px; filter:drop-shadow(0 20px 28px #765f3520); }
.page-students .page-hero,.page-students .breadcrumbs { background:#f3edf2; }
.page-rent .page-hero,.page-rent .breadcrumbs { background:#fff4e2; }
.page-prices .page-hero,main .page-prices .breadcrumbs { background:#eff2f9; }
.page-catalog,main .page-prices,.page-rooms,.page-routes,.profile-work,.profile-introduction,.profile-details,.profile-public-links { padding:70px var(--gutter); }
.page-group-heading { margin:0 0 28px; }
.page-group-heading h2 { font-size:clamp(2rem,3.2vw,3.6rem); }
.page-group-heading p { color:#636b79; max-width:60ch; margin-top:16px; line-height:1.7; }
.page-person-group + .page-person-group { border-top:1px solid #e7dfd4; padding-top:56px; margin-top:56px; }
.person-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.person-card { background:#fff; border:1px solid #e6ded1; border-radius:24px; overflow:hidden; min-width:0; box-shadow:0 6px 22px #312e2807; transition:border-color .25s,box-shadow .25s; }
.person-card:hover { border-color:#a7b3cc; box-shadow:0 12px 34px #312e2810; }
.person-card-link { display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1fr); align-items:center; gap:24px; padding:18px; height:100%; color:inherit; text-decoration:none; }
.person-card-photo { border-radius:18px; overflow:hidden; }
.person-card-photo img { width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.person-card-copy { min-width:0; display:flex; flex-direction:column; gap:12px; padding-block:8px; }
.person-card h3 { font-size:clamp(1.5rem,1.8vw,2.15rem); line-height:1.2; }
.person-status { color:#63718c; font-size:.73rem; line-height:1.6; }
.person-role { font-size:.84rem; color:#545b69; line-height:1.65; }
.person-summary { font-size:.89rem; line-height:1.7; color:#545b69; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.person-tags { display:flex; flex-wrap:wrap; gap:6px; max-height:66px; overflow:hidden; }
.person-tags span { display:inline-flex; font-size:.68rem; padding:5px 8px; background:#f5f0e7; color:#5d6271; border-radius:999px; }
.person-card-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:15px; border-top:1px solid #ece6dc; }
.person-card-bottom strong { font-size:.96rem; }
.person-more { display:inline-flex; align-items:center; justify-content:center; gap:9px; border:1px solid #b5bfd3; border-radius:999px; min-height:40px; padding:0 14px; color:#304aa0; font-size:.8rem; transition:background .2s,color .2s; }
.person-card:hover .person-more { background:#304aa0; color:#fff; }
.page-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) minmax(110px,.45fr); gap:18px; align-items:end; padding:22px; margin-bottom:24px; border:1px solid #e3dbcf; border-radius:22px; background:#faf6ee; }
.page-filter-field { min-width:0; display:grid; gap:9px; }
.page-filter-field label { color:#596172; font-size:.8rem; }
.page-filter-field select { width:100%; min-height:50px; border:1px solid #d7dce6; border-radius:12px; padding:12px; background:#fff; color:#253456; }
.page-filter-picker { position:relative; }
.page-filter-picker summary { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:50px; border:1px solid #d7dce6; border-radius:12px; padding:12px 14px; background:white; color:#253456; font-size:.88rem; cursor:pointer; list-style:none; }
.page-filter-picker summary::-webkit-details-marker { display:none; }
.page-filter-picker summary::after { content:'⌄'; line-height:1; font-size:1.2rem; }
.page-filter-picker[open] summary { border-color:#304aa0; }
.page-filter-picker .page-filter-menu { position:absolute; z-index:8; inset:calc(100% + 8px) 0 auto; display:grid; padding:8px; background:#fff; border:1px solid #dce1eb; border-radius:16px; max-height:320px; overflow:auto; box-shadow:0 12px 32px #25345616; }
.page-filter-menu button { display:flex; align-items:center; width:100%; min-height:42px; text-align:left; padding:8px 10px; background:none; border:0; border-radius:8px; color:#253456; cursor:pointer; font-size:.85rem; }
.page-filter-menu button:hover,.page-filter-menu button[aria-pressed=true] { background:#eff2fa; }
.page-filter-result { min-height:20px; font-size:.85rem; color:#626b7d; margin-bottom:24px; }
.page-catalog-empty { text-align:center; padding:48px 20px; background:#f6f1e9; border-radius:20px; }
.page-catalog-empty p { margin:16px auto 24px; max-width:50ch; color:#5d6576; }
.page-catalog-note { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:38px; padding-top:30px; border-top:1px solid #ded5c8; }
.page-narrative { background:#f7f3eb; }
.page-story { padding:64px var(--gutter); display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(32px,6vw,120px); }
.page-story + .page-story { border-top:1px solid #e2dacd; }
.page-story-heading h2 { font-size:clamp(2rem,3.2vw,3.6rem); line-height:1.15; max-width:18ch; margin-top:20px; }
.page-story-marker { color:#8f7456; font-size:.82rem; }
.page-story-copy { max-width:75ch; font-size:1.04rem; line-height:1.8; color:#515b6c; }
.page-story-copy p + p { margin-top:20px; }
.page-story-copy ul { padding-left:22px; margin:22px 0 0; }
.page-story-copy li + li { margin-top:12px; }
.page-story-1 { background:#fffdf8; }
.page-route-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 36px; margin-top:32px; }
.page-route { padding:28px 0; border-top:1px solid #dcd4c7; display:grid; grid-template-columns:28px minmax(0,1fr) 20px; gap:18px; align-items:start; color:inherit; text-decoration:none; transition:color .25s; }
.page-route:hover { color:#304aa0; }
.page-route h3 { font-size:clamp(1.35rem,1.6vw,1.9rem); line-height:1.35; }
.page-route-number { font-size:.78rem; color:#8d765b; padding-top:5px; }
.page-faq { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(30px,7vw,120px); padding:72px var(--gutter); background:#edf1f8; }
.page-faq h2 { margin-top:22px; max-width:17ch; }
.page-faq details { border-bottom:1px solid #ccd5e5; }
.page-faq summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:23px 0; font-weight:600; list-style:none; cursor:pointer; }
.page-faq summary::-webkit-details-marker { display:none; }
.page-faq summary span { display:flex; align-items:center; justify-content:center; width:28px; height:28px; flex-shrink:0; color:#304aa0; font-size:1.7rem; line-height:1; transition:transform .3s; }
.page-faq details[open] summary span { transform:rotate(45deg); }
.page-faq-answer { padding:0 24px 24px 0; color:#556175; line-height:1.8; }
.page-request { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,6vw,100px); padding:76px var(--gutter); background:#304aa0; color:#fff; }
.page-request .section-index { color:#ffda77; }
.page-request-copy h2 { margin:24px 0; max-width:17ch; font-size:clamp(2.3rem,3.8vw,4.5rem); }
.page-request-copy p:not(.section-index) { max-width:48ch; color:#e3e9ff; line-height:1.8; }
.page-request-copy .button { margin-top:28px; border-color:#ffffff66; color:#fff; }
.page-request-copy .button:hover { background:#fff; color:#304aa0; }
.page-request .request-form { background:#fff8ed; color:#222b43; padding:30px; border-radius:24px; display:grid; gap:20px; box-shadow:0 20px 45px #15256b20; }
.page-form-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.page-request .request-form .field input,.page-request .request-form .field textarea { background:white; width:100%; }
.page-request .request-form .button { width:100%; }
.page-request .field-hint { font-size:.75rem; color:#626a77; margin-top:8px; }
.page-request .consent-check { align-items:start; line-height:1.7; font-size:.8rem; }
.page-request .consent-check input { margin-top:5px; }
.profile-hero { min-height:690px; }
.profile-hero .page-hero-visual { padding-right:60px; }
.profile-hero-photo { width:min(100%,490px); overflow:hidden; border-radius:34px 34px 120px 34px; box-shadow:0 18px 40px #4a3e2e16; }
.profile-hero-photo img { width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.profile-hero .page-hero-art { position:absolute; width:clamp(130px,18vw,260px); height:auto; bottom:-32px; right:-10px; max-height:260px; }
.profile-hero-meta { margin-top:22px; color:#304aa0; font-weight:600; font-size:1.08rem; }
.profile-introduction { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(32px,6vw,100px); background:#f6f0e6; }
.profile-introduction > div { max-width:76ch; color:#515a6b; line-height:1.85; font-size:1.05rem; }
.profile-introduction h3 { margin:28px 0 14px; color:#27344f; line-height:1.3; }
.profile-audience { margin-top:24px; padding-top:24px; border-top:1px solid #ddd3c2; }
.profile-work-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 40px; margin-top:38px; }
.profile-work-grid article { border-top:1px solid #dfd6c9; padding-top:22px; }
.profile-work-grid h3 { font-size:1.3rem; line-height:1.35; }
.profile-work-grid p { margin-top:14px; color:#626979; line-height:1.75; }
.profile-details { display:grid; grid-template-columns:1fr 1fr; gap:70px; background:#f1eef4; }
.profile-details h2 { font-size:clamp(1.9rem,2.7vw,3rem); margin:24px 0; }
.profile-details p { color:#5c6475; }
.profile-details ul { padding-left:20px; color:#51596b; line-height:1.8; }
.profile-details li + li { margin-top:12px; }
.profile-details .button { margin-top:12px; }
.profile-public-links { display:flex; align-items:center; justify-content:space-between; gap:36px; }
.profile-public-links h2 { margin-top:20px; font-size:clamp(2rem,3vw,3.5rem); }
.profile-public-links > div:last-child { display:flex; flex-wrap:wrap; gap:14px; max-width:650px; }
.price-list { margin:30px 0 64px; }
.price-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) auto; gap:32px; align-items:start; padding:30px 0; border-top:1px solid #e1d9cc; }
.price-row h3 { font-size:1.5rem; line-height:1.3; }
.price-row h3 a { text-decoration:none; }
.price-row p { color:#677084; margin-top:12px; font-size:.9rem; }
.price-row ul { list-style:none; margin:0; padding:0; line-height:1.85; }
.page-room-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.page-room { overflow:hidden; border:1px solid #e3d9c9; border-radius:26px; background:white; }
.page-room > img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.page-room-copy { padding:30px; }
.page-room h2 { font-size:2rem; }
.page-room-copy > p { margin-top:18px; line-height:1.75; color:#5f6472; }
.page-room-specs { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; color:#596882; }
.page-room dl { margin-top:24px; }
.page-room dl > div { display:flex; justify-content:space-between; gap:24px; padding:12px 0; border-top:1px solid #e8e0d4; }
.page-room dt { color:#5e6678; }
.page-room dd { font-weight:600; text-align:right; }
.page-room .button { margin-top:26px; }
.legal-page-art { float:right; width:clamp(140px,25vw,280px); height:auto; aspect-ratio:1; object-fit:contain; margin:0 0 24px 32px; }
.internal-page :is(a,button,summary,input,textarea,select):focus:not(:focus-visible) { outline:none; }
.internal-page :is(a,button,summary):focus-visible { outline:3px solid #304aa0; outline-offset:4px; }
@media(min-width:1440px) { .internal-page .person-card-link { gap:30px; padding:22px; } }
@media(max-width:1199px) { .internal-page .desktop-nav { display:none; } .person-card-link { grid-template-columns:160px minmax(0,1fr); gap:20px; } .person-grid { grid-template-columns:1fr; } .page-hero h1 { font-size:clamp(3rem,6vw,5.8rem); } }
@media(max-width:999px) { .page-hero { gap:24px; min-height:550px; } .page-hero-lead { font-size:1rem; } .page-filters { grid-template-columns:repeat(3,minmax(0,1fr)); } .page-filters > button { grid-column:1/-1; justify-self:start; } .page-route-grid,.profile-work-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .page-form-fields { grid-template-columns:1fr; } .page-request { gap:32px; } .profile-hero .page-hero-visual { padding-right:24px; } .profile-hero .page-hero-art { right:-10px; width:150px; } .price-row { grid-template-columns:1fr 1.1fr; } .price-row > .button { grid-column:2; justify-self:start; } }
@media(max-width:767px) { .breadcrumbs { font-size:.73rem; padding-top:22px; gap:8px; } .page-hero { grid-template-columns:1fr; min-height:0; padding-top:36px; padding-bottom:42px; gap:28px; } .page-hero h1 { max-width:16ch; font-size:clamp(2.65rem,9vw,4.4rem); margin-top:20px; } .page-hero-lead { margin-top:22px; line-height:1.75; } .page-hero-visual { max-width:380px; width:100%; justify-self:center; } .page-hero-art { max-height:330px; } .page-hero-actions { margin-top:28px; } .page-catalog,main .page-prices,.page-rooms,.page-routes,.profile-work,.profile-introduction,.profile-details,.profile-public-links { padding-block:48px; } .page-story,.page-faq,.page-request,.profile-introduction,.profile-details { grid-template-columns:1fr; gap:28px; padding-block:48px; } .page-story-heading h2 { max-width:24ch; } .page-story-copy { font-size:1rem; } .page-route-grid,.profile-work-grid { grid-template-columns:1fr; } .page-request .request-form { padding:24px; } .page-room-grid { grid-template-columns:1fr; } .page-room-copy { padding:24px; } .profile-hero .page-hero-visual { max-width:360px; padding-right:40px; margin-bottom:20px; } .profile-hero .page-hero-art { width:160px; right:-2px; bottom:-18px; } .profile-public-links { display:block; } .profile-public-links > div:last-child { margin-top:28px; } .profile-work-grid { gap:24px; } .page-catalog-note { align-items:flex-start; flex-direction:column; } .legal-page-art { width:140px; margin-left:18px; } }
@media(max-width:599px) { .page-filters { grid-template-columns:1fr; gap:16px; padding:18px; } .page-filters > button { width:100%; } .person-card-link { grid-template-columns:1fr; padding:20px; gap:20px; } .person-card-photo { max-width:280px; width:100%; margin-inline:auto; } .person-card-copy { padding:0; } .person-card h3 { font-size:1.7rem; } .person-summary { font-size:.94rem; } .person-role { font-size:.9rem; } .person-status { font-size:.78rem; } .person-tags span { font-size:.74rem; } .price-row { grid-template-columns:1fr; gap:20px; } .price-row > .button { grid-column:auto; } .page-hero-actions .button { width:100%; } .profile-public-links .button { flex:1 1 135px; } }
@media(prefers-reduced-motion:reduce) { .internal-page * { animation:none!important; scroll-behavior:auto; transition:none!important; } }

.spaces .space-footer { flex-wrap:wrap; gap:18px; }
.spaces .space-footer .button { min-width:0; max-width:100%; }
@media(max-width:599px) { .spaces .space-footer { flex-direction:column; align-items:stretch; } .spaces .space-footer .button { width:100%; } }

.rent-booking-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px; }
.rent-booking-actions .page-button-secondary { border-color:#ffffff88; color:#fff; }
.rent-booking-actions .page-button-secondary:hover { background:#fff; color:#304aa0; }

.profile-hero-audience { color:#314779; font-weight:600; font-size:1.1rem; line-height:1.7; margin-top:22px; }
.profile-hero-audience + .profile-hero-meta { margin-top:12px; }

/* Editorial revision: a distinct rhythm for help, rooms and education. */
.page-introduction { background:#f8f3e9; }
.page-introduction .page-hero,.page-introduction .breadcrumbs { background:transparent; }
.page-prices .page-introduction { background:#edf0f7; }
.page-students .page-introduction { background:#f3edf2; }
.page-rent .page-introduction,.page-rent-cabinets .page-introduction,.page-rent-halls .page-introduction,.page-rent-subscriptions .page-introduction { background:#fcf0dc; }
.page-education .page-introduction { background:#edf1e6; }
.page-introduction .page-hero { min-height:610px; padding-top:34px; }
.page-introduction .page-hero h1 { font-size:clamp(3rem,5.1vw,6rem); max-width:18ch; }
.page-introduction .page-hero-lead { max-width:58ch; }
.page-introduction .page-hero-art { max-height:470px; }
.internal-page .page-route { grid-template-columns:minmax(0,1fr) 24px; align-items:center; padding:26px 0; }
.internal-page .page-route h3 { margin:0; font-size:clamp(1.15rem,1.6vw,1.65rem); }
.internal-page .page-route-grid { gap:0 36px; }
.editorial-section-heading h2,.editorial-chapter h2,.rental-offers-heading h2,.education-stage h2 { font-size:clamp(2rem,3.4vw,3.8rem); line-height:1.16; letter-spacing:-.035em; }
.editorial-section-heading .section-index,.rental-offers-heading .section-index { margin-bottom:18px; }
.editorial-chapter { min-width:0; }
.editorial-chapter h2 { margin-bottom:24px; }
.editorial-chapter p,.editorial-points,.education-stage p { color:#596170; font-size:1.04rem; line-height:1.8; max-width:68ch; }
.editorial-chapter p+p,.education-stage p+p { margin-top:18px; }
.editorial-points { padding-left:22px; margin-top:20px; }
.editorial-points li+li { margin-top:12px; }
.about-editorial-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:5vw; align-items:center; padding:76px var(--gutter); }
.about-wide-art,.consultation-wide-art,.education-wide-art { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; border-radius:28px; }
.about-place-story { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:5vw; padding:72px var(--gutter); background:#f1ede4; }
.about-place-image { border-radius:24px; overflow:hidden; }
.about-place-image img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.about-place-story .button { margin-top:28px; }
.about-editorial-chapters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:54px; padding:80px var(--gutter); }
.about-person { display:grid; grid-template-columns:260px minmax(0,1fr); gap:50px; align-items:center; padding:54px var(--gutter); background:#e9eee4; }
.about-person img { width:100%; height:auto; border-radius:28px; }
.about-person h2 { font-size:clamp(2rem,3vw,3.4rem); margin:18px 0; }
.about-person p { color:#586373; line-height:1.7; }
.about-person .button { margin-top:24px; }
.rent-directions { padding:74px var(--gutter); }
.rent-direction-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; margin-top:36px; }
.rent-direction { color:inherit; text-decoration:none; background:#f5eee2; border-radius:24px; overflow:hidden; transition:box-shadow .25s; }
.rent-direction:hover { box-shadow:0 14px 36px #342f211a; }
.rent-direction-image { overflow:hidden; }
.rent-direction-image img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; transition:transform .7s; }
.rent-direction:hover img { transform:scale(1.025); }
.rent-direction-copy { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:22px; padding:30px; }
.rent-direction-copy h3 { font-size:2.65rem; margin-top:10px; }
.rent-direction-copy p { color:#606577; font-size:.93rem; }
.rent-direction-link { display:flex; align-items:center; gap:14px; border:1px solid #a7b3cd; border-radius:999px; padding:12px 18px; color:#304aa0; font-size:.9rem; }
.rent-context { padding:64px var(--gutter); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px; background:#e9eee5; }
.rent-context h2 { font-size:clamp(1.6rem,2.3vw,2.5rem); }
.rental-room-section { padding:74px var(--gutter); }
.rental-room-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:38px; }
.rental-room { background:#fff; border:1px solid #e3dbcf; border-radius:24px; overflow:hidden; }
.rental-room > img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.rental-room-copy { padding:30px; }
.rental-room-top { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.rental-room-top h2 { font-size:clamp(1.8rem,2.5vw,2.8rem); }
.rental-room-top > span { white-space:nowrap; color:#63708c; }
.rental-room-copy > p { font-size:.97rem; line-height:1.75; color:#5b6575; margin-top:18px; }
.rental-room-copy .rental-capacity { color:#314779; }
.rental-room-copy dl,.rental-price dl { margin-top:26px; }
.rental-room-copy dl > div,.rental-price dl > div,.offer-rate-pair > div { display:flex; align-items:start; justify-content:space-between; gap:20px; padding:13px 0; border-top:1px solid #e6dfd4; font-size:.9rem; line-height:1.5; }
.rental-room-copy dt,.rental-price dt,.offer-rate-pair dt { color:#626879; }
.rental-room-copy dd,.rental-price dd,.offer-rate-pair dd { margin:0; text-align:right; font-weight:600; white-space:nowrap; }
.rental-room-copy .button { margin-top:26px; }
.rental-detail-copy { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; padding:70px var(--gutter); background:#f3eee4; }
.rental-offers { padding:76px var(--gutter); background:#f1f0e5; }
.rental-offers-heading { display:flex; align-items:center; flex-wrap:wrap; gap:20px 32px; }
.rental-offers-heading .section-index { flex:0 0 100%; margin:0; }
.rental-offers-heading h2 { flex:1 1 55%; }
.rental-offer-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:24px; margin-top:38px; }
.rental-offer { grid-column:span 3; background:#fffdf8; border:1px solid #dedace; border-radius:22px; padding:30px; }
.rental-offer-discount { grid-column:span 2; background:#f8f6ee; }
.offer-type { color:#687055; text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; margin-bottom:18px; }
.rental-offer h3 { font-size:clamp(1.5rem,2vw,2.1rem); line-height:1.3; }
.offer-hours { margin-top:24px; color:#596271; font-size:1rem; }
.offer-price { display:block; font-size:clamp(2.3rem,3vw,3.6rem); margin-top:12px; letter-spacing:-.035em; color:#304aa0; }
.rental-offer > p:not(.offer-type):not(.offer-hours) { margin-top:22px; line-height:1.75; color:#596271; font-size:.94rem; }
.offer-rate-pair { margin-top:24px; }
.rental-offer-notes { max-width:75ch; margin-top:30px; color:#656c7a; line-height:1.7; font-size:.89rem; }
.rental-offer-notes p+p { margin-top:10px; }
.pricing-directions { padding:26px var(--gutter); display:flex; gap:16px; background:#edf0f7; }
.consultation-pricing { padding:74px var(--gutter); background:#fffdf8; }
.pricing-people-group { margin-top:40px; }
.pricing-people-group > h3 { font-size:clamp(1.4rem,2vw,2rem); color:#55617a; margin-bottom:24px; }
.pricing-people-group + .pricing-people-group { padding-top:40px; border-top:1px solid #e5dccf; }
.pricing-person-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.pricing-person { padding:26px; border:1px solid #e0d9cb; border-radius:20px; background:#fff; display:flex; flex-direction:column; align-items:start; min-width:0; }
.pricing-person-heading h4 { font-size:1.35rem; line-height:1.35; }
.pricing-person-heading a { text-decoration:none; }
.pricing-person-heading p { margin-top:13px; font-size:.85rem; color:#606a7b; line-height:1.7; }
.pricing-person ul { list-style:none; padding:0; margin:24px 0; font-size:.96rem; line-height:1.75; }
.pricing-person li+li { margin-top:10px; }
.pricing-person .button { margin-top:auto; }
.pricing-explanation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px; padding:56px var(--gutter); background:#edf0f7; }
.pricing-explanation h2 { font-size:clamp(1.5rem,2.3vw,2.5rem); }
.rental-pricing { background:#f6efe2; padding-top:74px; }
.rental-pricing > .editorial-section-heading,.rental-price-grid { margin-inline:var(--gutter); }
.rental-price-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:38px; padding-bottom:72px; }
.rental-price { padding:28px; background:#fffdf8; border:1px solid #dfd6c7; border-radius:22px; }
.rental-price h3 { font-size:1.7rem; }
.rental-price p { margin-top:12px; color:#606b7b; font-size:.86rem; line-height:1.6; }
.rental-price .button { margin-top:26px; }
.format-selection { padding:72px var(--gutter); }
.format-selection-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:24px; margin-top:36px; }
.format-choice { display:flex; flex-direction:column; align-items:start; gap:20px; background:#f2ece1; border:1px solid #e1d8c9; border-radius:22px; padding:34px; text-decoration:none; transition:background .25s; }
.format-choice:hover { background:#e8e3d6; }
.format-choice-featured { grid-row:span 3; justify-content:center; background:#e7eddf; }
.format-choice-caption { color:#667450; font-size:.81rem; }
.format-choice h3 { font-size:clamp(1.65rem,2.5vw,2.7rem); line-height:1.25; }
.format-choice-featured h3 { font-size:clamp(2rem,3.5vw,4rem); }
.format-choice p { font-size:1rem; line-height:1.75; color:#596370; max-width:44ch; }
.format-choice-action { color:#304aa0; border:1px solid #adb8cd; border-radius:999px; padding:11px 18px; display:flex; gap:18px; align-items:center; font-size:.86rem; }
.consultation-editorial { display:grid; grid-template-columns:1fr 1fr; gap:5vw; padding:74px var(--gutter); background:#f4efe5; align-items:start; }
.consultation-wide-art { position:sticky; top:34px; }
.consultation-principles { display:grid; gap:42px; }
.consultation-principles h2 { font-size:clamp(1.8rem,2.7vw,3rem); }
.topic-opening { padding:70px var(--gutter); background:#f4efe4; }
.topic-opening .editorial-chapter { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1fr); gap:6vw; align-items:start; }
.topic-chapters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; padding:76px var(--gutter); }
.topic-chapters h2 { font-size:clamp(1.75rem,2.7vw,3rem); }
.service-opening { padding:70px var(--gutter); background:#e9eee3; }
.service-opening .editorial-chapter { max-width:850px; margin-inline:auto; text-align:center; }
.service-opening p { margin-inline:auto; }
.service-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px; padding:76px var(--gutter); }
.service-details h2 { font-size:clamp(1.8rem,2.6vw,3rem); }
.education-story { padding:76px var(--gutter); }
.education-wide-art { max-width:1050px; margin-inline:auto; display:block; }
.education-path { margin-top:60px; display:grid; gap:30px; }
.education-stage { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:48px; border-radius:24px; background:#f4f0e7; padding:42px; border:1px solid #e3dacb; }
.education-stage:nth-child(even) { background:#edf1e8; }
.education-stage-caption { font-size:.78rem!important; color:#6c755c!important; margin-bottom:18px; }
.education-stage h2 { font-size:clamp(1.8rem,2.8vw,3.15rem); }
.catalog-editorial,.contact-editorial { padding:66px var(--gutter); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px; background:#f4efe5; }
.catalog-editorial h2,.contact-editorial h2 { font-size:clamp(1.75rem,2.6vw,3rem); }
.visit-path { padding:70px var(--gutter); }
.visit-chapter { display:grid; grid-template-columns:minmax(0,.6fr) minmax(0,1fr); gap:50px; position:relative; padding:36px 0 52px 34px; border-left:1px solid #cbd2bd; }
.visit-chapter:last-child { padding-bottom:0; }
.visit-path-dot { position:absolute; left:-7px; top:43px; width:13px; height:13px; border-radius:50%; background:#d5dfc4; border:2px solid #66794e; }
.visit-chapter h2 { font-size:clamp(1.8rem,2.7vw,3rem); }
.visit-chapter p { color:#596170; line-height:1.8; }
.visit-chapter p+p { margin-top:18px; }
@media(max-width:1439px) { .desktop-nav { display:none!important; } .header-menu { display:block!important; } }
@media(max-width:1199px) { .rent-context { grid-template-columns:1fr 1fr; } .pricing-person-grid { grid-template-columns:1fr 1fr; } .rental-offer-discount { grid-column:span 3; } .page-introduction .page-hero { min-height:540px; } }
@media(max-width:999px) { .education-stage { gap:28px; padding:30px; } .rental-room-copy { padding:24px; } .rental-room-top { flex-wrap:wrap; } .rent-direction-copy { padding:24px; } .about-person { grid-template-columns:200px minmax(0,1fr); } }
@media(max-width:767px) {
 .page-introduction .page-hero { min-height:0; padding-top:34px; padding-bottom:38px; gap:26px; }
 .page-introduction .page-hero h1 { font-size:clamp(2.55rem,9vw,4rem); max-width:18ch; }
 .page-introduction .page-hero-art { max-height:270px; }
 .page-introduction .breadcrumbs { padding-top:22px; }
 .about-editorial-intro,.about-place-story,.about-editorial-chapters,.rent-context,.rental-detail-copy,.pricing-explanation,.consultation-editorial,.topic-chapters,.service-details,.catalog-editorial,.contact-editorial { grid-template-columns:1fr; padding:48px var(--gutter); gap:34px; }
 .about-place-story > div:last-child { order:-1; }
 .about-person { grid-template-columns:130px minmax(0,1fr); gap:22px; padding:40px var(--gutter); align-items:start; }
 .about-person h2 { font-size:1.6rem; }
 .about-person .button { grid-column:1/-1; font-size:.83rem; padding-inline:15px; }
 .rent-directions,.rental-room-section,.rental-offers,.format-selection,.education-story,.visit-path,.consultation-pricing { padding:48px var(--gutter); }
 .rent-direction-grid,.rental-room-grid,.rental-price-grid,.pricing-person-grid,.format-selection-grid { grid-template-columns:1fr; gap:24px; }
 .rent-direction-copy h3 { font-size:2.2rem; }
 .rent-direction-copy { padding:24px; }
 .rent-direction-link { font-size:.84rem; }
 .rental-room-copy { padding:22px; }
 .rental-room-top h2 { font-size:2rem; }
 .rental-room-copy dl > div,.rental-price dl > div { font-size:.83rem; gap:14px; }
 .rental-offer-grid { grid-template-columns:1fr; gap:18px; }
 .rental-offer,.rental-offer-discount { grid-column:auto; padding:24px; }
 .rental-offers-heading h2 { flex-basis:100%; }
 .rental-offers-heading .button { margin-top:6px; }
 .pricing-person { padding:24px; }
 .pricing-directions { padding:22px var(--gutter); gap:12px; }
 .pricing-directions .button { flex:1; padding-inline:15px; font-size:.85rem; }
 .rental-pricing { padding-top:48px; }
 .rental-price-grid { padding-bottom:48px; }
 .format-choice { padding:26px; }
 .format-choice-featured { grid-row:auto; }
 .consultation-wide-art { position:static; }
 .topic-opening,.service-opening { padding:48px var(--gutter); }
 .topic-opening .editorial-chapter,.education-stage,.visit-chapter { grid-template-columns:1fr; gap:24px; }
 .service-opening .editorial-chapter { text-align:left; }
 .education-path { margin-top:34px; gap:22px; }
 .education-stage { padding:26px; }
 .visit-chapter { padding-left:26px; }
 .editorial-chapter p,.editorial-points,.education-stage p { font-size:1rem; }
 .internal-page .page-route-grid { gap:0 24px; }
}

/* Compact subscriptions: label above, illustration left, details right. */
.rental-offer:not(.rental-offer-discount) { padding:24px; }
.rental-offer:not(.rental-offer-discount) .offer-type { margin:0 0 14px; }
.rental-pass-body-illustrated { display:grid; grid-template-columns:130px minmax(0,1fr); align-items:center; gap:20px; }
.rental-pass-art { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; margin:0; }
.rental-pass-summary h3 { font-size:clamp(1.25rem,1.7vw,1.8rem); line-height:1.16; margin:0; }
.rental-pass-summary .offer-hours { margin:10px 0 0; line-height:1.25; font-size:.94rem; }
.rental-pass-summary .offer-price { margin:5px 0 0; line-height:1.1; font-size:clamp(2rem,2.7vw,2.8rem); }
.rental-offer:not(.rental-offer-discount) > p:not(.offer-type) { margin:16px 0 0; line-height:1.5; }
@media(max-width:999px) { .rental-pass-body-illustrated { grid-template-columns:100px minmax(0,1fr); gap:14px; } }
@media(max-width:599px) {
 .rental-offer:not(.rental-offer-discount) { padding:20px; }
 .rental-pass-body-illustrated { grid-template-columns:90px minmax(0,1fr); gap:12px; }
 .rental-pass-summary h3 { font-size:1.13rem; line-height:1.18; }
 .rental-pass-summary .offer-hours { margin-top:8px; font-size:.85rem; }
 .rental-pass-summary .offer-price { margin-top:4px; font-size:1.9rem; }
 .rental-offer:not(.rental-offer-discount) > p:not(.offer-type) { font-size:.9rem; }
}

/* Related directions are tactile cards, with a clear image, context and action. */
.internal-page .page-route-grid { gap:22px; }
.internal-page .page-route-grid .page-route { display:grid; grid-template-columns:72px minmax(0,1fr) 32px; gap:18px; align-items:center; padding:24px; border:1px solid #dcd6ca; border-radius:22px; background:#fffdf8; color:#24304d; text-decoration:none; min-width:0; transition:transform .22s ease,background-color .22s ease,border-color .22s ease,box-shadow .22s ease; }
.internal-page .page-route-grid .page-route:hover { transform:translateY(-2px); background:#f3efe5; border-color:#9eaecb; box-shadow:0 9px 24px #24304d0c; }
.page-route-art { display:block; width:72px; height:auto; aspect-ratio:1; object-fit:contain; }
.page-route-copy { min-width:0; }
.internal-page .page-route-copy h3 { margin:0; font-size:clamp(1.15rem,1.55vw,1.55rem); line-height:1.3; letter-spacing:-.02em; }
.page-route-copy p { margin-top:10px; font-size:.88rem; line-height:1.65; color:#606a7a; }
.page-route-arrow { width:32px; height:32px; display:flex; align-items:center; justify-content:center; border:1px solid #bdc7d9; border-radius:50%; color:#304aa0; font-size:1.1rem; line-height:1; transition:background-color .22s,color .22s,border-color .22s; }
.page-route:hover .page-route-arrow { background:#304aa0; border-color:#304aa0; color:#fff; }
.format-choice-art { display:block; width:100px; height:auto; aspect-ratio:1; object-fit:contain; }
.format-choice:not(.format-choice-featured) .format-choice-art { width:82px; }
@media(max-width:1199px) { .internal-page .page-route-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .internal-page .page-route-grid { grid-template-columns:1fr; gap:16px; } .internal-page .page-route-grid .page-route { padding:20px; grid-template-columns:64px minmax(0,1fr) 28px; gap:14px; } .page-route-art { width:64px; } .page-route-arrow { width:28px; height:28px; } .page-route-copy p { font-size:.86rem; } .format-choice-art { width:88px; } }
@media(max-width:389px) { .internal-page .page-route-grid .page-route { padding:18px; grid-template-columns:58px minmax(0,1fr) 28px; gap:12px; } .page-route-art { width:58px; } }
@media(prefers-reduced-motion:reduce) { .internal-page .page-route-grid .page-route:hover { transform:none; } }

/* Questions stay native details; the panels and centred signs carry the affordance. */
.page-faq { background:#edf0f6; gap:clamp(28px,5vw,80px); }
.page-faq > div:last-child { display:grid; gap:10px; }
.page-faq details { border:1px solid #d6dce7; border-radius:18px; background:#fffdf8; overflow:hidden; transition:border-color .2s,background-color .2s; }
.page-faq details:hover { border-color:#a2b2ce; background:#faf8f1; }
.page-faq summary { padding:20px 22px; gap:20px; line-height:1.5; font-size:1rem; }
.page-faq summary span { position:relative; width:32px; height:32px; border:1px solid #bcc8dc; border-radius:50%; flex-shrink:0; font-size:0; line-height:0; transition:transform .25s,background-color .2s,border-color .2s; }
.page-faq summary span::before,.page-faq summary span::after { content:''; position:absolute; left:50%; top:50%; background:#304aa0; border-radius:1px; transform:translate(-50%,-50%); }
.page-faq summary span::before { width:12px; height:2px; }
.page-faq summary span::after { width:2px; height:12px; }
.page-faq summary:hover span { background:#e9eef8; border-color:#304aa0; }
.page-faq details[open] { border-color:#adbcd5; }
.page-faq-answer { padding:0 22px 22px; font-size:.96rem; line-height:1.6; color:#586376; }
.page-faq h2 { font-size:clamp(2rem,3.3vw,3.7rem); line-height:1.16; }
@media(max-width:767px) { .page-faq { gap:28px; } .page-faq h2 { font-size:clamp(2rem,7.5vw,2.7rem); max-width:22ch; } .page-faq summary { padding:18px; gap:14px; font-size:.94rem; } .page-faq-answer { padding:0 18px 20px; font-size:.93rem; } }

/* Three practical visit cards replace the uneven two-column text grid. */
.contact-editorial { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.contact-visit-card { display:flex; flex-direction:column; align-items:flex-start; padding:28px; border:1px solid #ded6c8; border-radius:22px; background:#fffdf8; }
.contact-visit-art { width:80px; height:80px; object-fit:contain; margin-bottom:20px; }
.contact-visit-card h2 { font-size:clamp(1.5rem,2vw,2rem); line-height:1.2; margin-bottom:20px; }
.contact-visit-card > div { color:#596271; font-size:.95rem; line-height:1.65; flex:1; }
.contact-visit-card p+p { margin-top:14px; }
.contact-visit-card .button { margin-top:24px; }
@media(max-width:999px) { .contact-editorial { grid-template-columns:1fr; } .contact-visit-card { padding:24px; } }

/* The question heading stays with its answers and leaves with the section. */
.page-faq > div:first-child { position:sticky; top:24px; align-self:start; z-index:2; }
@media(max-width:767px) {
 .page-faq > div:first-child { top:0; background:#edf0f6; padding-block:14px; }
 .page-faq > div:first-child h2 { margin-top:12px; }
}
