/* AquaSystem v4: quiet controls, readable product information, local map. */
.drawer-links a::after { content:none; }
.menu-drawer .drawer-categories { grid-template-columns:1fr; gap:12px; margin-top:25px; }
.menu-drawer .drawer-categories>a { min-height:66px; padding:18px 21px; gap:16px; font-size:17px; border-radius:17px; }
.menu-drawer .drawer-categories>a:hover { background:var(--ice); border-color:#a7cee4; }
.menu-drawer .drawer-categories .icon { width:26px; height:26px; }
.menu-drawer .drawer-bottom { padding-top:30px; padding-bottom:5px; }
.drawer-bottom>a:first-child { border:0; padding-bottom:0; margin-bottom:0; }
.drawer-bottom>a:first-child>.icon:last-child { margin-left:0; }

.woocommerce .woocommerce-message,.woocommerce .woocommerce-info,.woocommerce .woocommerce-error {
  border:1px solid #d3e8f3; border-radius:15px; box-shadow:none; background:var(--fog);
  padding:20px 24px 20px 53px; line-height:1.7; outline:none;
}
.woocommerce .woocommerce-message:focus,.woocommerce .woocommerce-info:focus,.woocommerce .woocommerce-error:focus { outline:none; }
.woocommerce .woocommerce-message::before,.woocommerce .woocommerce-info::before,.woocommerce .woocommerce-error::before { left:22px; top:21px; }
.woocommerce .catalog-controls .woocommerce-ordering { position:relative; }
.woocommerce .catalog-controls .woocommerce-ordering::after {
  content:''; pointer-events:none; position:absolute; right:19px; top:calc(50% - 5px); width:8px; height:8px;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg);
}
.woocommerce .catalog-controls .woocommerce-ordering select { appearance:none; -webkit-appearance:none; padding-right:47px; min-height:48px; max-width:100%; }
.woocommerce div.product.aqua-product-detail .product-gallery-shell .flex-viewport { overflow:hidden; border-radius:23px; background:white; }
.woocommerce div.product.aqua-product-detail .product-gallery-shell .woocommerce-product-gallery__image { border-radius:22px; overflow:hidden; }
.woocommerce div.product.aqua-product-detail .product-gallery-shell .flex-viewport .woocommerce-product-gallery__image { border-radius:0; }
.document-library .aqua-document,.product-document-list .aqua-document { border-bottom:0; }

.aqua-product-guide { clear:both; display:grid; grid-template-columns:minmax(0,1fr) 320px; align-items:start; gap:64px; margin:65px 0 55px; padding-top:48px; border-top:1px solid var(--line); }
.aqua-product-guide h2 { font-weight:700; letter-spacing:-.035em; line-height:1.17; color:var(--ink); }
.product-overview>h2 { margin:0 0 22px; max-width:680px; font-size:clamp(29px,2.6vw,39px); }
.product-overview-intro { font-size:17px; line-height:1.8; color:#526d7d; max-width:66ch; margin:0 0 28px; }
.product-facts { padding:0; margin:0 0 28px; display:grid; gap:0; }
.product-facts>div { display:grid; grid-template-columns:150px 1fr; gap:22px; border-top:1px solid #e2edf3; padding:16px 0; }
.product-facts dt { margin:0; font-size:14px; font-weight:600; color:var(--ink); }
.product-facts dd { margin:0; font-size:14px; line-height:1.7; color:#526d7d; }
.product-guide-notice { display:flex; align-items:flex-start; gap:13px; background:var(--fog); border-radius:14px; padding:18px 20px; color:#4b6778; font-size:13px; line-height:1.8; margin:0 0 28px; }
.product-guide-notice .icon { flex-shrink:0; color:var(--blue); width:21px; margin-top:2px; }
.product-guide-aside { padding:30px; background:var(--ice); border-radius:25px; }
.guide-help-icon { width:54px; height:54px; border-radius:50%; display:grid; place-items:center; background:white; color:var(--blue); margin-bottom:25px; }
.guide-help-icon .icon { width:28px; height:28px; }
.product-guide-aside>h2 { font-size:27px; margin:0 0 17px; }
.product-guide-aside>p { color:#526d7d; font-size:14px; line-height:1.8; margin:0 0 23px; }
.product-guide-aside .guide-phone { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:600; margin:0 0 23px; color:var(--ink); white-space:nowrap; }
.guide-phone .icon { width:20px; height:20px; color:var(--blue); }
.product-guide-aside .button { width:100%; padding:15px 10px; font-size:12px; }
.guide-extra-link { display:block; text-align:center; margin-top:22px; font-size:13px; text-decoration:underline; text-underline-offset:4px; color:var(--blue); }
.product-details-list { margin-top:30px; }
.product-details { border-top:1px solid var(--line); }
.product-details:last-child { border-bottom:1px solid var(--line); }
.product-details>summary { display:flex; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; padding:24px 0; list-style:none; }
.product-details>summary::-webkit-details-marker { display:none; }
.product-details>summary h2 { margin:0; font-size:20px; }
.details-toggle { width:28px; height:28px; flex-shrink:0; background:var(--ice); color:var(--blue); border-radius:50%; position:relative; }
.details-toggle::before,.details-toggle::after { content:''; position:absolute; width:10px; height:1.5px; background:currentColor; left:9px; top:13px; }
.details-toggle::after { transform:rotate(90deg); }
details[open]>summary .details-toggle::after { transform:rotate(0); }
.product-source-copy { max-width:72ch; padding:2px 0 30px; font-size:15px; line-height:1.85; color:#526d7d; overflow-wrap:anywhere; }
.product-source-copy p { margin:0 0 20px; }
.product-source-copy h2 { font-size:26px; margin:30px 0 16px; }
.product-source-copy h3 { font-size:21px; margin:28px 0 14px; }
.product-source-copy>:first-child { margin-top:0; }
.product-source-copy ul,.product-source-copy ol { padding-left:21px; margin:20px 0; }
.product-source-copy li { padding-left:4px; margin-bottom:8px; }
.product-source-copy li::marker { color:var(--blue); }
.product-source-copy strong { font-weight:600; color:var(--ink); }
.product-source-copy .product-lead { font-weight:500; color:var(--ink); }
.product-source-copy .product-notice { background:var(--fog); border-radius:13px; padding:18px; font-size:13px; }
.woocommerce .product-source-copy table { width:100%; border:0; border-collapse:collapse; font-size:14px; }
.woocommerce .product-source-copy table th,.woocommerce .product-source-copy table td { padding:15px; border:0; border-bottom:1px solid var(--line); background:transparent; font-style:normal; line-height:1.7; text-align:left; }
.woocommerce .product-source-copy table th { background:var(--fog); font-weight:600; color:var(--ink); }
.product-source-copy .product-document-list .aqua-document { padding:20px 0; gap:13px; }
.product-source-copy .document-name strong { font-size:15px; }
.product-source-copy .document-file { font-size:12px; }

/* Content stays editable in WordPress; its visual rhythm belongs to the theme. */
.company-intro { display:grid; grid-template-columns:1.05fr 1fr; gap:65px; align-items:center; margin:0 0 78px; }
.page-content .company-intro p { font-size:20px; line-height:1.8; margin:0 0 22px; color:#526d7d; max-width:50ch; }
.page-content .company-intro p:first-child { color:var(--ink); }
.company-water { position:relative; margin:0; border-radius:90px 22px 90px 22px; background:var(--ice); overflow:hidden; min-height:350px; }
.page-content .company-water img { width:100%; height:350px; display:block; object-fit:cover; margin:0; }
.company-water figcaption { position:absolute; bottom:27px; left:30px; right:30px; background:#ffffffed; padding:22px 25px; border-radius:18px; display:flex; gap:18px; align-items:center; color:var(--ink); font-size:14px; line-height:1.5; }
.company-water strong { font-size:39px; font-weight:700; letter-spacing:-.04em; }
.page-content .company-portfolio { padding:45px; border-radius:30px; background:var(--fog); margin-bottom:70px; }
.page-content .company-portfolio h2 { font-size:34px; margin:0 0 32px; line-height:1.2; }
.company-range { display:grid; grid-template-columns:1fr 1fr; gap:30px 42px; }
.page-content .company-range>a { display:flex; align-items:center; gap:25px; color:var(--ink); text-decoration:none; }
.page-content .company-range img { width:110px; height:120px; object-fit:contain; background:white; border-radius:20px; padding:8px; margin:0; flex-shrink:0; }
.company-range h3 { font-size:24px; margin:0 0 8px; line-height:1.2; }
.page-content .company-range p { margin:0; font-size:14px; color:#526d7d; line-height:1.75; }
.company-range a:hover h3 { color:var(--blue); }
.company-outro { display:grid; grid-template-columns:1fr 1fr; gap:65px; align-items:start; }
.page-content .company-outro h2 { margin:0; font-size:37px; line-height:1.2; max-width:370px; }
.page-content .company-outro p { font-size:16px; line-height:1.8; margin:0 0 23px; }
.company-outro .button+.button { margin-left:8px; }
.page-content .research-intro { font-size:20px; color:#526d7d; line-height:1.8; max-width:760px; margin:0 0 55px; }
.research-timeline { margin-bottom:65px; }
.research-project { display:grid; grid-template-columns:165px 1fr; gap:40px; padding:35px 0; border-top:1px solid var(--line); }
.research-year { font-size:45px; line-height:1.2; font-weight:700; color:var(--blue); letter-spacing:-.04em; }
.page-content .research-project h2 { font-size:28px; line-height:1.25; margin:0 0 17px; max-width:760px; }
.page-content .research-project p { font-size:15px; line-height:1.8; margin:0 0 20px; max-width:780px; color:#526d7d; }
.research-meta { display:flex; gap:12px 35px; flex-wrap:wrap; font-size:13px; color:#526d7d; }
.research-meta span { display:flex; gap:10px; align-items:center; }
.research-meta .icon { width:18px; height:18px; color:var(--blue); }
.research-feature { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:45px; padding:43px; border-radius:30px; background:var(--ice); }
.page-content .research-feature h2 { font-size:32px; line-height:1.25; margin:0 0 22px; }
.page-content .research-feature p { font-size:15px; line-height:1.85; color:#526d7d; margin:0 0 22px; }
.research-feature-aside { align-self:start; padding:25px; background:white; border-radius:19px; }
.research-feature-aside>.icon { width:35px; height:35px; color:var(--blue); margin-bottom:15px; }
.page-content .research-feature-aside h3 { font-size:20px; margin:0 0 16px; }
.page-content .research-feature-aside p { font-size:13px; margin-bottom:20px; }
.research-feature-aside .button { font-size:12px; width:100%; padding:14px; }
.research-funding { padding-top:20px; border-top:1px solid #c9e1ee; }
.research-feature details summary { font-size:15px; cursor:pointer; font-weight:600; color:var(--ink); padding:10px 0; }
.page-content .research-source { font-size:14px; line-height:1.9; padding:15px 0; color:#526d7d; }
.research-source p { font-size:14px; }
.research-next { margin-top:40px; }

.page-content .contact-page-grid { grid-template-columns:1.1fr 1fr; gap:75px; align-items:start; }
.page-content .contact-page-grid h2 { font-size:32px; line-height:1.25; margin:0 0 25px; }
.page-content .contact-page-grid p { font-size:16px; line-height:1.85; }
.page-content .contact-card { background:var(--fog); border:1px solid var(--line); border-radius:25px; padding:35px; }
.page-content .contact-card h2 { font-size:25px; }
.contact-channels { display:flex; flex-direction:column; gap:16px; margin-top:30px; }
.page-content .contact-channels a { display:flex; align-items:center; gap:15px; color:var(--ink); font-size:19px; font-weight:600; text-decoration:none; }
.contact-channels .icon { color:var(--blue); width:25px; height:25px; }
.location-section { margin-top:65px; }
.location-heading { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-bottom:25px; }
.page-content .location-heading h2 { margin:0 0 10px; font-size:31px; }
.page-content .location-heading p { font-size:15px; margin:0; color:#526d7d; }
.location-heading .button { border:1px solid var(--line); }
.location-map { position:relative; overflow:hidden; border-radius:28px; border:1px solid #d8e8ef; background:#edf5f7; }
.location-map-viewport { height:500px; overflow:hidden; }
.page-content .location-map-image { display:block; width:100%; height:100%; object-fit:cover; object-position:43% 49%; max-width:none; margin:0; border-radius:0; transform-origin:43% 49%; transition:transform .25s ease; }
.map-controls { position:absolute; right:22px; top:22px; display:none; gap:2px; padding:5px; background:white; border-radius:16px; box-shadow:0 6px 30px #143e6310; }
.aqua-ready .map-controls { display:grid; }
.map-controls button { width:42px; height:42px; background:white; border:0; border-radius:11px; color:var(--navy); font-size:23px; display:grid; place-items:center; cursor:pointer; }
.map-controls button:hover { background:var(--ice); }
.map-controls button:disabled { opacity:.3; cursor:default; }
.map-controls .icon { width:20px; height:20px; }
.map-attribution { position:absolute; bottom:0; right:0; padding:6px 13px; background:#fffffff2; border-radius:12px 0 0 0; font-size:10px; display:flex; flex-wrap:wrap; gap:5px; color:#526d7d; }
.page-content .map-attribution a { color:#526d7d; text-decoration:none; }
.map-attribution a:last-child { margin-left:8px; }
@media(max-width:1050px) {
  .aqua-product-guide { grid-template-columns:minmax(0,1fr) 275px; gap:35px; }
  .product-guide-aside { padding:25px; }
  .product-guide-aside>h2 { font-size:25px; }
  .company-intro,.company-outro { gap:35px; }
  .page-content .company-intro p { font-size:17px; }
  .company-water,.page-content .company-water img { min-height:310px; height:310px; }
  .company-range { gap:30px; }
  .page-content .company-portfolio { padding:30px; }
  .page-content .company-range img { width:85px; height:100px; }
  .page-content .research-project h2 { font-size:25px; }
  .research-feature { grid-template-columns:1fr 235px; padding:30px; gap:30px; }
  .page-content .contact-page-grid { gap:35px; }
}
@media(max-width:767px) {
  .aqua-product-guide { display:flex; flex-direction:column; gap:32px; margin-top:40px; padding-top:32px; }
  .product-guide-main,.product-guide-aside { width:100%; }
  .product-overview>h2 { font-size:29px; }
  .product-overview-intro { font-size:15px; line-height:1.8; }
  .product-facts>div { grid-template-columns:110px 1fr; gap:17px; padding:15px 0; }
  .product-facts dt,.product-facts dd { font-size:13px; }
  .product-guide-notice { font-size:12px; padding:17px; }
  .product-details>summary { padding:21px 0; }
  .product-details>summary h2 { font-size:18px; }
  .product-source-copy { font-size:14px; line-height:1.85; }
  .product-source-copy h2 { font-size:24px; }
  .product-source-copy h3 { font-size:20px; }
  .product-guide-aside { padding:25px; }
  .product-guide-aside>h2 { max-width:300px; }
  .product-guide-aside .button { width:auto; padding:15px 22px; }
  .guide-extra-link { text-align:left; }
  .company-intro,.company-outro,.research-feature { grid-template-columns:1fr; gap:30px; }
  .company-intro { margin-bottom:42px; }
  .company-water,.page-content .company-water img { height:290px; min-height:290px; }
  .company-water { border-radius:65px 20px 65px 20px; }
  .company-water figcaption { left:20px; right:20px; bottom:20px; padding:18px; font-size:12px; }
  .company-water strong { font-size:34px; }
  .page-content .company-intro p { font-size:17px; }
  .page-content .company-portfolio { padding:25px 20px; margin-bottom:42px; }
  .page-content .company-portfolio h2 { font-size:28px; margin-bottom:27px; }
  .company-range { grid-template-columns:1fr; gap:25px; }
  .page-content .company-range>a { gap:20px; }
  .company-range h3 { font-size:23px; }
  .page-content .company-range p { font-size:13px; }
  .page-content .company-outro h2 { font-size:30px; }
  .company-outro .button+.button { margin-left:0; }
  .company-outro .button { margin-bottom:10px; }
  .page-content .research-intro { font-size:17px; margin-bottom:35px; }
  .research-project { grid-template-columns:1fr; gap:15px; padding:27px 0; }
  .research-year { font-size:32px; }
  .page-content .research-project h2 { font-size:24px; }
  .page-content .research-project p { font-size:14px; }
  .research-meta { gap:10px; flex-direction:column; font-size:12px; }
  .research-timeline { margin-bottom:35px; }
  .research-feature { padding:25px; border-radius:22px; }
  .page-content .research-feature h2 { font-size:27px; }
  .page-content .research-feature p { font-size:14px; }
  .research-feature-aside { padding:22px; }
  .research-next { margin-top:30px; }
  .page-content .contact-page-grid { grid-template-columns:1fr; gap:28px; }
  .page-content .contact-page-grid h2 { font-size:28px; }
  .page-content .contact-page-grid p { font-size:15px; }
  .page-content .contact-card { padding:25px; }
  .page-content .contact-card h2 { font-size:23px; }
  .page-content .contact-channels a { font-size:17px; }
  .location-section { margin-top:40px; }
  .location-heading { align-items:flex-start; flex-direction:column; gap:20px; }
  .page-content .location-heading h2 { font-size:27px; }
  .page-content .location-heading p { font-size:14px; }
  .location-map { border-radius:22px; }
  .location-map-viewport { height:400px; }
  .map-controls { right:12px; top:12px; }
  .map-controls button { width:35px; height:35px; }
  .map-attribution { font-size:9px; padding:5px 8px; gap:2px 5px; }
}
@media(prefers-reduced-motion:reduce) { .page-content .location-map-image { transition:none; } }

/* Shipping and payments use native WooCommerce calculations and form controls. */
.woocommerce form.checkout { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.85fr); gap:40px 60px; align-items:start; }
.woocommerce form.checkout::after { content:none; }
.woocommerce form.checkout>.woocommerce-NoticeGroup { grid-column:1/-1; }
.aqua-checkout-details,.aqua-checkout-summary { min-width:0; }
.woocommerce form.checkout #customer_details { float:none; width:100%; }
.woocommerce form.checkout #customer_details .col-1,.woocommerce form.checkout #customer_details .col-2 { float:none; width:100%; }
.aqua-checkout-summary { position:sticky; top:110px; }
.woocommerce form.checkout #order_review_heading { margin:0 0 24px; }
.woocommerce form.checkout #order_review_heading,.woocommerce form.checkout #order_review { float:none; width:100%; }
.woocommerce form.checkout #order_review { background:none; border:0; border-radius:0; padding:0; }
.woocommerce form.checkout .woocommerce-billing-fields>h3 { margin:0 0 24px; }
.woocommerce form.checkout .woocommerce-shipping-fields { margin:35px 0 25px; }
.woocommerce form.checkout #ship-to-different-address { float:none; width:100%; margin:0 0 22px; font-size:18px; line-height:1.5; }
.woocommerce form.checkout #ship-to-different-address label { display:flex; align-items:center; gap:14px; padding:20px 23px; border:1px solid var(--line); background:var(--fog); border-radius:16px; cursor:pointer; font-size:16px; font-weight:600; }
.woocommerce form.checkout #ship-to-different-address label:has(input:checked) { background:var(--ice); border-color:#9cc8e1; }
.woocommerce form.checkout #ship-to-different-address input { width:19px; height:19px; flex-shrink:0; margin:0; accent-color:var(--blue); }
.woocommerce form.checkout .shipping_address { margin-bottom:30px; }
.woocommerce form.checkout .woocommerce-additional-fields>h3 { font-size:23px; }
.woocommerce form.checkout .form-row textarea.input-text { background:var(--fog); border:1px solid #d4e6ef; border-radius:12px; padding:15px; min-height:110px; font-size:14px; line-height:1.7; resize:vertical; }
.woocommerce form.checkout .shop_table { margin-bottom:24px; }
.woocommerce form.checkout .shop_table th,.woocommerce form.checkout .shop_table td { padding:17px 19px; line-height:1.7; }
.woocommerce form.checkout .shop_table td:last-child { text-align:right; }
.woocommerce form.checkout .woocommerce-shipping-totals td { font-size:13px; }
.woocommerce form.checkout ul#shipping_method li { margin:0; }
.woocommerce form.checkout ul#shipping_method label { font-weight:400; display:inline; }
.woocommerce form.checkout .shop_table .order-total th,.woocommerce form.checkout .shop_table .order-total td { background:var(--ice); color:var(--ink); }
.woocommerce form.checkout .shop_table .order-total strong { font-size:23px; font-weight:700; white-space:nowrap; }
.woocommerce form.checkout #payment { padding:20px; border-radius:23px; }
.woocommerce form.checkout #payment ul.payment_methods { padding:0; border-bottom:0; }
.woocommerce form.checkout #payment ul.payment_methods li { margin:0 0 12px; padding:17px; background:white; border:1px solid var(--line); border-radius:16px; line-height:1.7; }
.woocommerce form.checkout #payment ul.payment_methods li:has(>input:checked) { border-color:#9cc8e1; background:#f7fcff; }
.woocommerce form.checkout #payment ul.payment_methods li>label { display:inline; font-size:14px; font-weight:600; color:var(--ink); cursor:pointer; }
.woocommerce form.checkout #payment ul.payment_methods li>input { accent-color:var(--blue); margin-right:10px; }
.woocommerce form.checkout #payment div.payment_box { background:transparent; padding:12px 0 0; margin:0; font-size:13px; line-height:1.85; color:#526d7d; }
.woocommerce form.checkout #payment div.payment_box::before { display:none; }
.woocommerce form.checkout #payment div.payment_box p { font-size:13px; line-height:1.85; margin:0; }
.woocommerce form.checkout #payment div.form-row { padding:10px 0 0; margin:0; }
.woocommerce form.checkout #payment .woocommerce-privacy-policy-text p { font-size:12px; line-height:1.8; color:#526d7d; margin:0 0 18px; }
.woocommerce form.checkout #payment .woocommerce-terms-and-conditions-wrapper label { font-size:12px; line-height:1.8; }
.woocommerce form.checkout #payment .woocommerce-terms-and-conditions-wrapper input { accent-color:var(--blue); }
.woocommerce form.checkout #place_order { float:none; width:100%; margin:12px 0 0; font-size:14px; padding:17px 15px; }
.woocommerce-price-suffix { font-size:11px; font-weight:400; letter-spacing:0; color:#526d7d; white-space:nowrap; }
.aqua-card-price .woocommerce-price-suffix { margin-left:5px; }
@media(max-width:1050px) {
  .woocommerce form.checkout { gap:35px; grid-template-columns:minmax(0,1fr) minmax(330px,.9fr); }
  .woocommerce form.checkout #payment { padding:17px; }
}
@media(max-width:767px) {
  .woocommerce form.checkout { grid-template-columns:1fr; gap:32px; }
  .aqua-checkout-summary { position:static; }
  .woocommerce form.checkout #ship-to-different-address label { padding:18px; font-size:15px; }
  .woocommerce form.checkout .shop_table th,.woocommerce form.checkout .shop_table td { padding:15px 13px; }
  .woocommerce form.checkout .shop_table .order-total strong { font-size:21px; }
  .woocommerce form.checkout #payment ul.payment_methods li { padding:16px 14px; }
  .woocommerce form.checkout #place_order { font-size:13px; }
}
