/*
Theme Name: Directory 7
Author: Spicy Grapefruit
Description: Ultra-lightweight block theme for directory and marketplace-style websites. Built for speed, native WordPress editing and clean integration with application plugins.
Version: 1.3.7
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: directory-7
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: block-patterns, full-site-editing, custom-logo, custom-menu, one-column, accessibility-ready
*/

:root{
 --d7-bg:#fff;--d7-surface:#f7f7f8;--d7-surface-2:#f1f1f3;--d7-text:#1b1b1d;--d7-muted:#6b6b72;
 --d7-border:#e7e7ea;--d7-accent:#111113;--d7-accent-2:#a31524;--d7-radius:10px;
 --d7-content:1180px;--d7-wide:1400px;--d7-shadow:0 16px 44px rgba(0,0,0,.08);
 --d7-gutter:clamp(18px,3vw,42px);--d7-section:clamp(36px,5vw,72px);--d7-header-h:clamp(64px,5vw,74px);--d7-logo-height:44px;--d7-logo-radius:0%;--d7-header-pad-y:0px;--d7-button-radius:8px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--d7-bg);color:var(--d7-text);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
a{text-underline-offset:2px;text-decoration-thickness:1px}
img{max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
:where(a,button,input,select,textarea,.wp-element-button):focus-visible{outline:3px solid rgba(163,21,36,.28);outline-offset:3px}
.d7-skip-link{position:fixed;left:16px;top:-100px;z-index:100000;background:#fff;color:#111;padding:10px 14px;border-radius:8px;box-shadow:var(--d7-shadow);font-weight:800;text-decoration:none}
.d7-skip-link:focus{top:16px}
.admin-bar .d7-skip-link:focus{top:48px}

/* Shell and fluid layout */
.d7-site-shell{min-height:100svh;display:flex;flex-direction:column}
.d7-site-main{flex:1 0 auto}
.d7-container{width:min(calc(100% - (var(--d7-gutter)*2)),var(--d7-content));margin-inline:auto}
.d7-container-wide{width:min(calc(100% - (var(--d7-gutter)*2)),var(--d7-wide));margin-inline:auto}
.d7-content-wrap{padding-block:clamp(32px,4vw,56px) clamp(48px,6vw,80px)}
.d7-content-wrap>*:first-child{margin-top:0}.d7-content-wrap>*:last-child{margin-bottom:0}
.d7-page-title{margin:0 0 clamp(20px,3vw,32px);font-size:clamp(2rem,4.2vw,3.6rem);line-height:1.04;letter-spacing:-.045em}

/* Header */
.d7-header-wrap{position:relative;z-index:1000;background:rgba(255,255,255,.96);border-bottom:1px solid var(--d7-border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.d7-header{min-height:var(--d7-header-h);display:flex;align-items:center;justify-content:space-between;gap:clamp(14px,2.2vw,28px);padding:var(--d7-header-pad-y) 2px}
.d7-brand{display:flex;align-items:center;gap:12px;flex:0 0 auto;min-width:0}
.d7-brand .wp-block-site-logo img{height:var(--d7-logo-height);max-height:none;width:auto;border-radius:var(--d7-logo-radius)}
.d7-brand .wp-block-site-title{margin:0;font-size:clamp(1rem,1.4vw,1.15rem);font-weight:750;letter-spacing:-.02em;white-space:nowrap}.d7-brand .wp-block-site-tagline{margin:2px 0 0;color:var(--d7-muted);font-size:.72rem;line-height:1.2;white-space:nowrap}
.d7-header-actions{margin-left:auto;gap:clamp(8px,1.4vw,18px)}
.d7-header-actions>.wp-block-shortcode{margin:0}
.d7-header .mp-account-nav{display:flex;align-items:center;margin:0}
.d7-header .mp-account-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 14px;border:1px solid #d9dbe0;border-radius:8px;background:#fff;color:#25272c!important;font-size:13px;font-weight:750;line-height:1;text-decoration:none!important;white-space:nowrap}
.d7-header .mp-account-link:hover{border-color:#bfc2c8;background:#f7f7f8}
.d7-nav{margin-left:auto}
.d7-nav .wp-block-navigation__container{gap:clamp(16px,2vw,28px)}
.d7-nav .wp-block-navigation-item__content{color:var(--d7-text);font-size:.94rem;font-weight:650;text-decoration:none}
.d7-nav .wp-block-navigation-item__content:hover{color:var(--d7-accent-2)}
.d7-nav .wp-block-navigation__submenu-container{min-width:200px!important;padding:8px!important;margin-top:0!important;background:#fff!important;border:1px solid var(--d7-border)!important;border-radius:10px!important;box-shadow:var(--d7-shadow)!important}
.d7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item{width:100%}
.d7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content{display:block;width:100%;padding:10px 12px!important;border-radius:7px;font-size:.9rem;font-weight:550}
.d7-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{background:var(--d7-surface);color:var(--d7-text)}
@media(min-width:783px){.d7-nav .wp-block-navigation-item.has-child{position:relative}.d7-nav .wp-block-navigation-item.has-child>.wp-block-navigation__submenu-container{top:100%!important}.d7-nav .wp-block-navigation-item.has-child>.wp-block-navigation__submenu-container:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}}
.d7-header-cta{margin:0;flex:0 0 auto}.d7-header-cta .wp-block-button{margin:0}.d7-header-cta .wp-block-button__link{white-space:nowrap;font-size:.9rem}
.d7-cta>a,.wp-block-button.d7-cta .wp-block-button__link{background:var(--d7-accent);color:#fff!important;padding:10px 16px!important;border:0;border-radius:var(--d7-button-radius);font-weight:750;text-decoration:none;transition:transform .16s ease,background-color .16s ease}
.d7-cta>a:hover,.wp-block-button.d7-cta .wp-block-button__link:hover{background:#2a2a2d;transform:translateY(-1px)}

/* Forms */
:where(input[type=text],input[type=email],input[type=password],input[type=url],input[type=tel],input[type=number],input[type=date],select,textarea){width:100%;max-width:100%;border:1px solid #d9dade;border-radius:9px;padding:11px 13px;background:#fff;color:var(--d7-text);box-shadow:0 1px 0 rgba(0,0,0,.02);transition:border-color .15s ease,box-shadow .15s ease}
:where(input,select,textarea):focus{border-color:var(--d7-accent-2);box-shadow:0 0 0 3px rgba(163,21,36,.10);outline:0}
textarea{min-height:120px;resize:vertical}
label{font-weight:650}
button,.wp-element-button,.wp-block-button__link{min-height:42px;border-radius:var(--d7-button-radius);font-weight:750}

/* Footer */
.d7-footer-wrap{margin-top:auto;background:#111113;color:#d8d8dc}
.d7-footer{padding-block:clamp(34px,4vw,48px) 24px}
.d7-footer a{color:#fff}.d7-footer-top{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(180px,.6fr);gap:clamp(28px,4vw,50px);align-items:start}
.d7-footer-note{max-width:760px;color:#a9a9b0;font-size:.83rem;line-height:1.65}.d7-footer-nav .wp-block-navigation__container{gap:8px}.d7-footer-nav .wp-block-navigation-item__content{font-size:.9rem;text-decoration:none}.d7-footer-nav .wp-block-navigation-item__content:hover{text-decoration:underline}
.d7-footer-bottom{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:20px;color:#8f8f96;font-size:.8rem}.d7-footer-bottom p{margin:0}
.mp-platform-footer-notice{margin-top:0!important}

/* Patterns */
.d7-location-links .wp-block-button__link{background:#fff;color:var(--d7-text);border:1px solid var(--d7-border);padding:10px 18px}.d7-location-links .wp-block-button__link:hover{border-color:#bfc0c5;background:var(--d7-surface)}
.d7-page-intro{padding:clamp(28px,4vw,48px);border:1px solid var(--d7-border);border-radius:16px;background:linear-gradient(145deg,#fff,var(--d7-surface))}
.d7-page-intro h1,.d7-page-intro h2{max-width:850px;margin-top:0;letter-spacing:-.035em}.d7-page-intro p{max-width:760px;color:var(--d7-muted)}
.d7-notice-card{padding:20px 22px;border-left:4px solid var(--d7-accent-2);border-radius:10px;background:var(--d7-surface)}
.d7-two-column{gap:clamp(24px,5vw,64px)}
.d7-faq details{border-top:1px solid var(--d7-border);padding:16px 0}.d7-faq details:last-child{border-bottom:1px solid var(--d7-border)}.d7-faq summary{cursor:pointer;font-weight:750}

/* Generic WordPress templates */
.d7-result-card{padding:clamp(20px,3vw,30px);border:1px solid var(--d7-border);border-radius:14px;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.035)}
.d7-result-card+.d7-result-card{margin-top:18px}.d7-result-card .wp-block-post-title{margin-top:0}.d7-empty-state{padding:clamp(28px,5vw,56px);text-align:center;border:1px dashed #cfd0d4;border-radius:16px;background:var(--d7-surface)}

/* Escort Directory integration */
body.mp-directory-public-page .wp-site-blocks>main{width:100%}
body.mp-directory-public-page .d7-content-wrap{width:min(calc(100% - (var(--d7-gutter)*2)),var(--d7-wide))}
body.mp-directory-public-page .mp-directory-wrap,body.mp-directory-public-page .mp-signup-shell,body.mp-directory-public-page .mp-membership-packages,body.mp-directory-public-page .mp-advertising-packages-intro{max-width:none}
.mp-sponsored-card{box-shadow:0 14px 42px rgba(0,0,0,.055);transition:transform .18s ease,box-shadow .18s ease}.mp-sponsored-card:hover{transform:translateY(-2px);box-shadow:0 18px 52px rgba(0,0,0,.08)}.mp-sponsored-label{display:inline-flex;align-items:center;gap:6px}.mp-sponsored-label:before{content:"";width:6px;height:6px;border-radius:99px;background:var(--d7-accent-2)}

/* Desktop compression */
@media(max-width:1040px){.d7-nav .wp-block-navigation__container{gap:18px}.d7-header-actions{gap:9px}.d7-header-cta .wp-block-button__link{padding-inline:13px!important}}
@media(max-width:900px){.d7-header-cta{display:none}.d7-header{min-height:66px}}

/* Mobile */
@media(max-width:782px){
 .d7-header-wrap{backdrop-filter:none;-webkit-backdrop-filter:none}.d7-header{width:min(calc(100% - 28px),var(--d7-wide));min-height:62px;gap:8px}.d7-brand{max-width:calc(100vw - 142px)}.d7-brand .wp-block-site-logo img{height:min(var(--d7-logo-height),44px);max-height:none;max-width:132px}.d7-brand .wp-block-site-title{overflow:hidden;text-overflow:ellipsis;font-size:1rem}.d7-header-actions{margin-left:auto;gap:7px}.d7-nav{order:2;margin-left:0}.d7-header-actions>.wp-block-shortcode{order:1}.d7-header .mp-account-link{min-height:38px;padding:7px 11px;font-size:12px}
 .d7-nav .wp-block-navigation__responsive-container-open{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--d7-border);border-radius:10px;background:#fff}.d7-nav .wp-block-navigation__responsive-container.is-menu-open{padding:76px 22px 30px;background:#fff;color:var(--d7-text)}.d7-nav .wp-block-navigation__responsive-container-close{top:18px;right:20px}.d7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{align-items:stretch;width:100%;gap:2px}.d7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{width:100%}.d7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{padding:11px 0;font-size:1.04rem}.d7-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{box-shadow:none!important;border:0!important;margin:0!important;padding:0 0 0 14px!important;width:100%!important}
 .d7-footer-top{grid-template-columns:1fr}.d7-footer-bottom{flex-direction:column;gap:6px}.d7-content-wrap{padding-block:30px 48px}.d7-page-title{font-size:clamp(2rem,10vw,2.8rem)}
 body.mp-login-page .mp-login-page-content{padding-block:42px 56px;width:min(calc(100% - 32px),520px)}body.mp-login-page .mp-login-shell{width:100%}.mp-sponsored-card:hover{transform:none}
}
@media(max-width:420px){.d7-brand .wp-block-site-title{max-width:145px}.d7-header{width:calc(100% - 22px)}.d7-nav .wp-block-navigation__responsive-container-open{width:42px;height:42px}.d7-content-wrap{padding-block:26px 42px}}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.mp-sponsored-card:hover{transform:none}}
/* Account-aware header */
body.d7-user-is-escort .d7-header-cta{display:none!important}

/* Login page */
body.mp-login-page .d7-site-main.d7-container{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
body.mp-login-page .d7-page-title,body.mp-login-page .mp-account-nav{display:none!important}
body.mp-login-page .d7-site-main{min-height:clamp(560px,calc(100svh - 260px),980px);display:flex;flex-direction:column;background:radial-gradient(circle at 12% 18%,rgba(163,21,36,.2),transparent 34%),linear-gradient(135deg,rgba(255,255,255,.025) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.025) 50%,rgba(255,255,255,.025) 75%,transparent 75%),#151315;background-size:auto,28px 28px,auto}
body.mp-login-page .d7-content-wrap{width:100%;max-width:none;padding:0}
body.mp-login-page .mp-login-page-content{width:min(calc(100% - (var(--d7-gutter)*2)),760px);margin:auto;padding-block:clamp(48px,8vh,110px)}
body.mp-login-page .mp-login-editable-intro{text-align:center;color:#fff;margin:0 auto clamp(22px,3vh,34px);max-width:650px}
body.mp-login-page .mp-login-brand{margin:0 0 10px;color:#d7a7ad;font-size:.76rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}
body.mp-login-page .mp-login-editable-intro h2{margin:0 0 10px;color:#fff;font-size:clamp(2rem,3.2vw,3rem);line-height:1.05;letter-spacing:-.04em}
body.mp-login-page .mp-login-editable-intro p:last-child{color:#c8c3c6;margin-bottom:0}
body.mp-login-page .mp-login-shell,body.mp-login-page .mp-form-notice{width:min(100%,430px);margin-inline:auto}
body.mp-login-page .mp-login-card{border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
body.mp-login-page .mp-form-notice{margin-bottom:14px}
@media(max-height:760px) and (min-width:783px){body.mp-login-page .d7-site-main{min-height:auto}body.mp-login-page .mp-login-page-content{padding-block:38px}}
@media(max-width:782px){body.mp-login-page .d7-site-main{min-height:auto}body.mp-login-page .mp-login-page-content{padding-block:42px 56px;width:min(calc(100% - 32px),520px)}body.mp-login-page .mp-login-shell{width:100%}}

/* Sticky header: the block-theme template part is the positioning boundary. */
body.d7-header-is-sticky .d7-site-shell>header.wp-block-template-part{position:sticky!important;top:0!important;z-index:9999!important;width:100%;align-self:stretch}
body.admin-bar.d7-header-is-sticky .d7-site-shell>header.wp-block-template-part{top:32px!important}
body.d7-header-is-sticky .d7-site-shell>header.wp-block-template-part .d7-header-wrap{position:relative!important;top:auto!important}
@media(max-width:782px){body.admin-bar.d7-header-is-sticky .d7-site-shell>header.wp-block-template-part{top:46px!important}}

/* 1.2.5 single-profile page polish */
.d7-profile-page{padding-top:clamp(22px,3vw,40px)}
@media(max-width:640px){.d7-profile-page{padding-top:18px}}

/* 1.2.6 footer refinement: legal notice lives in the platform strip below. */
.d7-footer{padding-block:clamp(26px,3vw,38px) 20px}
.d7-footer-top{grid-template-columns:minmax(0,1.4fr) minmax(180px,.6fr);gap:clamp(24px,3vw,42px)}
.d7-footer-bottom{margin-top:22px;padding-top:16px}

/* 1.2.7 desktop profile canvas: use wide screens without sacrificing readability. */
@media(min-width:1200px){
 .d7-profile-page{width:min(calc(100% - (var(--d7-gutter)*2)),1280px);padding-top:clamp(16px,1.8vw,28px)}
 .d7-profile-page .mp-visual-profile{max-width:1220px}
}
@media(min-width:1600px){.d7-profile-page{width:min(calc(100% - 96px),1320px)}}

/* 1.3.1 — Directory 7 integration for Escort Directory modern profiles. */
.d7-profile-page .mp-modern-profile{max-width:1280px}
@media(min-width:1200px){.d7-profile-page:has(.mp-modern-profile){width:min(calc(100% - (var(--d7-gutter)*2)),1380px)}}
@media(min-width:1600px){.d7-profile-page:has(.mp-modern-profile){width:min(calc(100% - 96px),1420px)}}


/* 1.3.3 — plugin/theme admin polish; footer remains from 1.3.2. */
.d7-footer-shortcode-wrap{margin-top:auto!important}
.d7-footer-shell{background:#0c1722;color:#dbe4ec}
.d7-footer-shell .d7-footer{padding:34px var(--d7-gutter) 0}
.d7-footer-grid{display:grid;grid-template-columns:minmax(280px,1.5fr) minmax(170px,.65fr) minmax(170px,.65fr);gap:clamp(28px,4vw,64px);align-items:start}
.d7-footer-logo{display:inline-flex;margin-bottom:14px}.d7-footer-logo-img{display:block;width:auto;max-width:220px;max-height:54px;object-fit:contain}
.d7-footer-brand-title{display:block;margin-bottom:12px;color:#fff;font-size:1.1rem}.d7-footer-brand p{max-width:470px;margin:0;color:#9fb0bf;font-size:.9rem;line-height:1.65}
.d7-footer-links h3{margin:0 0 11px;color:#d8ad43;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.d7-footer-links ul{list-style:none;margin:0;padding:0}.d7-footer-links li+li{margin-top:8px}.d7-footer-links a{color:#eef3f7;text-decoration:none;font-size:.9rem}.d7-footer-links a:hover,.d7-footer-links a:focus{color:#d8ad43;text-decoration:none}
.d7-footer-shell .d7-footer-bottom{margin-top:28px;padding:16px 0;border-top:1px solid rgba(255,255,255,.12);color:#91a1af;font-size:.78rem}.d7-footer-shell .d7-footer-bottom p{margin:0}
.d7-footer-legal{margin:0 calc(var(--d7-gutter) * -1);padding:13px var(--d7-gutter);border-top:1px solid rgba(255,255,255,.08);background:#09131c;text-align:center}.d7-footer-legal p{max-width:1100px;margin:0 auto;color:#8496a5;font-size:.72rem;line-height:1.55}
@media(max-width:780px){.d7-footer-grid{grid-template-columns:1fr 1fr}.d7-footer-brand{grid-column:1/-1}.d7-footer-shell .d7-footer-bottom{flex-direction:column;gap:6px}}
@media(max-width:520px){.d7-footer-shell .d7-footer{padding-top:28px}.d7-footer-grid{grid-template-columns:1fr;gap:24px}.d7-footer-brand{grid-column:auto}.d7-footer-logo-img{max-width:190px;max-height:48px}}

/* 1.3.4 — login page footer transition. */
body.mp-login-page .d7-site-main{margin-bottom:0!important}body.mp-login-page .d7-site-shell>footer.wp-block-template-part,body.mp-login-page .d7-footer-shortcode-wrap{margin-top:0!important}

/* 1.3.6: dedicated legal-links row */
.d7-footer-legal-links{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px 11px;padding:0 0 15px;color:#91a1af;font-size:.76rem}
.d7-footer-legal-links a{color:#c3ced7;text-decoration:none}
.d7-footer-legal-links a:hover,.d7-footer-legal-links a:focus{color:#d8ad43;text-decoration:underline}
.d7-footer-legal-links span{color:#536574}
@media(max-width:520px){.d7-footer-legal-links{justify-content:flex-start;gap:7px 9px;padding-bottom:14px}}
