@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600;700&display=swap');
:root{--ink:#15333a;--muted:#668087;--teal:#1597a8;--teal-dark:#08778a;--sea:#6ba8b6;--sky:#eefaFC;--sky-2:#d9f1f5;--line:#b9d3d8;--white:#fff;--green:#66c990;--red:#e92b30;--shadow:0 12px 35px rgba(22,70,78,.14);font-family:'DM Sans',sans-serif;color:var(--ink);background:#eefbfd}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}.portal-header{height:92px;padding:14px 28px;display:flex;align-items:center;gap:30px;background:#fff;border-bottom:1px solid #deedf0;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font:600 20px Manrope}.brand img{width:62px;height:62px;object-fit:contain;background:var(--sea);border-radius:50%;padding:4px}.main-categories{display:flex;gap:4px;flex:1;justify-content:center}.main-categories button,.outline-btn,.filter-button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:11px 16px;cursor:pointer}.main-categories button:hover,.outline-btn:hover{border-color:var(--teal);color:var(--teal-dark)}.header-actions{display:flex;align-items:center;gap:10px}.header-actions select{border:0;background:transparent}.catalog-shell{display:grid;grid-template-columns:minmax(570px,54%) 1fr;height:calc(100vh - 92px);overflow:hidden}.catalog-panel{overflow:auto;padding:42px 46px 100px;background:var(--sky)}.catalog-intro{display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:26px}.catalog-intro .eyebrow{grid-column:1/-1}.catalog-intro h1{margin:5px 0 0;font:600 clamp(30px,3vw,52px)/1.05 Manrope;max-width:600px}.catalog-intro>p:last-child{color:var(--muted);margin:0}.eyebrow{color:var(--teal-dark);font-size:13px;text-transform:uppercase;letter-spacing:.14em;font-weight:600}.search-row{display:flex;gap:12px;position:sticky;top:-42px;z-index:8;background:linear-gradient(var(--sky) 80%,transparent);padding:8px 0 18px}.search-box{flex:1;background:#fff;border-radius:14px;box-shadow:0 5px 18px #2b73801a;display:flex;align-items:center;padding:0 15px;font-size:25px}.search-box input{width:100%;border:0;outline:0;padding:15px 10px;background:transparent;font-size:15px}.filter-button{border-radius:14px;background:var(--ink);color:#fff;border:0}.filter-button span:not(:empty){display:inline-grid;place-items:center;margin-left:6px;background:var(--teal);border-radius:50%;width:21px;height:21px}.filters{display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.filters.open{display:grid}.filters label,.filters fieldset{font-size:13px;font-weight:600}.filters select{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff}.filters fieldset{grid-column:1/-1;border:0;padding:0;margin:0}.checks{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.checks label input{position:absolute;opacity:0}.checks label span{display:block;padding:8px 12px;border:1px solid var(--line);border-radius:999px;font-weight:400;cursor:pointer}.checks label input:checked+span{background:var(--teal);color:#fff;border-color:var(--teal)}.text-button{border:0;background:transparent;color:var(--teal-dark);text-decoration:underline;cursor:pointer;text-align:left}.results{display:grid;gap:18px}.result-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(180px,.75fr);min-height:250px;background:#fff;border:1px solid #d5e8eb;border-radius:20px;overflow:hidden;box-shadow:0 4px 18px rgba(28,83,92,.07);transition:.2s}.result-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.card-copy{padding:26px;display:flex;flex-direction:column}.location{color:var(--teal-dark);font-size:13px;text-transform:uppercase;letter-spacing:.1em;margin:0}.card-copy h2{font:600 25px/1.15 Manrope;margin:8px 0}.cin{font-size:12px;color:var(--muted);margin:0 0 10px}.summary{font-size:14px;line-height:1.55;color:#49656c;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.discover{border:0;background:transparent;color:var(--teal-dark);padding:0;margin-top:auto;text-align:left;font-weight:600;cursor:pointer}.discover span{font-size:18px}.card-image{position:relative;min-height:230px;background:#d5e6e9}.card-image>img{width:100%;height:100%;object-fit:cover;position:absolute}.category-pill,.book-pill{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.94);padding:7px 10px;border-radius:8px;font-size:11px;font-weight:600}.book-pill{bottom:48px;background:var(--teal);color:#fff}.load-more{display:block;margin:26px auto;border:1px solid var(--teal);color:var(--teal-dark);background:#fff;padding:12px 24px;border-radius:999px;cursor:pointer}.map-panel{position:relative;background:#cddfe2;overflow:hidden}.map-panel iframe{width:100%;height:100%;border:0;filter:saturate(.78) contrast(.95)}.map-overlay{position:absolute;z-index:2;top:24px;left:24px;background:#fff;padding:14px 18px;border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column}.map-overlay span{color:var(--muted);font-size:12px}.multiple-float{position:fixed;right:28px;bottom:25px;z-index:15;border:0;border-radius:16px;background:var(--teal);color:#fff;box-shadow:var(--shadow);padding:14px 18px;display:flex;gap:12px;text-align:left;cursor:pointer}.multiple-float span:first-child{font-size:22px}.multiple-float b{display:block}.empty{text-align:center;padding:50px;color:var(--muted)}dialog{border:0;border-radius:24px;padding:0;box-shadow:0 30px 80px #092b3170;max-height:92vh;color:var(--ink)}dialog::backdrop{background:rgba(5,31,37,.7);backdrop-filter:blur(5px)}.dialog-close{position:sticky;float:right;top:14px;right:14px;z-index:10;border:0;width:40px;height:40px;border-radius:50%;font-size:28px;background:#fff;box-shadow:0 4px 15px #0002;cursor:pointer}.detail-dialog{width:min(980px,94vw)}#detailContent{padding:44px}.detail-head h2{font:600 38px/1.1 Manrope;margin:6px 0}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.detail-actions a,.primary-btn{display:inline-block;text-decoration:none;border:1px solid var(--teal);border-radius:10px;padding:11px 16px;color:var(--teal-dark);background:#fff;font-weight:600;cursor:pointer}.primary-btn{background:var(--teal);color:#fff;border-color:var(--teal)}.detail-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:190px;gap:8px;border-radius:18px;overflow:hidden}.detail-gallery img{width:100%;height:100%;object-fit:cover}.detail-gallery img:first-child{grid-row:span 2}.detail-section{padding:26px 0;border-bottom:1px solid var(--line)}.detail-section p{line-height:1.7}.service-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.service-list span:before{content:'✓';color:var(--teal);margin-right:7px}.request-one{margin-top:25px}.request-dialog{width:min(720px,94vw);padding:38px}.request-head h2{font:600 34px Manrope;margin:4px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label{font-size:13px;font-weight:600}.form-grid input,.form-grid textarea{display:block;width:100%;border:1px solid var(--line);border-radius:10px;padding:11px;margin-top:5px;background:#f9feff}.form-grid .wide{grid-column:1/-1}.privacy{display:block;margin:18px 0;font-size:13px}#requestStatus{font-weight:600;color:var(--teal-dark)}
/* Admin */.admin-body{background:var(--sky);min-height:100vh}.admin-layout{display:grid;grid-template-columns:310px 1fr;min-height:100vh}.admin-sidebar{background:var(--sea);padding:18px 16px 24px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.admin-logo{width:100px;height:100px;object-fit:contain;margin-bottom:24px}.admin-nav{display:grid;gap:18px}.admin-nav button{height:96px;border:0;border-radius:11px;background:#fff;padding:14px 12px;text-align:left;font:500 18px/1.2 Manrope;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.admin-nav button.active{background:#afeafa}.admin-nav .nav-icon{font-size:31px}.logout{margin-top:auto;background:none;border:0;color:#fff;text-align:left;font-size:16px;cursor:pointer}.admin-main{padding:80px 4vw}.admin-top{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:24px}.admin-top h1{font:600 27px Manrope;margin:0}.admin-search{width:min(470px,50vw);background:#fff;border-radius:12px;box-shadow:0 4px 14px #0002;padding:10px 14px;display:flex;gap:10px}.admin-search input{border:0;border-bottom:1px solid;width:100%;outline:0}.data-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--ink);border-radius:12px;overflow:hidden;background:#effcff}.data-table th,.data-table td{padding:11px 9px;border-right:1px solid var(--ink);border-bottom:1px solid var(--line);text-align:left;font-size:14px}.data-table th:last-child,.data-table td:last-child{border-right:0}.data-table tr:nth-child(even) td{background:#d8f1f5}.status-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--green);margin-left:6px}.status-dot.suspended{background:var(--red)}.edit-link{border:0;background:transparent;text-decoration:underline;cursor:pointer}.settings-layout{display:grid;grid-template-columns:255px 1fr;gap:26px}.settings-menu{border-right:1px solid var(--sea);padding-right:26px;display:grid;align-content:start;gap:10px}.settings-menu button{border:1px solid var(--sea);background:#fff;border-radius:9px;padding:10px 12px;text-align:left;display:flex;justify-content:space-between;cursor:pointer}.settings-menu button.active{background:#afeafa}.editor{max-width:900px}.editor h2{font:500 26px Manrope;margin:5px 0 24px}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 28px}.editor-grid label{font-size:12px;font-weight:600}.editor-grid input,.editor-grid select,.editor-grid textarea{display:block;width:100%;margin-top:5px;border:1px solid var(--ink);border-radius:9px;padding:9px;background:transparent}.editor-grid .full{grid-column:1/-1}.state-row{display:flex;gap:16px;margin-bottom:14px;font-size:13px}.upload-cover{grid-column:1/-1;height:190px;background:#b9b6b7;border:0;color:#fff;display:grid;place-items:center;cursor:pointer;background-size:cover;background-position:center}.upload-gallery{height:95px;width:150px;background:#b9b6b7;color:#fff;display:grid;place-items:center;cursor:pointer}.language-texts{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.language-texts textarea{height:150px}.service-checkboxes{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;font-size:12px}.service-checkboxes label{font-weight:400}.editor-actions{display:flex;justify-content:flex-end;margin-bottom:18px}.save-btn{border:0;background:var(--sea);color:#fff;border-radius:7px;padding:9px 42px;cursor:pointer}.taxonomy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.taxonomy-column{border-right:1px solid var(--sea);padding-right:24px}.taxonomy-list{display:grid;gap:8px}.taxonomy-item{display:flex;align-items:center;gap:8px}.taxonomy-item span:first-child{background:var(--green);color:#fff;border-radius:4px;padding:2px 5px}.add-row{display:flex;gap:8px;margin-top:24px}.add-row input{border:0;border-bottom:1px solid;flex:1;background:transparent}.notice{padding:12px;border-radius:8px;background:#d9f5e5;margin:15px 0}.login-shell{min-height:100vh;display:grid;grid-template-columns:38% 1fr;background:var(--sky)}.login-art{background:linear-gradient(155deg,#6ba8b6,#176b7c);display:grid;place-items:center}.login-art img{width:190px}.login-panel{display:grid;place-items:center}.login-card{width:min(430px,80%)}.login-card h1{font:600 38px Manrope}.login-card label{display:block;font-size:13px;font-weight:600;margin:16px 0}.login-card input{display:block;width:100%;border:1px solid var(--ink);border-radius:10px;padding:12px;margin-top:6px;background:transparent}.login-card button{width:100%;margin-top:12px}.demo-note{font-size:12px;color:var(--muted)}
@media(max-width:900px){.main-categories{display:none}.portal-header{height:76px;padding:10px 16px}.brand img{width:50px;height:50px}.brand span{display:none}.catalog-shell{display:block;height:auto}.catalog-panel{padding:30px 16px 100px}.map-panel{height:330px}.catalog-intro{display:block}.catalog-intro>p:last-child{margin-top:8px}.result-card{grid-template-columns:1fr;min-height:0}.card-image{grid-row:1;height:220px}.card-copy{grid-row:2}.multiple-float{right:12px;bottom:12px}.filters{grid-template-columns:1fr}.detail-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:140px}.detail-gallery img:first-child{grid-column:1/-1;grid-row:auto}.service-list{grid-template-columns:1fr 1fr}.admin-layout{grid-template-columns:1fr}.admin-sidebar{height:auto;position:static;padding:10px}.admin-logo{display:none}.admin-nav{display:flex;overflow:auto;gap:8px}.admin-nav button{min-width:165px;height:62px;font-size:14px}.logout{position:absolute;right:15px;top:15px}.admin-main{padding:30px 16px}.settings-layout{grid-template-columns:1fr}.settings-menu{border-right:0;grid-template-columns:repeat(2,1fr);padding:0}.editor-grid{grid-template-columns:1fr}.language-texts,.service-checkboxes{grid-template-columns:1fr}.data-table{display:block;overflow:auto}.login-shell{grid-template-columns:1fr}.login-art{min-height:180px}.login-art img{width:120px}.login-panel{padding:35px 0}}
@media(max-width:600px){.outline-btn{display:none}.catalog-intro h1{font-size:34px}.result-card{border-radius:16px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.detail-dialog #detailContent{padding:36px 18px}.detail-head h2{font-size:30px}.service-list{grid-template-columns:1fr}.admin-top{align-items:flex-start;flex-direction:column}.admin-search{width:100%}.settings-menu{grid-template-columns:1fr}.taxonomy-grid{grid-template-columns:1fr}}

.editor-access{display:inline-flex;align-items:center;gap:7px;text-decoration:none;background:var(--teal);color:#fff;border-radius:999px;padding:11px 16px;font-size:13px;font-weight:700;white-space:nowrap}.editor-access:hover{background:var(--teal-dark)}
.password-wrap{display:flex;align-items:stretch;gap:8px;margin-top:6px}.password-wrap input{margin-top:0;flex:1}.password-wrap button{width:auto!important;margin:0!important;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--teal-dark);cursor:pointer}
.admin-loading,.admin-error{max-width:620px;margin:80px auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:var(--shadow)}
@media(max-width:900px){.editor-access{font-size:0;padding:11px 14px}.editor-access::first-letter{font-size:16px}}
