@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
:root{--pink:#f4517b;--pink-dark:#e83c68;--ink:#151a2c;--muted:#6d7282;--line:#e8e8ed;--soft:#fff0f4;--max:1120px;--section-space:90px;--card-gap-y:44px;--card-gap-x:36px}*{box-sizing:border-box}body.dm-frontpage{margin:0;color:var(--ink);background:#fff;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;line-height:1.5}.dm-frontpage a{color:inherit;text-decoration:none}.dm-container{width:min(calc(100% - 48px),var(--max));margin:0 auto}.dm-header{height:72px;border-bottom:1px solid #eeeef2;background:#fff;position:relative;z-index:20}.dm-header-inner{height:100%;display:flex;align-items:center;gap:38px}.dm-brand{display:inline-flex;align-items:center;gap:8px;font-size:25px;font-weight:700;letter-spacing:-.04em;white-space:nowrap}.dm-brand>span:last-child>span{color:var(--pink)}.dm-brand-mark{width:38px;height:38px;display:grid;place-items:center}.dm-brand-mark img{width:100%;height:100%;object-fit:contain}.dm-nav{display:flex;gap:30px;margin-left:12px;font-size:16px;font-weight:600}.dm-nav a:hover,.dm-sign-in:hover,.dm-text-link:hover{color:var(--pink)}.dm-header-actions{display:flex;align-items:center;gap:22px;margin-left:auto;font-size:16px}.dm-icon-link{color:var(--pink);font-size:21px}.dm-theme-toggle{border:1px solid var(--line);border-radius:20px;background:#fafafa;color:var(--muted);display:flex;gap:5px;padding:5px 9px;font-size:16px;margin-left:-16px}.dm-nav-account{display:none}.dm-theme-toggle i:first-child{color:#f0a935}.dm-button{margin:20px 0;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:24px;padding:13px 24px;color:#fff!important;background:var(--pink);font-weight:600;font-size:16px;box-shadow:0 7px 15px #f4517b2e;transition:.2s ease}.dm-button:hover{background:var(--pink-dark);transform:translateY(-1px)}.dm-button-small{padding:10px 19px}.dm-menu-toggle{display:none;border:0;background:none;font-size:31px;color:var(--ink)}.dm-search{position:relative;display:flex;align-items:center}.dm-search-toggle{border:0;background:none;cursor:pointer}.dm-search-form{position:absolute;right:0;top:calc(100% + 14px);display:flex;align-items:center;gap:4px;width:290px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:5px 5px 5px 18px;box-shadow:0 12px 30px rgba(21,26,44,.14);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .15s ease,transform .15s ease;z-index:5}.dm-search.is-open .dm-search-form{opacity:1;visibility:visible;transform:translateY(0)}.dm-search-form input{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;color:var(--ink)}.dm-search-form button{border:0;background:none;color:#fff;background:var(--pink);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:15px;cursor:pointer;flex:none}.dm-search-result{display:grid;grid-template-columns:140px 1fr;gap:20px;align-items:start;padding-block:24px;border-bottom:1px solid var(--line)}.dm-search-result:first-child{padding-top:0}.dm-search-result-media{display:block;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--soft)}.dm-search-result-media img{width:100%;height:100%;object-fit:cover;display:block}.dm-search-result-placeholder{width:100%;height:100%;display:grid;place-items:center;color:var(--pink);font-size:32px}.dm-search-result h3{font-size:20px;margin:6px 0 6px}.dm-search-result p{color:var(--muted);margin:0 0 6px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.dm-search-bar{display:flex;gap:10px;max-width:560px;margin-top:24px}.dm-search-bar input{flex:1;border:1px solid var(--line);border-radius:24px;padding:12px 18px;font:inherit;background:#fff;color:var(--ink)}
.dm-hero{background:linear-gradient(100deg,#fff0f4,#ffeef3 48%,#fbe0e6);overflow:hidden}.dm-hero-inner{min-height:278px;display:flex;align-items:center}.dm-hero-copy{width:48%;padding-block:var(--section-space);z-index:1}.dm-eyebrow,.dm-category{color:var(--pink);font-size:13px;font-weight:700;letter-spacing:.03em}.dm-hero h1{margin:6px 0;font-size:52px;line-height:1.05;letter-spacing:-.05em; font-weight: 700;}.dm-hero-lede{color:#5f6574;font-size:18px;line-height:1.3;margin:0 0 14px}.dm-hero-note{color:#6b6f7b;font-size:14px;margin:10px 0 0}.dm-hero-note span,.dm-meta span{margin:0 5px}.dm-hero-art{align-self:stretch;flex:1;position:relative;min-height:278px}.dm-hero-art img{position:absolute;right:-55px;bottom:0;width:650px;height:320px;object-fit:cover;object-position:center;mix-blend-mode:multiply}.dm-doodle{position:absolute;color:var(--pink);font-family:cursive;font-style:italic}.dm-heart-doodle{left:35px;top:42px;font-size:52px;transform:rotate(-16deg)}.dm-copy-doodle{right:16px;top:39px;font-size:20px;line-height:1.2;transform:rotate(-8deg)}
/* Shared page rhythm: every section — including the hero (.dm-hero-copy,
   above) — uses --section-space for its inner top/bottom padding. Don't
   set padding-top/bottom/block on an individual section (.dm-reviews,
   .dm-advice, etc.) — that breaks the shared rhythm this rule provides.
   Adjust the token once to change all of them together. */
.dm-section{padding-block:var(--section-space)}.dm-section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.dm-section h2,.dm-page-title{font-size:32px;font-weight:700;line-height:1.1;letter-spacing:-.04em;margin:0 0 2px}.dm-section-heading p,.dm-guides>div>p{color:var(--muted);margin:0;font-size:16px}.dm-text-link{color:var(--pink);font-size:16px;font-weight:700;white-space:nowrap}.dm-text-link i,.dm-review-cta i{margin-left:6px}.dm-feature-grid{display:grid;grid-template-columns:.7fr 1fr;gap:var(--card-gap-x)}.dm-feature-main{position:relative}.dm-feature-main img{width:100%;aspect-ratio:1/1;border-radius:7px;object-fit:cover}.dm-category-pill{position:absolute;left:12px;top:12px;padding:3px 9px;color:#fff;background:var(--pink);border-radius:12px;font-size:12px;font-weight:700}.dm-feature-main h3{font-size:24px;margin:10px 0 3px}.dm-meta{color:#78808f;font-size:14px;margin:0}.dm-feature-list{display:flex;flex-direction:column}.dm-feature-item{display:grid;grid-template-columns:116px 1fr;gap:12px;align-items:stretch;flex:1;min-height:0;overflow:hidden;border-bottom:1px solid var(--line);padding-block:calc(var(--card-gap-y) / 2)}.dm-feature-item:first-child{padding-top:0}.dm-feature-item img{width:116px;height:100%;border-radius:6px;object-fit:cover}.dm-feature-item h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-size:20px;line-height:1.15;margin:2px 0 3px}.dm-feature-item .dm-category{font-size:12px}
.dm-reviews{background:linear-gradient(100deg,#fff0f4,#fff8f9)}.dm-review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.dm-review-card{background:#fff;border:1px solid #f0e8eb;border-radius:8px;padding:22px;min-height:260px;box-shadow:0 3px 10px #22171d06;display:flex;flex-direction:column}.dm-review-card>:nth-last-child(2){margin-bottom:14px}.dm-review-brand{display:flex;align-items:center;gap:14px;font-size:20px}.dm-review-icon{flex:0 0 auto;width:80px;height:80px;border-radius:18px;display:grid;place-items:center;overflow:hidden;background:var(--soft)}.dm-review-icon img{width:100%;height:100%;object-fit:cover}.dm-review-icon i{color:var(--pink);font-size:40px}.dm-review-brand-info{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.dm-review-brand-rating{display:flex;align-items:center;gap:6px;margin-top:3px}.dm-review-brand-rating .dm-stars{margin-top:0}.dm-rating-value{font-weight:600}.dm-stars{color:#f5ae08;font-size:15px;letter-spacing:1px;margin-top:9px}.dm-stars span{color:#7c8290;letter-spacing:0;margin-left:4px}.dm-rating-label,.dm-review-count{color:#8a909e;font-size:14px;margin:0}.dm-best-for{color:#7e8490;font-size:14px;margin:13px 0 0}.dm-review-card>strong{display:block;font-size:16px}.dm-user-rating{display:flex;align-items:center;gap:8px;margin-top:10px}.dm-user-rating strong{font-size:17px}.dm-user-rating strong span{color:#f5ae08}.dm-user-rating>span{color:#8a909e;font-size:14px}.dm-review-cta{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;color:#fff!important;background:var(--pink);font-size:15px;font-weight:600;padding:12px 22px;margin-top:auto;box-shadow:0 7px 15px #f4517b2e;transition:.2s ease}.dm-review-cta:hover{background:var(--pink-dark);transform:translateY(-1px)}
.dm-advice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:11px}.dm-advice-card{display:flex;align-items:center;gap:12px;min-height:70px;padding:12px 14px;border:1px solid var(--line);border-radius:7px}.dm-advice-card:hover{border-color:#f3a8ba;box-shadow:0 5px 15px #f4517b14}.dm-advice-card>span:nth-child(2){flex:1}.dm-advice-card strong,.dm-advice-card small{display:block}.dm-advice-card strong{font-size:20px}.dm-advice-card small{color:var(--muted);font-size:14px;line-height:1.25;margin-top:2px}.dm-advice-card>i:last-child{color:var(--pink)}.dm-advice-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:var(--pink);background:var(--soft);font-size:21px}.dm-latest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 18px;margin-top:11px}.dm-latest-card img{width:100%;aspect-ratio:1/1;border-radius:6px;object-fit:cover;margin-bottom:6px}.dm-latest-card-media,.dm-latest-card-body{display:block}.dm-latest-card h3{font-size:20px;margin:2px 0}.dm-latest-card p:not(.dm-meta){color:var(--muted);font-size:14px;line-height:1.25;margin:0 0 3px}.dm-latest-card .dm-category{font-size:12px}.dm-guides{background:#f8f9fb}.dm-guide-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:50px;margin-top:10px}.dm-guide-grid a{display:flex;align-items:center;gap:15px;border-bottom:1px solid #e4e6eb;padding:9px 4px;font-size:16px}.dm-guide-grid a b{color:var(--pink);font-size:19px;font-weight:500}.dm-guide-grid a span{flex:1}.dm-guide-grid a i{color:var(--pink)}
.dm-footer{color:#e7e7eb;background:#17181e;padding-block:var(--section-space)}.dm-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:35px;padding-bottom:18px}.dm-brand-footer{color:#fff;margin-bottom:10px}.dm-footer p{color:#aeb0b9;font-size:15px;line-height:1.45}.dm-footer h3{color:#fff;font-size:20px;margin:3px 0 7px}.dm-footer-grid>div>a:not(.dm-brand){display:block;color:#afb1b9;font-size:15px;font-weight:500;margin:3px 0}.dm-socials{display:flex;gap:14px;color:#bfc1c8;font-size:16px}.dm-footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #34353c;padding-top:8px;color:#aeb0b9;font-size:13px}
@media(max-width:800px){.dm-header-inner{gap:15px}.dm-nav{display:none;position:absolute;top:calc(100% + 8px);right:24px;left:auto;width:220px;max-width:calc(100% - 48px);padding:8px;margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 36px rgba(21,26,44,.18);flex-direction:column;gap:2px;z-index:20}.dm-nav a{padding:10px 12px;border-radius:8px}.dm-nav a:hover{background:var(--soft)}.dm-nav.is-open{display:flex}.dm-header-actions{gap:0}.dm-header-actions>.dm-sign-in,.dm-header-actions>.dm-button,.dm-header-actions>form{display:none!important}.dm-nav-account{display:flex;flex-direction:column;gap:10px;margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}.dm-nav-account a,.dm-nav-account button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-radius:8px;background:none;font:inherit;font-weight:600;color:inherit;cursor:pointer}.dm-nav-account a:hover,.dm-nav-account button:hover{background:var(--soft);color:var(--pink)}.dm-nav-account a:first-child:not(:last-child),.dm-nav-account a:last-child:not(:first-child){text-align:center;border:1.5px solid var(--pink)}.dm-nav-account a:first-child:not(:last-child){background:var(--pink);color:#fff}.dm-nav-account a:first-child:not(:last-child):hover{background:var(--pink-dark);border-color:var(--pink-dark);color:#fff}.dm-nav-account a:last-child:not(:first-child){background:transparent;color:var(--pink)}.dm-nav-account a:last-child:not(:first-child):hover{background:var(--soft);color:var(--pink-dark)}#publicThemeToggle{margin-left:0}.dm-menu-toggle{display:block}.dm-hero-inner{min-height:350px}.dm-hero-copy{width:100%}.dm-hero-art{display:none}.dm-review-grid{grid-template-columns:repeat(2,1fr)}.dm-advice-grid{grid-template-columns:repeat(2,1fr)}.dm-footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){:root{--section-space:72px}.dm-container{width:min(calc(100% - 30px),var(--max))}.dm-brand{font-size:21px}.dm-eyebrow,.dm-category{font-size:12px}.dm-section h2,.dm-page-title{font-size:28px}.dm-article-body .article-content h2{font-size:28px}.dm-article-body .article-content h3{font-size:21px}.dm-feature-grid,.dm-latest-grid{grid-template-columns:1fr}.dm-feature-item{grid-template-columns:95px 1fr}.dm-feature-item img{width:95px}.dm-feature-main h3{font-size:21px}.dm-feature-item h3,.dm-review-brand,.dm-latest-card h3,.dm-advice-card strong,.dm-author-box h3,.dm-footer h3{font-size:18px}.dm-review-grid,.dm-advice-grid{grid-template-columns:1fr}.dm-guide-grid{grid-template-columns:1fr}.dm-footer-grid{grid-template-columns:1fr 1fr;gap:24px 14px}.dm-footer-grid>div:first-child{grid-column:1/-1}.dm-footer-bottom{gap:8px;flex-direction:column}.dm-section-heading{align-items:start;flex-direction:column;gap:5px}.dm-search-form{position:fixed;left:16px;right:16px;top:66px;width:auto}.dm-search-result{grid-template-columns:88px 1fr;gap:12px}.dm-search-bar{flex-direction:column}}

/* Supplied DateMantra hero artwork. The image contains the couple and pink
   background treatment, so the hero no longer needs a separate foreground photo. */
.dm-feature-item{grid-template-columns:auto minmax(0,1fr)}
.dm-feature-item img{width:auto;height:100px}
.dm-hero{min-height:360px;background-color:#fff0f4;background-image:url('../images/frontpage/hero-background.png');background-repeat:no-repeat;background-size:cover;background-position:center}.dm-hero-inner{min-height:360px}.dm-hero-art img{display:none}.dm-heart-doodle{top:52px}.dm-copy-doodle{top:47px}
@media(max-width:800px){.dm-hero{min-height:350px;background-position:68% center;position:relative}.dm-hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(255,240,244,.99) 0%,rgba(255,240,244,.97) 60%,rgba(255,240,244,.82) 80%,rgba(255,240,244,.5) 92%,rgba(255,240,244,.15) 100%)}.dm-hero-inner{min-height:350px}.dm-hero-copy{max-width:540px;position:relative;z-index:2}.dm-hero h1{font-size:36px;line-height:1.02;letter-spacing:-.04em}.dm-hero-reviews .dm-hero-copy{width:100%}}

/* Articles index (/articles), category listing (/category/{slug}) and
   single article (/articles/{slug}) pages — resources/views/articles/
   index.blade.php, categories/show.blade.php + show.blade.php. Reuses the
   .dm-latest-card grid (already styled above) for the "Articles" listing,
   category listing, and the "More Articles" block at the foot of a single
   article — resources/views/articles/_card.blade.php is the shared card
   partial all three include. */
.dm-page-head{padding-bottom:0}

/* Category quick-links bar (partials/category-links.blade.php), shown on
   the articles index and category listing pages. */
.dm-category-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.dm-category-link{display:inline-flex;align-items:center;background:var(--soft);color:var(--pink);font-size:13px;font-weight:700;padding:6px 13px;border-radius:20px}
.dm-category-link:hover{background:#ffe1e9}
.dm-category-link.is-active{background:var(--pink);color:#fff}

/* Non-home page header (articles index, category pages): sits directly
   under the site nav, so it drops the top half of .dm-section's padding
   that every home page section gets. */
.dm-page-head{padding-top:28px}
.dm-page-head .dm-page-title{margin-bottom:14px}
.dm-page-head .dm-hero-lede{margin-bottom:32px}
.dm-breadcrumb{margin-bottom:28px;font-size:14px;font-weight:400;color:#7b8190}
.dm-breadcrumb ol{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-size:inherit;color:inherit}
.dm-breadcrumb li{display:flex;align-items:center}
.dm-breadcrumb li+li::before{content:'›';margin:0 8px;color:#c9cdd6}
.dm-breadcrumb a{color:#7b8190;text-decoration:none}
.dm-breadcrumb a:hover{color:#f5356e}
.dm-breadcrumb span[aria-current]{color:#7b8190;font-weight:400}

/* Articles index grid (resources/views/articles/index.blade.php): wider
   gaps between cards, and more breathing room between each card's own
   image/category/title/excerpt/meta than the tighter .dm-latest-grid
   default used elsewhere (e.g. the homepage's "Latest Dating Advice"). */
.dm-articles-grid{gap:48px 24px}
.dm-articles-grid .dm-latest-card img{margin-bottom:14px}
.dm-articles-grid .dm-latest-card .dm-category{display:inline-block;margin-bottom:8px}
.dm-articles-grid .dm-latest-card h3{margin:0 0 8px}
.dm-articles-grid .dm-latest-card p:not(.dm-meta){margin:0 0 10px}

.dm-article-head{padding-top:28px;padding-bottom:28px}
.dm-article-title-row{display:flex;align-items:baseline;gap:12px}
.dm-article-title-row h1{flex:0 1 auto}
.dm-article-edit-link{flex:0 0 auto;color:#7b8190;font-size:20px;line-height:1}
.dm-article-edit-link:hover{color:#f5356e}
.dm-article-edit-link:focus-visible{outline:2px solid #f5356e;outline-offset:3px;border-radius:2px}
.dm-article-head h1{font-size:52px;line-height:1.15;letter-spacing:-.03em;margin:8px 0 14px}
.dm-article-cover{margin-bottom:36px}
.dm-article-cover img{width:100%;max-height:460px;object-fit:cover;border-radius:10px;display:block}
.dm-article-body{margin:0 auto 40px}
.dm-article-body .article-content{font-size:18px;line-height:1.75}
.dm-article-body .article-content h2{font-size:32px;margin:36px 0 14px}
.dm-article-body .article-content h3{font-size:24px;margin:28px 0 12px}
.dm-article-body .article-content p{margin:0 0 18px}
.dm-like-bar{display:flex;align-items:center;gap:16px;margin-top:32px;padding-block:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dm-like-button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--pink);border-radius:24px;padding:10px 20px;color:var(--pink);font-weight:600;font-size:15px;background:transparent;transition:.2s ease}
.dm-like-button:hover{background:var(--soft)}
.dm-like-button.is-liked{background:var(--pink);border-color:var(--pink);color:#fff}
.dm-like-button i{font-size:17px}
.dm-like-bar-count{color:var(--muted);font-size:15px;font-weight:600}
.dm-article-tags{display:flex;flex-wrap:wrap;gap:8px;margin:32px 0 0}
.dm-tag{background:var(--soft);color:var(--pink);font-size:13px;font-weight:700;padding:6px 13px;border-radius:20px}
.dm-author-box{display:flex;align-items:center;gap:16px;margin-top:32px;padding:20px;border:1px solid var(--line);border-radius:10px}
.dm-author-avatar{width:56px;height:56px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:20px;flex-shrink:0;overflow:hidden}
.dm-author-avatar img{width:100%;height:100%;object-fit:cover}
.dm-author-box h3{margin:0 0 2px;font-size:20px}
.dm-author-box p{margin:0;color:var(--muted);font-size:14px}
.dm-comments{background:#f8f9fb}
.dm-comments .dm-container{}
.dm-comment-list{display:flex;flex-direction:column;gap:16px;margin:24px 0 0}
.dm-comment{padding:18px;background:#fff;border:1px solid var(--line);border-radius:10px}
.dm-comment-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px}
.dm-comment-head strong{font-size:16px}
.dm-comment-head span{color:var(--muted);font-size:13px}
.dm-comment p{margin:0;font-size:16px;line-height:1.5}
.dm-comment-form{margin-top:24px}
.dm-comment-form textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;resize:vertical;min-height:110px;margin-bottom:10px}
.dm-comment-signin{margin-top:24px;padding:18px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center;font-size:14px}
.dm-auth-card{max-width:420px;margin:0 auto;padding:32px;border:1px solid var(--line);border-radius:12px}
.dm-auth-card p{color:var(--muted);margin:0 0 24px}
.dm-auth-form label{display:block;font-weight:600;font-size:14px;margin:0 0 6px}
.dm-auth-form input[type=email],.dm-auth-form input[type=password],.dm-auth-form input[type=text]{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;margin-bottom:16px}
.dm-auth-links{display:flex;justify-content:space-between;font-size:14px;margin:-6px 0 20px}
.dm-auth-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:22px 0}
.dm-auth-divider::before,.dm-auth-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.dm-auth-social{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border:1px solid var(--line);border-radius:24px;padding:12px;font-weight:600;font-size:15px;background:#fff}
.dm-auth-social:hover{background:#fafafa}
.dm-auth-social img,.dm-auth-social svg{width:18px;height:18px}
.dm-city-panel{position:absolute;z-index:20;top:calc(100% - 12px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.12);max-height:220px;overflow-y:auto}
.dm-city-option{padding:9px 14px;font-size:14px;cursor:pointer}
.dm-city-option:hover{background:var(--soft)}
.dm-city-empty{padding:10px 14px;font-size:13px;color:var(--muted)}
.dm-form-error{color:var(--pink);font-size:13px;margin:-10px 0 14px}
.dm-auth-remember{display:flex;align-items:center;gap:8px;font-weight:400;font-size:14px;margin-bottom:20px}
.dm-auth-remember input{width:auto;margin:0}
.dm-auth-card .dm-button{width:100%}
/* frontpage.css sets `.dm-frontpage a { color: inherit; text-decoration:
   none; }` site-wide (see :root block above), which otherwise leaves a
   comment-body link (Comment::linkedBody()) looking like plain text —
   same reason article body links needed their own override
   (public/css/article-content.css). Scoped to the whole comments section
   so it also covers "Sign in" and the admin "Edit" link, per request. */
.dm-comments a{color:var(--pink);text-decoration:underline}
.dm-comments a:hover,.dm-comments a:focus-visible{color:var(--pink-dark)}
.dm-meta-comments-link{color:var(--pink);font-weight:400;text-decoration:none}
.dm-latest-card-compact h3{margin-bottom:0}
.dm-related-grid{gap:var(--card-gap-y) var(--card-gap-x)}
.dm-meta-comments-link:hover,.dm-meta-comments-link:focus-visible{color:var(--pink-dark);text-decoration:underline}
/* Styled as a small pill/chip, not plain text like the rest of the meta
   line — a background and padding read as "clickable" the way inline
   text between bullets doesn't. Hover previews the same solid-pink fill
   the liked state uses, so the affordance and the "already liked" state
   share one visual language. */
.dm-like-meta-link{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:4px 12px;border-radius:20px;background:var(--soft);color:var(--pink);font-weight:600;font-size:13px;text-decoration:none;vertical-align:middle;transition:.15s ease}
.dm-like-meta-link:hover,.dm-like-meta-link:focus-visible,.dm-like-meta-link.is-liked{background:var(--pink);color:#fff}
.dm-like-meta-link i{font-size:14px}
.dm-comment-actions{display:flex;gap:14px;margin-top:10px}
.dm-comment-actions button.dm-comment-reply-toggle{background:none;border:0;padding:0;font:inherit;font-weight:600;font-size:13px;color:var(--pink);cursor:pointer}
.dm-comment-actions button.dm-comment-reply-toggle:hover{color:var(--pink-dark)}
.dm-comment-edit-link{font-size:13px;font-weight:600;text-decoration:none}
.dm-comment .dm-comment-reply-form{margin-top:12px}
.dm-comment .dm-comment-reply-form textarea{min-height:70px}
.dm-comment-replies{display:flex;flex-direction:column;gap:16px;margin:16px 0 0;padding-left:20px;border-left:2px solid var(--line)}
.dm-pagination{margin-top:28px}
.dm-pagination .pagination{display:flex;flex-wrap:wrap;justify-content:center;list-style:none;gap:6px;margin:0;padding:0}
.dm-pagination .page-link{display:inline-flex;min-width:38px;height:38px;padding:0 10px;align-items:center;justify-content:center;border-radius:8px!important;border:1px solid var(--line);font-size:14px;color:var(--ink)}
.dm-pagination .page-link:hover{border-color:var(--pink);color:var(--pink);background:none}
.dm-pagination .page-item.active .page-link{background:var(--pink);border-color:var(--pink);color:#fff}
.dm-pagination .page-item.disabled .page-link{color:#c7c9d1}
@media(max-width:800px){.dm-article-head h1{font-size:36px}.dm-article-cover img{max-height:280px}}

/* Public-site dark theme. The navbar toggle changes data-bs-theme on <html>;
   these overrides keep the DateMantra palette coherent beyond Bootstrap's
   built-in form and utility colors. */
[data-bs-theme="dark"]{color-scheme:dark;--ink:#f3f5fa;--muted:#b8c0ce;--line:#303846;--soft:#30202c}
[data-bs-theme="dark"] body.dm-frontpage{background:#10131a}
[data-bs-theme="dark"] .dm-header{background:#151923;border-color:#303846}
[data-bs-theme="dark"] .dm-search-form,[data-bs-theme="dark"] .dm-search-bar input{background:#1a202b;border-color:#3a4454;color:var(--ink)}
[data-bs-theme="dark"] .dm-theme-toggle{background:#202633;color:#f5c55f;border-color:#3a4454}
[data-bs-theme="dark"] .dm-theme-toggle:hover{background:#2a3140}
[data-bs-theme="dark"] .dm-hero{background-color:#1d1722;background-image:linear-gradient(90deg,rgba(24,18,29,.91),rgba(24,18,29,.55)),url('../images/frontpage/hero-background.png')}
[data-bs-theme="dark"] .dm-hero::before{display:none}
[data-bs-theme="dark"] .dm-hero-reviews{background-color:#1d1722;background-image:linear-gradient(90deg,rgba(24,18,29,.91),rgba(24,18,29,.55)),url('../images/frontpage/dating-app-reviews-hero-bg.png')}
[data-bs-theme="dark"] .dm-hero-lede,[data-bs-theme="dark"] .dm-hero-note{color:#d2d7e1}
[data-bs-theme="dark"] .dm-reviews{background:linear-gradient(100deg,#221722,#171b26)}
[data-bs-theme="dark"] .dm-review-card,[data-bs-theme="dark"] .dm-comment{background:#1a202b;border-color:#354050;box-shadow:none}
[data-bs-theme="dark"] .dm-rating-label,[data-bs-theme="dark"] .dm-review-count,[data-bs-theme="dark"] .dm-best-for,[data-bs-theme="dark"] .dm-user-rating>span,[data-bs-theme="dark"] .dm-meta{color:#b8c0ce}
[data-bs-theme="dark"] .dm-guides,[data-bs-theme="dark"] .dm-comments{background:#171c26}
[data-bs-theme="dark"] .dm-guide-grid a{border-color:#303846}
[data-bs-theme="dark"] .dm-author-box,[data-bs-theme="dark"] .dm-comment-signin,[data-bs-theme="dark"] .dm-auth-card{border-color:#354050;background:#171c26}
[data-bs-theme="dark"] .dm-comment-form textarea,[data-bs-theme="dark"] .dm-auth-form input[type=email],[data-bs-theme="dark"] .dm-auth-form input[type=password],[data-bs-theme="dark"] .dm-auth-form input[type=text]{background:#1a202b;color:var(--ink);border-color:#3a4454}
[data-bs-theme="dark"] .dm-auth-social{background:#1a202b;border-color:#3a4454;color:var(--ink)}
[data-bs-theme="dark"] .dm-auth-social:hover{background:#20273350}
[data-bs-theme="dark"] .dm-city-panel{background:#1a202b;border-color:#3a4454}
[data-bs-theme="dark"] .dm-city-option:hover{background:#20273350}
[data-bs-theme="dark"] #country_id{background:#1a202b;color:var(--ink);border-color:#3a4454}
[data-bs-theme="dark"] .dm-comment-replies{border-color:#354050}
[data-bs-theme="dark"] .dm-comment-edit-link{color:#9aa4b2}
[data-bs-theme="dark"] .dm-breadcrumb,[data-bs-theme="dark"] .dm-breadcrumb a,[data-bs-theme="dark"] .dm-breadcrumb span[aria-current],[data-bs-theme="dark"] .dm-article-edit-link{color:#b8c0ce}
[data-bs-theme="dark"] .dm-category-link:hover{background:#4a2638}
[data-bs-theme="dark"] .dm-pagination .page-link{background:#1a202b;border-color:#3a4454;color:var(--ink)}
[data-bs-theme="dark"] .dm-pagination .page-item.disabled .page-link{color:#737d8d}
@media(max-width:800px){[data-bs-theme="dark"] .dm-nav{background:#151923;border-color:#303846}[data-bs-theme="dark"] .dm-nav a:hover{background:#1f2430}}

/* Category destinations always use the DateMantra brand pink, including
   homepage cards, article badges and category navigation — but NOT footer
   links, which keep the footer's own plain link colour (see the
   .dm-footer-grid override right below, scoped to the footer only). */
.dm-frontpage a[href*="/category/"]{color:var(--pink)}
.dm-frontpage .dm-category-pill{color:var(--pink);background:var(--soft);border:1px solid #f3a8ba}
.dm-advice-card[href*="/category/"] small{color:var(--pink-dark)}
.dm-footer-grid>div>a[href*="/category/"]{color:#afb1b9}
.dm-category-link.is-active{background:#ffe1e9;color:var(--pink)}

/* Dating App Reviews listing (resources/views/dating-app-reviews/index.blade.php).
   Unlike hero-background.png (composed with a plain text-safe zone), this photo's
   couple/app-icon collage runs right under where the copy sits, so a left-to-right
   pink scrim is layered under the photo (same idea as the dark-mode rule below)
   to keep the h1/lede legible regardless of what's in the photo underneath. */
.dm-hero-reviews{background-color:#fff0f4;background-image:linear-gradient(90deg,rgba(255,240,244,.94) 0%,rgba(255,240,244,.85) 32%,rgba(255,240,244,.4) 50%,rgba(255,240,244,0) 66%),url('../images/frontpage/dating-app-reviews-hero-bg.png')}
.dm-hero-reviews .dm-hero-copy{width:40%}
.dm-sort{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);white-space:nowrap}
.dm-sort select{width:auto;border-radius:8px;border-color:var(--line)}
.dm-review-list{display:flex;flex-direction:column;gap:14px}
.dm-review-row{display:flex;align-items:center;gap:24px;padding:18px 22px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 3px 10px #22171d06}
.dm-review-row-brand{display:flex;align-items:center;gap:14px;flex:1 1 260px;min-width:0}
.dm-review-row-logo{flex:0 0 72px;width:72px;height:72px;border-radius:16px;display:grid;place-items:center;font-size:30px}
.dm-review-row-brand strong{display:block;font-size:17px}
.dm-review-row-brand p{margin:2px 0 0;color:var(--muted);font-size:14px;line-height:1.35}
.dm-review-row-brand .dm-review-row-tagline{color:var(--ink)}
.dm-review-row-rating{flex:0 0 140px;text-align:center}
.dm-review-row-rating .dm-stars{color:#f5ae08;font-size:14px}
.dm-review-row-rating-value{font-weight:700;margin-left:4px}
.dm-review-row-bestfor{flex:0 0 190px}
.dm-review-row-users{flex:0 0 140px;text-align:center}
.dm-review-row-users .dm-stars{color:#f5ae08;font-size:14px}
.dm-review-row-cta{flex:0 0 150px}
.dm-review-row-cta .dm-button{margin:0;width:100%}
@media (max-width:960px){
    .dm-review-row{flex-wrap:wrap;gap:14px 20px}
    .dm-review-row-rating,.dm-review-row-bestfor,.dm-review-row-users{flex:1 1 45%;text-align:left}
    .dm-review-row-cta{flex:1 1 100%}
}
[data-bs-theme="dark"] .dm-review-row{background:#1a202b;border-color:#354050;box-shadow:none}
[data-bs-theme="dark"] .dm-review-row-brand p,[data-bs-theme="dark"] .dm-review-row-users{color:#b8c0ce}
[data-bs-theme="dark"] .dm-sort{color:#b8c0ce}
[data-bs-theme="dark"] .dm-sort select{background:#1a202b;color:var(--ink);border-color:#3a4454}

/* Single dating app review page (resources/views/dating-app-reviews/show.blade.php).
   Static visual template only — content is illustrative, see that file's
   top comment. Section markers below (dm-app-head/hero/editorial/…) match
   the page structure top to bottom.

   Sections on this page stack directly with no inline padding overrides —
   .dm-app-head/.dm-app-hero-grid/.dm-app-editorial/.dm-app-features/
   .dm-app-screenshots each render exactly once, but the plain (no-background)
   sections in between (pros/cons, full review, user reviews) are each
   conditional, so any pair of them can end up adjacent. Two plain sections
   back to back would otherwise stack a full --section-space at both the end
   of one and the start of the next, doubling the gap — this rule collapses
   that pair down to one --section-space. It never touches a background
   section (.dm-app-editorial/.dm-app-features/.dm-app-screenshots) on either
   side of the pair: those need their own full top+bottom padding for
   internal breathing room, and the plain section right after one of them
   needs its own full top padding too, since the background section's bottom
   padding is invisible padding inside the tinted box, not a visible gap. */
/* .dm-section:not(.dm-app-editorial):not(.dm-app-features):not(.dm-app-screenshots)+.dm-section:not(.dm-app-editorial):not(.dm-app-features):not(.dm-app-screenshots){padding-top:0} */

.dm-app-head{padding-top:28px}
.dm-app-head .dm-breadcrumb{margin-bottom:var(--section-space)}
.dm-app-hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:44px;align-items:start;padding-bottom:var(--section-space)}
.dm-app-title-row{display:flex;align-items:center;gap:20px;margin-bottom:18px}
.dm-app-icon{flex:0 0 auto;width:96px;height:96px;border-radius:22px;background:var(--pink);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:34px;box-shadow:0 10px 24px #f4517b33;overflow:hidden}
.dm-app-icon:has(img){background:none;box-shadow:none;border:1px solid var(--line)}
.dm-app-icon img{width:100%;height:100%;object-fit:cover}
.dm-app-hero-grid.dm-app-hero-grid--no-art{grid-template-columns:1fr;max-width:640px}
.dm-app-icon span{font-size:13px;font-weight:800;letter-spacing:.02em}
.dm-app-editor-badge{display:inline-flex;align-items:center;gap:6px;background:#fff3d6;color:#a8730a;font-size:12px;font-weight:700;padding:6px 12px;border-radius:14px;margin-bottom:8px}
.dm-app-editor-badge i{color:#e6a817}
.dm-app-hero-grid h1{font-size:44px;line-height:1.05;letter-spacing:-.04em;margin:0 0 6px}
.dm-app-tagline{font-size:19px;font-weight:600;color:var(--ink);margin:0}
.dm-app-desc{color:var(--muted);font-size:16px;line-height:1.55;margin:0 0 20px;max-width:52ch}
.dm-app-rating-row{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.dm-app-rating-row .dm-stars{color:#f5ae08;font-size:19px;margin-top:0;line-height:1}
.dm-app-rating-row strong{font-size:18px;line-height:1}
.dm-app-rating-row span{color:var(--muted);font-size:14px;line-height:1}
.dm-app-stats{display:flex;gap:28px;margin-bottom:26px}
.dm-app-stat{display:flex;align-items:center;gap:10px}
.dm-app-stat i{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:50%;background:var(--soft);color:var(--pink);font-size:17px}
.dm-app-stat strong{display:block;font-size:15px}
.dm-app-stat small{display:block;color:var(--muted);font-size:13px}
.dm-app-ctas{display:flex;flex-wrap:wrap;gap:12px}
.dm-app-store-button{display:inline-flex;align-items:center;gap:10px;border:0;border-radius:10px;padding:10px 18px;background:#111;color:#fff!important;font-size:13px;line-height:1.25;transition:.15s ease}
.dm-app-store-button:hover{background:#000;transform:translateY(-1px)}
.dm-app-store-button i{font-size:22px}
.dm-app-store-button strong{display:block;font-size:15px;font-weight:700}
.dm-app-webapp-button{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:10px;padding:10px 20px;background:var(--pink);color:#fff!important;font-weight:700;font-size:15px;transition:.15s ease}
.dm-app-webapp-button:hover{background:var(--pink-dark);transform:translateY(-1px)}
.dm-app-webapp-button small{display:block;font-weight:400;font-size:11px;opacity:.85}
.dm-app-hero-art{position:relative}
.dm-app-hero-art img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:20px;box-shadow:0 14px 36px rgba(21,26,44,.12)}

.dm-app-editorial{background:#f8f9fb}
.dm-app-editorial-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:44px;align-items:center;margin-top:14px}
.dm-app-editorial-copy p{color:var(--muted);font-size:16px;line-height:1.65;margin:0 0 16px}
.dm-app-rating-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}
.dm-app-rating-card>p{color:var(--muted);font-size:14px;font-weight:600;margin:0 0 6px}
.dm-app-rating-score{display:flex;align-items:baseline;gap:10px;margin-bottom:2px}
.dm-app-rating-score strong{font-size:40px;letter-spacing:-.03em}
.dm-app-rating-score span{color:var(--muted);font-size:18px}
.dm-app-rating-card .dm-stars{color:#f5ae08;font-size:18px;margin:2px 0 4px}
.dm-app-rating-based{color:var(--muted);font-size:13px;margin:0 0 20px}
.dm-app-rating-bar-row{display:grid;grid-template-columns:120px 1fr 30px;align-items:center;gap:10px;margin-bottom:12px;font-size:14px}
.dm-app-rating-bar-row span:first-child{color:var(--muted)}
.dm-app-rating-bar{height:6px;border-radius:4px;background:var(--line);overflow:hidden}
.dm-app-rating-bar i{display:block;height:100%;background:var(--pink);border-radius:4px}
.dm-app-rating-bar-row strong{text-align:right;font-size:14px}

.dm-app-proscons-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:14px}
.dm-app-proscons-card{border-radius:14px;padding:24px;border:1px solid var(--line)}
.dm-app-proscons-card.is-pros{background:#f0fdf4;border-color:#bbf0cc}
.dm-app-proscons-card.is-cons{background:#fef2f2;border-color:#fbcfcf}
.dm-app-proscons-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:18px;font-weight:700}
.dm-app-proscons-head i{width:26px;height:26px;flex:0 0 26px;display:grid;place-items:center;border-radius:50%;color:#fff;font-size:15px}
.is-pros .dm-app-proscons-head i{background:#16a34a}
.is-cons .dm-app-proscons-head i{background:#dc2626}
.dm-app-proscons-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.dm-app-proscons-card li{display:flex;gap:10px;font-size:15px;line-height:1.4}
.is-pros li i{color:#16a34a}
.is-cons li i{color:#dc2626}
.dm-app-proscons-card li i{flex:0 0 26px;display:grid;place-items:center;margin-top:3px;font-size:13px}

.dm-app-features{background:#f8f9fb}
.dm-app-features-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.dm-app-features-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-top:24px;text-align:center}
.dm-app-feature i{width:52px;height:52px;display:grid;place-items:center;margin:0 auto 10px;border-radius:50%;background:var(--soft);color:var(--pink);font-size:22px}
.dm-app-feature strong{display:block;font-size:15px;margin-bottom:4px}
.dm-app-feature small{color:var(--muted);font-size:13px;line-height:1.3;display:block}

.dm-app-screenshots{background:#f8f9fb}
.dm-app-screenshots-track{position:relative;display:flex;gap:40px;overflow-x:auto;margin-top:24px;padding-bottom:8px;scroll-snap-type:x mandatory;scroll-behavior:smooth;--dm-app-screenshot-h:400px}
.dm-app-screenshot-wrap{flex:0 0 auto;display:flex;flex-direction:column;gap:10px;scroll-snap-align:start}
.dm-app-screenshot-wrap:first-child{margin-left:auto}
.dm-app-screenshot-wrap:last-child{margin-right:auto}
.dm-app-screenshot{height:var(--dm-app-screenshot-h);border-radius:28px;background:#1c2030;padding:10px;display:flex;flex-direction:column;align-items:center;box-shadow:0 10px 28px rgba(15,23,42,.18);position:relative}
.dm-app-screenshot-notch{position:absolute;left:50%;top:10px;transform:translateX(-50%);width:46px;height:13px;border-radius:8px;background:#000;z-index:1}
.dm-app-screenshot-screen{flex:1;min-height:0;display:flex;border-radius:20px;overflow:hidden;background:var(--soft)}
.dm-app-screenshot-screen img{height:calc(var(--dm-app-screenshot-h) - 32px);width:auto;object-fit:contain;display:block}
.dm-app-screenshot-home{width:56px;height:4px;border-radius:3px;background:#3a4050;flex:0 0 auto;margin-top:8px}
.dm-app-screenshot-caption{margin:0;font-size:13px;color:var(--muted);text-align:center}

/* Desktop/web screenshot frame — same fixed height as the phone frame, width auto from the image's own
   aspect ratio (no crop/stretch). Images get an explicit calc() height rather than a percentage one,
   because a percentage/flex-resolved height isn't available yet during the ancestor's shrink-to-fit width
   pass, which otherwise made the frame hug the image's full native width instead of its scaled-down one. */
.dm-app-screenshot-desktop{display:flex;flex-direction:column;align-items:stretch;height:var(--dm-app-screenshot-h)}
.dm-app-screenshot-desktop-screen{flex:1;min-height:0;display:flex;background:#1c2030;border-radius:12px;padding:10px;box-shadow:0 10px 28px rgba(15,23,42,.18)}
.dm-app-screenshot-desktop-screen img{height:calc(var(--dm-app-screenshot-h) - 36px);width:auto;object-fit:contain;border-radius:5px;display:block;background:var(--soft)}
.dm-app-screenshot-desktop-base{flex:0 0 auto;width:var(--dm-app-screenshot-w);height:14px;margin-top:2px;background:#0f1219;border-radius:0 0 8px 8px;position:relative}
.dm-app-screenshot-desktop-base span{position:absolute;left:50%;top:0;transform:translateX(-50%);width:64px;height:6px;background:#232838;border-radius:0 0 6px 6px;display:block}
.dm-app-screenshots-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px}
.dm-app-screenshots-arrow{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--ink)}
.dm-app-screenshots-arrow:hover{border-color:var(--pink);color:var(--pink)}

.dm-app-user-reviews-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}
.dm-app-user-reviews-sub{color:var(--muted);font-size:16px;line-height:1.4;margin:4px 0 0}

.dm-app-user-review-list-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.dm-app-user-review-list-head h3{margin:0;font-size:20px;font-weight:700}
.dm-app-user-review-sort{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px}
.dm-app-user-review-sort select{border:1px solid var(--line);border-radius:8px;padding:6px 10px;font:inherit;color:var(--ink);background:#fff}

.dm-app-user-review-list{display:flex;flex-direction:column;gap:16px}
.dm-app-user-review-item{display:flex;gap:16px;padding:22px;border:1px solid var(--line);border-radius:10px;background:#fff}
.dm-app-user-review-avatar{flex:0 0 auto;width:48px;height:48px;border-radius:50%;background:var(--soft);color:var(--pink);display:grid;place-items:center;font-weight:700;font-size:18px}
.dm-app-user-review-body{flex:1;min-width:0}
.dm-app-user-review-byline{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:2px;margin-bottom:6px}
.dm-app-user-review-byline strong{font-size:15px}
.dm-app-user-review-country,.dm-app-user-review-time{color:var(--muted);font-size:13px}
.dm-app-user-review-item .dm-stars{color:#f5ae08;font-size:15px;display:block;margin:6px 0}
.dm-app-user-review-title{display:block;font-size:16px;margin-bottom:4px}
.dm-app-user-review-item p{margin:0;color:var(--ink);font-size:14.5px;line-height:1.6}
.dm-app-user-review-actions{display:flex;align-items:center;gap:14px;margin-top:14px}
.dm-app-review-helpful{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--pink);border-radius:20px;padding:6px 14px;color:var(--pink);background:transparent;font-size:13px;font-weight:600;cursor:pointer}
.dm-app-review-helpful:hover{background:var(--soft)}
.dm-app-review-actions-divider{width:1px;height:16px;background:var(--line)}
.dm-app-review-reply,.dm-app-review-report{border:0;background:none;padding:0;color:var(--muted);font-size:13px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.dm-app-review-reply:hover,.dm-app-review-report:hover{color:var(--pink)}
.dm-app-review-report{margin-left:auto}

@media(max-width:960px){
    .dm-app-hero-grid{grid-template-columns:1fr}
    .dm-app-editorial-grid{grid-template-columns:1fr}
    .dm-app-features-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:620px){
    .dm-app-proscons-grid{grid-template-columns:1fr}
    .dm-app-features-grid{grid-template-columns:repeat(2,1fr)}
    .dm-app-ctas{flex-direction:column;align-items:stretch}
    .dm-app-rating-bar-row{grid-template-columns:90px 1fr 26px}
    .dm-app-icon{width:72px;height:72px;border-radius:18px;font-size:26px}
    .dm-app-hero-grid h1{font-size:32px}
    .dm-app-tagline{font-size:16px}
    .dm-app-user-rating-summary{gap:20px}
    .dm-app-review-report{margin-left:0}
}

[data-bs-theme="dark"] .dm-app-icon:has(img){border-color:#354050}
[data-bs-theme="dark"] .dm-app-editorial,[data-bs-theme="dark"] .dm-app-features,[data-bs-theme="dark"] .dm-app-screenshots{background:#171c26}
[data-bs-theme="dark"] .dm-app-rating-card,[data-bs-theme="dark"] .dm-app-screenshots-arrow{background:#1a202b;border-color:#354050}
[data-bs-theme="dark"] .dm-app-proscons-card.is-pros{background:#132318;border-color:#1f4a2c}
[data-bs-theme="dark"] .dm-app-proscons-card.is-cons{background:#2a1616;border-color:#4a2323}
[data-bs-theme="dark"] .dm-app-rating-based,[data-bs-theme="dark"] .dm-app-desc,[data-bs-theme="dark"] .dm-app-stat small,[data-bs-theme="dark"] .dm-app-feature small,[data-bs-theme="dark"] .dm-app-user-review-country,[data-bs-theme="dark"] .dm-app-user-review-time{color:#b8c0ce}
[data-bs-theme="dark"] .dm-app-user-review-item{background:#1a202b;border-color:#354050}
[data-bs-theme="dark"] .dm-app-user-review-sort select{background:#1a202b;color:var(--ink);border-color:#3a4454}
[data-bs-theme="dark"] .dm-app-rating-bar{background:#303846}
[data-bs-theme="dark"] .dm-app-editor-badge{background:#3a2f14;color:#f5c55f}

/* Full Editorial Review body (§16.7) — reuses article-content.css typography via the shared .article-content class. */
.dm-app-full-review{margin:0 auto}

/* User rating summary + distribution (§10, §12, §23) */
.dm-app-user-rating-summary{display:flex;flex-wrap:wrap;align-items:stretch;gap:24px;margin-bottom:32px}
.dm-app-user-rating-score{text-align:center;flex:0 0 auto;min-width:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px 32px;border-radius:16px;background:var(--soft)}
.dm-app-user-rating-score strong{display:block;font-size:40px;letter-spacing:-.03em;line-height:1}
.dm-app-user-rating-based{color:var(--muted);font-size:13px}
.dm-app-user-rating-dist{flex:1 1 320px;min-width:220px;display:flex;flex-direction:column;justify-content:center;gap:8px}
.dm-app-user-rating-dist-row{display:grid;grid-template-columns:58px 1fr 40px;align-items:center;gap:12px;font-size:13px;color:var(--muted)}
.dm-app-user-rating-dist-bar{height:8px;border-radius:4px;background:var(--line);overflow:hidden}
.dm-app-user-rating-dist-bar i{display:block;height:100%;background:var(--pink);border-radius:4px}
.dm-app-no-reviews{padding:20px;border:1px dashed var(--line);border-radius:10px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px;margin-bottom:24px}

/* Write/Edit review inline form */
.dm-review-form{display:none;padding:20px;border:1px solid var(--line);border-radius:10px;margin-bottom:24px;background:var(--soft)}
.dm-review-form.is-open{display:block}
.dm-review-form-stars{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px;font-size:26px;margin-bottom:14px}
.dm-review-form-stars input{position:absolute;opacity:0;pointer-events:none}
.dm-review-form-stars label{color:var(--line);cursor:pointer}
.dm-review-form-stars input:checked ~ label,.dm-review-form-stars label:hover,.dm-review-form-stars label:hover ~ label{color:#f5ae08}
.dm-review-form input[type=text],.dm-review-form input[type=email],.dm-review-form textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;margin-bottom:12px;background:var(--dm-surface,#fff)}
.dm-review-form textarea{min-height:100px;resize:vertical}
.dm-review-form label{font-weight:600;font-size:14px;display:block;margin-bottom:6px}
.dm-honeypot-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}
[data-bs-theme="dark"] .dm-review-form input[type=text],[data-bs-theme="dark"] .dm-review-form input[type=email],[data-bs-theme="dark"] .dm-review-form textarea{background:#1a202b;color:var(--ink);border-color:#3a4454}
[data-bs-theme="dark"] .dm-app-user-rating-dist-bar{background:#303846}
[data-bs-theme="dark"] .dm-app-no-reviews{border-color:#354050}

/* Sitemap page (resources/views/sitemap.blade.php) */
.dm-sitemap-head-inner{text-align:center;max-width:560px;margin:0 auto}
.dm-sitemap-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 16px;border-radius:20px;background:var(--soft);color:var(--pink);border:1px solid #f3a8ba;font-size:13px;font-weight:700;margin-bottom:14px}
.dm-sitemap-lede{color:var(--muted);font-size:17px;margin:8px 0 0}
.dm-sitemap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.dm-sitemap-card{border:1px solid var(--line);border-radius:14px;padding:22px;background:#fff}
.dm-sitemap-card-head{display:flex;align-items:center;gap:12px;padding-bottom:16px;margin-bottom:2px;border-bottom:1px solid var(--line)}
.dm-sitemap-card-head h2{font-size:18px;margin:0;font-weight:700}
.dm-sitemap-icon{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:10px;color:var(--pink);background:var(--soft);font-size:18px}
.dm-sitemap-links{display:flex;flex-direction:column}
.dm-sitemap-link{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 2px;border-bottom:1px solid var(--line);font-size:15px}
.dm-sitemap-link:last-child{border-bottom:0}
.dm-sitemap-link:hover{color:var(--pink)}
.dm-sitemap-link i{color:var(--muted);font-size:13px}
.dm-sitemap-link:hover i{color:var(--pink)}
.dm-sitemap-empty{color:var(--muted);font-size:14px;padding:13px 2px;margin:0}
[data-bs-theme="dark"] .dm-sitemap-card{background:#1a202b;border-color:#354050}
[data-bs-theme="dark"] .dm-sitemap-card-head{border-color:#354050}
[data-bs-theme="dark"] .dm-sitemap-link{border-color:#354050}
@media(max-width:800px){.dm-sitemap-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.dm-sitemap-grid{grid-template-columns:1fr}}
