:root{
  --maxw: 1200px;
  --gutter: clamp(20px, 4.5vw, 30px);
  --text: #111;
  --muted: #555;
  --bg: #fff;
  --link: #007bff;
}

* { 
  box-sizing: border-box; 
}

html, body { 
  height: 100%; 
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  line-height: 1.7;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { 
  color: var(--link); 
  text-decoration: none;
}

#main_wrapper { 
	min-height: 100%; 
  display: grid; 
  grid-template-rows: auto 1fr auto; 
}

.content_wrapper {
  max-width: var(--maxw);
  padding-inline: var(--gutter);
  margin-inline: auto;
  padding-bottom: 60px;
}

#main_title_label {
  font-size: clamp(28px, 4.2vw, 40px);
  line-height: 1.2;
  margin: 32px 0 10px 0;
  text-align: center;
}

#sub_title_label {
  font-size: clamp(16px, 2.2vw, 18px);
  color: var(--muted);
  margin: 0 0 24px 0;
  text-align: center;
}

.policy {
  margin: 0 0 16px 0;
}

h1.policy, h2.policy, h3.policy {
  margin: 28px 0 12px 0;
  line-height: 1.3;
  text-align: center;
}

h1.policy { font-size: clamp(24px, 3.6vw, 30px); }
h2.policy { font-size: clamp(20px, 3vw, 24px); }
h3.policy { font-size: clamp(18px, 2.6vw, 20px); }

ul.policy, ol.policy {
  margin: 0 0 18px 1.1em;      
  padding-left: 0.8em;
}
ul.policy li, ol.policy li { margin: 0 0 8px 0; }
ul.policy a { text-decoration: underline; }

dl.policy { margin: 0 0 18px 0; }
dt.policy { font-weight: 700; margin-top: 10px; }
dd.policy { margin: 6px 0 12px 1em; color: var(--muted); }

.clearfix::after { content: ""; display: table; clear: both; }

footer{
  border-top: 1px solid #eee;
  padding: 40px var(--gutter);
}

footer p {
  margin: 0; 
  text-align: center;
}

@media (max-width: 380px) {
  .policy { margin-bottom: 14px; }
}

@media print {
  a { color: #000; text-decoration: underline; }
}





