.al-visits{font-family:'Agenda Locomotiva DM Sans',Arial,sans-serif;color:#222;background:#fff;border:1px solid #ddd;border-radius:10px;padding:28px;max-width:850px;margin:24px auto;line-height:1.5}.al-visits *{box-sizing:border-box}.al-visits h2{font-family:inherit;font-size:28px;line-height:1.2;margin:0 0 14px}.al-visit-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.al-visits label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:14px}.al-visits :is(input,select,textarea){font-family:inherit;font-size:16px;font-weight:400;line-height:1.4;width:100%;min-height:44px;padding:10px;border:1px solid #aaa;border-radius:5px;background:#fff;color:#222}.al-visits .al-visit-consent{flex-direction:row;align-items:flex-start;font-weight:400;margin:20px 0}.al-visit-consent input{width:auto;min-height:0;margin-top:5px}.al-visits button{font-family:inherit;font-weight:700;font-size:16px;min-height:48px;border:0;border-radius:6px;background:#ffcf00;color:#171717;padding:12px 22px;cursor:pointer}.al-visits button:disabled{opacity:.6;cursor:wait}.al-visits [hidden]{display:none!important}.al-visits :focus-visible{outline:2px solid #222;outline-offset:3px}@media(max-width:600px){.al-visits{padding:20px}.al-visit-fields{grid-template-columns:1fr}}
@font-face{font-family:'Agenda Locomotiva Anton';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/Anton-Regular.ttf') format('truetype')}
.al-visits h2{font-family:'Agenda Locomotiva Anton',Anton,sans-serif;font-weight:400;font-size:clamp(30px,5vw,44px);letter-spacing:0;text-transform:uppercase}.al-visit-picker{border:0;padding:0;margin:24px 0;min-width:0}.al-visit-picker legend{font-weight:700;font-size:16px;margin-bottom:12px;padding:0}.al-visit-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.al-visit-times{display:flex;flex-wrap:wrap;gap:8px}.al-visits .al-visit-choice{border:1px solid #d8d8d8;background:#fff;color:#222;border-radius:5px;font-family:inherit;font-size:13px;font-weight:700;line-height:1.4;min-height:58px;padding:10px 6px;white-space:normal;box-shadow:none}.al-visit-days .al-visit-choice{border-top:4px solid #202020}.al-visits .al-visit-choice:hover:not(:disabled){background:#fff4bd}.al-visits .al-visit-choice[aria-pressed=true]{background:#ffcf00;border-color:#222}.al-visits .al-visit-choice:disabled{background:#f3f3f3;color:#999;border-color:#e7e7e7;opacity:1;cursor:default}.al-visit-times .al-visit-choice{min-height:42px;padding:9px 14px}.al-visits [data-al-visit-activities]:not(:empty){padding:12px;background:#faf7e7;border-left:3px solid #ffcf00;font-size:14px}@media(max-width:600px){.al-visit-days{grid-template-columns:repeat(4,minmax(0,1fr))}.al-visits .al-visit-choice{font-size:12px}}

/* Isolated heading rules keep the shortcode consistent inside page-builder popups. */
.al-visits .al-visit-title{font-family:'Agenda Locomotiva Anton',Anton,sans-serif!important;font-size:44px!important;font-weight:400!important;line-height:1.15!important;letter-spacing:0!important;text-transform:uppercase!important;margin:0 0 18px!important;padding:0!important;background:transparent!important;color:#171717!important}
[data-al-visit-duplicate]{display:none!important}
body.al-visit-page .entry-header .entry-title,body.al-visit-page .ast-hero .entry-title{display:none!important}
@media(max-width:600px){.al-visits .al-visit-title{font-size:32px!important}}

/* Shared Casa Locomotiva tokens, with standalone shortcode fallbacks. */
.al-visits{font-family:var(--font-sans,'Agenda Locomotiva DM Sans',Arial,sans-serif);color:var(--ink,#191919);background:var(--surface,#fff);border-color:var(--line-card,#ddd);border-radius:var(--radius-dialog,5px);padding:var(--space-28,28px)}
.al-visit-fields{gap:var(--space-20,20px)}
.al-visits .al-visit-fields :is(input,select,textarea){height:var(--control-min-height,46px);min-height:var(--control-min-height,46px);border:1px solid var(--field-border-accessible,#8a8a8a);border-radius:var(--radius-control,3px);background:var(--surface,#fff);color:var(--ink,#191919);box-shadow:none}
.al-visits .al-visit-fields textarea{resize:vertical;overflow:auto}
.al-visits button{border-radius:var(--radius-control,3px);background:var(--brand-yellow,#febc0f);color:var(--ink-strong,#111)}
.al-visits button:disabled{cursor:default}
.al-visits .al-visit-choice{border-radius:var(--radius-control,3px);border-color:var(--field-border-accessible,#8a8a8a);color:var(--ink,#191919)}
.al-visits .al-visit-choice:hover:not(:disabled){background:var(--brand-cream,#fef3de)}
.al-visits .al-visit-choice[aria-pressed=true]{background:var(--brand-yellow,#febc0f);border-color:var(--ink,#191919)}
.al-visits [data-al-visit-activities]:not(:empty){background:var(--brand-cream,#fef3de);border-color:var(--brand-yellow,#febc0f)}
.al-visits :focus-visible{outline:2px solid var(--focus-ring,#361c75);outline-offset:3px}
@media(max-width:600px){.al-visits{padding:var(--space-20,20px)}}

/* Supporting information for the selected visit, not a second calendar. */
.al-visits [data-al-visit-activities]:not(:empty){margin:12px 0 20px;padding:0 0 0 12px;border-left:2px solid var(--line-card,#ddd);background:transparent;color:var(--ink,#191919);font-size:14px;line-height:1.5}
.al-visit-presence-label{display:block;font-weight:500;color:var(--muted,#757575);font-size:13px;margin-bottom:4px}
.al-visits [data-al-visit-activities] ul{list-style:none;margin:0;padding:0}
.al-visits [data-al-visit-activities] li{margin:2px 0;padding:0}

/* Expose classes and teachers before the visitor chooses a time. */
.al-visit-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.al-visits .al-visit-times .al-visit-choice{text-align:left;padding:10px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.al-visit-slot-context{display:block;font-size:12px;font-weight:400;line-height:1.4;color:inherit}
@media(max-width:600px){.al-visit-times{grid-template-columns:1fr}}

/* 1.9.0: intro with context, available days only, times grouped by class. */
.al-visits{max-width:1040px}
body.al-visit-page .al-visits{border:0;background:transparent;padding-left:0;padding-right:0}
.al-visit-intro{display:grid;gap:var(--space-28,28px);align-items:center;margin-bottom:8px}
.al-visit-intro.has-photo{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.al-visits .al-visit-intro .al-visit-title{font-size:clamp(40px,6vw,72px)!important;line-height:1!important}
.al-visit-lead{font-size:18px;line-height:1.5;margin:0 0 18px;max-width:34em}
.al-visit-facts{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15px}
.al-visit-facts li{padding-left:16px;position:relative}
.al-visit-facts li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--brand-yellow,#febc0f)}
.al-visit-facts a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.al-visit-photo{margin:0;border-radius:var(--radius-dialog,5px);overflow:hidden;aspect-ratio:4/3}
.al-visit-photo img{display:block;width:100%;height:100%;object-fit:cover}
.al-visits .al-visit-picker{margin:32px 0 0}
.al-visits .al-visit-picker legend{font-size:18px}
.al-visits .al-visit-contact .al-visit-fields{margin-top:4px}
.al-visit-days{display:flex;flex-wrap:wrap;gap:8px;grid-template-columns:none}
.al-visits .al-visit-days .al-visit-choice{display:flex;flex-direction:column;align-items:center;gap:0;min-width:76px;min-height:64px;padding:8px 10px;border-top-width:1px;font-size:15px;line-height:1.2}
.al-visit-day-week{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.al-visit-day-date{font-size:16px;font-weight:700}
.al-visit-day-tag,.al-visit-group-tag{font-size:11px;font-weight:700;line-height:1.2;text-transform:uppercase;letter-spacing:.04em}
.al-visit-day-tag{margin-top:3px}
.al-visits .al-visit-days .al-visit-choice.is-course:not([aria-pressed=true]){border-color:var(--ink,#191919);box-shadow:inset 0 -3px 0 var(--brand-yellow,#febc0f)}
.al-visit-times{display:grid;grid-template-columns:1fr;gap:12px}
.al-visit-group{border:1px solid var(--line-card,#ddd);border-radius:var(--radius-dialog,5px);padding:14px 16px}
.al-visit-group.is-course{border-color:var(--ink,#191919);border-width:2px}
.al-visit-group-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 10px}
.al-visit-group-title{font-weight:700;font-size:16px}
.al-visit-group-teacher,.al-visit-group-range{font-size:14px;color:var(--muted,#757575)}
.al-visit-group-tag{background:var(--brand-yellow,#febc0f);color:var(--ink-strong,#111);padding:3px 7px;border-radius:var(--radius-control,3px)}
.al-visit-group-times{display:flex;flex-wrap:wrap;gap:8px}
.al-visits .al-visit-times .al-visit-time{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:72px;padding:8px 12px;font-size:15px;text-align:center}
.al-visits [data-al-visit-activities]:not(:empty){margin:24px 0 0;padding:14px 16px;border-left:3px solid var(--brand-yellow,#febc0f);background:var(--brand-cream,#fef3de)}
.al-visit-when{display:block;font-size:17px;margin-bottom:10px;text-transform:none}
.al-visits .al-visit-consent{margin:24px 0 20px}
.al-visit-done{padding:28px;border:2px solid var(--ink,#191919);border-radius:var(--radius-dialog,5px);margin-top:32px}
.al-visit-done:focus{outline:none}
.al-visits .al-visit-done-when{font-family:inherit;font-size:24px;line-height:1.25;margin:4px 0 10px;text-transform:none}
.al-visit-done p{margin:0 0 10px}
.al-visit-calendar{display:inline-block;margin-top:8px;font-weight:700;color:inherit;text-decoration:underline;text-underline-offset:3px}
@media(max-width:800px){.al-visit-intro.has-photo{grid-template-columns:1fr}.al-visit-photo{order:-1;aspect-ratio:16/9}}
@media(max-width:600px){.al-visits .al-visit-intro .al-visit-title{font-size:40px!important}.al-visit-lead{font-size:16px}.al-visits .al-visit-days .al-visit-choice{min-width:68px}}
.al-visits .al-visit-choice[aria-pressed=true]:not(:disabled){background:var(--brand-yellow,#febc0f);border-color:var(--ink,#191919);color:var(--ink-strong,#111)}
.al-visits legend{color:inherit}
/* Dark mode of the Identidade plugin: the summary and course marks follow its page tokens. */
html[data-lii-theme=dark] .lii-theme-enabled .al-visits [data-al-visit-activities]:not(:empty){background:var(--lii-page-card,#20172d);color:var(--lii-page-ink,#fff9ed)}
html[data-lii-theme=dark] .lii-theme-enabled .al-visits :is(.al-visit-group.is-course,.al-visit-done,.al-visit-days .al-visit-choice.is-course:not([aria-pressed=true])){border-color:var(--lii-page-ink,#fff9ed)}
html[data-lii-theme=dark] .lii-theme-enabled .al-visits .al-visit-choice[aria-pressed=true]:not(:disabled){background:#febc0f;color:#060015;border-color:#febc0f}
/* The page photo appears inside the intro; the theme's featured image would repeat it. */
body.al-visit-page .ast-single-post-featured-section{display:none!important}
/* Compact phone layout: one scrolling row of days, five times per row, extra classes collapsed. */
.al-visits .al-visit-times .al-visit-group[hidden]{display:none!important}
.al-visits .al-visit-more{justify-self:start;background:transparent;color:inherit;border:1px solid var(--ink,#191919);min-height:44px;padding:10px 16px;font-size:15px}
.al-visits .al-visit-more:hover{background:var(--brand-cream,#fef3de)}
html[data-lii-theme=dark] .lii-theme-enabled .al-visits .al-visit-more{border-color:var(--lii-page-ink,#fff9ed)}
html[data-lii-theme=dark] .lii-theme-enabled .al-visits .al-visit-more:hover{background:var(--lii-page-card,#20172d)}
@media(max-width:600px){
 .al-visit-intro{gap:16px}
 .al-visit-photo{aspect-ratio:2/1}
 .al-visit-lead{margin-bottom:12px}
 .al-visit-facts{gap:4px;font-size:14px}
 .al-visits .al-visit-picker{margin-top:24px}
 .al-visit-days{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 0 6px;scrollbar-width:none}
 .al-visit-days::-webkit-scrollbar{display:none}
 .al-visits .al-visit-days .al-visit-choice{position:relative;flex:0 0 auto;min-width:62px;min-height:56px;padding:6px 8px;scroll-snap-align:start}
 .al-visit-day-tag{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .al-visits .al-visit-days .al-visit-choice.is-course{box-shadow:inset 0 -4px 0 var(--brand-yellow,#febc0f)}
 .al-visit-times{gap:10px}
 .al-visit-group{padding:12px}
 .al-visit-group-head{margin-bottom:8px;gap:2px 8px}
 .al-visit-group-times{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
 .al-visits .al-visit-times .al-visit-time{min-width:0;min-height:40px;padding:6px 2px;font-size:14px}
 .al-visits [data-al-visit-activities]:not(:empty){margin-top:16px;padding:12px}
 .al-visit-fields{gap:14px}
}
@media(max-width:800px){.al-visit-intro-media{order:-1}}
/* Day buttons: content centred vertically, no empty line under the date. */
.al-visits .al-visit-days .al-visit-choice{justify-content:center;min-height:56px;padding:8px 10px}

/* 1.11.1: larger type across the page; the photo strip scrolls inside the framed window. */
.al-visit-strip{display:flex;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab}
.al-visit-photo.al-visit-strip img{flex:0 0 auto;width:auto;height:100%;max-width:none;object-fit:cover;cursor:zoom-in;-webkit-user-drag:none}
.al-visit-intro-media{min-width:0;display:flex}
.al-visit-strip::-webkit-scrollbar{display:none}
.al-visit-strip.is-dragging{cursor:grabbing;user-select:none}
.al-visit-strip img:focus-visible{outline:3px solid var(--focus-ring,#361c75);outline-offset:-3px}
.al-visit-lead{font-size:22px;line-height:1.5}
.al-visit-facts{font-size:18px;gap:10px}
.al-visit-facts li::before{top:.55em;width:8px;height:8px}
.al-visits .al-visit-picker legend{font-size:24px;margin-bottom:16px}
.al-visits .al-visit-days .al-visit-choice{min-width:84px;min-height:64px}
.al-visit-day-week{font-size:13px}
.al-visit-day-date{font-size:19px}
.al-visit-group-title{font-size:19px}
.al-visit-group-teacher,.al-visit-group-range{font-size:16px}
.al-visits .al-visit-times .al-visit-time{font-size:17px;min-height:46px;min-width:80px}
.al-visits .al-visit-more{font-size:17px}
.al-visits [data-al-visit-activities]:not(:empty){font-size:16px}
.al-visit-presence-label{font-size:14px}
.al-visit-when{font-size:20px}
.al-visits label{font-size:16px}
.al-visits .al-visit-fields :is(input,textarea){font-size:17px}
.al-visits .al-visit-consent{font-size:16px}
.al-visits button[type=submit]{font-size:18px;min-height:52px;padding:14px 28px}
.al-visits [data-al-visit-result]{font-size:16px}
.al-visits .al-visit-done-when{font-size:28px}
.al-visit-done{font-size:17px}
@media(max-width:800px){
}
@media(max-width:600px){
 .al-visit-lead{font-size:18px}
 .al-visit-facts{font-size:16px}
 .al-visits .al-visit-picker legend{font-size:20px}
 .al-visits .al-visit-days .al-visit-choice{min-width:68px;min-height:56px}
 .al-visit-day-date{font-size:17px}
 .al-visit-group-title{font-size:17px}
 .al-visit-group-teacher,.al-visit-group-range{font-size:15px}
 .al-visits .al-visit-times .al-visit-time{font-size:15px;min-width:0;min-height:42px}
}
.al-visit-intro-media>.al-visit-photo{flex:1;min-width:0}

/* Map at the end of the visit page (1.12.0): framed window like the photos, button over the map. */
.al-visit-map{margin-top:72px;scroll-margin-top:96px}
.al-visits .al-visit-map-title{font-family:'Agenda Locomotiva Anton',Anton,sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(32px,4vw,48px);line-height:1.05;margin:0 0 8px}
.al-visit-map-address{font-size:18px;margin:0 0 20px}
.al-visit-map-frame{position:relative;height:clamp(320px,38vw,460px);border-radius:var(--radius-dialog,5px);overflow:hidden;background:var(--brand-cream,#fef3de);border:1px solid var(--line-card,#ddd)}
.al-visit-map-canvas{position:absolute;inset:0}
.al-visits .al-visit-map-open{position:absolute;z-index:2;top:16px;left:16px;display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:12px 18px;border-radius:var(--radius-control,3px);background:var(--brand-yellow,#febc0f);color:var(--ink-strong,#111);font-weight:700;font-size:16px;text-decoration:none;box-shadow:0 2px 10px rgba(6,0,21,.18)}
.al-visits .al-visit-map-open:hover{filter:brightness(.95)}
.al-visits .al-visit-map-open:focus-visible{outline:3px solid var(--ink,#191919);outline-offset:3px}
.al-visit-map-frame.is-failed::after{content:"Não foi possível carregar o mapa.";position:absolute;inset:auto 16px 16px;font-size:15px}
.al-visit-map-pin{display:flex;align-items:center;gap:8px;pointer-events:none}
.al-visit-map-pin-dot{width:22px;height:22px;border-radius:50%;background:#FF006F;border:4px solid #FFFEEE;box-shadow:0 0 0 2px #060015}
.al-visit-map-pin-label{font:700 15px/1.2 var(--font-sans,'DM Sans',sans-serif);background:#060015;color:#FFFEEE;padding:6px 10px;border-radius:3px;white-space:nowrap}
.al-visit-map .maplibregl-ctrl-attrib{font-size:11px}
html[data-lii-theme=dark] .lii-theme-enabled .al-visit-map-frame{background:#100b1b;border-color:var(--lii-page-line,#564b65)}
html[data-lii-theme=dark] .lii-theme-enabled .al-visit-map-pin-dot{border-color:#060015;box-shadow:0 0 0 2px #FFFEEE}
html[data-lii-theme=dark] .lii-theme-enabled .al-visit-map-pin-label{background:#FFFEEE;color:#060015}
@media(max-width:600px){.al-visit-map{margin-top:48px}.al-visit-map-address{font-size:16px}.al-visit-map-frame{height:340px}.al-visits .al-visit-map-open{top:12px;left:12px;font-size:15px;min-height:44px;padding:10px 14px}}
.al-visits .al-visit-map-open,.al-visits .al-visit-map-open:hover{text-decoration:none!important;color:var(--ink-strong,#111)!important}
.al-visits .al-visit-map-title{color:inherit}
html[data-lii-theme=dark] .lii-theme-enabled .al-visits .al-visit-map-title{color:var(--lii-page-ink,#fff9ed)}
/* Map controls keep MapLibre's own look instead of the form's yellow buttons. */
.al-visits .maplibregl-ctrl-group button{width:36px;height:36px;min-height:0;padding:0;border-radius:0;background-color:#FFFEEE;color:#060015;font-size:0;box-shadow:none}
.al-visits .maplibregl-ctrl-group button:hover{background-color:#FEF3DE}
.al-visits .maplibregl-ctrl-group{border-radius:3px;overflow:hidden;box-shadow:0 2px 10px rgba(6,0,21,.18)}
.al-visits .maplibregl-ctrl-attrib-button{min-height:0;padding:0;background-color:transparent}
/* "Ver mais turmas" (1.12.1): highlighted as the next action, not a quiet outline. */
.al-visits .al-visit-more{display:inline-flex;align-items:center;gap:10px;background:var(--brand-black,#060015);color:var(--brand-cream-soft,#FFFEEE);border:2px solid var(--brand-black,#060015);font-weight:700;min-height:52px;padding:12px 22px}
.al-visits .al-visit-more::before{content:"+";display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--brand-yellow,#febc0f);color:var(--brand-black,#060015);font-size:18px;line-height:1}
.al-visits .al-visit-more:hover{background:var(--brand-purple,#361C75);border-color:var(--brand-purple,#361C75);color:var(--brand-cream-soft,#FFFEEE)}
html[data-lii-theme=dark] .lii-theme-enabled .al-visits .al-visit-more{background:var(--brand-yellow,#febc0f);color:var(--brand-black,#060015);border-color:var(--brand-yellow,#febc0f)}
html[data-lii-theme=dark] .lii-theme-enabled .al-visits .al-visit-more::before{background:var(--brand-black,#060015);color:var(--brand-yellow,#febc0f)}
html[data-lii-theme=dark] .lii-theme-enabled .al-visits .al-visit-more:hover{background:var(--brand-cream-soft,#FFFEEE);border-color:var(--brand-cream-soft,#FFFEEE)}
@media(max-width:600px){.al-visits .al-visit-more{width:100%;justify-content:center}}
.al-visit-map-frame.is-loading::after{content:"Carregando o mapa…";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:16px;color:var(--muted,#757575)}
.al-visit-map-frame.is-failed::after{content:"O mapa não carregou aqui. Use o botão acima para abrir no Google Maps.";left:16px;right:16px;bottom:16px;top:auto;transform:none;font-size:16px;color:var(--ink,#191919)}
html[data-lii-theme=dark] .lii-theme-enabled .al-visit-map-frame.is-failed::after{color:var(--lii-page-ink,#fff9ed)}
.al-visit-map-frame.is-failed::after{content:"O mapa não carregou aqui (etapa: " attr(data-stage) "). Use o botão acima para abrir no Google Maps."}

/* MapLibre carrega depois: especificidade preserva a altura da janela. */
.al-visit-map-frame>.al-visit-map-canvas.maplibregl-map{position:absolute;inset:0;width:100%;height:100%;}

/* 1.12.4: title spans the intro; each calendar week starts a new desktop row. */
.al-visits .al-visit-intro>.al-visit-title{grid-column:1/-1;white-space:nowrap;font-size:clamp(26px,6vw,72px)!important;margin-bottom:0!important}
.al-visit-week-break{flex-basis:100%;height:0}
@media(max-width:600px){.al-visit-week-break{display:none}.al-visits .al-visit-intro>.al-visit-title{font-size:clamp(20px,7.2vw,40px)!important}}

/* No frame around the visit content, including inside the popup. */
.al-visits{border:0;box-shadow:none}

/* al-faixa-leve-2 (Velocidade 12/11/2026): com "As fotos rolam sozinhas", a faixa anda por uma animação do navegador
   numa trilha interna (transform), sem rolar a faixa quadro a quadro. Arrastar para o lado move; rolar a página continua livre. */
.al-visit-strip.is-auto{overflow:hidden;touch-action:pan-y}
.al-visit-strip-track{display:flex;flex:0 0 auto;height:100%;will-change:transform}
.al-visit-strip-track img{flex:0 0 auto;width:auto;height:100%;max-width:none;object-fit:cover}
