/* A warm farm-shop identity, with the same familiar ordering flow. */
.customer-portal{
  --portal-green:#233a25;
  --portal-green-dark:#172d1b;
  --portal-cream:#f6f3e9;
  --portal-line:#e0e3d6;
  --portal-muted:#616b5c;
  --text:#2c382c;
  --green:#233a25;
  --green-hover:#354e2c;
  --green-100:#edf3e3;
  --green-200:#c5d7ab;
  --green-300:#86a663;
  --accent:#86bc3d;
  --white:#fffefa;
  --background:#f6f4eb;
  --surface-subtle:#f8f6ef;
  --cream:#eff3e4;
  --line:#e0e3d6;
  --line-strong:#cdd7bf;
  --muted:#616b5c;
  --row-surface:#fffefa;
  --row-alternate:#f6f6ed;
  --row-hover:#eef3e4;
  --portal-peach:#f4dfca;
  --portal-oat:#f1e6c8;
  --portal-leaf:#e6efd6;
  background:
    radial-gradient(ellipse at 100% 0%,#e8efd95c 0,transparent 42%),
    #f8f6ef;
  color:var(--text);
}
.customer-portal .portal-header{
  background:#fffefa;
  border-top:4px solid var(--accent);
  border-bottom-color:#dce3d2;
  box-shadow:0 3px 18px #233a2505;
}
.customer-portal .portal-brand{border-radius:8px}
.customer-portal .portal-nav{gap:12px}
.customer-portal .portal-nav-link{
  border-radius:10px;
  padding:11px 14px;
  color:#596752;
  transition:background-color .16s,color .16s;
}
.customer-portal .portal-nav-link.active{
  background:var(--portal-leaf);
  color:var(--portal-green);
}
.customer-portal .portal-nav-link.active:after{display:none}
.customer-portal .portal-account{border-radius:9px;color:#526247}
.customer-portal .portal-cart-link{
  padding:10px 12px;
  border-radius:12px;
  background:#eff4e5;
  gap:8px;
}
.customer-portal .cart-count{
  background:var(--portal-green);
  color:#fffefa;
  font-weight:650;
}
.customer-portal .portal-main{min-width:0}
.customer-portal :is(.page-heading h1,.portal-catalog-heading h1){
  color:var(--portal-green);
  letter-spacing:-.035em;
  font-weight:700;
}
.customer-portal .card,
.customer-portal .portal-catalog-list{
  border-color:var(--portal-line);
  background:var(--white);
  border-radius:16px;
  box-shadow:0 3px 12px #233a2504;
}
.customer-portal .btn{
  border-radius:10px;
  font-weight:600;
  transition:background-color .16s,border-color .16s,box-shadow .16s;
}
.customer-portal .btn-primary{
  background:var(--portal-green);
  border-color:var(--portal-green);
  color:#fffefa;
  box-shadow:0 2px 0 #172d1b12;
}
.customer-portal .btn-primary:hover{
  background:#36512e;
  border-color:#36512e;
  box-shadow:0 3px 8px #233a2514;
}
.customer-portal .btn-secondary{
  background:#fffefa;
  border-color:#cbd7be;
  color:var(--portal-green);
}
.customer-portal .btn-secondary:hover{background:#edf3e2;border-color:#a8bd8a}
.customer-portal .btn-link{box-shadow:none;font-weight:500}
.customer-portal .btn:disabled{cursor:not-allowed;box-shadow:none}
.customer-portal .search-field{
  border-color:#d1dbc5;
  border-radius:12px;
  background:#fffefa;
  box-shadow:0 2px 6px #233a2503;
}
.customer-portal .category-pill{
  border-color:#d8dfcc;
  background:#fffefa;
  color:#526247;
  font-weight:550;
}
.customer-portal .category-pill.active{
  background:#e5efcf;
  color:#233a25;
  border-color:#a5c379;
  box-shadow:inset 0 0 0 1px #b7ce921a;
}
.customer-portal .field :is(input,select,textarea),
.customer-portal .catalog-list-format select{
  border-color:#cfd9c2;
  border-radius:10px;
  background:#fffefa;
  color:var(--text);
}
.customer-portal :is(input[type=checkbox],input[type=radio]){accent-color:#476d2c}
.customer-portal :is(a,button,summary):focus-visible,
.customer-portal :is(input,select,textarea):focus-visible{
  outline:3px solid #557d2d;
  outline-offset:3px;
}
.customer-portal .search-field:focus-within{
  outline:3px solid #557d2d;
  outline-offset:2px;
  border-color:#8da66a;
}
.customer-portal .search-field input:focus{outline:0}
.customer-portal .stepper{
  border-color:#cbd8bc;
  background:#fffefa;
  border-radius:10px;
}
.customer-portal .stepper .icon-button{color:#536d3d}
.customer-portal .stepper .icon-button:hover{background:#eaf1dd}
.customer-portal .stepper input{background:transparent;font-variant-numeric:tabular-nums}

/* The business catalogue stays a compact, readable order sheet. */
.customer-portal .portal-delivery-plan{
  background:#edf3e2;
  border-color:#d2dfbe;
  border-radius:14px;
}
.customer-portal .portal-plan-icon{color:#597d35}
.customer-portal .catalog-list-row{border-bottom-color:#e4e7da}
.customer-portal .catalog-list-row:nth-child(even){background:#f6f6ed}
.customer-portal .catalog-list-image{
  background:#edf2e1;
  border-radius:12px 15px 11px 15px;
}
.customer-portal .catalog-list-row:nth-child(3n+2) .catalog-list-image{background:#f4e7d7}
.customer-portal .catalog-list-row:nth-child(3n) .catalog-list-image{background:#f1ebd6}
.customer-portal .catalog-list-name h2{color:#2c4228}
.customer-portal .catalog-list-price{color:#2b4327;font-weight:600}
.customer-portal .catalog-package-row .catalog-list-image{background:#e2eccf}
.customer-portal .portal-catalog-grid .catalog-card{border-radius:16px}
.customer-portal .portal-catalog-grid .portal-product-media{
  position:relative;
  background:#edf2e1;
  border-bottom-color:#e8edde;
}
.customer-portal .portal-catalog-grid .catalog-card:nth-child(3n+2) .portal-product-media{background:#f5e8d7}
.customer-portal .portal-catalog-grid .catalog-card:nth-child(3n) .portal-product-media{background:#f1ebd4}
.customer-portal .portal-catalog-grid .portal-product-media .product-image{filter:drop-shadow(0 5px 5px #43512d13)}
.customer-portal .portal-catalog-grid .portal-product-body h2{font-weight:650;color:#2c4228}
.customer-portal .portal-catalog-grid .portal-price{color:#2b4327}

/* The basket and account screens use the same warm, quiet surfaces. */
.customer-portal .portal-cart-strip{
  background:#233a25;
  color:#fffefa;
  border-color:#233a25;
  border-radius:15px;
  box-shadow:0 7px 24px #233a2524;
}
.customer-portal .portal-cart-strip>div>span{color:#d8e5c9}
.customer-portal .portal-cart-strip>.btn-primary{
  background:#c0df98;
  border-color:#c0df98;
  color:#233a25;
  box-shadow:none;
}
.customer-portal .portal-cart-strip>.btn-primary:hover{background:#cee7af;border-color:#cee7af}
.customer-portal .card-heading{border-bottom-color:#e1e5d7}
.customer-portal .cart-summary{border-top:3px solid #91b855}
.customer-portal .cart-line>.product-image{
  background:#eff2e5;
  border-radius:10px;
}
.customer-portal .delivery-choice,
.customer-portal .guest-fulfillment-choice{background:#fffefa;border-color:#d4dec7;border-radius:12px}
.customer-portal .delivery-choice.selected,
.customer-portal .guest-fulfillment-choice.selected{background:#edf4de;border-color:#8fae66;box-shadow:inset 0 0 0 1px #99b7761a}
.customer-portal .guest-fulfillment-choice.unavailable{background:#f1f1e9;border-color:#e0e2d7;box-shadow:none}
/* Keep the delivery cards as the radio control, including their native keyboard behavior. */
.customer-portal .guest-fulfillment-choice{position:relative}
.customer-portal .guest-fulfillment-choice>input[type="radio"]{
  position:absolute;width:1px;height:1px;min-width:0;min-height:0;max-width:1px;max-height:1px;
  padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;
}
.customer-portal .guest-fulfillment-choice>span{width:100%}
.customer-portal .guest-fulfillment-choice:has(>input:checked){background:#edf4de;border-color:#8fae66;box-shadow:inset 0 0 0 1px #99b7761a}
.customer-portal .guest-fulfillment-choice:has(>input:focus-visible){outline:3px solid #557d2d;outline-offset:3px}
.customer-portal .guest-fulfillment-choice:has(>input:disabled){background:#f1f1e9;border-color:#e0e2d7;box-shadow:none;cursor:not-allowed}
.customer-portal .guest-fulfillment-choice:has(>input:disabled)>span{opacity:.68}

.customer-portal :is(.portal-delivery-address,.confirmation-details){background:#f1f4e8;border-radius:12px}
.customer-portal .cart-grand-total{color:#233a25}
.customer-portal .notice:not(.warning){background:#eff4e4;border-color:#d5dfc4;color:#56624c}
.customer-portal .portal-profile-save{background:#eff4e4;border-color:#cbd9b9;border-radius:12px}
.customer-portal .portal-profile-details>div{border-bottom-color:#e4e7db}
.customer-portal .confirmation-icon{background:#e6f0d2;color:#42652a}
.customer-portal .portal-edit-availability{background:#eff4e4;border-color:#d4dfc4;border-radius:13px}
.customer-portal .portal-history-chrome{background:#f8f6ef;box-shadow:0 3px 10px #233a2506}
.customer-portal .portal-history-month-heading{
  background:#eaf0dc;
  border-bottom-color:#d5e0c3;
  border-radius:15px 15px 0 0;
  color:#2d4528;
}
.customer-portal .portal-history-month-list{border-radius:0 0 15px 15px}
.customer-portal .portal-history .portal-history-order-row{border-radius:0}
.customer-portal .portal-history .portal-history-order-row[data-customer-history-start]{box-shadow:inset 3px 0 0 #86bc3d}
.customer-portal .portal-history .portal-history-order-row .portal-order-toggle{color:#476637}
.customer-portal .portal-footer{border-top-color:#d9e1ce;color:#627155}
.customer-portal .portal-footer a{color:#526b41}
.customer-portal .portal-hero{background:#eaf1db;border-color:#d6e3bf;border-radius:20px}
.customer-portal .portal-hero:after{background:#dbe9bf;border-radius:48% 52% 38% 62%}
.customer-portal .empty-state .empty-icon{background:#eaf0db;color:#5c7a42}

/* Package customers get a more expressive farm-shop edition. */
.customer-portal.package-portal{
  --package-forest:#233a25;
  --package-lime:#c0df98;
  --package-paper:#faf5e9;
  --portal-cream:#f7f1e2;
  --surface-subtle:#faf5e9;
  --background:#f7f1e2;
  --cream:#edf2dd;
  --portal-line:#e0e2d1;
  --row-alternate:#f6f4e9;
  background:
    radial-gradient(ellipse at 2% 0%,#e8efda99 0,transparent 39%),
    radial-gradient(ellipse at 100% 22%,#f4dfca55 0,transparent 36%),
    #faf5e9;
}
.package-portal .portal-header{
  background:#233a25;
  border-top-color:#86bc3d;
  border-bottom:1px solid #ffffff0d;
  box-shadow:none;
}
.package-portal .portal-nav{gap:10px}
.package-portal .portal-nav-link{color:#e1e8d8;border-radius:999px;padding:11px 14px}
.package-portal .portal-nav-link.active{color:#fffefa;background:#ffffff14}
.package-portal .portal-nav-link.active:after{display:none}
.package-portal .portal-account{color:#eef4e5}
.package-portal .portal-cart-link{background:#ffffff10;color:#fffefa;border:1px solid #ffffff0d}
.package-portal .cart-count{background:#c0df98;color:#233a25}
.package-portal .portal-header :is(a,button):focus-visible{outline-color:#c0df98}
.package-portal .btn{border-radius:999px;font-weight:650}
.package-portal .btn-primary{background:#c0df98;border-color:#c0df98;color:#233a25;box-shadow:none}
.package-portal .btn-primary:hover{background:#b0d582;border-color:#b0d582;color:#233a25}
.package-portal .btn-secondary{background:#fffefa;border-color:#c9d5b9}
.package-portal .btn-link{border-radius:5px;font-weight:500}
.package-portal .search-field{border-radius:999px;background:#fffefa}
.package-portal .card{border-radius:20px;background:#fffefa}
.package-portal .package-shop-hero{
  border-radius:28px 28px 52px 28px;
  background:linear-gradient(115deg,#233a25 0%,#304e29 63%,#547b34 100%);
  box-shadow:0 8px 22px #233a2509;
}
.package-portal .package-shop-hero:after{
  content:'';
  position:absolute;
  bottom:-1px;
  left:0;
  width:100%;
  height:17px;
  z-index:2;
  background:#faf5e9;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1240 24' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0 11C145 27 262 0 414 9S693 25 848 12S1090 1 1240 10V24H0Z'/%3E%3C/svg%3E");
  mask-size:100% 100%;
  pointer-events:none;
}
.package-portal .package-shop-hero:before{
  content:'';
  position:absolute;
  width:240px;
  height:240px;
  left:54px;
  bottom:-210px;
  border:18px solid #b4d77d2b;
  border-radius:46% 54% 58% 42%;
  pointer-events:none;
}
.package-portal .package-shop-copy .eyebrow{color:#c0df98;letter-spacing:.12em}
.package-portal .package-shop-copy h1{color:#fffdf2;letter-spacing:-.045em;line-height:1.02}
.package-portal .package-shop-copy>p{color:#e2ead8}
.package-portal .package-shop-visual:before{
  content:'';
  position:absolute;
  left:-1px;
  top:-2px;
  bottom:-2px;
  width:30px;
  background:#304e29;
  border-radius:0 70% 60% 0 / 0 48% 52% 0;
  z-index:1;
  pointer-events:none;
}
.package-portal .package-hero-stamp{
  background:#c3e28e;
  color:#233a25;
  border-radius:44% 56% 52% 48% / 50% 44% 56% 50%;
  transform:rotate(8deg);
  box-shadow:0 4px 12px #233a2510;
}
.package-portal .package-shop-heading h2{color:#233a25;letter-spacing:-.035em}
.package-portal .package-shop-grid{gap:22px}
.package-portal .package-shop-card{
  background:#fffefa;
  border-color:#dddcca;
  border-radius:22px;
  box-shadow:0 4px 13px #4d523409;
  transition:box-shadow .18s,border-color .18s;
}
.package-portal .package-shop-card-media{background:#e6edcf;border-bottom:1px solid #e8e6d4}
.package-portal .package-shop-product-preview{background:#e5edcf}
.package-portal .package-shop-card:nth-child(3n+2) :is(.package-shop-card-media,.package-shop-product-preview){background:#f1dfc7}
.package-portal .package-shop-card:nth-child(3n) :is(.package-shop-card-media,.package-shop-product-preview){background:#eee7cb}
.package-portal .package-preview-photo{box-shadow:0 7px 14px #4d52341f;background:#fffefa;border-color:#fffefa}
.package-portal .package-card-label{
  background:#fffbed;
  color:#36502c;
  border:1px solid #ffffffa6;
  box-shadow:0 2px 5px #233a2508;
  font-size:11px;
  letter-spacing:.025em;
}
.package-portal .package-shop-card-body h3{color:#2c4427;letter-spacing:-.03em}
.package-portal .package-shop-card-bottom{border-top-color:#e4e5d7}
.package-portal .package-shop-price strong{color:#2d4727}
.package-portal .package-shop-periods dt{color:#3d5731}
.package-portal .package-shop-card-bottom>.btn{box-shadow:0 2px 0 #233a2505}
.package-portal .guest-steps small{background:#fffefa;border-color:#ced9bd}
.package-portal .guest-steps>[aria-current]>small{background:#233a25;border-color:#233a25;color:#fffefa}
.package-portal .guest-steps>[aria-current]{color:#2c4427}
.package-portal .guest-chosen-period{border-color:#dce1ce}
.package-portal .portal-history-chrome{background:#faf5e9}
.package-portal .portal-history-month-heading{background:#e9efd8}
.package-portal .portal-footer{border-top-color:#d9deca}
@media screen and (min-width:641px){
  .package-portal .package-cart-details{margin:0}
  .package-portal .package-cart-details>summary{display:none}
}

/* Customer dialogs keep the shop identity without affecting staff editors. */
body:has(.customer-portal) dialog#editor,
dialog.package-portal-dialog{
  --green:#233a25;
  --green-hover:#36512e;
  --cream:#eff3e2;
  --surface-subtle:#f6f5ec;
  --background:#f8f5e9;
  --line:#e1e4d5;
  --line-strong:#cbd7ba;
  --muted:#616b5c;
  --accent:#86bc3d;
  background:#fffefa;
  border-color:#d5ddc7;
  border-radius:22px;
  box-shadow:0 20px 80px #203c2238;
}
body:has(.customer-portal) dialog#editor>.dialog-heading,
dialog.package-portal-dialog>.dialog-heading{background:#eff3e2;border-bottom-color:#dce4ce}
body:has(.customer-portal) dialog#editor::backdrop{background:#1f332857;backdrop-filter:blur(3px)}
body:has(.customer-portal) dialog#editor .field :is(input,select,textarea),
dialog.package-portal-dialog .field :is(input,select,textarea){background:#fffefa;border-color:#cbd7ba;border-radius:10px}
body:has(.customer-portal) dialog#editor :is(.package-base-section,.package-config-price),
dialog.package-portal-dialog :is(.package-base-section,.package-config-price){background:#f0f4e4;border-color:#d5e0c2;border-radius:15px}
body:has(.customer-portal) dialog#editor .package-alternative,
dialog.package-portal-dialog .package-alternative{background:#fffefa;border-color:#ccd8bb;border-radius:11px}
body:has(.customer-portal) dialog#editor .package-alternative:has(input:checked),
dialog.package-portal-dialog .package-alternative:has(input:checked){background:#e8f1d6;border-color:#8dab65}
body:has(.customer-portal) dialog#editor .package-quantity-note,
dialog.package-portal-dialog .package-quantity-note{background:#f5ecd6;color:#665a39;border-radius:10px}
dialog.package-portal-dialog .btn-primary{background:#c0df98;border-color:#c0df98;color:#233a25}
dialog.package-portal-dialog .btn-primary:hover{background:#b0d582;border-color:#b0d582}
body:has(.customer-portal) dialog#editor :is(a,button,summary,input,select,textarea):focus-visible,
dialog.package-portal-dialog :is(a,button,summary,input,select,textarea):focus-visible{outline:3px solid #557d2d;outline-offset:3px}

@media(hover:hover){
  .customer-portal .portal-nav-link:hover{background:#eff4e5;color:#233a25}
  .customer-portal .portal-account:hover{background:#edf3e2;color:#233a25}
  .customer-portal .category-pill:not(.active):hover{background:#f1f5e8;border-color:#aabf8d}
  .customer-portal .catalog-list-row:hover{background:#eef4e4}
  .package-portal .portal-nav-link:hover,.package-portal .portal-account:hover{background:#ffffff14;color:#fffefa}
  .package-portal .package-shop-card:hover{border-color:#b0c18f;box-shadow:0 7px 18px #4d523411}
}
@media(max-width:1120px){
  .customer-portal .portal-nav{gap:4px}
  .customer-portal .portal-nav-link{padding:10px 11px}
  .customer-portal .portal-cart-link{padding:9px 10px}
}
@media(max-width:930px){
  .customer-portal .portal-nav{gap:12px;justify-content:center}
  .package-portal .portal-nav{gap:16px}
  .package-portal .package-shop-visual:before{width:21px}
}
@media(max-width:640px){
  .customer-portal .portal-header{border-top-width:3px}
  .customer-portal .portal-nav{gap:3px;justify-content:space-between}
  .customer-portal .portal-nav-link{padding:9px 10px;border-radius:9px}
  .customer-portal .portal-cart-link{padding:8px 10px;border-radius:10px}
  .customer-portal .portal-catalog-list,.customer-portal .card{border-radius:14px}
  .customer-portal .portal-history .portal-history-order-row{border-radius:0}
  .customer-portal .portal-catalog-grid .catalog-card{border-radius:14px}
  .customer-portal .portal-history-month-heading{border-radius:13px 13px 0 0}
  .customer-portal .portal-history-month-list{border-radius:0 0 13px 13px}
  .customer-portal .portal-cart-strip{border-radius:13px}
  .package-portal .portal-nav-link{border-radius:999px;padding:9px 10px;font-size:11px}
  .package-portal .package-shop-hero{border-radius:23px 23px 34px 23px}
  .package-portal .package-shop-hero:before{display:none}
  .package-portal .package-shop-visual:before{display:none}
  .package-portal .package-shop-hero:after{height:13px}
  .package-portal .package-shop-grid{gap:20px}
  .package-portal .package-shop-card{border-radius:20px}
  .package-portal .package-shop-copy h1{font-size:41px}
  .package-portal .package-card-label{font-size:11px}
  .package-portal .package-hero-stamp{width:76px;height:76px;font-size:14px}
  .package-portal .card{border-radius:18px}
  .package-portal .portal-history .portal-history-order-row{border-radius:0}
  body:has(.customer-portal) dialog#editor,dialog.package-portal-dialog{border-radius:18px}
}
@media(max-width:360px){
  .customer-portal .portal-nav-link{padding:9px 7px}
  .customer-portal .portal-nav{gap:2px}
  .customer-portal .portal-cart-link{padding:7px 8px;gap:6px}
  .package-portal .package-shop-copy h1{font-size:36px}
  .package-portal .package-shop-card-bottom{gap:10px}
  .package-portal .package-shop-card:only-child .package-shop-card-bottom{gap:10px}
  .package-portal .package-shop-card-bottom>.btn{font-size:12px;padding:10px 12px}
}
/* On phones the introduction supports browsing instead of filling the first screen. */
@media screen and (max-width:640px){
  .package-portal .portal-main{padding-top:16px}
  .package-portal .package-shop-hero{grid-template-columns:minmax(0,1fr) clamp(76px,23vw,120px);min-height:0;margin-bottom:20px;border-radius:18px}
  .package-portal .package-shop-copy{padding:18px 16px 22px}
  .package-portal .package-shop-copy .eyebrow{font-size:9px;line-height:1.45;letter-spacing:.08em;margin-bottom:8px}
  .package-portal .package-shop-copy h1{font-size:clamp(24px,7vw,32px);line-height:1.04;letter-spacing:-.04em;margin-bottom:10px;overflow-wrap:anywhere}
  .package-portal .package-shop-copy>p{font-size:12px;line-height:1.5;max-width:none}
  .package-portal .package-shop-visual{height:auto;min-height:0;align-self:stretch}
  .package-portal .package-hero-photo{object-position:52% 50%}
  .package-portal :is(.package-hero-stamp,.package-hero-caption){display:none}
  .package-portal .package-shop-hero:after{height:9px}
  .package-portal .package-shop-heading{gap:12px;margin-bottom:14px}
  .package-portal .package-shop-heading h2{font-size:23px;margin-bottom:4px}
  .package-portal .package-shop-heading p{line-height:1.5}
  .package-portal .package-shop-grid{gap:14px}
  .package-portal .package-shop-card{border-radius:16px}
  .package-portal .package-shop-card .package-shop-card-media{height:120px;min-height:0;flex-shrink:0}
  .package-portal .package-shop-card .package-shop-card-body{padding:15px}
  .package-portal .package-shop-card:only-child .package-shop-card-media{height:120px;min-height:0}
  .package-portal .package-shop-card:only-child .package-shop-card-body{padding:15px}
  .package-portal .package-shop-product-preview{height:100%;min-height:0;padding:12px 24px}
  .package-portal .package-preview-photo{width:22%;max-width:74px;max-height:94px}
  .package-portal .package-card-label{top:10px;left:10px;padding:4px 8px;font-size:9px;max-width:calc(100% - 20px)}
  .package-portal .package-shop-card-body h3{font-size:20px;line-height:1.2;margin-bottom:7px}
  .package-portal .package-shop-card-description{font-size:12px;line-height:1.5;margin-bottom:12px;-webkit-line-clamp:2}
  .package-portal .package-shop-periods{gap:5px;font-size:12px;line-height:1.45;margin-bottom:12px}
  .package-portal .package-shop-card .package-shop-card-bottom{padding-top:12px;gap:10px;flex-direction:row;align-items:center;flex-wrap:wrap}
  .package-portal .package-shop-card .package-shop-price{flex:1 1 104px;min-width:0}
  .package-portal .package-shop-price strong{font-size:22px}
  .package-portal .package-shop-card .package-shop-card-bottom>.btn{flex:1 1 132px;min-width:0;min-height:44px;width:auto;font-size:12px;line-height:1.4;padding:10px 12px;white-space:normal}
}
/* Compact package selection and checkout on phones; controls keep a full touch target. */
@media screen and (max-width:640px){
  html:has(dialog.package-portal-dialog[open] [data-customer-form="package"]){overflow:hidden}
  dialog.package-portal-dialog[open]:has([data-customer-form="package"]){display:flex;flex-direction:column;max-height:calc(100dvh - 20px);overflow:hidden}
  dialog.package-portal-dialog:has([data-customer-form="package"])>.dialog-heading{flex-shrink:0;padding:12px 16px;gap:12px}
  dialog.package-portal-dialog:has([data-customer-form="package"])>.dialog-heading .eyebrow{font-size:9px;margin-bottom:4px}
  dialog.package-portal-dialog:has([data-customer-form="package"])>.dialog-heading h2{font-size:20px;line-height:1.25}
  dialog.package-portal-dialog:has([data-customer-form="package"])>.dialog-heading>.icon-button{width:44px;min-width:44px;height:44px;min-height:44px}
  dialog.package-portal-dialog:has([data-customer-form="package"])>.dialog-body{flex:1 1 auto;min-height:0;max-height:none;padding:16px;overflow:auto;scroll-padding-bottom:88px}
  dialog.package-portal-dialog [data-customer-form="package"]>p:first-child{font-size:12px;line-height:1.5;margin:0 0 12px}
  dialog.package-portal-dialog [data-customer-form="package"]>.field:has([data-customer-field="package-quantity"]){display:grid;grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:12px}
  dialog.package-portal-dialog [data-customer-form="package"]>.portal-meta{font-size:12px;line-height:1.5;margin:6px 0 0}
  dialog.package-portal-dialog [data-customer-form="package"] .field :is(input,select,textarea){font-size:16px;min-height:44px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-configurator{margin-top:14px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-base-section{padding:12px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-section-heading{gap:4px;margin-bottom:8px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-section-heading h3{margin-bottom:3px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-standard-list{margin-top:8px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-standard-row{padding:7px 0}
  dialog.package-portal-dialog [data-customer-form="package"] .package-standard-row:has(.package-standard-choice){padding:0}
  dialog.package-portal-dialog [data-customer-form="package"] :is(.package-standard-choice,.package-customize-toggle){min-height:44px;align-items:center;padding:6px 0}
  dialog.package-portal-dialog [data-customer-form="package"] .package-alternatives{margin-top:10px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-alternative{min-height:44px;padding:9px;gap:8px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-added-section{padding:16px 0}
  dialog.package-portal-dialog [data-customer-form="package"] .package-added-row{padding:10px 0}
  dialog.package-portal-dialog [data-customer-form="package"] .package-added-inputs{grid-template-columns:minmax(0,1fr) 44px;gap:8px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-added-inputs>.field:nth-child(2){display:grid;grid-template-columns:minmax(0,1fr) 88px;align-items:center;gap:8px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-added-inputs>.icon-button{width:44px;min-width:44px;min-height:44px;height:44px;margin:0}
  dialog.package-portal-dialog [data-customer-form="package"] .package-added-section>.btn-link{min-height:44px;margin-top:6px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-quantity-note{padding:9px 11px;margin-top:10px;line-height:1.5}
  dialog.package-portal-dialog [data-customer-form="package"] .package-config-price{padding:12px;margin-top:14px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-config-price>div{line-height:1.45;margin-top:7px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-config-price .package-config-unit{padding-top:9px;margin-top:9px}
  dialog.package-portal-dialog [data-customer-form="package"] .package-config-price .package-config-total{margin-top:9px}
  dialog.package-portal-dialog [data-customer-form="package"]>.form-actions{display:flex;position:sticky;bottom:-16px;z-index:5;margin:16px -16px -16px;padding:12px 16px max(12px,env(safe-area-inset-bottom));gap:8px;border-top:1px solid #dce4ce;background:#fffefa;flex-wrap:nowrap}
  dialog.package-portal-dialog [data-customer-form="package"]>.form-actions>.btn{min-height:44px;font-size:13px;line-height:1.4;padding:10px 12px;white-space:normal}
  dialog.package-portal-dialog [data-customer-form="package"]>.form-actions>.btn-primary{flex:1;min-width:0}

  .package-portal .page-heading{gap:10px;margin:4px 0 16px}
  .package-portal .page-heading h1{font-size:25px}
  .package-portal .page-heading .btn{min-height:44px}
  .package-portal .guest-steps{gap:8px;margin-bottom:12px}
  .package-portal .guest-steps>a,.package-portal .guest-steps>span{min-height:44px;line-height:1.4}
  .package-portal .guest-steps small{flex-shrink:0}
  .package-portal .portal-layout{gap:14px}
  .package-portal :is(.guest-contact,.guest-review-card,.guest-summary){padding:16px}
  .package-portal .guest-contact h2{font-size:16px;margin-bottom:12px}
  .package-portal .guest-contact .form-section-title{margin-top:20px;margin-bottom:10px}
  .package-portal .guest-contact .form-grid{gap:12px}
  .package-portal :is(.guest-contact,.cart-products) .field :is(input,select,textarea){font-size:16px;min-height:44px}
  .package-portal .guest-fulfillment{gap:10px}
  .package-portal .guest-fulfillment-choice{padding:12px;min-height:44px}
  .package-portal .guest-fulfillment-choice>span{gap:3px 8px}
  .package-portal .guest-fulfillment-choice small{line-height:1.5}
  .package-portal .guest-address{margin-top:14px}
  .package-portal .guest-review-main{gap:14px}
  .package-portal .guest-review-card .card-heading{padding-bottom:12px;gap:8px}
  .package-portal .guest-review-card .card-heading>.btn-link{min-height:44px}
  .package-portal .guest-review-line{padding:12px 0;gap:12px}
  .package-portal .guest-review-card>p{line-height:1.6;margin:10px 0}
  .package-portal .guest-chosen-period{margin:14px 0;padding:12px 0}
  .package-portal .guest-summary h2{margin-bottom:14px}
  .package-portal .guest-summary>p:first-of-type{margin-top:-4px;margin-bottom:12px}
  .package-portal .guest-summary .cart-totals{margin-top:14px}
  .package-portal .guest-summary .cart-grand-total{padding-top:12px;margin-top:5px}
  .package-portal .guest-next{margin-top:16px;min-height:44px}
  .package-portal .guest-package-details>summary{min-height:44px;padding-block:12px}

  .package-portal .cart-products{padding:0 15px}
  .package-portal .cart-products>.card-heading{padding:16px 0 12px}
  .package-portal .cart-line{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;padding:16px 0}
  .package-portal .cart-line>.product-image{width:40px;height:54px}
  .package-portal .cart-line-main{min-width:0}
  .package-portal .cart-line-main>.portal-meta{line-height:1.5;margin-bottom:7px}
  .package-portal .cart-line-actions{gap:6px 12px;margin-top:6px}
  .package-portal .cart-line-actions .btn-link{min-height:44px;padding-block:8px}
  .package-portal .cart-line-right{display:grid;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1px 10px;min-width:0;width:100%;padding-left:0}
  .package-portal .cart-line-right>.stepper{grid-column:1;grid-row:1/3;justify-self:start;width:max-content;height:46px;margin:0}
  .package-portal .cart-line-right>.stepper .icon-button{width:44px;min-width:44px;height:44px;min-height:44px}
  .package-portal .cart-line-right>.stepper input{width:44px;height:44px;font-size:16px}
  .package-portal .cart-line-right>strong{grid-column:2;grid-row:1;margin:0;text-align:right}
  .package-portal .cart-line-right>small{grid-column:2;grid-row:2;margin:0;text-align:right}
  .package-portal .cart-line .package-contents-summary{margin-top:9px}
  .package-portal .cart-line .package-contents-summary h3{margin:9px 0 5px;line-height:1.45}
  .package-portal .cart-line .package-per-item-list{margin:5px 0 8px}
  .package-portal .cart-line .package-per-item-list li{padding:5px 0;gap:8px;line-height:1.45}
  .package-portal .cart-line .package-per-item-list li>span:first-child{min-width:0;overflow-wrap:anywhere}
  .package-portal .cart-line .package-per-item-list li>span:last-child{max-width:78px}
  .package-portal .cart-line .package-added-summary{margin-top:7px}
  .package-portal .cart-line .package-contents-summary>p{line-height:1.5;margin-top:7px}
  .package-portal .cart-add-fields{gap:10px 8px}
  .package-portal .cart-add-fields>.btn{min-height:44px}
  .package-portal .cart-add-amount .stepper{height:46px}
  .package-portal .cart-add-amount .stepper>.icon-button{width:44px;min-width:44px;min-height:44px;height:44px}
  .package-portal .cart-add-amount .stepper input{height:44px;min-height:44px;font-size:16px}
}
@media(prefers-reduced-motion:reduce){
  .customer-portal .btn,.customer-portal .portal-nav-link,.package-portal .package-shop-card{transition:none}
}
@media print{
  body:has(.customer-portal) dialog#editor,dialog.package-portal-dialog{background:#fff;border:0;border-radius:0;box-shadow:none}
  body:has(.customer-portal) dialog#editor::backdrop,dialog.package-portal-dialog::backdrop{display:none}
  .customer-portal,.customer-portal.package-portal{background:#fff;color:#222}
  .customer-portal .card,.customer-portal .portal-catalog-list,.package-portal .package-shop-card{box-shadow:none;border-color:#ccc;background:#fff}
  .customer-portal .portal-history-chrome{background:#fff}
  .customer-portal .portal-history-month-heading{position:static;border-radius:0;background:#fff;box-shadow:none;color:#222}
  .customer-portal .catalog-list-row,.customer-portal .catalog-list-row:nth-child(even){background:#fff;break-inside:avoid}
  .customer-portal .portal-history .portal-history-order-row{border-radius:0}
}

/* A compact introduction keeps the actual package choice in the first screen. */
.package-portal .package-shop-hero.package-shop-compact{display:block;grid-template-columns:none;min-height:0;height:auto;margin-bottom:22px;background:#edf3e3;border:1px solid #dce5cf;border-radius:14px;box-shadow:none}
.package-portal .package-shop-hero.package-shop-compact::before,.package-portal .package-shop-hero.package-shop-compact::after{display:none}
.package-portal .package-shop-compact .package-shop-copy{padding:18px 22px;max-width:none;min-width:0}
.package-portal .package-shop-compact .package-shop-copy .eyebrow{display:block;margin:0 0 5px;color:#597745;font-size:10px;line-height:1.5;letter-spacing:.08em}
.package-portal .package-shop-compact .package-shop-copy h1{max-width:none;margin:0 0 6px;color:#233a25;font-size:30px;line-height:1.15;letter-spacing:-.035em}
.package-portal .package-shop-compact .package-shop-copy>p{max-width:78ch;margin:0;color:#5c6855;font-size:13px;line-height:1.55}
@media(max-width:600px){
 .package-portal .package-shop-hero.package-shop-compact{margin-bottom:16px;border-radius:12px}
 .package-portal .package-shop-compact .package-shop-copy{padding:13px 15px}
 .package-portal .package-shop-compact .package-shop-copy .eyebrow{font-size:9px;margin-bottom:4px}
 .package-portal .package-shop-compact .package-shop-copy h1{font-size:25px;line-height:1.15;margin-bottom:5px}
 .package-portal .package-shop-compact .package-shop-copy>p{font-size:12px;line-height:1.5}
}
