:root{--wine:#710b06;--green:#193e2d;--gold:#b07a34;--paper:#f2e6cf}*{box-sizing:border-box}body{margin:0;min-height:100vh;padding:32px 16px;background:#570100 url('assets/vinho.jpg');color:var(--wine);font-family:Georgia,'Times New Roman',serif}body.dec{background:#203220 url('assets/verde.jpg')}main{position:relative;width:min(100%,850px);margin:auto;padding:0 42px 12px;border:4px solid #ceaa51;background:var(--paper) url('assets/papel.jpg');background-size:110px 104px;box-shadow:0 15px 60px #0003}main:before{content:'';position:absolute;inset:12px;border:1px solid var(--gold);pointer-events:none}.brand{display:block;width:calc(100% + 84px);margin:0 -42px;height:auto}nav{display:flex;justify-content:center;align-items:center;gap:17px;margin:3px 0 19px}button,a{-webkit-tap-highlight-color:transparent}nav button{font:12px Georgia,serif;background:transparent;border:0;border-bottom:1px solid transparent;color:#7e6c52;padding:9px 11px;cursor:pointer}nav button[aria-pressed=true]{color:var(--wine);border-color:var(--gold)}h1{text-align:center;font-size:clamp(34px,5.2vw,55px);font-weight:400;margin:0 0 20px}.eyebrow{text-align:center;text-transform:uppercase;font:14px/1.5 Arial,sans-serif;letter-spacing:.29em;margin:0}.ornament{display:flex;align-items:center;justify-content:center;gap:12px;margin:11px auto 10px;color:var(--gold);font-size:29px;width:80%}.ornament:before,.ornament:after{content:'';height:1px;background:var(--gold);flex:1}.hint{text-align:center;font:12px Arial,sans-serif;color:#756148;margin:3px 0 23px}#calendar{border:1px solid var(--gold)}.week,#grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week span{text-align:center;padding:14px 0;font-size:20px;border-right:1px solid #b07a3470}.week span:last-child{border-right:0}#grid{border-top:1px solid var(--gold)}.day,.empty{position:relative;min-height:101px;border:0;border-bottom:1px solid #b07a3480;border-right:1px solid #b07a3480;background:transparent}.day:nth-child(7n),.empty:nth-child(7n){border-right:0}.day{color:var(--wine);cursor:pointer;text-align:left;padding:9px 11px 6px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.day:hover:not(:disabled){background:#ceaa511c}.day .number{font:25px/1 Georgia,serif}.day:disabled{cursor:default;opacity:.37}.day.today .number{border-bottom:1px solid var(--wine)}.marks{align-self:center;display:flex;gap:4px;align-items:center;min-height:29px}.circle{display:inline-block;width:27px;height:27px;border-radius:50%;flex-shrink:0}.morning{border:2px solid var(--green);background:transparent}.afternoon{background:var(--green);border:2px solid var(--green)}.full{background:var(--wine);border:2px solid var(--wine)}.special{font:9px/1.25 Arial,sans-serif;text-align:center;align-self:center;margin-top:-7px;color:#3e3428}.legend{display:flex;justify-content:center;gap:23px;padding:13px 17px;margin:20px auto 0;border-radius:40px;background:#fff8;max-width:660px}.legend>span{display:flex;align-items:center;gap:8px;font:11px/1.3 Arial,sans-serif;color:var(--green)}.legend>span:last-child{color:var(--wine)}.legend .circle{width:25px;height:25px}#status{font:11px/1.5 Arial,sans-serif;color:#765a34;text-align:center;margin:18px auto 7px;max-width:490px}.unmarked{font:10px/1.5 Arial,sans-serif;text-align:center;color:#756a5a;margin:5px}footer{text-align:center;font-size:20px;color:var(--green);margin:22px 0 8px}footer small{display:block;font:8px/2.4 Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase}.foot{width:100%;display:block;mix-blend-mode:multiply}dialog{border:2px solid var(--gold);max-width:390px;width:calc(100% - 36px);padding:30px 25px 21px;color:var(--wine);text-align:center;background:var(--paper) url('assets/papel.jpg');background-size:110px 104px;box-shadow:0 10px 70px #0004}dialog::backdrop{background:#14251bd1}#close{position:absolute;right:10px;top:6px;background:none;border:0;color:var(--wine);font:29px Georgia,serif;cursor:pointer}.dialog-brand{font-size:12px;letter-spacing:.18em;margin:7px 0 19px}h2{font-size:28px;font-weight:400;margin:0 0 18px}#day-info{font:14px/1.7 Arial,sans-serif;color:#4e493b;min-height:42px}#day-info p{margin:7px 0}#contact{display:inline-block;margin-top:19px;padding:13px 18px;border:1px solid var(--green);color:var(--green);text-decoration:none;font:12px Arial,sans-serif;border-radius:3px;background:#fff3}.note{font:10px/1.5 Arial,sans-serif;color:#756148;margin:17px 0 0}:focus-visible{outline:2px solid var(--green);outline-offset:3px}@media(max-width:600px){body{padding:12px 8px}main{padding:0 17px 7px;border-width:3px}main:before{inset:7px}.brand{width:calc(100% + 34px);margin:0 -17px}nav{gap:12px;margin:4px 0 15px}nav button{font-size:12px;padding:7px 9px}h1{font-size:35px;margin-bottom:15px}.eyebrow{font-size:10px;letter-spacing:.2em}.hint{font-size:11px;margin-bottom:17px}.ornament{margin:5px auto}.week span{font-size:16px;padding:10px 0}.day,.empty{min-height:76px}.day{padding:8px 5px;gap:9px}.day .number{font-size:20px}.circle{width:21px;height:21px}.marks{gap:3px;min-height:22px}.special{font-size:8px;margin-top:-5px}.legend{gap:9px;padding:11px 7px;margin-top:15px;border-radius:8px}.legend>span{font-size:8px;gap:5px}.legend .circle{width:19px;height:19px}#status{font-size:10px;max-width:290px}footer{font-size:18px;margin-top:15px}}
/* Continuous paper and frame, with feathered artwork edges. */
body{padding:40px 18px}
main{--frame:3.65%;padding:0 7% 24px;background-color:#f0e4ce;background-image:radial-gradient(ellipse at 40% 24%,#fff6 0,transparent 70%),url('assets/papel.jpg');background-size:100% 100%,55px 52px;border:3px solid #ceaa51;box-shadow:0 18px 65px #0004}
main:before{inset:23px var(--frame);border-color:#ac7435;border-width:1px;z-index:1}
.brand{position:relative;z-index:2;width:calc(100% / .86);margin-left:calc(-100% * .07 / .86);margin-right:calc(-100% * .07 / .86);mix-blend-mode:multiply;mask-image:linear-gradient(to bottom,#000 0%,#000 81%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 81%,transparent 100%)}
nav{position:relative;z-index:3;margin:-2px 0 16px}
h1{font-size:clamp(34px,5.2vw,55px);margin-bottom:21px}
.eyebrow{letter-spacing:.28em}
.ornament{margin:12px auto 10px;width:78%}
.hint{margin-bottom:23px}
#calendar{position:relative;border:1px solid #a97131;box-shadow:0 0 0 3px #f0e4ce88,0 0 0 4px #b07a3460;background:transparent}
.day,.empty{min-height:107px}
.day:nth-last-child(-n+7),.empty:nth-last-child(-n+7){border-bottom:0}
.day:disabled{opacity:1}.day:disabled .number,.day:disabled .marks{opacity:.35}
.legend{gap:21px;margin-top:25px;padding:13px 15px;background:#fff7;border:1px solid #fff4;box-shadow:none}
#status{margin-top:18px}
footer{margin:24px 0 7px}
.foot{display:none}
main:after{content:'';position:absolute;inset:auto var(--frame) 23px;height:25px;border-bottom:3px double #ae793b;pointer-events:none}
@media(max-width:600px){
 body{padding:15px 9px}
 main{padding:0 6.7% 21px;border-width:3px}
 main:before{inset:12px var(--frame)}
 .brand{width:calc(100% / .866);margin-left:calc(-100% * .067 / .866);margin-right:calc(-100% * .067 / .866)}
 nav{gap:13px;margin:1px 0 15px}
 h1{font-size:clamp(29px,8vw,40px);margin-bottom:17px}
 .eyebrow{font-size:9px;letter-spacing:.23em}
 .ornament{margin:9px auto 7px}
 .hint{font-size:10px;margin-bottom:20px}
 .week span{font-size:15px;padding:11px 0}
 .day,.empty{min-height:73px}
 .day{padding:8px 5px 5px;gap:9px}
 .day .number{font-size:19px}
 .circle{width:21px;height:21px}
 .legend{gap:8px;margin-top:20px;padding:11px 8px;border-radius:30px}
 .legend>span{font-size:8px;gap:5px}
 .legend .circle{width:18px;height:18px}
 footer{margin:21px 0 11px}
 main:after{bottom:12px;height:15px}
}
main{--gutter:58px;padding-left:var(--gutter);padding-right:var(--gutter)}
main:before{border-top:0}
.brand{width:calc(100% + 2 * var(--gutter));margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));mask-image:linear-gradient(to bottom,#000 0%,#000 94%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 94%,transparent 100%)}
@media(max-width:600px){main{--gutter:23px}}
@media(max-width:370px){main{--gutter:19px}.legend>span{font-size:7px}}
main{padding-bottom:0}
main:after{display:none}
.foot{display:block;position:relative;z-index:2;width:calc(100% + 2 * var(--gutter));margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));height:auto;mix-blend-mode:multiply;mask-image:linear-gradient(to bottom,transparent,#000 45%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 45%)}
.brand,.foot{filter:url('#art-ink');mix-blend-mode:normal;mask-image:none;-webkit-mask-image:none}
main:before{border-top:1px solid #ac7435}
main:after{display:block;inset:30px calc(var(--frame) - 7px);height:auto;border:1px solid #ae793b;border-top:0;z-index:0}
@media(max-width:600px){main:after{inset:18px calc(var(--frame) - 3px)}}
/* Footer stays inside the continuous frame; no cropped raster strip. */
footer{position:relative;z-index:1;margin:0;padding:25px 12px 43px;color:var(--green);line-height:1.4}
footer:before{content:'✧';display:block;width:150px;margin:0 auto 14px;color:var(--gold);font-size:23px;line-height:1;background:linear-gradient(var(--gold),var(--gold)) left center/55px 1px no-repeat,linear-gradient(var(--gold),var(--gold)) right center/55px 1px no-repeat}
footer small{margin-top:4px;line-height:1.8}
main:before{bottom:21px}
main:after{bottom:28px}
@media(max-width:600px){footer{padding:22px 0 36px}footer:before{margin-bottom:11px}main:before{bottom:13px}main:after{bottom:17px}}
/* Keep both month choices visibly interactive. */
.month-prompt{position:relative;z-index:2;text-align:center;margin:8px 0 12px;font:12px/1.5 Arial,sans-serif;color:#6d563b;letter-spacing:.03em}
nav{gap:12px;margin:0 auto 26px;max-width:430px}
nav button{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:74px;padding:13px 22px;border:1px solid #ac7435;border-radius:5px;background:#fff5;color:var(--wine);font:22px/1.15 Georgia,serif;box-shadow:0 2px 5px #84552a0e;transition:background .15s,color .15s,box-shadow .15s}
nav button:after{content:'Clique para ver →';font:10px/1.2 Arial,sans-serif;letter-spacing:.025em}
nav button[aria-pressed=true]{background:var(--wine);border-color:var(--wine);color:#fff3d9;box-shadow:0 3px 8px #710b0626}
nav button[aria-pressed=true]:after{content:'Você está neste mês';color:#f2e1c1}
nav button[aria-pressed=false]:hover{background:#fff9;box-shadow:0 3px 10px #84552a25}
body.dec nav button[aria-pressed=true]{background:var(--green);border-color:var(--green)}
@media(max-width:600px){.month-prompt{font-size:11px;margin:9px 0 10px}nav{gap:10px;margin-bottom:23px}nav button{font-size:20px;min-height:70px;padding:12px 8px}nav button:after{font-size:9px}}
@media(prefers-reduced-motion:reduce){nav button{transition:none}}
.footer-logo{display:block;width:min(300px,100%);aspect-ratio:1482/247;margin:0 auto 13px;background-color:#203220;mask-image:url('assets/lucas-pinheiro-logo.png');mask-size:138.1916% auto;mask-position:50% 51.5593%;mask-repeat:no-repeat;-webkit-mask-image:url('assets/lucas-pinheiro-logo.png');-webkit-mask-size:138.1916% auto;-webkit-mask-position:50% 51.5593%;-webkit-mask-repeat:no-repeat}
footer small{color:#203220;font-size:10px;letter-spacing:.13em}
.unmarked{font-size:12px;line-height:1.6;margin:19px 0 0;color:#203220}
#status[hidden]{display:none}
@media(max-width:600px){.footer-logo{width:min(245px,100%)}.unmarked{font-size:11px;margin-top:17px}footer small{font-size:9px}}
#contact[hidden],.note[hidden]{display:none}
dialog{max-width:430px;max-height:calc(100dvh - 36px);overflow-y:auto}
#day-info .slot-intro{font-size:12px;line-height:1.6;margin-bottom:9px}
#day-info .slot-chosen{font-size:12px;font-weight:600;color:#203220;margin:9px 0 18px}
#day-info .period-label{text-align:left;color:var(--wine);font:16px Georgia,serif;margin:18px 0 9px}
.slot-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.slot{min-height:43px;border:1px solid #b07a3480;border-radius:4px;background:#fff6;color:#203220;font:14px Arial,sans-serif;cursor:pointer}
.slot:hover{border-color:#203220;background:#fff9}
.slot[aria-pressed=true]{background:#203220;color:#fff3d9;border-color:#203220}
#day-info .slot-timezone{font-size:10px;margin-top:18px;color:#756148}
#day-info .no-slots{font-size:15px;line-height:1.7;padding:12px 0}
.special{max-width:100%;font-size:9px;line-height:1.3}
@media(max-width:600px){.special{font-size:8px}.day:has(.special){gap:6px;min-height:83px}}
