diff --git a/web/modules/custom/riverside_pt/css/app.css b/web/modules/custom/riverside_pt/css/app.css index 4bea331..37469ee 100644 --- a/web/modules/custom/riverside_pt/css/app.css +++ b/web/modules/custom/riverside_pt/css/app.css @@ -1,3 +1,3 @@ @import url("https://fonts.googleapis.com/css2?family=Hedvig+Letters+Sans:wght@400;500;600&display=swap");*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: } -/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1780px){.container{max-width:1780px}}@media (max-width:calc(1024px - 1px)){#rpt-main-nav{flex:none;position:static;order:10;width:100%;background:#fff;border-top:1px solid #e5e7eb;max-height:0;overflow:hidden;opacity:0;transition:max-height .3s ease,opacity .25s ease}#rpt-main-nav.is-open{max-height:500px;opacity:1}#rpt-main-nav ul{flex-direction:column;align-items:stretch}}.rpt-header__hamburger[aria-expanded=true] span:first-child{width:100%!important;transform:translateY(10px) rotate(45deg)}.rpt-header__hamburger[aria-expanded=true] span:nth-child(2){opacity:0}.rpt-header__hamburger[aria-expanded=true] span:nth-child(3){width:100%!important;transform:translateY(-10px) rotate(-45deg)}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-3{left:.75rem}.right-3{right:.75rem}.top-1\/2{top:50%}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mb-0\.5{margin-bottom:.125rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-\[1vw\]{margin-bottom:1vw}.ml-auto{margin-left:auto}.mt-0{margin-top:0}.mt-2{margin-top:.5rem}.mt-\[2vw\]{margin-top:2vw}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-14{height:3.5rem}.h-3{height:.75rem}.h-48{height:12rem}.h-72{height:18rem}.h-\[420px\]{height:420px}.h-full{height:100%}.min-h-\[480px\]{min-height:480px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-3{width:.75rem}.w-\[45\%\]{width:45%}.w-full{width:100%}.min-w-0{min-width:0}.max-w-\[1040px\]{max-width:1040px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[520px\]{max-width:520px}.max-w-\[560px\]{max-width:560px}.max-w-\[860px\]{max-width:860px}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.basis-full{flex-basis:100%}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[1vw\]{gap:1vw}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-0{row-gap:0}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[\#1e3a5f\]{--tw-border-opacity:1;border-color:rgb(30 58 95/var(--tw-border-opacity,1))}.border-\[\#306f8e\]{--tw-border-opacity:1;border-color:rgb(48 111 142/var(--tw-border-opacity,1))}.border-\[\#b8d4dc\]{--tw-border-opacity:1;border-color:rgb(184 212 220/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-pt-blue-300{--tw-border-opacity:1;border-color:rgb(157 189 203/var(--tw-border-opacity,1))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.bg-\[\#1e3a5f\]{--tw-bg-opacity:1;background-color:rgb(30 58 95/var(--tw-bg-opacity,1))}.bg-\[\#306f8e\]{--tw-bg-opacity:1;background-color:rgb(48 111 142/var(--tw-bg-opacity,1))}.bg-\[\#86AAB6\]{--tw-bg-opacity:1;background-color:rgb(134 170 182/var(--tw-bg-opacity,1))}.bg-\[\#dde8f0\]{--tw-bg-opacity:1;background-color:rgb(221 232 240/var(--tw-bg-opacity,1))}.bg-current{background-color:currentColor}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/90{background-color:hsla(0,0%,100%,.9)}.bg-\[linear-gradient\(180deg\2c \#83A1A1_0\%\2c \#86AAB6_100\%\)\]{background-image:linear-gradient(180deg,#83a1a1,#86aab6)}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black\/60{--tw-gradient-from:rgba(0,0,0,.6) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-black\/30{--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(0,0,0,.3) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.object-\[center_0\%\]{-o-object-position:center 0;object-position:center 0}.p-0{padding:0}.p-2{padding:.5rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[4em\]{padding-left:4em;padding-right:4em}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-\[1em\]{padding-top:1em;padding-bottom:1em}.pb-1{padding-bottom:.25rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pr-6{padding-right:1.5rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.pt-px{padding-top:1px}.text-left{text-align:left}.text-center{text-align:center}.font-hedvig{font-family:Hedvig Letters Sans,sans-serif}.font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.text-\[15px\]{font-size:15px}.text-\[2\.25rem\]{font-size:2.25rem}.text-\[4\.5rem\]{font-size:4.5rem}.text-\[clamp\(0\.25rem\2c 1vw\2c 1\.25vw\)\]{font-size:clamp(.25rem,1vw,1.25vw)}.text-\[clamp\(1\.5rem\2c 3\.5vw\2c 3\.25rem\)\]{font-size:clamp(1.5rem,3.5vw,3.25rem)}.text-\[clamp\(1\.75rem\2c 3vw\2c 2\.5rem\)\]{font-size:clamp(1.75rem,3vw,2.5rem)}.text-\[clamp\(1rem\2c 2vw\2c 1\.5vw\)\]{font-size:clamp(1rem,2vw,1.5vw)}.text-\[clamp\(2\.5rem\2c 5vw\2c 4rem\)\]{font-size:clamp(2.5rem,5vw,4rem)}.text-\[clamp\(2\.75rem\2c 4\.5vw\2c 4rem\)\]{font-size:clamp(2.75rem,4.5vw,4rem)}.text-\[clamp\(3\.5rem\2c 8vw\2c 6rem\)\]{font-size:clamp(3.5rem,8vw,6rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-\[1\.1\]{line-height:1.1}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-widest{letter-spacing:.1em}.text-\[\#1e3a8a\]{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-\[\#306f8e\]{--tw-text-opacity:1;color:rgb(48 111 142/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/80{color:hsla(0,0%,100%,.8)}.no-underline{text-decoration-line:none}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[transform\2c opacity\]{transition-property:transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-\[250ms\]{transition-duration:.25s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[text-shadow\:-56\.21px_2\.55px_10\.22px_\#0000001A\]{text-shadow:-56.21px 2.55px 10.22px #0000001a}.hover\:border-\[\#1f5a6e\]:hover{--tw-border-opacity:1;border-color:rgb(31 90 110/var(--tw-border-opacity,1))}.hover\:bg-\[\#1f5a6e\]:hover{--tw-bg-opacity:1;background-color:rgb(31 90 110/var(--tw-bg-opacity,1))}.hover\:bg-\[\#6f8f96\]:hover{--tw-bg-opacity:1;background-color:rgb(111 143 150/var(--tw-bg-opacity,1))}.hover\:bg-\[\#e8f2f6\]:hover{--tw-bg-opacity:1;background-color:rgb(232 242 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:text-\[\#1e3a8a\]:hover{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.hover\:text-\[\#285a6e\]:hover{--tw-text-opacity:1;color:rgb(40 90 110/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.disabled\:opacity-30:disabled{opacity:.3}@media not all and (min-width:768px){.max-sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:hidden{display:none}.sm\:w-auto{width:auto}.sm\:grow{flex-grow:1}.sm\:grow-\[2\]{flex-grow:2}.sm\:basis-\[10\%\]{flex-basis:10%}.sm\:basis-\[34\%\]{flex-basis:34%}.sm\:basis-\[40\%\]{flex-basis:40%}.sm\:basis-\[50\%\]{flex-basis:50%}.sm\:basis-\[58\%\]{flex-basis:58%}.sm\:basis-\[8\%\]{flex-basis:8%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:justify-center{justify-content:center}.sm\:px-0{padding-left:0;padding-right:0}.sm\:pb-0{padding-bottom:0}.sm\:pb-8{padding-bottom:2rem}.sm\:pt-8{padding-top:2rem}.sm\:text-\[clamp\(0\.25rem\2c 1vw\2c 1\.25vw\)\]{font-size:clamp(.25rem,1vw,1.25vw)}}@media (min-width:1024px){.md\:fixed{position:fixed}.md\:left-0{left:0}.md\:right-0{right:0}.md\:top-0{top:0}.md\:z-50{z-index:50}.md\:mt-\[78px\]{margin-top:78px}.md\:hidden{display:none}.md\:h-\[520px\]{height:520px}.md\:h-full{height:100%}.md\:w-\[46\%\]{width:46%}.md\:flex-row{flex-direction:row}.md\:gap-20{gap:5rem}.md\:gap-8{gap:2rem}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1780px){.\32xl\:static{position:static}.\32xl\:inset-auto{inset:auto}.\32xl\:flex{display:flex}.\32xl\:hidden{display:none}.\32xl\:min-h-0{min-height:0}.\32xl\:w-\[62\%\]{width:62%}.\32xl\:flex-1{flex:1 1 0%}.\32xl\:flex-none{flex:none}.\32xl\:grow-0{flex-grow:0}.\32xl\:basis-full{flex-basis:100%}.\32xl\:justify-center{justify-content:center}.\32xl\:bg-\[\#86AAB6\]{--tw-bg-opacity:1;background-color:rgb(134 170 182/var(--tw-bg-opacity,1))}.\32xl\:p-0{padding:0}.\32xl\:pb-0{padding-bottom:0}.\32xl\:pl-16{padding-left:4rem}.\32xl\:pr-12{padding-right:3rem}} \ No newline at end of file +/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1780px){.container{max-width:1780px}}@media (max-width:calc(1024px - 1px)){#rpt-main-nav{flex:none;position:static;order:10;width:100%;background:#fff;border-top:1px solid #e5e7eb;max-height:0;overflow:hidden;opacity:0;transition:max-height .3s ease,opacity .25s ease}#rpt-main-nav.is-open{max-height:500px;opacity:1}#rpt-main-nav ul{flex-direction:column;align-items:stretch}}.rpt-header__hamburger[aria-expanded=true] span:first-child{width:100%!important;transform:translateY(10px) rotate(45deg)}.rpt-header__hamburger[aria-expanded=true] span:nth-child(2){opacity:0}.rpt-header__hamburger[aria-expanded=true] span:nth-child(3){width:100%!important;transform:translateY(-10px) rotate(-45deg)}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-3{left:.75rem}.right-3{right:.75rem}.top-1\/2{top:50%}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mb-0\.5{margin-bottom:.125rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-\[1vw\]{margin-bottom:1vw}.ml-auto{margin-left:auto}.mt-0{margin-top:0}.mt-2{margin-top:.5rem}.mt-\[2vw\]{margin-top:2vw}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-14{height:3.5rem}.h-3{height:.75rem}.h-48{height:12rem}.h-72{height:18rem}.h-\[420px\]{height:420px}.h-full{height:100%}.min-h-\[480px\]{min-height:480px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-3{width:.75rem}.w-\[45\%\]{width:45%}.w-full{width:100%}.min-w-0{min-width:0}.max-w-\[1040px\]{max-width:1040px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[520px\]{max-width:520px}.max-w-\[560px\]{max-width:560px}.max-w-\[860px\]{max-width:860px}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.basis-full{flex-basis:100%}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[1vw\]{gap:1vw}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-0{row-gap:0}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[\#1e3a5f\]{--tw-border-opacity:1;border-color:rgb(30 58 95/var(--tw-border-opacity,1))}.border-\[\#306f8e\]{--tw-border-opacity:1;border-color:rgb(48 111 142/var(--tw-border-opacity,1))}.border-\[\#b8d4dc\]{--tw-border-opacity:1;border-color:rgb(184 212 220/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-pt-blue-300{--tw-border-opacity:1;border-color:rgb(157 189 203/var(--tw-border-opacity,1))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.bg-\[\#1e3a5f\]{--tw-bg-opacity:1;background-color:rgb(30 58 95/var(--tw-bg-opacity,1))}.bg-\[\#306f8e\]{--tw-bg-opacity:1;background-color:rgb(48 111 142/var(--tw-bg-opacity,1))}.bg-\[\#86AAB6\]{--tw-bg-opacity:1;background-color:rgb(134 170 182/var(--tw-bg-opacity,1))}.bg-\[\#dde8f0\]{--tw-bg-opacity:1;background-color:rgb(221 232 240/var(--tw-bg-opacity,1))}.bg-current{background-color:currentColor}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/90{background-color:hsla(0,0%,100%,.9)}.bg-\[linear-gradient\(180deg\2c \#83A1A1_0\%\2c \#86AAB6_100\%\)\]{background-image:linear-gradient(180deg,#83a1a1,#86aab6)}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black\/60{--tw-gradient-from:rgba(0,0,0,.6) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-black\/30{--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(0,0,0,.3) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.object-\[center_0\%\]{-o-object-position:center 0;object-position:center 0}.p-0{padding:0}.p-2{padding:.5rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[4em\]{padding-left:4em;padding-right:4em}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-\[1em\]{padding-top:1em;padding-bottom:1em}.pb-1{padding-bottom:.25rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pr-6{padding-right:1.5rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.pt-px{padding-top:1px}.text-left{text-align:left}.text-center{text-align:center}.font-hedvig{font-family:Hedvig Letters Sans,sans-serif}.font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.text-\[15px\]{font-size:15px}.text-\[2\.25rem\]{font-size:2.25rem}.text-\[4\.5rem\]{font-size:4.5rem}.text-\[clamp\(0\.25rem\2c 1vw\2c 1\.25vw\)\]{font-size:clamp(.25rem,1vw,1.25vw)}.text-\[clamp\(1\.5rem\2c 3\.5vw\2c 3\.25rem\)\]{font-size:clamp(1.5rem,3.5vw,3.25rem)}.text-\[clamp\(1\.75rem\2c 3vw\2c 2\.5rem\)\]{font-size:clamp(1.75rem,3vw,2.5rem)}.text-\[clamp\(1rem\2c 2vw\2c 1\.5vw\)\]{font-size:clamp(1rem,2vw,1.5vw)}.text-\[clamp\(2\.5rem\2c 5vw\2c 4rem\)\]{font-size:clamp(2.5rem,5vw,4rem)}.text-\[clamp\(2\.75rem\2c 4\.5vw\2c 4rem\)\]{font-size:clamp(2.75rem,4.5vw,4rem)}.text-\[clamp\(3\.5rem\2c 8vw\2c 6rem\)\]{font-size:clamp(3.5rem,8vw,6rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-\[1\.1\]{line-height:1.1}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-widest{letter-spacing:.1em}.text-\[\#1e3a8a\]{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-\[\#306f8e\]{--tw-text-opacity:1;color:rgb(48 111 142/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/80{color:hsla(0,0%,100%,.8)}.no-underline{text-decoration-line:none}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[transform\2c opacity\]{transition-property:transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-\[250ms\]{transition-duration:.25s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[text-shadow\:-56\.21px_2\.55px_10\.22px_\#0000001A\]{text-shadow:-56.21px 2.55px 10.22px #0000001a}.hover\:border-\[\#1f5a6e\]:hover{--tw-border-opacity:1;border-color:rgb(31 90 110/var(--tw-border-opacity,1))}.hover\:bg-\[\#1f5a6e\]:hover{--tw-bg-opacity:1;background-color:rgb(31 90 110/var(--tw-bg-opacity,1))}.hover\:bg-\[\#6f8f96\]:hover{--tw-bg-opacity:1;background-color:rgb(111 143 150/var(--tw-bg-opacity,1))}.hover\:bg-\[\#e8f2f6\]:hover{--tw-bg-opacity:1;background-color:rgb(232 242 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:text-\[\#1e3a8a\]:hover{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.hover\:text-\[\#285a6e\]:hover{--tw-text-opacity:1;color:rgb(40 90 110/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.disabled\:opacity-30:disabled{opacity:.3}@media not all and (min-width:768px){.max-sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:hidden{display:none}.sm\:w-auto{width:auto}.sm\:grow{flex-grow:1}.sm\:grow-\[2\]{flex-grow:2}.sm\:basis-\[10\%\]{flex-basis:10%}.sm\:basis-\[34\%\]{flex-basis:34%}.sm\:basis-\[40\%\]{flex-basis:40%}.sm\:basis-\[50\%\]{flex-basis:50%}.sm\:basis-\[58\%\]{flex-basis:58%}.sm\:basis-\[8\%\]{flex-basis:8%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:justify-center{justify-content:center}.sm\:px-0{padding-left:0;padding-right:0}.sm\:pb-0{padding-bottom:0}.sm\:pb-8{padding-bottom:2rem}.sm\:pt-8{padding-top:2rem}.sm\:text-\[clamp\(0\.25rem\2c 1vw\2c 1\.25vw\)\]{font-size:clamp(.25rem,1vw,1.25vw)}}@media (min-width:1024px){.md\:fixed{position:fixed}.md\:left-0{left:0}.md\:right-0{right:0}.md\:top-0{top:0}.md\:z-50{z-index:50}.md\:mt-\[78px\]{margin-top:78px}.md\:hidden{display:none}.md\:h-\[520px\]{height:520px}.md\:h-full{height:100%}.md\:w-\[46\%\]{width:46%}.md\:flex-row{flex-direction:row}.md\:gap-20{gap:5rem}.md\:gap-8{gap:2rem}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1780px){.\32xl\:static{position:static}.\32xl\:inset-auto{inset:auto}.\32xl\:flex{display:flex}.\32xl\:hidden{display:none}.\32xl\:min-h-0{min-height:0}.\32xl\:w-\[62\%\]{width:62%}.\32xl\:flex-1{flex:1 1 0%}.\32xl\:flex-none{flex:none}.\32xl\:grow-0{flex-grow:0}.\32xl\:basis-full{flex-basis:100%}.\32xl\:justify-center{justify-content:center}.\32xl\:bg-\[\#86AAB6\]{--tw-bg-opacity:1;background-color:rgb(134 170 182/var(--tw-bg-opacity,1))}.\32xl\:p-0{padding:0}.\32xl\:pb-0{padding-bottom:0}.\32xl\:pl-16{padding-left:4rem}.\32xl\:pr-12{padding-right:3rem}} \ No newline at end of file diff --git a/web/modules/custom/riverside_pt/css/calendar.css b/web/modules/custom/riverside_pt/css/calendar.css index f073eaf..347a49e 100644 --- a/web/modules/custom/riverside_pt/css/calendar.css +++ b/web/modules/custom/riverside_pt/css/calendar.css @@ -1,8 +1,145 @@ #riverside-calendar { max-width: 480px; - font-size: 0.8rem; + font-size: 0.9rem; } +/* ── Strip all borders ── */ +#riverside-calendar .fc-scrollgrid, +#riverside-calendar .fc-scrollgrid-section > *, +#riverside-calendar td, +#riverside-calendar th { + border: none !important; +} + +/* ── Header toolbar ── */ +#riverside-calendar .fc-header-toolbar { + justify-content: center; + gap: 0.25rem; + margin-bottom: 1.25rem; +} + +#riverside-calendar .fc-toolbar-title { + font-family: Georgia, 'Times New Roman', serif; + font-size: 1.35rem; + font-weight: normal; + color: #111; +} + +#riverside-calendar .fc-toolbar-title::after { + content: ' \25BC'; + font-size: 0.6em; + vertical-align: middle; + color: #374151; +} + +#riverside-calendar .fc-button-group, +#riverside-calendar .fc-button { + background: none !important; + border: none !important; + box-shadow: none !important; + color: #6b7280 !important; + font-size: 1rem; + padding: 0.2rem 0.4rem; + cursor: pointer; +} + +#riverside-calendar .fc-button:hover { + color: #111 !important; +} + +#riverside-calendar .fc-button:focus { + outline: none !important; + box-shadow: none !important; +} + +/* ── Day-of-week header row (S M T W T F S) ── */ +#riverside-calendar .fc-col-header-cell { + padding: 0.4rem 0; + border: none; +} + +#riverside-calendar .fc-col-header-cell-cushion { + font-size: 0.8rem; + font-weight: normal; + color: #9ca3af; + text-decoration: none; + padding: 0; +} + +/* ── Day cells ── */ +#riverside-calendar .fc-daygrid-day-frame { + min-height: 3rem !important; + display: flex; + align-items: center; + justify-content: center; + padding: 0; +} + +#riverside-calendar .fc-daygrid-day-top { + flex-direction: row; + justify-content: center; + padding: 0; +} + +#riverside-calendar .fc-daygrid-day-number { + width: 2.5rem; + height: 2.5rem; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.9rem; + color: #9ca3af; + text-decoration: none; + padding: 0; + line-height: 1; + transition: background 0.15s, color 0.15s; +} + +/* Days with available slots — teal outline circle */ +#riverside-calendar .fc-daygrid-day.has-availability .fc-daygrid-day-number { + border: 2px solid #306f8e; + color: #111; + cursor: pointer; +} + +#riverside-calendar .fc-daygrid-day.has-availability .fc-daygrid-day-number:hover { + background: #dde8f0; +} + +/* Selected day — filled teal circle */ +#riverside-calendar .fc-daygrid-day.is-selected .fc-daygrid-day-number { + background: #306f8e; + border: 2px solid #306f8e; + color: #fff !important; +} + +/* Days in other months */ +#riverside-calendar .fc-day-other .fc-daygrid-day-number { + color: #d1d5db !important; + border-color: transparent !important; +} + +/* Today — no special background, let availability/selected styles win */ +#riverside-calendar .fc-day-today { + background: none !important; +} + +/* ── Hide all event bars, harnesses, and more-links ── */ +#riverside-calendar .fc-event, +#riverside-calendar .fc-daygrid-event-harness, +#riverside-calendar .fc-daygrid-more-link, +#riverside-calendar .fc-more-popover, +#riverside-calendar .riverside-holiday-label { + display: none !important; +} + +/* ── Daygrid body rows — give them breathing room ── */ +#riverside-calendar .fc-daygrid-body tr { + height: 3.5rem; +} + +/* ── Booking backdrop & panel ── */ #riverside-booking-backdrop { position: fixed; inset: 0; @@ -54,35 +191,13 @@ #riverside-booking-slots li { padding: 0.5rem 0.75rem; - border: 1px solid #3b82f6; + border: 1px solid #306f8e; border-radius: 4px; cursor: pointer; font-size: 0.85rem; - color: #1d4ed8; + color: #306f8e; } #riverside-booking-slots li:hover { - background: #eff6ff; -} - -#riverside-calendar .fc-more-popover { - display: none; -} - -#riverside-calendar .is-holiday .fc-more-link { - display: none; -} - -#riverside-calendar .fc-day-other .riverside-holiday-label, -#riverside-calendar .fc-day-other .fc-more-link { - opacity: 0.4; -} - -#riverside-calendar .riverside-holiday-label { - overflow-wrap: break-word; - line-height: 1; - font-size: 0.65rem; - color: #b45309; - text-align: center; - padding: 2px; + background: #dde8f0; } diff --git a/web/modules/custom/riverside_pt/js/calendar.js b/web/modules/custom/riverside_pt/js/calendar.js index f542489..92180dd 100644 --- a/web/modules/custom/riverside_pt/js/calendar.js +++ b/web/modules/custom/riverside_pt/js/calendar.js @@ -1,109 +1,124 @@ (function (drupalSettings) { document.addEventListener('DOMContentLoaded', function () { - const el = document.getElementById('riverside-calendar'); + var el = document.getElementById('riverside-calendar'); if (!el) return; requestAnimationFrame(function () { + var selectedDate = null; - const calendar = new FullCalendar.Calendar(el, { - initialView: 'dayGridMonth', - headerToolbar: { left: 'prev', center: 'title', right: 'next' }, - validRange: function (now) { - return { - start: new Date(now.getFullYear(), now.getMonth(), 1), - end: new Date(now.getFullYear(), now.getMonth() + 7, 1), - }; - }, - fixedWeekCount: false, - height: 'auto', - events: drupalSettings.riversidePt.eventsUrl, - eventBackgroundColor: '#3b82f6', - eventBorderColor: '#3b82f6', - dayMaxEvents: 0, - moreLinkContent: function (arg) { - return arg.num + ' slot' + (arg.num !== 1 ? 's' : ''); - }, - dayCellClassNames: function (arg) { - const date = arg.date.toISOString().substring(0, 10); - if (drupalSettings.riversidePt.holidays[date]) return ['is-holiday']; - }, - dayCellDidMount: function (arg) { - const date = arg.date.toISOString().substring(0, 10); - const holiday = drupalSettings.riversidePt.holidays[date]; - if (!holiday) return; - const label = document.createElement('div'); - label.className = 'riverside-holiday-label'; - label.textContent = holiday; - const dayTop = arg.el.querySelector('.fc-daygrid-day-top'); - if (dayTop) { - dayTop.insertAdjacentElement('afterend', label); - } else { - arg.el.appendChild(label); - } - }, - moreLinkClick: function (arg) { - arg.jsEvent.preventDefault(); - arg.jsEvent.stopPropagation(); - const date = arg.date.toLocaleDateString(undefined, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }); - panelDate.textContent = date; - panelSlots.innerHTML = ''; - arg.allSegs.forEach(function (seg) { - const li = document.createElement('li'); - const startLabel = seg.event.start.toLocaleTimeString(undefined, { hour: 'numeric', minute: '2-digit' }); - const endLabel = seg.event.end.toLocaleTimeString(undefined, { hour: 'numeric', minute: '2-digit' }); - const a = document.createElement('a'); - a.href = '#'; - a.textContent = startLabel + ' – ' + endLabel; - a.addEventListener('click', function (e) { - e.preventDefault(); - fetch(drupalSettings.riversidePt.storeSlotUrl, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - start: seg.event.startStr, - end: seg.event.endStr, - }), - }).then(function (res) { - if (res.ok) { - window.location.href = drupalSettings.riversidePt.bookingUrl; - } else { - a.textContent += ' (no longer available)'; - a.style.pointerEvents = 'none'; - a.style.opacity = '0.5'; - } - }); + var panel = document.getElementById('riverside-booking-panel'); + var backdrop = document.getElementById('riverside-booking-backdrop'); + var panelDate = document.getElementById('riverside-booking-date'); + var panelSlots = document.getElementById('riverside-booking-slots'); + + function closePanel() { + panel.hidden = true; + backdrop.hidden = true; + } + + function openPanel() { + backdrop.hidden = false; + panel.hidden = false; + } + + var calendar = new FullCalendar.Calendar(el, { + initialView: 'dayGridMonth', + headerToolbar: { left: 'prev', center: 'title', right: 'next' }, + titleFormat: { year: 'numeric', month: 'long' }, + dayHeaderFormat: { weekday: 'narrow' }, + validRange: function (now) { + return { + start: new Date(now.getFullYear(), now.getMonth(), 1), + end: new Date(now.getFullYear(), now.getMonth() + 7, 1), + }; + }, + fixedWeekCount: false, + height: 'auto', + events: drupalSettings.riversidePt.eventsUrl, + eventDisplay: 'none', + dayMaxEvents: false, + + datesSet: function () { + el.querySelectorAll('.fc-daygrid-day.is-selected').forEach(function (d) { + d.classList.remove('is-selected'); }); - li.appendChild(a); - panelSlots.appendChild(li); - }); - openPanel(); - return false; - }, - }); + selectedDate = null; + }, - const panel = document.getElementById('riverside-booking-panel'); - const backdrop = document.getElementById('riverside-booking-backdrop'); - const panelDate = document.getElementById('riverside-booking-date'); - const panelSlots = document.getElementById('riverside-booking-slots'); + eventsSet: function (events) { + el.querySelectorAll('.fc-daygrid-day.has-availability').forEach(function (d) { + d.classList.remove('has-availability'); + }); + events.forEach(function (event) { + var dateStr = event.startStr.substring(0, 10); + var dayEl = el.querySelector('.fc-daygrid-day[data-date="' + dateStr + '"]'); + if (dayEl) dayEl.classList.add('has-availability'); + }); + }, - function closePanel() { - panel.hidden = true; - backdrop.hidden = true; - } + dayCellClassNames: function (arg) { + var date = arg.date.toISOString().substring(0, 10); + if (drupalSettings.riversidePt.holidays[date]) return ['is-holiday']; + }, - function openPanel() { - backdrop.hidden = false; - panel.hidden = false; - } + dateClick: function (arg) { + if (!arg.dayEl.classList.contains('has-availability')) return; - document.getElementById('riverside-booking-close').addEventListener('click', closePanel); - backdrop.addEventListener('click', closePanel); - document.addEventListener('keydown', function (e) { - if (e.key === 'Escape') closePanel(); - }); + var dateStr = arg.dateStr; + var dayEvents = calendar.getEvents().filter(function (e) { + return e.startStr.startsWith(dateStr); + }); + if (dayEvents.length === 0) return; - calendar.render(); + // Update selected highlight. + el.querySelectorAll('.fc-daygrid-day.is-selected').forEach(function (d) { + d.classList.remove('is-selected'); + }); + arg.dayEl.classList.add('is-selected'); + selectedDate = dateStr; + // Build slot list. + panelDate.textContent = arg.date.toLocaleDateString(undefined, { + weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', + }); + panelSlots.innerHTML = ''; + dayEvents.sort(function (a, b) { return a.start - b.start; }).forEach(function (event) { + var startLabel = event.start.toLocaleTimeString(undefined, { hour: 'numeric', minute: '2-digit' }); + var endLabel = event.end.toLocaleTimeString(undefined, { hour: 'numeric', minute: '2-digit' }); + var li = document.createElement('li'); + var a = document.createElement('a'); + a.href = '#'; + a.textContent = startLabel + ' – ' + endLabel; + a.addEventListener('click', function (e) { + e.preventDefault(); + fetch(drupalSettings.riversidePt.storeSlotUrl, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ start: event.startStr, end: event.endStr }), + }).then(function (res) { + if (res.ok) { + window.location.href = drupalSettings.riversidePt.bookingUrl; + } else { + a.textContent += ' (no longer available)'; + a.style.pointerEvents = 'none'; + a.style.opacity = '0.5'; + } + }); + }); + li.appendChild(a); + panelSlots.appendChild(li); + }); + openPanel(); + }, + }); + + document.getElementById('riverside-booking-close').addEventListener('click', closePanel); + backdrop.addEventListener('click', closePanel); + document.addEventListener('keydown', function (e) { + if (e.key === 'Escape') closePanel(); + }); + + calendar.render(); }); // end requestAnimationFrame }); })(drupalSettings); diff --git a/web/modules/custom/riverside_pt/js/components/rpt-testimonials.js b/web/modules/custom/riverside_pt/js/components/rpt-testimonials.js index d52d3cf..942dec1 100644 --- a/web/modules/custom/riverside_pt/js/components/rpt-testimonials.js +++ b/web/modules/custom/riverside_pt/js/components/rpt-testimonials.js @@ -1,5 +1,5 @@ import { h, render } from "https://esm.sh/preact@10"; -import { useState } from "https://esm.sh/preact@10/hooks"; +import { useState, useRef } from "https://esm.sh/preact@10/hooks"; import { html } from "https://esm.sh/htm@3/preact"; const TESTIMONIALS = [ @@ -9,7 +9,7 @@ const TESTIMONIALS = [ }, { name: "Leon N.", category: "Neurology Patient", initials: "LN", color: "#a3bfc8", - quote: "Every new patient begins with a comprehensive diagnostic assessment. From there, they create a fully personalized treatment plan tailored to your goals -- whether that means returning to sport, recovering from surgery, or restoring function.", + quote: "Every new patient begins with a comprehensive diagnostic assessment. From there, they create a fully personalized treatment plan -- whether that means returning to sport, recovering from surgery, or restoring function.", }, { name: "Diana K.", category: "Surgery Rehab Patient", initials: "DK", color: "#7aa3af", @@ -31,42 +31,62 @@ const TESTIMONIALS = [ const CARD_W = 270; const GAP = 20; +const STEP = CARD_W + GAP; +const TOTAL_W = TESTIMONIALS.length * CARD_W + (TESTIMONIALS.length - 1) * GAP; function Testimonials() { - const [index, setIndex] = useState(0); + const wrapRef = useRef(null); + const containerRef = useRef(null); + const trackRef = useRef(null); + const [left, setLeft] = useState(0); - const prev = () => setIndex(function(i) { return Math.max(0, i - 1); }); - const next = () => setIndex(function(i) { return Math.min(TESTIMONIALS.length - 1, i + 1); }); + function measureMax() { + if (!containerRef.current) return 0; + return Math.max(0, TOTAL_W - containerRef.current.offsetWidth); + } - const leftEdge = "max(1.5rem, calc((100vw - 1248px) / 2 + 1.5rem))"; + var prev = function () { + setLeft(function (l) { return Math.min(0, l + STEP); }); + }; + + var next = function () { + var maxL = measureMax(); + setLeft(function (l) { return Math.max(-maxL, l - STEP); }); + }; + + var atStart = left >= 0; return html` -