/* Dubai Luxury Service — custom styles (hand-written; ported from src/index.css).
   Utility classes live in style.css (static, pre-compiled — NO Tailwind at runtime). */

:root {
  --font-editorial: 'Cormorant Garamond', Georgia, serif;
  --font-modern: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
}

body { font-family: var(--font-modern); }
h1, h2, h3, .font-editorial { font-family: var(--font-editorial); }

/* Page background — gradient colours are set per palette via CSS variables on #site-root
   (see $COLOR_THEMES in includes/data.php and setTheme() in assets/js/app.js) */
.site-root {
  background-image: linear-gradient(to bottom, var(--g-from, #300913), var(--g-via, #3a0b19), var(--g-to, #261008));
}

/* Custom luxury scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: rgba(48, 9, 19, 0.8); }
::-webkit-scrollbar-thumb { background: rgba(234,88,12, 0.4); border-radius: 9999px; }
::-webkit-scrollbar-thumb:hover { background: rgba(234,88,12, 0.7); }

/* Dotted grain overlay for editorial tactile feel */
.bg-grain {
  background-image: radial-gradient(rgba(245, 230, 232, 0.05) 1px, transparent 0);
  background-size: 24px 24px;
}

@keyframes marquee { 0% { transform: translateX(0%); } 100% { transform: translateX(-50%); } }
.animate-marquee { display: inline-flex; animation: marquee 28s linear infinite; }
.animate-marquee:hover { animation-play-state: paused; }

/* Print: comp card only */
@media print {
  header, footer, nav { display: none !important; }
}

/* Single model sheet: four photos, progressive loading and contact actions. */
.comp-overlay { position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:16px; backdrop-filter:blur(12px); }
.comp-panel { width:100%; max-width:1024px; max-height:92vh; max-height:92dvh; overflow:auto; overscroll-behavior:contain; border:1px solid rgba(234,88,12,.4); border-radius:24px; color:#fce7f3; background:linear-gradient(145deg,#330815,#240610 60%,#261008); }
.comp-header { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px; background:#25050f; border-bottom:1px solid rgba(234,88,12,.25); }
.comp-brand { font-size:10px; letter-spacing:.16em; color:#e8b98e; }
.comp-header h2 { margin:3px 0 0; font-size:30px; line-height:1.1; color:#fff; }
.comp-tools { display:flex; gap:8px; flex-shrink:0; }
.comp-tools button { display:flex; align-items:center; justify-content:center; width:36px; height:36px; padding:8px; border-radius:9px; background:#420d1c; color:#e8b98e; }
.comp-content { padding:24px; }
.comp-photo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.comp-photo { position:relative; margin:0; overflow:hidden; aspect-ratio:3/4; border-radius:16px; background:#1f030a; border:1px solid rgba(234,88,12,.3); }
.comp-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.comp-photo>span { position:absolute; top:8px; left:8px; padding:3px 6px; border-radius:4px; font-size:9px; color:#e8b98e; background:rgba(32,4,12,.8); }
.comp-more { display:block; width:100%; margin:18px 0 0; padding:12px 16px; border-radius:12px; background:#3f0c1c; border:1px solid rgba(234,88,12,.4); color:#e8b98e; font-size:13px; font-weight:600; }
.comp-more[hidden] { display:none; }
.comp-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:20px 0 0; }
.comp-stats>div { padding:12px; border-radius:12px; background:#2b0611; border:1px solid rgba(234,88,12,.2); }
.comp-stats dt { font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:#e8b98e; }
.comp-stats dd { margin:5px 0 0; color:#fff; font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.comp-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:20px; }
.comp-write,.comp-save { display:flex; align-items:center; justify-content:center; gap:8px; padding:14px 12px; border-radius:12px; font-size:13px; font-weight:700; text-align:center; }
.comp-write { color:#fff; background:linear-gradient(90deg,#ea580c,#ca8a04); }
.comp-save { color:#fce7f3; background:#3f0c1c; border:1px solid rgba(234,88,12,.4); }
.comp-save.is-saved { background:#059669; border-color:#10b981; color:#fff; }
.comp-panel button:hover,.comp-write:hover { filter:brightness(1.15); }
.comp-panel :focus-visible { outline:2px solid #e8b98e; outline-offset:3px; }
@media(max-width:767px) {
 .comp-overlay { padding:10px; }
 .comp-panel { max-height:94vh; max-height:94dvh; border-radius:18px; }
 .comp-header { padding:16px; gap:8px; }
 .comp-header h2 { font-size:26px; }
 .comp-brand { font-size:8px; letter-spacing:.08em; }
 .comp-tools { gap:5px; }
 .comp-tools button { width:32px; height:32px; }
 .comp-content { padding:16px; }
 .comp-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .comp-photo { border-radius:12px; }
 .comp-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
}
@media(max-width:359px) { .comp-actions { grid-template-columns:1fr; } }

/* Studio: progressive model list, Dubai places and duration. */
.studio-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; align-items:start; }
.studio-controls { display:flex; flex-direction:column; gap:24px; min-width:0; }
.studio-faces { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.studio-face { position:relative; aspect-ratio:3/4; overflow:hidden; border:2px solid rgba(234,88,12,.2); border-radius:12px; opacity:.7; background:#24050e; }
.studio-face:hover,.studio-face.is-selected { opacity:1; }
.studio-face.is-selected { border-color:#d89763; box-shadow:0 0 0 1px #d89763; }
.studio-face img { display:block; width:100%; height:100%; object-fit:cover; object-position:top; }
.studio-face span { position:absolute; bottom:0; left:0; right:0; padding:12px 2px 4px; font-size:10px; text-align:center; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.85)); overflow-wrap:anywhere; }
.studio-locations { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.studio-durations { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.studio-choice { display:flex; align-items:center; justify-content:center; gap:6px; min-height:48px; padding:10px 8px; border:1px solid rgba(234,88,12,.25); border-radius:12px; background:rgba(41,6,16,.7); color:#fcd5e2; font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.studio-choice svg { flex-shrink:0; }
.studio-choice.is-selected { background:#4a0d20; border-color:#d89763; color:#fff; }
.studio-more { display:block; width:100%; padding:12px; color:#e8b98e; background:#3f0c1c; border:1px solid rgba(234,88,12,.3); border-radius:12px; font-size:12px; font-weight:600; }
.studio-share { display:flex; flex:1; align-items:center; justify-content:center; gap:8px; padding:12px; color:#fff; background:#3f0c1c; border-radius:16px; font-size:12px; }
.studio-preview { position:sticky; top:100px; min-width:0; }
.studio-preview-image { display:block; width:100%; max-width:280px; aspect-ratio:3/4; margin:24px auto; border:1px solid rgba(255,255,255,.3); border-radius:16px; object-fit:cover; object-position:top; }
.studio-summary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-top:16px; padding-top:16px; border-top:1px solid rgba(234,88,12,.3); font-size:12px; color:#e8b98e; }
.studio-summary strong { color:#fde68a; }
.studio-controls :focus-visible { outline:2px solid #e8b98e; outline-offset:3px; }
@media(max-width:1023px) { .studio-layout { grid-template-columns:minmax(0,1fr); } .studio-preview { position:relative; top:auto; } }
@media(max-width:359px) { .studio-faces { grid-template-columns:repeat(4,minmax(0,1fr)); } .studio-durations { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Shared responsive shell. */
html { scroll-padding-top:96px; }
body { min-width:320px; }
main { min-width:0; overflow-wrap:anywhere; }
main .grid>* { min-width:0; }
img,svg { max-width:100%; }
button,a,input,textarea,summary { -webkit-tap-highlight-color:transparent; }
.site-header { position:sticky; top:0; z-index:50; width:100%; border-bottom:1px solid rgba(234,88,12,.2); background:rgba(43,7,17,.96); backdrop-filter:blur(18px); }
.site-header-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:80px; max-width:1280px; margin:auto; padding:12px 24px; }
.site-brand { display:flex; flex-direction:column; flex-shrink:0; color:#fce7f3; }
.site-brand-title { font-family:var(--font-editorial); font-size:28px; font-weight:700; line-height:1.1; white-space:nowrap; }
.site-brand-subtitle { font-size:9px; font-weight:600; text-transform:uppercase; letter-spacing:.22em; color:#e8b98e; margin-top:4px; }
.desktop-nav { display:none; align-items:center; gap:22px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.desktop-nav a { padding:12px 0; }
.desktop-nav a:hover,.desktop-nav [aria-current] { color:#e8b98e; }
.header-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
#theme-toggle { min-height:40px; }
#theme-dropdown { max-width:calc(100vw - 24px); }
.header-book { display:flex; align-items:center; justify-content:center; min-height:40px; padding:9px 18px; border-radius:10px; background:linear-gradient(90deg,#ea580c,#ca8a04); color:white; font-size:12px; font-weight:700; }
.site-menu summary { display:flex; align-items:center; justify-content:center; width:40px; height:40px; cursor:pointer; border:1px solid rgba(234,88,12,.4); border-radius:10px; color:#e8b98e; list-style:none; }
.site-menu summary::-webkit-details-marker { display:none; }
.site-menu nav { position:absolute; top:calc(100% + 8px); right:12px; display:flex; flex-direction:column; width:min(320px,calc(100vw - 24px)); padding:12px; border:1px solid rgba(234,88,12,.4); border-radius:16px; background:#2b0711; box-shadow:0 16px 32px rgba(0,0,0,.4); }
.site-menu:not([open]) nav { display:none; }
.site-menu nav a { padding:12px; border-radius:8px; font-size:14px; }
.site-menu nav a:hover { background:#420d1c; }
.mobile-dock { display:none; }
.footer-links { flex-wrap:wrap; justify-content:center; }
.comp-header>div:first-child { min-width:0; overflow-wrap:anywhere; }
[data-model-card][hidden] { display:none!important; }
.hero-top>div:first-child { min-width:0; flex-wrap:wrap; }
#hero-counter { white-space:nowrap; }
#palette-settings>div { flex-wrap:wrap; }
#roster>div:first-child { flex-wrap:wrap; }
#roster-filter { max-width:100%; flex-wrap:wrap; overflow:visible; }
.policy-page { width:100%; max-width:900px; padding:64px 24px; margin:auto; line-height:1.8; color:#fcd5e2; }
.policy-page h1 { font-size:clamp(36px,5vw,56px); color:#fff; line-height:1.15; margin:12px 0; }
.policy-page h2 { font-size:28px; color:#fff; line-height:1.25; margin:32px 0 12px; }
.policy-page p,.policy-page li { font-size:14px; }
.policy-page p { margin-bottom:14px; }
.policy-page ul { list-style:disc; padding-left:22px; margin:16px 0; }
.policy-page li { margin:8px 0; }
.policy-page a { color:#e8b98e; text-decoration:underline; overflow-wrap:anywhere; }
.policy-eyebrow,.policy-updated { color:#e8b98e; }
@media(min-width:1100px) { .desktop-nav { display:flex; } .site-menu { display:none; } }
@media(max-width:1099px) { .site-header-inner { gap:12px; } }
@media(max-width:1023px) {
 #site-root { padding-bottom:132px; }
 .mobile-dock { position:fixed; z-index:1000; bottom:max(10px,env(safe-area-inset-bottom)); left:12px; right:12px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; padding:8px; border:1px solid rgba(234,88,12,.4); border-radius:18px; background:rgba(43,6,17,.96); backdrop-filter:blur(16px); box-shadow:0 6px 20px rgba(0,0,0,.3); }
 .mobile-dock a { display:flex; align-items:center; justify-content:center; min-height:40px; padding:6px; border-radius:10px; font-size:11px; font-weight:600; text-align:center; }
 .mobile-dock .dock-whatsapp { color:#25d366; background:rgba(37,211,102,.12); }
 .mobile-dock .dock-book { color:white; background:linear-gradient(90deg,#ea580c,#ca8a04); }
 #palette-settings>div { align-items:flex-start; }
 #palette-settings>div>div:last-child { width:100%; }
}
@media(max-width:767px) {
 .site-header-inner { min-height:72px; padding:10px 16px; }
 .site-brand-title { font-size:24px; }
 .site-brand-subtitle { font-size:8px; letter-spacing:.14em; }
 main section { scroll-margin-top:88px; }
 .hero-top { padding:16px; gap:10px; }
 .hero-top>div:first-child>span:first-child { font-size:18px; }
 #hero-name { font-size:clamp(38px,8vw,58px); line-height:1.05; }
 .hero-actions>a,.hero-actions>button { padding:12px 14px; min-height:44px; }
 #scout-form input:not([type=file]):not([type=hidden]),#scout-form textarea { font-size:16px; max-width:100%; }
 #scout-form input:not([type=file]):not([type=hidden]) { min-height:44px; }
 .policy-page { padding:40px 20px; }
 .footer-links { gap:12px 20px; }
}
@media(max-width:479px) {
 .site-header-inner { padding:10px 12px; gap:8px; }
 .site-brand-title { font-size:20px; }
 .site-brand-subtitle { font-size:7px; letter-spacing:.1em; }
 .header-actions { gap:6px; }
 .palette-label { display:none; }
 #theme-toggle { width:34px; min-height:38px; padding:8px; justify-content:center; }
 .header-book { min-height:38px; padding:8px 10px; font-size:11px; }
 .site-menu summary { width:34px; height:38px; }
 .hero-top>div:first-child>span:first-child { font-size:16px; }
 #hero-counter { font-size:10px; padding:4px 7px; }
 .hero-actions { flex-wrap:wrap; }
 .hero-actions>a,.hero-actions>button { font-size:10px; padding:12px 8px; }
 #scouting>div>div { padding-left:16px; padding-right:16px; }
 #scout-form .grid-cols-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .comp-header { padding:14px 12px; }
 .comp-header h2 { font-size:24px; }
 .comp-tools button { width:30px; height:34px; }
 .comp-save,.comp-write { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
@media(max-width:479px) {
 .site-brand { flex:1 1 auto; min-width:0; }
 .site-brand-title { white-space:normal; overflow-wrap:normal; max-width:100%; font-size:20px; line-height:1.02; }
 .site-brand-subtitle { margin-top:5px; }
}
@media(max-width:1023px) {
 #site-root { padding-bottom:88px; }
 .mobile-dock { grid-template-columns:repeat(6,minmax(0,1fr)); }
 .mobile-dock a { min-width:0; padding:6px 2px; font-size:10px; }
 body:has(input:focus,textarea:focus) .mobile-dock { display:none; }
}

/* Selectable source price packages. */
.comp-price-stat { min-width:0; }
.comp-price-stat label { cursor:pointer; }
.comp-price-stat select { display:block; width:100%; min-width:0; min-height:30px; padding:2px 20px 2px 0; border:0; background:transparent; color:#fff; font:600 13px var(--font-modern); cursor:pointer; color-scheme:dark; }
.comp-price-stat option { color:#fff; background:#2b0611; }
.comp-photo { padding:0; width:100%; text-align:left; cursor:zoom-in; }
[data-gallery-model] { cursor:zoom-in; }
/* Photo viewer stays above the profile and preserves its scroll position. */
.full-gallery { position:fixed; inset:0; width:100%; height:100vh; height:100dvh; z-index:200; background:rgba(5,4,7,.98); color:white; overscroll-behavior:none; }
.gallery-heading { position:absolute; top:max(18px,env(safe-area-inset-top)); left:24px; right:80px; z-index:2; display:flex; align-items:center; gap:18px; font-size:14px; }
[data-gallery-counter] { color:#e8b98e; white-space:nowrap; font-size:12px; }
.gallery-stage { position:absolute; inset:64px 64px 54px; display:flex; align-items:center; justify-content:center; touch-action:pan-y; user-select:none; }
.gallery-stage img { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; -webkit-user-drag:none; user-select:none; }
.gallery-close,.gallery-prev,.gallery-next { position:absolute; z-index:3; display:flex; align-items:center; justify-content:center; width:48px; height:48px; border:1px solid rgba(255,255,255,.25); border-radius:50%; background:rgba(43,6,17,.8); color:#fff; }
.gallery-close { top:max(12px,env(safe-area-inset-top)); right:16px; }
.gallery-prev,.gallery-next { top:50%; transform:translateY(-50%); }
.gallery-prev { left:12px; }.gallery-next { right:12px; }
.gallery-prev[hidden],.gallery-next[hidden] { display:none; }
.gallery-help { position:absolute; bottom:max(16px,env(safe-area-inset-bottom)); left:16px; right:16px; text-align:center; color:#e8b98e; font-size:12px; pointer-events:none; }
.full-gallery :focus-visible { outline:2px solid #e8b98e; outline-offset:3px; }
.favorites-page { max-width:1200px; margin:auto; padding:56px 24px; }
.favorites-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:32px; }
.favorites-heading h1 { font-size:clamp(38px,6vw,60px); color:#fff; line-height:1.2; margin:8px 0; }
.favorites-intro { max-width:600px; color:#fcd5e2; font-size:14px; line-height:1.6; }
.favorites-total { flex-shrink:0; padding:10px 16px; border:1px solid rgba(234,88,12,.4); border-radius:30px; color:#e8b98e; font-size:13px; }
.favorites-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.favorites-grid>* { min-width:0; }
.favorites-empty { text-align:center; padding:64px 20px; border:1px solid rgba(234,88,12,.25); border-radius:24px; background:#24050e; }
.favorites-empty[hidden] { display:none; }
.favorites-empty h2 { font-size:32px; margin-bottom:12px; }.favorites-empty p { font-size:14px; color:#fcd5e2; }
.favorites-empty a { display:inline-block; margin-top:24px; padding:12px 24px; background:linear-gradient(90deg,#ea580c,#ca8a04); border-radius:12px; color:white; font-weight:600; font-size:13px; }
.favorites-toast { position:fixed; z-index:300; left:50%; bottom:24px; transform:translateX(-50%); display:flex; align-items:center; justify-content:space-between; gap:20px; width:max-content; max-width:calc(100vw - 32px); padding:14px 16px; border:1px solid rgba(251,113,133,.6); border-radius:14px; background:#3f0c1c; box-shadow:0 8px 30px rgba(0,0,0,.5); color:white; font-size:13px; }
.favorites-toast[hidden] { display:none; }
.favorites-toast button { width:30px; height:30px; font-size:24px; color:#e8b98e; flex-shrink:0; }
.mobile-dock a:last-child { gap:3px; }
@media(max-width:1023px) { .favorites-toast { bottom:90px; } .favorites-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .comp-price-stat { grid-column:span 2; } .comp-price-stat select { font-size:16px; min-height:36px; } .gallery-stage { inset:70px 8px 58px; } .gallery-heading { left:16px; font-size:13px; gap:12px; } .gallery-prev,.gallery-next { width:40px; height:48px; border-radius:12px; background:rgba(0,0,0,.45); } .gallery-prev { left:8px; }.gallery-next { right:8px; } }
@media(max-width:639px) { .favorites-page { padding:36px 16px; } .favorites-heading { align-items:flex-start; flex-direction:column; gap:16px; } .favorites-grid { grid-template-columns:minmax(0,1fr); } }
/* Compact mobile contact dock. */
@media(max-width:1023px) {
 .mobile-dock { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .mobile-dock>a { font-size:12px; min-height:42px; }
}
.dock-contact { position:relative; min-width:0; }
.dock-contact>summary { display:flex; align-items:center; justify-content:center; gap:7px; min-height:42px; padding:6px; color:#fff; background:#420d1c; border-radius:10px; font-size:12px; font-weight:600; cursor:pointer; list-style:none; }
.dock-contact>summary::-webkit-details-marker { display:none; }
.dock-contact-menu { position:absolute; bottom:calc(100% + 16px); left:50%; transform:translateX(-50%); width:220px; max-width:calc(100vw - 32px); padding:12px; border:1px solid rgba(234,88,12,.5); border-radius:16px; background:#2b0711; box-shadow:0 10px 30px rgba(0,0,0,.5); }
.dock-contact:not([open]) .dock-contact-menu { display:none; }
.dock-contact-menu p { padding:3px 8px 10px; color:#e8b98e; font-size:11px; }
.mobile-dock .dock-contact-menu a { justify-content:flex-start; min-height:44px; padding:12px; font-size:13px; }
.dock-contact-menu a:hover { background:#420d1c; }
.dock-contact>summary:focus-visible { outline:2px solid #e8b98e; outline-offset:3px; }
/* Contact buttons follow the active messengers in config.php. */
.hero-book-button,.agency-book-button,.profile-write-button { display:flex; align-items:center; justify-content:center; min-height:44px; padding:12px 20px; border-radius:14px; color:white; background:linear-gradient(90deg,#ea580c,#ca8a04); font-size:12px; font-weight:600; text-align:center; }
.hero-actions>[data-hero-book] { display:flex; flex:1; }.hero-book-button { width:100%; }
.agency-book-button { flex:1; }.profile-write-button { padding:10px 20px; }
.mobile-dock .dock-write { display:flex; align-items:center; justify-content:center; min-height:42px; padding:6px; border-radius:10px; background:#420d1c; color:white; font-size:12px; font-weight:600; }
.mobile-dock.contacts-0 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.comp-actions:has(>.comp-save:only-child) { grid-template-columns:1fr; }
.contact-overlay { position:fixed; inset:0; z-index:230; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(0,0,0,.8); backdrop-filter:blur(8px); }
.contact-panel { position:relative; width:100%; max-width:360px; max-height:90dvh; overflow:auto; padding:36px 24px 24px; border:1px solid rgba(234,88,12,.5); border-radius:22px; color:#fce7f3; background:#2b0711; box-shadow:0 12px 40px rgba(0,0,0,.45); }
.contact-panel h2 { margin:10px 0 20px; padding-right:20px; font-size:28px; line-height:1.2; color:#fff; }.contact-panel p { margin-bottom:16px; font-size:13px; color:#e8b98e; }
.contact-close { position:absolute; top:12px; right:12px; width:34px; height:34px; display:flex; align-items:center; justify-content:center; color:#e8b98e; background:#420d1c; border-radius:9px; }
.contact-options { display:grid; gap:12px; }.contact-options a { display:flex; justify-content:center; padding:14px; border-radius:12px; color:white; background:#229ed9; font-size:14px; font-weight:600; }.contact-options .contact-whatsapp { background:#128c58; }
.contact-panel :focus-visible { outline:2px solid #e8b98e; outline-offset:3px; }
/* Fixed Port Wine + Terracotta Bronze palette. */
:root { --port-wine:#2e0714; --terracotta:#ea580c; --bronze:#ca8a04; }
[class*="bg-gradient-to-r"] { background-image:linear-gradient(90deg,#ea580c,#ca8a04)!important; }
[class*="text-[#fda4af]"],[class*="text-[#fb7185]"] { color:#e8b98e!important; }
[class*="border-[#e11d48]"] { border-color:rgba(234,88,12,.3); }
.messenger-buttons { display:flex; align-items:center; gap:8px; min-width:0; }
.messenger-link { display:flex; align-items:center; justify-content:center; gap:7px; min-height:42px; padding:10px 14px; border-radius:12px; color:#fff; font-size:12px; font-weight:600; text-align:center; white-space:nowrap; }
.messenger-link svg { display:block; width:21px; height:21px; flex-shrink:0; }
.messenger-telegram { background:#229ed9; }.messenger-whatsapp { background:#128c58; }
.header-messengers .messenger-link { padding:10px 12px; }
.mobile-dock.messenger-dock { display:none; }
.card-messengers { flex:1; }.card-messengers .messenger-link { flex:1; padding:10px 9px; font-size:11px; }
.carousel-panel { position:relative; max-width:720px; }
.comp-carousel { position:relative; height:min(70dvh,680px); min-height:320px; background:#17080c; overflow:hidden; touch-action:pan-y; }
.carousel-panel .comp-header { position:absolute; inset:0 0 auto; z-index:4; background:linear-gradient(#25050fee,transparent); border:0; padding:18px; pointer-events:none; }
.carousel-panel .comp-header>button { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:#2e0714cc; color:#fce7f3; pointer-events:auto; }
.comp-main-photo { display:flex; align-items:center; justify-content:center; width:100%; height:100%; padding:0; cursor:zoom-in; user-select:none; }
.comp-main-photo img { display:block; width:100%; height:100%; object-fit:contain; -webkit-user-drag:none; user-select:none; }
.comp-photo-prev,.comp-photo-next { position:absolute; top:50%; transform:translateY(-50%); z-index:3; display:flex; align-items:center; justify-content:center; width:40px; height:48px; border:1px solid rgba(255,255,255,.3); border-radius:12px; background:#2e0714bb; color:white; }
.comp-photo-prev { left:12px; }.comp-photo-next { right:12px; }.comp-photo-prev[hidden],.comp-photo-next[hidden] { display:none; }
.comp-photo-counter { position:absolute; bottom:82px; right:16px; padding:4px 10px; border-radius:20px; background:#17080caa; color:#fce7f3; font-size:12px; }
.comp-float-actions { position:absolute; bottom:16px; left:12px; right:12px; z-index:4; display:flex; justify-content:center; align-items:center; gap:8px; }
.comp-float-actions .comp-save { min-height:42px; background:#2e0714dd; backdrop-filter:blur(10px); }
.comp-float-actions .comp-save.is-saved { background:#059669; }
.carousel-panel .comp-stats { margin:0; }
.budget-overlay { position:fixed; inset:0; z-index:400; display:flex; align-items:center; justify-content:center; padding:18px; background:#090405dd; backdrop-filter:blur(10px); }
.budget-panel { width:100%; max-width:390px; max-height:90dvh; overflow:auto; padding:30px 24px; border:1px solid #ca8a0480; border-radius:24px; color:#fce7f3; text-align:center; background:linear-gradient(145deg,#2e0714,#3b0e1b,#261008); box-shadow:0 16px 50px #0008; }
.budget-panel h2 { font-size:30px; line-height:1.2; }.budget-panel p { font-size:14px; line-height:1.6; color:#e8b98e; }.budget-panel .budget-amount { margin:20px 0; color:#f0bd72; font-size:38px; font-weight:700; }
.budget-actions { display:grid; gap:10px; margin-top:24px; }.budget-actions button { min-height:46px; padding:12px; border-radius:12px; font-size:13px; font-weight:600; }.budget-actions [data-budget-confirm] { background:linear-gradient(90deg,#ea580c,#ca8a04); color:white; }.budget-actions [data-budget-cancel] { background:#2e0714; border:1px solid #ca8a0455; color:#fce7f3; }
.budget-panel :focus-visible { outline:2px solid #f0bd72; outline-offset:3px; }
@media(max-width:1023px) {
 .mobile-dock.messenger-dock { display:flex; }.dock-messengers { width:100%; }.dock-messengers .messenger-link { flex:1; }
 body:not(:has(.mobile-dock)) #site-root { padding-bottom:0; }
}
@media(max-width:767px) {
 .header-messengers .messenger-link { width:42px; height:42px; padding:10px; border-radius:50%; }.header-messengers .messenger-label { display:none; }
 .card-messengers .messenger-label { display:none; }
 .comp-float-actions .messenger-link,.comp-float-actions .comp-save { width:44px; height:44px; padding:11px; border-radius:50%; }
 .comp-float-actions .messenger-label,.comp-float-actions .comp-save>span { display:none; }
 .comp-carousel { height:68dvh; min-height:300px; }.comp-photo-counter { bottom:78px; }
}
