.ct-section {
width:100%;
background-size:cover;
background-repeat:repeat;
}
.ct-section>.ct-section-inner-wrap {
display:flex;
flex-direction:column;
align-items:flex-start;
}
.ct-div-block {
display:flex;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.ct-new-columns {
display:flex;
width:100%;
flex-direction:row;
align-items:stretch;
justify-content:center;
flex-wrap:wrap;
}
.ct-link-text {
display:inline-block;
}
.ct-link {
display:flex;
flex-wrap:wrap;
text-align:center;
text-decoration:none;
flex-direction:column;
align-items:center;
justify-content:center;
}
.ct-link-button {
display:inline-block;
text-align:center;
text-decoration:none;
}
.ct-link-button {
background-color: #1e73be;
border: 1px solid #1e73be;
color: #ffffff;
padding: 10px 16px;
}
.ct-image {
max-width:100%;
}
.ct-fancy-icon>svg {
width:55px;height:55px;}
.ct-inner-content {
width:100%;
}
.ct-slide {
display:flex;
flex-wrap:wrap;
text-align:center;
flex-direction:column;
align-items:center;
justify-content:center;
}
.ct-nestable-shortcode {
display:flex;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-comments {
width:100%;
text-align:left;
}
.oxy-comment-form {
width:100%;
}
.oxy-login-form {
width:100%;
}
.oxy-search-form {
width:100%;
}
.oxy-tabs-contents {
display:flex;
width:100%;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-tab {
display:flex;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-tab-content {
display:flex;
width:100%;
flex-wrap:nowrap;
flex-direction:column;
align-items:flex-start;
}
.oxy-testimonial {
width:100%;
}
.oxy-icon-box {
width:100%;
}
.oxy-pricing-box {
width:100%;
}
.oxy-posts-grid {
width:100%;
}
.oxy-gallery {
width:100%;
}
.ct-slider {
width:100%;
}
.oxy-tabs {
display:flex;
flex-wrap:nowrap;
flex-direction:row;
align-items:stretch;
}
.ct-modal {
flex-direction:column;
align-items:flex-start;
}
.ct-span {
display:inline-block;
text-decoration:inherit;
}
.ct-widget {
width:100%;
}
.oxy-dynamic-list {
width:100%;
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
			.ct-div-block,
			.oxy-post-content,
			.ct-text-block,
			.ct-headline,
			.oxy-rich-text,
			.ct-link-text { max-width: 100%; }
			img { flex-shrink: 0; }
			body * { min-height: 1px; }
		}            .oxy-testimonial {
                flex-direction: row;
                align-items: center;
            }
                        .oxy-testimonial .oxy-testimonial-photo-wrap {
                order: 1;
            }
            
                        .oxy-testimonial .oxy-testimonial-photo {
                width: 125px;                height: 125px;                margin-right: 20px;
            }
            
                        .oxy-testimonial .oxy-testimonial-photo-wrap, 
            .oxy-testimonial .oxy-testimonial-author-wrap, 
            .oxy-testimonial .oxy-testimonial-content-wrap {
                align-items: flex-start;                text-align: left;            }
            
                                                            .oxy-testimonial .oxy-testimonial-text {
                margin-bottom:8px;font-size: 21px;
line-height: 1.4;
-webkit-font-smoothing: subpixel-antialiased;
            }
            
                                    .oxy-testimonial .oxy-testimonial-author {
                font-size: 18px;
-webkit-font-smoothing: subpixel-antialiased;
            }
                            

                                                .oxy-testimonial .oxy-testimonial-author-info {
                font-size: 12px;
-webkit-font-smoothing: subpixel-antialiased;
            }
            
             
            
                        .oxy-icon-box {
                text-align: left;                flex-direction: column;            }
            
                        .oxy-icon-box .oxy-icon-box-icon {
                margin-bottom: 12px;
                align-self: flex-start;            }
            
                                                                        .oxy-icon-box .oxy-icon-box-heading {
                font-size: 21px;
margin-bottom: 12px;            }
            
                                                                                    .oxy-icon-box .oxy-icon-box-text {
                font-size: 16px;
margin-bottom: 12px;align-self: flex-start;            }
            
                        .oxy-icon-box .oxy-icon-box-link {
                margin-top: 20px;                            }
            
            
            /* GLOBALS */

                                                            .oxy-pricing-box .oxy-pricing-box-section {
                padding-top: 20px;
padding-left: 20px;
padding-right: 20px;
padding-bottom: 20px;
text-align: center;            }
                        
                        .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-price {
                justify-content: center;            }
            
            /* IMAGE */
                                                                                    .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-graphic {
                justify-content: center;            }
            
            /* TITLE */
                                                            
                                    .oxy-pricing-box .oxy-pricing-box-title-title {
                font-size: 48px;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-title-subtitle {
                font-size: 24px;
            }
            

            /* PRICE */
                                                .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-price {
                                                flex-direction: row;                                            }
            
                                    .oxy-pricing-box .oxy-pricing-box-currency {
                font-size: 28px;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-amount-main {
                font-size: 80px;
line-height: 0.7;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-amount-decimal {
                font-size: 13px;
            }
                        
                                    .oxy-pricing-box .oxy-pricing-box-term {
                font-size: 16px;
            }
            
                                    .oxy-pricing-box .oxy-pricing-box-sale-price {
                font-size: 12px;
color: rgba(0,0,0,0.5);
                margin-bottom: 20px;            }
            
            /* CONTENT */

                                                                        .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-content {
                font-size: 16px;
color: rgba(0,0,0,0.5);
            }
            
            /* CTA */

                                                                        .oxy-pricing-box .oxy-pricing-box-section.oxy-pricing-box-cta {
                justify-content: center;            }
            
        
                                .oxy-progress-bar .oxy-progress-bar-background {
            background-color: #000000;            background-image: linear-gradient(-45deg,rgba(255,255,255,.12) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.12) 75%,transparent 75%,transparent);            animation: none 0s paused;        }
                
                .oxy-progress-bar .oxy-progress-bar-progress-wrap {
            width: 85%;        }
        
                                                        .oxy-progress-bar .oxy-progress-bar-progress {
            background-color: #66aaff;padding: 40px;animation: none 0s paused, none 0s paused;            background-image: linear-gradient(-45deg,rgba(255,255,255,.12) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.12) 75%,transparent 75%,transparent);        
        }
                
                        .oxy-progress-bar .oxy-progress-bar-overlay-text {
            font-size: 30px;
font-weight: 900;
-webkit-font-smoothing: subpixel-antialiased;
        }
        
                        .oxy-progress-bar .oxy-progress-bar-overlay-percent {
            font-size: 12px;
        }
        
        .ct-slider .unslider-nav ol li {border-color: #ffffff; }.ct-slider .unslider-nav ol li.unslider-active {background-color: #ffffff; }.ct-slider .ct-slide {
				padding: 0px;			}
		
                        .oxy-superbox .oxy-superbox-secondary, 
            .oxy-superbox .oxy-superbox-primary {
                transition-duration: 0.5s;            }
            
            
            
            
            
        
        
        
        
            .oxy-shape-divider {
                width: 0px;
                height: 0px;
                
            }
            
            .oxy_shape_divider svg {
                width: 100%;
            }
            .oxy-pro-menu .oxy-pro-menu-container:not(.oxy-pro-menu-open-container):not(.oxy-pro-menu-off-canvas-container) .sub-menu{
box-shadow:px px px px ;}

.oxy-pro-menu .oxy-pro-menu-show-dropdown .oxy-pro-menu-list .menu-item-has-children > a svg{
transition-duration:0.4s;
}

.oxy-pro-menu .oxy-pro-menu-show-dropdown .oxy-pro-menu-list .menu-item-has-children > a div{
margin-left:0px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-open-icon svg{
width:30px;
height:30px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-open-icon{
padding-top:15px;
padding-right:15px;
padding-bottom:15px;
padding-left:15px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-open-icon, .oxy-pro-menu .oxy-pro-menu-mobile-open-icon svg{
transition-duration:0.4s;
}

.oxy-pro-menu .oxy-pro-menu-mobile-close-icon{
top:20px;
left:20px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-close-icon svg{
width:24px;
height:24px;
}

.oxy-pro-menu .oxy-pro-menu-mobile-close-icon, .oxy-pro-menu .oxy-pro-menu-mobile-close-icon svg{
transition-duration:0.4s;
}

.oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-off-canvas-container, .oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-open-container{
background-color:#ffffff;
}

.oxy-pro-menu .oxy-pro-menu-off-canvas-container, .oxy-pro-menu .oxy-pro-menu-open-container{
background-image:url();
}

.oxy-pro-menu .oxy-pro-menu-off-canvas-container .oxy-pro-menu-list .menu-item-has-children > a svg, .oxy-pro-menu .oxy-pro-menu-open-container .oxy-pro-menu-list .menu-item-has-children > a svg{
font-size:24px;
}

.oxy-pro-menu .oxy-pro-menu-dropdown-links-toggle.oxy-pro-menu-open-container .menu-item-has-children ul, .oxy-pro-menu .oxy-pro-menu-dropdown-links-toggle.oxy-pro-menu-off-canvas-container .menu-item-has-children ul{
background-color:rgba(0,0,0,0.2);
border-top-style:solid;
}

.oxy-pro-menu .oxy-pro-menu-container:not(.oxy-pro-menu-open-container):not(.oxy-pro-menu-off-canvas-container) .oxy-pro-menu-list{
                    flex-direction: row;
               }
.oxy-pro-menu .oxy-pro-menu-container .menu-item a{
                    text-align: left;
                    justify-content: flex-start;
                }
.oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-open-container .menu-item, .oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-off-canvas-container .menu-item{
                    align-items: flex-start;
                }

            .oxy-pro-menu .oxy-pro-menu-off-canvas-container{
                    top: 0;
                    bottom: 0;
                    right: auto;
                    left: 0;
               }
.oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-open-container .oxy-pro-menu-list .menu-item a, .oxy-pro-menu .oxy-pro-menu-container.oxy-pro-menu-off-canvas-container .oxy-pro-menu-list .menu-item a{
                    text-align: left;
                    justify-content: flex-start;
                }

            .oxy-site-navigation {
--oxynav-brand-color:#4831B0;
--oxynav-neutral-color:#FFFFFF;
--oxynav-activehover-color:#EFEDF4;
--oxynav-background-color:#4831B0;
--oxynav-border-radius:0px;
--oxynav-other-spacing:8px;
--oxynav-transition-duration:0.3s;
--oxynav-transition-timing-function:cubic-bezier(.84,.05,.31,.93);
}

.oxy-site-navigation .oxy-site-navigation__mobile-close-wrapper{
text-align:left;
}

.oxy-site-navigation > ul{ left: 0; }
.oxy-site-navigation {
                        --oxynav-animation-name: none; 
                    }

                .oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(1){ 
                    background-color: var(--oxynav-brand-color);
                    transition: var(--oxynav-transition-duration);
                    margin-left: var(--oxynav-other-spacing);
                    border: none;
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2){ 
                    background: transparent;
                    border: 1px solid currentColor;
                    transition: var(--oxynav-transition-duration);
                    margin-left: var(--oxynav-other-spacing);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2):not(:hover) > img{
                    filter: invert(0) !important;
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:hover{
                    background-color: var(--oxynav-activehover-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(1) > a{
                    color: var(--oxynav-neutral-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2) > a{
                    color: var(--oxynav-brand-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:hover > a{
                    color: var(--oxynav-brand-color);
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(1) > a::after{
                    color: var(--oxynav-neutral-color);   
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:nth-last-child(2) > a::after{
                    color: var(--oxynav-brand-color);   
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true']:hover > a::after{
                    color: var(--oxynav-brand-color);   
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true'] > ul{
                    display: none;
                }
.oxy-site-navigation > ul:not(.open) > li[data-cta='true'] > button, .oxy-site-navigation > ul:not(.open) > li[data-cta='true'] > ul{
                    display: none;
                }

                .ct-section-inner-wrap, .oxy-header-container{
  max-width: 1120px;
}
body {font-family: Arial, Helvetica, sans-serif;}body {line-height: 1.6;font-size: 16px;font-weight: 400;color: #404040;}.oxy-nav-menu-hamburger-line {background-color: #404040;}h1, h2, h3, h4, h5, h6 {font-family: Arial, Helvetica, sans-serif;font-size: 36px;font-weight: 700;}h2, h3, h4, h5, h6{font-size: 30px;}h3, h4, h5, h6{font-size: 24px;}h4, h5, h6{font-size: 20px;}h5, h6{font-size: 18px;}h6{font-size: 16px;}a {color: #0074db;text-decoration: none;}a:hover {text-decoration: none;}.ct-link-text {text-decoration: ;}.ct-link {text-decoration: ;}.ct-link-button {border-radius: 3px;}.ct-section-inner-wrap {
padding-top: 75px;
padding-right: 20px;
padding-bottom: 75px;
padding-left: 20px;
}.ct-new-columns > .ct-div-block {
padding-top: 20px;
padding-right: 20px;
padding-bottom: 20px;
padding-left: 20px;
}.oxy-header-container {
padding-right: 20px;
padding-left: 20px;
}@media (max-width: 992px) {
				.ct-columns-inner-wrap {
					display: block !important;
				}
				.ct-columns-inner-wrap:after {
					display: table;
					clear: both;
					content: "";
				}
				.ct-column {
					width: 100% !important;
					margin: 0 !important;
				}
				.ct-columns-inner-wrap {
					margin: 0 !important;
				}
			}
/* PackHistory — global stylesheet (tokens + UI kit classes + questionnaire).
   Where it goes: Oxygen > Manage > Stylesheets > Add Stylesheet "packhistory". */

:root {
  --bg: #ffffff;
  --bg-alt: #f5f5f7;
  --surface: #ffffff;
  --ink: #1d1d1f;
  --ink-muted: #6e6e73;
  --ink-inverse: #ffffff;
  --hairline: #e5e5ea;
  --control-border: #8e8e93;
  --segment-track: #ededf0;
  --accent: #0066cc;
  --accent-hover: #004c99;
  --accent-tint: #e8f1fb;
  --success: #1b6e30;
  --success-tint: #e9f6ec;
  --warning: #8a3d00;
  --warning-tint: #fff4e5;
  --error: #b3261e;
  --error-tint: #fdecea;
  --video-bg: var(--ink);

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-14: 56px;
  --space-20: 80px;
  --space-28: 112px;

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-xl: 28px;
  --radius-pill: 999px;

  --shadow-card: 0 2px 16px rgba(0, 0, 0, 0.05);
  --shadow-control: 0 1px 4px rgba(0, 0, 0, 0.12);
  --shadow-segment: 0 1px 3px rgba(0, 0, 0, 0.12);

  --touch-min: 44px;
  --button-height: 56px;
  --stepper-button: 64px;
  --container: 1280px;
  --question-width: 820px;

  --font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "Segoe UI", Roboto, sans-serif;
}

/* ---------- Base ---------- */
.ph-page { font-family: var(--font-sans); color: var(--ink); background: var(--bg); -webkit-font-smoothing: antialiased; }
.ph-page *, .ph-page *::before, .ph-page *::after { box-sizing: border-box; }
.ph-page a { color: var(--accent); }
.ph-page a:hover { color: var(--accent-hover); }
.ph-page :focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }

/* ---------- Type ---------- */
.ph-display { margin: 0; font-size: 80px; line-height: 1.05; font-weight: 700; letter-spacing: -0.035em; }
.ph-title1 { margin: 0; font-size: 48px; line-height: 1.1; font-weight: 700; letter-spacing: -0.025em; }
.ph-title2 { margin: 0; font-size: 38px; line-height: 1.2; font-weight: 700; letter-spacing: -0.025em; }
.ph-title3 { margin: 0; font-size: 26px; line-height: 1.25; font-weight: 700; letter-spacing: -0.02em; }
.ph-headline { margin: 0; font-size: 20px; line-height: 1.3; font-weight: 600; }
.ph-body-lg { margin: 0; font-size: 22px; line-height: 1.5; }
.ph-body { margin: 0; font-size: 19px; line-height: 1.55; }
.ph-callout { margin: 0; font-size: 17px; line-height: 1.45; }
.ph-footnote { margin: 0; font-size: 15px; line-height: 1.5; color: var(--ink-muted); }
.ph-muted { color: var(--ink-muted); }
.ph-eyebrow { font-size: 19px; font-weight: 600; color: var(--accent); }

/* ---------- Header ---------- */
.ph-header { height: 64px; padding: 0 80px; display: flex; align-items: center; justify-content: space-between; background: var(--surface); border-bottom: 1px solid var(--hairline); }
.ph-header--mobile { height: 56px; padding: 0 16px; }
.ph-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink) !important; }
.ph-brand-mark { width: 28px; height: 28px; border-radius: var(--radius-sm); background: var(--accent); color: var(--ink-inverse); display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; }
.ph-brand-name { font-size: 20px; font-weight: 600; letter-spacing: -0.01em; }
.ph-nav { display: flex; align-items: center; gap: 36px; font-size: 17px; }
.ph-nav a { color: var(--ink); text-decoration: none; }
.ph-tag { padding: 4px 10px; border-radius: 6px; background: var(--segment-track); font-size: 14px; font-weight: 600; color: var(--ink); }

/* ---------- Segmented control (EN / ES) ---------- */
.ph-segmented { display: inline-flex; padding: 3px; background: var(--segment-track); border-radius: 10px; }
.ph-seg { min-width: 52px; height: 38px; padding: 0 12px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--ink); font: 600 15px var(--font-sans); cursor: pointer; }
.ph-seg[aria-pressed="true"] { background: var(--surface); box-shadow: var(--shadow-segment); }

/* ---------- Buttons ---------- */
.ph-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: var(--button-height); padding: 0 32px; border: 0; border-radius: var(--radius-pill); font: 600 18px var(--font-sans); text-decoration: none; cursor: pointer; white-space: nowrap; }
.ph-btn--primary { background: var(--accent); color: var(--ink-inverse) !important; }
.ph-btn--primary:hover { background: var(--accent-hover); }
.ph-btn--secondary { background: var(--bg-alt); color: var(--accent) !important; }
.ph-btn--block { display: flex; width: 100%; }
.ph-link { text-align: left; display: inline-flex; align-items: center; gap: 4px; min-height: var(--touch-min); font-size: 18px; text-decoration: none; background: none; border: 0; padding: 0; color: var(--accent); cursor: pointer; font-family: var(--font-sans); }

/* ---------- Progress ---------- */
.ph-progress { display: flex; flex-direction: column; gap: 10px; }
.ph-progress-meta { display: flex; justify-content: space-between; font-size: 16px; color: var(--ink-muted); }
.ph-progress-track { height: 6px; border-radius: 3px; background: var(--hairline); overflow: hidden; }
.ph-progress-fill { height: 6px; border-radius: 3px; background: var(--accent); }

/* ---------- Question layout ---------- */
.ph-qcard { width: 820px; padding: 56px 64px 48px; background: var(--surface); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); display: flex; flex-direction: column; gap: 32px; }
.ph-qhelp { margin: -16px 0 0; font-size: 19px; line-height: 1.5; color: var(--ink-muted); }
.ph-qfooter { display: flex; justify-content: space-between; align-items: center; }
.ph-qtitle-m { margin: 0; font-size: 30px; line-height: 1.2; font-weight: 700; letter-spacing: -0.025em; }

/* ---------- Choice (Yes / No) ---------- */
.ph-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ph-choices--stack { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.ph-choice { display: flex; align-items: center; gap: 16px; min-height: 72px; padding: 0 24px; border: 1px solid var(--control-border); border-radius: var(--radius-lg); background: var(--surface); font-size: 21px; font-weight: 600; cursor: pointer; }
.ph-choice input { width: 24px; height: 24px; margin: 0; accent-color: var(--accent); flex-shrink: 0; }
.ph-choice--selected { border: 2px solid var(--accent); background: var(--accent-tint); padding: 0 23px; }

/* ---------- Number field + stem ---------- */
.ph-stem { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; font-size: 22px; }
.ph-input { width: 120px; height: 64px; padding: 0 12px; border: 1px solid var(--control-border); border-radius: var(--radius-md); background: var(--surface); font: 600 28px var(--font-sans); color: var(--ink); text-align: center; }
.ph-input:focus { outline: none; border: 2px solid var(--accent); }
.ph-input--error { border: 2px solid var(--error); background: var(--error-tint); }
.ph-input--error:focus { border-color: var(--error); outline: 3px solid var(--accent); outline-offset: 3px; }
.ph-input--wide { width: 100%; text-align: left; font-size: 20px; font-weight: 400; height: 56px; }

/* ---------- Date field ---------- */
.ph-date { display: flex; gap: 12px; }
.ph-date-part { display: flex; flex-direction: column; gap: 8px; font-size: 16px; font-weight: 600; color: var(--ink-muted); }

/* ---------- Stepper ---------- */
.ph-stepper { display: inline-flex; align-items: center; gap: 16px; padding: 10px; border-radius: var(--radius-pill); background: var(--bg-alt); }
.ph-stepper-btn { width: var(--stepper-button); height: var(--stepper-button); border-radius: 50%; border: 0; background: var(--surface); color: var(--accent); box-shadow: var(--shadow-control); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.ph-stepper-value { min-width: 110px; text-align: center; font-size: 64px; font-weight: 700; letter-spacing: -0.03em; line-height: 1; }
.ph-stepper--block { display: flex; width: 100%; justify-content: space-between; }

/* ---------- Quick-pick chips ---------- */
.ph-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ph-chip { height: 48px; padding: 0 20px; border: 1px solid var(--control-border); border-radius: var(--radius-pill); background: var(--surface); font: 500 17px var(--font-sans); color: var(--ink); cursor: pointer; }

/* ---------- Checkbox rows ---------- */
.ph-checks { display: flex; flex-direction: column; gap: 12px; }
.ph-check { display: flex; align-items: center; gap: 16px; min-height: 64px; padding: 0 22px; border: 1px solid var(--control-border); border-radius: var(--radius-md); background: var(--surface); font-size: 20px; cursor: pointer; }
.ph-check input { width: 24px; height: 24px; margin: 0; accent-color: var(--accent); flex-shrink: 0; }
.ph-check--checked { border: 2px solid var(--accent); background: var(--accent-tint); padding: 0 21px; }
.ph-checkline { display: flex; align-items: center; gap: 12px; min-height: var(--touch-min); font-size: 18px; cursor: pointer; }
.ph-checkline input { width: 22px; height: 22px; margin: 0; accent-color: var(--accent); flex-shrink: 0; }

/* ---------- Alerts ---------- */
.ph-alert { display: flex; gap: 12px; align-items: flex-start; padding: 16px 20px; border-radius: var(--radius-md); font-size: 18px; line-height: 1.45; }
.ph-alert svg { flex-shrink: 0; margin-top: 2px; }
.ph-alert--error { background: var(--error-tint); color: var(--error); }
.ph-alert--warning { background: var(--warning-tint); color: var(--warning); }
.ph-alert--info { background: var(--accent-tint); color: var(--ink); }

/* ---------- Status badge ---------- */
.ph-badge { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; padding: 8px 14px; border-radius: 18px; font-size: 17px; font-weight: 600; }
.ph-badge--met { background: var(--success-tint); color: var(--success); }
.ph-badge--notmet { background: var(--warning-tint); color: var(--warning); }
.ph-badge--neutral { background: var(--bg-alt); color: var(--ink); }

/* ---------- Cards, result, note, lists ---------- */
.ph-card { padding: 32px 34px; background: var(--surface); border-radius: var(--radius-lg); }
.ph-card--alt { background: var(--bg-alt); }
.ph-result-label { font-size: 17px; font-weight: 600; color: var(--ink-muted); }
.ph-result-number { font-size: 112px; font-weight: 700; line-height: 1; letter-spacing: -0.04em; }
.ph-result-number--m { font-size: 76px; }
.ph-note { margin: 0; padding: 24px 26px; border-radius: var(--radius-md); background: var(--bg-alt); font-size: 19px; line-height: 1.6; display: flex; flex-direction: column; gap: 12px; }
.ph-note p { margin: 0; }
.ph-kv { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--hairline); font-size: 17px; }
.ph-kv:last-child { border-bottom: 0; }
.ph-kv dt, .ph-kv .k { color: var(--ink-muted); }
.ph-kv dd { margin: 0; text-align: right; }

/* ---------- Footer ---------- */
.ph-footer { background: var(--bg-alt); border-top: 1px solid var(--hairline); color: var(--ink-muted); padding: 48px 80px; display: flex; flex-direction: column; gap: 16px; font-size: 15px; line-height: 1.6; }
.ph-footer p { margin: 0; }

/* ---------- Questionnaire app (stage 1) ---------- */
#packhistory-app { display: block; width: 100%; box-sizing: border-box; }
.ph-app { background: var(--bg-alt); min-height: 80vh; padding: 48px 20px 64px; }
.ph-app-inner { max-width: var(--question-width); margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
.ph-app .ph-qcard { width: 100%; margin: 0; }
.ph-app h1:focus { outline: none; }
.ph-app-privacy { text-align: center; }
.ph-icon { display: inline-flex; flex-shrink: 0; }
.ph-points { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; font-size: 19px; }
.ph-points li { display: flex; align-items: center; gap: 12px; }
.ph-points .ph-icon { color: var(--accent); }
.ph-stepper-row { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.ph-stepper-unit { display: flex; flex-direction: column; gap: 6px; }
.ph-stepper-packs { font-size: 19px; font-weight: 600; color: var(--accent); min-height: 29px; }
input.ph-stepper-value { width: 130px; min-width: 0; padding: 0; border: 0; background: transparent; font-family: var(--font-sans); color: var(--ink); }
input.ph-stepper-value::placeholder { color: var(--control-border); }
.ph-review { display: flex; flex-direction: column; }
.ph-review-row { align-items: center; padding: 16px 0; font-size: 19px; }
.ph-review-text { display: flex; flex-direction: column; gap: 2px; }
.ph-qcard--center { align-items: center; text-align: center; }
.ph-done-check { width: 84px; height: 84px; border-radius: 50%; background: var(--success-tint); color: var(--success); display: flex; align-items: center; justify-content: center; }
.ph-done-message { margin: 0; padding: 20px 24px; border-radius: var(--radius-lg); background: var(--bg-alt); font-size: 19px; line-height: 1.55; text-align: left; }
.ph-link--inline { display: inline; min-height: 0; font-size: inherit; font-weight: 600; text-decoration: underline; color: inherit; }
.ph-alert .ph-icon { margin-top: 2px; }

/* ---------- Phones and small tablets ---------- */
@media (max-width: 720px) {
  .ph-app { background: var(--bg); padding: 20px 20px 32px; min-height: 0; }
  .ph-app .ph-qcard { padding: 12px 0 0; border-radius: 0; box-shadow: none; gap: 28px; }
  .ph-title1 { font-size: 34px; }
  .ph-title2 { font-size: 30px; }
  .ph-body-lg { font-size: 20px; }
  .ph-qhelp { font-size: 18px; margin-top: -12px; }
  .ph-choices { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ph-stem { font-size: 20px; }
  .ph-input { width: 100px; }
  .ph-date .ph-input { width: 84px !important; }
  .ph-date .ph-date-part:last-child .ph-input { width: 120px !important; }
  .ph-stepper-row { flex-direction: column; align-items: stretch; gap: 12px; text-align: center; }
  .ph-stepper { display: flex; justify-content: space-between; }
  .ph-stepper-btn { width: 60px; height: 60px; }
  input.ph-stepper-value { font-size: 60px; }
  .ph-chips { justify-content: center; }
  .ph-review-row { font-size: 17px; }
  .ph-qfooter { gap: 12px; }
  .ph-qfooter .ph-btn--next { flex-grow: 1; }
  .ph-done-message { font-size: 18px; }
}

/* ---------- Clinician summary (stage 2) ---------- */
.ph-app-inner--wide { max-width: var(--container); gap: 0; }
.ph-sum-screen { display: flex; flex-direction: column; gap: 20px; }
.ph-sum-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; padding-bottom: 8px; }
.ph-sum-head > div { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.ph-sum-title { font-size: 44px; }
.ph-sum-head > .ph-sum-headside { flex-direction: row; align-items: center; gap: 20px; }
.ph-sum-result { padding: 44px 48px; display: flex; gap: 64px; align-items: center; }
.ph-sum-number { width: 440px; flex-shrink: 0; display: flex; flex-direction: column; gap: 10px; }
.ph-sum-criteria { flex-grow: 1; padding-left: 64px; border-left: 1px solid var(--hairline); display: flex; flex-direction: column; gap: 16px; }
.ph-kv--lg { font-size: 18px; }
.ph-warn { color: var(--warning); font-weight: 600; }
.ph-sum-cols { display: flex; gap: 20px; align-items: flex-start; }
.ph-sum-doc { flex-grow: 1; min-width: 0; padding: 40px 44px; display: flex; flex-direction: column; gap: 22px; }
.ph-sum-dochead { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.ph-sum-controls { display: flex; gap: 10px; flex-wrap: wrap; }
.ph-sum-actions { display: flex; gap: 12px; }
.ph-sum-copy { flex-grow: 2; flex-basis: 0; }
.ph-sum-actions .ph-btn--secondary { flex-grow: 1; flex-basis: 0; }
.ph-sum-side { width: 420px; flex-shrink: 0; display: flex; flex-direction: column; gap: 20px; }
.ph-sum-h { margin-bottom: 8px; }
.ph-sum-res { display: flex; flex-direction: column; gap: 12px; font-size: 17px; line-height: 1.45; }
.ph-done-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.ph-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ph-print { display: none; }
#ph-print-root { display: none; }

@media (max-width: 1000px) {
  .ph-sum-result { flex-direction: column; align-items: stretch; gap: 28px; padding: 28px; }
  .ph-sum-number { width: auto; }
  .ph-sum-criteria { padding-left: 0; border-left: 0; padding-top: 24px; border-top: 1px solid var(--hairline); }
  .ph-sum-cols { flex-direction: column; align-items: stretch; }
  .ph-sum-side { width: auto; }
}
@media (max-width: 720px) {
  .ph-app:has(.ph-sum-screen) { background: var(--bg-alt); padding: 20px 16px 32px; }
  .ph-sum-head { flex-direction: column; align-items: flex-start; }
  .ph-sum-head > .ph-sum-headside { flex-wrap: wrap; gap: 8px 16px; }
  .ph-sum-title { font-size: 34px; }
  .ph-result-number { font-size: 76px; }
  .ph-sum-result, .ph-sum-doc { padding: 24px; }
  .ph-app .ph-card { padding: 22px 24px; }
  .ph-note { font-size: 17px; padding: 18px; }
  .ph-kv, .ph-kv--lg { font-size: 16px; }
  .ph-sum-actions { flex-direction: column; }
  .ph-sum-actions .ph-btn { flex: none; width: 100%; }
  .ph-done-actions .ph-btn { width: 100%; }
  .ph-btn { white-space: normal; height: auto; min-height: var(--button-height); padding: 10px 24px; text-align: center; }
}

/* ---------- Print / Save as PDF: one Letter page, nothing else from the site ---------- */
@media print {
  @page { size: letter; margin: 0.6in; }
  html.ph-printing body > *:not(#ph-print-root) { display: none !important; }
  html.ph-printing, html.ph-printing body { background: #fff !important; margin: 0 !important; padding: 0 !important; }
  #ph-print-root { display: block; background: #fff; }
  #ph-print-root .ph-print { display: flex; flex-direction: column; gap: 18px; color: #000; font-family: var(--font-sans); font-size: 11.5pt; line-height: 1.5; }
  .ph-print-head { display: flex; justify-content: space-between; align-items: flex-start; }
  .ph-print-eyebrow { display: flex; align-items: center; gap: 6pt; font-size: 10pt; font-weight: 600; color: var(--accent); }
  .ph-print-mark svg { display: block; width: 15pt; height: 15pt; }
  .ph-print-title { font-size: 22pt; font-weight: 700; letter-spacing: -0.02em; line-height: 1.2; }
  .ph-print-sub { font-size: 10pt; color: #555; }
  .ph-print-logo { max-width: 150px; max-height: 60px; }
  .ph-print-logo--empty { width: 150px; height: 56px; border: 1.5px dashed #999; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 9pt; font-weight: 600; color: #555; }
  .ph-print-result { display: flex; gap: 28px; align-items: center; padding: 16px 0; border-top: 1px solid #bbb; border-bottom: 1px solid #bbb; }
  .ph-print-label { font-size: 10pt; font-weight: 600; color: #555; }
  .ph-print-number { font-size: 40pt; font-weight: 700; line-height: 1.05; letter-spacing: -0.03em; }
  .ph-print-answers { flex-grow: 1; }
  .ph-print .ph-kv { font-size: 10.5pt; padding: 3px 0; border-bottom: 0; }
  .ph-print .ph-kv .k { color: #555; }
  .ph-print-note { padding: 14px 18px; border: 1.5px solid #000; border-radius: 10px; }
  .ph-print-note p { margin: 6px 0 0; font-size: 12pt; }
  .ph-print-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; font-size: 10.5pt; padding-top: 14px; border-top: 1px solid #bbb; }
  .ph-print-patient { margin: 0; }
  .ph-print-foot { margin: 0; padding-top: 10px; border-top: 1px solid #bbb; font-size: 9pt; color: #555; }
}

/* ---------- Site header and footer (template Code Blocks) ---------- */
.ct-code-block:has(> .ph-site-header), .ct-code-block:has(> .ph-footer), .ct-code-block:has(> #packhistory-app) { display: block; width: 100%; }
a.ph-seg { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; color: var(--ink) !important; }
.ph-seg[aria-current="true"] { background: var(--surface); box-shadow: var(--shadow-segment); }
.ph-footer-meta { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding-top: 16px; border-top: 1px solid var(--hairline); }
.ph-footer-links { display: flex; gap: 24px; }
.ph-footer p { max-width: 1000px; }
@media (max-width: 900px) {
  .ph-site-header { height: 56px; padding: 0 16px; }
  .ph-site-header .ph-nav-link { display: none; }
  .ph-footer { padding: 32px 20px; }
}

/* ---------- Home page ---------- */
.ct-code-block:has(> .ph-home) { display: block; width: 100%; }
.ph-home { display: flex; flex-direction: column; }
.ph-center { text-align: center; }
.ph-narrow { max-width: 760px; margin-left: auto; margin-right: auto; }
.ph-hero { padding: 150px 24px 120px; display: flex; flex-direction: column; align-items: center; gap: 28px; text-align: center; }
.ph-hero .ph-eyebrow { font-size: 21px; }
.ph-hero .ph-display { max-width: 980px; }
.ph-hero-sub { margin: 0; max-width: 760px; font-size: 24px; line-height: 1.5; color: var(--ink-muted); }
.ph-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 16px 28px; margin-top: 16px; }
.ph-btn--lg { height: 60px; padding: 0 34px; font-size: 19px; }
.ph-band { padding: var(--space-28) var(--space-20); display: flex; flex-direction: column; gap: 24px; }
.ph-band > * { width: 100%; max-width: var(--container); margin-left: auto; margin-right: auto; }
.ph-band--alt { background: var(--bg-alt); gap: 56px; }
.ph-band--tight { padding-top: 96px; padding-bottom: 96px; }
.ph-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ph-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ph-step { padding: 40px; display: flex; flex-direction: column; gap: 12px; }
.ph-step-n { font-size: 17px; font-weight: 600; color: var(--accent); }
.ph-formula { margin: 0; font-size: 22px; font-weight: 600; color: var(--accent); }
.ph-figure { margin-top: 40px; margin-bottom: 0; display: flex; flex-direction: column; gap: 24px; }
.ph-example { padding: 40px 36px 32px; display: flex; flex-direction: column; gap: 28px; text-align: left; }
.ph-example-shape { height: 90px; display: flex; align-items: flex-end; }
.ph-bar { background: var(--accent); border-radius: 6px; }
.ph-example-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 19px; }
.ph-example-row strong { font-size: 28px; font-weight: 700; }
.ph-split { flex-direction: row; align-items: center; justify-content: center; gap: 72px; }
.ph-split > * { margin: 0; }
.ph-video { flex: 0 1 720px; width: auto; aspect-ratio: 16 / 9; border-radius: 24px; background: var(--video-bg); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; }
.ph-video-play { width: 76px; height: 76px; border-radius: 50%; background: rgba(255, 255, 255, 0.16); display: flex; align-items: center; justify-content: center; }
.ph-video-label { font-size: 17px; color: #c7c7cc; }
.ph-split-text { flex: 1 1 0; width: auto; max-width: 488px; display: flex; flex-direction: column; gap: 20px; }
.ph-split-text .ph-title1 { font-size: 44px; }
.ph-lcs { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--hairline); padding-left: max(var(--space-20), calc((100% - var(--container)) / 2)); padding-right: max(var(--space-20), calc((100% - var(--container)) / 2)); }
.ph-lcs > * { width: auto; max-width: none; margin: 0; }
.ph-lcs-title { font-size: 32px; margin-bottom: 8px; }
.ph-lcs .ph-link { font-size: 20px; }
.ph-support { padding: 56px; border-radius: var(--radius-xl); display: flex; flex-direction: column; gap: 36px; }
.ph-support-head { display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.ph-support-head .ph-title2 { font-size: 34px; }
.ph-support-logo { max-width: 200px; max-height: 80px; flex-shrink: 0; }
.ph-support-logo--empty { width: 200px; height: 80px; border: 2px dashed #aeaeb2; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 600; color: var(--ink-muted); }
.ph-contact { padding: 28px 32px; border-radius: 18px; display: flex; flex-direction: column; gap: 6px; font-size: 19px; line-height: 1.5; }
.ph-contact strong { font-size: 21px; }

@media (max-width: 900px) {
  .ph-hero { padding: 64px 20px 56px; gap: 20px; }
  .ph-display { font-size: 44px; }
  .ph-hero .ph-eyebrow { font-size: 17px; }
  .ph-hero-sub { font-size: 19px; }
  .ph-hero-actions { flex-direction: column; width: 100%; margin-top: 8px; }
  .ph-hero-actions .ph-btn { width: 100%; }
  .ph-band, .ph-band--tight { padding: 56px 20px; }
  .ph-band--alt { gap: 24px; }
  .ph-home .ph-title1, .ph-split-text .ph-title1 { font-size: 30px; }
  .ph-grid3, .ph-grid2 { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .ph-step { padding: 24px; gap: 6px; }
  .ph-home .ph-title3 { font-size: 22px; }
  .ph-figure { margin-top: 16px; }
  .ph-example { padding: 20px 22px; gap: 16px; }
  .ph-example-shape { height: 80px; }
  .ph-split { flex-direction: column; align-items: stretch; gap: 24px; }
  .ph-video { flex: none; width: 100%; border-radius: var(--radius-lg); }
  .ph-split-text { max-width: none; gap: 12px; }
  .ph-lcs { flex-direction: column; align-items: flex-start; gap: 12px; padding-left: 20px; padding-right: 20px; }
  .ph-lcs-title { font-size: 22px; }
  .ph-support { padding: 24px; gap: 20px; }
  .ph-support-head { flex-direction: column-reverse; align-items: flex-start; gap: 16px; }
  .ph-support-head .ph-title2 { font-size: 22px; }
  .ph-contact { padding: 18px 20px; font-size: 17px; }
}

/* Oxygen sets its own fonts on body and headings (Open Sans / Source Sans 3 from Google Fonts).
   Keep the site on the system font everywhere, so no font has to be downloaded. */
.ph-page, .ph-page h1, .ph-page h2, .ph-page h3, .ph-page h4, .ph-page p, .ph-page a, .ph-page li, .ph-page button, .ph-page input, .ph-page label { font-family: var(--font-sans); }

/* Headings break into even lines instead of leaving one word behind */
.ph-display, .ph-title1, .ph-title2 { text-wrap: balance; }

/* ---------- Laptops: viewports narrower than 1440px or shorter than 820px ----------
   Same design, one size down, so a question fits on screen without scrolling.
   Phones and small tablets keep their own rules above (720px and 900px). */
@media screen and (min-width: 721px) {
  .ph-app { min-height: calc(100vh - 64px); }
}
@media screen and (min-width: 721px) and (max-width: 1439px), screen and (min-width: 721px) and (max-height: 820px) {
  :root { --button-height: 48px; --stepper-button: 52px; --question-width: 680px; --space-20: 56px; --space-28: 72px; }

  /* shared type and controls */
  .ph-title1 { font-size: 38px; }
  .ph-title2 { font-size: 30px; }
  .ph-title3 { font-size: 22px; }
  .ph-headline { font-size: 18px; }
  .ph-body-lg { font-size: 19px; }
  .ph-body { font-size: 17px; }
  .ph-callout { font-size: 16px; }
  .ph-footnote { font-size: 14px; }
  .ph-eyebrow { font-size: 16px; }
  .ph-btn { padding: 0 26px; font-size: 16px; }
  .ph-link { font-size: 16px; }
  .ph-card { padding: 26px 28px; }
  .ph-site-header, .ph-header { padding-left: 56px; padding-right: 56px; }
  .ph-footer { padding: 36px 56px; }

  /* questionnaire */
  .ph-app { padding: 28px 20px 40px; }
  .ph-app-inner { gap: 16px; }
  .ph-app .ph-qcard { padding: 36px 44px 32px; gap: 22px; border-radius: 24px; }
  .ph-app .ph-title1 { font-size: 32px; }
  .ph-app .ph-title2 { font-size: 28px; }
  .ph-app .ph-body-lg { font-size: 18px; }
  .ph-qhelp { margin-top: -10px; font-size: 17px; }
  .ph-progress { gap: 8px; }
  .ph-progress-meta { font-size: 14px; }
  .ph-points { gap: 10px; font-size: 17px; }
  .ph-choice { min-height: 60px; font-size: 18px; }
  .ph-check { min-height: 54px; font-size: 18px; }
  .ph-checkline { font-size: 16px; }
  .ph-stem { gap: 12px; font-size: 19px; }
  .ph-input { width: 96px; height: 52px; font-size: 24px; }
  .ph-input--wide { width: 100%; height: 48px; font-size: 18px; }
  .ph-date-part { gap: 6px; font-size: 14px; }
  .ph-stepper { gap: 12px; padding: 8px; }
  .ph-stepper-row { gap: 24px; }
  .ph-stepper-value, input.ph-stepper-value { font-size: 48px; }
  input.ph-stepper-value { width: 104px; }
  .ph-stepper-packs { font-size: 17px; min-height: 26px; }
  .ph-chip { height: 42px; padding: 0 18px; font-size: 16px; }
  .ph-alert { padding: 12px 16px; font-size: 16px; }
  .ph-review-row { padding: 12px 0; font-size: 17px; }
  .ph-done-check { width: 64px; height: 64px; }
  .ph-done-message { padding: 16px 20px; font-size: 17px; }

  /* clinician summary */
  .ph-sum-screen { gap: 16px; }
  .ph-sum-title, .ph-app .ph-sum-title { font-size: 34px; }
  .ph-sum-result { padding: 30px 36px; gap: 40px; }
  .ph-sum-number { width: 320px; }
  .ph-sum-criteria { padding-left: 40px; gap: 12px; }
  .ph-result-label { font-size: 16px; }
  .ph-result-number { font-size: 84px; }
  .ph-badge { padding: 6px 12px; font-size: 15px; }
  .ph-kv { padding: 9px 0; font-size: 16px; }
  .ph-kv--lg { font-size: 16px; }
  .ph-sum-cols { gap: 16px; }
  .ph-sum-doc { padding: 28px 32px; gap: 18px; }
  .ph-sum-side { width: 340px; gap: 16px; }
  .ph-note { padding: 18px 20px; font-size: 17px; }
  .ph-sum-res { font-size: 16px; }
  .ph-seg { height: 34px; font-size: 14px; }
}

/* Laptops, home and content pages (their phone layout starts at 900px) */
@media screen and (min-width: 901px) and (max-width: 1439px), screen and (min-width: 901px) and (max-height: 820px) {
  .ph-hero { padding: clamp(48px, 11vh, 104px) 24px clamp(48px, 10vh, 88px); gap: 20px; }
  .ph-display { font-size: 56px; }
  .ph-hero .ph-display { max-width: 760px; }
  .ph-hero .ph-eyebrow { font-size: 18px; }
  .ph-hero-sub { max-width: 620px; font-size: 20px; }
  .ph-hero-actions { margin-top: 8px; }
  .ph-btn--lg { height: 52px; padding: 0 30px; font-size: 17px; }
  .ph-band { gap: 20px; }
  .ph-band--alt { gap: 36px; }
  .ph-band--tight { padding-top: 60px; padding-bottom: 60px; }
  .ph-step { padding: 28px; gap: 8px; }
  .ph-step-n { font-size: 15px; }
  .ph-formula { font-size: 19px; }
  .ph-figure { margin-top: 24px; gap: 16px; }
  .ph-example { padding: 28px 28px 24px; gap: 20px; }
  .ph-example-shape { height: 80px; }
  .ph-example-row { font-size: 17px; }
  .ph-example-row strong { font-size: 24px; }
  .ph-split { gap: 48px; }
  .ph-video { flex-basis: 560px; }
  .ph-video-play { width: 60px; height: 60px; }
  .ph-split-text { gap: 14px; }
  .ph-split-text .ph-title1 { font-size: 34px; }
  .ph-lcs-title { font-size: 26px; }
  .ph-lcs .ph-link { font-size: 18px; }
  .ph-support { padding: 40px; gap: 26px; }
  .ph-support-head .ph-title2 { font-size: 28px; }
  .ph-contact { padding: 22px 26px; font-size: 17px; }
  .ph-contact strong { font-size: 19px; }
}

/* ---------- Header: keep the brand and the menu apart, whatever the language ---------- */
.ph-site-header { gap: 24px; }
.ph-site-header .ph-brand { flex-shrink: 0; }
.ph-site-header .ph-nav { gap: clamp(16px, 2.4vw, 36px); min-width: 0; }
.ph-site-header .ph-nav a, .ph-site-header .ph-brand-name { white-space: nowrap; }
.ph-site-header .ph-segmented { flex-shrink: 0; }
/* Spanish labels are longer: the menu links leave earlier, the EN / ES switch stays */
@media (max-width: 1023px) {
  html[lang^="es"] .ph-site-header .ph-nav-link { display: none; }
}
@media (max-width: 900px) {
  .ph-site-header { padding-left: 16px; padding-right: 16px; gap: 12px; }
}

/* ---------- Home hero: text left, example summary right, on a soft blue background ---------- */
.ph-hero.ph-hero--split {
  display: grid; grid-template-columns: minmax(0, 600px) 400px; justify-content: center; align-items: center; gap: 72px; text-align: left;
  padding: 80px 80px 88px;
  background: linear-gradient(160deg, #e6f0fc 0%, #f2f7fd 55%, #fafcff 100%);
  border-bottom: 1px solid var(--hairline);
}
.ph-hero--split .ph-hero-text { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; min-width: 0; }
.ph-hero--split .ph-eyebrow { font-size: 18px; }
.ph-hero--split .ph-display { max-width: 640px; font-size: 60px; line-height: 1.04; }
.ph-hero--split .ph-hero-sub { max-width: 560px; font-size: 21px; }
.ph-hero--split .ph-hero-actions { justify-content: flex-start; margin-top: 8px; }
.ph-hero-card { background: var(--surface); border-radius: 24px; padding: 28px; display: flex; flex-direction: column; gap: 16px;
  box-shadow: 0 24px 60px rgba(0, 72, 150, 0.12), 0 2px 8px rgba(0, 0, 0, 0.04); }
.ph-hero-card-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ph-hero-card-label { font-size: 15px; font-weight: 600; color: var(--ink-muted); }
.ph-hero-card-number { font-size: 72px; font-weight: 700; line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.ph-hero-card-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 12px; padding: 14px 0; border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); font-size: 15px; }
.ph-hero-card .ph-badge { padding: 5px 10px; font-size: 14px; }
.ph-hero-card-note { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; border-radius: var(--radius-md); background: var(--bg-alt); font-size: 15px; line-height: 1.5; }
.ph-hero-card-note p { margin: 0; }
.ph-hero-card-btn { display: flex; align-items: center; justify-content: center; height: 44px; border-radius: var(--radius-pill); background: var(--accent); color: var(--ink-inverse); font-size: 15px; font-weight: 600; }

@media screen and (min-width: 901px) and (max-width: 1439px), screen and (min-width: 901px) and (max-height: 820px) {
  .ph-hero.ph-hero--split { grid-template-columns: minmax(0, 560px) 340px; gap: 56px; padding: 52px 56px 60px; }
  .ph-hero--split .ph-display { font-size: 44px; }
  .ph-hero--split .ph-eyebrow { font-size: 16px; }
  .ph-hero--split .ph-hero-sub { font-size: 18px; max-width: 520px; }
  .ph-hero--split .ph-hero-text { gap: 16px; }
  .ph-hero-card { padding: 22px; gap: 12px; }
  .ph-hero-card-number { font-size: 56px; }
  .ph-hero-card-row, .ph-hero-card-note { font-size: 14px; }
  .ph-hero-card-row { padding: 10px 0; }
  .ph-hero-card-btn { height: 40px; font-size: 14px; }
}
@media (max-width: 900px) {
  .ph-hero.ph-hero--split { grid-template-columns: minmax(0, 1fr); justify-content: stretch; gap: 32px; padding: 48px 32px 56px; }
  .ph-hero--split .ph-display { font-size: 40px; }
  .ph-hero-card { max-width: 420px; }
}
@media (max-width: 720px) {
  .ph-hero.ph-hero--split { padding: 36px 20px 40px; }
  .ph-hero--split .ph-display { font-size: 34px; }
  .ph-hero--split .ph-hero-sub { font-size: 18px; }
  .ph-hero-card { display: none; }
}

/* The formula line is centred as a block, so Oxygen's paragraph alignment cannot push it left. */
.ph-band > .ph-formula { width: fit-content; max-width: 100%; margin-left: auto; margin-right: auto; }

/* Links inside text are underlined, so they don't rely on colour alone (WCAG 1.4.1).
   Buttons, the menu and the EN / ES switch keep their own look. */
.ph-page p a:not(.ph-btn):not(.ph-link),
.ph-page li a:not(.ph-btn):not(.ph-link),
.ph-footer a,
.ph-page .ph-contact a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.ph-page p a:not(.ph-btn):not(.ph-link):hover,
.ph-page li a:not(.ph-btn):not(.ph-link):hover,
.ph-footer a:hover,
.ph-page .ph-contact a:hover { text-decoration-thickness: 2px; }

/* Questionnaire page: hold the space while the script starts, so the footer doesn't jump up and back down. */
#packhistory-app:empty { min-height: calc(100vh - 64px); background: var(--bg-alt); }
@media (max-width: 900px) { #packhistory-app:empty { min-height: calc(100vh - 56px); } }
@media (max-width: 720px) { #packhistory-app:empty { background: var(--bg); } }

/* Video (home): play button first, Vimeo player after the click */
.ph-video { position: relative; overflow: hidden; max-width: 100%; }
.ph-video-btn { all: unset; box-sizing: border-box; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; cursor: pointer; border-radius: inherit; }
.ph-video-btn:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.ph-video-btn:hover .ph-video-play { background: rgba(255, 255, 255, 0.26); transform: scale(1.05); }
.ph-video-play { transition: background 0.15s, transform 0.15s; }
.ph-video-label { font-size: 17px; font-weight: 600; color: #ffffff; }
.ph-video-lang { font-size: 14px; color: #c7c7cc; }
html[lang^="en"] .ph-video-lang { display: none; }
.ph-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
@media (prefers-reduced-motion: reduce) { .ph-video-play { transition: none; } }