@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');:root{--wine:#79344f;--rose:#bb6a7f;--bg:#fcf8f7;--line:#eadfe0;--muted:#8f7c83;--text:#493940;--green:#357459;--shadow:0 14px 35px #73334812}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',Arial,sans-serif;font-size:14px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px max(18px,calc((100vw - 1120px)/2));background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:8px;font:italic 22px 'Playfair Display',Georgia,serif;color:var(--wine)}.brand strong{font-style:normal;font-family:'DM Sans';font-size:12px;letter-spacing:2px}.flower{font-size:32px;color:#c77b8c}.giant{font-size:65px}.tag{color:var(--green);font-size:11px;font-weight:700}.wrap{max-width:1120px;margin:auto;padding:20px}.login{min-height:75vh;display:grid;place-items:center}.login-box{padding:32px;width:min(440px,100%);background:white;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);text-align:center}.muted{color:var(--muted)}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;color:var(--wine)}h1{font-size:31px;margin:8px 0}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px}.toolbar h1{margin-bottom:10px}.eyebrow{letter-spacing:2px;color:var(--rose);font-size:11px;font-weight:700}.actions{display:flex;align-items:center;gap:10px}.tabs{display:flex;gap:8px;overflow:auto;padding:10px 0 22px}.tabs button{white-space:nowrap;border:0;background:#fff;border-radius:12px;padding:11px 15px;color:var(--wine);font-weight:700}.tabs .selected{color:white;background:var(--wine)}.panel,.card,.login-box{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.panel{padding:22px;margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line)}.weekday{padding:9px 3px;text-align:center;color:var(--muted);font-size:11px}.day{min-height:106px;padding:8px 5px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}.day.outside{background:#fdfbfb}.day strong{display:block;margin-bottom:7px}.event{border:0;display:block;width:100%;background:#f6e3ea;text-align:left;color:#7b3350;border-radius:6px;padding:6px 5px;margin:3px 0;font-size:10px;line-height:1.3;overflow-wrap:anywhere}.month{display:flex;align-items:center;justify-content:space-between;gap:8px}.month .btns{display:flex;gap:8px}.cols{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.card{padding:16px;text-align:left;cursor:pointer}.card b{display:block;color:var(--wine);font:21px 'Playfair Display';margin:8px 0}.card span{color:var(--muted);font-size:12px}.small{font-size:12px}.alert{padding:12px;background:#fff1e5;border-radius:10px;color:#9d603c;font-size:12px;margin:12px 0}.success{color:var(--green)}button{cursor:pointer;border-radius:11px;border:0;padding:10px 14px;background:var(--wine);color:#fff;font:700 13px 'DM Sans',Arial}button.secondary{background:#f7e8ed;color:var(--wine)}button.outline{background:white;color:var(--wine);border:1px solid var(--line)}button:disabled{opacity:.5}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #e6dadb;border-radius:10px;background:#fff;color:var(--text);font:14px 'DM Sans',Arial}textarea{min-height:90px;resize:vertical}label{display:block;text-align:left;font-weight:700;font-size:12px;margin:12px 0}label input,label select,label textarea{margin-top:6px}form button{margin-top:9px}form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hint{font-size:12px;color:var(--muted);line-height:1.6}#dialog{border:1px solid var(--line);padding:26px 20px;border-radius:19px;box-shadow:0 25px 75px #26111955;max-height:90vh;overflow:auto;width:min(620px,95vw)}#dialog::backdrop{background:#3b172677}.close{float:right;font-size:24px;padding:0 8px;background:transparent;color:var(--wine)}.notes{border-top:1px solid var(--line);padding:12px 0;white-space:pre-wrap;overflow-wrap:anywhere}.note-meta{font-size:11px;color:var(--muted);margin-bottom:5px}.list{display:grid;gap:11px}.list button{text-align:left;background:#fff;color:var(--text);border:1px solid var(--line);padding:15px}#toast{position:fixed;right:14px;bottom:20px;max-width:340px;padding:13px 16px;background:#43222f;color:white;border-radius:12px;opacity:0;transition:.2s;pointer-events:none}#toast.show{opacity:1}.hidden{display:none!important}.foot{margin:25px 0;color:var(--muted);font-size:11px}.speech{margin-left:8px;background:#f7e8ed;color:var(--wine)}@media(max-width:800px){.cols{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.day{min-height:67px;padding:4px 2px}.event{font-size:8px;padding:3px}.brand{font-size:17px}.tag{font-size:9px}.toolbar{align-items:start}.actions{display:grid;justify-items:end}.login-box{padding:25px}.panel{padding:12px}.wrap{padding:13px}.weekday{font-size:10px}.month h2{font-size:20px}}@media(max-width:500px){.cards{grid-template-columns:1fr}.toolbar h1{font-size:27px}.month h2{font-size:18px}form .row{grid-template-columns:1fr}.tag{max-width:105px;text-align:right}.top{padding:10px}}
.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.photo-thumb,.photo-card{margin:0;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.photo-card{color:var(--text);text-align:left}.photo-card img,.photo-thumb img{display:block;width:100%;height:140px;object-fit:cover;border-radius:7px}.photo-thumb figcaption,.photo-card span{display:block;font-size:12px;overflow-wrap:anywhere;padding-top:8px}.photo-card small{display:block;color:var(--muted);margin-top:3px}.project-photos{border-top:1px solid var(--line);margin-top:22px;padding-top:8px}#uploadStatus{min-height:18px;overflow-wrap:anywhere}.project-finalization{border-top:2px solid var(--line);margin-top:24px;padding-top:16px}.project-finalization .quote{border:1px solid var(--line);padding:14px;border-radius:12px;margin:12px 0}.project-finalization .quote p{white-space:pre-wrap;overflow-wrap:anywhere}.project-finalization .quote-state{font-weight:700;color:var(--wine)}.project-finalization .approval{border:2px solid var(--wine);border-radius:12px;padding:14px;margin-top:16px}#photoForm{margin-top:12px}.project-contract{border-top:2px solid var(--line);margin-top:24px;padding-top:16px}.contract-party{border:1px solid var(--line);padding:14px;border-radius:12px;margin:15px 0}.contract-party h4{color:var(--wine);margin:8px 0}.contract-read{overflow-wrap:anywhere;border-bottom:1px solid #f1eaeb;padding:5px 0}.project-contract a{color:var(--wine);font-weight:700}.project-finance{border-top:2px solid var(--line);padding-top:16px;margin-top:24px}.finance-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.finance-results p{background:#faf1f4;border-radius:10px;padding:12px;margin:0}.finance-results b{font-size:18px}.finance-note{font-size:12px;color:var(--muted)}
/* V0.4.8.2: global contact details and touch-friendly responsive layout. */
html{max-width:100%;scroll-padding-top:12px}
body{font-size:16px;overflow-x:clip}
.top{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand contact" "status contact";column-gap:16px;row-gap:3px;padding-block:12px}
.top .brand{grid-area:brand;min-width:0;flex-wrap:wrap}
.top .tag{grid-area:status;font-size:12px;text-align:left;max-width:none}
.contact{grid-area:contact;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:4px;min-width:0;text-align:right}
.contact span{font-size:12px;line-height:1.3;font-weight:800;letter-spacing:.04em;color:var(--text)}
.contact a{font-size:17px;line-height:1.3;font-weight:800;color:var(--wine);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.contact a:focus-visible,.tabs button:focus-visible,button:focus-visible{outline:3px solid #b45c7f;outline-offset:2px}
.wrap{width:100%;max-width:1120px}
#content,#main,.panel,.card,.list,aside,.cols{min-width:0}
.card{overflow-wrap:anywhere}
button{min-height:44px;font-size:15px;line-height:1.3}
input,select,textarea{min-height:44px;font-size:16px;max-width:100%}
input[type=checkbox],input[type=radio]{min-height:auto}
label,.hint,.list button{font-size:14px}
.card span,.small,.finance-note{font-size:14px}
.tabs{flex-wrap:wrap;overflow:visible;gap:8px;padding:10px 0 17px}
.tabs button{white-space:normal;flex:1 1 128px;min-width:0;text-align:center}
#dialog{width:min(720px,calc(100vw - 16px));max-height:calc(100dvh - 16px);padding:22px;overflow-wrap:anywhere}
#dialogContent,form,.finance-results,.photos-grid{min-width:0}
img,video,canvas,table{max-width:100%}
.photo-card img,.photo-thumb img{height:auto;aspect-ratio:4/3;object-fit:cover}
@media(max-width:640px){
 .wrap{padding:14px 12px}
 .top{padding:12px;gap:4px 10px}
 .brand{font-size:18px}
 .top .brand strong{font-size:10px}
 .contact span{font-size:11px}
 .contact a{font-size:15px}
 .top .tag{font-size:11px}
 .toolbar{flex-direction:column;align-items:stretch;gap:6px}
 .toolbar h1{font-size:28px}
 .actions{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px}
 #userName{min-width:0;overflow-wrap:anywhere}
 .panel{padding:15px}
 .month{flex-wrap:wrap;gap:12px}
 .month .btns{flex-wrap:wrap}
 .month .btns button{min-width:44px}
 .cols,.cards{grid-template-columns:minmax(0,1fr);gap:14px}
 .card{width:100%;padding:18px}
 .card b{font-size:23px}
 form .row{grid-template-columns:minmax(0,1fr);gap:4px}
 .grid{grid-template-columns:repeat(7,minmax(0,1fr));width:100%}
 .day{padding:4px 2px;min-height:64px;font-size:12px;min-width:0}
 .day strong{margin-bottom:4px}
 .weekday{font-size:11px}
 .event{font-size:11px;min-height:24px;padding:4px 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .photos-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .finance-results{grid-template-columns:minmax(0,1fr)}
 #dialog{padding:17px 12px}
 #toast{left:12px;right:12px;bottom:12px;max-width:none}
}
@media(max-width:360px){
 .brand{font-size:16px}
 .contact span{font-size:10px;letter-spacing:0}
 .contact a{font-size:14px}
 .top .tag{font-size:10px}
 .tabs button{flex-basis:calc(50% - 4px);font-size:14px}
 .photos-grid{grid-template-columns:1fr}
}

/* V0.4.8.3: direct email quote requests; no automatic sending. */
.contact .email-link{font-size:14px;font-weight:700;white-space:normal;overflow-wrap:anywhere;word-break:break-word;max-width:100%;text-align:right}
@media(max-width:640px){
 .top{grid-template-columns:minmax(0,1fr);grid-template-areas:"brand" "status" "contact";gap:4px}
 .contact{align-items:flex-start;text-align:left;gap:5px;margin-top:6px;width:100%}
 .contact .email-link{font-size:15px;text-align:left}
}
/* V0.4.8.4: one coherent header for Calendar, Weddings, Team and Gallery.
   About 0.8–1 cm more breathing room under the page title on mobile. */
.toolbar{padding:14px 0 27px;min-height:112px;align-items:center}
.toolbar h1{font-size:clamp(32px,3.3vw,38px);line-height:1.2;margin:5px 0 0}
.toolbar .eyebrow{font-size:12px;line-height:1.5;letter-spacing:1.8px}
.top{padding-block:16px 19px}
.top .brand{font-size:clamp(20px,2.1vw,25px)}
.top .tag{line-height:1.4}
/* A name + two obvious direct contact actions, not unobtrusive text links. */
.contact{display:grid;grid-template-columns:max-content minmax(0,max-content);gap:7px 9px;justify-content:end;align-items:stretch;max-width:100%}
.contact span{grid-column:1/-1;font-size:12px;text-align:right}
.contact a{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:48px;min-width:0;padding:9px 13px;border:2px solid var(--wine);border-radius:13px;background:var(--wine);color:#fff;font-size:16px;font-weight:800;text-decoration:none;text-align:center;line-height:1.35;white-space:normal;overflow-wrap:anywhere;word-break:normal;transition:background-color .15s ease,border-color .15s ease}
.contact a[href^="tel:"]::before{content:"☎";font-family:Arial,sans-serif;font-size:19px;line-height:1}
.contact .email-link{max-width:100%;min-width:0;font-size:14px;font-weight:800;background:#fff3f7;border-color:#d9adbb;color:var(--wine);text-align:center;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.contact .email-link::before{content:"✉";font-family:Arial,sans-serif;font-size:19px;line-height:1;flex-shrink:0}
.contact a:hover{background:#653046;border-color:#653046;color:#fff}
.contact a.email-link:hover{background:#f7dce6;border-color:#ae5875;color:#653046}
.contact a:focus-visible{outline:3px solid #b45c7f;outline-offset:3px}
@media(max-width:980px){
 .top{grid-template-columns:minmax(0,1fr);grid-template-areas:"brand" "status" "contact";gap:6px}
 .contact{width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);justify-content:stretch;text-align:left;gap:8px;margin-top:5px}
 .contact span{text-align:left}
 .contact a{font-size:15px}
 .contact .email-link{font-size:14px;text-align:center}
}
@media(max-width:640px){
 .top{padding:14px 12px 16px}
 .top .brand{font-size:20px}
 .toolbar{padding:12px 0 27px;min-height:0;gap:12px}
 .toolbar h1{font-size:32px;line-height:1.18;margin:4px 0 0}
 .toolbar .eyebrow{font-size:12px}
 .contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.28fr);align-items:stretch;gap:8px;width:100%;max-width:100%;margin-top:6px}
 .contact span{font-size:11px}
 .contact a{min-height:52px;padding:8px 7px;font-size:14px;gap:4px}
 .contact .email-link{min-height:52px;font-size:13px;line-height:1.3;overflow-wrap:anywhere}
 .tabs{padding-top:0}
}
@media(max-width:360px){
 .top .brand{font-size:19px}
 .contact{grid-template-columns:minmax(0,1fr)}
 .contact a,.contact .email-link{min-height:46px;font-size:14px}
 .toolbar h1{font-size:30px}
}
@media(prefers-reduced-motion:reduce){.contact a{transition:none}}


/* VV_MOBILE_WORKSPACE_FIX_20261024 – calendar, weddings, team, gallery */
@media (max-width: 640px) {
  html { -webkit-text-size-adjust:100%; }
  body { font-size:16px; }
  #main.wrap { padding:14px 12px 24px; }
  .toolbar { display:flex; flex-direction:column; align-items:stretch; gap:14px; padding:16px 0 25px; }
  .toolbar h1 { font-size:clamp(30px,8vw,36px); line-height:1.18; }
  .toolbar .eyebrow { font-size:13px; }
  .toolbar .actions { display:flex; justify-content:space-between; align-items:center; }
  .tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:0 0 20px; }
  .tabs button { width:100%; min-width:0; min-height:54px; padding:12px 8px; font-size:16px; line-height:1.3; white-space:normal; }
  .cols { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
  #content, .cols > *, .panel { min-width:0; }
  .panel { padding:14px; margin-bottom:14px; }
  .panel h2 { font-size:clamp(21px,5.6vw,26px); line-height:1.22; }
  .month { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
  .month .btns { display:flex; gap:7px; }
  .month .btns button { min-width:44px; min-height:46px; font-size:16px; }
  .grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); width:100%; }
  .weekday { font-size:11px; padding:8px 1px; }
  .day { min-width:0; min-height:72px; padding:5px 2px; font-size:13px; }
  .day strong { font-size:13px; margin-bottom:6px; }
  .event { font-size:11px; min-height:26px; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .cards { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
  .card { min-width:0; padding:19px; }
  .card b { font-size:24px; }
  .card span, .small, .hint { font-size:15px; line-height:1.5; }
  .list button { font-size:16px; line-height:1.5; min-height:52px; }
  .photos-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .photo-card { min-width:0; }
  .photo-card img { display:block; width:100%; height:auto; }
  #dialog { max-width:calc(100vw - 12px); padding:16px 12px; }
  input, select, textarea { font-size:16px; }
}
@media (max-width: 360px) {
  .tabs button { font-size:15px; }
  .day { min-height:64px; }
  .photos-grid { grid-template-columns:minmax(0,1fr); }
}
/* VIRAGVARAZS_SEARCH_V0485 – separate voice and text search menu. */
.vv-search{max-width:870px;margin:0 auto 18px}
.vv-search h2{margin:0 0 10px}
.vv-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}
.vv-search-row label{margin:0}
.vv-search-row input{width:100%;min-height:58px;font-size:17px}
.vv-search-row button{min-width:64px;min-height:58px;font-size:23px;margin:0}
.vv-search-row button[aria-pressed="true"]{outline:3px solid #a54e70;outline-offset:2px}
.vv-search-help{font-size:14px;line-height:1.5;color:var(--muted);margin:13px 0}
.vv-results{display:grid;gap:10px;margin-top:12px}
.vv-result{display:block;text-align:left;width:100%;background:#fff;border:1px solid var(--line);color:var(--text);padding:15px;border-radius:13px}
.vv-result b{display:block;font-size:17px;color:var(--wine);margin:5px 0}
.vv-result small{display:block;font-size:13px;color:var(--muted)}
.vv-search-count{font-size:14px;margin:10px 0;color:var(--wine)}
@media(max-width:640px){.vv-search-row{gap:8px}.vv-search-row button{min-width:58px}.vv-result{min-height:58px}}


/* VIRAGVARAZS_ANDROID_LAYOUT_V0486: phone-first, accessible and no horizontal pan.
   Applied via both viewport width and handset detection, so a mobile WebView
   that reports a desktop-sized layout viewport still gets the phone design. */
@media (max-width: 850px) {
  html,body { width:100%;max-width:100%; min-width:0; overflow-x:clip; }
  .top { max-width:100%; min-width:0; }
  #main.wrap { width:100%;max-width:100%; min-width:0; }
  .tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;overflow:visible;}
  .tabs button {min-width:0;width:100%;white-space:normal;min-height:56px;font-size:17px;}
  .tabs button:nth-child(5):last-child {grid-column:1/-1;}
}
html.vv-android-phone,html.vv-android-phone body {
 width:100%;max-width:100%;min-width:0;overflow-x:clip;
 -webkit-text-size-adjust:100%;text-size-adjust:100%;
}
html.vv-android-phone .top {
 width:100%;min-width:0;max-width:100%; display:grid;
 grid-template-columns:minmax(0,1fr);
 grid-template-areas:"brand" "status" "contact";
 gap:6px; padding:15px 14px 17px;
}
html.vv-android-phone .top .brand {font-size:24px;max-width:100%;min-width:0;flex-wrap:wrap;line-height:1.3;}
html.vv-android-phone .top .tag {font-size:13px;max-width:100%;line-height:1.4;text-align:left;}
html.vv-android-phone .contact {
 display:grid;grid-template-columns:minmax(0,1fr);gap:8px;
 width:100%;max-width:100%;min-width:0;margin:4px 0 0;
 justify-content:stretch;justify-items:stretch;text-align:left;
}
html.vv-android-phone .contact span {text-align:left;max-width:100%;font-size:12px;}
html.vv-android-phone .contact a,
html.vv-android-phone .contact .email-link {
 display:flex;flex-direction:row!important;max-width:100%;width:100%;min-width:0;
 min-height:54px;font-size:16px!important;padding:10px 9px;
 line-height:1.35;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;
}
html.vv-android-phone #main.wrap,
html.vv-android-phone #login.wrap {width:100%;max-width:100%;min-width:0;margin:0 auto;padding:19px 14px 35px;}
html.vv-android-phone .toolbar {
 display:flex;flex-direction:column;align-items:stretch;gap:13px;
 width:100%;min-width:0;min-height:0;padding:15px 0 24px;
}
html.vv-android-phone .toolbar > div {min-width:0;max-width:100%;}
html.vv-android-phone .toolbar h1 {font-size:clamp(30px,8vw,38px);line-height:1.19;overflow-wrap:anywhere;}
html.vv-android-phone .toolbar .eyebrow {font-size:13px;letter-spacing:1.4px;}
html.vv-android-phone .toolbar .actions {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;font-size:15px;}
html.vv-android-phone #logout {min-height:48px;}
html.vv-android-phone .tabs {
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:10px;width:100%;min-width:0;overflow:visible;padding:0 0 21px;
}
html.vv-android-phone .tabs button {
 display:block;min-width:0;width:100%;min-height:58px;
 padding:12px 8px;font-size:17px;line-height:1.3;white-space:normal;
}
html.vv-android-phone .tabs button:nth-child(5):last-child {grid-column:1/-1;}
html.vv-android-phone #content,
html.vv-android-phone .panel,
html.vv-android-phone .cols,
html.vv-android-phone .cards {width:100%;min-width:0;max-width:100%;}
html.vv-android-phone .panel {padding:17px 15px;margin-bottom:15px;overflow-wrap:anywhere;}
html.vv-android-phone .panel h2 {font-size:clamp(23px,6vw,28px);}
html.vv-android-phone .panel h3 {font-size:21px;}
html.vv-android-phone .hint,
html.vv-android-phone .small,
html.vv-android-phone .list button,
html.vv-android-phone .note-meta {font-size:15px;line-height:1.5;}
html.vv-android-phone .list button {min-height:56px;padding:15px;white-space:normal;overflow-wrap:anywhere;}
html.vv-android-phone .cols,
html.vv-android-phone .cards,
html.vv-android-phone .finance-results {grid-template-columns:minmax(0,1fr);}
html.vv-android-phone .vv-search {width:100%;max-width:100%;min-width:0;}
html.vv-android-phone .vv-search-row {grid-template-columns:minmax(0,1fr) 62px;gap:9px;}
html.vv-android-phone .vv-search-row input {width:100%;min-width:0;min-height:60px;font-size:17px;}
html.vv-android-phone .vv-search-row button {min-width:62px;min-height:60px;font-size:24px;}
html.vv-android-phone input,
html.vv-android-phone select,
html.vv-android-phone textarea {max-width:100%;min-width:0;font-size:16px;}
html.vv-android-phone #dialog {max-width:calc(100vw - 16px);}
html.vv-android-phone .photos-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
@media (max-width:350px) {
 html.vv-android-phone .tabs button {font-size:16px;}
 html.vv-android-phone .top .brand {font-size:21px;}
 html.vv-android-phone .photos-grid {grid-template-columns:minmax(0,1fr);}
}


/* VIRAGVARAZS_ANDROID_REAL_FONTS_V0487
   Actual CSS font sizes 18–38px. Do NOT scale a desktop viewport or alter iOS.
   Keeps the existing 5-item navigation, voice and typed search unchanged. */
html.vv-android-phone { -webkit-text-size-adjust:100%;text-size-adjust:100%; }
html.vv-android-phone body { font-size:21px;line-height:1.48; }
html.vv-android-phone #main.wrap,
html.vv-android-phone #login.wrap {
 box-sizing:border-box;width:100%;max-width:100%;min-width:0;
 margin-inline:auto;padding:18px 15px 30px;
}
html.vv-android-phone .top,
html.vv-android-phone .toolbar,
html.vv-android-phone .panel,
html.vv-android-phone #content,
html.vv-android-phone .month {box-sizing:border-box;width:100%;max-width:100%;min-width:0;}
html.vv-android-phone .top .brand {font-size:28px;line-height:1.25;}
html.vv-android-phone .top .brand strong {font-size:13px;letter-spacing:1.3px;}
html.vv-android-phone .top .tag {font-size:16px;}
html.vv-android-phone .contact span {font-size:16px;line-height:1.4;}
html.vv-android-phone .contact a,
html.vv-android-phone .contact .email-link {
 font-size:20px!important;min-height:60px;padding:12px 8px;
 line-height:1.35;max-width:100%;overflow-wrap:anywhere;
}
html.vv-android-phone .toolbar {display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:18px 0 20px;}
html.vv-android-phone .toolbar > div {min-width:0;max-width:100%;}
html.vv-android-phone .toolbar h1 {font-size:38px;line-height:1.15;margin:3px 0 0;overflow-wrap:anywhere;}
html.vv-android-phone .toolbar .eyebrow {font-size:17px;letter-spacing:1px;}
html.vv-android-phone .toolbar .actions {
 width:100%;max-width:100%;display:flex;flex-wrap:wrap;gap:12px;
 align-items:center;justify-content:space-between;
}
html.vv-android-phone #userName {font-size:19px;line-height:1.4;min-width:0;max-width:100%;overflow-wrap:anywhere;}
html.vv-android-phone #logout {font-size:19px;min-height:52px;min-width:110px;max-width:100%;white-space:normal;}
html.vv-android-phone .tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;width:100%;}
html.vv-android-phone .tabs button {
 min-width:0;width:100%;min-height:68px;padding:13px 8px;
 font-size:22px;font-weight:700;line-height:1.25;white-space:normal;
}
html.vv-android-phone .tabs button:nth-child(5):last-child {grid-column:1/-1;}
html.vv-android-phone .panel {padding:19px 16px;margin-bottom:18px;overflow-wrap:anywhere;}
html.vv-android-phone .panel h2 {font-size:31px;line-height:1.2;overflow-wrap:anywhere;}
html.vv-android-phone .panel h3 {font-size:27px;line-height:1.25;}
html.vv-android-phone .month {
 display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:12px;
 margin-bottom:16px;
}
html.vv-android-phone .month h2 {margin:0;min-width:0;}
html.vv-android-phone .month > button,
html.vv-android-phone #newWedding {max-width:100%;width:max-content;justify-self:start;min-height:54px;font-size:20px;white-space:normal;}
html.vv-android-phone .month .btns {display:flex;gap:8px;flex-wrap:wrap;min-width:0;}
html.vv-android-phone .month .btns button {min-width:52px;min-height:50px;font-size:20px;}
html.vv-android-phone .cards {grid-template-columns:minmax(0,1fr);gap:14px;}
html.vv-android-phone .card {min-width:0;width:100%;min-height:128px;padding:20px 18px;text-align:left;}
html.vv-android-phone .card b {font-size:27px;line-height:1.32;margin:8px 0;overflow-wrap:anywhere;}
html.vv-android-phone .card span {font-size:20px;line-height:1.45;overflow-wrap:anywhere;}
html.vv-android-phone .hint,
html.vv-android-phone .small,
html.vv-android-phone .muted,
html.vv-android-phone .foot,
html.vv-android-phone .finance-note,
html.vv-android-phone .note-meta,
html.vv-android-phone .photo-card span,
html.vv-android-phone .photo-card small,
html.vv-android-phone .photo-thumb figcaption {
 font-size:18px;line-height:1.55;
}
html.vv-android-phone .list button {font-size:21px;line-height:1.4;min-height:66px;padding:17px;}
html.vv-android-phone label {font-size:20px;line-height:1.45;}
html.vv-android-phone input,
html.vv-android-phone select,
html.vv-android-phone textarea {
 font-size:20px;line-height:1.4;min-height:58px;max-width:100%;min-width:0;
}
html.vv-android-phone button {font-size:19px;line-height:1.35;}
html.vv-android-phone .tabs button {font-size:22px;}
html.vv-android-phone .alert,
html.vv-android-phone .notes,
html.vv-android-phone .contract-read,
html.vv-android-phone .project-finance p,
html.vv-android-phone .finance-results p {font-size:19px;line-height:1.5;}
html.vv-android-phone .weekday {font-size:15px;}
html.vv-android-phone .day {font-size:16px;}
html.vv-android-phone .day strong {font-size:16px;}
html.vv-android-phone .event {font-size:13px;line-height:1.3;}
html.vv-android-phone .vv-search-help,
html.vv-android-phone .vv-search-count {font-size:19px;line-height:1.5;}
html.vv-android-phone .vv-search-row input {font-size:20px;min-height:62px;}
html.vv-android-phone .vv-search-row button {font-size:26px;min-height:62px;}
html.vv-android-phone .vv-result {min-height:74px;padding:19px;}
html.vv-android-phone .vv-result b {font-size:25px;line-height:1.35;}
html.vv-android-phone .vv-result small {font-size:18px;line-height:1.4;}
html.vv-android-phone .login-box {max-width:100%;padding:23px 17px;}
html.vv-android-phone #dialog {font-size:20px;max-width:calc(100vw - 16px);}
html.vv-android-phone #toast {font-size:18px;}
@media (max-width:370px) {
 html.vv-android-phone .tabs button {font-size:21px;}
 html.vv-android-phone .toolbar h1 {font-size:35px;}
 html.vv-android-phone .card b {font-size:25px;}
}


/* VIRAGVARAZS_WEDDING_LIGHTBOX_V0488: full-viewport private photo viewer.
   Separate native dialog sits above the already-open wedding dialog. */
.photo-thumb .vv-photo-thumb-open {
 display:block;width:100%;padding:0;margin:0;background:transparent;border:0;
 border-radius:8px;cursor:zoom-in;min-width:0;min-height:44px;
}
.photo-thumb .vv-photo-thumb-open img {width:100%;display:block;aspect-ratio:4/3;object-fit:cover;}
.photo-thumb .vv-photo-thumb-open:focus-visible {outline:3px solid #a85075;outline-offset:3px;}
dialog.vv-lightbox {
 position:fixed;inset:0;width:100vw;max-width:100vw;height:100dvh;
 max-height:100dvh;margin:0;padding:0;border:0;border-radius:0;
 background:#140f15;color:#fff;overflow:hidden;
}
dialog.vv-lightbox::backdrop {background:#070507ec;}
.vv-lightbox .vv-viewer {
 display:flex;flex-direction:column;width:100%;height:100%;height:100dvh;
 padding:env(safe-area-inset-top) env(safe-area-inset-right)
 env(safe-area-inset-bottom) env(safe-area-inset-left);
 box-sizing:border-box;overscroll-behavior:contain;
}
.vv-lightbox .vv-viewer-toolbar {display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 12px;min-height:56px;}
.vv-lightbox .vv-viewer-counter {font:700 20px Arial,sans-serif;color:#fff;}
.vv-lightbox .vv-viewer-close,
.vv-lightbox .vv-viewer-nav {
 border:1px solid #9b8c98;background:#352431;color:#fff;border-radius:14px;
 font:700 23px Arial,sans-serif;min-height:50px;min-width:54px;padding:8px 12px;
}
.vv-lightbox .vv-viewer-close:focus-visible,
.vv-lightbox .vv-viewer-nav:focus-visible {outline:3px solid #f1b2cb;outline-offset:3px;}
.vv-lightbox .vv-viewer-nav:disabled {opacity:.35;}
.vv-lightbox .vv-viewer-stage {flex:1;min-height:0;display:flex;align-items:center;justify-content:space-between;gap:2px;padding:5px;}
.vv-lightbox .vv-viewer-image-wrap {flex:1;min-width:0;height:100%;display:flex;align-items:center;justify-content:center;touch-action:pan-y;user-select:none;-webkit-user-select:none;}
.vv-lightbox .vv-viewer-image {display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;-webkit-user-drag:none;}
.vv-lightbox .vv-viewer-name {text-align:center;min-height:42px;max-height:82px;overflow-wrap:anywhere;overflow:auto;margin:0;padding:8px 16px 14px;font:500 17px/1.4 Arial,sans-serif;color:#f4e9ee;}
@media(max-width:550px){
 .vv-lightbox .vv-viewer-stage {gap:0;padding:0 3px;}
 .vv-lightbox .vv-viewer-nav {min-width:39px;min-height:54px;padding:4px;font-size:25px;background:#322432e0;}
 .vv-lightbox .vv-viewer-toolbar {padding:7px 10px;}
 .vv-lightbox .vv-viewer-name {font-size:16px;}
}


/* V0484_EMAIL_ICON_BELOW */
@media (max-width: 600px) {
  a[href^="mailto:"] {
    display: flex !important;
    flex-direction: column-reverse !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    padding: 8px 3px !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    font-size: clamp(10px, 2.9vw, 13px) !important;
    letter-spacing: -0.3px !important;
    text-align: center !important;
  }
  a[href^="mailto:"] > :last-child {
    font-size: inherit !important;
    white-space: nowrap !important;
    word-break: normal !important;
  }
}


/* V1.7.3 WEB → APP — bordó, pezsgőarany, krém; csak vizuális módosítás. */
:root {
  --wine:#4c2034;
  --rose:#ad7a82;
  --bg:#2c0e1f;
  --text:#472b36;
  --muted:#715964;
  --line:#d9b97d;
  --green:#466f57;
  --vv173-dark:#2c0e1f;
  --vv173-burgundy:#55253a;
  --vv173-gold:#d2ab6e;
  --vv173-gold-edge:#b58a4e;
  --vv173-cream:#fff4d8;
  --vv173-paper:#fffaf0;
  --shadow:0 17px 42px rgba(27,7,18,.22);
}
html {color-scheme:light;}
body {
  color:var(--vv173-cream);
  background:linear-gradient(155deg,#230a1a 0%,#3c142a 45%,#281020 100%);
  min-height:100vh;
}
.top {
  background:linear-gradient(100deg,#2c0e1f 0%,#4b1a31 60%,#2a0c1d 100%);
  border-bottom:1px solid var(--vv173-gold-edge);
  box-shadow:0 3px 18px rgba(22,6,14,.22);
}
.brand { color:#f8e4b5; }
.brand strong { color:#f1c98f; }
.flower,.flower.giant { color:#e0ba83; }
.top .tag, #status {color:#f1d6a6;}
.wrap .toolbar, .toolbar #userName { color:#f9e7c5; }
.toolbar h1 { color:#ffedcc; }
.eyebrow { color:#e9c185; letter-spacing:1.7px; }
.login {min-height:calc(100vh - 82px);}
.login-box {
  color:var(--text);
  background:linear-gradient(143deg,#fffaf0 0%,#f4dfb3 55%,#fff4dc 100%);
  border:1px solid #cfaa72;
  box-shadow:0 28px 68px rgba(15,3,11,.38);
  border-radius:22px;
}
.login-box h1 { color:#602d41; }
.login-box .muted { color:#725969; }
.login-box .flower.giant {color:#b48358;}
.tabs { scrollbar-color:#c69e67 #361527; }
.tabs button {
  background:rgba(63,25,43,.91);
  color:#ffe7bc;
  border:1px solid rgba(216,176,115,.62);
  box-shadow:none;
}
.tabs button:hover,.tabs button:focus-visible {background:#68314b;color:#fff4d6;}
.tabs button.selected,.tabs .selected,#vv171Leads.selected {
  color:#361b25;
  background:linear-gradient(125deg,#e8c892 0%,#bc8f4f 100%);
  border-color:#d7b477;
  box-shadow:0 5px 15px rgba(26,7,18,.2);
}
.panel,.card,.login-box,#dialog {
  background:linear-gradient(145deg,#fffaf0 0%,#f8e8c6 100%);
  border:1px solid #d6b47c;
  color:var(--text);
}
.panel {box-shadow:0 18px 42px rgba(26,8,19,.21);}
.card {box-shadow:0 5px 14px rgba(62,30,37,.08);}
.panel h1,.panel h2,.panel h3,.panel h4,
.card h1,.card h2,.card h3,.card h4,#dialog h2,#dialog h3 {
  color:#642d43;
}
.card b { color:#642d43; }
.card span,.muted,.hint,.note-meta,.small { color:#775d67; }
.card p,.panel p {color:#563a46;}
button {
  color:#3d2430;
  background:linear-gradient(135deg,#edcf95 0%,#c4995c 100%);
  border:1px solid #b78c50;
  font-weight:700;
  min-height:42px;
  transition:filter .15s ease,box-shadow .15s ease;
}
button:hover:not(:disabled) {filter:brightness(1.045);box-shadow:0 3px 12px rgba(92,43,54,.14)}
button.secondary,button.outline {
  color:#592b40;
  background:#fff7e4;
  border:1px solid #bc9861;
}
button:disabled {cursor:not-allowed;opacity:.65;}
label {color:#553748;}
input,select,textarea {
  color:#442d38;
  background:#fffdf7;
  border:1px solid #caaa78;
  min-height:42px;
}
input:focus,select:focus,textarea:focus {border-color:#90526b;outline:2px solid #cfaa72;outline-offset:1px;}
a {color:#793b51;}
a:hover {color:#522038;}
:focus-visible {outline:3px solid #d6ab6d;outline-offset:2px;}
.day {background:rgba(255,250,239,.35);border-color:#ddc79f;color:#573e48;}
.day.outside {background:rgba(235,218,190,.4);color:#826d70;}
.weekday {color:#725664;}
.event {background:#f0d8cd;color:#66334a;border-left:3px solid #b78856;}
.list button,.photo-card,.photo-thumb {
  background:linear-gradient(135deg,#fffaf0,#f3e1bd);
  border:1px solid #d8b987;
  color:#573645;
}
.photo-card small,.photo-thumb figcaption {color:#775e68;}
.project-finalization .quote,.contract-party,.notes {border-color:#d6b987;}
.project-finalization .quote {background:#fff7e6;}
.project-finalization .approval {border-color:#b98c53;}
.alert {background:#f8e0c1;color:#734732;border:1px solid #e6b983;}
.success {color:#34664c;}
#dialog {box-shadow:0 25px 75px rgba(13,4,10,.58);}
#dialog::backdrop {background:rgba(24,5,17,.8);}
#toast {background:#522139;color:#fff2d4;border:1px solid #c5a070;}
.login-box #authPanel button {min-width:155px;}
#content .card label {margin:11px 0;}
#content .card button {margin:5px 6px 5px 0;}
#content a[href$=".pdf"] {display:inline-flex;min-height:42px;align-items:center;padding:9px 14px;
 border:1px solid #b78c50;border-radius:10px;background:#f3e2c1;font-weight:700;}
@media(max-width:800px){
  .tabs {gap:7px;padding-bottom:15px;}
  .tabs button {min-height:43px;padding:10px 13px;}
  .panel {padding:15px;}
  .login-box {padding:26px 20px;}
}
@media(max-width:500px){
  .top{padding:12px;}
  .brand{font-size:17px;}
  .login{min-height:calc(100svh - 68px);padding:14px;}
  .login-box{width:100%;max-width:440px;}
  .tabs{overflow-x:auto;}
  .panel{border-radius:15px;}
  .month{flex-wrap:wrap;}
  #content .card button{min-height:44px;}
}
@media(prefers-reduced-motion:reduce){button{transition:none;}}

/* V0484_EMAIL_ICON_BELOW */
@media (max-width: 600px) {
  a[href^="mailto:"] {
    display: flex !important;
    flex-direction: column-reverse !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    padding: 8px 3px !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    font-size: clamp(10px, 2.9vw, 13px) !important;
    letter-spacing: -0.3px !important;
    text-align: center !important;
  }
  a[href^="mailto:"] > :last-child {
    font-size: inherit !important;
    white-space: nowrap !important;
    word-break: normal !important;
  }
}

/* V0484_EMAIL_ICON_BELOW */
@media (max-width: 600px) {
  a[href^="mailto:"] {
    display: flex !important;
    flex-direction: column-reverse !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    padding: 8px 3px !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    font-size: clamp(10px, 2.9vw, 13px) !important;
    letter-spacing: -0.3px !important;
    text-align: center !important;
  }
  a[href^="mailto:"] > :last-child {
    font-size: inherit !important;
    white-space: nowrap !important;
    word-break: normal !important;
  }
}
