*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;color:#272129;background:var(--bg);line-height:1.65;overflow-x:hidden}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{width:min(1180px,calc(100% - 32px));margin-inline:auto}.wrap>*{min-width:0}.narrow{width:min(780px,calc(100% - 32px))}.site-header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid #eee}.header-inner{min-height:64px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:900;letter-spacing:.08em;font-size:1.22rem;color:var(--primary)}nav[data-menu]{display:flex;gap:24px;font-weight:700}.menu-btn{display:none;border:0;background:transparent;font-size:1.5rem}.hero{padding:72px 0 64px;background:linear-gradient(145deg,var(--secondary),#fff)}.hero h1{font-size:clamp(2rem,7vw,4rem);line-height:1.08;margin:.25em 0;max-width:820px}.hero p{max-width:720px}.eyebrow{font-size:.78rem;font-weight:900;letter-spacing:.15em;color:var(--primary);text-transform:uppercase}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:0 22px;background:var(--button);color:#fff;border-radius:14px;font-weight:800}.btn.ghost{background:#fff;color:var(--primary);border:1px solid #e9c9d8}.section{padding:42px 0}.section.subtle{background:#fff}.section-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.section-title h1,.section-title h2,.page-head h1{margin:0;font-size:clamp(1.45rem,4vw,2.1rem)}.section-title>a{color:var(--primary);font-weight:800}.chips{display:flex;flex-wrap:wrap;gap:10px}.chips a,.tag-list span{background:#fff;border:1px solid #eadde3;border-radius:999px;padding:8px 15px;font-weight:700}.profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.profile-card{min-width:0;background:#fff;border:1px solid #eee2e8;border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(49,25,36,.05)}.profile-image-link{display:block;aspect-ratio:3/4;background:#f3edf0;overflow:hidden}.profile-image-link img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.profile-card:hover .profile-image-link img{transform:scale(1.025)}.image-placeholder{height:100%;display:grid;place-items:center;color:#9b8790}.card-body{padding:14px}.card-body h3{margin:0 0 4px;font-size:1.1rem;overflow-wrap:anywhere}.meta{font-weight:700;color:#6d5962}.submeta{font-size:.9rem;color:#8b7780;margin-top:3px;line-height:1.45;overflow-wrap:anywhere}.news-list{border-top:1px solid #eadfe4}.news-row{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:15px 0;border-bottom:1px solid #eadfe4}.news-row time{color:#9a7e89}.page-head{padding:46px 0 28px;background:linear-gradient(180deg,var(--secondary),transparent)}.page-head p{margin-bottom:0}.profile-page{padding:24px 0 50px}.breadcrumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:.88rem;color:#806a73;margin-bottom:18px}.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:42px;align-items:start}.main-photo{aspect-ratio:3/4;background:#f2ecef;border-radius:20px;overflow:hidden}.main-photo img{width:100%;height:100%;object-fit:contain;background:#171217}.thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:10px}.thumb{padding:0;border:2px solid transparent;background:transparent;border-radius:10px;overflow:hidden;aspect-ratio:1}.thumb.active{border-color:var(--primary)}.thumb img{width:100%;height:100%;object-fit:cover}.profile-info h1{font-size:clamp(2rem,6vw,3.5rem);line-height:1.08;margin:.15em 0 .5em}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px;margin:18px 0}.facts div{background:#fff;border:1px solid #ede1e6;border-radius:14px;padding:12px}.facts span{display:block;font-size:.78rem;color:#8d7780}.facts strong{font-size:1.05rem}.content-block{margin-top:28px}.content-block h2{font-size:1.15rem;margin-bottom:10px}.prose{overflow-wrap:anywhere}.prose p:first-child{margin-top:0}.prose img{height:auto;border-radius:12px}.prose pre{max-width:100%;overflow:auto}.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}.prose th,.prose td{padding:.55rem .7rem;border:1px solid #eadde3;white-space:nowrap}.prose a{color:var(--primary);text-decoration:underline}.tag-list{display:flex;gap:8px;flex-wrap:wrap}.notice-list{display:grid;gap:10px}.notice-list>div{padding:13px 14px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa}.notice-list p{margin:5px 0 0}.contact-btn{width:100%;margin-top:28px}.mobile-contact{display:none}.news-cards{display:grid;gap:14px}.news-cards article{background:#fff;border:1px solid #eee1e7;border-radius:16px;padding:20px}.news-cards h2{margin:.25em 0}.news-cards time,.article time{color:#947a85;font-size:.9rem}.article{padding:30px 0 64px}.article h1{font-size:clamp(2rem,6vw,3.4rem);line-height:1.15}.article-cover{border-radius:18px;margin:24px 0}.article-body{font-size:1.06rem}.pagination{margin-top:28px}.pagination nav{display:flex;justify-content:center}.empty{color:#8b7b82}footer{padding:42px 0;margin-top:30px;background:#241c20;color:#d9ccd2}.age-gate{position:fixed;inset:0;z-index:100;background:rgba(18,11,14,.78);display:grid;place-items:center;padding:20px}.age-gate[hidden]{display:none}.age-card{width:min(420px,100%);background:#fff;border-radius:20px;padding:28px;box-shadow:0 20px 70px rgba(0,0,0,.3)}.age-card strong{font-size:1.4rem}.age-card button{display:block;width:100%;border:0;background:var(--button);color:white;padding:13px;border-radius:12px;font-weight:800;margin:18px 0 10px}.age-card>a{display:block;text-align:center;color:#7d6771}.intro{max-width:760px}.prose ul,.prose ol{padding-left:1.3em}
@media(max-width:900px){.profile-grid{grid-template-columns:repeat(3,1fr)}.profile-layout{grid-template-columns:1fr;gap:22px}.gallery{max-width:660px;margin:auto;width:100%}}
@media(max-width:680px){.wrap{width:min(1180px,calc(100% - 22px))}.site-header{position:sticky}.menu-btn{display:block}nav[data-menu]{display:none;position:absolute;top:64px;left:0;right:0;background:#fff;border-bottom:1px solid #eee;padding:14px 20px;flex-direction:column}nav[data-menu].open{display:flex}.hero{padding:44px 0}.section{padding:30px 0}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card-body{padding:11px}.facts{grid-template-columns:repeat(2,1fr)}.thumbs{grid-template-columns:repeat(6,56px);overflow-x:auto;padding-bottom:4px}.news-row{grid-template-columns:86px 1fr}.mobile-contact{display:block;position:fixed;z-index:40;left:0;right:0;bottom:0;padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);border-top:1px solid #eee}.mobile-contact a{display:grid;place-items:center;min-height:48px;border-radius:13px;background:var(--button);color:#fff;font-weight:900}.profile-page{padding-bottom:78px}}
@media(max-width:390px){.profile-grid{grid-template-columns:1fr 1fr}.card-body h3{font-size:1rem}.meta,.submeta{font-size:.8rem}}

:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 55%,white);outline-offset:3px;border-radius:6px}
.pager{margin-top:30px}.pager-mobile{display:none}.pager-desktop{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap}.pager-number,.pager-icon,.pager-btn{display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border:1px solid #e8dce2;border-radius:11px;background:#fff;font-weight:800}.pager-number.active{background:var(--primary);border-color:var(--primary);color:#fff}.pager-icon{font-size:1.35rem}.pager-ellipsis{padding:0 4px;color:#8b7780}.pager .disabled{opacity:.42;cursor:not-allowed}.pager-status{font-weight:800;color:#725d66}
@media(max-width:680px){.pager-desktop{display:none}.pager-mobile{display:flex;align-items:center;justify-content:space-between;gap:9px}.pager-btn{min-width:92px}.pager-status{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Profile service copy, promotion notice, and channel-specific contact CTAs */
.service-copy ul,.service-copy ol{margin:.5rem 0 0;padding-left:1.3em}.service-copy li+li{margin-top:.28rem}
.promo-rule{display:flex;align-items:flex-start;gap:9px;margin-top:18px;padding:13px 14px;border:1px solid #f2c98b;border-radius:13px;background:#fff8ed;color:#6f4814;line-height:1.45}.promo-rule span{flex:0 0 auto}.promo-rule strong{font-size:.96rem}
.contact-panel{margin-top:30px;padding:18px;border:1px solid #eadde3;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(49,25,36,.04)}.contact-panel-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:12px}.contact-panel h2{margin:0;font-size:1.15rem}.contact-panel p{margin:0;color:#806a73;font-size:.9rem}.contact-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.contact-channel{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:10px 16px;border-radius:13px;color:#fff;font-weight:900;box-shadow:0 6px 14px rgba(36,28,32,.08);transition:transform .18s ease,filter .18s ease}.contact-channel:hover{transform:translateY(-1px);filter:brightness(1.03)}.contact-channel span{font-size:1rem}.contact-channel small{font-size:.78rem;font-weight:800;opacity:.92}.contact-line{background:#087c3a}.contact-telegram{background:#1678a8}
@media(max-width:680px){.contact-panel{margin-top:22px;padding:14px}.contact-panel-head{align-items:flex-start;flex-direction:column;gap:2px}.contact-actions{grid-template-columns:1fr}.mobile-contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;position:fixed;z-index:40;left:0;right:0;bottom:0;padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid #eee;backdrop-filter:blur(10px)}.mobile-contact a{display:grid;place-items:center;min-height:48px;border-radius:13px;color:#fff;font-weight:900;padding:0 10px;text-align:center}.mobile-contact-line{background:#087c3a}.mobile-contact-telegram{background:#1678a8}.profile-page{padding-bottom:84px}}
@media(max-width:680px){.mobile-contact a.mobile-contact-line{background:#087c3a}.mobile-contact a.mobile-contact-telegram{background:#1678a8}}

/* 2026-10-03 profile card age, swipe gallery, and price line-break refinements */
.profile-card-title{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.profile-card-title a{min-width:0}.profile-age{font-size:.76em;font-weight:800;color:#8b7780;white-space:nowrap}.price-copy p{white-space:pre-line}.main-photo[data-gallery-stage]{position:relative;touch-action:pan-y;user-select:none;-webkit-user-select:none;outline-offset:4px}.main-photo[data-gallery-stage] img{-webkit-user-drag:none;user-select:none}.gallery-nav{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:46px;height:46px;margin:0;padding:0;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(23,18,23,.62);color:#fff;box-shadow:0 4px 18px rgba(0,0,0,.2);font-size:2rem;line-height:1;cursor:pointer;transform:translateY(-50%);backdrop-filter:blur(5px);transition:background .18s ease,transform .18s ease}.gallery-nav:hover{background:rgba(23,18,23,.78);transform:translateY(-50%) scale(1.04)}.gallery-nav[hidden]{display:none}.gallery-prev{left:12px}.gallery-next{right:12px}.gallery-nav span{display:block;transform:translateY(-1px)}.gallery-counter{position:absolute;right:12px;bottom:12px;z-index:2;padding:5px 9px;border-radius:999px;background:rgba(23,18,23,.68);color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.02em;backdrop-filter:blur(5px)}.thumb{cursor:pointer}.thumb[aria-current="true"]{border-color:var(--primary);box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 18%,transparent)}
@media(max-width:680px){.gallery-nav{width:42px;height:42px;font-size:1.8rem;background:rgba(23,18,23,.56)}.gallery-prev{left:8px}.gallery-next{right:8px}.gallery-counter{right:8px;bottom:8px}.profile-age{font-size:.72em}.price-copy p{line-height:1.75}}

/* Google Drive profile video.
   Drive's own mobile preview controls are currently oversized on some iOS/
   mobile browsers. We keep one simple in-page Drive iframe, but give the
   embedded document a 2x internal viewport on small screens and scale it back
   to the visible frame. This keeps playback inside LOVE, avoids proxying video
   bytes through the shared host, and visually normalizes Drive's controls. */
.profile-video-section{margin-top:28px}.profile-video-shell{width:min(100%,360px);margin-inline:auto}.profile-video-shell--3x4{width:min(100%,460px)}
.drive-video-frame{position:relative;width:100%;aspect-ratio:9/16;overflow:hidden;border:1px solid #eadde3;border-radius:18px;background:#000;box-shadow:0 10px 28px rgba(49,25,36,.09);isolation:isolate}.drive-video-frame--3x4{aspect-ratio:3/4}.drive-video-frame iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;background:#000}
@media(max-width:680px){.profile-video-section{margin-top:24px}.profile-video-shell,.profile-video-shell--3x4{width:100%}.drive-video-frame{border-radius:16px}.drive-video-frame iframe{width:200%;height:200%;transform:scale(.5);transform-origin:0 0}}


/* 2026-10-07 contextual taxonomy filters.
   Region pages expose only nationalities that actually have published profiles;
   nationality pages expose only matching regions. This keeps the control useful,
   prevents dead-end filters, and stays compact on mobile. */
.taxonomy-filter{margin:20px 0 18px;padding:14px 15px;border:1px solid #eadde3;border-radius:16px;background:rgba(255,255,255,.86);box-shadow:0 6px 18px rgba(49,25,36,.035)}
.taxonomy-filter-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}.taxonomy-filter-head h2{margin:0;font-size:1rem}.taxonomy-filter-head p{margin:0;color:#806a73;font-size:.86rem}.taxonomy-filter-chips{display:flex;flex-wrap:wrap;gap:8px}.taxonomy-filter-chip{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:8px 13px;border:1px solid #e7d8df;border-radius:999px;background:#fff;color:#59454e;font-weight:800;line-height:1;white-space:nowrap;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease}.taxonomy-filter-chip:hover{border-color:color-mix(in srgb,var(--primary) 38%,#e7d8df);transform:translateY(-1px)}.taxonomy-filter-chip small{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#f4edf0;color:#7e6972;font-size:.72rem}.taxonomy-filter-chip.active{border-color:var(--primary);background:var(--primary);color:#fff}.taxonomy-filter-chip.active small{background:rgba(255,255,255,.2);color:#fff}.taxonomy-intro{margin-top:18px}
@media(max-width:680px){.taxonomy-filter{margin:16px 0 14px;padding:12px}.taxonomy-filter-head{align-items:flex-start;flex-direction:column;gap:2px}.taxonomy-filter-chips{flex-wrap:nowrap;overflow-x:auto;margin-inline:-12px;padding:2px 12px 5px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.taxonomy-filter-chips::-webkit-scrollbar{display:none}.taxonomy-filter-chip{min-height:44px;flex:0 0 auto}.taxonomy-intro{margin-top:14px}}

/* 2026-10-08 compact directory navigation + mobile quick filter drawer.
   The visible quick-navigation stays deliberately short: one compact container,
   two taxonomy rows, and horizontally scrollable chips on small screens. */
.directory-nav-section{padding:18px 0 20px;background:#fff}
.directory-quick-nav{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;padding:14px 16px;border:1px solid #eadde3;border-radius:17px;background:linear-gradient(145deg,#fff,var(--secondary));box-shadow:0 7px 22px rgba(49,25,36,.035);scroll-margin-top:84px}
.directory-quick-nav-head{min-width:0}
.directory-quick-nav-head h1,.directory-quick-nav-head h2{margin:0;font-size:1.05rem;line-height:1.2;white-space:nowrap}
.directory-quick-nav-head p{margin:3px 0 0;color:#806a73;font-size:.86rem;line-height:1.4}
.directory-quick-nav-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:14px;min-width:0}
.directory-quick-group{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;min-width:0}
.directory-quick-group-head{margin:0}
.directory-quick-group-head h3{margin:0;color:#806a73;font-size:.82rem;line-height:1;font-weight:900;white-space:nowrap}
.directory-link-chips{display:flex;flex-wrap:wrap;gap:7px;min-width:0}
.directory-link-chips a{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:7px 11px;border:1px solid #e6d7de;border-radius:999px;background:#fff;color:#59454e;font-size:.92rem;font-weight:800;line-height:1;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.directory-link-chips a:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 38%,#e6d7de);box-shadow:0 4px 12px rgba(49,25,36,.055)}
.directory-link-chips small{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#f4edf0;color:#806a73;font-size:.68rem;font-weight:900}
.directory-quick-nav--compact{padding:12px 14px;background:#fff;box-shadow:none}
.directory-quick-nav--compact .directory-quick-nav-head h1,.directory-quick-nav--compact .directory-quick-nav-head h2{font-size:1rem}
.directory-index-tools{padding-top:14px;padding-bottom:4px}
.directory-profile-results{padding-top:20px}

.mobile-directory-filter-trigger,.mobile-directory-filter{display:none}

@media(max-width:680px){
 .directory-nav-section{padding:12px 0 15px}
 .directory-quick-nav,.directory-quick-nav--compact{display:block;padding:11px 12px;border-radius:15px;scroll-margin-top:74px}
 .directory-quick-nav-head{margin-bottom:8px}
 .directory-quick-nav-head h1,.directory-quick-nav-head h2,.directory-quick-nav--compact .directory-quick-nav-head h1,.directory-quick-nav--compact .directory-quick-nav-head h2{font-size:1rem}
 .directory-quick-nav-head p{display:none}
 .directory-quick-nav-grid{grid-template-columns:1fr;gap:7px}
 .directory-quick-group{grid-template-columns:42px minmax(0,1fr);gap:6px}
 .directory-quick-group-head h3{font-size:.78rem}
 .directory-link-chips{flex-wrap:nowrap;overflow-x:auto;padding:1px 1px 3px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
 .directory-link-chips::-webkit-scrollbar{display:none}
 .directory-link-chips a{flex:0 0 auto;min-height:44px;padding:8px 11px}
 .directory-index-tools{display:block;padding-top:12px;padding-bottom:2px}
 .directory-profile-results{padding-top:20px}

 .mobile-directory-filter-trigger{position:fixed;z-index:58;right:8px;bottom:calc(112px + env(safe-area-inset-bottom));display:grid;place-items:center;gap:1px;width:58px;height:58px;padding:5px;border:1px solid rgba(255,255,255,.72);border-radius:18px;background:var(--primary);color:#fff;box-shadow:0 9px 28px rgba(49,25,36,.25);font-size:.68rem;font-weight:900;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}
 .mobile-directory-filter-trigger svg{width:24px;height:24px}
 .mobile-directory-filter-trigger:active{transform:scale(.97)}
 .mobile-directory-filter{position:fixed;inset:0;z-index:70;display:block;pointer-events:none;visibility:hidden}
 .mobile-directory-filter-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:rgba(24,15,19,.46);opacity:0;transition:opacity .22s ease;backdrop-filter:blur(2px)}
 .mobile-directory-filter-panel{position:absolute;top:0;right:0;bottom:0;width:min(88vw,370px);max-width:100%;overflow-y:auto;overscroll-behavior:contain;padding:calc(16px + env(safe-area-inset-top)) 16px calc(22px + env(safe-area-inset-bottom));background:#fffafc;box-shadow:-16px 0 42px rgba(25,15,20,.22);transform:translateX(103%);transition:transform .24s cubic-bezier(.2,.75,.25,1);outline:0}
 .mobile-directory-filter.is-open{pointer-events:auto;visibility:visible}
 .mobile-directory-filter.is-open .mobile-directory-filter-backdrop{opacity:1}
 .mobile-directory-filter.is-open .mobile-directory-filter-panel{transform:translateX(0)}
 body.directory-filter-open{overflow:hidden}
 .mobile-directory-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid #eadde3}
 .mobile-directory-filter-head h2{margin:0;font-size:1.45rem;line-height:1.2}
 .mobile-directory-filter-close{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #e5d7de;border-radius:999px;background:#fff;color:#47343d;font-size:1.8rem;line-height:1;cursor:pointer}
 .mobile-directory-filter-body{padding-top:15px}
 .mobile-directory-filter-all{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:52px;padding:11px 14px;border-radius:14px;background:var(--primary);color:#fff;font-weight:900}
 .mobile-directory-filter-group{margin-top:22px}
 .mobile-directory-filter-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px}
 .mobile-directory-filter-group-head h3{margin:0;font-size:1rem}
 .mobile-directory-filter-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .mobile-directory-filter-links a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:10px 12px;border:1px solid #e5d7de;border-radius:13px;background:#fff;color:#59454e;font-weight:850}
 .mobile-directory-filter-links a>small{display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:#f4edf0;color:#806a73;font-size:.7rem;font-weight:900}
 .mobile-directory-filter-links a.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,white);color:var(--primary)}
 .mobile-directory-filter-links a.active>small{background:var(--primary);color:#fff}
}

@media(max-width:380px){
 .mobile-directory-filter-links{grid-template-columns:1fr}
 .mobile-directory-filter-panel{width:min(91vw,350px)}
 .mobile-directory-filter-trigger{right:6px;width:54px;height:54px;border-radius:16px}
}


/* 2026-10-07 responsive homepage advertising carousel.
   Desktop and mobile creatives use fixed aspect ratios so the page can reserve
   space before images load, avoiding layout shift. */
.home-banner-section{padding:20px 0 0;background:var(--bg)}
.home-banner-slider{position:relative;width:100%;border-radius:20px;overflow:hidden;background:#eee4e8;box-shadow:0 12px 34px rgba(49,25,36,.08)}
.home-banner-viewport{position:relative;width:100%;aspect-ratio:16/5;overflow:hidden;background:#eee4e8}
.home-banner-slide{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .38s ease,visibility .38s ease}
.home-banner-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:1}
.home-banner-link,.home-banner-picture{display:block;width:100%;height:100%}
.home-banner-picture img{width:100%;height:100%;object-fit:cover;background:#eee4e8}
.home-banner-arrow{position:absolute;z-index:4;top:50%;display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(24,15,19,.46);color:#fff;font-size:2rem;line-height:1;transform:translateY(-50%);cursor:pointer;backdrop-filter:blur(4px);transition:background .16s ease,transform .16s ease}
.home-banner-arrow:hover{background:rgba(24,15,19,.62)}
.home-banner-arrow:active{transform:translateY(-50%) scale(.96)}
.home-banner-prev{left:14px}.home-banner-next{right:14px}
.home-banner-controls{position:absolute;z-index:5;left:50%;bottom:12px;display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 8px;border-radius:999px;background:rgba(24,15,19,.48);transform:translateX(-50%);backdrop-filter:blur(5px)}
.home-banner-dots{display:flex;align-items:center;gap:6px}
.home-banner-dot{width:10px;height:10px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.55);cursor:pointer;transition:width .18s ease,background .18s ease}
.home-banner-dot.is-active{width:24px;background:#fff}
.home-banner-toggle{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-left:1px solid rgba(255,255,255,.32);border-radius:0;background:transparent;color:#fff;font-weight:900;cursor:pointer}
.home-banner-slider :focus-visible{outline:3px solid #fff;outline-offset:2px}

@media(max-width:680px){
 .home-banner-section{padding:12px 0 0}
 .home-banner-slider{border-radius:16px}
 .home-banner-viewport{aspect-ratio:4/3}
 .home-banner-arrow{width:44px;height:44px;font-size:1.75rem}
 .home-banner-prev{left:8px}.home-banner-next{right:8px}
 .home-banner-controls{bottom:8px;min-height:34px;padding:5px 7px}
 .home-banner-dot{width:9px;height:9px}.home-banner-dot.is-active{width:22px}
}

@media(prefers-reduced-motion:reduce){
 .home-banner-slide,.home-banner-arrow,.home-banner-dot{transition:none}
}

/* A single pinned news item stays readable without pushing the directory down. */
.pinned-news-section{padding:12px 0 0}
.pinned-news-link{display:flex;align-items:center;gap:13px;min-height:64px;padding:11px 16px;border:1px solid #e9c6d4;border-left:4px solid var(--primary);border-radius:14px;background:linear-gradient(100deg,#fff3f7,#fff);box-shadow:0 4px 16px rgba(49,25,36,.04)}
.pinned-news-link:hover{border-color:var(--primary);background:#fff0f5}
.pinned-news-link:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.pinned-news-label{flex:none;font-size:.78rem;white-space:nowrap;font-weight:850;border-radius:7px;padding:4px 8px;background:var(--primary);color:#fff}
.pinned-news-content{min-width:0;flex:1;display:flex;align-items:baseline;gap:12px}
.pinned-news-title{font-size:.97rem;font-weight:850;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pinned-news-excerpt{font-size:.83rem;color:#795f6b;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pinned-news-more{flex:none;font-size:.82rem;font-weight:800;color:var(--primary);white-space:nowrap}
.news-pinned-tag{display:inline-block;vertical-align:middle;margin-right:8px;font-size:.72rem;padding:2px 7px;border-radius:6px;background:#fce8f0;color:#a3154b;font-weight:850}
@media(max-width:680px){
 .pinned-news-section{padding-top:9px}
 .pinned-news-link{min-height:56px;gap:9px;padding:9px 10px;border-radius:11px}
 .pinned-news-label{font-size:.7rem;padding:3px 6px}
 .pinned-news-content{display:block}
 .pinned-news-title{display:block;font-size:.89rem;line-height:1.4;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
 .pinned-news-excerpt{display:none}
 .pinned-news-more{font-size:.76rem}
}

/* Profile detail: low-distraction navigation and mobile sticky booking. */
.profile-page-navigation{position:fixed;z-index:38;left:0;right:0;bottom:24px;display:flex;align-items:center;justify-content:space-between;padding-inline:max(14px,env(safe-area-inset-left)) max(14px,env(safe-area-inset-right));opacity:0;visibility:hidden;pointer-events:none;transform:translateY(9px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
.profile-page-navigation.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.profile-page-nav-button{display:grid;place-items:center;flex:none;width:48px;height:48px;padding:0;border:1px solid #ead2dc;border-radius:15px;background:rgba(255,255,255,.97);color:var(--primary);box-shadow:0 5px 19px rgba(49,25,36,.16);cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.profile-page-nav-button:hover{background:#fff0f6;border-color:var(--primary)}
.profile-page-nav-button:active{transform:scale(.96)}
.profile-page-nav-button:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
@media(max-width:680px){
 .profile-page .contact-panel{display:none}
 .profile-page-navigation{bottom:calc(20px + env(safe-area-inset-bottom));padding-inline:max(12px,env(safe-area-inset-left)) max(12px,env(safe-area-inset-right))}
 .profile-page-navigation--with-contact{bottom:calc(96px + env(safe-area-inset-bottom))}
 .profile-page-nav-button{width:48px;height:48px;border-radius:15px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.profile-page-navigation{transition:none;transform:none}}

.site-brand-logo{display:block;width:auto;max-width:min(46vw,190px);height:auto;max-height:50px;object-fit:contain}

/* Home bookings: compact on desktop, sticky and thumb-friendly on phones.
   Site-specific URLs are resolved server-side; absent channels render nothing. */
.home-booking-section{padding:0 0 4px}
.home-booking-inline{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:70px;padding:10px 16px;border:1px solid #ecdae1;border-radius:16px;background:#fff;box-shadow:0 5px 16px rgba(49,25,36,.04)}
.home-booking-label{font-size:1rem;font-weight:850;white-space:nowrap}
.home-booking-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.home-booking-action{display:inline-grid;place-items:center;min-height:44px;min-width:132px;padding:8px 18px;border-radius:12px;color:#fff;font-size:.93rem;font-weight:850;touch-action:manipulation}
.home-booking-line{background:#087c3a}.home-booking-telegram{background:#1678a8}
.home-booking-action:hover{filter:brightness(1.06)}
.home-booking-mobile{display:none}
@media(max-width:680px){
 .home-booking-section{display:none}
 .home-booking-mobile{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
 /* Match the existing profile booking bar; reserve space under the footer. */
 body:has(.home-booking-mobile){padding-bottom:calc(84px + env(safe-area-inset-bottom))}
 .home-booking-mobile a{font-size:clamp(.86rem,3.7vw,1rem)}
 /* Directory filter already sits 112px above the mobile browser bottom. */
}


/* Branded 404: useful exits without exposing unavailable content. */
.not-found-page{min-height:min(65vh,560px);display:grid;align-items:center;padding:clamp(48px,8vw,100px) 0}
.not-found-content{width:min(100%,680px);margin-inline:auto;padding:clamp(28px,5vw,58px) clamp(18px,5vw,48px);border:1px solid #eadde3;border-radius:22px;background:#fff;box-shadow:0 12px 35px rgba(49,25,36,.06);text-align:center}
.not-found-code{margin:0 0 10px;font-size:.94rem;letter-spacing:.19em;font-weight:900;color:var(--primary)}
.not-found-content h1{margin:0;font-size:clamp(1.6rem,4vw,2.25rem);line-height:1.3}
.not-found-message{margin:16px auto 0;color:#76666e;line-height:1.75}
.not-found-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin-top:26px}
.not-found-actions .btn{min-width:170px;text-align:center}
.not-found-actions .btn:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
@media(max-width:480px){.not-found-page{padding:36px 0;min-height:54vh}.not-found-content{border-radius:17px;padding:32px 18px}.not-found-actions{gap:10px}.not-found-actions .btn{width:100%}}
