@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');

.module-page {
    --module-ink: #183b35;
    --module-muted: #687a72;
    --module-accent: #087f72;
    --module-paper: #f7f8f3;
    --module-surface: #fff;
    --module-line: #dce5dd;
    margin: 0;
    color: var(--module-ink);
    background: var(--module-paper);
    font: 16px/1.6 var(--module-font-family, 'DM Sans'), sans-serif;
}

.module-page *, .module-page *::before, .module-page *::after { box-sizing: border-box; }
.module-page a { color: inherit; }
.module-page input, .module-page textarea, .module-page select, .module-page button { font: inherit; }
.module-page :focus-visible { outline: 3px solid var(--module-accent); outline-offset: 3px; }
.module-topbar { height: 72px; display: flex; justify-content: space-between; align-items: center; padding: 0 max(24px, calc((100vw - 1160px) / 2)); border-bottom: 1px solid var(--module-line); background: rgba(255,255,255,.85); }
.module-brand { font-weight: 700; text-decoration: none; font-size: 19px; }
.module-logo { display: inline-block; width: 38px; height: 38px; margin-inline-end: 10px; object-fit: contain; vertical-align: middle; }
.module-top-link { font-size: 13px; text-decoration: none; }
.module-hero { min-height: 390px; max-width: 1160px; margin: auto; padding: 68px 24px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: center; }
.module-hero-copy { max-width: 600px; }
.module-eyebrow { display: block; color: var(--module-accent); font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.module-hero h1 { max-width: 680px; margin: 14px 0; font: 600 clamp(40px, 6vw, 66px)/1.05 var(--module-display-font, 'Playfair Display'), Georgia, serif; letter-spacing: 0; }
.module-subtitle { margin: 0; font-size: 21px; }
.module-description { max-width: 570px; margin: 16px 0; color: var(--module-muted); }
.module-address { color: var(--module-muted); font-size: 14px; }
.module-address a, .module-text-link { color: var(--module-accent); font-weight: 600; }
.module-button { display: inline-flex; min-height: 46px; justify-content: center; align-items: center; padding: 11px 19px; border: 0; border-radius: 5px; margin: 8px 8px 0 0; color: #fff !important; background: var(--module-accent); text-decoration: none; font-weight: 700; cursor: pointer; }
.module-button-light { color: var(--module-ink) !important; background: transparent; border: 1px solid var(--module-line); }
.module-cover { min-height: 280px; overflow: hidden; background: var(--module-line); }
.module-cover img { display: block; width: 100%; height: 100%; min-height: 280px; object-fit: cover; }
.module-section { padding: 72px max(24px, calc((100vw - 1160px) / 2)); border-top: 1px solid var(--module-line); }
.module-section-heading { margin-bottom: 28px; }
.module-section h2, .module-contact h2 { margin: 7px 0 0; font: 600 35px/1.2 var(--module-display-font, 'Playfair Display'), Georgia, serif; letter-spacing: 0; }
.module-muted { color: var(--module-muted); font-size: 13px; }
.module-category-title { margin: 32px 0 8px; font: 600 24px var(--module-display-font, 'Playfair Display'), Georgia, serif; }
.module-subcategory-title { margin: 21px 0 8px; font-size: 17px; }
.module-product-grid, .module-service-grid, .module-listing-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.module-product, .module-service, .module-listing { min-width: 0; overflow: hidden; background: var(--module-surface); border: 1px solid var(--module-line); }
.module-product-image, .module-service img, .module-listing img { width: 100%; height: 210px; object-fit: cover; display: block; background: var(--module-line); }
.module-product-body, .module-listing-body { padding: 19px; }
.module-product h3, .module-service h3, .module-listing h3, .module-resume-entry h4 { margin: 0 0 9px; font: 600 21px/1.25 var(--module-display-font, 'Playfair Display'), Georgia, serif; }
.module-product p, .module-service p, .module-listing p { color: var(--module-muted); font-size: 13px; }
.module-price { display: block; margin: 10px 0; font-size: 17px; }
.module-tag { display: inline-block; padding: 3px 8px; margin: 3px 3px 3px 0; border-radius: 3px; background: var(--module-paper); color: var(--module-muted); font-size: 11px; }
.module-quantity { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 17px; font-size: 12px; }
.module-quantity input { width: 84px; height: 38px; padding: 6px; border: 1px solid var(--module-line); border-radius: 4px; }
.module-order-form { grid-column: 1/-1; padding: 26px; background: var(--module-surface); border: 1px solid var(--module-line); }
.module-order-form h3 { margin-top: 0; }
.module-product-group { grid-column: 1/-1; }
.module-product-group-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.module-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; max-width: 780px; }
.module-form-grid label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 600; }
.module-form-grid input, .module-form-grid textarea, .module-form-grid select { width: 100%; min-height: 43px; padding: 10px 11px; border: 1px solid var(--module-line); border-radius: 4px; background: #fff; color: var(--module-ink); }
.module-form-grid textarea { min-height: 84px; }
.module-span { grid-column: 1/-1; }
.module-booking { background: #edf2e9; }
.module-service { padding-bottom: 18px; }
.module-service h3, .module-service p, .module-service strong, .module-service small { display: block; margin-inline: 17px; }
.module-service small { color: var(--module-muted); }
.module-listing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.module-listing { display: grid; grid-template-columns: .9fr 1.1fr; }
.module-listing img { height: 100%; min-height: 250px; }
.module-gallery { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0; }
.module-gallery img { width: 112px; height: 82px; min-height: 0; object-fit: cover; border-radius: 4px; }
.module-gallery video { width: min(100%, 360px); max-height: 240px; background: #111; }
.module-details { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 12px 0; color: var(--module-muted); font-size: 12px; }
.module-resume { background: #f0f2ed; }
.module-resume-section { display: grid; grid-template-columns: 180px 1fr; gap: 25px; padding: 22px 0; border-top: 1px solid var(--module-line); }
.module-resume-section h3 { margin: 0; font-size: 14px; }
.module-resume-entry { padding-bottom: 20px; border-bottom: 1px solid var(--module-line); }
.module-resume-entry p { color: var(--module-muted); font-size: 13px; }
.module-event { max-width: 880px; margin: auto; border: 1px solid var(--module-line); background: #fff; }
.module-event > p { color: var(--module-muted); }
.module-contact { display: flex; justify-content: space-between; align-items: center; gap: 25px; padding: 45px max(24px, calc((100vw - 1160px) / 2)); background: var(--module-ink); color: white; }
.module-contact .module-eyebrow { color: #dafa70; }
.module-contact a { display: inline-block; margin: 10px 15px 0 0; color: #e2f3d7; font-size: 13px; }
.module-contact p { color: #c9d6ce; }
.module-qr { width: 180px; flex: 0 0 180px; padding: 10px; background: white; color: var(--module-ink); text-align: center; }
.module-qr svg { width: 100%; height: auto; }
.module-qr-downloads { display: flex; justify-content: center; gap: 8px; margin-top: 8px; }
.module-qr-downloads a, .module-social-links a { color: var(--module-accent); font-size: 11px; font-weight: 700; }
.module-social-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.module-menu-category { padding-block: 12px 26px; border-bottom: 1px solid var(--module-line); }
.module-menu-items { display: grid; gap: 12px; }
.module-menu-item { display: flex; gap: 15px; align-items: center; padding: 13px; border: 1px solid var(--module-line); background: var(--module-surface); }
.module-menu-item > img { width: 100px; height: 82px; object-fit: cover; border-radius: 4px; }
.module-menu-item-content { min-width: 0; flex: 1; }
.module-menu-item-title { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.module-menu-item h4 { margin: 0; font-size: 17px; }
.module-menu-item p { margin: 5px 0; color: var(--module-muted); font-size: 13px; }
.module-dietary { display: inline-block; padding: 3px 7px; border: 1px solid #3a9b62; border-radius: 4px; color: #26734a; font-size: 10px; white-space: nowrap; }
.module-dietary-non-veg { border-color: #c45645; color: #a64334; }
.module-dietary-contains-egg { border-color: #c18d3a; color: #8a6021; }
.module-menu-price { display: flex; align-items: baseline; gap: 9px; margin-block: 6px; font-size: 14px; }
.module-menu-price del, .module-menu-price small { color: var(--module-muted); font-size: 11px; }
.module-menu-options { margin-top: 7px; font-size: 12px; }
.module-menu-options ul { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 3px 0; padding-inline-start: 18px; color: var(--module-muted); }
.module-unavailable-label { display: inline-block; margin-top: 6px; color: #9a3d35; font-size: 11px; font-weight: 700; }
.module-menu-item.is-unavailable { opacity: .54; filter: grayscale(.65); }
.module-footer { padding: 20px; background: #102b27; color: #d3dfd6; text-align: center; font-size: 11px; }
.module-result { width: min(720px, calc(100% - 40px)); margin: 12vh auto; padding: 48px; background: var(--module-surface); border: 1px solid var(--module-line); }
.module-result h1 { font: 600 38px/1.15 var(--module-display-font, 'Playfair Display'), Georgia, serif; }
.module-result p { color: var(--module-muted); }
.module-theme-choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.module-theme-choice { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 8px; border: 1px solid #dce5dd; border-radius: 7px; cursor: pointer; }
.module-theme-choice:has(input:checked) { border-color: #087f72; box-shadow: 0 0 0 2px rgba(8,127,114,.16); }
.module-theme-choice input { position: absolute; top: 12px; inset-inline-start: 12px; width: 18px; height: 18px; accent-color: #087f72; }
.module-theme-choice img { width: 100%; height: 110px; object-fit: cover; border-radius: 4px; }
.module-theme-choice span { font-size: 13px; font-weight: 600; }
.module-notice { max-width: 1160px; margin: 18px auto; padding: 12px 16px; border: 1px solid var(--module-line); background: var(--module-surface); }
.module-notice-success { border-inline-start: 4px solid #2b865c; }
.module-notice-error { border-inline-start: 4px solid #b64b42; }
.module-notice ul { margin: 0; padding-inline-start: 20px; }

.module-qr_menu { --module-ink: #274239; --module-accent: #bf542a; --module-paper: #faf4eb; --module-line: #eadfce; }
.theme-counter { --module-accent: #a84623; --module-paper: #fff8ef; }
.module-salon { --module-ink: #452f3b; --module-accent: #ac5479; --module-paper: #fbf4f6; --module-line: #eadce3; }
.theme-atelier { --module-accent: #6f586c; --module-paper: #f6f2f4; }
.module-doctor_booking { --module-ink: #203d4b; --module-accent: #167b82; --module-paper: #f1f7f8; --module-line: #d7e4e7; }
.theme-care { --module-accent: #337c69; --module-paper: #f0f7f1; }
.module-property_catalogue { --module-ink: #2f3c4c; --module-accent: #446d8a; --module-paper: #f3f6f8; --module-line: #dce3e9; }
.theme-showcase { --module-accent: #87674d; --module-paper: #f8f4ef; }
.module-digital_resume { --module-ink: #26343e; --module-accent: #315e69; --module-paper: #f3f5f5; --module-line: #dce2e3; }
.theme-portfolio { --module-ink: #30334c; --module-accent: #765b77; }
.module-events { --module-ink: #493248; --module-accent: #ac4b63; --module-paper: #fbf4f4; --module-line: #eddddf; }
.theme-gathering { --module-accent: #c07d35; --module-paper: #fff9ef; }
.module-ecommerce { --module-ink: #283c35; --module-accent: #548341; --module-paper: #f5f7f0; --module-line: #dce5d6; }
.theme-boutique { --module-ink: #3d2f37; --module-accent: #ab593f; --module-paper: #f8f2ef; }

.theme-terracotta { --module-ink: #3b2a23; --module-accent: #c45b32; --module-paper: #fff5ec; --module-surface: #fffdf9; --module-line: #ead5c7; }
.theme-night-market { --module-ink: #f4eadb; --module-muted: #c4b5a2; --module-accent: #e6a24a; --module-paper: #1d2526; --module-surface: #273133; --module-line: #435052; }
.theme-night-market .module-topbar { background: rgba(29,37,38,.92); }
.theme-night-market .module-cover { background: #111718; }
.theme-night-market .module-booking, .theme-night-market .module-resume { background: #222c2d; }
.theme-garden { --module-ink: #244137; --module-accent: #6c8d42; --module-paper: #f3f6e8; --module-surface: #fbfcf4; --module-line: #d6e0c8; }

.theme-blush { --module-ink: #4b3038; --module-accent: #c56f87; --module-paper: #fff5f5; --module-surface: #fffafb; --module-line: #efd9de; }
.theme-editorial { --module-ink: #302c38; --module-muted: #716775; --module-accent: #73566d; --module-paper: #f2eff1; --module-surface: #fff; --module-line: #ddd5dc; }
.theme-editorial .module-hero h1, .theme-editorial .module-section h2, .theme-editorial .module-contact h2 { font-family: Georgia, serif; }
.theme-botanical { --module-ink: #304135; --module-accent: #47795c; --module-paper: #eef5ef; --module-surface: #fbfdf9; --module-line: #d5e3d8; }

.theme-harbor { --module-ink: #203b4d; --module-muted: #607583; --module-accent: #197c91; --module-paper: #edf7f8; --module-surface: #fff; --module-line: #d2e5e8; }
.theme-brightline { --module-ink: #173147; --module-accent: #1769a6; --module-paper: #f1f6fb; --module-surface: #fff; --module-line: #d6e2ed; }
.theme-brightline .module-button { border-radius: 2px; }
.theme-wellness { --module-ink: #3c4540; --module-muted: #718078; --module-accent: #719a83; --module-paper: #f3f6f1; --module-surface: #fff; --module-line: #dbe4dc; }

.theme-heritage { --module-ink: #44362d; --module-accent: #9a663d; --module-paper: #f7f0e4; --module-surface: #fffaf2; --module-line: #e7d8c4; }
.theme-coastal { --module-ink: #244657; --module-accent: #2d8190; --module-paper: #edf7f8; --module-surface: #fff; --module-line: #d3e7e9; }
.theme-urban { --module-ink: #2f3438; --module-muted: #6d7478; --module-accent: #d05b3e; --module-paper: #f3f3f1; --module-surface: #fff; --module-line: #d9dcda; }
.theme-urban .module-listing, .theme-urban .module-product { border-radius: 0; }

.theme-monochrome { --module-ink: #202020; --module-muted: #6b6b6b; --module-accent: #202020; --module-paper: #f1f1ef; --module-surface: #fff; --module-line: #d6d6d2; }
.theme-signal { --module-ink: #182538; --module-accent: #d54e35; --module-paper: #f4f5f7; --module-surface: #fff; --module-line: #d8dde4; }
.theme-signal .module-eyebrow { letter-spacing: .14em; }
.theme-paper { --module-ink: #3b342c; --module-muted: #776e63; --module-accent: #9b7450; --module-paper: #f8f4ec; --module-surface: #fffdf8; --module-line: #e5ddd0; }

.theme-garden-party { --module-ink: #394331; --module-accent: #bb6e55; --module-paper: #fff6ee; --module-surface: #fffdf8; --module-line: #ecd9c9; }
.theme-midnight { --module-ink: #f2e9df; --module-muted: #c1b4ad; --module-accent: #d99a68; --module-paper: #242433; --module-surface: #303042; --module-line: #4a4a5b; }
.theme-midnight .module-topbar, .theme-midnight .module-booking, .theme-midnight .module-resume { background: #292939; }
.theme-modernist { --module-ink: #252525; --module-accent: #e24d31; --module-paper: #f5f1e8; --module-surface: #fffdf8; --module-line: #d8d1c5; }
.theme-modernist .module-button { border-radius: 0; text-transform: uppercase; font-size: 12px; letter-spacing: .04em; }

.theme-utility { --module-ink: #26353b; --module-muted: #67767b; --module-accent: #176d80; --module-paper: #edf2f3; --module-surface: #fff; --module-line: #d7e0e2; }
.theme-artisan { --module-ink: #443329; --module-accent: #b7673d; --module-paper: #faf0e4; --module-surface: #fffaf3; --module-line: #ead7c3; }
.theme-fresh { --module-ink: #27412f; --module-accent: #4c9a59; --module-paper: #f1f8ee; --module-surface: #fff; --module-line: #d8e8d5; }

@media (max-width: 760px) {
    .module-hero { grid-template-columns: 1fr; gap: 24px; padding-block: 42px; }
    .module-hero h1 { font-size: 43px; }
    .module-section { padding-block: 48px; }
    .module-section h2, .module-contact h2 { font-size: 29px; }
    .module-product-grid, .module-service-grid, .module-listing-grid { grid-template-columns: 1fr; }
    .module-product-group-grid { grid-template-columns: 1fr; }
    .module-listing { grid-template-columns: 1fr; }
    .module-listing img { min-height: 210px; height: 210px; }
    .module-form-grid { grid-template-columns: 1fr; }
    .module-span { grid-column: auto; }
    .module-resume-section { grid-template-columns: 1fr; gap: 12px; }
    .module-contact { flex-direction: column; align-items: flex-start; padding-block: 38px; }
}

/* Commercial catalogue controls. */
.pg-plan-products{display:flex;flex-wrap:wrap;gap:8px}.pg-plan-products a{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid #dce5e2;border-radius:10px;background:#fff;color:#264b4a;text-decoration:none}.pg-plan-products a.selected{border-color:#087f75;background:#e5f5f0;font-weight:600}.pg-plan-products span{padding:1px 7px;border-radius:12px;background:#edf1f5;font-size:12px}.pg-plan-filters{display:flex;gap:10px;flex-wrap:wrap}.pg-plan-filters input{flex:1;min-width:180px}.pg-plan-filters select{width:auto;min-width:150px}.pg-plans-table td{padding-block:18px!important;vertical-align:middle}.pg-plans-workspace .badge{align-self:flex-start;line-height:1.4;padding:5px 10px}.pg-plans-workspace .card{min-width:0}.pg-plans-table{min-width:820px}.pg-plans-workspace a:focus-visible,.pg-plans-workspace button:focus-visible{outline:3px solid #7038ff;outline-offset:3px}

.module-admin-shell .module-admin-card{border:1px solid #dce5e2;background:#fff;border-radius:14px;padding:22px}.module-admin-shell .module-admin-card .badge{align-self:flex-start;line-height:1.4;padding:5px 10px}.module-admin-shell .module-admin-stat{display:flex;gap:8px;align-items:center}.module-admin-shell .module-admin-kicker{font-size:12px;color:#637577}.module-admin-shell details summary{cursor:pointer;font-weight:600}.pg-plans-workspace .bg-light-secondary{background:#eef0f4;color:#536071}.pg-plans-workspace .bg-light-success{background:#def7e9;color:#087d48}
