.location-page { --loc-muted: #c3b8ab; }
.location-page [hidden] { display:none !important; }
.loc-hero { padding-top:145px; padding-bottom:42px; }
.loc-hero h1 { font-family:var(--f-head); font-size:clamp(3.4rem,7.2vw,7.2rem); line-height:.98; font-weight:600; letter-spacing:-.045em; margin:0; }
.loc-hero h1 em, .loc-concierge h2 em { color:var(--gold-2); font-style:normal; }
.loc-hero__bottom { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-top:28px; }
.loc-hero__bottom p { color:var(--loc-muted); max-width:600px; margin:0; font-size:1.05rem; }
.loc-hero__bottom strong { color:var(--cream); font-weight:600; }
.loc-actions { display:flex; flex-wrap:wrap; gap:12px; flex-shrink:0; }
.loc-hero__bottom .loc-actions { flex-direction:column; align-items:flex-start; }
.loc-hero h1 { font-size:clamp(3.2rem,6.2vw,6.3rem); }
.loc-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; margin-top:34px; padding-top:25px; border-top:1px solid var(--line); }
.loc-benefits span { color:var(--gold-2); font-size:.67rem; letter-spacing:.07em; text-transform:uppercase; }
.loc-benefits h2 { font:550 clamp(1.1rem,1.8vw,1.5rem)/1.2 var(--f-head); margin:10px 0 9px; }
.loc-benefits p { font-size:.85rem; color:var(--loc-muted); line-height:1.65; margin:0; }
@media(max-width:700px) { .loc-benefits { grid-template-columns:1fr; gap:19px; margin-top:27px; padding-top:22px; } .loc-benefits h2 { margin:6px 0; font-size:1.2rem; } .loc-benefits p { max-width:440px; } }
.loc-facts { display:flex; gap:32px; flex-wrap:wrap; margin-top:34px; padding-top:19px; border-top:1px solid var(--line); color:var(--loc-muted); font-size:.8rem; }
.loc-facts b { color:var(--gold-2); }
.loc-inspirations { padding-top:18px; padding-bottom:40px; }
.loc-section-heading h2 { font-family:var(--f-head); font-size:clamp(1.8rem,3vw,2.8rem); line-height:1.1; letter-spacing:-.025em; margin:0 0 10px; font-weight:550; }
.loc-section-heading p { margin:0 0 24px; color:var(--loc-muted); max-width:720px; font-size:.92rem; }
.loc-inspiration-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; }
.loc-inspiration { min-width:0; position:relative; padding:0; aspect-ratio:4/5; overflow:hidden; border-radius:15px; text-align:left; background:var(--bg-3); border:1px solid var(--line); }
.loc-inspiration img { width:100%; height:100%; object-fit:cover; transition:transform .45s var(--ease); }
.loc-inspiration::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 25%,rgba(0,0,0,.9)); pointer-events:none; }
.loc-inspiration:hover img { transform:scale(1.045); }
.loc-inspiration[aria-pressed=true] { outline:2px solid var(--gold-2); outline-offset:3px; }
.loc-inspiration__label { position:absolute; z-index:1; bottom:20px; left:15px; right:12px; line-height:1.25; font-size:1.1rem; font-weight:600; }
.loc-inspiration__label small { display:block; font-size:.7rem; font-weight:400; margin-top:5px; color:#e3d5c4; }
.loc-symbol { position:absolute; z-index:1; top:9px; left:9px; padding:3px 6px; color:#eee6dc; background:rgba(0,0,0,.7); border-radius:5px; font-size:.56rem; letter-spacing:.025em; }
.loc-note { font-size:.76rem; color:var(--loc-muted); line-height:1.6; margin:14px 0; }
.loc-note a { text-decoration:underline; text-underline-offset:3px; }
.loc-finder { padding-top:20px; padding-bottom:54px; scroll-margin-top:95px; }
.loc-filter { padding:24px; border:1px solid var(--line); background:var(--bg-2); border-radius:var(--radius); }
.loc-filter__primary { display:grid; grid-template-columns:1.7fr 1fr .55fr 1fr; gap:14px; }
.loc-field { display:flex; flex-direction:column; gap:8px; font-size:.76rem; font-weight:550; color:var(--cream); min-width:0; }
.loc-field input,.loc-field select,.loc-field textarea,.loc-sort select { background:#0d0b0a; color:var(--cream); border:1px solid #5d5044; border-radius:9px; min-height:46px; padding:10px 12px; font:400 .88rem var(--f-body); width:100%; min-width:0; }
.loc-field input::placeholder,.loc-field textarea::placeholder { color:#a79b8d; opacity:1; }
.loc-field textarea { resize:vertical; }
.loc-field select,.loc-sort select { color-scheme:dark; }
.loc-filter__secondary { display:grid; grid-template-columns:1fr 1fr auto auto; align-items:end; gap:18px; margin-top:18px; }
.loc-text-button { color:var(--gold-2); font-size:.8rem; font-weight:600; text-decoration:underline; text-underline-offset:5px; padding:12px 4px; min-height:44px; cursor:pointer; }
.loc-text-button[aria-pressed=true] { color:var(--bg); background:var(--gold-2); border-radius:8px; text-decoration:none; padding-inline:12px; }
.loc-more-filters { margin-top:20px; border-top:1px solid var(--line); padding-top:16px; }
.loc-more-filters summary { cursor:pointer; font-size:.85rem; color:var(--cream); min-height:34px; }
.loc-checks { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px 18px; margin:18px 0; }
.loc-check { display:flex; align-items:center; gap:9px; font-size:.8rem; line-height:1.4; min-height:38px; color:var(--cream); cursor:pointer; }
.loc-check input { accent-color:var(--gold); width:17px; height:17px; flex:0 0 17px; }
.loc-extra-fields { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:20px 0; }
.loc-result-bar { display:flex; justify-content:space-between; gap:20px; align-items:center; margin:24px 0 17px; }
.loc-result-bar p { margin:0; font-size:.94rem; }
.loc-result-bar strong { font-size:1.2rem; color:var(--gold-2); }
.loc-sort { display:flex; align-items:center; gap:12px; font-size:.72rem; color:var(--loc-muted); }
.loc-sort select { width:auto; font-size:.78rem; max-width:230px; }
.loc-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.loc-card { position:relative; min-width:0; padding:23px 25px 18px; background:linear-gradient(120deg,#1b1611,#14110f); border:1px solid var(--line); border-radius:18px; transition:border-color .2s, background .2s; }
.loc-card:hover { border-color:#796448; background:#201a14; }
.loc-card__type { display:block; color:var(--gold-2); font-size:.7rem; padding-right:45px; }
.loc-card h3 { font-family:var(--f-head); font-size:1.55rem; line-height:1.15; font-weight:550; margin:9px 40px 8px 0; overflow-wrap:anywhere; }
.loc-card__place { font-size:.8rem; color:var(--loc-muted); margin:0; }
.loc-save { position:absolute; right:17px; top:16px; border-radius:50%; border:1px solid #665440; height:44px; width:44px; display:grid; place-items:center; font-size:1.65rem; line-height:1; color:var(--gold-2); }
.loc-save[aria-pressed=true] { background:var(--gold-2); color:var(--bg); }
.loc-card__stats { display:flex; gap:24px; margin-top:19px; flex-wrap:wrap; font-size:.76rem; }
.loc-card__stats b { color:var(--cream); font-size:1.1rem; margin-right:4px; font-weight:550; }
.loc-card__stats span { color:var(--loc-muted); }
.loc-card__tags { display:flex; flex-wrap:wrap; gap:6px; min-height:23px; margin:15px 0 12px; }
.loc-card__tags span,.loc-tags span { font-size:.65rem; color:#d6c7b5; border:1px solid #493d30; border-radius:6px; padding:4px 7px; }
.loc-card__bottom { border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:10px; }
.loc-card__bottom small { color:var(--loc-muted); font-size:.66rem; }
.loc-pagination { display:flex; justify-content:center; flex-direction:column; align-items:center; gap:14px; margin-top:25px; }
.loc-pagination small { color:var(--loc-muted); font-size:.75rem; }
.loc-empty { padding:35px; border:1px dashed var(--line); border-radius:var(--radius); text-align:center; }
.loc-empty h3 { font-size:1.7rem; }
.loc-empty p { color:var(--loc-muted); }
.loc-concierge { display:grid; grid-template-columns:1.15fr 1fr; gap:70px; padding-top:45px; padding-bottom:70px; border-top:1px solid var(--line); }
.loc-concierge h2 { font-family:var(--f-head); font-size:clamp(2rem,3.7vw,4rem); line-height:1.03; letter-spacing:-.03em; font-weight:550; margin:0 0 22px; }
.loc-concierge p { color:var(--loc-muted); font-size:.95rem; max-width:630px; }
.loc-concierge .loc-note { font-size:.75rem; margin:22px 0; }
.loc-concierge ol { padding:0; list-style:none; margin:0; }
.loc-concierge li { display:flex; gap:25px; padding:22px 0; border-bottom:1px solid var(--line); }
.loc-concierge li b { color:var(--gold); font-family:var(--f-head); font-size:2rem; font-weight:450; }
.loc-concierge h3 { font-size:1.15rem; margin:0; font-weight:550; }
.loc-concierge li p { font-size:.85rem; margin:8px 0 0; }
.loc-dialog { color:var(--cream); background:#18130f; border:1px solid #776044; border-radius:24px; padding:28px; width:min(700px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; overscroll-behavior:contain; }
.loc-dialog::backdrop { background:rgba(0,0,0,.82); backdrop-filter:blur(7px); }
.loc-dialog--brief { width:min(860px,calc(100vw - 32px)); }
.loc-dialog__top { display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--gold-2); font-size:.74rem; margin-bottom:18px; }
.loc-close { width:44px; height:44px; border:1px solid var(--line); border-radius:50%; font-size:1.5rem; flex:0 0 44px; }
.loc-dialog h2 { font:550 clamp(1.7rem,4vw,2.8rem)/1.1 var(--f-head); margin:0 0 14px; letter-spacing:-.02em; overflow-wrap:anywhere; }
.loc-dialog h3 { font-size:1rem; font-weight:550; margin:24px 0 12px; }
.loc-dialog p { color:var(--loc-muted); font-size:.86rem; }
.loc-tags { display:flex; flex-wrap:wrap; gap:8px; }
.loc-detail-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:23px 0; }
.loc-detail-stats div { padding:15px 10px; border-block:1px solid var(--line); }
.loc-detail-stats dt { font-size:.65rem; color:var(--loc-muted); }
.loc-detail-stats dd { font-size:1.15rem; margin:7px 0 0; color:var(--gold-2); }
.loc-detail-actions { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0 8px; }
.loc-brief-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:22px 0; }
.loc-brief-fields .loc-check { align-self:end; min-height:46px; }
.loc-favorite-item { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); font-size:.84rem; }
.loc-favorite-item small { display:block; color:var(--loc-muted); font-size:.7rem; }
.loc-favorite-item button { min-width:44px; min-height:44px; font-size:1.3rem; }
#loc-favorites { max-height:220px; overflow:auto; }
#loc-brief-preview { white-space:pre-wrap; overflow-wrap:anywhere; padding:18px; background:#0d0b0a; color:var(--cream); font:400 .76rem/1.6 var(--f-body); max-height:240px; overflow:auto; }
#loc-brief-ready { margin-top:24px; border-top:1px solid var(--line); }
@media(max-width:1100px) { .loc-hero__bottom { align-items:flex-start; flex-direction:column; } .loc-inspiration-grid { grid-template-columns:repeat(3,1fr); } .loc-inspiration { aspect-ratio:1.5; } .loc-filter__primary { grid-template-columns:1.6fr 1fr; } .loc-checks { grid-template-columns:repeat(3,1fr); } }
@media(max-width:700px) { .loc-hero { padding-top:115px; padding-bottom:28px; } .loc-hero h1 { font-size:clamp(3rem,9vw,4.5rem); } .loc-hero__bottom { gap:22px; margin-top:22px; } .loc-actions { gap:10px; } .loc-actions .btn { padding:14px 18px; min-height:48px; font-size:.78rem; } .loc-facts { gap:9px 20px; margin-top:25px; font-size:.72rem; } .loc-inspiration-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .loc-inspiration { aspect-ratio:1.15; } .loc-inspiration__label { font-size:1rem; bottom:13px; left:12px; } .loc-symbol { font-size:.53rem; } .loc-inspirations { padding-bottom:25px; } .loc-filter { padding:17px; border-radius:16px; } .loc-filter__primary { grid-template-columns:1fr 1fr; gap:14px 10px; } .loc-field--search { grid-column:1/-1; } .loc-filter__primary .loc-field:last-child { grid-column:1/-1; } .loc-filter__secondary { grid-template-columns:1fr 1fr; gap:14px 10px; } .loc-checks { grid-template-columns:1fr 1fr; gap:10px; } .loc-check { font-size:.75rem; } .loc-extra-fields { grid-template-columns:1fr; gap:12px; } .loc-result-bar { align-items:flex-start; flex-direction:column; gap:12px; } .loc-results { grid-template-columns:1fr; } .loc-card { padding:19px 20px 13px; } .loc-card h3 { font-size:1.5rem; } .loc-concierge { grid-template-columns:1fr; gap:26px; padding-top:32px; padding-bottom:40px; } .loc-dialog,.loc-dialog--brief { padding:20px; width:calc(100vw - 20px); border-radius:18px; max-height:calc(100dvh - 20px); } .loc-brief-fields { grid-template-columns:1fr; gap:15px; } .loc-detail-stats { grid-template-columns:1fr 1fr; } .loc-dialog .btn { padding:14px 18px; font-size:.8rem; } }
@media(prefers-reduced-motion:reduce) { .loc-inspiration img,.loc-card { transition:none; } .loc-inspiration:hover img { transform:none; } }
@media(max-width:700px) { .loc-field input,.loc-field select,.loc-field textarea,.loc-sort select { font-size:16px; } }
@media print { .loc-filter,.loc-inspirations,.loc-actions,.loc-pagination,.loc-concierge,.loc-save,.loc-card__bottom { display:none; } .loc-results { display:block; } .loc-card { break-inside:avoid; margin-bottom:15px; } }
