/* Shared stylesheet for Dionysus Magazine. */
/* index(20261010-120838).html */
body.page-index{--ink:#14243A;--muted:#647184;--paper:#fff;--cover:#e5e5e5}
body.page-index *{box-sizing:border-box}
body.page-index{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
body.page-index button, body.page-index select{font:inherit}
body.page-index a{color:inherit}
body.page-index .shell{max-width:1380px;margin:auto;padding:26px clamp(20px,5vw,75px) 90px}
body.page-index .top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;border-bottom:1px solid #dbe0e5;padding-bottom:24px}
body.page-index .brand{text-decoration:none;grid-column:2;text-align:center}
body.page-index .masthead{font-family:Georgia,"Times New Roman",serif;font-size:clamp(39px,5.5vw,73.728px);letter-spacing:-.068em;line-height:.9;font-weight:normal}
body.page-index .brand small{display:block;font-family:Georgia,serif;font-size:15px;letter-spacing:.18em;margin-top:11px}
body.page-index .account-actions{grid-column:3;justify-self:end;display:flex;gap:9px;align-items:center}
body.page-index .subscribe{background:var(--ink);color:white;border:1px solid var(--ink);padding:12px 19px;text-decoration:none;font-size:12px;letter-spacing:.09em;text-transform:uppercase}
body.page-index .eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:bold}
body.page-index .current{padding:65px 0 80px;border-bottom:1px solid #dbe0e5}
body.page-index .current-grid{display:grid;grid-template-columns:minmax(240px, .95fr) 1fr;gap:clamp(32px,7vw,110px);align-items:center}
body.page-index .cover{display:block;aspect-ratio:210/297;background:var(--cover);width:100%;border:0;overflow:hidden;position:relative}
body.page-index .cover img{width:100%;height:100%;object-fit:cover;display:block}
body.page-index .current .cover{max-width:470px}
body.page-index .issue-heading{font-family:Georgia,serif;font-size:clamp(40px,5.8vw,88px);font-weight:normal;letter-spacing:-.055em;line-height:1;margin:20px 0 28px}
body.page-index .description{font-family:Georgia,serif;font-size:clamp(17px,1.65vw,23px);line-height:1.55;max-width:500px;color:#46556a}
body.page-index .read{display:inline-block;margin-top:26px;padding:15px 25px;background:var(--ink);color:white;text-decoration:none;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
body.page-index .archive{padding-top:65px}
body.page-index .archive-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:34px}
body.page-index .archive h2{font-family:Georgia,serif;font-size:clamp(32px,4vw,54px);font-weight:normal;letter-spacing:-.05em;margin:0}
body.page-index .archive label{font-size:12px;letter-spacing:.1em;text-transform:uppercase}
body.page-index .archive select{margin-left:10px;padding:9px 26px 9px 12px;background:white;border:1px solid #b9c1ca;color:var(--ink)}
body.page-index .archive-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:42px 22px}
body.page-index .issue-link{text-decoration:none;display:block}
body.page-index .issue-link:hover .cover{outline:2px solid var(--ink);outline-offset:3px}
body.page-index .issue-label{display:block;font-family:Georgia,serif;font-size:clamp(16px,1.7vw,24px);margin-top:13px}
body.page-index .state{padding:32px 0;color:var(--muted)}
body.page-index .error{color:#9b2633}
body.page-index .hidden{display:none!important}
body.page-index footer{border-top:1px solid #dbe0e5;margin-top:80px;padding-top:20px;color:var(--muted);font-size:12px}
@media (max-width:700px){body.page-index .shell{padding-top:22px}
body.page-index .top{grid-template-columns:1fr auto;align-items:center}
body.page-index .brand{grid-column:1;text-align:left}
body.page-index .masthead{font-size:clamp(37px,8vw,60px)}
body.page-index .brand small{text-align:left}
body.page-index .account-actions{grid-column:2}
body.page-index .subscribe{padding:10px}
body.page-index .current{padding:45px 0 60px}
body.page-index .current-grid{grid-template-columns:1fr;gap:28px}
body.page-index .current .cover{max-width:360px}
body.page-index .issue-heading{margin:15px 0}
body.page-index .archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px}
body.page-index .archive{padding-top:42px}}
@media (max-width:370px){body.page-index .masthead{font-size:32px}
body.page-index .subscribe{font-size:10px}
body.page-index .account-actions{gap:5px}}
body.page-index .cover-unavailable{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;font-size:13px;color:#647184}
body.page-index .archive select{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%2314243a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;background-size:12px 8px;}
body.page-index .visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body.page-index .year-filter-wrap{display:flex;align-items:center;gap:12px}
body.page-index .year-caption{font-size:12px;font-weight:bold;letter-spacing:.1em;text-transform:uppercase}
body.page-index .year-dropdown{position:relative;min-width:164px}
body.page-index .year-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:13px 15px;background:#fff;border:1px solid #b9c1ca;color:var(--ink);font:12px Arial,Helvetica,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:border-color .15s,background .15s}
body.page-index .year-trigger:hover, body.page-index .year-trigger[aria-expanded="true"]{border-color:var(--ink);background:#f7f8fa}
body.page-index .year-trigger:focus-visible, body.page-index .year-option:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
body.page-index .year-chevron{display:block;width:9px;height:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-right:4px;transition:transform .15s}
body.page-index .year-trigger[aria-expanded="true"] .year-chevron{transform:rotate(225deg) translate(-2px,-2px)}
body.page-index .year-menu{position:absolute;top:calc(100% + 5px);right:0;width:100%;max-height:250px;overflow-y:auto;background:#fff;border:1px solid var(--ink);box-shadow:0 12px 24px rgba(20,36,58,.1);z-index:20;padding:5px}
body.page-index .year-option{width:100%;display:block;text-align:left;border:0;background:transparent;color:var(--ink);padding:12px 11px;font:12px Arial,Helvetica,sans-serif;letter-spacing:.07em;text-transform:uppercase;cursor:pointer}
body.page-index .year-option:hover, body.page-index .year-option:focus-visible{background:#f0f2f5}
body.page-index .year-option[aria-selected="true"]{background:var(--ink);color:white}
body.page-index .login-outline{background:transparent;color:var(--ink);border:1px solid var(--ink)}
/* profile(2).html */
body.page-profile{--ink:#14243a;--muted:#647184;--line:#dbe0e5}
body.page-profile *{box-sizing:border-box}
body.page-profile{margin:0;color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif}
body.page-profile a{color:inherit}
body.page-profile .shell{max-width:1050px;margin:auto;padding:26px clamp(20px,5vw,75px) 80px}
body.page-profile .top{display:flex;justify-content:center;align-items:center;border-bottom:1px solid var(--line);padding-bottom:24px}
body.page-profile .nav-back{padding-top:20px}
body.page-profile .nav-back .back{display:inline-block}
body.page-profile .brand{text-decoration:none;text-align:center}
body.page-profile .masthead{font-family:Georgia,serif;font-size:clamp(38px,5.5vw,67px);letter-spacing:-.068em;line-height:.9}
body.page-profile .brand small{display:block;font-family:Georgia,serif;font-size:15px;letter-spacing:.18em;margin-top:11px}
body.page-profile .back{font-size:12px;letter-spacing:.1em;text-decoration:none;text-transform:uppercase}
body.page-profile .layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(30px,6vw,85px);padding:70px 0}
body.page-profile .eyebrow{font-size:12px;font-weight:bold;letter-spacing:.16em;text-transform:uppercase}
body.page-profile h1{font:normal clamp(42px,6vw,74px)/1.03 Georgia,serif;letter-spacing:-.055em;margin:18px 0}
body.page-profile h2{font:normal 29px Georgia,serif;margin:0 0 20px}
body.page-profile p{line-height:1.55;color:var(--muted)}
body.page-profile .panel{border:1px solid var(--line);padding:clamp(20px,3vw,35px);margin-bottom:20px}
body.page-profile .field{margin-bottom:17px}
body.page-profile label{display:block;font-size:12px;font-weight:bold;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
body.page-profile input{width:100%;padding:13px 12px;border:1px solid #b9c1ca;border-radius:0;font:16px Arial,sans-serif;min-height:46px;color:var(--ink)}
body.page-profile .grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
body.page-profile .btn{background:var(--ink);color:white;border:1px solid var(--ink);padding:14px 21px;font:12px Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;min-height:46px}
body.page-profile .btn.secondary{background:white;color:var(--ink)}
body.page-profile .btn.danger{background:white;color:#9b2633;border-color:#9b2633}
body.page-profile .btn:disabled{opacity:.5;cursor:wait}
body.page-profile .actions{display:flex;gap:10px;flex-wrap:wrap}
body.page-profile .message{padding:12px;border:1px solid var(--line);margin:14px 0;white-space:pre-wrap;font-size:14px}
body.page-profile .message.error{color:#9b2633}
body.page-profile .hidden{display:none!important}
body.page-profile footer{border-top:1px solid var(--line);padding-top:22px;color:var(--muted);font-size:12px}
@media (max-width:740px){body.page-profile .layout{grid-template-columns:1fr;padding:40px 0}
body.page-profile .grid{grid-template-columns:1fr}}
body.page-profile .layout{display:flex;flex-direction:column;gap:26px;padding:42px 0 60px;max-width:720px;margin:0 auto;}
body.page-profile .layout>section:first-child{border:1px solid var(--line);padding:clamp(22px,4vw,36px);text-align:center;}
body.page-profile .layout>section:first-child .member-title{margin:0 0 20px;}
body.page-profile .layout>section:first-child #status{overflow-wrap:anywhere;}
body.page-profile .layout>section:first-child #signout{max-width:100%;}
body.page-profile .member-title{font:normal 29px Georgia,serif;margin:0 0 20px;text-align:left}
body.page-profile .member-kicker{font-size:11px;font-weight:bold;letter-spacing:.19em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
body.page-profile .member-details{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0 24px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left}
body.page-profile .member-detail-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:1px;font-weight:bold;color:var(--ink);margin-bottom:8px}
body.page-profile .member-detail-value{display:block;font-size:14px;font-weight:bold;overflow-wrap:anywhere}
body.page-profile .member-email{font-size:15px;color:var(--ink);margin:12px 0 0;text-align:left;width:100%;align-self:stretch;}
@media (max-width:480px){body.page-profile .member-details{grid-template-columns:1fr}}
body.page-profile .layout>#content{width:100%;}
body.page-profile button.btn{display:block;width:100%;max-width:none;}
body.page-profile .actions{display:flex;flex-direction:column;align-items:stretch;}
body.page-profile .actions button.btn{width:100%;}
/* Subscribe(1).html */
body.page-subscribe{--ink:#14243a;--muted:#647184;--line:#dbe0e5}
body.page-subscribe *{box-sizing:border-box}
body.page-subscribe{margin:0;color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif}
body.page-subscribe a{color:inherit}
body.page-subscribe .shell{max-width:1150px;margin:auto;padding:26px clamp(20px,5vw,75px) 80px}
body.page-subscribe .top{display:flex;justify-content:center;align-items:center;border-bottom:1px solid var(--line);padding-bottom:24px}
body.page-subscribe .nav-back{padding-top:20px}
body.page-subscribe .nav-back .back{display:inline-block}
body.page-subscribe .brand{text-decoration:none;text-align:center}
body.page-subscribe .masthead{font-family:Georgia,serif;font-size:clamp(38px,5.5vw,67px);letter-spacing:-.068em;line-height:.9}
body.page-subscribe .brand small{display:block;font-family:Georgia,serif;font-size:15px;letter-spacing:.18em;margin-top:11px}
body.page-subscribe .back{font-size:12px;letter-spacing:.12em;text-decoration:none;text-transform:uppercase}
body.page-subscribe .layout{display:grid;grid-template-columns:.85fr 1fr;gap:clamp(32px,7vw,110px);padding:80px 0}
body.page-subscribe .eyebrow{font-size:12px;font-weight:bold;letter-spacing:.16em;text-transform:uppercase}
body.page-subscribe .intro h1{font:normal clamp(45px,6vw,80px)/1.03 Georgia,serif;letter-spacing:-.055em;margin:20px 0 24px}
body.page-subscribe .intro p{font:19px/1.6 Georgia,serif;color:#46556a;max-width:390px}
body.page-subscribe .form-panel{border:1px solid var(--line);padding:clamp(22px,3vw,40px)}
body.page-subscribe h2{font:normal 32px Georgia,serif;margin:0 0 10px}
body.page-subscribe .hint{font-size:13px;color:var(--muted);margin-bottom:24px;line-height:1.6}
body.page-subscribe .field{margin:0 0 17px}
body.page-subscribe label{display:block;font-size:12px;font-weight:bold;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
body.page-subscribe input{width:100%;padding:13px 12px;border:1px solid #b9c1ca;border-radius:0;font:16px Arial,sans-serif;min-height:46px;color:var(--ink)}
body.page-subscribe .grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
body.page-subscribe .btn{display:block;width:100%;background:var(--ink);color:white;border:1px solid var(--ink);padding:15px 23px;font:12px Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;min-height:48px;text-decoration:none}
body.page-subscribe .btn:disabled{opacity:.55;cursor:wait}
body.page-subscribe .message{font-size:14px;line-height:1.5;margin-top:18px;padding:13px;border:1px solid var(--line);white-space:pre-wrap}
body.page-subscribe .message.error{color:#9b2633;border-color:#dfb8be}
body.page-subscribe .message.ok{color:#17613a;border-color:#add5bd}
body.page-subscribe .hidden{display:none!important}
body.page-subscribe .fine{font-size:12px;color:var(--muted);margin-top:20px;line-height:1.6}
body.page-subscribe .issue{font-size:13px;color:var(--muted);margin-top:12px}
body.page-subscribe footer{border-top:1px solid var(--line);padding-top:22px;font-size:12px;color:var(--muted)}
@media (max-width:740px){body.page-subscribe .layout{grid-template-columns:1fr;padding:45px 0;gap:26px}
body.page-subscribe .grid{grid-template-columns:1fr}
body.page-subscribe .back{font-size:10px}
body.page-subscribe .form-panel{padding:22px}}
/* Shared masthead, account links and footer */
body .top.site-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;border-bottom:1px solid var(--line,#dbe0e5);padding-bottom:24px}
body .site-header .brand{grid-column:2;text-align:center;text-decoration:none}
body .site-header .masthead{font-family:Georgia,"Times New Roman",serif;font-size:clamp(39px,5.5vw,73.728px);letter-spacing:-.068em;line-height:.9;font-weight:normal}
body .site-header .brand small{display:block;font-family:Georgia,serif;font-size:15px;letter-spacing:.18em;margin-top:11px}
body .site-header .account-actions{grid-column:3;justify-self:end;display:flex;gap:9px;align-items:center}
body .site-header .subscribe{background:var(--ink);color:#fff;border:1px solid var(--ink);padding:12px 19px;text-decoration:none;font-size:12px;letter-spacing:.09em;text-transform:uppercase}
body .site-header .subscribe.login-outline{background:transparent;color:var(--ink)}
body .site-footer{border-top:1px solid var(--line,#dbe0e5);margin-top:80px;padding-top:22px;color:var(--muted);font-size:12px}
body.page-profile .site-footer,body.page-subscribe .site-footer{margin-top:0}
body .hidden{display:none!important}
@media(max-width:700px){body .top.site-header{grid-template-columns:minmax(0,1fr) auto}body .site-header .brand{grid-column:1;text-align:left}body .site-header .brand small{text-align:left}body .site-header .masthead{font-size:clamp(32px,8vw,60px)}body .site-header .account-actions{grid-column:2}body .site-header .subscribe{padding:10px}}
@media(max-width:370px){body .site-header .masthead{font-size:32px}body .site-header .subscribe{font-size:10px}body .site-header .account-actions{gap:5px}}

body.page-subscribe .shipping-heading{font-size:25px;margin:26px 0 18px}

/* Logo-only header on profile, login and subscription pages */
body .site-header.site-header-simple{grid-template-columns:1fr auto 1fr}
body .site-header.site-header-simple .brand{grid-column:2;text-align:center}
body .site-header.site-header-simple .brand small{text-align:center}
@media(max-width:700px){body .site-header.site-header-simple{grid-template-columns:1fr auto 1fr}body .site-header.site-header-simple .brand{grid-column:2;text-align:center}body .site-header.site-header-simple .brand small{text-align:center}}

/* PayPal subscription section */
.page-subscribe .stripe-subscription{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.page-subscribe .stripe-subscription h2{margin-bottom:10px}

.page-subscribe .stripe-checkout{text-align:center;margin-top:12px}

/* Profile overview panel refinements (moved from profile.html) */
/* Consistent with the Password and Shipping address panels. */
body.page-profile .layout { gap: 20px; }
body.page-profile .layout > section.panel,
body.page-profile .layout > section:first-child.panel {
  border: 1px solid var(--line);
  padding: clamp(20px, 3vw, 35px);
  margin: 0;
  background: #fff;
  text-align: left;
}
body.page-profile .layout > section.panel h2 {
  font: normal 29px Georgia, serif;
  margin: 0 0 20px;
  text-align: left;
}
body.page-profile .layout > section.panel .member-details {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  border: 0;
  text-align: left;
}
body.page-profile .layout > section.panel .member-details > div {
  padding: 0;
  margin: 0 0 17px;
  border: 0;
  text-align: left;
}
body.page-profile .layout > section.panel .member-detail-label {
  display: block;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0 0 8px;
  text-align: left;
}
body.page-profile .layout > section.panel .member-detail-value {
  display: block;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.55;
  overflow-wrap: anywhere;
  text-align: left;
}
body.page-profile #shippingAddressDisplay { white-space: pre-line; }
body.page-profile #membershipOverview .actions { margin: 0; }
body.page-profile #accountOverview #signout { margin-top: 0; }
body.page-profile .layout > #content > .panel { margin-bottom: 20px; }
body.page-profile .layout > #content > .panel:last-child { margin-bottom: 0; }

/* Account access: same centered width as profile panels */
body.page-subscribe .layout{display:flex;flex-direction:column;max-width:720px;width:100%;margin:0 auto;padding:42px 0 60px;gap:0}
body.page-subscribe .form-panel{width:100%;padding:clamp(20px,3vw,35px)}
@media(max-width:740px){body.page-subscribe .layout{padding:40px 0}}

/* Back navigation removed from profile and account access pages. */

/* No separator lines on site headers and footers across all pages. */
body.page-index .top.site-header,
body.page-profile .top.site-header,
body.page-subscribe .top.site-header { border-bottom: none; }
body.page-index footer,
body.page-profile footer,
body.page-subscribe footer,
body .site-footer { border-top: none; }

/* Profile overview values match the Shipping address form input text. */
body.page-profile .layout > section.panel .member-detail-value {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: normal;
}

/* Center the copyright text in every page footer. */
body .site-footer,
body.page-index footer,
body.page-profile footer,
body.page-subscribe footer {
  text-align: center;
}

/* Align back navigation with centered 720px content panels. */
body.page-profile .nav-back,
body.page-subscribe .nav-back {max-width:720px;width:100%;margin:0 auto;padding-top:20px;}

/* Outlined navigation buttons below the account forms. */
body.page-subscribe .auth-switch{display:block;width:100%;margin-top:17px;text-align:center;background:#fff;color:var(--ink);border:1px solid var(--ink);text-decoration:none;padding:15px 23px;font:12px Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;min-height:48px;box-sizing:border-box}
body.page-subscribe .auth-switch:hover{background:#f7f8fa}

/* Account form box heading spacing. */
body.page-subscribe .form-panel h2 { margin: 0 0 17px; }

/* Compact, always-visible site header. */
body.page-index, body.page-profile, body.page-subscribe { --header-height: 76px; }
body .top.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: var(--header-height);
  padding: 10px clamp(20px, 5vw, 75px);
  background: #fff;
  border: 0;
}
body.page-index .shell, body.page-profile .shell, body.page-subscribe .shell { padding-top: calc(var(--header-height) + 16px); }
body .site-header .masthead { font-size: clamp(26px, 3vw, 39px); letter-spacing: -.06em; }
body .site-header .brand small { font-size: 10px; letter-spacing: .16em; margin-top: 5px; }
body .site-header .account-actions { min-width: 0; }
body .site-header .account-actions .subscribe { max-width: min(38vw, 260px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; padding: 10px 12px; }
@media (max-width: 700px) {
  body.page-index, body.page-profile, body.page-subscribe { --header-height: 66px; }
  body .top.site-header { padding: 8px 16px; gap: 8px; }
  body .site-header .masthead { font-size: clamp(23px, 5.8vw, 32px); }
  body .site-header .brand small { font-size: 9px; }
  body .site-header .account-actions .subscribe { max-width: 35vw; font-size: 10px; padding: 9px 8px; }
}

/* Outline the signed-in Profile navigation button only. */
body.page-index .site-header .account-actions .subscribe.profile-outline { background: #fff; color: var(--ink); border: 1px solid var(--ink); }


/* Responsive layout improvements — all pages */
html { -webkit-text-size-adjust: 100%; }
body.page-index, body.page-profile, body.page-subscribe { min-width: 0; overflow-x: clip; }
body.page-index .shell, body.page-profile .shell, body.page-subscribe .shell { width: 100%; min-width: 0; }
body .site-header .brand, body .site-header .account-actions { min-width: 0; }
body .site-header .account-actions .subscribe { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.page-index .current-grid > *, body.page-index .archive-grid > *, body.page-profile .layout > *, body.page-subscribe .layout > * { min-width: 0; }
body.page-index .current-grid .cover { margin-inline: auto; }
body.page-index .archive-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.page-index .archive-grid .issue-link { min-width: 0; }
body.page-index .archive-head { align-items: center; }
body.page-index .year-filter-wrap { min-width: 0; }
body.page-index .year-dropdown { min-width: 0; width: 164px; }
body.page-profile .layout, body.page-subscribe .layout, body.page-profile .nav-back, body.page-subscribe .nav-back { max-width: 720px; width: 100%; }
body.page-profile .panel, body.page-subscribe .form-panel { min-width: 0; }
body.page-profile input, body.page-subscribe input { max-width: 100%; }
body.page-profile .grid, body.page-subscribe .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 900px) {
  body.page-index .archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 18px; }
  body.page-index .current-grid { gap: clamp(24px, 4vw, 48px); }
}
@media (max-width: 700px) {
  body.page-index .shell, body.page-profile .shell, body.page-subscribe .shell { padding-left: 20px; padding-right: 20px; }
  body.page-index .current-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  body.page-index .current .cover { width: min(100%, 390px); max-width: 390px; }
  body.page-index .archive-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  body.page-index .archive-grid .issue-link { width: 100%; max-width: 420px; margin-inline: auto; }
  body.page-index .issue-label { font-size: 20px; }
  body.page-index .archive-head { gap: 12px; margin-bottom: 26px; }
  body.page-index .archive h2 { font-size: clamp(30px, 7vw, 42px); }
  body.page-index .year-dropdown { width: 150px; }
  body.page-index .year-trigger { padding: 12px 11px; gap: 8px; }
  body.page-profile .grid, body.page-subscribe .grid { grid-template-columns: minmax(0, 1fr); }
  body.page-profile .layout, body.page-subscribe .layout { padding-top: 32px; padding-bottom: 42px; }
  body.page-profile .nav-back, body.page-subscribe .nav-back { padding-top: 12px; }
  body.page-profile .panel, body.page-subscribe .form-panel { padding: 22px; }
  body .site-header .masthead { font-size: clamp(22px, 5.5vw, 32px); }
  body .site-header .account-actions .subscribe { max-width: 42vw; }
}
@media (max-width: 420px) {
  body.page-index .shell, body.page-profile .shell, body.page-subscribe .shell { padding-left: 16px; padding-right: 16px; }
  body.page-index .archive-head { align-items: center; }
  body.page-index .archive h2 { font-size: 31px; }
  body.page-index .year-dropdown { width: 135px; }
  body.page-index .year-trigger { font-size: 11px; }
  body.page-index .current { padding-top: 28px; padding-bottom: 48px; }
  body.page-index .archive { padding-top: 36px; }
  body.page-index .issue-heading { font-size: clamp(38px, 12vw, 55px); }
  body.page-index .read { max-width: 100%; text-align: center; }
  body .top.site-header { padding-left: 12px; padding-right: 12px; }
  body .site-header .masthead { font-size: clamp(20px, 5.3vw, 25px); }
  body .site-header .brand small { font-size: 8px; }
  body .site-header .account-actions .subscribe { max-width: 43vw; font-size: 10px; padding: 9px 7px; }
  body.page-profile .panel, body.page-subscribe .form-panel { padding: 18px; }
  body.page-profile h2, body.page-subscribe h2 { font-size: 27px; }
}

/* Larger, truly centered masthead; header scrolls away with the page. */
body .top.site-header {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  z-index: auto;
  height: auto;
  min-height: 104px;
  padding: 16px 0 20px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
}
body .site-header .brand,
body .site-header.site-header-simple .brand { grid-column: 2; justify-self: center; text-align: center; }
body .site-header .brand small,
body .site-header.site-header-simple .brand small { text-align: center; }
body .site-header .masthead { font-size: clamp(40px, 5.3vw, 72px); }
body .site-header .brand small { font-size: 13px; margin-top: 8px; }
body .site-header .account-actions { grid-column: 3; justify-self: end; }
body .site-header .account-actions .subscribe { max-width: min(25vw, 260px); }
body.page-index .shell, body.page-profile .shell, body.page-subscribe .shell { padding-top: 26px; }
@media (max-width: 900px) {
  body .top.site-header,
  body .site-header.site-header-simple {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 0;
  }
  body .site-header .brand,
  body .site-header.site-header-simple .brand { grid-column: 1; grid-row: 1; }
  body .site-header .account-actions { grid-column: 1; grid-row: 2; justify-self: center; }
  body .site-header .masthead { font-size: clamp(39px, 8vw, 64px); }
  body .site-header .account-actions .subscribe { max-width: calc(100vw - 40px); }
}
@media (max-width: 420px) {
  body .site-header .masthead { font-size: clamp(36px, 10vw, 43px); }
  body .site-header .brand small { font-size: 11px; }
  body .top.site-header { padding: 14px 0 18px; }
  body .site-header .account-actions .subscribe { max-width: calc(100vw - 32px); }
}

/* Current issue begins directly below the header at every viewport width. */
body.page-index .current { padding-top: 0; }

/* Remove spacing between header grid items at every breakpoint. */
body .top.site-header, body.page-index .top.site-header, body .site-header.site-header-simple { gap: 0; row-gap: 0; column-gap: 0; }

/* Balanced masthead spacing: no extra shell offset above the logo. */
body.page-index .shell,
body.page-profile .shell,
body.page-subscribe .shell { padding-top: 0; }
body .top.site-header,
body.page-index .top.site-header,
body.page-profile .top.site-header,
body.page-subscribe .top.site-header {
  min-height: 0;
  padding-top: 26px;
  padding-bottom: 26px;
}
/* Preserve the equal vertical spacing on narrow screens. */
@media (max-width: 420px) {
  body .top.site-header,
  body.page-index .top.site-header,
  body.page-profile .top.site-header,
  body.page-subscribe .top.site-header { padding-top: 26px; padding-bottom: 26px; }
}

/* Full-width account link when the header wraps to two rows. */
@media (max-width: 900px) {
  body.page-index .site-header .account-actions { width: 100%; justify-self: stretch; }
  body.page-index .site-header .account-actions .subscribe { display: block; width: 100%; max-width: none; text-align: center; box-sizing: border-box; overflow: hidden; text-overflow: ellipsis; }
}

/* Space above the full-width Account link when it sits below the logo. */
@media (max-width: 900px) {
  body.page-index .site-header .account-actions {
    padding-top: 18px;
  }
}

/* Uniform height for interactive controls across the site. */
body.page-index, body.page-profile, body.page-subscribe { --control-height: 46px; }
body.page-index .site-header .account-actions .subscribe,
body.page-index .year-trigger,
body.page-index .read,
body.page-index .archive select,
body.page-profile input,
body.page-profile .btn,
body.page-subscribe input,
body.page-subscribe .btn,
body.page-subscribe .auth-switch {
  box-sizing: border-box;
  height: var(--control-height);
  min-height: var(--control-height);
}
body.page-index .site-header .account-actions .subscribe,
body.page-index .year-trigger,
body.page-index .read,
body.page-profile .btn,
body.page-subscribe .btn,
body.page-subscribe .auth-switch {
  display: flex;
  align-items: center;
  justify-content: center;
}
body.page-index .year-trigger { justify-content: space-between; }
body.page-index .site-header .account-actions .subscribe,
body.page-index .read,
body.page-profile .btn,
body.page-subscribe .btn,
body.page-subscribe .auth-switch { padding-top: 0; padding-bottom: 0; }
@media (max-width: 900px) {
  body.page-index .site-header .account-actions .subscribe { width: 100%; max-width: none; }
}

/* Account navigation lives in the homepage footer, not the masthead. */
body.page-index .site-footer .footer-account-link {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: var(--control-height, 46px);
  width: 100%;
  margin: 0 auto 22px;
  padding: 0 14px;
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--ink);
  text-decoration: none;
  font: 11px Arial, Helvetica, sans-serif;
  letter-spacing: .09em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
body.page-index .site-footer .footer-account-link:hover { background: #f7f8fa; }
body.page-index .site-footer .footer-account-link:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }

/* Homepage: left-aligned masthead, account button at top right. */
body.page-index .top.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
}
body.page-index .site-header .brand {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  justify-self: auto;
  text-align: left;
}
body.page-index .site-header .brand small { text-align: left; }
body.page-index .site-header .account-actions {
  flex: 0 1 auto;
  width: auto;
  min-width: 0;
  padding-top: 0;
  margin-left: auto;
  justify-self: auto;
}
body.page-index .site-header .account-actions .subscribe {
  width: auto;
  max-width: min(40vw, 300px);
  min-height: 46px;
  padding: 0 18px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Current issue: editorial copy on left, magazine cover on right. */
body.page-index .current-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, .95fr);
}
body.page-index .current-grid .current-copy { min-width: 0; }
body.page-index .current-grid .cover { justify-self: end; margin-left: auto; margin-right: 0; }
@media (max-width: 700px) {
  body.page-index .top.site-header { flex-direction: row; gap: 10px; }
  body.page-index .site-header .masthead { font-size: clamp(25px, 6.6vw, 45px); }
  body.page-index .site-header .brand small { font-size: 10px; }
  body.page-index .site-header .account-actions .subscribe {
    max-width: 36vw;
    padding: 0 10px;
    font-size: 10px;
  }
  body.page-index .current-grid { grid-template-columns: minmax(0, 1fr); }
  body.page-index .current-grid .cover { justify-self: center; margin-inline: auto; }
}
@media (max-width: 420px) {
  body.page-index .site-header .masthead { font-size: clamp(23px, 6.3vw, 29px); }
  body.page-index .site-header .account-actions .subscribe { max-width: 35vw; padding: 0 8px; }
}

/* Homepage masthead centered independently of the right-side Account link. */
body.page-index .top.site-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0;
}
body.page-index .site-header .brand {
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  text-align: center;
}
body.page-index .site-header .brand small { text-align: center; }
body.page-index .site-header .account-actions {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  margin-left: 0;
}
/* Current issue cover on the left and editorial copy on the right. */
body.page-index .current-grid { grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); }
body.page-index .current-grid .cover { justify-self: start; margin-left: 0; margin-right: auto; }
@media (max-width: 700px) {
  body.page-index .current-grid { grid-template-columns: minmax(0, 1fr); }
  body.page-index .current-grid .cover { justify-self: center; margin-inline: auto; }
}
@media (max-width: 540px) {
  body.page-index .top.site-header { grid-template-columns: minmax(0, 1fr); }
  body.page-index .site-header .brand { grid-column: 1; grid-row: 1; }
  body.page-index .site-header .account-actions { grid-column: 1; grid-row: 2; justify-self: end; margin-top: 12px; }
}

/* Homepage header: match the editorial grid, with a little extra breathing room. */
body.page-index .top.site-header {
  margin-inline: -12px;
  padding-inline: 12px;
  grid-template-columns: minmax(0,1fr) minmax(0,auto) minmax(0,1fr);
  column-gap: 12px;
}
body.page-index .site-header .account-actions {
  width: min(100%, 280px);
  min-width: 0;
  justify-self: end;
}
body.page-index .site-header .account-actions .subscribe {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 46px;
  line-height: 44px;
  padding: 0 14px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
}
@media (max-width: 700px) {
  body.page-index .top.site-header { margin-inline: 0; padding-inline: 0; }
  body.page-index .site-header .account-actions .subscribe { font-size: 12px; }
}
@media (max-width: 540px) {
  body.page-index .top.site-header { grid-template-columns: minmax(0,1fr); }
  body.page-index .site-header .brand { grid-column: 1; grid-row: 1; }
  body.page-index .site-header .account-actions {
    grid-column: 1;
    grid-row: 2;
    justify-self: stretch;
    width: 100%;
    max-width: none;
    margin-top: 18px;
  }
  body.page-index .site-header .account-actions .subscribe {
    width: 100%;
    max-width: none;
    font-size: 12px;
  }
}

/* Reserve more space on both sides of the centered masthead so long
   account emails truncate earlier instead of crowding the logo. */
@media (min-width: 541px) {
  body.page-index .top.site-header {
    grid-template-columns: minmax(0, 1fr) minmax(0, auto) minmax(0, 1fr);
    column-gap: 32px;
  }
  body.page-index .site-header .brand {
    margin-inline: 24px;
  }
  body.page-index .site-header .account-actions {
    max-width: 280px;
    min-width: 0;
  }
}

/* Account action: compact beside masthead; full-width once header stacks. */
@media (min-width: 541px) {
  body.page-index .site-header .account-actions { width: min(100%, 180px); max-width: 180px; }
}
@media (max-width: 540px) {
  body.page-index .site-header .account-actions { width: 100%; max-width: 100%; }
}

/* Header bottom divider — all pages */
body.page-index .top.site-header,
body.page-profile .top.site-header,
body.page-subscribe .top.site-header {
  border-bottom: 1px solid #dbe0e5;
}

/* Breathing room between the header divider and page content. */
body.page-index .top.site-header,
body.page-profile .top.site-header,
body.page-subscribe .top.site-header {
  margin-bottom: 28px;
}

/* Consistent outer width for every page and its header. */
body.page-index .shell,
body.page-profile .shell,
body.page-subscribe .shell {
  max-width: 1150px;
  width: 100%;
  margin-inline: auto;
}
body.page-index .top.site-header,
body.page-profile .top.site-header,
body.page-subscribe .top.site-header {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin-left: 0;
  margin-right: 0;
}

/* Small screens: wrap the archive heading and filter instead of squeezing
   the dropdown/chevron outside the viewport. */
@media (max-width: 480px) {
  body.page-index .archive-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
  }
  body.page-index .archive-head > h2 { min-width: 0; margin: 0; }
  body.page-index .year-filter-wrap {
    flex: 0 1 100%;
    width: 100%;
    min-width: 0;
  }
  body.page-index .year-dropdown { width: 100%; min-width: 0; }
  body.page-index .year-trigger { min-width: 0; gap: 10px; }
  body.page-index .year-trigger #year-selected {
    min-width: 0;
    overflow-wrap: anywhere;
  }
  body.page-index .year-chevron { flex: 0 0 auto; }
}

/* Center the issue title and Read button as one block beside the cover. */
body.page-index .current-grid .current-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
body.page-index .current-grid .issue-heading {
  margin: 0 0 18px;
}
body.page-index .current-grid .read {
  margin-top: 0;
}

/* Current magazine: vertically center the title and full-width button beside the cover. */
body.page-index .current-grid .current-copy {
  align-self: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  margin-block: 0;
  padding-block: 0;
}
body.page-index .current-grid .current-copy .issue-heading {
  margin: 0 0 18px;
}
body.page-index .current-grid .current-copy .read {
  width: 100%;
  max-width: none;
  margin: 0;
}


/* Full-viewport dividers on the homepage, without changing content alignment. */
body.page-index .top.site-header,
body.page-index .current {
  border-bottom: 0;
  position: relative;
}
body.page-index .top.site-header::after,
body.page-index .current::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  border-bottom: 1px solid #dbe0e5;
  pointer-events: none;
}

/* Full-viewport header dividers on Profile and Subscribe pages. */
body.page-profile .top.site-header,
body.page-subscribe .top.site-header {
  border-bottom: 0;
  position: relative;
}
body.page-profile .top.site-header::after,
body.page-subscribe .top.site-header::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  border-bottom: 1px solid #dbe0e5;
  pointer-events: none;
}


/* Current issue: large archive-style cover, centered with its issue label below. */
body.page-index .current-grid {
  display: flex;
  justify-content: center;
  align-items: center;
}
body.page-index .current-issue {
  width: min(100%, 470px);
  margin-inline: auto;
  text-align: center;
}
body.page-index .current-issue .cover,
body.page-index .current .cover {
  display: block;
  width: 100%;
  max-width: none;
  margin-inline: auto;
}
body.page-index .current-issue-label {
  font: normal clamp(22px, 2.5vw, 32px) Georgia, serif;
  margin: 18px 0 0;
  text-align: center;
}

/* Smaller Dionysus Magazine masthead on all pages. */
body .site-header .masthead {
  font-size: clamp(30px, 4vw, 50px);
}
body .site-header .brand small {
  font-size: 11px;
  margin-top: 6px;
}
@media (max-width: 700px) {
  body .site-header .masthead { font-size: clamp(25px, 6vw, 36px); }
  body .site-header .brand small { font-size: 10px; }
}


/* Moved from index.html */
/* Remove horizontal header padding on the index page only */
body.page-index .top.site-header {
  padding-inline: 0 !important;
}

/* Current issue caption alignment */
body.page-index .current-issue-label {
  font: normal clamp(22px, 2.5vw, 32px) Georgia, serif;
  margin: 18px 0 0;
  text-align: left;
}

/* Match the magazine subtitle typography in dionysus-admin. */
body .site-header .brand small,
body .site-header.site-header-simple .brand small {
  display: block;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
  font-weight: normal;
  letter-spacing: 2px;
  line-height: normal;
  text-transform: uppercase;
  color: #687589;
  margin-top: 6px;
}
